.ano { display: grid; grid-template-columns: repeat(auto-fill, 14px); gap: 3px; margin: var(--sp-3) 0; }
.ano a { width: 14px; height: 14px; border-radius: 3px; background: var(--surface-2); display: block; }
.ano a.ok { background: var(--ink); }
.ano a.hoje { outline: 2px solid var(--accent); outline-offset: 1px; }
.ano a.futuro { opacity: .35; }
.sem { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: var(--sp-2); }
.sem a { text-decoration: none; padding: var(--sp-3); border: 1px solid var(--line); border-radius: var(--r-md); display: flex; flex-direction: column; gap: 4px; min-height: 110px; }
.sem a.ok { background: var(--surface-2); }
.sem a.aberto { border-color: var(--accent); }
@media (max-width: 800px) { .sem { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
