:root{--weekend-strong:#d9e4e5;--holiday:#f8d7d0;--holiday-ink:#8b2929}
body{font-size:17px}.app{grid-template-columns:270px minmax(0,1fr)}.side{padding:26px 22px}.brand{height:125px;justify-content:center}.brand img{width:220px;max-height:118px;object-fit:contain;object-position:center}.nav button{font-size:16px;padding:13px 14px}.stat-label,.stat-note,.legend{font-size:14px}.panel-head h2{font-size:21px}.calendar{font-size:15px;min-width:980px}.calendar th,.calendar td{height:46px}.calendar th:first-child,.calendar td:first-child{min-width:180px;font-weight:500}.calendar .weekend{background:var(--weekend-strong)}.calendar .holiday{background:var(--holiday)}.calendar th.holiday{color:var(--holiday-ink);font-weight:700}.calendar th.today{box-shadow:inset 0 -4px 0 var(--orange)}.day{font-size:15px}.quarter-stack{display:grid;gap:22px}.month-block{border-top:2px solid var(--brand)}.month-title{display:flex;justify-content:space-between;align-items:center;padding:12px 2px 8px;font-size:18px;font-weight:600}.month-title small{font-size:14px;color:var(--muted);font-weight:400}.view-controls{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.filter-wrap{position:relative}.filter-panel{position:absolute;right:0;top:calc(100% + 8px);z-index:20;width:290px;background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:12px;box-shadow:0 18px 50px rgba(16,46,49,.2);display:none}.filter-panel.open{display:block}.filter-panel strong{display:block;margin-bottom:8px}.filter-option{display:flex;align-items:center;gap:9px;padding:8px 4px;font-size:15px}.filter-option input{width:18px;height:18px;accent-color:var(--green)}.holiday-label{display:inline-flex;align-items:center;gap:6px}.holiday-swatch{width:12px;height:12px;border-radius:3px;background:var(--holiday);border:1px solid #d89f95}.weekend-swatch{width:12px;height:12px;border-radius:3px;background:var(--weekend-strong);border:1px solid #b9cacc}.person.inactive{opacity:.6;background:#f1f3f3}.person-status{display:flex;justify-content:space-between;align-items:center;margin-top:14px}.status-active{color:var(--green);font-weight:600}.status-inactive{color:var(--red);font-weight:600}.mini-button{border:1px solid var(--line);background:var(--paper);color:var(--ink);border-radius:8px;padding:7px 10px;font-size:14px}.empty-view{padding:35px;text-align:center;color:var(--muted)}@media(max-width:900px){.app{grid-template-columns:1fr}.brand{height:70px;justify-content:flex-start}.brand img{width:170px;max-height:68px}.calendar{font-size:14px}.calendar th,.calendar td{height:43px}}
