@font-face{font-family:"Source Sans 3";font-style:normal;font-display:swap;font-weight:400;src:url(/assets/source-sans-3-latin-400-normal-DQi5PRDE.woff2) format("woff2"),url(/assets/source-sans-3-latin-400-normal-AFMiCETP.woff) format("woff")}@font-face{font-family:"Source Sans 3";font-style:normal;font-display:swap;font-weight:600;src:url(/assets/source-sans-3-latin-600-normal-DeckBYAU.woff2) format("woff2"),url(/assets/source-sans-3-latin-600-normal-BvDVuF-j.woff) format("woff")}:root{--bg: #eef3f8;--surface: #ffffff;--ink: #12263a;--muted: #5b7086;--line: #d9e3ee;--accent: #2f6fed;--accent-ink: #ffffff;--accent-press: #2457c9;--navy: #102033;--sidebar: #102033;--sidebar-ink: #f4f8fc;--sidebar-dim: #9eb0c3;--sidebar-active: #1a3352;--teal: #3ddecf;--danger: #c44747;--danger-ink: #ffffff;--shadow: 0 10px 28px rgb(16 32 51 / 8%);--radius: 18px;--control: 12px;--ease: cubic-bezier(.16, 1, .3, 1);--ease-drawer: cubic-bezier(.32, .72, 0, 1);--font: "Source Sans 3", "Segoe UI", sans-serif;color-scheme:light;--blocked: #fde8e6;--blocked-ink: #9a3b32;--reserved: #f8ecc4;--reserved-ink: #8a6410;--requested: #e4eefc;--requested-ink: #2451b8;--approved: #d9f3e3;--approved-ink: #1d7a45;--overlap: #efe4f8;--overlap-ink: #6d3f9a;--callout: #f8ecc4;--callout-ink: #8a4b12;--tone: var(--ink);--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px)}@supports (-webkit-touch-callout: none){@media(display-mode:standalone){html,body,#root{height:100%;min-height:-webkit-fill-available}.app,.boot,.gate{position:fixed;top:0;right:0;bottom:0;left:0;height:auto;min-height:0}}}*{box-sizing:border-box}html,body,#root{height:100%;max-width:100%;overflow:hidden}html,body,#root{background:#f6f9fc}body{margin:0;font-family:var(--font);color:var(--ink);background:#f6f9fc;font-size:1rem;font-weight:400;line-height:1.5;text-rendering:optimizeLegibility;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}input,textarea,select,.secret{user-select:text;-webkit-user-select:text}::selection{background:#cfe0fb;color:#102033}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}button,input,select,textarea{font:inherit;color:inherit}button{touch-action:manipulation;-webkit-tap-highlight-color:transparent}input,select,textarea{font-size:16px;caret-color:var(--accent)}::placeholder{color:var(--muted);opacity:1}*{scrollbar-color:#9eb0c3 transparent}a{color:#2457c9}.skip{position:absolute;left:12px;top:-40px;background:var(--surface);color:var(--ink);padding:8px 12px;z-index:5;border-radius:8px}.skip:focus{top:12px}.app{height:100dvh;overflow:hidden;display:grid;grid-template-columns:248px 1fr}.rail{background:var(--sidebar);color:var(--sidebar-ink);padding:22px 14px calc(18px + var(--safe-bottom));display:flex;flex-direction:column;gap:18px;position:sticky;top:0;height:100dvh;min-height:0;overflow:auto}.brand{display:flex;gap:12px;align-items:center;padding:0 8px}.mark{width:44px;height:44px;border-radius:12px;display:block;object-fit:cover}.brand strong{display:block;font-size:15px;letter-spacing:.04em}.brand span{color:var(--sidebar-dim);font-size:11px;letter-spacing:.12em}.rail nav,.drawer nav{display:flex;flex-direction:column;gap:4px}.nav-link,.tabbar a,.drawer a{display:flex;align-items:center;gap:12px;min-height:44px;padding:0 12px;border-radius:12px;color:var(--sidebar-dim);text-decoration:none;font-weight:600;font-size:.95rem;transition:background-color .18s var(--ease),color .18s var(--ease)}.nav-mark{width:20px;height:20px;flex:none;color:inherit}.nav-link[aria-current=page]{background:var(--sidebar-active);color:var(--sidebar-ink)}.nav-link[aria-current=page] .nav-mark{color:var(--teal)}.rail-foot{margin-top:auto;display:grid;gap:6px;padding:8px 12px 0}.rail-foot p{margin:0;color:#8ea3b8;font-size:11px;letter-spacing:.08em;text-transform:uppercase}.rail-foot .session-name{text-transform:none;letter-spacing:0;font-size:14px;color:#d7e4f0;font-weight:600}.rail .quiet,.drawer .quiet{background:transparent;color:var(--sidebar-dim);border:0;display:flex;gap:10px;align-items:center;min-height:40px;padding:0;cursor:pointer;font-weight:600;text-decoration:none}.workspace{min-width:0;min-height:0;height:100%;max-width:100%;display:flex;flex-direction:column;overflow:hidden;position:relative;background:#f6f9fc}.topbar{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0;max-width:100%;min-height:68px;padding:calc(8px + var(--safe-top)) 12px 8px;position:sticky;top:0;z-index:2;background:#f6f9fc;backdrop-filter:none;-webkit-backdrop-filter:none}.crumb{margin:0;color:var(--muted);font-weight:600;min-width:0;flex:1 1 auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.crumb strong{color:var(--ink);font-weight:600}.top-actions{display:flex;align-items:center;gap:10px;flex:none;min-width:0}.logout-btn{flex:none;white-space:nowrap}.year-select{min-height:36px;max-width:100%;border-radius:999px;border:1.5px solid var(--line);background:var(--surface);padding:0 10px;color:var(--ink);font-weight:600}.role-pill{display:inline-flex;align-items:center;min-height:32px;padding:0 12px;border-radius:999px;font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.role-pill.admin{background:#e7eefc;color:#2451b8}.role-pill.personal{background:#e5f6ee;color:#1c7a45}.icon-btn{width:40px;height:40px;border:0;border-radius:12px;background:transparent;color:var(--ink);display:grid;place-items:center;cursor:pointer}.content{flex:1 1 auto;min-height:0;width:100%;margin:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;padding:8px 24px 32px}.page{width:min(1120px,100%);margin:0 auto;animation:content-in .18s var(--ease) both}@keyframes content-in{0%{opacity:.35}to{opacity:1}}@keyframes view-next{0%{opacity:.45;transform:translate(16px)}to{opacity:1;transform:none}}@keyframes view-prev{0%{opacity:.45;transform:translate(-16px)}to{opacity:1;transform:none}}h1{font-size:clamp(1.45rem,1.1rem + 1.4vw,1.75rem);line-height:1.2;letter-spacing:-.02em;margin:0 0 6px;font-weight:600}h2{font-size:1.125rem;line-height:1.3;letter-spacing:-.015em;margin:0 0 12px;font-weight:600}p{margin:0}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.metrics.three{grid-template-columns:repeat(3,1fr)}.metric{position:relative;background:var(--surface);border-radius:16px;box-shadow:var(--shadow);padding:16px 18px 18px 20px;text-decoration:none;color:inherit;overflow:hidden;animation:rise .48s var(--ease) both}.metric:nth-child(2){animation-delay:50ms}.metric:nth-child(3){animation-delay:.1s}.metric:nth-child(4){animation-delay:.15s}.metric:before{content:"";position:absolute;left:0;top:16px;bottom:16px;width:4px;border-radius:4px;background:var(--tone)}.metric span{color:var(--muted);font-size:.92rem}.metric strong{display:block;margin-top:8px;font-size:2rem;line-height:1;letter-spacing:-.04em;font-variant-numeric:tabular-nums;color:var(--tone)}.tone-blue{--tone: #2457d6}.tone-amber{--tone: #b8860b}.tone-purple{--tone: #7a45b0}.tone-green{--tone: #1f8a4c}.panel{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px}.stack{display:grid;gap:16px}.split{display:grid;grid-template-columns:1.45fr .8fr;gap:16px;align-items:start}.row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.row.end{justify-content:flex-end}.between{display:flex;justify-content:space-between;gap:12px;align-items:center}.btn,a.btn,.btn.secondary,.btn.danger,.btn.quiet{min-height:44px;padding:0 18px;border-radius:12px;border:0;font-weight:600;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:8px;transition:transform .14s var(--ease),background-color .16s ease,box-shadow .18s var(--ease)}.btn,a.btn{background:var(--accent);color:var(--accent-ink)}.btn.secondary,a.btn.secondary{background:var(--surface);color:#1d4e9e;box-shadow:inset 0 0 0 1.5px #c5d4e6}.btn.danger{background:var(--danger);color:var(--danger-ink)}.btn.quiet{background:transparent;color:var(--ink);padding:0 10px;box-shadow:none}.btn:disabled{opacity:.45;cursor:not-allowed;transform:none;box-shadow:none}.btn:active,.btn.secondary:active,a.btn:active{transform:scale(.98)}@media(hover:hover)and (pointer:fine){.btn:hover,a.btn:hover{background:var(--accent-press);transform:translateY(-1px);box-shadow:0 8px 18px #2f6fed47}.btn.secondary:hover,a.btn.secondary:hover{background:#f3f7fc;transform:translateY(-1px)}.btn.danger:hover{background:#a83636;box-shadow:0 8px 18px #c4474747}.nav-link:hover{background:#ffffff0f;color:var(--sidebar-ink)}}.field{display:grid;gap:6px}.field span,.check{font-weight:600}.field input,.field select,.field textarea{width:100%;min-height:44px;border-radius:12px;border:1.5px solid var(--line);background:#fbfcfe;padding:8px 12px;transition:border-color .16s ease,box-shadow .16s ease}.field input:focus,.field select:focus,.field textarea:focus{border-color:#8eb0ef;box-shadow:0 0 0 4px #2f6fed24;outline:none}.field textarea{min-height:88px;resize:vertical}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.help{color:var(--muted);font-size:.9375rem;line-height:1.45;max-width:68ch}.error{color:var(--danger);font-weight:600}.callout,.attention{background:var(--callout);color:var(--callout-ink);border-radius:14px;padding:14px 16px}.attention{animation:reveal .38s var(--ease) both}.attention strong{display:block;letter-spacing:.04em;font-size:.82rem;margin-bottom:4px}.ok-note,.check-card{background:#f4f7fb;color:var(--ink);border-radius:16px;padding:16px}.check-card{display:grid;gap:10px;align-content:start}.check-row{display:flex;justify-content:space-between;gap:12px}.check-row span{color:var(--muted)}.good{color:var(--approved-ink);font-weight:600}.month-head{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}.month-head h2{margin:0;font-size:1.25rem}.month{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}.dow{text-align:center;color:var(--muted);font-size:.8rem;font-weight:600;padding-bottom:2px}.day{min-width:0;overflow:hidden;min-height:74px;border:0;border-radius:12px;background:#fff;color:var(--ink);text-align:left;padding:8px;display:flex;flex-direction:column;justify-content:space-between;cursor:pointer;box-shadow:inset 0 0 0 1px #e4ebf3;animation:cell-in .38s var(--ease) both;animation-delay:calc(min(var(--i),12)*18ms)}.day[data-state=blocked]{background:var(--blocked);color:var(--blocked-ink);box-shadow:none}.day[data-state=reserved]{background:var(--reserved);color:var(--reserved-ink);box-shadow:none}.day[data-state=requested]{background:var(--requested);color:var(--requested-ink);box-shadow:none}.day[data-state=approved]{background:var(--approved);color:var(--approved-ink);box-shadow:none}.day[data-state=overlap]{background:var(--overlap);color:var(--overlap-ink);box-shadow:none}.day[aria-pressed=true]{box-shadow:inset 0 0 0 2px var(--ink)}.day small{font-weight:600;letter-spacing:.02em;font-size:.68rem;line-height:1.1;white-space:nowrap}.day b{font-variant-numeric:tabular-nums}.blank{min-height:74px}.legend{display:flex;flex-wrap:wrap;gap:8px 14px}.chip{display:inline-flex;align-items:center;gap:6px;min-height:24px;font-size:.85rem;color:var(--muted);font-weight:600}.swatch{width:12px;height:12px;border-radius:4px;display:inline-block}.segment{display:flex;background:#e7eef6;border-radius:999px;padding:3px}.segment button{min-height:34px;border:0;background:transparent;border-radius:999px;padding:0 12px;font-weight:600;color:var(--muted);cursor:pointer}.segment button[aria-pressed=true]{background:#fff;color:var(--ink);box-shadow:var(--shadow)}.range-list{display:grid;gap:10px;animation:enter .32s var(--ease) both}.range{border-radius:14px;padding:12px 14px;display:grid;gap:2px}.range[data-state=blocked]{background:var(--blocked);color:var(--blocked-ink)}.range[data-state=reserved]{background:var(--reserved);color:var(--reserved-ink)}.range[data-state=approved]{background:var(--approved);color:var(--approved-ink)}.range[data-state=overlap],.range[data-state=requested]{background:var(--overlap);color:var(--overlap-ink)}.range[data-state=available]{background:#eef2f6;color:var(--muted)}.detail-body{animation:enter .28s var(--ease) both}.band{margin:0;border-radius:12px;padding:10px 14px;font-size:.85rem;letter-spacing:.06em;text-transform:uppercase}.band.blocked{background:var(--blocked);color:var(--blocked-ink)}.band.reserved{background:var(--reserved);color:var(--reserved-ink)}.list{display:grid;gap:0;margin:0;padding:0;list-style:none}.panel.list{padding:8px 20px}.item{display:grid;gap:4px;padding:12px 0;border-bottom:1px solid var(--line);animation:rise .42s var(--ease) both}.item:nth-child(2){animation-delay:40ms}.item:nth-child(3){animation-delay:80ms}.item:nth-child(4){animation-delay:.12s}.item:nth-child(5){animation-delay:.16s}.item:last-child{border-bottom:0}.activity{display:grid;grid-template-columns:4.5rem minmax(0,1fr);gap:12px;align-items:baseline}.activity time{color:var(--muted);font-variant-numeric:tabular-nums;font-weight:600;font-size:.9rem}.priority{border-radius:14px;background:#f4f7fb;padding:14px 14px 14px 18px;position:relative}.priority:before{content:"";position:absolute;left:0;top:12px;bottom:12px;width:4px;border-radius:4px;background:var(--tone, #7a45b0)}.period{display:flex;justify-content:space-between;gap:12px;align-items:center;border-radius:14px;padding:16px 18px;animation:reveal .42s var(--ease) both}.period.pending,.period.draft{background:var(--reserved);color:var(--reserved-ink)}.period.negotiation{background:var(--overlap);color:var(--overlap-ink)}.period.approved{background:var(--approved);color:var(--approved-ink)}.period.rejected,.period.withdrawn{background:#eef2f6;color:var(--muted)}.period-state{font-weight:600;letter-spacing:.05em;font-size:.78rem;text-transform:uppercase}.highlight{border-radius:16px;padding:18px;display:grid;gap:6px;animation:rise .42s var(--ease) both}.highlight.blue{background:#e7eefc;color:#16315f}.highlight.amber{background:var(--reserved);color:var(--reserved-ink)}.highlight strong{font-size:1.8rem;letter-spacing:-.03em}.status{display:inline-flex;align-items:center;min-height:28px;padding:0 10px;border-radius:999px;font-size:.8rem;font-weight:600;background:#eef2f6;width:max-content}.status.pending,.status.draft{background:#f8ecc4;color:#8a6410}.status.negotiation{background:var(--overlap);color:var(--overlap-ink)}.status.approved,.status.active{background:#d9f3e3;color:#1d7a45}.status.rejected,.status.inactive,.status.archived,.status.withdrawn{background:#e7edf3;color:#5b7086}table{width:100%;border-collapse:collapse}th{text-align:left;font-size:.75rem;color:var(--muted);font-weight:600;letter-spacing:.05em;text-transform:uppercase;padding:10px 12px;background:#f4f7fb}th:first-child{border-radius:12px 0 0 12px}th:last-child{border-radius:0 12px 12px 0}td{padding:14px 12px;border-bottom:1px solid var(--line);vertical-align:middle;font-variant-numeric:tabular-nums}tr:last-child td{border-bottom:0}.person{display:flex;gap:10px;align-items:center}.avatar{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:#e7eefc;color:#2451b8;font-weight:600;flex:none}.avatar.inactive{background:#e7edf3;color:#5b7086}.track{position:relative;height:36px;border-radius:10px;background:#eef2f6;overflow:hidden}.track i{position:absolute;top:6px;bottom:6px;border-radius:8px;background:#7a45b0}.track i[data-kind=approved]{background:var(--approved)}.track i[data-kind=reserved]{background:var(--reserved)}.ticks{display:flex;justify-content:space-between;color:var(--muted);font-size:.75rem;font-weight:600}.banner{margin:0 28px 4px;padding:12px 14px;border-radius:var(--control);background:var(--callout);color:var(--callout-ink);display:flex;justify-content:space-between;gap:12px;align-items:center;animation:reveal .32s var(--ease) both}.dialog{border:0;padding:0;border-radius:20px;background:var(--surface);color:var(--ink);box-shadow:0 24px 60px #10203338;width:min(520px,calc(100vw - 24px))}.dialog::backdrop{background:#10203375}.dialog form,.dialog .sheet{padding:20px;display:grid;gap:12px}.toast{position:fixed;left:50%;bottom:calc(24px + var(--safe-bottom));transform:translate(-50%);background:var(--navy);color:#fff;padding:12px 16px;border-radius:14px;z-index:6;max-width:min(440px,calc(100vw - 24px));animation:toast-in .32s var(--ease)}.notes{position:absolute;right:24px;top:68px;width:min(360px,calc(100vw - 24px));z-index:3;animation:enter .28s var(--ease) both}.menu{position:relative}.menu summary{list-style:none;cursor:pointer;min-height:44px;display:grid;place-items:center;font-weight:600;letter-spacing:.12em}.menu summary::-webkit-details-marker{display:none}.menu div{position:absolute;right:0;top:44px;background:var(--surface);box-shadow:var(--shadow);border-radius:12px;min-width:220px;z-index:3;display:grid;padding:6px;animation:enter .18s var(--ease) both}.menu button,.menu a{background:transparent;border:0;text-align:left;color:var(--ink);min-height:40px;padding:0 10px;border-radius:8px;text-decoration:none;display:flex;align-items:center;cursor:pointer}.skeleton{height:88px;border-radius:var(--radius);background:linear-gradient(90deg,#e4ebf3,#f7fafc,#e4ebf3);background-size:200% 100%;animation:shimmer 1.1s linear infinite}.boot{height:100dvh;overflow:auto;display:grid;place-items:center;padding:calc(32px + var(--safe-top)) 32px calc(32px + var(--safe-bottom))}.gate{height:100dvh;overflow:auto;display:grid;place-items:center;padding:calc(24px + var(--safe-top)) 24px calc(24px + var(--safe-bottom));background:radial-gradient(720px 280px at 50% 0%,#d7e5f6,transparent 70%),var(--bg)}.gate-card{width:min(420px,100%);background:#fff;border-radius:28px;box-shadow:0 18px 50px #1020331a;padding:36px 28px 28px;display:grid;gap:14px;animation:card-in .62s var(--ease) both}.gate-logo{width:76px;height:76px;margin:4px auto 2px;border-radius:18px;display:block;justify-self:center;object-fit:cover}.gate-card h1{text-align:center;font-size:1.35rem;margin-bottom:4px}.policy-login{text-align:center}.policy{max-width:68ch}.policy ul{margin:0;padding-left:1.15rem;display:grid;gap:8px}.policy-public{position:fixed;top:0;right:0;bottom:0;left:0;overflow:auto;background:#f6f9fc;padding:calc(20px + var(--safe-top)) 16px calc(28px + var(--safe-bottom))}.policy-sheet{width:min(760px,100%);margin:0 auto;display:grid;gap:16px}.gate-card .btn{width:100%}.tabbar,button.btn.menu-button{display:none}.drawer-layer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;background:#08101c8a}.drawer{display:flex;flex-direction:column;height:100%;width:max-content;max-width:min(340px,88vw);border:0;background:var(--sidebar);color:var(--sidebar-ink);padding:calc(22px + var(--safe-top)) 16px calc(18px + var(--safe-bottom));box-shadow:18px 0 40px #08101c47}.drawer .nav-link{white-space:nowrap}.material-filters{max-width:100%;overflow-x:auto}.material-filters button{flex:none}.material-list{list-style:none;margin:0;padding:0}.material-card{display:grid;gap:12px}.state-pill{display:inline-flex;align-items:center;min-height:28px;padding:0 10px;border-radius:999px;font-size:.78rem;font-weight:600;white-space:nowrap}.state-ready{background:#d9f3e3;color:#1d7a45}.state-show{background:#f8ecc4;color:#8a6410}.state-repair{background:#efe4f8;color:#6d3f9a}.state-off{background:#fde8e6;color:#9a3b32}.material-card .field{flex:1 1 8rem;min-width:0}.drawer .brand{display:flex;align-items:center;gap:12px;margin-bottom:28px}.drawer-close{margin-left:auto;color:var(--sidebar-ink)}.drawer nav{flex:1;min-height:0;overflow:auto}.drawer .quiet{margin-top:auto}.secret{font-family:ui-monospace,SFMono-Regular,monospace;font-size:1.05rem;letter-spacing:.02em}@media(max-width:1279px){.page.next{animation:view-next .2s var(--ease) both}.page.prev{animation:view-prev .2s var(--ease) both}.app{grid-template-columns:220px 1fr}.metrics{grid-template-columns:1fr 1fr}.split{grid-template-columns:1fr}.content{padding-left:16px;padding-right:16px}}@media(max-width:839px){.app{grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) auto}.workspace{height:auto;min-height:0}.rail,.crumb-root,.crumb-sep{display:none}.metrics,.metrics.three,.form-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.content{padding:20px 14px 28px;touch-action:pan-y}.topbar{min-height:0;padding-top:max(8px,var(--safe-top));padding-bottom:8px;background:#f6f9fc;backdrop-filter:none;-webkit-backdrop-filter:none}.role-pill{display:none}.year-select{width:5.6rem}.top-actions{gap:6px}.topbar,.banner{padding-left:12px;padding-right:12px}.banner{margin-left:16px;margin-right:16px}.tabbar{display:flex;position:relative;left:auto;right:auto;bottom:auto;width:100%;background:#fff;z-index:20;padding:6px 4px var(--safe-bottom);justify-content:space-around;align-items:stretch;border-radius:0;box-shadow:inset 0 1px #e3ebf3}.tabbar a,.tabbar button{position:relative;z-index:1;display:flex;flex:1 1 0;flex-direction:column;align-items:center;gap:2px;font-size:.72rem;color:var(--muted);min-height:52px;min-width:0;padding:0 2px;justify-content:center;background:transparent;border:0;font-weight:600;white-space:nowrap;line-height:1.1;transition:color .18s var(--ease)}.tab-indicator{position:absolute;z-index:0;top:6px;height:52px;left:0;border-radius:14px;background:#d6e4fb;pointer-events:none;transform-origin:left center;transition:transform .28s var(--ease-drawer),opacity .18s linear}.tabbar a[aria-current=page],.tabbar button[aria-current=page]{color:#17345c}button.btn.menu-button{display:inline-flex;min-width:44px;padding:0}.activity{grid-template-columns:4.2rem minmax(0,1fr)}}@media(min-width:840px){.topbar{padding-left:28px;padding-right:28px;gap:12px}}@media(max-width:719px){.metrics,.metrics.three,.form-grid{grid-template-columns:1fr}.content{padding-left:10px;padding-right:10px}.between{flex-direction:column;align-items:stretch}.between>.btn,.between>a.btn{width:100%}.period{flex-direction:column;align-items:flex-start}.month{gap:4px}.month-head .row{width:100%}.month-head .year-select{flex:1;min-width:0}.day,.blank{min-height:48px;padding:4px}.day small{font-size:.62rem}.metric strong{font-size:1.7rem}.notes{left:12px;right:12px;width:auto}.gate{padding:16px;align-items:start;padding-top:max(16px,calc(6vh + var(--safe-top)));padding-bottom:calc(16px + var(--safe-bottom))}.gate-card{padding:28px 18px}.panel thead{display:none}.panel tr{display:grid;gap:8px;padding:14px 0;border-bottom:1px solid var(--line)}.panel tr:last-child{border-bottom:0}.panel td{display:grid;gap:2px;border:0;padding:0}.panel td[data-label]:before{content:attr(data-label);color:var(--muted);font-size:.75rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.panel td .row .btn{flex:1 1 8rem}.topbar .logout-btn{position:relative;width:40px;min-width:40px;padding:0}.topbar .logout-btn span{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}}@media(prefers-reduced-motion:no-preference){@keyframes enter{0%{opacity:0;transform:translateY(12px);filter:blur(8px)}to{opacity:1;transform:none;filter:none}}@keyframes rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes reveal{0%{opacity:0;clip-path:inset(0 0 40% 0)}to{opacity:1;clip-path:inset(0 0 0 0)}}@keyframes cell-in{0%{opacity:0;transform:translateY(8px) scale(.96)}to{opacity:1;transform:none}}@keyframes card-in{0%{opacity:0;transform:translateY(16px) scale(.98);filter:blur(10px)}to{opacity:1;transform:none;filter:none}}@keyframes toast-in{0%{opacity:0;transform:translate(-50%) translateY(12px);filter:blur(6px)}to{opacity:1;transform:translate(-50%);filter:none}}@keyframes shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}@keyframes dialog-in{0%{opacity:0;transform:translateY(12px) scale(.96);filter:blur(8px)}to{opacity:1;transform:none;filter:none}}@keyframes drawer-in{0%{transform:translate(-100%)}to{transform:none}}@keyframes month-next{0%{opacity:.35;transform:translate(28px);filter:blur(8px)}to{opacity:1;transform:none;filter:none}}@keyframes month-prev{0%{opacity:.35;transform:translate(-28px);filter:blur(8px)}to{opacity:1;transform:none;filter:none}}.dialog[open]{animation:dialog-in .28s var(--ease)}.drawer-layer .drawer{animation:drawer-in .32s var(--ease-drawer)}.month-swap.next{animation:month-next .42s var(--ease)}.month-swap.prev{animation:month-prev .42s var(--ease)}}@media(prefers-reduced-motion:reduce){.page,.page.next,.page.prev,.detail-body,.toast,.dialog[open],.drawer-layer .drawer,.gate-card,.metric,.item,.period,.highlight,.notes,.attention,.range-list,.day,.month-swap,.banner{animation:fade .16s ease both}.skeleton{animation:none}.tab-indicator{transition:none}@keyframes fade{0%{opacity:0}to{opacity:1}}}@media print{html,body,#root,.app,.workspace,.content,.gate,.boot{height:auto!important;max-height:none!important;overflow:visible!important}.rail,.topbar,.tabbar,.btn,.banner,.segment,.drawer-layer{display:none!important}.app{display:block}.day{break-inside:avoid;box-shadow:none;animation:none}}
