.launcher{position:relative}.launcher-button{width:40px;height:40px;padding:0;justify-content:center;border-radius:50%}.launcher-panel{position:absolute;right:0;top:calc(100% + 8px);z-index:50;width:min(360px,calc(100vw - 2rem));display:grid;grid-template-columns:repeat(3,1fr);gap:.4rem .2rem;padding:1rem .8rem .8rem;background:var(--glass-strong, #fff);-webkit-backdrop-filter:saturate(180%) blur(30px);backdrop-filter:saturate(180%) blur(30px);border:1px solid var(--glass-edge, transparent);border-radius:22px;box-shadow:0 24px 60px #0000004d}.launcher-tile{display:flex;flex-direction:column;align-items:center;gap:.45rem;padding:.6rem .3rem;border-radius:14px;font-size:.87em;font-weight:500;text-align:center;color:var(--ink)}.launcher-tile:hover{background:var(--sky);text-decoration:none}.launcher-tile.here{font-weight:700}.launcher-picto{display:grid;place-items:center;width:58px;height:58px;border-radius:14px;font-size:1.8rem;line-height:1;background:linear-gradient(160deg,var(--tint-a, #8e9aab),var(--tint-b, #5b6676));box-shadow:0 6px 14px #00000038;font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif}.launcher-tile.here .launcher-picto{box-shadow:0 0 0 3px var(--glass-strong, #fff),0 0 0 5px var(--ink)}.topbar{position:relative;z-index:20;display:flex;align-items:center;gap:1.25rem;padding:0 .75rem 0 1.25rem;height:var(--bar-height, 52px);background:var(--glass);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px);border-bottom:1px solid var(--rule)}.topbar .brand{display:inline-flex;align-items:center;gap:.5rem;font-weight:600;font-size:1.3rem;letter-spacing:-.01em;color:var(--primary-text);white-space:nowrap}.topbar .brand svg{color:var(--ink)}.topbar .brand-house{color:var(--ink)}.topbar .brand-app{color:var(--primary-text)}.topbar .brand:hover{text-decoration:none}.topbar .spacer{flex:1}.topbar nav,.subbar nav{display:flex;gap:.2rem;align-items:center}.topbar nav a,.subbar nav a{display:inline-flex;align-items:center;gap:.4rem;padding:0 .85rem;height:34px;border-radius:var(--pill);color:var(--ink-2);font-weight:500;white-space:nowrap}.topbar nav a:hover,.subbar nav a:hover{color:var(--ink);background:var(--sky);text-decoration:none}.topbar nav a.active,.topbar nav a.active:hover{color:var(--ink);background:var(--sky-strong);font-weight:600}.topbar .right{display:flex;align-items:center;gap:.25rem}.quiet-link{display:inline-grid;place-items:center;width:36px;height:36px;border-radius:50%;color:var(--ink-2)}.quiet-link:hover,.quiet-link.active{background:var(--sky);color:var(--ink);text-decoration:none}.subbar{display:flex;align-items:flex-end;gap:.6rem 1.5rem;padding:1.4rem 1.5rem .2rem;max-width:var(--page-width, 1140px);margin:0 auto;width:100%;flex-wrap:wrap}.subbar h1{margin:0;font-size:2.1rem;font-weight:700;color:var(--primary-text);display:flex;align-items:baseline;gap:.6rem}.subbar h1 .sub{font-size:.95rem;font-weight:500;color:var(--ink-2)}.subbar nav{padding:3px;border-radius:var(--pill);background:var(--glass);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border:1px solid var(--glass-edge)}.subbar nav a{font-size:.93rem;height:32px;padding:0 .85rem}.subbar nav a.active,.subbar nav a.active:hover{color:var(--primary-ink);background:var(--primary);font-weight:600}.avatar{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--sun);color:var(--sun-ink);font-weight:700;font-size:.82rem;letter-spacing:.02em;flex:none}.avatar.large{width:48px;height:48px;font-size:1.05rem}.account{position:relative}.topbar .account-button{display:grid;place-items:center;width:42px;height:42px;min-height:0;padding:0;border:0;border-radius:50%;background:transparent}.topbar .account-button:hover:not(:disabled),.topbar .account-button[aria-expanded=true]{background:var(--sky)}.account-panel{position:absolute;right:0;top:calc(100% + 8px);z-index:50;width:min(300px,calc(100vw - 2rem));display:flex;flex-direction:column;gap:.15rem;padding:.6rem;background:var(--glass-strong);-webkit-backdrop-filter:saturate(180%) blur(30px);backdrop-filter:saturate(180%) blur(30px);border:1px solid var(--glass-edge);border-radius:18px;box-shadow:0 20px 50px #00000047}.account-head{display:flex;align-items:center;gap:.75rem;padding:.4rem .5rem .7rem;border-bottom:1px solid var(--rule);margin-bottom:.3rem}.account-name{display:flex;flex-direction:column;min-width:0;flex:1}.account-name strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-name .muted{font-size:.85em}.account-rename{display:flex;gap:.3rem;align-items:center;flex:1;min-width:0}.topbar .account-rename input{flex:1;min-width:0;height:34px;padding:.25rem .6rem}.topbar .account-rename button{min-height:0}.account-panel .error{margin:0 .5rem .3rem}.account-row{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.35rem .5rem;color:var(--ink-2);font-weight:600}.account-languages{display:flex;gap:.2rem}.topbar .account-languages button{min-height:0;padding:.25rem .7rem;font-size:.85em;border-radius:var(--pill)}.topbar .account-languages button.active,.topbar .account-languages button.active:hover:not(:disabled){background:var(--ink);color:var(--on-ink)}.topbar .account-action{display:flex;align-items:center;gap:.6rem;width:100%;min-height:0;padding:.6rem .5rem;border:0;border-radius:var(--radius-small);background:transparent;color:var(--ink);font-weight:500;text-align:left;white-space:nowrap}.topbar .account-action:hover:not(:disabled){background:var(--sky)}.topbar .account-action svg{color:var(--ink-2);flex:none}@media(max-width:800px){.topbar{flex-wrap:wrap;gap:.4rem .8rem;height:auto;padding:.45rem .75rem .45rem 1rem}.topbar .spacer{display:none}.topbar .right{margin-left:auto}.topbar nav{order:3;width:100%;overflow-x:auto}.topbar nav a{padding:0 .75rem}.subbar{gap:.6rem 1rem;padding:1rem 1rem .2rem}.subbar h1{font-size:1.7rem}.subbar nav{overflow-x:auto;max-width:100%}}.sidebar{display:none}.sidebar nav{display:flex;flex-direction:column;gap:2px}.sidebar nav a{display:flex;align-items:center;gap:.65rem;min-height:36px;padding:.35rem .7rem;border-radius:9px;color:var(--ink);font-weight:500;font-size:.95rem;line-height:1.25}.sidebar nav a svg{color:var(--primary);flex:none}.sidebar nav a:hover{background:var(--sky);text-decoration:none}.sidebar nav a.active,.sidebar nav a.active:hover{background:var(--sky-strong);font-weight:600}.sidebar nav a .count,.topbar nav a .count{margin-left:auto;min-width:1.4rem;padding:0 .4rem;border-radius:var(--pill);font-size:.8rem;font-weight:600;color:var(--ink-2);text-align:center;font-variant-numeric:tabular-nums}.topbar nav a .count{margin-left:.1rem}.sidebar nav a .count.hot,.topbar nav a .count.hot{background:var(--sun);color:var(--sun-ink)}.sidebar-group{margin-top:1.2rem}.sidebar-group h2{display:block;margin:0 .7rem .35rem;font-size:.8rem;font-weight:700;color:var(--ink-2);letter-spacing:.01em}.sidebar-group h2 small{font-weight:500;margin-left:.3rem}@media(min-width:900px){.shell:has(>.sidebar){display:grid;grid-template-columns:var(--sidebar-width, 248px) minmax(0,1fr);grid-template-rows:auto minmax(0,1fr)}.shell>.topbar{grid-column:1 / -1}.topbar .topbar-sections{display:none}.sidebar{display:flex;flex-direction:column;grid-column:1;grid-row:2;min-height:0;overflow:auto;padding:.8rem .6rem 1.5rem;background:var(--sidebar-bg);-webkit-backdrop-filter:saturate(180%) blur(30px);backdrop-filter:saturate(180%) blur(30px);border-right:1px solid var(--rule)}.shell>.content{grid-column:2;grid-row:2}.subbar .subbar-tabs{display:none}.subbar{padding-top:1.6rem}}:root{color-scheme:light dark;--wall-base: #dde7f1;--wall-1: #c9d9ea;--wall-2: #b9cde3;--wall-3: #d3e0ee;--glass: rgba(255, 255, 255, .72);--glass-strong: rgba(255, 255, 255, .9);--glass-edge: rgba(255, 255, 255, .6);--glass-blur: saturate(180%) blur(24px);--glass-shadow: 0 10px 30px rgba(20, 30, 45, .12);--sheet: #ffffff;--sidebar-bg: rgba(255, 255, 255, .42);--panel: var(--glass);--sky: rgba(118, 118, 128, .12);--sky-strong: rgba(118, 118, 128, .2);--field: rgba(255, 255, 255, .85);--ink: #1d1d1f;--ink-2: #5f5f66;--ink-3: #8e8e93;--on-ink: #ffffff;--rule: rgba(60, 60, 67, .14);--rule-strong: rgba(60, 60, 67, .3);--earth: #9a6236;--earth-bg: #f3e3d3;--water: #0a6fd6;--sun: #f5b400;--sun-bg: #ffe9a8;--sun-ink: #4a3900;--sun-text: #8a6400;--danger: #c6432e;--danger-bg: #fbd9d2;--late: #d9580a;--late-bg: #fde2d0;--late-text: #a8420a;--good: #256b43;--good-bg: #dcefe2;--today: #e5342a;--shadow: var(--glass-shadow);--radius: 22px;--radius-small: 12px;--pill: 999px;--bar-height: 52px;--field-height: 40px;--page-width: 1140px;--icon-a: var(--primary);--icon-b: var(--primary-text)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--wall-base: #0c1a2e;--wall-1: #173a6b;--wall-2: #1d4f91;--wall-3: #11294d;--glass: rgba(30, 32, 36, .7);--glass-strong: rgba(44, 46, 50, .92);--glass-edge: rgba(255, 255, 255, .08);--glass-shadow: 0 18px 40px rgba(0, 0, 0, .45);--sheet: #1f2023;--sidebar-bg: rgba(18, 20, 22, .5);--sky: rgba(118, 118, 128, .24);--sky-strong: rgba(118, 118, 128, .36);--field: rgba(118, 118, 128, .2);--ink: #f5f5f7;--ink-2: #a8a8b0;--ink-3: #7c7c84;--on-ink: #1d1d1f;--rule: rgba(255, 255, 255, .1);--rule-strong: rgba(255, 255, 255, .24);--earth: #e0a574;--earth-bg: rgba(224, 165, 116, .18);--water: #4aa3ff;--sun: #f5c33b;--sun-bg: #e8b52e;--sun-text: #f5c33b;--danger: #ff6b5a;--danger-bg: rgba(255, 69, 58, .2);--late: #ff7a2e;--late-bg: rgba(255, 122, 46, .2);--late-text: #ff9a5c;--good: #7fd89a;--good-bg: rgba(76, 175, 109, .2);--today: #ff453a}}:root[data-theme=dark]{--wall-base: #0c1a2e;--wall-1: #173a6b;--wall-2: #1d4f91;--wall-3: #11294d;--glass: rgba(30, 32, 36, .7);--glass-strong: rgba(44, 46, 50, .92);--glass-edge: rgba(255, 255, 255, .08);--glass-shadow: 0 18px 40px rgba(0, 0, 0, .45);--sheet: #1f2023;--sidebar-bg: rgba(18, 20, 22, .5);--sky: rgba(118, 118, 128, .24);--sky-strong: rgba(118, 118, 128, .36);--field: rgba(118, 118, 128, .2);--ink: #f5f5f7;--ink-2: #a8a8b0;--ink-3: #7c7c84;--on-ink: #1d1d1f;--rule: rgba(255, 255, 255, .1);--rule-strong: rgba(255, 255, 255, .24);--earth: #e0a574;--earth-bg: rgba(224, 165, 116, .18);--water: #4aa3ff;--sun: #f5c33b;--sun-bg: #e8b52e;--sun-text: #f5c33b;--danger: #ff6b5a;--danger-bg: rgba(255, 69, 58, .2);--late: #ff7a2e;--late-bg: rgba(255, 122, 46, .2);--late-text: #ff9a5c;--good: #7fd89a;--good-bg: rgba(76, 175, 109, .2);--today: #ff453a}:root[data-theme=light]{color-scheme:light}:root[data-theme=dark]{color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background-color:var(--wall-base);background-image:radial-gradient(circle at 104% -12%,var(--wall-2) 0 34vmax,transparent calc(34vmax + 1px)),radial-gradient(circle at -12% 112%,var(--wall-1) 0 58vmax,transparent calc(58vmax + 1px)),radial-gradient(circle at 28% -70%,var(--wall-3) 0 72vmax,transparent calc(72vmax + 1px)),radial-gradient(circle at 96% 118%,var(--wall-3) 0 30vmax,transparent calc(30vmax + 1px));background-attachment:fixed;color:var(--ink);font:15px/1.47 system-ui,-apple-system,SF Pro Text,Segoe UI,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased}h1{font-size:2rem;font-weight:700;letter-spacing:-.01em;line-height:1.15;margin:0 0 .6rem}h2{font-size:1.2rem;font-weight:700;margin:0 0 .5rem;display:flex;align-items:center;gap:.5rem}h3{font-size:.95rem;font-weight:600;margin:1rem 0 .4rem;color:var(--ink)}p{margin:0 0 .6rem}a{color:inherit;text-decoration:none}a:hover{text-decoration:underline;text-decoration-color:var(--rule-strong);text-underline-offset:.15em}code,pre{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.85em}svg.lucide{flex:none}.muted{color:var(--ink-2)}.late-text{color:var(--late-text)}.sun-text{color:var(--sun-text)}.good-text{color:var(--good)}.small{font-size:.87em}.error{color:var(--danger);background:var(--danger-bg);padding:.5rem .8rem;border-radius:var(--radius-small)}.center{display:grid;place-items:center;height:100%}.spacer{flex:1}.row{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap}.row.between{justify-content:space-between}.row.end{justify-content:flex-end}.stack{display:flex;flex-direction:column;gap:.7rem}.glass,.card,.panel,.figure,.table-wrap,.alerts li,.all-good{background:var(--glass);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border:1px solid var(--glass-edge);box-shadow:var(--glass-shadow)}.card{border-radius:var(--radius);padding:1.1rem 1.25rem}.page{padding:1.75rem 1.5rem 3rem;max-width:var(--page-width);margin:0 auto;width:100%}.glyph{display:inline-grid;place-items:center;width:1.7em;height:1.7em;border-radius:.55em;background:var(--sky);line-height:1;font-size:.95em;vertical-align:-.45em;font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif}label{display:flex;flex-direction:column;gap:.25rem;font-size:.9em;color:var(--ink-2);font-weight:600}label.inline{flex-direction:row;align-items:center;gap:.3rem}input,select,textarea{font:inherit;padding:.5rem .75rem;border:1px solid var(--rule);border-radius:10px;background:var(--field);color:var(--ink);min-width:0}input:focus,select:focus,textarea:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 3px var(--primary-bg)}input[type=date]{width:150px}input[type=number]{width:110px}input:not([type=checkbox]):not([type=radio]),select{height:var(--field-height)}input[type=color]{width:52px;padding:.2rem .3rem}input[type=checkbox],input[type=radio]{accent-color:var(--primary)}.fields{display:flex;gap:.6rem;align-items:flex-end;flex-wrap:wrap}.fields>label.large{flex-basis:100%}.actions{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap}.actions .spacer{flex:1}button,.linkbtn{font:inherit;font-weight:600;padding:.5rem 1.05rem;border-radius:var(--pill);border:0;background:var(--sky);color:var(--ink);cursor:pointer;display:inline-flex;align-items:center;gap:.45rem;line-height:1.25}button:hover:not(:disabled),.linkbtn:hover{background:var(--sky-strong);text-decoration:none}button:active:not(:disabled){transform:scale(.98)}button:disabled{opacity:.45;cursor:default}button:not(.small):not(.ghost),.linkbtn:not(.small){min-height:var(--field-height)}:focus-visible{outline:3px solid var(--primary);outline-offset:2px}input:focus-visible,select:focus-visible,textarea:focus-visible{outline:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}fieldset{border:0;padding:0;margin:0}legend{font-size:.9em;color:var(--ink-2);padding:0;margin-right:.3rem}button.primary,.linkbtn.primary{background:var(--primary);color:var(--primary-ink)}button.primary:hover:not(:disabled),.linkbtn.primary:hover{background:var(--primary);filter:brightness(1.08)}button.danger{color:var(--danger)}button.danger:hover:not(:disabled){background:var(--danger-bg)}button.ghost{background:transparent;padding:.35rem .6rem;color:var(--primary-text);font-weight:600}button.ghost:hover:not(:disabled){color:var(--ink);background:var(--sky)}button.small,.linkbtn.small{padding:.3rem .75rem;font-size:.9em}button.active,button.active:hover:not(:disabled){background:var(--ink);color:var(--on-ink)}.shell{display:flex;flex-direction:column;height:100%}.content{flex:1;overflow:auto}.login{display:grid;place-items:center;height:100%;padding:1.5rem}.login-card{text-align:center;max-width:400px;width:100%;padding:2.2rem 2rem 1.6rem;border-radius:28px;background:var(--glass);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border:1px solid var(--glass-edge);box-shadow:var(--glass-shadow)}.login-logo{display:flex;justify-content:center;margin:0 auto 1.2rem;width:76px;height:76px;align-items:center;border-radius:18px;color:#fff;background:linear-gradient(160deg,var(--icon-a),var(--icon-b));box-shadow:0 10px 22px #00000038;--primary: #fff}.login-logo svg{width:44px;height:44px}.login-card h1{font-size:2rem}.login-google{display:flex;justify-content:center;margin:1.5rem 0 .6rem}.login-home{margin:1.5rem 0 .6rem;align-items:center}.login-card form{margin-top:1.2rem;text-align:left}.login-card .or{margin:1rem 0 0}.language-picker{margin-top:1.5rem;display:flex;gap:.3rem;justify-content:center}.figures-row{display:flex;gap:.9rem;flex-wrap:wrap;padding:.2rem 0 1.4rem;margin-bottom:.4rem}.figure{display:flex;flex-direction:column;gap:.1rem;min-width:9rem;padding:.9rem 1.2rem;border-radius:20px}.figure .num{font-size:2.4rem;font-weight:700;line-height:1.05;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.figure .label{color:var(--ink-2);font-size:.9em;font-weight:600}.figure.hot{background:var(--sun);border-color:transparent}.figure.hot .num,.figure.hot .label{color:var(--sun-ink)}.page-alert{max-width:calc(var(--page-width) - 3rem);margin:.8rem auto 0}@media(max-width:1190px){.page-alert{margin:.8rem 1.5rem 0}}.badge{white-space:nowrap;font-size:.78em;font-weight:600;padding:.15rem .6rem;border-radius:var(--pill);background:var(--sky);color:var(--ink-2)}.bar{height:6px;border-radius:999px;background:var(--sky);overflow:hidden}.bar>div{height:100%;background:var(--primary);border-radius:999px;transition:width .3s}.chips{display:flex;gap:.4rem;flex-wrap:wrap;margin:.4rem 0 1rem}.chip{display:inline-flex;align-items:center;gap:.35rem;background:var(--glass);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border:1px solid var(--glass-edge);border-radius:var(--pill);padding:.25rem .8rem .25rem .4rem;font-weight:600}.table-wrap{overflow-x:auto;border-radius:var(--radius);padding:.4rem 1rem}.table-wrap tr:last-child td{border-bottom:0}table{border-collapse:collapse;width:100%}th,td{text-align:left;padding:.6rem .7rem;border-bottom:1px solid var(--rule);vertical-align:top}th{color:var(--ink-2);font-weight:600;font-size:.85em}.log-list{list-style:none;padding:0;margin:0}.log-list li{border-bottom:1px solid var(--rule);padding:.5rem 0}dialog.confirm{border:0;border-radius:var(--radius);padding:1.4rem 1.6rem;background:var(--sheet);color:var(--ink);box-shadow:0 24px 60px #0000004d;width:min(420px,calc(100vw - 2rem))}dialog.confirm::backdrop{background:#00000059;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}dialog.confirm h2{margin:0}dialog.confirm p{margin:0;font-size:1.05em}dialog.confirm button{min-width:6rem;justify-content:center}dialog.drawer{position:fixed;inset:.6rem .6rem .6rem auto;margin:0;width:min(480px,calc(100% - 1.2rem));height:calc(100% - 1.2rem);max-height:none;border:0;border-radius:var(--radius);padding:0;background:var(--sheet);color:var(--ink);box-shadow:0 24px 60px #0000004d}dialog.drawer::backdrop{background:#0000004d;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}dialog.drawer>form{display:flex;flex-direction:column;height:100%}.drawer-head{display:flex;align-items:flex-start;gap:.6rem;padding:1.1rem 1.4rem;border-bottom:1px solid var(--rule)}.drawer-head h2{display:block;flex:1;margin:0;font-size:1.3rem}.drawer-head h2 small{display:block;font-size:.8rem;font-weight:600;color:var(--ink-2);margin-top:.15rem}.drawer-body{flex:1;overflow:auto;padding:1rem 1.4rem;display:flex;flex-direction:column;gap:.8rem}.drawer-body .grow{flex:1;min-width:10rem}.drawer-body h4{margin:.4rem 0 0}.drawer-body details{border-top:1px solid var(--rule);padding:.6rem 0 .2rem}.drawer-body details>summary{cursor:pointer;font-weight:700;font-size:.95rem;list-style:none;display:flex;align-items:center;gap:.45rem}.drawer-body details>summary::-webkit-details-marker{display:none}.drawer-body details>summary:before{content:"";width:6px;height:6px;border-right:2px solid var(--ink-2);border-bottom:2px solid var(--ink-2);transform:rotate(-45deg);transition:transform .15s;margin:0 .2rem 0 .1rem}.drawer-body details[open]>summary:before{transform:rotate(45deg)}.drawer-body details>summary .state{margin-left:auto;font-weight:500;font-size:.85em;color:var(--ink-2)}.drawer-body details>.stack{padding-top:.6rem}.drawer-error{margin:0 1.4rem .6rem}.drawer-foot{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap;padding:.8rem 1.4rem;border-top:1px solid var(--rule)}.drawer-foot .spacer{flex:1}dialog.drawer[open]{transform:none;transition:transform .26s cubic-bezier(.2,.7,.2,1)}@starting-style{dialog.drawer[open]{transform:translate(110%)}}@media(max-width:800px){dialog.drawer{inset:auto 0 0 0;width:100%;height:auto;max-height:92%;border-radius:24px 24px 0 0}dialog.drawer>form{max-height:92vh}.drawer-foot{padding-bottom:calc(.8rem + env(safe-area-inset-bottom,0px))}@starting-style{dialog.drawer[open]{transform:translateY(105%)}}}@media(prefers-reduced-motion:reduce){dialog.drawer[open]{transition:none}}.segmented{display:inline-flex;padding:2px;border-radius:10px;background:var(--sky);gap:2px}.segmented button{border-radius:8px;font-weight:500;background:transparent;padding:.3rem .9rem;min-height:0}.segmented button:hover:not(:disabled){background:var(--sky)}.segmented button.active,.segmented button.active:hover:not(:disabled){background:var(--glass-strong);color:var(--ink);font-weight:600;box-shadow:0 1px 4px #00000026}.page h1{display:flex;align-items:baseline;gap:.6rem;flex-wrap:wrap}.page h1 .sub{font-size:.95rem;font-weight:600;color:var(--ink-2)}.section{margin-top:1.8rem}.section>h2{margin-bottom:.7rem}.panel{border-radius:var(--radius);padding:1.1rem 1.25rem}.grid-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}.empty{color:var(--ink-2);padding:.4rem 0}.link{color:var(--primary-text);font-weight:600;display:inline-flex;align-items:center;gap:.25rem}.figure.out{background:var(--danger);border-color:transparent}.figure.out .num,.figure.out .label{color:#fff}.figure.low .num{color:var(--earth)}.figure .detail{color:var(--ink-2);font-size:.82em;font-weight:500}.figure.out .detail{color:#fff;opacity:.9}.back{margin-bottom:.4rem}.home-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(300px,100%),1fr));gap:1.4rem}.home-tile{position:relative;display:flex;flex-direction:column;border-radius:var(--radius);padding:1.1rem 1.2rem;overflow:hidden;background:var(--glass);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border:1px solid var(--glass-edge);box-shadow:var(--glass-shadow)}.home-tile.wide{grid-column:span 2}.home-tile.square{min-height:300px}.home-tile.auto{align-self:start}.home-tile-head{display:flex;align-items:center;gap:.8rem;margin-bottom:.6rem;color:inherit}.home-tile-head:hover{text-decoration:none}.home-tile-head h2{margin:0;font-size:1.25rem}.home-tile-head .muted{font-size:.87em}.app-icon{display:grid;place-items:center;flex:none;width:46px;height:46px;border-radius:12px;color:#fff;background:linear-gradient(160deg,var(--icon-a),var(--icon-b));--primary: #fff;box-shadow:0 4px 10px #0000002e}.app-icon svg{width:26px;height:26px}@media(max-width:700px){.home-tile.wide{grid-column:auto}.home-tile.square{min-height:0}}.alerts{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.alerts li{border-radius:16px;padding:.7rem .95rem;border-left:4px solid var(--rule-strong);display:flex;gap:.7rem;align-items:flex-start}.alerts li .text{display:flex;flex-direction:column;gap:.1rem;flex:1}.alerts li .detail{color:var(--ink-2);font-size:.9em}.alerts li svg{margin-top:.15rem;color:var(--ink-2)}.all-good{background:var(--primary-bg);color:var(--primary-text);border-radius:16px;padding:.7rem .95rem;font-weight:600}.tools{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap;margin-bottom:.9rem}.tools input[type=search]{flex:1;min-width:12rem;max-width:22rem}.suggestions{list-style:none;margin:0;padding:.25rem;background:var(--sheet);border:1px solid var(--rule);border-radius:var(--radius-small);max-height:14rem;overflow:auto;box-shadow:var(--glass-shadow)}.suggestions button{width:100%;justify-content:space-between;text-align:left;border:0;border-radius:8px;min-height:0;padding:.35rem .6rem;font-weight:600;background:none}.suggestions button:hover,.suggestions button.current{background:var(--primary-bg)}.suggestions small{color:var(--ink-2);font-weight:500;white-space:nowrap;flex:none}.checks{display:flex;gap:.3rem 1rem;flex-wrap:wrap}.checks label{flex-direction:row;align-items:center;gap:.35rem;font-weight:500;color:var(--ink)}.help{color:var(--ink-2);font-size:.88em;margin:0}.badge.soon{background:var(--danger-bg);color:var(--danger)}.badge.estimate{background:var(--sun-bg);color:var(--sun-ink)}.charts{width:100%;max-width:820px;height:auto;display:block;margin:0 auto}.charts .axis-x text,.charts .axis-y text{fill:var(--ink-2);font-size:11px}.charts .grid-line{stroke:var(--rule)}.charts .target{stroke:var(--ink);stroke-dasharray:4 3}.legend{display:flex;gap:.3rem 1rem;flex-wrap:wrap;font-size:.88em;color:var(--ink-2);margin-top:.5rem}.legend i{display:inline-block;width:12px;height:4px;border-radius:2px;vertical-align:middle;margin-right:.35rem}.banner{display:flex;gap:.5rem;align-items:center;background:var(--primary-bg);color:var(--primary-text);padding:.55rem .9rem;border-radius:var(--radius-small)}.banner strong{color:var(--ink)}@media(max-width:800px){.page{padding:1rem 1rem 3rem}.figures-row{gap:.6rem}.figure{min-width:7rem;padding:.7rem .95rem}.figure .num{font-size:2rem}.hide-mobile{display:none}.table-wrap{padding:.3rem .5rem}th,td{padding:.5rem .45rem}}@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))){:root{--glass: rgba(255, 255, 255, .94)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--glass: rgba(30, 32, 36, .95)}}:root[data-theme=dark]{--glass: rgba(30, 32, 36, .95)}}@media(prefers-reduced-transparency:reduce){:root{--glass: var(--sheet);--glass-strong: var(--sheet)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;animation:none!important}}.tone-terracotta,.tint-terracotta{--icon-a: #f08a55;--icon-b: #c2410c;--tone-text: #9a3412}.tone-orange,.tint-orange{--icon-a: #ffb35c;--icon-b: #e0702a;--tone-text: #9a4a0c}.tone-amber,.tint-amber{--icon-a: #ffd35c;--icon-b: #d99a00;--tone-text: #7a5a00}.tone-green,.tint-green{--icon-a: #6fd08a;--icon-b: #2f8a4e;--tone-text: #1f6b3a}.tone-mint,.tint-mint{--icon-a: #7fe0c0;--icon-b: #1f9a78;--tone-text: #11694f}.tone-teal,.tint-teal{--icon-a: #5fd3d0;--icon-b: #1f8f9a;--tone-text: #0f6770}.tone-blue,.tint-blue{--icon-a: #5aa9ff;--icon-b: #2a64d6;--tone-text: #1f55b8}.tone-indigo,.tint-indigo{--icon-a: #8a9bff;--icon-b: #4a4fd6;--tone-text: #3a3fb0}.tone-purple,.tint-purple{--icon-a: #c08bff;--icon-b: #7a46d1;--tone-text: #5e30a8}.tone-pink,.tint-pink{--icon-a: #ff8ac0;--icon-b: #d6457e;--tone-text: #a82d62}.tone-red,.tint-red{--icon-a: #ff8a7a;--icon-b: #d6453a;--tone-text: #a8322a}.tone-brown,.tint-brown{--icon-a: #d6a46a;--icon-b: #8a5a2b;--tone-text: #6e4520}.tone-grey,.tint-grey{--icon-a: #b0b4bc;--icon-b: #6b7079;--tone-text: #4a4f57}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .tone-terracotta,:root:not([data-theme=light]) .tint-terracotta{--tone-text: #ffa77e}:root:not([data-theme=light]) .tone-orange,:root:not([data-theme=light]) .tint-orange{--tone-text: #ffb877}:root:not([data-theme=light]) .tone-amber,:root:not([data-theme=light]) .tint-amber{--tone-text: #f5c33b}:root:not([data-theme=light]) .tone-green,:root:not([data-theme=light]) .tint-green{--tone-text: #7fd89a}:root:not([data-theme=light]) .tone-mint,:root:not([data-theme=light]) .tint-mint{--tone-text: #7fe0c0}:root:not([data-theme=light]) .tone-teal,:root:not([data-theme=light]) .tint-teal{--tone-text: #6fdcdc}:root:not([data-theme=light]) .tone-blue,:root:not([data-theme=light]) .tint-blue{--tone-text: #7ab8ff}:root:not([data-theme=light]) .tone-indigo,:root:not([data-theme=light]) .tint-indigo{--tone-text: #a6b0ff}:root:not([data-theme=light]) .tone-purple,:root:not([data-theme=light]) .tint-purple{--tone-text: #c9a2ff}:root:not([data-theme=light]) .tone-pink,:root:not([data-theme=light]) .tint-pink{--tone-text: #ff9fcb}:root:not([data-theme=light]) .tone-red,:root:not([data-theme=light]) .tint-red{--tone-text: #ff9a8a}:root:not([data-theme=light]) .tone-brown,:root:not([data-theme=light]) .tint-brown{--tone-text: #e0b27a}:root:not([data-theme=light]) .tone-grey,:root:not([data-theme=light]) .tint-grey{--tone-text: #c3c7ce}}:root[data-theme=dark] .tone-terracotta,:root[data-theme=dark] .tint-terracotta{--tone-text: #ffa77e}:root[data-theme=dark] .tone-orange,:root[data-theme=dark] .tint-orange{--tone-text: #ffb877}:root[data-theme=dark] .tone-amber,:root[data-theme=dark] .tint-amber{--tone-text: #f5c33b}:root[data-theme=dark] .tone-green,:root[data-theme=dark] .tint-green{--tone-text: #7fd89a}:root[data-theme=dark] .tone-mint,:root[data-theme=dark] .tint-mint{--tone-text: #7fe0c0}:root[data-theme=dark] .tone-teal,:root[data-theme=dark] .tint-teal{--tone-text: #6fdcdc}:root[data-theme=dark] .tone-blue,:root[data-theme=dark] .tint-blue{--tone-text: #7ab8ff}:root[data-theme=dark] .tone-indigo,:root[data-theme=dark] .tint-indigo{--tone-text: #a6b0ff}:root[data-theme=dark] .tone-purple,:root[data-theme=dark] .tint-purple{--tone-text: #c9a2ff}:root[data-theme=dark] .tone-pink,:root[data-theme=dark] .tint-pink{--tone-text: #ff9fcb}:root[data-theme=dark] .tone-red,:root[data-theme=dark] .tint-red{--tone-text: #ff9a8a}.app-icon.small{width:36px;height:36px;border-radius:10px}.app-icon.small svg{width:20px;height:20px}.app-icon.large{width:60px;height:60px;border-radius:15px;box-shadow:0 8px 18px #00000038}.app-icon.large svg{width:32px;height:32px}.app-icon .emoji{font-size:1.45rem;line-height:1;font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif}.app-icon.large .emoji{font-size:1.9rem}.app-icon.small .emoji{font-size:1.1rem}.home-tiles.dense{grid-template-columns:repeat(auto-fill,minmax(min(260px,100%),1fr));gap:1.1rem}.home-tiles.masonry{display:block;columns:340px;column-gap:1.4rem}.home-tiles.masonry>.home-tile{break-inside:avoid;margin-bottom:1.4rem}.home-tile.tall{grid-row:span 2}.home-tile-head .tile-link{display:flex;align-items:center;gap:.85rem;flex:1;min-width:0;color:inherit;border-radius:14px}a.tile-link:hover{text-decoration:none}a.tile-link:hover h2{color:var(--tone-text, var(--primary-text))}.tile-titles{display:flex;flex-direction:column;min-width:0;flex:1}.tile-titles h2{margin:0;font-size:1.3rem;font-weight:650;letter-spacing:-.01em;line-height:1.2}.tile-sub{color:var(--ink-2);font-size:.9em}.tile-open{flex:none;display:inline-flex;align-items:center;gap:.1rem;color:var(--tone-text, var(--primary-text));font-weight:600;font-size:.9em;opacity:0;transition:opacity .15s}.home-tile:hover .tile-open,.tile-link:focus-visible .tile-open{opacity:1}@media(hover:none){.tile-open{opacity:1}}.tile-action{flex:none;display:flex;gap:.3rem;align-items:center}.tile-action a,.tile-action .link{color:var(--tone-text, var(--primary-text));font-weight:600}.tile-body{flex:1;display:flex;flex-direction:column;min-height:0;gap:.5rem}.tile-body>.rgroup>.rlist,.tile-body>.rlist{margin:0 -.5rem}.tile-foot{margin-top:auto;padding-top:.5rem;color:var(--ink-2);font-size:.85em}.tile-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem}.tile-big{font-size:2.6rem;font-weight:700;letter-spacing:-.02em;line-height:1;font-variant-numeric:tabular-nums}.tile-big small{font-size:1rem;font-weight:600;color:var(--ink-2);margin-left:.3rem;letter-spacing:0}.tile-big.low{color:var(--earth)}.tile-big.out{color:var(--danger)}.home-tile .all-good{box-shadow:none;border:0}.home-tile.ghost-tile{background:transparent;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;border:1.5px dashed var(--rule-strong);align-items:center;justify-content:center;text-align:center;gap:.6rem}.hero-tile{overflow:hidden;gap:.2rem;padding:1.5rem 1.6rem;min-height:260px}.hero-tile .spacer{flex:1;min-height:1.2rem}.hero-mark{position:absolute;right:-28px;top:-24px;opacity:.13;color:var(--primary);pointer-events:none}.hero-mark svg{width:190px;height:190px;stroke-width:1.2}.hero-kicker{font-size:.95rem;color:var(--ink-2);font-weight:500;position:relative}.hero-kicker:first-letter{text-transform:uppercase}.hero-title{margin:0;font-size:2rem;font-weight:650;line-height:1.15;position:relative;display:block}.hero-sub{font-size:1.02rem;color:var(--ink-2);position:relative}.hero-chips{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:1.1rem;position:relative}.hero-actions{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:1rem;position:relative}.hero-tile.tint{background:radial-gradient(circle at 100% 0%,color-mix(in srgb,var(--tint, var(--primary)) 42%,transparent),transparent 72%),var(--glass)}.hero-tile.solid{color:#fff;border-color:#ffffff1f;background:radial-gradient(circle at 100% 0%,rgba(255,255,255,.16),transparent 55%),linear-gradient(155deg,var(--hero-a, var(--primary)),var(--hero-b, color-mix(in srgb, var(--primary) 55%, black)) 115%)}.hero-tile.solid .hero-mark{color:#fff}.hero-tile.solid .hero-kicker{color:#ffffffd1}.hero-tile.solid .hero-title{color:#fff}.hero-tile.solid .hero-sub{color:#ffffffd9}.hero-tile.solid a{color:#fff}.hero-tile.solid code{background:#ffffff2e;color:#fff}.hero-tile.solid .muted{color:#ffffffd9}.hero-tile.solid button:not(.primary),.hero-tile.solid .linkbtn:not(.primary){background:#fff3;color:#fff}.hero-tile.solid button:not(.primary):hover:not(:disabled),.hero-tile.solid .linkbtn:not(.primary):hover{background:#ffffff4d}.hero-tile.solid button.primary,.hero-tile.solid .linkbtn.primary{background:#fff;color:var(--hero-b, var(--primary-text))}.hero-tile.solid button.primary:hover:not(:disabled),.hero-tile.solid .linkbtn.primary:hover{background:#fff;filter:brightness(.95)}.pill{display:inline-flex;align-items:center;gap:.35rem;padding:.3rem .7rem;border-radius:10px;background:var(--sky);color:var(--ink);font-size:.87rem;font-weight:600;white-space:nowrap}.pill.quiet{color:var(--ink-2);font-weight:500}.pill.warn{background:var(--sun-bg);color:var(--sun-ink)}.pill.late{background:var(--late-bg);color:var(--late-text)}.pill.bad{background:var(--danger-bg);color:var(--danger)}.pill.good{background:var(--good-bg);color:var(--good)}.pill.accent{background:var(--primary-bg);color:var(--primary-text)}.hero-tile.solid .pill{background:#fff3;color:#fff}.hero-tile.solid .pill.warn{background:var(--sun);color:var(--sun-ink)}.hero-tile.solid .pill.late,.hero-tile.solid .pill.bad{background:#fff;color:#9b1c1c}.hero-tile.solid .pill.good{background:#ffffff47;color:#fff}.pane{position:relative;overflow:hidden;border-radius:var(--radius);padding:1.5rem 1.75rem 1.6rem;background:var(--glass);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border:1px solid var(--glass-edge);box-shadow:var(--glass-shadow)}.pane+.pane,.pane+.home-tiles,.home-tiles+.pane{margin-top:1.4rem}.pane>*:not(.pane-decor){position:relative}.pane-decor{position:absolute;top:0;right:0;width:460px;height:240px;pointer-events:none;background:radial-gradient(circle at 88% -18%,color-mix(in srgb,var(--icon-a) 26%,transparent) 0 150px,transparent 151px),radial-gradient(circle at 62% 62%,color-mix(in srgb,var(--icon-a) 13%,transparent) 0 64px,transparent 65px),radial-gradient(circle at 100% 86%,color-mix(in srgb,var(--icon-b) 15%,transparent) 0 44px,transparent 45px)}.pane-toolbar{display:flex;align-items:center;gap:.45rem;flex-wrap:wrap;margin:-.5rem -.6rem 1rem}.pane-toolbar .spacer{flex:1}.pane-head{display:flex;align-items:center;gap:.9rem;margin-bottom:.4rem;flex-wrap:wrap}.pane-titles{flex:1;min-width:12rem}.pane-title{margin:0;font-size:2rem;font-weight:700;line-height:1.1;letter-spacing:-.01em;color:var(--tone-text, var(--primary-text));display:block;overflow-wrap:anywhere}h2.pane-title{font-size:1.75rem}.pane-sub{margin-top:.25rem;color:var(--ink-2);font-size:.97rem;display:flex;gap:.3rem .6rem;flex-wrap:wrap;align-items:center}.pane-actions{display:flex;gap:.4rem;align-items:center;flex-wrap:wrap}.pane-section{margin-top:1.6rem}.pane-section>h3,.pane h3.section-title{font-size:1.15rem;font-weight:700;margin:0 0 .5rem;display:flex;align-items:baseline;gap:.5rem}.pane-section>h3 .count,h3.section-title .count{font-size:.85rem;font-weight:500;color:var(--ink-2)}.pane p.lead{color:var(--ink-2);max-width:48rem}.pane-toolbar select,.pane-toolbar input:not([type=checkbox]):not([type=radio]):not([type=search]){height:34px;padding:.2rem .6rem;border-radius:10px;background:var(--sky);border-color:transparent}.back-link{display:inline-flex;align-items:center;gap:.2rem;font-weight:600;color:var(--tone-text, var(--primary-text));padding:.3rem .5rem;border-radius:8px}a.back-link:hover{background:var(--sky);text-decoration:none}button.icon-btn,a.icon-btn,.linkbtn.icon-btn{display:inline-grid;place-items:center;width:36px;height:36px;min-height:0;padding:0;border:0;border-radius:50%;background:transparent;color:var(--tone-text, var(--primary-text))}button.icon-btn:not(.small):not(.ghost){min-height:0}button.icon-btn:hover:not(:disabled),a.icon-btn:hover{background:var(--sky);text-decoration:none}button.icon-btn svg,a.icon-btn svg{width:22px;height:22px}button.icon-btn.on,button.icon-btn.on:hover:not(:disabled){background:var(--primary);color:var(--primary-ink)}button.icon-btn.danger{color:var(--danger)}button.icon-btn.danger:hover:not(:disabled){background:var(--danger-bg)}.rgroup+.rgroup{margin-top:1.4rem}.rgroup-head{display:flex;align-items:baseline;gap:.55rem;margin:0 0 .15rem}.rgroup-head h3{margin:0;font-size:1.15rem;font-weight:700;display:flex;align-items:center;gap:.45rem}.rgroup-count{color:var(--ink-2);font-size:.88rem;font-weight:500}.rgroup-action{margin-left:auto}details.rgroup>summary{list-style:none;cursor:pointer}details.rgroup>summary::-webkit-details-marker{display:none}details.rgroup>summary h3:after{content:"";width:7px;height:7px;border-right:2px solid var(--ink-2);border-bottom:2px solid var(--ink-2);transform:rotate(-45deg);transition:transform .15s;margin:0 .2rem}details.rgroup[open]>summary h3:after{transform:rotate(45deg)}.rlist{list-style:none;margin:0 -.6rem;padding:0}.rrow{display:flex;align-items:center;gap:.85rem;padding:0 .6rem;border-radius:12px;min-height:52px}.rrow:has(>.rrow-main>.rrow-body.action):hover{background:var(--sky)}.rrow-lead{flex:none;display:grid;place-items:center;min-width:24px;color:var(--ink-2)}.rrow-main{flex:1;min-width:0;align-self:stretch;display:flex;flex-direction:column;justify-content:center;border-bottom:1px solid var(--rule)}.rrow:last-child>.rrow-main{border-bottom:0}.rrow-body{display:flex;align-items:center;gap:.9rem;width:100%;padding:.6rem 0;color:inherit;min-height:50px}.rlist .rrow button.rrow-body,.rlist .rrow a.rrow-body{background:transparent;border:0;border-radius:0;font:inherit;font-weight:inherit;text-align:left;color:inherit;min-height:50px;padding:.6rem 0;justify-content:flex-start;line-height:inherit}.rlist .rrow button.rrow-body:hover:not(:disabled){background:transparent}.rlist .rrow button.rrow-body:active:not(:disabled){transform:none}a.rrow-body:hover{text-decoration:none}.rrow-body:focus-visible{outline-offset:-2px;border-radius:8px}.rrow-text{display:flex;flex-direction:column;flex:1;min-width:0;gap:.05rem}.rrow-title{font-size:1rem;line-height:1.3;overflow-wrap:anywhere}.rrow-detail{font-size:.85rem;color:var(--ink-2);line-height:1.3;overflow-wrap:anywhere}.rrow-trail{flex:none;display:flex;align-items:center;gap:.5rem;font-size:.9rem;font-weight:600;color:var(--ink-2);text-align:right;font-variant-numeric:tabular-nums}.rrow-trail.warn{color:var(--sun-text)}.rrow-trail.late{color:var(--late-text)}.rrow-trail.bad{color:var(--danger)}.rrow-trail.good{color:var(--good)}.rrow-trail .meter{width:140px}.rrow.top{align-items:flex-start}.rrow.top>.rrow-lead{padding-top:.85rem}.rrow.top .rrow-body{align-items:flex-start}.rlist.compact .rrow{min-height:44px}.rlist.compact .rrow-body,.rlist.compact .rrow button.rrow-body,.rlist.compact .rrow a.rrow-body{min-height:42px;padding:.4rem 0}.rlist.compact .rrow.top>.rrow-lead{padding-top:.6rem}.rrow-more{padding:0 0 .7rem}.check-circle{position:relative;flex:none;display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;border:2px solid var(--rule-strong);background:transparent;color:transparent}button.check-circle.check-circle{min-height:0;min-width:0;padding:0;border-radius:50%;background:transparent;cursor:pointer;line-height:1}button.check-circle:after{content:"";position:absolute;top:-10px;right:-10px;bottom:-10px;left:-10px}button.check-circle.check-circle:hover:not(:disabled),button.check-circle.check-circle:focus-visible{border-color:var(--primary);background:var(--primary-bg);color:var(--primary-text)}button.check-circle.check-circle:active:not(:disabled){transform:none}button.check-circle:disabled{opacity:.4;cursor:default}.check-circle.late{border-color:var(--late)}.check-circle.warn{border-color:var(--sun)}.check-circle.bad{border-color:var(--danger)}.check-circle.on,button.check-circle.check-circle.on:hover:not(:disabled){background:var(--primary);border-color:var(--primary);color:var(--primary-ink)}.check-circle.small{width:20px;height:20px;border-width:1.5px}.check-circle svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.check-circle.small svg{width:13px;height:13px}.dot{display:inline-block;width:11px;height:11px;border-radius:50%;background:var(--rule-strong);flex:none}.dot.good{background:var(--good)}.dot.warn{background:var(--sun)}.dot.late{background:var(--late)}.dot.bad{background:var(--danger)}.dot.accent{background:var(--primary)}.dot.square{border-radius:4px}.totals{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(200px,100%),1fr));gap:.85rem;margin:.4rem 0 1.2rem}.total{display:flex;align-items:center;gap:.85rem;padding:.95rem 1rem;border-radius:18px;min-width:0;color:inherit;background:var(--glass);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border:1px solid var(--glass-edge);box-shadow:var(--glass-shadow)}:is(.pane,.home-tile,.panel,.card) .total{background:var(--sky);border-color:transparent;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;border-radius:16px}.total-text{display:flex;flex-direction:column;min-width:0}.total-text>span{overflow:hidden;text-overflow:ellipsis}.total-label{font-size:.83rem;color:var(--ink-2);font-weight:600;white-space:nowrap}.total-value{font-size:1.65rem;font-weight:650;line-height:1.15;letter-spacing:-.01em;font-variant-numeric:tabular-nums}.total-detail{font-size:.8rem;color:var(--ink-2)}a.total:hover{background:var(--glass-strong);text-decoration:none}:is(.pane,.home-tile,.panel,.card) a.total:hover{background:var(--sky-strong)}.total.bad .total-value{color:var(--danger)}.total.late .total-value{color:var(--late-text)}.total.warn .total-value{color:var(--sun-text)}.total.good .total-value{color:var(--good)}.search-field{display:inline-flex;flex-direction:row;align-items:center;gap:.4rem;height:34px;padding:0 .7rem;border-radius:10px;background:var(--sky);color:var(--ink-2);font-weight:400;min-width:12rem;flex:0 1 17rem}.search-field svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;flex:none}.search-field input[type=search],.search-field input:not([type=checkbox]):not([type=radio]){flex:1;min-width:0;height:32px;border:0;padding:0;background:transparent;color:var(--ink);box-shadow:none}.search-field:focus-within{box-shadow:0 0 0 3px var(--primary-bg)}.search-field.wide{flex:1 1 22rem;height:42px;font-size:1.05rem;border-radius:12px}.search-field.wide input:not([type=checkbox]){height:40px}:is(table.drive,.table-wrap>table) th{font-size:.8rem;font-weight:600;color:var(--ink-2);white-space:nowrap}:is(table.drive,.table-wrap>table) thead th{border-bottom:1px solid var(--rule-strong)}:is(table.drive,.table-wrap>table) td{vertical-align:middle}:is(table.drive,.table-wrap>table)>tbody>tr:not(.group):hover>td{background:var(--sky)}:is(table.drive,.table-wrap>table)>tbody>tr:not(.group)>td:first-child{border-radius:10px 0 0 10px}:is(table.drive,.table-wrap>table)>tbody>tr:not(.group)>td:last-child{border-radius:0 10px 10px 0}:is(table.drive,.table-wrap>table) tr.group th{font-size:1.05rem;font-weight:700;color:var(--ink);padding:1.2rem .6rem .35rem;border-bottom:1px solid var(--rule);text-align:left;white-space:normal}:is(table.drive,.table-wrap>table) tr.group th .count{font-size:.82rem;font-weight:500;color:var(--ink-2);margin-left:.4rem}:is(table.drive,.table-wrap>table) :is(td,th).lead{width:2rem;padding-right:0}:is(table.drive,.table-wrap>table) td.strong{font-weight:600}:is(table.drive,.table-wrap>table) td.muted{color:var(--ink-2)}:is(table.drive,.table-wrap>table) tr.clickable{cursor:pointer}:is(table.drive,.table-wrap>table) .cell-main{display:block;font-weight:500}:is(table.drive,.table-wrap>table) .cell-sub{display:none;color:var(--ink-2);font-size:.85em}table.drive{width:100%;border-collapse:collapse}table.drive th{padding:.45rem .6rem;border-bottom:1px solid var(--rule)}table.drive td{padding:.62rem .6rem;border-bottom:1px solid var(--rule)}table.drive tr:last-child td{border-bottom:0}.drive-wrap{overflow-x:auto;margin:0 -.6rem}:is(table.drive,.table-wrap>table) button.ghost{color:var(--ink-2)}:is(table.drive,.table-wrap>table) button.ghost.danger:hover:not(:disabled){color:var(--danger);background:var(--danger-bg)}.meter{position:relative;display:block;height:6px;border-radius:3px;background:var(--sky-strong);min-width:3rem}.meter.thin{height:4px}.meter-fill{position:absolute;left:0;top:0;bottom:0;border-radius:3px;background:var(--good)}.meter-fill.accent{background:var(--primary)}.meter-fill.low{background:var(--sun)}.meter-fill.out{background:var(--danger)}.meter i{position:absolute;top:-4px;bottom:-4px;width:2px;margin-left:-1px;border-radius:1px;background:var(--ink);opacity:.7}.stat{display:flex;flex-direction:column;padding:.7rem .85rem;border-radius:12px;background:var(--sky);min-width:0}.stat-label{font-size:.8rem;color:var(--ink-2);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stat-value{font-size:1.5rem;font-weight:650;line-height:1.2;font-variant-numeric:tabular-nums}.stat-detail{font-size:.78rem;color:var(--ink-2)}.stat.bad .stat-value{color:var(--danger)}.stat.late .stat-value{color:var(--late-text)}.stat.warn .stat-value{color:var(--sun-text)}.stat.good .stat-value{color:var(--good)}.glass-empty{color:var(--ink-2);text-align:center;padding:1.2rem .5rem;margin:0}.inset-group{list-style:none;margin:0;padding:0 0 0 1.1rem;border-radius:16px;background:var(--glass);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border:1px solid var(--glass-edge);box-shadow:var(--glass-shadow)}.inset-group>div,.inset-group>li{display:flex;align-items:center;gap:.8rem;min-height:50px;padding:.45rem 1rem .45rem 0;border-bottom:1px solid var(--rule)}.inset-group>:last-child{border-bottom:0}.inset-group dt{flex:1;color:var(--ink);font-weight:500}.inset-group dd{margin:0;color:var(--ink-2);font-variant-numeric:tabular-nums;font-weight:600}.toast{position:fixed;left:50%;bottom:calc(1.2rem + env(safe-area-inset-bottom,0px));transform:translate(-50%);z-index:30;display:flex;align-items:center;gap:.6rem;width:max-content;max-width:min(560px,calc(100vw - 2rem));padding:.5rem .5rem .5rem 1rem;border-radius:18px;background:var(--glass-strong);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border:1px solid var(--glass-edge);box-shadow:var(--glass-shadow);font-weight:600}.toast>svg{color:var(--primary-text);flex:none}.toast button.ghost{color:var(--ink-2);min-height:32px}@media(max-width:800px){.pane{padding:1.1rem 1rem 1.2rem;border-radius:18px}.pane-title{font-size:1.6rem}h2.pane-title{font-size:1.45rem}.app-icon.large{width:48px;height:48px;border-radius:12px}.app-icon.large svg{width:26px;height:26px}.pane-toolbar{margin:-.3rem -.3rem .8rem}.pane-decor{width:260px;height:160px}.totals{grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem}.total{padding:.7rem .8rem;gap:.6rem}.total-value{font-size:1.35rem}.search-field{flex:1 1 100%}.rrow-trail .meter{width:80px}.hero-tile{padding:1.2rem 1.25rem;min-height:220px}.hero-title{font-size:1.7rem}.home-tile.tall{grid-row:auto}.home-tiles.masonry{columns:1}.home-tiles.masonry>.home-tile{margin-bottom:1rem}:is(table.drive,.table-wrap>table) .cell-sub{display:block}.inset-group{padding-left:.9rem}}:root{--primary: #0f766e;--primary-bg: #d9efec;--primary-ink: #ffffff;--primary-text: #0d5f58;--wall-base: #e3f1ee;--wall-1: #c9e8e2;--wall-2: #a9dbd2;--wall-3: #d6ede8}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--primary: #4fd1c1;--primary-bg: rgba(79, 209, 193, .22);--primary-ink: #04201d;--primary-text: #7fe0d3;--wall-base: #07201e;--wall-1: #0d3f3a;--wall-2: #125a52;--wall-3: #0a2e2b}}:root[data-theme=dark]{--primary: #4fd1c1;--primary-bg: rgba(79, 209, 193, .22);--primary-ink: #04201d;--primary-text: #7fe0d3;--wall-base: #07201e;--wall-1: #0d3f3a;--wall-2: #125a52;--wall-3: #0a2e2b}.home .home-tiles{grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem}@media(max-width:1100px){.home .home-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}.home .home-tile.wide{grid-column:1 / -1}}@media(max-width:800px){.home .home-tiles{grid-template-columns:minmax(0,1fr);gap:1rem}}.holder-filter{margin-bottom:1rem}.holder-split{list-style:none;margin:1rem 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:.4rem 1.6rem}.holder-split li{display:flex;justify-content:space-between;gap:.6rem;align-items:baseline}.tile-amount{color:var(--ink);font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}button.title-link,.holder-split button.title-link{padding:0;min-height:0;border-radius:4px;background:none;box-shadow:none;border:0;font:inherit;font-weight:500;color:var(--ink);text-align:left;white-space:nowrap}button.title-link:hover:not(:disabled){background:none;text-decoration:underline;text-underline-offset:.15em}.chart svg{width:100%;height:auto;display:block;touch-action:pan-y}.chart .grid-line{stroke:var(--rule)}.chart .zero{stroke:var(--ink-3);stroke-dasharray:4 3}.chart .tick{fill:var(--ink-2);font-size:19px;font-variant-numeric:tabular-nums}.chart .line{fill:none;stroke-width:2;stroke-linejoin:round;stroke-linecap:round}.chart .line.main{stroke-width:3}.chart .line.dashed{stroke-dasharray:6 5}.chart .area{opacity:.12}.chart .cursor{stroke:var(--ink-3);stroke-width:1}.chart .dot{stroke:var(--panel);stroke-width:2}.chart-readout{display:flex;flex-wrap:wrap;gap:.3rem 1.2rem;align-items:baseline;font-size:.92em;color:var(--ink-2);margin-top:.4rem}.chart-readout strong{color:var(--ink);margin-right:.3rem}.chart-readout span{display:inline-flex;align-items:center;gap:.35rem}.chart-readout i{width:10px;height:10px;border-radius:50%}.chart-readout b{color:var(--ink);font-variant-numeric:tabular-nums}.tile-toolbar{display:flex;flex-wrap:wrap;gap:.5rem 1rem;align-items:center;justify-content:space-between;margin-bottom:.6rem}.chips{display:flex;flex-wrap:wrap;gap:.35rem}.chips button{min-height:0;padding:.2rem .7rem;border-radius:var(--pill);background:var(--sky);color:var(--ink-2);font-weight:500;display:inline-flex;gap:.35rem;align-items:center}.chips button[aria-pressed=true]{background:var(--glass-strong);color:var(--ink);box-shadow:0 1px 3px #0000001f}.chips button i{width:9px;height:9px;border-radius:50%}.home .home-tile.full{grid-column:1 / -1}.projection .page-head .row{display:flex;gap:.6rem;flex-wrap:wrap}.sim{display:grid;grid-template-columns:minmax(300px,380px) minmax(0,1fr);gap:1.25rem;align-items:start}.sim-form>*{flex-shrink:0}.sim-form{display:flex;flex-direction:column;gap:1rem;position:sticky;top:0;max-height:calc(100vh - 110px);overflow-y:auto;padding-right:.3rem}.sim-results{display:flex;flex-direction:column;gap:1rem;min-width:0}.sim-two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.sim-form label.sim-field,label.check-line{flex-direction:row;text-align:left;font-weight:500}.sim-field{display:flex;align-items:center;justify-content:space-between;gap:.6rem;margin:.35rem 0;font-size:.93em}.sim-field>span:first-child{color:var(--ink-2)}.sim-field select,.sim-field>input{max-width:11rem}.num-input{display:inline-flex;align-items:center;gap:.3rem}.num-input input{width:6.5rem;text-align:right;font-variant-numeric:tabular-nums}.num-input small{color:var(--ink-3);min-width:2.2rem}.check-line{display:flex;align-items:center;gap:.5rem;font-size:.93em;margin:.4rem 0}.period{position:relative;border-top:1px solid var(--rule);padding:.5rem 1.8rem .4rem 0}.period:first-of-type{border-top:0}.period .remove{position:absolute;right:0;top:.5rem;min-height:0;padding:.1rem .45rem}.years{display:flex;align-items:center;gap:.4rem;margin-bottom:.2rem}.years .num-input input{width:5rem}.compact-table td,.compact-table th{padding:.25rem .3rem}.compact-table .num-input input{width:4.5rem}.start-lines{list-style:none;margin:.6rem 0 0;padding:0;font-size:.9em}.start-lines li{display:flex;justify-content:space-between;gap:.6rem;padding:.25rem 0;border-top:1px solid var(--rule)}.start-lines small{color:var(--ink-3)}.stats-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:.8rem}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}@media(max-width:1100px){.sim{grid-template-columns:minmax(0,1fr)}.sim-form{position:static;max-height:none;overflow:visible}.sim-two{grid-template-columns:minmax(0,1fr)}}.page>*+.pane{margin-top:1rem}.grid-two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin-top:1rem}.rrow.current{background:var(--primary-bg);border-radius:10px}.muted.block,small.block{display:block}.nowrap{white-space:nowrap}td.pos{color:var(--good)}td.neg{color:var(--danger)}tr.dimmed td{opacity:.6}.bars-h{list-style:none;margin:0;padding:0}.bars-h>li summary{display:grid;grid-template-columns:minmax(8rem,14rem) minmax(0,1fr) 8rem;gap:.8rem;align-items:center;padding:.35rem 0;cursor:pointer;list-style:none}.bars-h>li summary::-webkit-details-marker{display:none}.bar-track{height:10px;border-radius:999px;background:var(--sky);overflow:hidden}.bar-track i{display:block;height:100%;background:var(--primary);border-radius:999px}.bars-h details ul{list-style:none;margin:0 0 .4rem 1rem;padding:0;font-size:.9em;color:var(--ink-2)}.bars-h details ul li{display:flex;justify-content:space-between;padding:.15rem 0}.stat-button{all:unset;cursor:pointer;display:block;border-radius:var(--radius)}.stat-button.current>*{box-shadow:inset 0 0 0 2px var(--primary)}.chips-line{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.6rem}.month-bars{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:3px;height:200px}.month-bars>div{display:grid;grid-template-rows:1fr 1fr auto;min-width:0}.month-bars .half{display:flex}.month-bars .half.up{align-items:flex-end;border-bottom:1px solid var(--rule)}.month-bars .half.down{align-items:flex-start}.month-bars i{display:block;width:100%;border-radius:3px}.month-bars .up i{background:var(--good)}.month-bars .down i{background:var(--danger)}.month-bars small{text-align:center;font-size:.6em;color:var(--ink-3);overflow:hidden;white-space:nowrap}.weight{display:inline-block;width:60px;height:6px;border-radius:999px;background:var(--sky);vertical-align:middle;overflow:hidden}.weight i{display:block;height:100%;background:var(--primary)}.kv{display:grid;grid-template-columns:auto auto;gap:.25rem 1rem;justify-content:space-between;margin:.4rem 0 .8rem}.kv span{color:var(--ink-2)}.kv strong{text-align:right;font-variant-numeric:tabular-nums}.page .grid-cards{margin-top:1rem}@media(max-width:900px){.grid-two{grid-template-columns:minmax(0,1fr)}}.page.wide{max-width:1760px}.sim-kpis{grid-template-columns:repeat(5,minmax(0,1fr));margin-bottom:1rem}.sim-top{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:1rem;align-items:start}.sim-left{display:flex;flex-direction:column;gap:1rem;min-width:0}.sim-row{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,2fr);gap:1rem}.sim-levers{position:sticky;top:0}.slider{display:flex;flex-direction:column;gap:.2rem;margin:.55rem 0;font-weight:500;color:var(--ink)}.slider-head{display:flex;justify-content:space-between;gap:.6rem;font-size:.9em}.slider-head span{color:var(--ink-2)}.slider-head b{font-variant-numeric:tabular-nums}.slider input[type=range]{width:100%;accent-color:var(--primary)}.lever-shock{border-top:1px solid var(--rule);margin-top:.6rem;padding-top:.4rem}.lever-save{border-top:1px solid var(--rule);margin-top:.6rem;padding-top:.6rem;display:flex;flex-direction:column;gap:.5rem}.pchart svg{width:100%;height:auto;display:block;touch-action:pan-y}.pchart .grid-line{stroke:var(--rule)}.pchart .zero{stroke:var(--ink-3)}.pchart .tick{fill:var(--ink-2);font-size:15px;font-variant-numeric:tabular-nums}.pchart .line{fill:none;stroke-width:2.2;stroke-linejoin:round}.pchart .line.main{stroke-width:3.5}.pchart .line.dashed{stroke-dasharray:7 6}.pchart .target{fill:none;stroke-width:2;stroke-dasharray:3 5}.pchart .zone{fill:var(--ink);opacity:.025}.pchart .zone.odd{opacity:.06}.pchart .zone-label{fill:var(--ink-2);font-size:14px;font-weight:600}.pchart .marker line{stroke-width:1.5;stroke-dasharray:4 4}.pchart .marker line.leader{stroke-dasharray:none}.pchart .marker circle{stroke:var(--panel);stroke-width:3}.pchart .marker-label{font-size:16px;font-weight:700;paint-order:stroke;stroke:var(--panel);stroke-width:5px;stroke-linejoin:round}.pchart .cursor{stroke:var(--ink-3)}.pchart .dot{stroke:var(--panel);stroke-width:2}.pchart .stack{opacity:.85}.pchart .stack.minus{opacity:.45}.band-dot{opacity:.4}.tabs{display:flex;gap:.3rem;margin:1.4rem 0 .8rem;border-bottom:1px solid var(--rule);flex-wrap:wrap}.tabs button{background:none;border-radius:10px 10px 0 0;color:var(--ink-2);font-weight:600;padding:.5rem 1rem;min-height:0;border-bottom:2px solid transparent}.tabs button.active{color:var(--primary-text);border-bottom-color:var(--primary)}.assumptions-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:1rem;align-items:start}.assumptions-grid label.sim-field{flex-direction:row;text-align:left;font-weight:500}table.dense td,table.dense th{padding:.35rem .5rem}tr.current td{background:var(--primary-bg)}.badge.good{background:var(--good-bg);color:var(--good);margin-left:.5rem;font-size:.75em;padding:.05rem .45rem;border-radius:999px}.caveat{margin-top:1rem}@media(max-width:1300px){.sim-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:1100px){.sim-top,.sim-row{grid-template-columns:minmax(0,1fr)}.sim-levers{position:static}.sim-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}.donut{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;justify-content:center}.donut-track{fill:none;stroke:var(--sky);stroke-width:26}.donut-slice{fill:none;stroke-width:26}.donut-center{fill:var(--ink);font-size:30px;font-weight:700}.donut-sub{fill:var(--ink-2);font-size:14px}.donut-legend{list-style:none;margin:0;padding:0;display:grid;gap:.45rem;min-width:10rem}.donut-legend li{display:grid;grid-template-columns:12px 1fr auto;gap:0 .5rem;align-items:center}.donut-legend i{width:12px;height:12px;border-radius:50%}.donut-legend b{font-variant-numeric:tabular-nums}.donut-legend small{grid-column:2 / -1;color:var(--ink-2)}.projection .page-head{margin-bottom:1rem}.bars-h .tile-amount{text-align:right}.stats-row{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}.stat-button{height:100%}.stat-button>*{height:100%;box-sizing:border-box}.month-bars small{overflow:visible;font-size:.62em}.wcell{display:inline-grid;grid-template-columns:3.2rem 64px;gap:.5rem;align-items:center;justify-items:end}.wcell .weight{width:64px}.page .grid-cards{grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}table.drive td.num,table.drive th.num,table.drive td.nowrap{white-space:nowrap}.ltv-line{display:flex;justify-content:space-between;font-size:.85em;color:var(--ink-2);margin:.2rem 0 .1rem}.cat-tiles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem;margin-top:1.25rem;align-items:start}@media(min-width:1900px){.cat-tiles{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(max-width:800px){.cat-tiles{grid-template-columns:minmax(0,1fr)}}a.holder-link{color:var(--ink);font-weight:500;text-decoration:none}a.holder-link:hover{text-decoration:underline;text-underline-offset:.15em}.assumptions-grid{display:block;column-width:340px;column-gap:1rem}.assumptions-grid>*{break-inside:avoid;margin-bottom:1rem;display:block}.compact-table .num-input input{width:3.6rem}.compact-table .num-input small{min-width:0}.compact-table{width:100%}.period .sim-field>input{max-width:13rem;width:13rem}.grid-two>.pane,.sim-row>.pane,.sim-top>.pane,.sim-left>.pane,.grid-cards>.pane{margin-top:0}td.cat-cell{width:15rem}td.cat-cell select{width:100%;font-size:.88em;padding:.25rem .4rem;min-height:0}td.cat-cell select.uncategorized{color:var(--sun-text, var(--ink-2))}
