:root{--bg:#f3f5f9;--surface:#ffffff;--surface-2:#f7f9fc;--raised:#eef2f7;--text:#0e1b2c;--text-2:#26364b;--muted:#5a6b82;--faint:#8392a7;--border:#e2e7ee;--border-strong:#cfd7e2;--primary:#0f2a4a;--link:#1d58b0;--accent:#f5b21a;--accent-hover:#ffc53d;--accent-ink:#0a1220;--accent-soft:#fff4d6;--accent-text:#8a5a00;--success:#12805c;--success-soft:#e3f5ee;--warning:#b25e00;--warning-soft:#fff1dc;--danger:#c2362e;--danger-soft:#fdeceb;--side-bg:#0a1424;--side-text:#b8c4d6;--side-dim:#6f819a;--side-hover:#13243b;--side-active:#1a2f4d;--side-line:#172840;--shadow:0 1px 2px rgba(16,24,40,.04),0 6px 20px rgba(16,24,40,.06);--shadow-lg:0 20px 60px rgba(10,18,32,.18);--radius:14px;--radius-sm:10px;--font-body:var(--f-body,"Figtree"),system-ui,-apple-system,"Segoe UI",sans-serif;--font-display:var(--f-display,"Archivo"),system-ui,sans-serif;--font-mono:var(--f-mono,"JetBrains Mono"),ui-monospace,Menlo,Consolas,monospace;color-scheme:light}:root[data-theme=dark]{--bg:#060c17;--surface:#0b1626;--surface-2:#0f1e33;--raised:#13243b;--text:#f1f5fa;--text-2:#d4dce8;--muted:#9aaabf;--faint:#6f819a;--border:#1c2b42;--border-strong:#2a3d5a;--primary:#9fc1ec;--link:#8fbaf5;--accent-soft:#2a1e05;--accent-text:#ffcb52;--success:#6fd3a5;--success-soft:#0e2a1f;--warning:#ffb347;--warning-soft:#2b1d06;--danger:#ff8a80;--danger-soft:#2d1113;--side-bg:#050a14;--side-hover:#0f1c30;--side-active:#15263f;--side-line:#111f33;--shadow:0 1px 2px rgba(0,0,0,.3),0 8px 24px rgba(0,0,0,.25);color-scheme:dark}@media (prefers-color-scheme:dark){:root[data-theme=system]{--bg:#060c17;--surface:#0b1626;--surface-2:#0f1e33;--raised:#13243b;--text:#f1f5fa;--text-2:#d4dce8;--muted:#9aaabf;--faint:#6f819a;--border:#1c2b42;--border-strong:#2a3d5a;--primary:#9fc1ec;--link:#8fbaf5;--accent-soft:#2a1e05;--accent-text:#ffcb52;--success:#6fd3a5;--success-soft:#0e2a1f;--warning:#ffb347;--warning-soft:#2b1d06;--danger:#ff8a80;--danger-soft:#2d1113;--side-bg:#050a14;--side-hover:#0f1c30;--side-active:#15263f;--side-line:#111f33;--shadow:0 1px 2px rgba(0,0,0,.3),0 8px 24px rgba(0,0,0,.25);color-scheme:dark}}:root[data-preset=ocean]{--accent:#2bb3c0;--accent-hover:#4cc8d4;--accent-ink:#04191c;--side-bg:#062033}:root[data-preset=forest]{--accent:#e0a526;--accent-hover:#f0b93d;--side-bg:#0b2416}:root[data-preset=charcoal]{--accent:#e5534b;--accent-hover:#f06b63;--accent-ink:#ffffff;--side-bg:#15181d}:root[data-preset=purple]{--accent:#f5b21a;--side-bg:#1c1238}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--text);font:15px/1.55 var(--font-body);-webkit-font-smoothing:antialiased}a{color:var(--link);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3,h4{font-family:var(--font-display);font-stretch:106%;line-height:1.2;margin:0 0 .5rem;color:var(--text);text-wrap:balance;letter-spacing:-.01em}h1{font-size:clamp(24px,2.4vw,30px);font-weight:800}h2{font-size:21px;font-weight:750}h3{font-size:17px;font-weight:700}p{text-wrap:pretty}hr{border:0;border-top:1px solid var(--border);margin:16px 0}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}::selection{background:var(--accent);color:var(--accent-ink)}.muted{color:var(--muted)}.small{font-size:13px}.mono{font-family:var(--font-mono);font-size:.92em}.strong{font-weight:700;color:var(--text)}.error{color:var(--danger)}.error,.info{font-weight:600}.info{color:var(--success)}.btn,button{font:inherit;font-weight:700;font-size:14px;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;padding:0 16px;border:1px solid transparent;border-radius:var(--radius-sm);cursor:pointer;background:var(--accent);color:var(--accent-ink);text-decoration:none;white-space:nowrap;transition:background .15s,border-color .15s,box-shadow .15s}.btn:hover,button:hover{background:var(--accent-hover);text-decoration:none}button:disabled{opacity:.55;cursor:not-allowed}.btn.secondary,button.secondary{background:var(--surface);color:var(--text);border-color:var(--border-strong)}.btn.secondary:hover,button.secondary:hover{border-color:var(--faint);background:var(--surface-2)}.btn.ghost,button.ghost{background:transparent;color:var(--text-2);border-color:transparent}.btn.ghost:hover,button.ghost:hover{background:var(--raised)}.btn.danger,button.danger{background:var(--danger-soft);color:var(--danger);border-color:transparent}.btn.sm,button.sm{min-height:32px;padding:0 10px;font-size:13px}.btn.icon,button.icon{min-width:40px;padding:0 10px}.stack,form.stack{display:grid;grid-gap:14px;gap:14px}label{display:grid;grid-gap:6px;gap:6px;font-weight:600;font-size:13px;color:var(--text-2)}input,select,textarea{font:inherit;font-size:14px;width:100%;min-height:40px;padding:8px 12px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);transition:border-color .15s,box-shadow .15s}textarea{min-height:80px;resize:vertical}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 30%,transparent)}input[type=checkbox],input[type=radio]{width:18px;min-height:18px;height:18px;padding:0;accent-color:var(--accent)}input[type=file]{padding:6px}.check{display:inline-flex!important;grid-auto-flow:column;gap:8px;align-items:center;font-weight:500!important;font-size:14px!important}fieldset{border:1px solid var(--border);border-radius:var(--radius-sm);padding:12px 14px}legend{padding:0 6px}.filters{display:grid;grid-gap:12px;gap:12px;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));align-items:end}.row{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.between{justify-content:space-between}.stack-sm{display:grid;grid-gap:8px;gap:8px}.grid{grid-gap:16px;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr))}.grid,.grid-2{display:grid;gap:16px}.grid-2{grid-gap:16px;grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));align-items:start}.page-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:20px}.page-head h1{margin:0}.page-head p{margin:4px 0 0;color:var(--muted)}.crumb{font-size:13px;margin-bottom:8px;display:inline-flex;gap:6px;align-items:center;color:var(--muted)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:18px;box-shadow:var(--shadow);min-width:0}.card h3:first-child{margin-top:0}.card-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:12px}.card-head h3{margin:0}details.card>summary{cursor:pointer;font-weight:700;list-style:none;display:flex;align-items:center;gap:8px}details.card>summary::-webkit-details-marker{display:none}details.card>summary:before{content:"+";display:inline-grid;place-items:center;width:22px;height:22px;border-radius:6px;background:var(--accent-soft);color:var(--accent-text);font-weight:800}details.card[open]>summary:before{content:"–"}.stats{display:grid;grid-gap:12px;gap:12px;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));margin-bottom:20px}.stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;box-shadow:var(--shadow)}.stat .k{font-size:12px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.stat .v{font-family:var(--font-display);font-size:28px;font-weight:800;letter-spacing:-.02em;margin-top:2px}.stat .s{font-size:12px}.empty,.stat .s{color:var(--muted)}.empty{text-align:center;padding:40px 16px}.empty strong{display:block;color:var(--text);font-size:16px;margin-bottom:4px}.banner{background:var(--warning-soft);color:var(--text);border:1px solid color-mix(in srgb,var(--warning) 35%,transparent);padding:12px 16px;border-radius:var(--radius-sm);margin-bottom:16px}.banner a{font-weight:700}.notice{background:var(--accent-soft);border:1px solid color-mix(in srgb,var(--accent) 40%,transparent);border-radius:var(--radius-sm);padding:12px 14px;font-size:14px}.badge,.pill{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:600;padding:3px 9px;border-radius:99px;background:var(--raised);color:var(--text-2);white-space:nowrap;border:0}.badge.ok,.pill.ok{background:var(--success-soft);color:var(--success)}.badge.warn,.pill.warn{background:var(--warning-soft);color:var(--warning)}.badge.bad,.pill.bad{background:var(--danger-soft);color:var(--danger)}.pill.accent{background:var(--accent-soft);color:var(--accent-text)}table{width:100%;border-collapse:collapse}td,th{text-align:left;padding:10px 12px;border-bottom:1px solid var(--border);font-size:14px;vertical-align:top}th{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}tr:last-child td{border-bottom:0}.table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow)}.table-wrap table{min-width:680px}.table-wrap thead th{position:-webkit-sticky;position:sticky;top:0}.table-wrap tbody tr:hover,.table-wrap thead th{background:var(--surface-2)}.kv th{width:38%;text-transform:none;letter-spacing:0;font-size:13px;font-weight:600}.tabs{display:flex;flex-wrap:wrap;gap:4px;padding:4px;background:var(--raised);border-radius:12px;margin-bottom:18px;width:-moz-fit-content;width:fit-content;max-width:100%}.tabs a{padding:7px 14px;text-decoration:none;color:var(--muted);border-radius:9px;font-weight:600;font-size:14px}.tabs a.on,.tabs a:hover{color:var(--text)}.tabs a.on{background:var(--surface);box-shadow:var(--shadow)}.bar{height:8px;background:var(--raised);position:relative;overflow:hidden}.bar,.bar>span{border-radius:6px}.bar>span{position:absolute;inset:0 auto 0 0;background:var(--primary)}.bar.alert>span{background:var(--accent)}.kanban{display:grid;grid-gap:14px;gap:14px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));align-items:start}.kanban .col{background:var(--raised);border-radius:var(--radius);padding:12px;display:grid;grid-gap:10px;gap:10px}.app{min-height:100vh;display:flex;flex-direction:column}.appbar{position:-webkit-sticky;position:sticky;top:0;z-index:30;background:var(--side-bg);color:var(--side-text);border-bottom:1px solid var(--side-line)}.appbar-row{max-width:1440px;margin:0 auto;gap:14px;padding:10px 24px}.appbar-logo,.appbar-row{display:flex;align-items:center}.appbar-logo{flex:none}.topnav{display:flex;align-items:center;gap:2px;overflow-x:auto;scrollbar-width:none;min-width:0;flex:1 1 auto}.topnav::-webkit-scrollbar{display:none}.topnav a{display:inline-flex;align-items:center;gap:7px;padding:8px 11px;border-radius:9px;font-size:14px;font-weight:600;color:var(--side-text);text-decoration:none;white-space:nowrap}.topnav a:hover{background:var(--side-hover);color:#fff;text-decoration:none}.topnav a.on{background:var(--side-active);color:#fff;box-shadow:inset 0 -2px 0 var(--accent)}.trial-chip{font-size:10px;font-weight:800;letter-spacing:.03em;color:var(--accent-ink);background:var(--accent);padding:1px 6px;border-radius:99px}.appbar-right{display:flex;align-items:center;gap:10px;flex:none}.appbar-search{position:relative;width:220px}.appbar-search input{min-height:36px;padding-left:34px;background:var(--side-hover);border-color:var(--side-line);color:#fff;font-size:13px}.appbar-search input::placeholder{color:var(--side-dim)}.appbar-search svg{position:absolute;left:11px;top:50%;transform:translateY(-50%);color:var(--side-dim);pointer-events:none}.menu{position:relative;flex:none}.menu>summary{list-style:none;cursor:pointer}.menu>summary::-webkit-details-marker{display:none}.explore>summary{min-height:36px}.avatar-btn .avatar{width:34px;height:34px;border-radius:50%;background:var(--accent);color:var(--accent-ink);display:grid;place-items:center;font-weight:800;font-size:13px}.menu-panel{position:absolute;top:calc(100% + 10px);left:0;z-index:40;min-width:240px;background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-lg);padding:8px;display:grid;grid-gap:2px;gap:2px}.menu-panel.right{left:auto;right:0}.menu-panel.wide{width:min(720px,calc(100vw - 32px));padding:16px;gap:12px;right:auto}.menu-panel form button.ghost,.menu-panel>a{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:9px;color:var(--text);font-size:14px;font-weight:500;text-decoration:none;min-height:0}.menu-panel>a:hover{background:var(--raised);text-decoration:none}.menu-head{display:grid;grid-gap:2px;gap:2px;padding:4px 10px 10px;border-bottom:1px solid var(--border);margin-bottom:4px}.menu-panel.wide .menu-head{padding:0 0 12px}.explore-grid{display:grid;grid-gap:10px;gap:10px;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));max-height:60vh;overflow-y:auto}.explore-item{display:flex;gap:12px;align-items:flex-start;padding:12px;border:1px solid var(--border);border-radius:12px;background:var(--surface-2)}.explore-item .ico{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent-text);flex:none}.explore-item .t{font-weight:700;font-size:14px}.explore-item .d{font-size:12px;color:var(--muted)}.preview-strip{background:var(--accent-soft);color:var(--text);border-bottom:1px solid color-mix(in srgb,var(--accent) 40%,transparent);padding:8px 24px;font-size:13px;text-align:center}.preview-strip a{font-weight:700}.main{padding:28px 24px;max-width:1440px;width:100%;margin:0 auto}@media (max-width:1100px){.appbar-search{width:160px}}@media (max-width:900px){.appbar-row{flex-wrap:wrap;padding:10px 16px;gap:10px}.appbar-right{margin-left:auto}.topnav{order:3;flex-basis:100%}.appbar-search{display:none}.explore .menu-panel.wide{position:fixed;top:110px;left:16px;right:16px;width:auto}.main{padding:18px 16px}}.hello{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px;margin-bottom:20px}.hello h1{margin:0}.tiles{display:grid;grid-gap:14px;gap:14px;grid-template-columns:repeat(auto-fill,minmax(min(100%,240px),1fr))}.tile{display:flex;flex-direction:column;gap:10px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow);color:var(--text);transition:border-color .15s,transform .15s}.tile,.tile:hover{text-decoration:none}.tile:hover{border-color:var(--accent);transform:translateY(-1px)}.tile .ico{width:40px;height:40px;border-radius:11px;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent-text)}.tile.locked .ico{background:var(--raised);color:var(--muted)}.tile .t{font-weight:700}.tile .d{font-size:13px;color:var(--muted)}.list{display:grid}.list>*{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 0;border-bottom:1px solid var(--border);font-size:14px}.list>:last-child{border-bottom:0}.auth{max-width:440px;margin:8vh auto;padding:28px}.auth.card{box-shadow:var(--shadow-lg)}.auth h1{margin-top:16px}.brand{font-family:var(--font-display);font-weight:800;font-size:20px;color:var(--primary);margin-bottom:16px}.brand span{color:var(--accent)}.auth .logo-swap{margin-bottom:8px}.logo-on-dark,:root[data-theme=dark] .logo-on-light{display:none}:root[data-theme=dark] .logo-on-dark{display:block}@media (prefers-color-scheme:dark){:root[data-theme=system] .logo-on-light{display:none}:root[data-theme=system] .logo-on-dark{display:block}}.print-only{display:none}@media print{.appbar,.banner,.no-print,.preview-strip{display:none!important}.print-only,.shell{display:block}.main{padding:0;max-width:none}.card,.stat,.table-wrap{box-shadow:none}body{background:#fff}}.sk{background:linear-gradient(90deg,var(--raised) 0,var(--surface-2) 50%,var(--raised) 100%);background-size:200% 100%;animation:sk 1.2s ease-in-out infinite;border-radius:8px}.sk-title{height:30px;width:260px;margin-bottom:24px}.sk-line{height:12px;margin:10px 0}.sk-line.short{width:40%}.sk-big{height:28px;width:60%;margin-top:8px}@keyframes sk{0%{background-position:200% 0}to{background-position:-200% 0}}@media (prefers-reduced-motion:reduce){.sk{animation:none}}@font-face{font-family:Archivo;font-style:normal;font-weight:100 900;font-stretch:62% 125%;font-display:swap;src:url(/_next/static/media/8a053b136321ec99-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Archivo;font-style:normal;font-weight:100 900;font-stretch:62% 125%;font-display:swap;src:url(/_next/static/media/2a8fe189f1a8dd0c-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Archivo;font-style:normal;font-weight:100 900;font-stretch:62% 125%;font-display:swap;src:url(/_next/static/media/c214ffb7f5362987-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Archivo Fallback;src:local("Arial");ascent-override:88.96%;descent-override:21.28%;line-gap-override:0.00%;size-adjust:98.70%}.__className_7347c0{font-family:Archivo,Archivo Fallback;font-style:normal}.__variable_7347c0{--f-display:"Archivo","Archivo Fallback"}@font-face{font-family:Figtree;font-style:normal;font-weight:300 900;font-display:swap;src:url(/_next/static/media/d9fef5bf2f64cf9a-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Figtree;font-style:normal;font-weight:300 900;font-display:swap;src:url(/_next/static/media/de42cfb9a3b980ae-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Figtree Fallback;src:local("Arial");ascent-override:94.32%;descent-override:24.82%;line-gap-override:0.00%;size-adjust:100.72%}.__className_e2cc43{font-family:Figtree,Figtree Fallback;font-style:normal}.__variable_e2cc43{--f-body:"Figtree","Figtree Fallback"}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/886030b0b59bc5a7-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/0aa834ed78bf6d07-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/67957d42bae0796d-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/f911b923c6adde36-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/939c4f875ee75fbb-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/bb3ef058b751a6ad-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:JetBrains Mono Fallback;src:local("Arial");ascent-override:75.79%;descent-override:22.29%;line-gap-override:0.00%;size-adjust:134.59%}.__className_4dc837{font-family:JetBrains Mono,JetBrains Mono Fallback;font-style:normal}.__variable_4dc837{--f-mono:"JetBrains Mono","JetBrains Mono Fallback"}