.td-issues{border:1px solid var(--danger);background:var(--danger-wash);width:100%;color:var(--danger);text-align:left;border-radius:9px;align-items:center;gap:8px;margin-bottom:8px;padding:7px 9px;font-size:12px;font-weight:600;display:flex}.td-issues:hover{background:color-mix(in srgb, var(--danger-wash) 86%, var(--danger))}.td-issues svg{flex:none;width:14px;height:14px}.td-count{color:var(--text-faint);font-variant-numeric:tabular-nums;flex:none;font-size:11px;font-weight:600}.td-next{flex-direction:column;gap:1px;margin-top:8px;display:flex}.td-next-row{text-align:left;width:100%;color:var(--text);background:0 0;border:0;border-radius:8px;align-items:center;gap:8px;padding:6px 8px;display:flex}.td-next-row:hover{background:var(--inset)}.td-next-title{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;font-size:12.5px;overflow:hidden}.td-next-when{color:var(--text-faint);font-variant-numeric:tabular-nums;flex:none;font-size:11px}.td-dot{background:var(--dot,var(--accent));border-radius:999px;flex:none;width:8px;height:8px}.td-field{flex-direction:column;gap:6px;display:flex}.td-field>span{color:var(--text-dim);font-size:12.5px}.td-field .set-select{width:100%;min-width:0}.td-field+.td-field,.td-field+.set-row,.set-row+.td-field{margin-top:12px}.td-area{font:inherit;border:1px solid var(--border-strong);background:var(--panel);width:100%;min-height:62px;color:var(--text);resize:vertical;border-radius:8px;padding:8px 9px}.td-area::placeholder{color:var(--text-faint)}.td-area:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-wash);outline:none}.td-listpick{align-items:center;gap:8px;min-width:0;display:flex}.td-num{width:92px;min-width:0}.td-stamp{min-width:190px}.td-quick{margin-top:8px}.td-seg{flex-wrap:wrap}.td-seg button{padding:6px 10px;font-size:12px}.td-check{cursor:pointer}.td-check input{flex:none}.td-repeat{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:6px;display:flex}.td-repeat .set-select{min-width:150px}.td-steps{flex-direction:column;gap:6px;margin-bottom:10px;display:flex}.td-step{align-items:center;gap:6px;display:flex}.td-step input[type=checkbox]{flex:none}.td-step .set-select{flex:1;min-width:0}.td-step.done .set-select{color:var(--text-faint);text-decoration:line-through}.td-err{color:var(--danger);margin-top:6px;font-size:11.5px}.td-warn{background:var(--danger-wash);color:var(--danger);border-radius:7px;margin-top:10px;padding:7px 9px;font-size:11.5px;line-height:1.45}.td-actions{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-top:16px;display:flex}.td-actions-right{gap:8px;margin-left:auto;display:flex}.td-quiet{border:1px solid var(--border-strong);color:var(--text-dim);background:0 0;border-radius:8px;padding:8px 12px;font-size:13px;font-weight:600}.td-quiet:hover{background:var(--inset);color:var(--text)}.td-del{border:1px solid var(--border-strong);color:var(--danger);background:0 0;border-radius:8px;align-items:center;gap:6px;padding:8px 12px;font-size:13px;font-weight:600;display:inline-flex}.td-del:hover:not(:disabled){background:var(--danger-wash);border-color:var(--danger)}.td-del:disabled{opacity:.6;cursor:default}.td-del svg{width:13px;height:13px}.td-issue-pop{z-index:21;background:var(--panel);border:1px solid var(--border);width:min(520px,100vw - 32px);max-height:min(80dvh,700px);box-shadow:var(--shadow-pop);border-radius:16px;flex-direction:column;display:flex;position:fixed;top:50%;left:50%;overflow:hidden;transform:translate(-50%,-50%)}.td-issue-list{flex-direction:column;display:flex}.td-issue{border:0;border-bottom:1px solid var(--border);text-align:left;width:100%;color:var(--text);background:0 0;align-items:flex-start;gap:10px;padding:11px 6px;display:flex}.td-issue:last-child{border-bottom:0}.td-issue:hover{background:var(--inset)}.td-issue .td-dot{margin-top:5px}.td-issue-main{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.td-issue-top{align-items:baseline;gap:8px;display:flex}.td-issue-title{white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:600;overflow:hidden}.td-issue-band{color:var(--text-faint);flex:none;font-size:11px}.td-issue-kind{color:var(--danger);font-size:11.5px;font-weight:600}.td-issue-detail{color:var(--text-dim);font-size:11.5px;line-height:1.45}.td-issue-meta{color:var(--text-faint);font-variant-numeric:tabular-nums;font-size:11px}.td-issue-help{border:1px dashed var(--border-strong);border-radius:11px;margin-top:14px;padding:12px}.td-issue-help h4{text-transform:uppercase;letter-spacing:.07em;color:var(--text-faint);margin:0 0 6px;font-family:Bricolage Grotesque,Figtree,sans-serif;font-size:11px;font-weight:600}.td-issue-help ul{color:var(--text-dim);flex-direction:column;gap:4px;margin:0;padding-left:18px;font-size:12px;line-height:1.45;display:flex}@media (width<=820px){.td-issue-pop{max-height:calc(100dvh - 32px)}.td-stamp,.td-repeat .set-select{min-width:0}}:root{--canvas:#f6f7f9;--panel:#fff;--panel-2:#fbfcfd;--inset:#f2f4f7;--border:#e6e8ec;--border-strong:#d4d8df;--text:#191b23;--text-dim:#656d7c;--text-faint:#9aa1ad;--accent:#006bff;--accent-ink:#fff;--accent-wash:#e8f1ff;--danger:#d64545;--danger-wash:#fdecec;--now:#e8564f;--sleep:#1e222d0f;--tg-surface:#fff;--ev-mix:20%;--ev-mix-hover:34%;--shadow:0 1px 2px #1018280a, 0 6px 20px #10182812;--shadow-pop:0 16px 48px #1018282e;--radius:12px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--canvas:#0e0f15;--panel:#171922;--panel-2:#1b1d27;--inset:#1f2230;--border:#282b38;--border-strong:#3a3e4f;--text:#e9eaef;--text-dim:#9aa1b1;--text-faint:#6a7183;--accent:#4d94ff;--accent-ink:#0a1018;--accent-wash:#16233a;--danger:#ff6b6b;--danger-wash:#2a1a1d;--now:#ff6b62;--sleep:#00000038;--tg-surface:#0b0c11;--ev-mix:26%;--ev-mix-hover:40%;--shadow:0 1px 2px #00000059, 0 6px 20px #0006;--shadow-pop:0 16px 48px #0000008c;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--canvas:#0e0f15;--panel:#171922;--panel-2:#1b1d27;--inset:#1f2230;--border:#282b38;--border-strong:#3a3e4f;--text:#e9eaef;--text-dim:#9aa1b1;--text-faint:#6a7183;--accent:#4d94ff;--accent-ink:#0a1018;--accent-wash:#16233a;--danger:#ff6b6b;--danger-wash:#2a1a1d;--now:#ff6b62;--sleep:#00000038;--tg-surface:#0b0c11;--ev-mix:26%;--ev-mix-hover:40%;--shadow:0 1px 2px #00000059, 0 6px 20px #0006;--shadow-pop:0 16px 48px #0000008c;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--canvas);color:var(--text);-webkit-font-smoothing:antialiased;margin:0;font-family:Figtree,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;font-size:14px;line-height:1.5;overflow:hidden}h1,h2,h3{text-wrap:balance;margin:0;font-family:Bricolage Grotesque,Figtree,sans-serif;font-weight:600}button{font:inherit;color:inherit;cursor:pointer}input{font:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}@media (prefers-reduced-motion:reduce){*{transition-duration:.001ms!important;animation-duration:.001ms!important}}.app{grid-template-columns:clamp(224px,21vw,288px) 1fr;height:100dvh;display:grid;overflow:hidden}.side{background:var(--panel);border-right:1px solid var(--border);flex-direction:column;gap:22px;min-height:0;padding:20px 18px;display:flex;overflow-y:auto}.brand{align-items:center;gap:10px;padding:2px 4px;display:flex}.brand-mark{border-radius:9px;flex:none;width:32px;height:32px;display:block;overflow:hidden;box-shadow:0 1px 3px #00000059}.brand-mark svg{width:100%;height:100%;display:block}.brand-name{letter-spacing:-.01em;font-family:Bricolage Grotesque,sans-serif;font-size:17px;font-weight:700}.brand-sub{color:var(--text-faint);margin-top:1px;font-size:11px}.side-label{letter-spacing:.07em;text-transform:uppercase;color:var(--text-faint);margin:0 4px 8px;font-size:11px;font-weight:600}.side-label-row{justify-content:space-between;align-items:center;display:flex}.side-add{border:1px solid var(--border-strong);background:var(--panel);width:22px;height:22px;color:var(--text-dim);border-radius:7px;flex:none;justify-content:center;align-items:center;padding:0;line-height:0;display:inline-flex}.side-add:hover{background:var(--inset);color:var(--accent);border-color:var(--accent)}.side-add svg{width:12px;height:12px;display:block}.blk-dot{border-radius:999px;flex:none;width:7px;height:7px}.blk-dot.work{background:var(--accent)}.blk-dot.school{background:#e8873b}.sheet.narrow{width:min(440px,100%)}.mblk{border:1px solid var(--border);background:var(--panel-2);border-radius:11px;flex-direction:column;gap:9px;padding:12px;display:flex}.mblk-actions{justify-content:flex-end;gap:8px;margin-top:12px;display:flex}.blk-li-list{border-top:1px solid var(--border);flex-direction:column;margin-top:14px;display:flex}.blk-li{border-bottom:1px solid var(--border);align-items:center;gap:4px;display:flex}.blk-li.active{background:var(--accent-wash)}.blk-li-main{text-align:left;min-width:0;color:var(--text);background:0 0;border:0;flex:1;align-items:center;gap:8px;padding:8px 4px;display:flex}.blk-li-main:hover{color:var(--accent)}.blk-li-text{white-space:nowrap;text-overflow:ellipsis;font-variant-numeric:tabular-nums;font-size:12px;overflow:hidden}.mblk-kind button{padding:5px 12px;font-size:12.5px}.mblk-field{color:var(--text-dim);justify-content:space-between;align-items:center;gap:12px;font-size:12.5px;display:flex}.mblk-field>span:first-child{flex:none}.mblk-field .set-select,.mblk-field>.set-time{min-width:150px}.mblk-times{align-items:center;gap:6px;display:flex}.mblk-times .set-time{min-width:84px}.mblk-until{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:6px;display:flex}.mblk-until .set-select{min-width:130px}.mblk-num{width:64px;min-width:0}.cal-list{flex-direction:column;gap:2px;display:flex}.cal-row{text-align:left;background:0 0;border:0;border-radius:9px;align-items:center;gap:10px;width:100%;padding:8px;display:flex}.cal-row:hover{background:var(--inset)}.cal-check{border:1.5px solid var(--dot,var(--border-strong));background:var(--dot,transparent);border-radius:5px;flex:none;place-items:center;width:16px;height:16px;display:grid}.cal-check svg{color:#fff;width:10px;height:10px}.cal-row[aria-pressed=false] .cal-check{background:0 0}.cal-row[aria-pressed=false] .cal-check svg{opacity:0}.cal-row[aria-pressed=false] .cal-name{color:var(--text-dim)}.cal-meta{flex:1;min-width:0}.cal-name{white-space:nowrap;text-overflow:ellipsis;font-weight:500;overflow:hidden}.cal-src{color:var(--text-faint);align-items:center;gap:5px;font-size:11px;display:flex}.lock{align-items:center;gap:3px;display:inline-flex}.lock svg{width:9px;height:9px}.cal-actions{opacity:0;flex:none;gap:2px;display:flex}.cal-row:hover .cal-actions,.cal-row:focus-within .cal-actions{opacity:1}.icon-btn{width:24px;height:24px;color:var(--text-dim);background:0 0;border:0;border-radius:6px;place-items:center;display:grid}.icon-btn:hover{background:var(--border);color:var(--text)}.icon-btn svg{width:13px;height:13px}.cal-error{color:var(--danger);align-items:baseline;gap:6px;margin:2px 0 4px 26px;font-size:11px;display:flex}.cal-error button{color:var(--accent);background:0 0;border:0;padding:0;font-size:11px;font-weight:600}.empty-hint{color:var(--text-faint);padding:4px 6px;font-size:12px}.add{border:1px dashed var(--border-strong);border-radius:var(--radius);background:var(--panel-2);flex-direction:column;gap:10px;padding:14px;display:flex}.add h3{font-size:13px;font-weight:600}.add p{color:var(--text-dim);margin:0;font-size:11.5px}.add form{flex-direction:column;gap:8px;display:flex}.add input{border:1px solid var(--border-strong);background:var(--panel);color:var(--text);border-radius:8px;width:100%;padding:9px 10px;font-family:JetBrains Mono,ui-monospace,monospace;font-size:11px}.add input::placeholder{color:var(--text-faint)}.add input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-wash);outline:none}.btn{background:var(--accent);color:var(--accent-ink);border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;gap:6px;padding:8px 12px;font-size:13px;font-weight:600;transition:filter .15s;display:inline-flex}.btn:hover:not(:disabled){filter:brightness(1.06)}.btn:disabled{opacity:.6;cursor:default}.add-error{color:var(--danger);background:var(--danger-wash);border-radius:7px;padding:7px 9px;font-size:11.5px}.src-chips{flex-wrap:wrap;gap:6px;display:flex}.src-chip{background:var(--inset);color:var(--text-dim);border:1px solid var(--border);border-radius:999px;padding:3px 8px;font-size:10.5px;font-weight:500}.upnext{flex-direction:column;gap:2px;display:flex}.up{border-radius:8px;grid-template-columns:3px minmax(0,1fr) auto;align-items:center;gap:10px;padding:7px 4px;display:grid}.up-bar{background:var(--dot);border-radius:2px;width:3px;height:30px}.up-body{flex-direction:column;min-width:0;display:flex}.up-title{white-space:nowrap;text-overflow:ellipsis;font-weight:500;overflow:hidden}.up-sub{color:var(--text-faint);white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.up-time{color:var(--text-dim);font-variant-numeric:tabular-nums;white-space:nowrap;flex:none;font-size:12px}.search{position:relative}.topbar-search{flex:0 240px;min-width:140px}.topbar-search .search-field{padding:6px 9px}.topbar-search .search-results{width:min(340px,80vw);left:0;right:auto}.search-field{border:1px solid var(--border-strong);background:var(--panel);border-radius:9px;align-items:center;gap:7px;padding:7px 9px;display:flex}.search-field:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-wash)}.search-field svg{width:14px;height:14px;color:var(--text-faint);flex:none}.search-field input{color:var(--text);background:0 0;border:0;outline:none;width:100%;font-size:13px}.search-field input::placeholder{color:var(--text-faint)}.search-clear{color:var(--text-faint);background:0 0;border:0;flex:none;place-items:center;display:grid}.search-clear:hover{color:var(--text)}.search-clear svg{width:12px;height:12px}.search-results{z-index:30;background:var(--panel);border:1px solid var(--border);box-shadow:var(--shadow-pop);border-radius:11px;max-height:320px;padding:5px;position:absolute;top:calc(100% + 6px);left:0;right:0;overflow-y:auto}.search-empty{color:var(--text-faint);padding:10px;font-size:12px}.search-hit{text-align:left;background:0 0;border:0;border-radius:8px;grid-template-columns:3px 1fr;align-items:center;gap:9px;width:100%;padding:7px 8px;display:grid}.search-hit:hover{background:var(--inset)}.search-hit-bar{background:var(--dot);border-radius:2px;align-self:stretch;min-height:26px}.search-hit-body{flex-direction:column;min-width:0;display:flex}.search-hit-title{white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:500;overflow:hidden}.search-hit-sub{color:var(--text-faint);font-variant-numeric:tabular-nums;white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.mini{border:1px solid var(--border);background:var(--panel-2);border-radius:10px;padding:7px 8px}.mini-head{justify-content:space-between;align-items:center;margin-bottom:4px;display:flex}.mini-title{text-transform:capitalize;font-size:11.5px;font-weight:600}.mini-nav{width:22px;height:22px;color:var(--text-dim);background:0 0;border:0;border-radius:6px;place-items:center;display:grid}.mini-nav:hover{background:var(--inset);color:var(--text)}.mini-nav svg{width:12px;height:12px}.mini-grid{grid-template-columns:repeat(7,1fr);gap:1px;display:grid}.mini-wd span{text-transform:uppercase;color:var(--text-faint);text-align:center;padding-bottom:2px;font-size:9px;font-weight:600}.mini-day{color:var(--text);font-variant-numeric:tabular-nums;aspect-ratio:1;background:0 0;border:0;border-radius:5px;place-items:center;font-size:10px;display:grid;position:relative}.mini-day:hover{background:var(--inset)}.mini-day.out{color:var(--text-faint)}.mini-day.today{color:var(--accent);font-weight:700}.mini-day.sel{background:var(--accent);color:var(--accent-ink)}.mini-day.dot:after{content:"";background:var(--accent);border-radius:999px;width:3px;height:3px;position:absolute;bottom:2px}.mini-day.sel.dot:after{background:var(--accent-ink)}.side-foot{justify-content:space-between;align-items:center;gap:8px;margin-top:auto;padding:0 4px;display:flex}.side-foot span{color:var(--text-faint);font-size:11px}.side-foot-btns{flex:none;gap:6px;display:flex}.theme-toggle{border:1px solid var(--border-strong);background:var(--panel);border-radius:999px;align-items:center;gap:5px;padding:5px 10px;font-size:11px;font-weight:500;display:inline-flex}.theme-toggle:hover{background:var(--inset)}.theme-toggle.icon-only{border-radius:8px;padding:6px}.theme-toggle svg{width:13px;height:13px}.main{flex-direction:column;min-width:0;min-height:0;display:flex;overflow:hidden}.topbar{border-bottom:1px solid var(--border);background:var(--panel);flex-wrap:wrap;flex:none;align-items:center;gap:10px 14px;padding:14px 20px;display:flex}.month-nav{align-items:center;gap:8px;display:flex}.month-title{letter-spacing:-.015em;font-variant-numeric:tabular-nums;text-transform:capitalize;white-space:nowrap;font-size:clamp(16px,1.4vw + 10px,21px);font-weight:700}.navbtn{border:1px solid var(--border-strong);background:var(--panel);border-radius:8px;place-items:center;width:30px;height:30px;display:grid}.navbtn:hover{background:var(--inset)}.navbtn svg{width:14px;height:14px}.today-btn{border:1px solid var(--border-strong);background:var(--panel);border-radius:8px;padding:7px 12px;font-size:13px;font-weight:600}.today-btn:hover{background:var(--inset)}.spacer{flex:1}.sync-note{color:var(--text-faint);white-space:nowrap;align-items:center;gap:6px;font-size:11.5px;display:inline-flex}.seg{background:var(--inset);border-radius:9px;flex:none;gap:2px;padding:3px;display:inline-flex}.seg button{color:var(--text-dim);background:0 0;border:0;border-radius:7px;padding:6px 13px;font-size:12.5px;font-weight:600}.seg button[aria-pressed=true]{background:var(--panel);color:var(--text);box-shadow:var(--shadow)}.grid-wrap{flex-direction:column;flex:1;min-height:0;padding:16px 20px 22px;display:flex;overflow:auto}.grid-wrap.time{padding-bottom:16px;overflow:hidden}.weekhead{flex:none;grid-template-columns:repeat(7,1fr);gap:8px;margin-bottom:8px;display:grid}.weekhead div{letter-spacing:.06em;text-transform:uppercase;color:var(--text-faint);padding-left:4px;font-size:11px;font-weight:600}.grid{flex:1;grid-template-rows:repeat(6,minmax(64px,1fr));grid-template-columns:repeat(7,1fr);gap:8px;min-height:0;display:grid}.cell{background:var(--panel);border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:4px;min-width:0;padding:6px 7px;display:flex;overflow:hidden}.cell.weekend{background:var(--panel-2)}.cell.outside{background:0 0;border-style:dashed}.cell.outside .daynum{color:var(--text-faint)}.daynum{color:var(--text-dim);font-variant-numeric:tabular-nums;border-radius:999px;flex:none;place-items:center;width:24px;height:24px;font-size:12.5px;font-weight:600;display:grid}.cell.today{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.cell.today .daynum{background:var(--accent);color:var(--accent-ink)}.events{flex-direction:column;gap:3px;min-width:0;display:flex;overflow:hidden}.ev{text-align:left;width:100%;color:var(--text);white-space:nowrap;background:0 0;border:0;border-radius:6px;align-items:center;gap:6px;padding:3px 6px;font-size:12px;display:flex;overflow:hidden}.ev:hover{background:var(--inset)}.ev-dot{background:var(--dot);border-radius:999px;flex:none;width:6px;height:6px}.ev-time{color:var(--text-dim);font-variant-numeric:tabular-nums;flex:none}.ev-title{text-overflow:ellipsis;font-weight:500;overflow:hidden}.ev.allday{background:color-mix(in srgb, var(--dot) 14%, var(--panel));border-left:3px solid var(--dot);padding-left:6px}.ev.allday:hover{background:color-mix(in srgb, var(--dot) 22%, var(--panel))}.ev.allday .ev-dot{display:none}.more{color:var(--text-dim);text-align:left;background:0 0;border:0;padding:1px 6px;font-size:11px;font-weight:500}.more:hover{color:var(--accent)}.timegrid{grid-template-columns:56px repeat(var(--cols), minmax(0, 1fr));background:var(--tg-surface);border:1px solid var(--border);border-radius:12px;flex:1;grid-template-rows:auto auto minmax(0,1fr);min-height:0;display:grid;overflow:hidden}.tg-corner{border-bottom:1px solid var(--border)}.tg-dayhead{border-bottom:1px solid var(--border);border-left:1px solid var(--border);align-items:baseline;gap:6px;padding:8px 10px;display:flex}.tg-wd{letter-spacing:.05em;text-transform:uppercase;color:var(--text-faint);font-size:11px;font-weight:700}.tg-dd{font-variant-numeric:tabular-nums;font-size:15px;font-weight:700}.tg-dayhead.is-today .tg-wd,.tg-dayhead.is-today .tg-dd{color:var(--accent)}.tg-allday-label{color:var(--text-faint);text-transform:uppercase;letter-spacing:.05em;text-align:right;border-bottom:1px solid var(--border);padding:6px;font-size:10px}.tg-allday-cell{border-bottom:1px solid var(--border);border-left:1px solid var(--border);flex-direction:column;gap:3px;min-height:28px;max-height:86px;padding:4px;display:flex;overflow-y:auto}.tg-chip{--dotx:var(--dot);text-align:left;color:var(--text);background:color-mix(in srgb, var(--dotx) var(--ev-mix), var(--tg-surface));border:0;border-left:3px solid var(--dotx);white-space:nowrap;text-overflow:ellipsis;border-radius:6px;padding:3px 7px;font-size:11px;font-weight:600;overflow:hidden}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .tg-ev,:root:not([data-theme=light]) .tg-chip{--dotx:color-mix(in srgb, var(--dot) 74%, #fff)}}:root[data-theme=dark] .tg-ev,:root[data-theme=dark] .tg-chip{--dotx:color-mix(in srgb, var(--dot) 74%, #fff)}.tg-scroll{grid-area:3/1/auto/-1;grid-template-columns:56px repeat(var(--cols), minmax(0, 1fr));min-height:0;display:grid;overflow-y:auto}.tg-gutter{border-right:1px solid var(--border);position:relative}.tg-hour-label{color:var(--text-faint);font-variant-numeric:tabular-nums;padding-bottom:3px;font-size:10.5px;position:absolute;right:8px;transform:translateY(-100%)}.tg-col{border-left:1px solid var(--border);position:relative}.tg-sleep{background:var(--sleep);z-index:0;position:absolute;left:0;right:0}.tg-work,.tg-school{z-index:1;pointer-events:none;position:absolute;right:0}.tg-work{background:color-mix(in srgb, var(--accent) 12%, transparent);box-shadow:inset 0 1px 0 color-mix(in srgb, var(--accent) 45%, transparent), inset 0 -1px 0 color-mix(in srgb, var(--accent) 45%, transparent);left:50%}.tg-school{background:#e8873b24;left:0;right:50%;box-shadow:inset 0 1px #e8873b80,inset 0 -1px #e8873b80}.tg-line{border-top:1px solid var(--border);z-index:1;position:absolute;left:0;right:0}.tg-handle{z-index:5;cursor:ns-resize;opacity:0;touch-action:none;height:10px;margin-top:-5px;position:absolute;left:0;right:0}.tg-handle:after{content:"";border-top:2px dashed var(--text-faint);position:absolute;top:4px;left:8px;right:8px}.tg-handle.work:after{border-color:var(--accent)}.tg-col:hover .tg-handle{opacity:.75}.tg-handle:hover{opacity:1!important}.tg-reset{color:var(--accent);cursor:pointer;background:0 0;border:0;margin-left:auto;padding:0 2px;font-size:13px;line-height:1}.tg-choice{z-index:45;background:var(--panel);border:1px solid var(--border);box-shadow:var(--shadow-pop);border-radius:11px;flex-direction:column;gap:2px;min-width:170px;padding:6px;display:flex;position:fixed}.tg-choice-q{color:var(--text-faint);padding:6px 8px 4px;font-size:11px}.tg-choice button{text-align:left;color:var(--text);background:0 0;border:0;border-radius:7px;padding:8px 10px;font-size:13px;font-weight:500}.tg-choice button:hover{background:var(--inset)}.tg-now{border-top:2px solid var(--now);z-index:3;position:absolute;left:0;right:0}.tg-now:before{content:"";background:var(--now);border-radius:999px;width:8px;height:8px;position:absolute;top:-5px;left:-4px}.tg-ev{--dotx:var(--dot);border:0;border-left:3px solid var(--dotx);background:color-mix(in srgb, var(--dotx) var(--ev-mix), var(--tg-surface));color:var(--text);text-align:left;z-index:2;border-radius:6px;flex-direction:column;row-gap:1px;padding:2px 6px;line-height:1.25;display:flex;position:absolute;overflow:hidden}.tg-ev:hover{background:color-mix(in srgb, var(--dotx) var(--ev-mix-hover), var(--tg-surface));z-index:4}.tg-ev.is-short{flex-direction:row;align-items:baseline;column-gap:5px}.tg-ev.is-narrow{padding-left:4px;padding-right:3px}.tg-ev-time{color:color-mix(in srgb, var(--text) 62%, transparent);font-variant-numeric:tabular-nums;flex:none;font-size:11px}.tg-ev-title{-webkit-line-clamp:5;overflow-wrap:anywhere;-webkit-box-orient:vertical;font-size:11.5px;font-weight:600;display:-webkit-box;overflow:hidden}.tg-ev.is-short .tg-ev-title{white-space:nowrap;text-overflow:ellipsis;-webkit-line-clamp:1}.tg-ev.is-narrow .tg-ev-title{font-size:11px}.banner{background:var(--text);color:var(--canvas);box-shadow:var(--shadow-pop);z-index:50;border-radius:999px;padding:10px 16px;font-size:12.5px;font-weight:500;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}.banner.err{background:var(--danger);color:#fff}.pop-backdrop{z-index:20;position:fixed;inset:0}.pop{z-index:21;background:var(--panel);border:1px solid var(--border);width:300px;max-width:calc(100vw - 32px);box-shadow:var(--shadow-pop);border-radius:14px;padding:16px;animation:.16s ease-out pop;position:fixed}@keyframes pop{0%{opacity:0;transform:translateY(6px)}}.pop-head{align-items:flex-start;gap:10px;display:flex}.pop-accent{background:var(--dot);border-radius:3px;flex:none;align-self:stretch;width:4px;min-height:38px}.pop h3{font-size:15.5px;line-height:1.35}.pop-when{color:var(--text-dim);margin-top:2px;font-size:12.5px}.pop-close{background:var(--inset);border:0;border-radius:7px;flex:none;place-items:center;width:24px;height:24px;margin-left:auto;display:grid}.pop-close:hover{background:var(--border)}.pop-close svg{width:12px;height:12px}.pop-rows{flex-direction:column;gap:9px;margin-top:13px;display:flex}.pop-row{color:var(--text-dim);align-items:flex-start;gap:9px;font-size:12.5px;display:flex}.pop-row svg{width:13px;height:13px;color:var(--text-faint);flex:none;margin-top:2px}.pop-row strong{color:var(--text);font-weight:500}.pop-ro{background:var(--accent-wash);color:var(--accent);border-radius:8px;align-items:center;gap:7px;margin-top:13px;padding:8px 10px;font-size:11.5px;font-weight:500;display:flex}.pop-ro svg{flex:none;width:12px;height:12px}.overlay{z-index:60;background:#10182859;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.sheet{background:var(--panel);border:1px solid var(--border);box-shadow:var(--shadow-pop);border-radius:16px;flex-direction:column;width:min(560px,100%);max-height:min(82dvh,760px);animation:.16s ease-out pop;display:flex;overflow:hidden}.sheet-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.sheet-head h2{font-size:17px}.sheet-tabs{border-bottom:1px solid var(--border);scrollbar-width:thin;gap:20px;padding:0 20px;display:flex;overflow-x:auto}.sheet-tabs button{white-space:nowrap;color:var(--text-dim);background:0 0;border:0;border-bottom:2px solid #0000;flex:none;margin-bottom:-1px;padding:11px 2px;font-size:13px;font-weight:600}.sheet-tabs button:hover{color:var(--text)}.sheet-tabs button[aria-selected=true]{color:var(--text);border-bottom-color:var(--accent)}.sheet-body{padding:4px 20px 18px;overflow-y:auto}.set-section{border-bottom:1px solid var(--border);padding:16px 0}.set-section:last-child{border-bottom:0}.set-section h3{text-transform:uppercase;letter-spacing:.07em;color:var(--text-faint);margin-bottom:12px;font-size:11px}.set-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 16px;min-height:34px;display:flex}.set-row+.set-row{margin-top:10px}.set-select,.set-time{font:inherit;border:1px solid var(--border-strong);background:var(--panel);color:var(--text);border-radius:8px;min-width:168px;padding:6px 8px}.set-time{font-variant-numeric:tabular-nums;min-width:120px}.set-select:focus,.set-time:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-wash);outline:none}.set-time::-webkit-calendar-picker-indicator{opacity:.5;cursor:pointer}.set-hint{color:var(--text-faint);margin:10px 0 0;font-size:11.5px;line-height:1.45}.kw-list{flex-direction:column;align-items:flex-start;gap:8px;display:flex}.kw-row{align-items:center;gap:6px;width:100%;display:flex}.kw-row .set-select{flex:1;min-width:0}.kw-add{border:1px dashed var(--border-strong);color:var(--text-dim);background:0 0;border-radius:8px;align-items:center;gap:6px;padding:7px 12px;font-size:12.5px;font-weight:600;display:inline-flex}.kw-add:hover{background:var(--inset);color:var(--text);border-color:var(--accent)}.kw-add svg{width:13px;height:13px}.set-howto{color:var(--text-dim);flex-direction:column;gap:8px;margin:0;padding-left:18px;font-size:12px;line-height:1.45;display:flex}.set-howto strong{color:var(--text)}.set-howto code{background:var(--inset);border-radius:4px;padding:1px 4px;font-family:JetBrains Mono,ui-monospace,monospace;font-size:11px}.wd-chips{flex-wrap:wrap;gap:5px;display:flex}.wd-chip{border:1px solid var(--border-strong);background:var(--panel);color:var(--text-dim);border-radius:8px;min-width:38px;padding:6px 9px;font-size:12px;font-weight:600}.wd-chip:hover{background:var(--inset)}.wd-chip[aria-pressed=true]{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.wd-chip.school[aria-pressed=true]{color:#241305;background:#e8873b;border-color:#e8873b}.set-cal-list{flex-direction:column;gap:12px;display:flex}.set-cal{align-items:flex-start;gap:10px;display:flex}.set-swatch{border-radius:4px;flex:none;width:12px;height:12px;margin-top:8px}.set-cal-main{flex:1;min-width:0}.set-name-field{align-items:center;gap:8px;display:flex}.set-name-field input{background:var(--inset);width:100%;color:var(--text);border:1px solid #0000;border-radius:7px;padding:6px 8px;font-weight:600}.set-name-field input:hover{border-color:var(--border-strong)}.set-name-field input:focus{border-color:var(--accent);background:var(--panel);box-shadow:0 0 0 3px var(--accent-wash);outline:none}.set-cal-meta{color:var(--text-faint);margin-top:4px;font-size:11.5px}.set-cal-err{color:var(--danger)}.vac-title{font-size:13px;font-weight:600}.vac-dates{flex-wrap:wrap;align-items:center;gap:8px;margin-top:6px;display:flex}.vac-dates .set-time{min-width:0}.vac-nights{color:var(--text-faint);font-size:11.5px}.vac-edited{color:var(--accent)}.hol-list{flex-direction:column;gap:2px;display:flex}.hol-row{border-radius:7px;align-items:center;gap:10px;padding:7px 4px;font-size:13px;display:flex}.hol-row:hover{background:var(--inset)}.hol-row input[type=checkbox]{width:15px;height:15px;accent-color:var(--accent);flex:none}.hol-name{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.hol-date{color:var(--text-faint);font-variant-numeric:tabular-nums;flex:none;font-size:11.5px}.hol-row.custom{flex-wrap:wrap;gap:6px 8px;padding:8px 4px}.hol-name-input{flex:140px;min-width:0}.hol-half{flex:none}.hol-half button{padding:5px 10px;font-size:12px}.tg-off{text-transform:uppercase;letter-spacing:.04em;color:var(--accent);background:var(--accent-wash);border-radius:4px;margin-left:auto;padding:1px 5px;font-size:9.5px;font-weight:700}.tg-off.half{color:#e8873b;background:#e8873b2e}.set-cal-actions{flex:none;gap:2px;display:flex}.set-empty,.set-about{color:var(--text-dim);margin:0;font-size:12.5px}.spinner{border:2px solid;border-right-color:#0000;border-radius:999px;flex:none;width:13px;height:13px;animation:.7s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}@media (width<=820px){body{overflow:auto}.app{grid-template-columns:1fr;height:auto;min-height:100dvh;overflow:visible}.side{border-right:0;border-bottom:1px solid var(--border);overflow:visible}.main,.grid-wrap,.grid-wrap.time{overflow:visible}.grid{min-height:60vh}.timegrid{min-height:70vh}.sync-note{display:none}}.login-wrap{background:var(--canvas);place-items:center;min-height:100dvh;padding:24px;display:grid}.login-card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);width:min(380px,100%);box-shadow:var(--shadow);flex-direction:column;gap:14px;padding:28px;display:flex}.login-brand{align-items:center;gap:10px;margin-bottom:4px;display:flex}.login-brand>div{flex-direction:column;line-height:1.25;display:flex}.login-brand span:last-child{color:var(--text-dim);font-size:11.5px}.login-card h1{margin:0;font-size:19px}.login-hint,.login-note{color:var(--text-dim);margin:0;font-size:11.5px}.login-note{margin-top:-8px}.login-card label{color:var(--text-dim);flex-direction:column;gap:5px;font-size:12px;display:flex}.login-card input{font:inherit;color:var(--text);background:var(--inset);border:1px solid var(--border);border-radius:8px;padding:9px 11px;font-size:14px}.login-card input:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.login-error{background:var(--danger-wash);color:var(--danger);border-radius:8px;padding:8px 11px;font-size:12.5px}.login-submit{background:var(--accent);color:var(--accent-ink);font:inherit;cursor:pointer;border:0;border-radius:8px;margin-top:4px;padding:10px;font-weight:600}.login-submit:disabled{opacity:.6;cursor:default}.login-switch{color:var(--accent);font:inherit;cursor:pointer;background:0 0;border:0;padding:2px;font-size:12.5px}.tg-ev.is-todo{background:color-mix(in srgb, var(--dotx) 12%, var(--tg-surface));border-left-style:dashed}.tg-ev.is-todo.is-pinned{border-left-style:solid}.tg-ev.is-todo.is-late{box-shadow:inset 0 0 0 1px var(--danger)}.tg-ev.is-todo.is-done .tg-ev-title{opacity:.6;text-decoration:line-through}.tg-ev-check{border:1px solid var(--border-strong);background:var(--tg-surface);cursor:pointer;width:14px;height:14px;color:var(--text-dim);border-radius:4px;place-items:center;padding:0;font-size:10px;line-height:1;display:grid;position:absolute;top:3px;right:3px}.tg-ev-check:hover{border-color:var(--accent);color:var(--accent)}.side-user{color:var(--text-faint);justify-content:space-between;align-items:center;gap:8px;margin-top:-12px;padding:0 4px;font-size:11px;display:flex}.side-user>span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.side-user button{color:var(--text-dim);font:inherit;background:0 0;border:0;flex:none;padding:2px;font-size:11px}.side-user button:hover{color:var(--accent)}.set-num{align-items:center;gap:6px;display:inline-flex}.set-num input{width:78px;color:var(--text);background:var(--inset);border:1px solid var(--border);text-align:right;font-variant-numeric:tabular-nums;border-radius:8px;padding:6px 9px;font-size:13px}.set-num-unit{color:var(--text-faint);min-width:26px;font-size:12px}.tg-ev.is-todo{cursor:grab}.tg-ev-unpin{border:1px solid var(--border-strong);background:var(--tg-surface);width:14px;height:14px;color:var(--text-dim);opacity:0;border-radius:4px;place-items:center;font-size:9px;line-height:1;display:grid;position:absolute;bottom:3px;right:3px}.tg-ev:hover .tg-ev-unpin,.tg-ev-unpin:focus-visible{opacity:1}.tg-ev-unpin:hover{border-color:var(--accent);color:var(--accent)}.ob-wrap{background:var(--canvas);place-items:center;min-height:100dvh;padding:24px;display:grid;overflow-y:auto}.ob-card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);width:min(560px,100%);box-shadow:var(--shadow);flex-direction:column;gap:18px;padding:26px 28px 20px;display:flex}.ob-progress{gap:6px;display:flex}.ob-dot{background:var(--border);border-radius:999px;flex:1;height:4px}.ob-dot.is-done{background:color-mix(in srgb, var(--accent) 45%, var(--border))}.ob-dot.is-now{background:var(--accent)}.ob-step{flex-direction:column;gap:12px;min-height:264px;display:flex}.ob-step h1{margin:0;font-size:21px}.ob-step p{color:var(--text-dim);margin:0;font-size:13.5px}.ob-hint{color:var(--text-faint)!important;font-size:12.5px!important}.ob-row{justify-content:space-between;align-items:center;gap:12px;font-size:13px;display:flex}.ob-row.wrap{flex-wrap:wrap}.ob-add{gap:8px;display:flex}.ob-add input{min-width:0;color:var(--text);background:var(--inset);border:1px solid var(--border);border-radius:8px;flex:1;padding:8px 11px;font-size:13px}.ob-add button{background:var(--accent);color:var(--accent-ink);border:0;border-radius:8px;padding:8px 14px;font-size:13px;font-weight:600}.ob-add button:disabled{opacity:.5}.ob-error{background:var(--danger-wash);color:var(--danger);border-radius:8px;padding:8px 11px;font-size:12.5px}.ob-cals{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.ob-cals li{border:1px solid var(--border);border-radius:9px;align-items:center;gap:10px;padding:7px 9px;display:flex}.ob-swatch{border-radius:999px;flex:none;width:9px;height:9px}.ob-cal-main{flex-direction:column;flex:1;min-width:0;line-height:1.3;display:flex}.ob-cal-main strong{font-size:13px;font-weight:600}.ob-cal-main span{color:var(--text-faint);font-size:11px}.ob-cals button{color:var(--text-faint);background:0 0;border:0;padding:4px;line-height:0}.ob-cals button:hover{color:var(--danger)}.ob-cals svg{width:14px;height:14px}.ob-help{color:var(--text-dim);font-size:12.5px}.ob-help summary{cursor:pointer;color:var(--accent)}.ob-help dl{margin:10px 0 0}.ob-help dt{color:var(--text);margin-top:8px;font-weight:600}.ob-help dd{margin:2px 0 0}.ob-check{align-items:center;gap:8px;font-size:13px;display:flex}.ob-next{color:var(--text-dim);flex-direction:column;gap:8px;margin:4px 0 0;padding:0;font-size:13px;list-style:none;display:flex}.ob-next li{align-items:flex-start;gap:8px;display:flex}.ob-next svg{width:13px;height:13px;color:var(--accent);flex:none;margin-top:3px}.ob-actions{border-top:1px solid var(--border);align-items:center;gap:8px;padding-top:14px;display:flex}.ob-actions .spacer{flex:1}.ob-skip,.ob-back{color:var(--text-dim);background:0 0;border:0;border-radius:8px;padding:8px 10px;font-size:13px}.ob-skip:hover,.ob-back:hover{background:var(--inset);color:var(--text)}.ob-next-btn{background:var(--accent);color:var(--accent-ink);border:0;border-radius:8px;padding:9px 18px;font-size:13px;font-weight:600}.acc-input{color:var(--text);background:var(--inset);border:1px solid var(--border);border-radius:8px;min-width:210px;padding:7px 10px;font-size:13px}.acc-notice,.acc-error{border-radius:8px;margin-bottom:4px;padding:9px 12px;font-size:12.5px}.acc-notice{background:var(--accent-wash);color:var(--accent)}.acc-error{background:var(--danger-wash);color:var(--danger)}.acc-actions{justify-content:flex-end;gap:8px;margin-top:4px;display:flex}.acc-primary,.acc-quiet,.acc-danger{border:1px solid #0000;border-radius:8px;padding:7px 14px;font-size:12.5px;font-weight:600}.acc-primary{background:var(--accent);color:var(--accent-ink)}.acc-primary:disabled{opacity:.5}.acc-quiet{background:var(--panel);border-color:var(--border-strong);color:var(--text-dim)}.acc-quiet:hover{color:var(--text);background:var(--inset)}.acc-danger{background:var(--danger-wash);color:var(--danger)}.acc-danger:hover{background:var(--danger);color:var(--panel)}.acc-link{color:var(--accent);font:inherit;background:0 0;border:0;padding:0;font-size:12.5px;text-decoration:underline}.acc-sessions,.acc-users{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.acc-sessions li,.acc-users li{border:1px solid var(--border);border-radius:9px;align-items:center;gap:10px;padding:8px 10px;display:flex}.acc-users li.is-off{opacity:.6}.acc-sess-main{flex-direction:column;flex:1;min-width:0;line-height:1.35;display:flex}.acc-sess-main strong{align-items:center;gap:6px;font-size:12.5px;font-weight:600;display:flex}.acc-sess-main>span{color:var(--text-faint);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.acc-badge{background:var(--accent-wash);color:var(--accent);border-radius:999px;padding:1px 7px;font-size:10px;font-weight:600}.acc-badge.off{background:var(--danger-wash);color:var(--danger)}.acc-user-actions{flex:none;gap:6px;display:flex}.set-section.danger h3{color:var(--danger)}
