:root{--bg: #f6f6f2;--surface: #ffffff;--surface-2: #f0f0ea;--ink: #20242f;--muted: #6f7480;--line: #e5e4dc;--line-strong: #d2d1c6;--accent: #3547b8;--primary: #3547b8;--primary-fg: #ffffff;--danger: #cc4237;--amber: #a56700;--ok: #2e7d4f;--inkbar-bg: #20242f;--inkbar-fg: #eef0f6;--inkbar-dim: #c9cedb;--scrim: rgba(22, 26, 36, .4);--radius: .875rem;--radius-btn: .625rem;--font: "Golos Text", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--mono: "Golos Text", system-ui, sans-serif;--shadow-sm: none;--shadow-ctrl: 0 .0625rem .125rem rgba(32, 36, 47, .07);--shadow: 0 .5rem 1.75rem rgba(32, 36, 47, .12);color-scheme:light}:root[data-theme=dark]{--bg: #16181f;--surface: #1f222b;--surface-2: #1a1d24;--ink: #e6e8ee;--muted: #969caa;--line: #2e323c;--line-strong: #3f4450;--accent: #8b9cf5;--primary: #4d63d8;--primary-fg: #ffffff;--danger: #e0655a;--amber: #d9a03e;--ok: #5cb789;--inkbar-bg: #313749;--inkbar-fg: #eef0f6;--inkbar-dim: #b9bfce;--scrim: rgba(6, 8, 12, .55);--shadow-ctrl: 0 .0625rem .125rem rgba(0, 0, 0, .25);--shadow: 0 .625rem 2rem rgba(0, 0, 0, .45);color-scheme:dark}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg: #16181f;--surface: #1f222b;--surface-2: #1a1d24;--ink: #e6e8ee;--muted: #969caa;--line: #2e323c;--line-strong: #3f4450;--accent: #8b9cf5;--primary: #4d63d8;--primary-fg: #ffffff;--danger: #e0655a;--amber: #d9a03e;--ok: #5cb789;--inkbar-bg: #313749;--inkbar-fg: #eef0f6;--inkbar-dim: #b9bfce;--scrim: rgba(6, 8, 12, .55);--shadow-ctrl: 0 .0625rem .125rem rgba(0, 0, 0, .25);--shadow: 0 .625rem 2rem rgba(0, 0, 0, .45);color-scheme:dark}}*{box-sizing:border-box}html{overflow-x:hidden}@media(min-width:43.8125rem){html{font-size:max(1vw,.625rem)}}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font);font-size:.875rem;line-height:1.45;overflow-x:hidden;font-feature-settings:"tnum"}.bottom-nav{display:none}.cal-name{width:8.125rem}button{font-family:inherit;font-size:.8125rem;cursor:pointer;border:.0625rem solid var(--line-strong);background:var(--surface);color:var(--ink);border-radius:var(--radius-btn);padding:.5rem .875rem;box-shadow:var(--shadow-ctrl);transition:border-color .12s,background .12s,color .12s,box-shadow .12s}button:hover{border-color:var(--accent);color:var(--accent)}button.ghost,.tab,.jump-today,.seg button,.bn-item,.chip,.skip-chip,.edit-toggle{box-shadow:none}button.primary{background:var(--primary);border-color:var(--primary);color:var(--primary-fg)}button.primary:hover{background:color-mix(in srgb,var(--primary) 88%,#000);border-color:color-mix(in srgb,var(--primary) 88%,#000);color:var(--primary-fg)}button.ghost{border-color:transparent;background:transparent}button.ghost:hover{background:var(--surface-2);border-color:transparent}button.danger{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 40%,transparent)}button:disabled{opacity:.45;cursor:default}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:.125rem solid var(--ink);outline-offset:.0625rem}input,select,textarea{font-family:inherit;font-size:.875rem;color:var(--ink);background:var(--surface);border:.0625rem solid var(--line-strong);border-radius:var(--radius-btn);padding:.5rem .6875rem;box-shadow:var(--shadow-ctrl)}input:focus,select:focus,textarea:focus{border-color:var(--accent)}textarea{resize:vertical}label{display:block;font-size:.75rem;color:var(--muted);margin-bottom:.25rem}.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}.app-header{display:flex;align-items:center;gap:1.25rem;padding:.625rem 1.25rem;background:var(--surface);border-bottom:.0625rem solid var(--line);position:sticky;top:0;z-index:30}.wordmark{font-weight:700;font-size:.9375rem;letter-spacing:-.01em;white-space:nowrap}.wordmark .dot{color:var(--muted);font-weight:400}.tabs{display:flex;gap:.125rem;flex:1}.tab{border:none;background:transparent;padding:.4375rem .75rem;border-radius:.5625rem;color:var(--muted);font-weight:500}.tab.active{background:color-mix(in srgb,var(--accent) 12%,var(--surface));color:var(--accent);font-weight:600}.tab .badge{display:inline-block;min-width:1.125rem;padding:.0625rem .3125rem;margin-left:.375rem;border-radius:.5625rem;background:var(--danger);color:#fff;font-size:.6875rem;font-weight:600;text-align:center}.tab .badge.calm{background:var(--muted)}.user-chip{color:var(--muted);font-size:.8125rem}main.page{max-width:80rem;margin:0 auto;padding:.875rem 1.25rem 3.75rem}.page-head{display:flex;align-items:center;gap:.625rem;flex-wrap:wrap;margin:.25rem 0 .75rem}.page-head h1{font-size:1.3125rem;margin:0 .25rem;font-weight:800;letter-spacing:-.01em;white-space:nowrap}.spacer{flex:1}.seg{display:inline-flex;border:.0625rem solid var(--line-strong);border-radius:var(--radius-btn);overflow:hidden;background:var(--surface)}.seg button{border:none;border-radius:0;background:transparent;color:var(--muted)}.seg button:hover{color:var(--accent)}.seg button.active{background:var(--primary);color:var(--primary-fg)}.seg button.active:hover{color:#fff}.date-nav{display:inline-flex;align-items:center;background:var(--surface);border:.0625rem solid var(--line-strong);border-radius:62.4375rem;overflow:hidden;box-shadow:var(--shadow-ctrl)}.date-nav button{width:2.5rem;height:2.375rem;display:inline-flex;align-items:center;justify-content:center;padding:0;border:none;border-radius:0;background:transparent;color:var(--accent);font-size:1.375rem;line-height:1;box-shadow:none}.date-nav .nav-prev{border-right:.0625rem solid var(--line)}.date-nav button:hover{background:color-mix(in srgb,var(--accent) 15%,var(--surface));color:var(--accent)}.date-nav button:active{background:color-mix(in srgb,var(--accent) 18%,var(--surface))}.jump-today{display:inline-flex;align-items:center;gap:.3125rem;font-size:.7812rem;font-weight:600;color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,transparent);border:.0625rem solid color-mix(in srgb,var(--accent) 30%,transparent);border-radius:62.4375rem;padding:.3125rem .75rem;box-shadow:none;white-space:nowrap}.jump-today:hover{color:var(--accent);background:color-mix(in srgb,var(--accent) 16%,transparent);border-color:color-mix(in srgb,var(--accent) 45%,transparent)}.head-day-btn{display:inline-flex;align-items:center;gap:.3125rem;font-size:.8125rem;font-weight:600;color:#fff;background:var(--accent);border:.0625rem solid var(--accent);border-radius:62.4375rem;padding:.375rem .8125rem;white-space:nowrap;box-shadow:none}.head-day-btn:hover{color:#fff;border-color:var(--accent);filter:brightness(1.06)}.head-actions{display:contents}.edit-toggle{display:inline-flex;align-items:center;gap:.5rem;cursor:pointer;-webkit-user-select:none;user-select:none;font-size:.8125rem;padding:.375rem .75rem;border:.0625rem solid var(--line-strong);border-radius:62.4375rem;background:var(--surface)}.edit-toggle input{width:1rem;height:1rem;margin:0;cursor:pointer}.edit-badge{font-size:.6875rem;font-weight:600;color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,transparent);border:.0625rem solid color-mix(in srgb,var(--accent) 35%,transparent);padding:.1875rem .5625rem;border-radius:62.4375rem;white-space:nowrap}.ios-hint{font-size:.8125rem;color:var(--ink);background:color-mix(in srgb,var(--accent) 6%,transparent);border:.0625rem solid color-mix(in srgb,var(--accent) 25%,transparent);border-radius:var(--radius);padding:.625rem .75rem}.ios-hint li{margin:.125rem 0}.modal-fieldset{border:none;margin:0;padding:0;min-width:0}.modal-fieldset:disabled{opacity:1}.modal-fieldset:disabled input,.modal-fieldset:disabled select{background:var(--surface-2);color:var(--ink);cursor:default}.cal-chips{display:flex;gap:.375rem;flex-wrap:wrap;align-items:center}.chip{display:inline-flex;align-items:center;gap:.375rem;min-height:2rem;padding:.25rem .5rem;border-radius:62.4375rem;border:.0625rem solid transparent;background:transparent;font-size:.7812rem;font-weight:500;color:var(--ink);cursor:pointer;-webkit-user-select:none;user-select:none}.chip:hover{background:color-mix(in srgb,var(--ink) 5%,transparent)}.chip .cal-dot{width:.5625rem;height:.5625rem}.chip.off{opacity:.4;background:transparent}.chip.off .cal-dot{background:transparent;box-shadow:inset 0 0 0 .0938rem var(--muted)}.skip-chip{border-style:dashed;color:var(--muted);font-size:.75rem}.skip-chip.off{opacity:.8}.view-controls{display:flex;align-items:center;gap:.625rem .75rem;flex-wrap:wrap;margin:0 0 .75rem}.ctrl-row{display:contents}.view-controls .cal-chips{flex:1 1 15rem}.ctrl-label,.drawer-head,.drawer-toggle,.drawer-scrim,.cal-toolbar,.period-strip{display:none}.day-layout-toggle{display:flex;justify-content:flex-end;margin:0 0 .5rem}.day-layout-toggle .seg button{font-size:.8125rem;padding:.3125rem .75rem}.grid-wrap{background:var(--surface);border:.0625rem solid var(--line);border-radius:var(--radius);overflow:auto;max-height:calc(100vh - 10.5rem);box-shadow:var(--shadow-sm);position:relative}.time-grid{display:grid;min-width:var(--grid-min, 56.25rem)}.corner{position:sticky;top:0;left:0;z-index:22;background:var(--surface);border-bottom:.0625rem solid var(--line)}.day-head{position:sticky;top:0;z-index:21;padding:.5rem .5rem .4375rem;text-align:center;background:var(--surface);border-bottom:.0625rem solid var(--line);border-left:.0625rem solid var(--line);font-size:.75rem;color:var(--muted)}.day-head .d{font-family:var(--mono);font-size:.9375rem;color:var(--ink);font-weight:500;margin-left:.25rem}.day-head.today{color:var(--ink);font-weight:600}.day-head.today{color:var(--accent)}.day-head.today .d{color:#fff;background:var(--accent);border-radius:.5rem;padding:.0625rem .4375rem}.day-head.weekend{background:var(--surface-2);color:var(--danger)}.gutter{position:sticky;left:0;z-index:20;background:var(--surface);border-right:.0625rem solid var(--line)}.gutter .h{position:absolute;right:.5rem;transform:translateY(-50%);font-family:var(--mono);font-size:.6562rem;color:var(--muted);background:var(--surface);padding:0 .125rem}.gutter .h:first-child{transform:none}.day-col{position:relative;border-left:.0625rem solid var(--line);background:repeating-linear-gradient(to bottom,transparent 0,transparent calc(var(--hour-px) - .0625rem),var(--line) calc(var(--hour-px) - .0625rem),var(--line) var(--hour-px))}.day-col.weekend{background-color:var(--surface-2)}.day-col.today{background-color:color-mix(in srgb,var(--ink) 3%,transparent)}.ev{position:absolute;display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;border-radius:.625rem;padding:.1875rem .4375rem .1875rem .5rem;font-size:.7188rem;line-height:1.3;overflow:hidden;cursor:pointer;border:none;text-align:left;color:var(--ink);background:color-mix(in srgb,var(--c) 13%,var(--surface));box-shadow:inset .1875rem 0 0 var(--c),var(--shadow-sm);z-index:5;transition:filter .1s}.ev:hover{filter:brightness(.96);z-index:7}.ice-start{position:absolute;left:0;right:0;height:0;border-top:.0625rem dashed color-mix(in srgb,var(--c) 60%,transparent);pointer-events:none;z-index:1}.ev .t{font-weight:600;flex:none;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.ev .tm{font-family:var(--mono);font-size:.625rem;color:var(--muted);flex:none;white-space:nowrap;overflow:hidden}.ev .loc{font-size:.6562rem;color:var(--muted);flex:none;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.ev.skipped{opacity:.5;background:transparent;box-shadow:inset .1875rem 0 color-mix(in srgb,var(--c) 35%,transparent);border:.0625rem dashed var(--line-strong);color:var(--muted)}.ev.skipped .t{text-decoration:line-through;font-weight:500}.ev.masked{background:repeating-linear-gradient(45deg,var(--surface-2),var(--surface-2) .3125rem,var(--line) .3125rem,var(--line) .625rem);box-shadow:inset .1875rem 0 0 var(--muted);color:var(--muted)}.travel{position:absolute;border-radius:.3125rem;pointer-events:none;background:color-mix(in srgb,var(--c) 8%,transparent);border-left:.1875rem dashed color-mix(in srgb,var(--c) 45%,transparent);z-index:4}.travel:after{content:"⌂";position:absolute;right:.1875rem;font-size:.5625rem;color:color-mix(in srgb,var(--c) 70%,transparent)}.travel.before:after{bottom:.0625rem;content:"→"}.travel.after:after{top:.0625rem;content:"←"}.travel.skipped{opacity:.35}.tchip{position:absolute;z-index:6;pointer-events:none;margin-left:.0625rem;font-family:var(--mono);font-size:.5938rem;font-weight:600;line-height:1.2;white-space:nowrap;color:color-mix(in srgb,var(--c) 55%,var(--ink));background:color-mix(in srgb,var(--surface) 88%,var(--c));border-radius:.25rem;padding:.0625rem .25rem .0625rem .125rem;box-shadow:var(--shadow-sm)}.tchip.skipped{opacity:.35}.clash{position:absolute;left:0;right:0;pointer-events:none;z-index:8;background:color-mix(in srgb,var(--danger) 7%,transparent);border-left:.1875rem solid var(--danger);border-radius:.25rem}.clash .clash-flag{position:absolute;top:-.0625rem;right:-.0625rem;background:var(--danger);color:#fff;font-size:.5625rem;font-weight:700;line-height:1;padding:.0625rem .25rem;border-radius:0 .25rem;pointer-events:none}.now-line{position:absolute;left:0;right:0;height:0;border-top:.125rem solid var(--danger);z-index:9;pointer-events:none}.now-line:before{content:"";position:absolute;left:-.1875rem;top:-.25rem;width:.4375rem;height:.4375rem;border-radius:50%;background:var(--danger)}.now-line .now-tm{position:absolute;left:.375rem;top:0;transform:translateY(-55%);background:var(--danger);color:#fff;font-family:var(--mono);font-size:.5938rem;font-weight:700;line-height:1.3;padding:.0625rem .3125rem;border-radius:.25rem}.depart-line{position:absolute;left:0;right:0;height:0;border-top:.125rem dashed #9333ea;z-index:8;pointer-events:none}.depart-line.arrive{border-top-color:#0891b2}.depart-line.arrive .depart-tm{background:#0891b2}.depart-line .depart-tm{position:absolute;right:.25rem;top:0;transform:translateY(-55%);background:#9333ea;color:#fff;font-size:.5938rem;font-weight:700;line-height:1.3;padding:.0625rem .3125rem;border-radius:.25rem;white-space:nowrap}.month-line.depart{color:#7c3aed;font-weight:600}.depart-set{margin-top:.625rem;padding-top:.625rem;border-top:.0625rem solid var(--line);display:flex;flex-direction:column;gap:.375rem}.offline-bar{max-width:45rem;margin:0 auto .625rem;padding:.5rem .875rem;border-radius:var(--radius);font-size:.8125rem;font-weight:500;color:var(--amber);background:color-mix(in srgb,var(--amber) 10%,var(--surface));border:.0625rem solid color-mix(in srgb,var(--amber) 32%,transparent)}.depart-bar{display:flex;align-items:center;gap:.5rem;flex-wrap:nowrap;background:var(--inkbar-bg);color:var(--inkbar-fg);border:none;border-radius:var(--radius);padding:.6875rem 1rem;margin-bottom:.75rem;font-size:.8125rem}.depart-bar .db-icon{flex:0 0 auto;font-size:1rem;line-height:1}.depart-bar .db-main{flex:0 0 auto;display:inline-flex;align-items:center;gap:.5rem;white-space:nowrap}.depart-bar .db-sep{flex:0 0 auto;color:var(--muted)}.depart-bar .cal-dot{flex:0 0 auto}.depart-bar .db-title{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}.depart-bar .big{font-family:var(--mono);font-weight:800;font-size:1rem;color:var(--inkbar-fg)}.depart-bar .pill{background:color-mix(in srgb,var(--inkbar-fg) 14%,transparent);color:var(--inkbar-dim);border:none}.depart-bar .db-sep{color:color-mix(in srgb,var(--inkbar-fg) 40%,transparent)}.depart-bar .db-title{color:var(--inkbar-dim)}.depart-bar.urgent{background:var(--danger)}.depart-bar.urgent strong{color:#fff;font-size:.9375rem}.ev-ic{margin-right:.1875rem;font-size:.6875rem;line-height:1}.ev-head{display:flex;align-items:flex-start;gap:.25rem}.ev-head .t{flex:1 1 auto;min-width:0}.ev-badges{flex:0 0 auto;display:flex;align-items:center;gap:.125rem;white-space:nowrap}.ev-mark{min-width:.8125rem;height:.875rem;padding:0 .1875rem;border-radius:.25rem;font-size:.625rem;font-weight:700;line-height:.875rem;text-align:center;color:#fff;background:var(--muted)}.ev-mark[data-v="5"]{background:#2f9e44}.ev-mark[data-v="4"]{background:#74b816}.ev-mark[data-v="3"]{background:#f59f00}.ev-mark[data-v="2"]{background:#e03131}.ev-hw{height:.875rem;padding:0 .25rem;border-radius:.25rem;font-size:.5938rem;font-weight:700;line-height:.875rem;white-space:nowrap;color:var(--amber);background:color-mix(in srgb,var(--amber) 20%,var(--surface));box-shadow:inset 0 0 0 .0625rem color-mix(in srgb,var(--amber) 45%,transparent)}.ev-hw.done{color:color-mix(in srgb,var(--muted) 80%,transparent);background:transparent;box-shadow:none;font-weight:600;padding:0 .0625rem}.wds{display:flex;gap:.125rem;max-width:45rem;margin:0 auto .5rem;padding:.125rem 0 .25rem;background:transparent;overflow-x:auto;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;scrollbar-width:none}.wds::-webkit-scrollbar{display:none}.wds-day{flex:0 0 14.2857%;scroll-snap-align:center;display:flex;flex-direction:column;align-items:center;gap:.375rem;padding:.1875rem 0 .25rem;border:none;background:transparent;box-shadow:none;border-radius:.75rem;cursor:pointer}.wds-day:hover{border-color:transparent;color:inherit}.wds-wd{font-size:.75rem;font-weight:500;color:var(--muted)}.wds-num{display:inline-flex;align-items:center;justify-content:center;width:2.375rem;height:2.375rem;border-radius:50%;border:.125rem solid transparent;box-sizing:border-box;font-size:1rem;font-weight:600;color:var(--ink);line-height:1;transition:background .12s,color .12s,border-color .12s,box-shadow .12s}.wds-day.weekend .wds-num{color:var(--danger)}.wds-day.today:not(.selected) .wds-num{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 50%,transparent)}.wds-day:hover .wds-num{background:color-mix(in srgb,var(--accent) 12%,transparent)}.wds-day.selected .wds-num,.wds-day.selected.weekend .wds-num,.wds-day.selected.today .wds-num,.wds-day.selected:hover .wds-num{background:var(--accent);border-color:var(--accent);color:#fff;box-shadow:0 .125rem .5rem color-mix(in srgb,var(--accent) 42%,transparent)}.wds-day.selected .wds-wd{color:var(--accent);font-weight:700}.agenda{display:flex;flex-direction:column;gap:.5rem;max-width:45rem;margin:.25rem auto 0;padding:0 .125rem 1.5rem}.agenda-card{position:relative;display:flex;width:100%;text-align:left;padding:.6875rem .875rem .6875rem 1.25rem;background:var(--surface);border:.0625rem solid var(--line);border-radius:var(--radius);transition:border-color .12s,box-shadow .12s}.agenda-card:before{content:"";position:absolute;left:.5rem;top:50%;transform:translateY(-50%);width:.25rem;height:60%;max-height:2.125rem;border-radius:.25rem;background:var(--c)}.agenda-card:hover{border-color:color-mix(in srgb,var(--c) 55%,var(--line));color:var(--ink)}.agenda-ic{display:inline-flex;align-items:center;flex:0 0 auto;color:var(--c, var(--muted))}.agenda-body{display:flex;flex-direction:column;gap:.1875rem;min-width:0;flex:1 1 auto}.agenda-meta{font-size:.7812rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.evm-route{display:inline-flex;align-items:center;gap:.375rem;margin-top:.5rem;font-size:.8125rem;font-weight:600;color:var(--accent);text-decoration:none}.evm-route:hover{text-decoration:underline}.agenda-title{font-size:.9688rem;font-weight:600;color:var(--ink);line-height:1.25;display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.agenda-hw-line{font-size:.7812rem;font-weight:600;color:var(--amber);margin-top:.1875rem}.agenda-hw-line.done{color:var(--muted);font-weight:500}.agenda-was{font-size:.7812rem;font-weight:500;color:var(--muted);margin-top:.1875rem}.agenda-was s{text-decoration-color:color-mix(in srgb,var(--ink) 45%,transparent)}.agenda-title .ev-mark{height:1.125rem;min-width:1.0625rem;line-height:1.125rem;font-size:.75rem;border-radius:.3125rem}.agenda-card.skipped{opacity:.55}.agenda-card.skipped .agenda-title{text-decoration:line-through;text-decoration-color:color-mix(in srgb,var(--ink) 45%,transparent)}.agenda-break{display:flex;align-items:center;justify-content:space-between;gap:.75rem;color:var(--muted);font-size:.7812rem;padding:.125rem .5rem}.agenda-break .ab-time{font-variant-numeric:tabular-nums;white-space:nowrap}.agenda-depart{align-self:flex-start;font-size:.8125rem;font-weight:600;color:var(--accent);background:color-mix(in srgb,var(--accent) 9%,var(--surface));border:.0625rem solid color-mix(in srgb,var(--accent) 22%,transparent);border-radius:.625rem;padding:.3125rem .75rem;margin:.125rem 0}.agenda-route{color:inherit;font-weight:700;text-decoration:none;white-space:nowrap}.agenda-route:hover{text-decoration:underline}.agenda-route-row{align-self:flex-start;margin:.125rem 0 .125rem .375rem;font-size:.8125rem}.agenda-route-row .agenda-route{color:var(--accent)}.depart-route{margin-left:auto;color:#fff;background:var(--accent);font-weight:600;text-decoration:none;border-radius:.5rem;padding:.25rem .75rem;white-space:nowrap;box-shadow:var(--shadow-ctrl)}.depart-route:hover{filter:brightness(1.06)}.agenda-empty{align-items:center;text-align:center;padding:3.5rem 1.25rem;gap:.375rem}.agenda-empty-emoji{font-size:2.75rem;line-height:1;margin-bottom:.375rem;opacity:.9}.agenda-empty-title{font-size:1rem;font-weight:600;color:var(--ink)}.agenda-empty-sub{font-size:.8438rem;color:var(--muted)}.hidden-lessons{max-width:45rem;margin:.75rem auto 0;padding:.625rem .75rem .375rem;border:.0625rem dashed var(--line-strong);border-radius:var(--radius);background:color-mix(in srgb,var(--muted) 6%,var(--surface))}.hl-head{font-size:.7188rem;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.03em;margin-bottom:.25rem}.hl-row{display:flex;align-items:center;gap:.625rem;padding:.5rem 0;border-top:.0625rem solid var(--line)}.hl-info{flex:1 1 auto;min-width:0;display:flex;flex-wrap:wrap;align-items:baseline;gap:.125rem .5rem}.hl-time{font-variant-numeric:tabular-nums;font-size:.7812rem;color:var(--muted)}.hl-title{font-weight:600;color:var(--ink);text-decoration:line-through;text-decoration-color:color-mix(in srgb,var(--ink) 40%,transparent)}.hl-tag{font-size:.6875rem;color:var(--muted);background:color-mix(in srgb,var(--muted) 14%,transparent);border-radius:.375rem;padding:.0625rem .4375rem}.hl-restore{flex:0 0 auto;font-size:.8125rem;font-weight:600;color:#fff;background:var(--accent);border:.0625rem solid var(--accent);border-radius:62.4375rem;padding:.375rem .8125rem;white-space:nowrap;box-shadow:none}.hl-restore:hover{color:#fff;border-color:var(--accent);filter:brightness(1.06)}.print-title{display:none}.print-btn{white-space:nowrap}.month-grid{display:grid;grid-template-columns:repeat(7,1fr);background:var(--surface);border:.0625rem solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm)}.month-head{padding:.375rem .5rem;font-size:.7188rem;font-weight:600;color:var(--muted);text-align:left;border-bottom:.0625rem solid var(--line-strong);border-right:.0625rem solid var(--line);background:var(--surface-2)}.month-head:nth-child(7n){border-right:none}.month-cell{min-height:7.375rem;padding:.1875rem .25rem .25rem;border-bottom:.0625rem solid var(--line);border-right:.0625rem solid var(--line);cursor:pointer;transition:background .1s;overflow:hidden;display:flex;flex-direction:column}.month-cell:hover{background:var(--surface-2)}.month-cell:nth-child(7n){border-right:none}.month-cell.other{background:var(--surface-2)}.month-cell.other .num{color:var(--muted)}.month-cell.weekend:not(.other){background:color-mix(in srgb,var(--danger) 3%,var(--surface))}.month-cell-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:.125rem}.month-cell .num{font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:.7812rem;font-weight:500;min-width:1.3125rem;text-align:center;border-radius:.4375rem;padding:.0625rem .125rem}.month-cell.weekend:not(.other) .num{color:var(--danger)}.month-cell.today .num{background:var(--accent);color:#fff;font-weight:600}.month-cell .warn{font-size:.625rem;font-weight:700;color:#fff;background:var(--danger);border-radius:62.4375rem;padding:0 .375rem;line-height:1rem}.month-lines{display:flex;flex-direction:column;gap:.0625rem;overflow:hidden}.month-line{display:flex;align-items:center;gap:.1875rem;font-size:.6562rem;line-height:1.35;white-space:nowrap;overflow:hidden;padding:.0625rem .1875rem .0625rem .25rem;border-left:.1875rem solid var(--c);border-radius:.1875rem;background:color-mix(in srgb,var(--c) 9%,transparent)}.month-line .mi{flex:none;display:inline-flex;align-items:center;color:var(--c, var(--muted))}.month-line .mt{overflow:hidden;text-overflow:ellipsis}.month-line.skipped{opacity:.5;text-decoration:line-through}.month-more{font-size:.625rem;color:var(--muted);padding-left:.25rem;margin-top:.0625rem}.card{background:var(--surface);border:.0625rem solid var(--line);border-radius:var(--radius);padding:.875rem 1rem;margin-bottom:.75rem;box-shadow:var(--shadow-sm)}.card h3{margin:0 0 .625rem;font-size:.875rem}.muted{color:var(--muted);font-size:.8125rem}.row{display:flex;gap:.625rem;align-items:center;flex-wrap:wrap}.cal-dot{display:inline-block;width:.625rem;height:.625rem;border-radius:.1875rem;background:var(--c);flex:none}.pill{font-size:.6875rem;padding:.125rem .5rem;border-radius:62.4375rem;border:.0625rem solid var(--line-strong);color:var(--muted);white-space:nowrap}.pill.open{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 45%,transparent);background:color-mix(in srgb,var(--danger) 7%,transparent)}.pill.ok{color:var(--ok);border-color:color-mix(in srgb,var(--ok) 45%,transparent)}.cal-item{padding:.75rem 0;border-bottom:.0625rem solid var(--line)}.cal-item:first-child{padding-top:.125rem}.cal-item.archived{opacity:.55}.cal-item-top{display:flex;align-items:center;gap:.5rem}.cal-item-top .cal-name{flex:1;min-width:0;width:auto;font-weight:600}.color-select{flex:none;width:2.125rem;height:2.125rem;padding:0;border-radius:.5rem;border:.0625rem solid var(--line-strong);background:var(--c, #888);color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer}.icon-btn{flex:none;padding:.4375rem .5625rem;font-size:.9375rem;line-height:1}.icon-btn.danger{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 35%,transparent)}.cal-item-meta{display:flex;gap:1rem;align-items:flex-end;flex-wrap:wrap;margin-top:.625rem}.field{display:flex;flex-direction:column;gap:.25rem}.field-cap{font-size:.6875rem;color:var(--muted)}.cal-item-meta input,.cal-item-meta select{font-size:.8125rem;padding:.375rem .5rem}.cal-item-meta select{width:auto;max-width:10rem}.num-input{width:3.875rem;text-align:center;-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}.num-input::-webkit-outer-spin-button,.num-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.lead-input{width:4rem}.travel-pair{display:inline-flex;align-items:center;gap:.375rem}.travel-pair .sep{color:var(--muted)}.notify-controls{display:inline-flex;align-items:center;gap:.375rem;flex-wrap:wrap}.chk{display:inline-flex;align-items:center;gap:.375rem;cursor:pointer;-webkit-user-select:none;user-select:none;font-size:.8125rem}.chk input{width:1rem;height:1rem;margin:0;cursor:pointer}.field .sm{font-size:.75rem}.anchor-select{min-width:5.75rem}.cal-item-actions{display:flex;gap:.5rem;margin-top:.75rem;padding-top:.625rem;border-top:.0625rem dashed var(--line-strong)}.cal-notify-hint{margin:.5rem 0 0;font-size:.75rem;line-height:1.45;color:var(--muted);background:color-mix(in srgb,var(--accent) 5%,transparent);border-left:.125rem solid color-mix(in srgb,var(--accent) 35%,transparent);padding:.3125rem .625rem;border-radius:.375rem}.add-row{display:flex;gap:.5rem;margin-top:.75rem}.add-row input{flex:1;min-width:0}.hw-count{display:inline-flex;align-items:center;justify-content:center;min-width:1.375rem;height:1.375rem;padding:0 .4375rem;margin-left:.625rem;border-radius:62.4375rem;background:var(--primary);color:#fff;font-size:.8125rem;font-weight:600}.hw-group{margin-bottom:.875rem;max-width:47.5rem}.hw-date{font-size:.8125rem;font-weight:600;color:var(--muted);text-transform:capitalize;margin:.875rem .125rem .5rem}.hw-card{background:var(--surface);border:.0625rem solid var(--line);border-radius:var(--radius);padding:.75rem 1rem;margin-bottom:.5rem;max-width:47.5rem;box-shadow:var(--shadow-sm)}.hw-card.done{opacity:.72}.hw-card-head{display:flex;align-items:flex-start;gap:.75rem}.hw-card-badge{flex:0 0 auto;width:2.5rem;height:2.5rem;border-radius:100%;display:flex;align-items:center;justify-content:center;font-size:1.25rem;line-height:1;background:color-mix(in srgb,var(--c) 22%,var(--surface));box-shadow:inset 0 0 0 .0938rem color-mix(in srgb,var(--c) 45%,transparent);color:var(--c)}.hw-head-body{flex:1 1 auto;min-width:0}.hw-head-top{display:flex;align-items:center;gap:.5rem}.hw-subj{font-weight:600;font-size:.9688rem;flex:1;min-width:0}.hw-status{flex:none;font-size:.6875rem;font-weight:700;padding:.25rem .625rem;border-radius:62.4375rem;border:none;background:var(--amber);color:#fff;white-space:nowrap}.hw-status.ok{font-weight:600;color:var(--muted);background:transparent;box-shadow:inset 0 0 0 .0625rem var(--line-strong)}.hw-due{margin-top:.125rem;font-size:.7812rem;color:var(--muted)}.hw-due b{color:var(--ink);font-weight:600}.hw-versions{margin-top:.625rem;border-top:.0625rem dashed var(--line-strong);padding-top:.5rem}.hw-ver-toggle{padding:.25rem 0;font-size:.7812rem;color:var(--accent);border:none;background:none}.hw-ver-toggle:hover{border:none;text-decoration:underline}.hw-ver-list{margin-top:.375rem;display:grid;gap:.625rem}.hw-ver{border-left:.125rem solid var(--line-strong);padding-left:.625rem}.hw-ver-time{font-size:.7188rem;color:var(--muted);margin-bottom:.125rem}.hw-text.prev{font-size:.8125rem;color:var(--muted)}.hw-solve{margin-top:.625rem}.hw-solve-btn{font-size:.7812rem;padding:.375rem .75rem;border-radius:62.4375rem;border:.0625rem solid color-mix(in srgb,var(--accent) 45%,transparent);color:var(--accent);background:color-mix(in srgb,var(--accent) 6%,transparent)}.hw-solve-btn:hover{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,transparent)}.hw-solve-head{display:flex;align-items:center;justify-content:space-between;font-weight:600;font-size:.8125rem;color:var(--accent);margin-bottom:.375rem}.hw-solution{background:color-mix(in srgb,var(--accent) 5%,var(--surface));border:.0625rem solid color-mix(in srgb,var(--accent) 20%,transparent);border-radius:var(--radius);padding:.625rem .75rem;font-size:.875rem;line-height:1.55;white-space:pre-wrap;word-break:break-word}.hw-resolve{margin-top:.375rem;font-size:.75rem;color:var(--muted);border:none;background:none;padding:.25rem 0}.hw-resolve:hover{border:none;color:var(--accent)}.hw-solve-err{color:var(--danger);font-size:.7812rem;margin:.375rem 0 0}.hw-done-section{margin-top:.625rem;max-width:47.5rem}.hw-done-toggle{font-size:.8125rem;color:var(--muted);border:none;background:none;padding:.375rem 0}.hw-done-toggle:hover{border:none;color:var(--accent)}.hw-all-done{color:var(--ok);font-size:.875rem;margin:.25rem 0 .75rem}.hw-text{margin:.5rem 0 0;font-size:.875rem;line-height:1.5;white-space:pre-wrap;word-break:break-word}.hw-materials{margin:.5rem 0 0;padding:0;list-style:none;display:grid;gap:.25rem}.hw-materials li{font-size:.8125rem;color:var(--ink);word-break:break-word}.hw-materials a{color:var(--accent)}.hw-attach-imgs{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.5rem}.hw-attach-thumb{padding:0;border:0;background:none;cursor:zoom-in}.hw-attach-imgs img{display:block;max-height:10rem;max-width:min(15rem,100%);border-radius:.5rem;border:.0625rem solid rgba(0,0,0,.12);object-fit:cover}@media(max-width:37.5rem){.hw-attach-imgs img{max-height:12.5rem;max-width:min(46vw,100%)}}.lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:#000000eb;display:flex;flex-direction:column;padding-bottom:env(safe-area-inset-bottom)}.lightbox-top{display:flex;align-items:center;gap:.5rem;padding:max(.5rem,env(safe-area-inset-top)) .75rem .5rem;color:#fff}.lightbox-title{flex:1;min-width:0;font-size:.8125rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;opacity:.85}.lightbox-count{margin-left:.5rem;opacity:.6}.lightbox-btn{flex:none;width:2.5rem;height:2.5rem;display:grid;place-items:center;border:0;border-radius:.625rem;background:#ffffff1f;color:#fff;font-size:1.125rem;text-decoration:none;cursor:pointer}.lightbox-frame{flex:1;min-height:0;display:grid;place-items:center;overflow:hidden;touch-action:none}.lightbox-frame img{max-width:100%;max-height:100%;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;will-change:transform}.lightbox-nav{position:absolute;top:50%;transform:translateY(-50%);width:2.75rem;height:4rem;border:0;border-radius:.75rem;background:#ffffff1f;color:#fff;font-size:1.875rem;line-height:1;cursor:pointer}.lightbox-nav.prev{left:.5rem}.lightbox-nav.next{right:.5rem}.hw-empty{text-align:center;padding:2.75rem 1.25rem;max-width:30rem;margin:0 auto}.hw-empty-ic{font-size:2.625rem;display:block;margin-bottom:.625rem}.hw-empty p{margin:.375rem 0}.conflict-item{border-left:.1875rem solid var(--danger);padding-left:.75rem;margin-bottom:.75rem}.conflict-item.resolved{border-left-color:var(--line-strong);opacity:.75}.conflict-events{display:grid;gap:.25rem;margin:.375rem 0}.day-group h2{font-size:.8125rem;color:var(--muted);font-weight:600;margin:1.125rem 0 .5rem;text-transform:capitalize}pre.src{font-family:var(--mono);font-size:.75rem;background:var(--bg);padding:.5rem .625rem;border-radius:.5rem;white-space:pre-wrap;max-height:7.5rem;overflow:auto;margin:.5rem 0}.msg-group{background:var(--surface);border:.0625rem solid var(--line);border-radius:var(--radius);margin-bottom:.75rem;box-shadow:var(--shadow-sm);overflow:hidden}.msg-group-head{padding:.625rem 1rem;background:var(--surface-2);border-bottom:.0625rem solid var(--line)}.cand-row{display:flex;gap:.625rem;align-items:center;flex-wrap:wrap;padding:.5rem 1rem;border-bottom:.0625rem solid var(--line)}.cand-row:last-child{border-bottom:none}.cand-row.checked{background:color-mix(in srgb,var(--ink) 4%,transparent)}.cand-when{font-family:var(--mono);font-size:.75rem;white-space:nowrap}.msg-group-actions{padding:.625rem 1rem;background:var(--surface-2);border-top:.0625rem solid var(--line);display:flex;gap:.625rem;align-items:center;flex-wrap:wrap}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--scrim);backdrop-filter:blur(.1875rem);-webkit-backdrop-filter:blur(.1875rem);display:flex;align-items:flex-start;justify-content:center;padding:2.5rem 1rem;z-index:50;overflow-y:auto}.modal{background:var(--surface);border:.0625rem solid var(--line);border-radius:1rem;box-shadow:var(--shadow);padding:1.25rem 1.375rem;width:100%;max-width:27.5rem}.modal h2{margin:0 0 1rem;font-size:1.125rem;font-weight:800;letter-spacing:-.01em}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:.625rem}.form-grid .full{grid-column:1 / -1}.modal-actions{display:flex;gap:.5rem;margin-top:1.125rem;padding-top:.875rem;border-top:.0625rem solid var(--line);flex-wrap:wrap}.login-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:.875rem;padding:1.25rem}.login-screen h1{font-size:1.375rem;margin:0}.login-box{display:flex;gap:.5rem;width:100%;max-width:23.75rem}.login-box input{flex:1}.toast{position:fixed;bottom:1.25rem;left:50%;transform:translate(-50%);background:var(--inkbar-bg);color:var(--inkbar-fg);padding:.625rem 1.125rem;border-radius:.625rem;box-shadow:var(--shadow);z-index:60;font-size:.8125rem;max-width:90vw}@media(max-width:43.75rem){.app-header{display:none}.bottom-nav{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:40;background:var(--surface);border-top:.0625rem solid var(--line);padding-bottom:env(safe-area-inset-bottom,0);box-shadow:0 -.125rem .75rem #16211e0f}.bn-item{flex:1;border:none;background:none;border-radius:0;padding:.4375rem .125rem .5rem;display:flex;flex-direction:column;align-items:center;gap:.125rem;color:var(--muted);min-height:3.5rem}.bn-item:hover{border:none}.bn-item.active{color:var(--accent)}.bn-item.active .bn-icon{transform:translateY(-.0625rem)}.bn-icon{position:relative;font-size:1.25rem;line-height:1;filter:grayscale(1);opacity:.5;transition:filter .12s,opacity .12s}.bn-item.active .bn-icon{filter:none;opacity:1}.bn-label{font-size:.6562rem;font-weight:500;letter-spacing:-.01em}.bn-icon .badge{position:absolute;top:-.375rem;left:.75rem;margin:0;min-width:1rem;padding:0 .25rem;font-size:.625rem;line-height:1rem}main.page{padding:max(.625rem,env(safe-area-inset-top,0)) .625rem calc(4.5rem + env(safe-area-inset-bottom,0))}.page-head{gap:.375rem .5rem;align-items:center;margin:.125rem 0 .625rem}.page-head .spacer,.page-head.cal{display:none}.period-strip{display:flex;align-items:center;justify-content:center;gap:.375rem;margin:0 0 .5rem}.period-strip button{width:2.375rem;height:2.375rem;padding:0;border-radius:50%;font-size:1.125rem;line-height:1;color:var(--muted)}.period-strip .pt{min-width:10.625rem;text-align:center;font-size:.9375rem;font-weight:800;letter-spacing:-.01em;cursor:pointer}.cal-toolbar{display:flex;align-items:center;gap:.5rem;margin:0 0 .625rem}.ctb-spacer{flex:1}.ctb-pill{font-size:.875rem;font-weight:600;color:var(--ink);background:var(--surface);border:.0625rem solid var(--line-strong);border-radius:62.4375rem;padding:0 1rem;min-height:2.5rem;box-shadow:var(--shadow-ctrl)}.ctb-pill.current{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 35%,var(--line-strong))}.ctb-icon{display:inline-flex;align-items:center;justify-content:center;min-width:2.875rem;height:2.5rem;padding:0 .625rem;font-size:1.0625rem;font-weight:700;color:var(--ink);background:var(--surface);border:.0625rem solid var(--line-strong);border-radius:.75rem;box-shadow:var(--shadow-ctrl)}.ctb-icon svg{display:block}.ctb-icon{color:var(--muted)}.ctb-wait{font-size:.9375rem}.page-head .date-nav{flex:0 0 auto}.page-head .date-nav button{width:2.75rem;height:2.625rem}.page-head .jump-today{flex:0 0 auto;order:3}.page-head h1{flex:1 1 5rem;min-width:0;order:0;margin:0;font-size:1rem;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}.page-head .drawer-toggle{flex:0 0 auto;padding:.5625rem .8125rem;font-size:1rem}.edit-badge{flex:0 0 auto}.view-controls .seg button{padding:.5625rem .375rem}.seg button{min-height:2.5rem}input,select,textarea{font-size:1rem;padding:.5625rem .6875rem}.form-grid{grid-template-columns:1fr}button{min-height:2.5rem}.grid-wrap{max-height:none;overflow-x:auto;overflow-y:hidden}.drawer-toggle{display:inline-flex;align-items:center;justify-content:center;gap:.375rem;min-height:2.5rem;border:.0625rem solid var(--line-strong);border-radius:var(--radius-btn);background:var(--surface);color:var(--ink)}.view-controls{position:fixed;top:0;right:0;bottom:0;width:min(86vw,21.25rem);margin:0;flex-direction:column;flex-wrap:nowrap;align-items:stretch;gap:0;background:var(--surface);border-left:.0625rem solid var(--line);border-radius:1.25rem 0 0 1.25rem;box-shadow:-.75rem 0 2.5rem var(--scrim);z-index:60;padding:0 1.125rem calc(1.25rem + env(safe-area-inset-bottom,0));overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;transform:translate(102%);transition:transform .32s cubic-bezier(.32,.72,0,1)}.view-controls.open{transform:translate(0)}.drawer-head{display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:1;background:var(--surface);padding:1rem 0 .75rem;border-bottom:.0625rem solid var(--line);font-weight:800;font-size:1.0625rem;letter-spacing:-.01em}.drawer-close{border:none;border-radius:50%;background:var(--surface-2);font-size:1rem;line-height:1;color:var(--muted);height:2.25rem;width:2.25rem;min-height:2.25rem;min-width:2.25rem;padding:0;box-shadow:none}.drawer-close:active{background:var(--line);color:var(--ink)}.ctrl-row{display:flex;flex-direction:column;align-items:stretch;gap:.5rem;padding:.875rem 0;border-bottom:.0625rem solid var(--line)}.ctrl-row.wrap{border-bottom:none}.ctrl-label{display:block;font-size:.7812rem;font-weight:600;color:var(--muted)}.view-controls .seg{width:100%}.view-controls .seg button{flex:1;min-height:2.75rem}.view-controls .cal-chips{flex:none;gap:.5rem}.view-controls .chip{padding:.5rem .75rem;font-size:.8125rem}.view-controls .print-btn{min-height:2.625rem}.view-controls .print-opts{flex-direction:column;align-items:stretch}.view-controls .print-opts>*{width:100%}.view-controls .print-opts .print-month,.view-controls .print-opts .print-format,.view-controls .print-opts .doc-btn{min-height:2.625rem}.view-controls .print-opts .print-flag{justify-content:flex-start;min-height:2.25rem}.drawer-scrim{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:55;background:var(--scrim);opacity:0;pointer-events:none;transition:opacity .28s ease}.drawer-scrim.show{opacity:1;pointer-events:auto}body.drawer-lock{overflow:hidden}.overlay{padding:0;align-items:flex-start}.modal{max-width:100%;border-radius:0 0 1rem 1rem;padding:1rem .875rem calc(1.25rem + env(safe-area-inset-bottom,0))}.modal-actions{background:var(--surface);padding-top:.75rem;margin:1rem -.875rem 0;padding-left:.875rem;padding-right:.875rem;border-top:.0625rem solid var(--line)}.modal-actions button{flex:1;min-width:44%}.card{padding:.75rem .8125rem}.card h3{font-size:.9375rem}.card .row>input:not([type=number]),.card .row>select,.card .row>textarea{flex:1 1 100%;min-width:0}.card .row>button{flex:1 1 auto;min-height:2.625rem}.cal-item-meta{gap:.625rem .875rem;margin-top:.75rem}.cal-item-meta .field{flex:1 1 8.125rem}.cal-item-meta .field select{width:100%}.color-select{width:2.5rem;height:2.5rem}.icon-btn{min-height:2.5rem}.add-row{flex-direction:column}.add-row input,.add-row button{width:100%;min-height:2.625rem}.cand-row{padding:.625rem .75rem}.cand-row .cand-when{flex:1 1 100%}.msg-group-actions{gap:.5rem}.msg-group-actions select{flex:1 1 100%}.msg-group-actions button{flex:1}.conflict-events .row{flex-wrap:wrap}.card input[readonly],pre.src{max-width:100%}}@media(prefers-reduced-motion:no-preference){.modal{animation:pop .18s ease-out}@keyframes pop{0%{transform:translateY(.5rem) scale(.98);opacity:0}}.overlay{animation:overlay-in .18s ease-out}@keyframes overlay-in{0%{opacity:0}}}@media print{@page{size:A4 landscape;margin:8mm}:root{--shadow: none}html,body{background:#fff}.app-header,.bottom-nav,.cal-chips,.depart-bar,.page-head,.toast,.overlay{display:none!important}main.page{max-width:none;margin:0;padding:0}.print-title{display:block;font-size:15pt;font-weight:700;text-transform:capitalize;margin:0 0 4mm;color:#000}.month-grid,.month-cell,.month-line{-webkit-print-color-adjust:exact;print-color-adjust:exact}.month-grid{border:.0625rem solid #999;border-radius:0;box-shadow:none;break-inside:avoid}.month-head{background:#f0f0f0!important;border-color:#999;color:#000;padding:.1875rem .375rem}.month-cell{height:2.75cm;min-height:0;border-color:#bbb;overflow:hidden;break-inside:avoid}.month-cell.other{background:#fafafa!important}.month-cell.weekend:not(.other){background:#fff!important}.month-cell.today .num{background:#000!important;color:#fff!important}.month-line{font-size:8pt;line-height:1.25;padding:0 .125rem 0 .1875rem;background:transparent!important;border-left-width:.1875rem}.month-line .mt,.month-cell .num,.month-more{color:#000!important}.month-more{font-size:7.5pt}}.doc-actions{display:flex;flex-wrap:wrap;gap:.5rem}.doc-btn{white-space:nowrap}.print-opts{align-items:center}.print-opts .print-month,.print-opts .print-format{min-height:2rem;padding:0 .5rem;border:.0625rem solid var(--border);border-radius:.375rem;background:var(--surface);color:var(--text);font-size:.8125rem;box-sizing:border-box;min-width:0}.print-flag{display:inline-flex;align-items:center;gap:.375rem;font-size:.8125rem;white-space:nowrap}.print-flag input{width:auto;margin:0}.error-text{color:var(--danger);font-size:.8125rem;margin:.375rem 0}.exemption-modal{max-width:35rem}.exm-hint{margin-top:-.25rem}.exm-weeknav{display:flex;align-items:center;justify-content:center;gap:.75rem;margin:.625rem 0}.exm-week{font-weight:600;min-width:10.625rem;text-align:center}.exm-days{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.375rem}.exm-day{display:grid;grid-template-columns:1fr auto;align-items:center;gap:.25rem .75rem;padding:.5rem .625rem;border:.0625rem solid var(--line);border-radius:var(--radius);background:var(--surface)}.exm-day.on{border-color:var(--accent, #3455d1);background:color-mix(in srgb,var(--accent, #3455d1) 6%,var(--surface))}.exm-check{display:flex;align-items:center;gap:.5rem;cursor:pointer}.exm-date{font-variant-numeric:tabular-nums}.exm-wd{color:var(--muted)}.exm-after{display:inline-flex;align-items:center;gap:.375rem;font-size:.8125rem;color:var(--muted);white-space:nowrap}.exm-modeseg{font-size:.6875rem}.exm-modeseg button{padding:.125rem .4375rem}.exm-time{width:5.25rem}.exm-num{width:3.375rem;text-align:center;-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}.exm-num::-webkit-outer-spin-button,.exm-num::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.exm-meta{grid-column:1 / -1;font-size:.7188rem}.exm-appdate{margin:.75rem 0 .25rem;display:flex;flex-wrap:wrap;gap:.625rem 1rem}.exm-appdate label{display:flex;flex-direction:column;gap:.25rem;font-size:.75rem;color:var(--muted);max-width:15rem}.exm-foot{margin-top:.625rem;font-size:.75rem}.exm-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.625rem .875rem}.exm-fields .field input{width:100%}@media(max-width:35rem){.exm-fields,.exm-day{grid-template-columns:1fr}.exm-after{justify-self:start}}.more-menu{position:relative;display:inline-block}.more-menu summary{list-style:none;cursor:pointer;width:2.125rem;height:2.125rem;display:inline-flex;align-items:center;justify-content:center;border:.0625rem solid var(--line-strong);border-radius:var(--radius-btn);background:var(--surface);color:var(--muted);box-shadow:var(--shadow-ctrl)}.more-menu summary::-webkit-details-marker{display:none}.more-menu[open] summary{color:var(--accent);border-color:var(--accent)}.more-panel{position:absolute;right:0;top:2.5rem;z-index:45;min-width:21.25rem;background:var(--surface);border:.0625rem solid var(--line);border-radius:.75rem;box-shadow:var(--shadow);padding:.25rem .875rem .625rem}.more-panel .ctrl-row{padding:.625rem 0}.tools-rows{display:contents}@media(min-width:43.8125rem){.view-controls>.tools-rows{display:none}}@media(max-width:43.75rem){.more-menu{display:none}}@media(min-width:75rem){main.page{max-width:87.5rem}.ev{font-size:.7812rem}.ev .tm,.ev .loc,.gutter .h{font-size:.6875rem}}.form-grid label{display:block;font-size:.75rem;font-weight:600;color:var(--muted);margin:0 0 .25rem}.form-grid input,.form-grid select{min-height:2.375rem}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:.125rem solid var(--accent);outline-offset:.125rem}.inbox-empty{text-align:center;padding:1.75rem 1rem 1.25rem;color:var(--muted)}.inbox-empty .inbox-empty-title{margin:.625rem 0 .25rem;font-size:.9375rem;font-weight:600;color:var(--ink)}.inbox-empty p{max-width:26.25rem;margin:0 auto}.agenda-empty-emoji{color:var(--muted)}.grade-card{padding:.75rem 1rem}.grade-head{display:flex;align-items:center;gap:.625rem;margin-bottom:.5rem}.grade-head .hw-card-badge{width:2rem;height:2rem}.grade-subj{flex:1;min-width:0;font-size:.9062rem}.grade-avg{font-size:.75rem;font-weight:700;color:var(--muted);background:var(--surface-2);border-radius:62.4375rem;padding:.1875rem .625rem}.grade-marks{display:flex;flex-wrap:wrap;gap:.375rem}.grade-mark{min-width:1.375rem;height:1.375rem;line-height:1.375rem;font-size:.8125rem;border-radius:.375rem}.grade-mark.hard{box-shadow:0 0 0 .125rem color-mix(in srgb,var(--ink) 25%,transparent)}.hw-done-btn{font-size:.75rem;padding:.25rem .625rem}.agenda-now{display:flex;align-items:center;gap:.5rem;margin:.125rem 0}.agenda-now .an-time{font-size:.6875rem;font-weight:800;color:var(--danger);font-feature-settings:"tnum"}.agenda-now .an-line{flex:1;height:.125rem;border-radius:.0625rem;background:var(--danger)}.agenda.p-fill .agenda-break.past,.agenda.p-fill .agenda-break.current{border-radius:.625rem}.agenda.p-fill .agenda-item.past .agenda-card,.agenda.p-fill .agenda-break.past,.agenda.p-fill .agenda-item.past .agenda-depart{background:color-mix(in srgb,var(--accent) 15%,var(--surface))}.agenda-item{display:flex;flex-direction:column;gap:.375rem}.agenda.p-fill .agenda-item.current .agenda-card,.agenda.p-fill .agenda-break.current{position:relative;overflow:hidden}.agenda-fill{position:absolute;left:0;right:0;top:0;height:0;background:color-mix(in srgb,var(--accent) 15%,var(--surface));transition:height 4s linear;pointer-events:none}.agenda-fill:after{content:"";position:absolute;left:0;right:0;bottom:-.0938rem;height:.1875rem;border-radius:.125rem;background:color-mix(in srgb,var(--accent) 75%,var(--surface))}.agenda-fill-edge{position:absolute;right:.625rem;bottom:0;transform:translateY(50%);z-index:1;font-size:.6562rem;font-weight:800;font-feature-settings:"tnum";line-height:1;color:var(--accent);background:var(--surface);border-radius:62.4375rem;padding:.1875rem .4375rem;box-shadow:0 0 0 .0938rem color-mix(in srgb,var(--accent) 45%,transparent)}.agenda-fill.horiz{top:0;bottom:0;right:auto;height:auto;width:0;background:color-mix(in srgb,var(--accent) 14%,transparent);transition:width 4s linear}.agenda-fill.horiz:after{left:auto;right:-.0938rem;top:0;bottom:0;width:.1875rem;height:auto}.agenda-card .agenda-body,.agenda-break .ab-label,.agenda-break .ab-time{position:relative;z-index:1}@media(prefers-reduced-motion:no-preference){.agenda-fill{animation:fill-bg-breathe 2.4s ease-in-out infinite alternate}@keyframes fill-bg-breathe{0%{background-color:color-mix(in srgb,var(--accent) 13%,var(--surface))}to{background-color:color-mix(in srgb,var(--accent) 26%,var(--surface))}}.agenda-fill.horiz{animation-name:fill-bg-breathe-h}@keyframes fill-bg-breathe-h{0%{background-color:color-mix(in srgb,var(--accent) 12%,transparent)}to{background-color:color-mix(in srgb,var(--accent) 24%,transparent)}}.agenda-fill:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(170deg,transparent 30%,color-mix(in srgb,var(--accent) 14%,transparent) 50%,transparent 70%);background-size:100% 320%;animation:fill-shimmer 3.4s ease-in-out infinite}.agenda-fill.horiz:before{background:linear-gradient(100deg,transparent 30%,color-mix(in srgb,var(--accent) 14%,transparent) 50%,transparent 70%);background-size:320% 100%;animation-name:fill-shimmer-h}@keyframes fill-shimmer{0%{background-position:0 130%}to{background-position:0 -30%}}@keyframes fill-shimmer-h{0%{background-position:130% 0}to{background-position:-30% 0}}.agenda-fill:after{animation:fill-breathe 2.4s ease-in-out infinite alternate}@keyframes fill-breathe{0%{opacity:.55;box-shadow:0 0 color-mix(in srgb,var(--accent) 0%,transparent)}to{opacity:1;box-shadow:0 0 .5rem .0625rem color-mix(in srgb,var(--accent) 45%,transparent)}}.agenda-fill-edge{animation:edge-ring 2.4s ease-out infinite}@keyframes edge-ring{0%{box-shadow:0 0 0 .0938rem color-mix(in srgb,var(--accent) 45%,transparent),0 0 0 .0938rem color-mix(in srgb,var(--accent) 35%,transparent)}70%,to{box-shadow:0 0 0 .0938rem color-mix(in srgb,var(--accent) 45%,transparent),0 0 0 .5625rem color-mix(in srgb,var(--accent) 0%,transparent)}}}.grade-trend{font-size:.9375rem;font-weight:800;line-height:1}.grade-trend.up{color:var(--ok)}.grade-trend.down{color:var(--danger)}.grade-spark{width:5.25rem;height:1.25rem;margin-left:auto;stroke:color-mix(in srgb,var(--c, var(--accent)) 70%,var(--ink));opacity:.75}.search-scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--scrim);z-index:60;display:flex;justify-content:center;align-items:flex-start;padding:8vh 1rem 1rem}.search-panel{background:var(--surface);border-radius:.875rem;width:min(35rem,100%);max-height:78vh;display:flex;flex-direction:column;box-shadow:0 1.125rem 3.125rem #00000040}.search-bar{display:flex;align-items:center;gap:.5rem;padding:.625rem .75rem;border-bottom:.0625rem solid var(--line)}.search-bar input{flex:1;min-width:0;border:none;background:none;font-size:.9375rem;outline:none;color:var(--ink)}.search-results{overflow-y:auto;padding:.5rem .75rem .75rem}.search-cap{font-size:.75rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:.625rem 0 .25rem}.search-row{display:block;width:100%;text-align:left;background:none;border:none;border-radius:.5rem;padding:.4375rem .5rem;font:inherit;color:var(--ink);cursor:pointer}.search-row:hover{background:color-mix(in srgb,var(--accent) 8%,transparent)}.search-when{font-size:.75rem;font-weight:700;font-feature-settings:"tnum";color:var(--muted);margin-right:.5rem}.search-subj{font-weight:700;margin-right:.375rem}.search-text{display:block;font-size:.8125rem;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.search-text.full{white-space:pre-wrap;color:var(--ink)}
