:root{font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color-scheme:light;--bg:#f6f7f9;--surface:#fff;--text:#292e3d;--muted:#858c9c;--line:#e7e9ee;--hover:#f2f6fc;--accent:#168cf5;--header:#282c38;--today:#f3f9ff;--shadow:0 20px 80px #0003}
:root[data-theme=dark]{color-scheme:dark;--bg:#171a22;--surface:#212530;--text:#e8ebf2;--muted:#9aa3b5;--line:#343946;--hover:#2a3240;--accent:#53a9ff;--header:#12151d;--today:#242f40;--shadow:0 20px 80px #0008}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-size:14px}button,a,input{ -webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;color:inherit}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid var(--accent);outline-offset:4px}button{border:0;background:none}button:disabled{cursor:not-allowed;opacity:.5}a{color:inherit;text-decoration:none}.sidebar{width:264px;position:fixed;inset:0 auto 0 0;background:var(--surface);border-right:1px solid var(--line);padding:34px 23px;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:12px;font-size:20px;font-weight:750;letter-spacing:-.6px}.brand small{display:block;font-size:11px;font-weight:400;color:var(--muted);letter-spacing:.2px;margin-top:5px}.brand-icon{background:var(--accent);color:white;border-radius:12px;font-size:29px;width:43px;height:43px;text-align:center;line-height:43px}.sidebar-heading{font-size:10px;font-weight:700;letter-spacing:1.6px;color:var(--muted);margin:43px 9px 17px;display:flex;justify-content:space-between}.nav-current{padding:13px 11px;border-radius:8px;background:var(--today);color:var(--accent);font-size:12px;font-weight:650;display:flex;align-items:center;gap:9px}.nav-current .small-dot{margin-left:auto}.small-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--accent)}.mini-calendar{margin:30px 8px 0}.mini-heading{display:flex;justify-content:space-between;font-size:12px;margin-bottom:20px}.mini-heading span{color:var(--muted)}.mini-week,#mini-days{display:grid;grid-template-columns:repeat(7,1fr);text-align:center;gap:5px 0}.mini-week{font-size:10px;color:var(--muted);margin-bottom:10px}#mini-days button{font-size:11px;width:26px;height:27px;padding:0;border-radius:50%}.selected-day{background:var(--accent)!important;color:#fff!important}.labels{display:grid;gap:20px;margin:3px 10px;font-size:12px}.labels>div{display:flex;align-items:center;gap:11px}.labels i{width:10px;height:10px;border-radius:3px}.pink{background:#ef7faf}.blue{background:#5eb9e9}.green{background:#71bb8b}.purple{background:#ad8ad5}.label-note{color:var(--muted);font-size:10px;margin:20px 10px;line-height:1.6}.sidebar-bottom{margin-top:auto;padding-top:25px}.settings-trigger{display:flex;align-items:center;gap:13px;padding:12px;font-size:17px;width:100%;text-align:left}.settings-trigger span{font-size:12px}.household{border-top:1px solid var(--line);margin-top:20px;padding-top:23px;display:flex;gap:13px;font-size:12px;font-weight:600;align-items:center}.household small{display:block;color:var(--muted);font-size:10px;font-weight:400;margin-top:5px}.avatars{display:flex;padding-right:3px}.avatars span{width:29px;height:29px;border-radius:50%;display:grid;place-items:center;font-size:9px;border:2px solid var(--surface);background:#dceefa;color:#39769b}.avatars span+span{margin-left:-8px;background:#f9dce9;color:#b1597f}main{margin-left:264px;padding-bottom:86px}.topbar{height:85px;display:flex;align-items:center;background:var(--header);color:#fff;padding:0 40px;gap:23px}.topbar-title{font-weight:550;font-size:14px}.view-tabs{display:flex;gap:5px;margin:auto}.view-tabs button{padding:10px 22px;border-radius:24px;color:#d8dbe5;font-size:13px}.view-tabs button.active{background:#168cf5;color:#fff}.icon-button{font-size:25px;width:36px;height:36px}.top-settings{font-size:21px}.add-button{border-radius:8px;background:#168cf5;color:white;padding:9px 14px;font-size:12px}.add-button>span:first-child{font-size:21px;vertical-align:-2px}.calendar-area{max-width:1500px;margin:auto;padding:36px 40px 24px}.period-bar{display:flex;justify-content:space-between;align-items:center;gap:16px}.eyebrow{font-size:10px;letter-spacing:1.7px;font-weight:650;color:var(--muted);text-transform:uppercase}h1{font-size:29px;letter-spacing:-1px;font-weight:650;margin:8px 0 0}h1::first-letter{text-transform:uppercase}.period-actions{display:flex;align-items:center;gap:17px}.period-actions>button{border:1px solid var(--line);border-radius:7px;padding:9px 17px;background:var(--surface);font-size:12px}.arrows{display:flex;gap:5px}.arrows button{font-size:27px;width:30px;height:34px;color:var(--muted)}.calendar-meta{display:flex;justify-content:space-between;font-size:10px;color:var(--muted);margin:26px 0 14px}.calendar-meta .small-dot{margin-right:7px;background:#77b991}.calendar-panel{background:var(--surface);border:1px solid var(--line);border-radius:10px;overflow:hidden}.week-row{display:grid;grid-template-columns:100px 1fr;min-height:94px;border-bottom:1px solid var(--line)}.week-row:last-child{border-bottom:0}.day-marker{display:flex;flex-direction:column;align-items:center;justify-content:center;border-right:1px solid var(--line);font-size:11px;color:var(--muted);position:relative}.day-marker strong{font-size:26px;font-weight:550;color:var(--text);line-height:1.3}.is-today{background:var(--today)}.is-today .day-marker{color:var(--accent)}.is-today .day-marker strong{color:var(--accent)}.is-today .day-marker:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--accent)}.day-space{display:flex;align-items:center;padding:18px 24px}.empty-message{color:var(--muted);font-size:12px}.empty-message span{display:block;font-size:10px;margin-top:6px;opacity:.8}.today-pill{font-size:9px;color:var(--accent);background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:4px 9px;margin-left:auto}.phase-note{display:flex;gap:12px;align-items:center;font-size:11px;color:var(--muted);padding:20px 2px;line-height:1.7}.phase-note strong{color:var(--text);font-weight:550}.note-icon{border:1px solid var(--muted);width:16px;height:16px;flex-shrink:0;border-radius:50%;display:grid;place-items:center;font-size:10px}.phase-badge{margin-left:auto;white-space:nowrap;font-size:9px;letter-spacing:1px;border:1px solid var(--line);border-radius:5px;padding:4px 9px}.week-strip{position:fixed;bottom:0;left:264px;right:0;background:var(--surface);border-top:1px solid var(--line);display:flex;justify-content:space-around;padding:12px 35px max(12px,env(safe-area-inset-bottom));z-index:2}.week-strip button{min-width:60px;border-radius:24px;padding:6px 14px;color:var(--muted);font-size:10px}.week-strip strong{display:block;font-size:22px;font-weight:550;line-height:1.3}.week-strip .selected-day{background:var(--accent)}#menu-toggle{display:none}dialog{background:var(--surface);color:var(--text);border:1px solid var(--line);border-radius:18px;width:460px;max-width:calc(100% - 30px);padding:0;box-shadow:var(--shadow)}dialog::backdrop{background:#10152288;backdrop-filter:blur(4px)}.dialog-head{padding:26px 26px 20px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}h2{font-size:25px;letter-spacing:-.7px;margin:7px 0 0}.dialog-content{padding:23px 26px 28px}h3{font-size:14px;margin:0 0 8px}.dialog-content p{font-size:12px;color:var(--muted);line-height:1.7}.theme-options{border:0;padding:12px 0;display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:0}.theme-options label{border:1px solid var(--line);border-radius:10px;display:flex;flex-direction:column;align-items:center;padding:15px 5px;gap:9px;cursor:pointer;font-size:12px;position:relative}.theme-options label:has(input:checked){border-color:var(--accent);background:var(--today);color:var(--accent)}.theme-options label span{font-size:24px}.theme-options input{position:absolute;top:7px;right:7px;width:11px;height:11px;accent-color:var(--accent)}.settings-note{margin-bottom:25px}.settings-info{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding:15px 0 0;margin-top:15px;font-size:11px}.settings-info span{color:var(--muted)}.settings-info strong{font-weight:500}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0)}.noscript{position:fixed;bottom:0;background:var(--surface);padding:20px;z-index:10}.fc{--fc-border-color:var(--line);--fc-page-bg-color:var(--surface);--fc-neutral-bg-color:var(--hover);--fc-today-bg-color:var(--today);font-size:12px}.fc .fc-toolbar{display:none}.fc .fc-col-header-cell{padding:12px 0}.fc .fc-daygrid-day-number{padding:10px}.fc .fc-list-empty{background:var(--surface);color:var(--muted)}[hidden]{display:none!important}
@media(min-width:1500px){.week-row{min-height:110px}}
@media(max-width:1100px){.sidebar{width:225px;padding:28px 16px}main{margin-left:225px}.week-strip{left:225px}.topbar{padding:0 25px;gap:12px}.view-tabs button{padding:10px 16px}.calendar-area{padding:28px 25px}.topbar-title{display:none}}
@media(max-width:760px){.sidebar{transform:translateX(-100%);transition:transform .2s;z-index:5;box-shadow:var(--shadow);width:264px}.sidebar.open{transform:translateX(0)}main{margin-left:0}.topbar{height:74px;padding:0 14px;gap:6px}#menu-toggle{display:block;font-size:23px}.view-tabs{gap:0}.view-tabs button{font-size:13px;padding:10px 15px}.top-settings{font-size:20px;width:29px}.add-label{display:none}.add-button{padding:2px 6px;background:none!important;opacity:.5}.add-button>span:first-child{font-size:32px}.calendar-area{padding:24px 16px 12px}h1{font-size:24px}.eyebrow{font-size:9px}.period-actions{gap:5px}.period-actions>button{padding:7px 10px;font-size:11px}.arrows{gap:0}.arrows button{width:25px}.calendar-meta{margin-top:23px;font-size:9px}.calendar-meta>span:last-child{display:none}.week-row{min-height:98px;grid-template-columns:74px 1fr}.day-space{padding:15px}.day-marker strong{font-size:26px}.week-strip{left:0;padding:10px 8px max(10px,env(safe-area-inset-bottom))}.week-strip button{min-width:0;padding:7px 12px}.week-strip strong{font-size:22px}.phase-note{font-size:10px;align-items:flex-start}.phase-badge{display:none}.empty-message{font-size:11px}.calendar-panel{border-radius:6px}.today-pill{font-size:8px}.mini-calendar{margin-top:22px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
