@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-vietnamese-wght-normal-BUzh504Q.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-latin-ext-wght-normal-CcLUaPy7.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-latin-wght-normal-DLoelf7F.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Public Sans Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/public-sans-vietnamese-wght-normal-CtlIRbEm.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Public Sans Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/public-sans-latin-ext-wght-normal-MQgHevqp.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Public Sans Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/public-sans-latin-wght-normal-DdeTHZLK.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-cyrillic-ext-500-normal-BqneJy0T.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-500-normal-BIfNGwUT.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-cyrillic-500-normal-Bq9vWWag.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-500-normal-Ael50iVv.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-vietnamese-500-normal-DZ4AoWbu.woff2)format("woff2"),url(/assets/ibm-plex-mono-vietnamese-500-normal-C8zxqsMH.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-ext-500-normal-CAhNIIs5.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-ext-500-normal-CZ70TYgx.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-500-normal-CB9ihrfo.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-cyrillic-ext-600-normal-V-xxqcpd.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-600-normal-9HEixskS.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-cyrillic-600-normal-CTOM6hUh.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-600-normal-fLZuRloM.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-vietnamese-600-normal-D2EvbN8M.woff2)format("woff2"),url(/assets/ibm-plex-mono-vietnamese-600-normal-iLQfcSjf.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-latin-ext-600-normal-D38SheWl.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-ext-600-normal-DmB0ttJJ.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-latin-600-normal-BgSNZQsw.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-600-normal-DWFSQ4vo.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--font-display:"Bricolage Grotesque Variable", "Segoe UI", system-ui, sans-serif;--font-body:"Public Sans Variable", "Segoe UI", system-ui, sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, "Cascadia Mono", Consolas, monospace;--bg:#f1f4f8;--surface:#fff;--surface-2:#f6f8fb;--surface-3:#eaeff5;--line:#dde4ed;--line-strong:#c4cedc;--ink:#0e1e33;--ink-2:#33455c;--muted:#5f7086;--brand:#0a7c86;--brand-hover:#086770;--brand-ink:#065760;--brand-soft:#e0f2f3;--on-brand:#fff;--accent:#f2a516;--accent-ink:#7a4b00;--accent-soft:#fff1cf;--nav-bg:#0e1d36;--nav-ink:#cbd6e6;--nav-muted:#7e91ad;--nav-hover:#ffffff0f;--nav-active:#ffffff1c;--focus:#0a7c86;--ok:#17803d;--ok-bg:#e2f5e8;--warn:#a75a06;--warn-bg:#fdf0d3;--bad:#c0262d;--bad-bg:#fde7e7;--info:#1f5fcc;--info-bg:#e6eeff;--violet:#6a3fc0;--violet-bg:#eee8ff;--slate:#4d6078;--slate-bg:#e8edf3;--teal:#0a7c86;--teal-bg:#dff3f3;--r-sm:6px;--r:10px;--r-lg:16px;--sh-1:0 1px 2px #0e1e330f, 0 0 0 1px #0e1e3305;--sh-2:0 10px 30px #0e1e331f, 0 2px 6px #0e1e330f;--nav-w:258px;--top-h:64px;--tab-h:64px;--chart-1:#00909e;--chart-2:#d17b00;--chart-3:#5a74d6;--chart-grid:#e3e9f1}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#09121f;--surface:#0f1d32;--surface-2:#132540;--surface-3:#192d4b;--line:#21355a;--line-strong:#2f4673;--ink:#e7eef8;--ink-2:#bccadf;--muted:#8b9db8;--brand:#3cc0cb;--brand-hover:#63d0d9;--brand-ink:#7fdce3;--brand-soft:#3cc0cb24;--on-brand:#04202a;--accent:#f5b53f;--accent-ink:#f8cf7e;--accent-soft:#f5b53f24;--nav-bg:#060e1b;--focus:#63d0d9;--ok:#5ed08a;--ok-bg:#5ed08a24;--warn:#f2b25a;--warn-bg:#f2b25a26;--bad:#ff8b90;--bad-bg:#ff8b9026;--info:#8db4ff;--info-bg:#8db4ff26;--violet:#c0a6ff;--violet-bg:#c0a6ff26;--slate:#a9bad1;--slate-bg:#a9bad121;--teal:#63d0d9;--teal-bg:#63d0d924;--sh-1:0 1px 2px #0006;--sh-2:0 14px 34px #00000080;--chart-1:#17a0b0;--chart-2:#cc7a1a;--chart-3:#6b86e6;--chart-grid:#1f3352}}:root[data-theme=dark]{--bg:#09121f;--surface:#0f1d32;--surface-2:#132540;--surface-3:#192d4b;--line:#21355a;--line-strong:#2f4673;--ink:#e7eef8;--ink-2:#bccadf;--muted:#8b9db8;--brand:#3cc0cb;--brand-hover:#63d0d9;--brand-ink:#7fdce3;--brand-soft:#3cc0cb24;--on-brand:#04202a;--accent:#f5b53f;--accent-ink:#f8cf7e;--accent-soft:#f5b53f24;--nav-bg:#060e1b;--focus:#63d0d9;--ok:#5ed08a;--ok-bg:#5ed08a24;--warn:#f2b25a;--warn-bg:#f2b25a26;--bad:#ff8b90;--bad-bg:#ff8b9026;--info:#8db4ff;--info-bg:#8db4ff26;--violet:#c0a6ff;--violet-bg:#c0a6ff26;--slate:#a9bad1;--slate-bg:#a9bad121;--teal:#63d0d9;--teal-bg:#63d0d924;--sh-1:0 1px 2px #0006;--sh-2:0 14px 34px #00000080;--chart-1:#17a0b0;--chart-2:#cc7a1a;--chart-3:#6b86e6;--chart-grid:#1f3352}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){html{--lightningcss-light: ;--lightningcss-dark:initial}}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}body{background:var(--bg);color:var(--ink);font:400 14.5px/1.5 var(--font-body);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0}h1,h2,h3,h4{font-family:var(--font-display);letter-spacing:-.015em;text-wrap:balance;margin:0;font-weight:650;line-height:1.15}h1{font-size:clamp(1.55rem,1.2rem + 1.2vw,2.05rem)}h2{font-size:1.15rem}h3{font-size:1rem}p{margin:0}a{color:var(--brand);text-decoration:none}a:hover{text-decoration:underline}button,input,select,textarea{font:inherit;color:inherit}img{max-width:100%;display:block}:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:4px}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.mono{font-family:var(--font-mono);letter-spacing:-.01em;font-size:.86em}.muted{color:var(--muted)}.tabular{font-variant-numeric:tabular-nums}.grow{flex:auto;min-width:0}.row{align-items:center;gap:10px;display:flex}.row.wrap{flex-wrap:wrap}.stack{flex-direction:column;gap:14px;display:flex}.stack.tight{gap:8px}.truncate{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.eyebrow{font:600 .72rem/1 var(--font-body);letter-spacing:.09em;text-transform:uppercase;color:var(--muted)}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}.app{grid-template-columns:var(--nav-w) minmax(0, 1fr);min-height:100dvh;display:grid}.portal-app{display:block}.sidebar{background:var(--nav-bg);height:100dvh;color:var(--nav-ink);z-index:40;flex-direction:column;gap:6px;padding:18px 12px 14px;display:flex;position:sticky;top:0;overflow-y:auto}.brand{color:#fff;align-items:center;gap:11px;padding:6px 10px 16px;display:flex}.brand:hover{text-decoration:none}.brand-mark{flex:none;width:36px;height:36px}.brand-product{letter-spacing:.08em;text-transform:uppercase;opacity:.75;white-space:nowrap;border:1px solid;border-radius:999px;align-self:center;padding:2px 8px;font-size:.72rem;font-weight:600}.brand-name{font:700 1.32rem/1 var(--font-display);letter-spacing:-.02em}.brand-sub{color:var(--nav-muted);letter-spacing:.02em;margin-top:3px;font-size:.72rem}.nav-group{flex-direction:column;gap:2px;display:flex}.nav-label{font:600 .68rem/1 var(--font-body);letter-spacing:.11em;text-transform:uppercase;color:var(--nav-muted);padding:14px 12px 6px}.nav-link{color:var(--nav-ink);border-radius:9px;align-items:center;gap:12px;padding:9px 12px;font-size:.93rem;font-weight:500;transition:background .15s;display:flex}.nav-link:hover{background:var(--nav-hover);color:#fff;text-decoration:none}.nav-link.active{background:var(--nav-active);color:#fff}.nav-link.active svg{color:var(--accent)}.nav-link svg{opacity:.92;flex:none;width:18px;height:18px}.nav-count{font:600 .72rem var(--font-mono);background:var(--bad);color:#fff;border-radius:999px;margin-left:auto;padding:1px 7px}.nav-count.soft{color:var(--nav-ink);background:#ffffff21}.side-foot{color:var(--nav-muted);border-top:1px solid #ffffff14;margin-top:auto;padding:12px 10px 4px;font-size:.78rem}.main-col{flex-direction:column;min-width:0;display:flex}.topbar{z-index:30;height:var(--top-h);background:color-mix(in srgb, var(--bg) 88%, transparent);-webkit-backdrop-filter:saturate(1.4)blur(10px);backdrop-filter:saturate(1.4)blur(10px);border-bottom:1px solid var(--line);align-items:center;gap:12px;padding:0 28px;display:flex;position:sticky;top:0}.search-box{flex:380px;max-width:520px;position:relative}.search-box form{margin:0;position:relative}.search-box input{border:1px solid var(--line);background:var(--surface);border-radius:999px;outline:none;width:100%;height:40px;padding:0 16px 0 42px;transition:border-color .15s,box-shadow .15s}.search-box input:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}.search-box>svg,.search-box form>svg{width:18px;height:18px;color:var(--muted);pointer-events:none;position:absolute;top:11px;left:15px}.search-pop{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh-2);z-index:60;max-height:70vh;padding:8px;position:absolute;top:46px;left:0;right:0;overflow:auto}.search-pop h4{font:600 .7rem var(--font-body);letter-spacing:.09em;text-transform:uppercase;color:var(--muted);padding:8px 10px 4px}.search-item{color:var(--ink);border-radius:8px;align-items:center;gap:10px;padding:8px 10px;display:flex}.search-item:hover,.search-item:focus-visible{background:var(--surface-2);text-decoration:none}.icon-btn{width:40px;height:40px;color:var(--ink-2);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:999px;flex:none;place-items:center;display:grid;position:relative}.icon-btn:hover{background:var(--surface-3)}.icon-btn svg{width:20px;height:20px}.dot-badge{background:var(--bad);color:#fff;min-width:18px;height:18px;font:700 .68rem/18px var(--font-body);text-align:center;border-radius:999px;padding:0 5px;position:absolute;top:3px;right:2px}.menu-btn{display:none}.page{width:100%;max-width:1440px;margin:0 auto;padding:26px 28px 56px}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:22px;display:flex}.page-head p{color:var(--muted);max-width:62ch;margin-top:6px}.bottom-nav,.scrim{display:none}@media (width<=1023px){.app{grid-template-columns:minmax(0,1fr)}.sidebar{width:min(84vw,300px);box-shadow:var(--sh-2);transition:transform .22s;position:fixed;inset:0 auto 0 0;transform:translate(-102%)}.app.nav-open .sidebar{transform:none}.app.nav-open .scrim{z-index:35;background:#060e1b8c;display:block;position:fixed;inset:0}.menu-btn{display:grid}.topbar{gap:6px;padding:0 14px}.page{padding:18px 16px calc(var(--tab-h) + 32px + env(safe-area-inset-bottom,0px))}.bottom-nav{z-index:30;height:calc(var(--tab-h) + env(safe-area-inset-bottom,0px));padding-bottom:env(safe-area-inset-bottom,0px);background:var(--surface);border-top:1px solid var(--line);grid-template-columns:repeat(5,1fr);display:grid;position:fixed;bottom:0;left:0;right:0}.tab{color:var(--muted);flex-direction:column;justify-content:center;align-items:center;gap:3px;font-size:.68rem;font-weight:600;display:flex;position:relative}.tab:hover{text-decoration:none}.tab svg{width:22px;height:22px}.tab.active{color:var(--brand)}.tab .dot-badge{top:5px;right:calc(50% - 22px)}.tab.primary span.plus{background:var(--brand);width:46px;height:46px;color:var(--on-brand);border-radius:15px;place-items:center;margin-top:-20px;display:grid;box-shadow:0 6px 16px #0a7c8666}.tab.primary{color:var(--ink-2)}}@media (width<=640px){.actions{grid-template-columns:repeat(2,minmax(0,1fr));display:grid!important}.actions>.btn,.actions>div>.btn{white-space:normal;text-align:left;justify-content:flex-start;width:100%;height:auto;min-height:40px;padding:8px 12px;line-height:1.2}.actions>div{position:relative}.search-box{flex:auto}.hide-sm{display:none!important}}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh-1)}.card-pad{padding:20px}.card-head{justify-content:space-between;align-items:center;gap:12px;padding:16px 20px 0;display:flex}.card-head h2,.card-head h3{align-items:center;gap:8px;display:flex}.card-body{padding:16px 20px 20px}.card-flush{padding:0;overflow:hidden}.divider{background:var(--line);border:0;height:1px;margin:0}.grid{gap:18px;display:grid}.grid.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid.split{grid-template-columns:minmax(0,1.65fr) minmax(0,1fr)}.grid.split-even{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr)}@media (width<=1100px){.grid.cols-4{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.split,.grid.split-even,.grid.cols-3{grid-template-columns:minmax(0,1fr)}}@media (width<=640px){.grid.cols-2{grid-template-columns:minmax(0,1fr)}.grid{gap:14px}.card-pad{padding:16px}.card-body{padding:14px 16px 16px}.card-head{padding:14px 16px 0}}.btn{border:1px solid var(--line-strong);background:var(--surface);height:40px;color:var(--ink);cursor:pointer;white-space:nowrap;border-radius:10px;justify-content:center;align-items:center;gap:8px;padding:0 16px;font-size:.9rem;font-weight:600;text-decoration:none;transition:background .15s,border-color .15s,transform 50ms;display:inline-flex}.btn:hover{background:var(--surface-2);text-decoration:none}.btn:active{transform:translateY(1px)}.btn svg{flex:none;width:17px;height:17px}.btn.primary{background:var(--brand);border-color:var(--brand);color:var(--on-brand)}.btn.primary:hover{background:var(--brand-hover);border-color:var(--brand-hover)}.btn.danger{background:var(--bad);border-color:var(--bad);color:#fff}.btn.ghost{color:var(--ink-2);background:0 0;border-color:#0000}.btn.ghost:hover{background:var(--surface-3)}.btn.soft{background:var(--brand-soft);color:var(--brand-ink);border-color:#0000}.btn.soft:hover{filter:brightness(.97)}.btn.sm{border-radius:8px;height:32px;padding:0 12px;font-size:.82rem}.btn.sm svg{width:15px;height:15px}.btn:disabled,.btn[aria-disabled=true]{opacity:.5;cursor:not-allowed}.btn.block{width:100%}.spinner{border:2px solid;border-right-color:#0000;border-radius:50%;width:16px;height:16px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.badge{background:var(--slate-bg);height:24px;color:var(--slate);white-space:nowrap;border-radius:999px;align-items:center;gap:6px;max-width:100%;padding:0 9px;font-size:.76rem;font-weight:600;display:inline-flex}.badge svg{flex:none;width:13px;height:13px}.badge .dot{background:currentColor;border-radius:50%;flex:none;width:7px;height:7px}.badge.ok{background:var(--ok-bg);color:var(--ok)}.badge.warn{background:var(--warn-bg);color:var(--warn)}.badge.bad{background:var(--bad-bg);color:var(--bad)}.badge.info{background:var(--info-bg);color:var(--info)}.badge.violet{background:var(--violet-bg);color:var(--violet)}.badge.brand{background:var(--teal-bg);color:var(--teal)}.badge.accent{background:var(--accent-soft);color:var(--accent-ink)}.badge.outline{border:1px solid var(--line-strong);color:var(--ink-2);background:0 0}.field{flex-direction:column;gap:6px;min-width:0;display:flex}.field>label,.label{color:var(--ink-2);font-size:.82rem;font-weight:600}.field .req{color:var(--bad);margin-left:2px}.field .hint{color:var(--muted);font-size:.78rem}.field .err{color:var(--bad);font-size:.8rem;font-weight:500}.input,.select,.textarea{border:1px solid var(--line-strong);background:var(--surface);width:100%;min-height:42px;color:var(--ink);border-radius:10px;outline:none;padding:9px 12px;transition:border-color .15s,box-shadow .15s}.textarea{resize:vertical;min-height:96px;line-height:1.5}.input:focus,.select:focus,.textarea:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}.select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2364758b' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;padding-right:36px}.select.sm,.input.sm{border-radius:8px;min-height:34px;padding:5px 10px;font-size:.86rem}.select.sm{padding-right:30px}.check{cursor:pointer;align-items:center;gap:10px;display:flex}.check input{width:18px;height:18px;accent-color:var(--brand)}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.form-grid .full{grid-column:1/-1}@media (width<=640px){.form-grid{grid-template-columns:minmax(0,1fr)}.form-grid .full{grid-column:auto}.input,.select,.textarea{font-size:16px}}.avatar{color:#fff;font:700 .72rem var(--font-body);letter-spacing:.02em;border-radius:50%;flex:none;place-items:center;width:30px;height:30px;display:inline-grid}.avatar.lg{width:44px;height:44px;font-size:.95rem}.avatar.sm{width:24px;height:24px;font-size:.62rem}.person{align-items:center;gap:8px;min-width:0;display:inline-flex}.person span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.tone-slate{--st-fg:var(--slate);--st-bg:var(--slate-bg)}.tone-violet{--st-fg:var(--violet);--st-bg:var(--violet-bg)}.tone-info{--st-fg:var(--info);--st-bg:var(--info-bg)}.tone-teal{--st-fg:var(--teal);--st-bg:var(--teal-bg)}.tone-warn{--st-fg:var(--warn);--st-bg:var(--warn-bg)}.tone-bad{--st-fg:var(--bad);--st-bg:var(--bad-bg)}.tone-ok{--st-fg:var(--ok);--st-bg:var(--ok-bg)}.tone-muted{--st-fg:var(--muted);--st-bg:var(--surface-3)}.status{height:24px;color:var(--st-fg);background:var(--st-bg);white-space:nowrap;border-radius:999px;align-items:center;gap:7px;padding:0 10px 0 8px;font-size:.76rem;font-weight:600;display:inline-flex}.status:before{content:"";background:var(--st-fg);border-radius:50%;width:7px;height:7px}.status.kind-active:before{box-shadow:0 0 0 3px color-mix(in srgb, var(--st-fg) 25%, transparent)}.prio{color:var(--st-fg,var(--muted));white-space:nowrap;align-items:center;gap:5px;font-size:.8rem;font-weight:600;display:inline-flex}.prio svg{width:15px;height:15px}.due{color:var(--ink-2);white-space:nowrap;font-variant-numeric:tabular-nums;align-items:center;gap:6px;font-size:.82rem;display:inline-flex}.due svg{width:14px;height:14px}.due.overdue{color:var(--bad);font-weight:700}.due.soon{color:var(--warn);font-weight:600}.due.done{color:var(--muted)}.tag-no{font:600 .78rem var(--font-mono);letter-spacing:0;color:var(--ink-2);background:var(--surface-2);border:1px dashed var(--line-strong);white-space:nowrap;border-radius:6px;align-items:center;gap:6px;padding:2px 8px;display:inline-flex}a.tag-no:hover{border-color:var(--brand);color:var(--brand-ink);text-decoration:none}.lock{color:var(--violet);width:14px;height:14px}.t-head,.t-row{grid-template-columns:128px minmax(220px,1fr) 150px 96px 170px 150px;align-items:center;gap:14px;padding:12px 20px;display:grid}.t-head{background:var(--surface-2);border-bottom:1px solid var(--line);font:600 .7rem var(--font-body);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding-top:10px;padding-bottom:10px}.t-head button{all:unset;cursor:pointer;align-items:center;gap:4px;display:inline-flex}.t-head button:hover{color:var(--ink)}.t-row{border-bottom:1px solid var(--line);color:var(--ink);transition:background .12s}.t-row:last-child{border-bottom:0}.t-row:hover{background:var(--surface-2);text-decoration:none}.t-row .subject{min-width:0;font-weight:600}.t-row .subject small{color:var(--muted);margin-top:2px;font-size:.78rem;font-weight:400;display:block}.t-row .meta{color:var(--muted);gap:12px;margin-top:4px;font-size:.76rem;display:flex}.t-row .meta span{align-items:center;gap:4px;display:inline-flex}.t-row .meta svg{width:13px;height:13px}.t-row.is-overdue{box-shadow:inset 3px 0 0 var(--bad)}@media (width<=1100px){.t-head{display:none}.t-row{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"num due""subj subj""st prio""owner owner";gap:8px 10px;padding:14px 16px}.t-row>:first-child{grid-area:num}.t-row>:nth-child(2){grid-area:subj}.t-row>:nth-child(3){grid-area:st}.t-row>:nth-child(4){grid-area:prio;justify-self:end}.t-row>:nth-child(5){grid-area:owner}.t-row>:nth-child(6){grid-area:due;justify-self:end}}.toolbar{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.filters{border-bottom:1px solid var(--line);background:var(--surface);flex-wrap:wrap;align-items:center;gap:10px;padding:14px 20px;display:flex}.filters .input,.filters .select{width:auto;min-width:132px}.filters .grow-input{flex:220px;min-width:180px}@media (width<=640px){.filters{padding:12px 16px}.filters .select{flex:42%;min-width:0}}.segmented{background:var(--surface-3);border-radius:10px;gap:2px;padding:3px;display:inline-flex}.segmented button{color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:8px;align-items:center;gap:6px;padding:6px 13px;font-size:.85rem;font-weight:600;display:inline-flex}.segmented button svg{width:15px;height:15px}.segmented button[aria-pressed=true],.segmented button.on{background:var(--surface);color:var(--ink);box-shadow:var(--sh-1)}.tabs-wrap{min-width:0;position:relative}.tabs{border-bottom:1px solid var(--line);scrollbar-width:none;overscroll-behavior-x:contain;gap:2px;display:flex;position:relative;overflow-x:auto}.tabs::-webkit-scrollbar{display:none}.tabs-wrap.more-l .tabs{-webkit-mask-image:linear-gradient(90deg,#0000 0,#000 44px);mask-image:linear-gradient(90deg,#0000 0,#000 44px)}.tabs-wrap.more-r .tabs{-webkit-mask-image:linear-gradient(270deg,#0000 0,#000 44px);mask-image:linear-gradient(270deg,#0000 0,#000 44px)}.tabs-wrap.more-l.more-r .tabs{-webkit-mask-image:linear-gradient(90deg,#0000 0,#000 44px calc(100% - 44px),#0000 100%);mask-image:linear-gradient(90deg,#0000 0,#000 44px calc(100% - 44px),#0000 100%)}.tabs-arrow{z-index:2;border:1px solid var(--line);background:var(--surface);width:30px;height:30px;color:var(--ink-2);box-shadow:var(--sh-1);cursor:pointer;border-radius:50%;place-items:center;margin-top:-17px;padding:0;display:grid;position:absolute;top:50%}.tabs-arrow:hover{color:var(--ink);border-color:var(--line-2,var(--line))}.tabs-arrow svg{width:16px;height:16px}.tabs-arrow.l{left:2px}.tabs-arrow.r{right:2px}.tabs button:focus-visible{outline:2px solid var(--brand);outline-offset:-2px;border-radius:6px}.tabs button{color:var(--muted);cursor:pointer;white-space:nowrap;background:0 0;border:0;border-bottom:2px solid #0000;align-items:center;gap:7px;margin-bottom:-1px;padding:11px 14px;font-size:.9rem;font-weight:600;display:inline-flex}.tabs button:hover{color:var(--ink)}.tabs button[aria-selected=true]{color:var(--brand-ink);border-bottom-color:var(--brand)}.tabs .count{font:600 .72rem var(--font-mono);background:var(--surface-3);color:var(--ink-2);border-radius:999px;padding:1px 7px}.tabs .count.hot{background:var(--bad-bg);color:var(--bad)}.stat{min-width:0;color:inherit;flex-direction:column;gap:6px;padding:16px 18px;display:flex}a.stat:hover{border-color:var(--line-strong);box-shadow:var(--sh-2);text-decoration:none}.stat .num{font:650 2rem/1 var(--font-display);letter-spacing:-.03em;font-variant-numeric:tabular-nums}.stat .lbl{color:var(--muted);align-items:center;gap:7px;font-size:.82rem;font-weight:500;display:flex}.stat .lbl svg{width:15px;height:15px}.stat.bad .num{color:var(--bad)}.stat.warn .num{color:var(--warn)}.stat.ok .num{color:var(--ok)}.stat .sub{color:var(--muted);font-size:.78rem}.list{flex-direction:column;display:flex}.list-item{border-top:1px solid var(--line);color:inherit;align-items:center;gap:12px;min-width:0;padding:12px 20px;display:flex}.list-item:first-child{border-top:0}a.list-item:hover{background:var(--surface-2);text-decoration:none}.list-item .grow strong{font-weight:600}.list-item small{color:var(--muted);font-size:.78rem;display:block}@media (width<=640px){.list-item{padding:12px 16px}}.empty{text-align:center;color:var(--muted);flex-direction:column;align-items:center;gap:10px;padding:44px 24px;display:flex}.empty svg.illus{width:112px;height:84px;margin-bottom:4px}.empty h3{color:var(--ink)}.empty p{max-width:42ch}.skeleton{background:linear-gradient(90deg, var(--surface-3), var(--surface-2), var(--surface-3));background-size:200% 100%;border-radius:8px;min-height:18px;animation:1.3s infinite shimmer}@keyframes shimmer{to{background-position:-200% 0}}.table-wrap{overflow-x:auto}table.tbl{border-collapse:collapse;width:100%;font-size:.88rem}.tbl th{text-align:left;font:600 .7rem var(--font-body);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);background:var(--surface-2);border-bottom:1px solid var(--line);white-space:nowrap;padding:10px 16px}.tbl td{border-bottom:1px solid var(--line);vertical-align:middle;padding:12px 16px}.tbl tr:last-child td{border-bottom:0}.tbl tbody tr:hover td{background:var(--surface-2)}.tbl td.num,.tbl th.num{text-align:right;font-variant-numeric:tabular-nums}.ticket-hero{flex-direction:column;gap:14px;padding:20px 24px;display:flex}.ticket-hero h1{font-size:clamp(1.3rem,1rem + 1.1vw,1.8rem)}.detail-grid{grid-template-columns:minmax(0,1fr) 340px;align-items:start;gap:18px;display:grid}@media (width<=1100px){.detail-grid{grid-template-columns:minmax(0,1fr)}}.prop-list{flex-direction:column;display:flex}.prop{border-bottom:1px solid var(--line);grid-template-columns:112px minmax(0,1fr);align-items:center;gap:10px;padding:10px 0;font-size:.88rem;display:grid}.prop:last-child{border-bottom:0}.prop dt{color:var(--muted);font-size:.8rem;font-weight:500}.prop dd{min-width:0;margin:0}.stages{scrollbar-width:none;align-items:center;gap:0;padding:6px 2px 2px;display:flex;position:relative;overflow-x:auto}.stages::-webkit-scrollbar{display:none}.stage{color:var(--muted);text-align:center;flex-direction:column;flex:1 0 84px;align-items:center;gap:7px;font-size:.74rem;font-weight:600;display:flex;position:relative}.stage .pin{border:2px solid var(--line-strong);background:var(--surface);z-index:1;border-radius:50%;place-items:center;width:20px;height:20px;display:grid;position:relative}.stage .pin svg{width:11px;height:11px;color:var(--on-brand)}.stage:before{content:"";border-top:3px dashed var(--line-strong);z-index:0;width:100%;position:absolute;top:9px;left:-50%}.stage:first-child:before{display:none}.stage.done{color:var(--ink-2)}.stage.done .pin{background:var(--brand);border-color:var(--brand)}.stage.done:before{border-top-style:solid;border-color:var(--brand)}.stage.now{color:var(--ink)}.stage.now .pin{border-color:var(--accent);background:var(--accent);box-shadow:0 0 0 5px var(--accent-soft)}.stage.now:before{border-top-style:solid;border-color:var(--brand)}.stage.now .pin:after{content:"";background:#3a2600;border-radius:50%;width:6px;height:6px}@media (width<=640px){.stage{overflow-wrap:anywhere;flex:1 1 0;min-width:0;font-size:.66rem}}.banner{border-radius:var(--r);align-items:flex-start;gap:12px;padding:13px 16px;font-size:.9rem;display:flex}.banner svg{flex:none;width:19px;height:19px;margin-top:1px}.banner.bad{background:var(--bad-bg);color:var(--bad)}.banner.warn{background:var(--warn-bg);color:var(--warn)}.banner.info{background:var(--info-bg);color:var(--info)}.banner.ok{background:var(--ok-bg);color:var(--ok)}.banner.violet{background:var(--violet-bg);color:var(--violet)}.banner ul{margin:6px 0 0;padding-left:18px}.banner strong{font-weight:700}.timeline{flex-direction:column;display:flex;position:relative}.tl-item{grid-template-columns:32px minmax(0,1fr);gap:12px;padding-bottom:18px;display:grid;position:relative}.tl-item:not(:last-child):before{content:"";border-left:2px dashed var(--line-strong);position:absolute;top:34px;bottom:0;left:15px}.tl-icon{background:var(--surface-3);width:32px;height:32px;color:var(--ink-2);z-index:1;border-radius:50%;place-items:center;display:grid}.tl-icon svg{width:15px;height:15px}.tl-icon.bad{background:var(--bad-bg);color:var(--bad)}.tl-icon.ok{background:var(--ok-bg);color:var(--ok)}.tl-icon.warn{background:var(--warn-bg);color:var(--warn)}.tl-icon.brand{background:var(--teal-bg);color:var(--teal)}.tl-icon.violet{background:var(--violet-bg);color:var(--violet)}.tl-body{min-width:0;padding-top:4px;font-size:.9rem}.tl-body time{color:var(--muted);margin-top:2px;font-size:.76rem;display:block}.bubble{background:var(--surface-2);border:1px solid var(--line);white-space:pre-wrap;overflow-wrap:anywhere;border-radius:4px 14px 14px;margin-top:6px;padding:11px 14px}.bubble.system{color:var(--ink-2);background:0 0;border-style:dashed}.mention{color:var(--brand-ink);background:var(--brand-soft);border-radius:4px;padding:0 3px;font-weight:600}.checklist{flex-direction:column;display:flex}.check-row{border-bottom:1px solid var(--line);align-items:center;gap:12px;padding:11px 0;display:flex}.check-row:last-child{border-bottom:0}.check-row input{width:20px;height:20px;accent-color:var(--brand);flex:none}.check-row.done .lbl{color:var(--muted);text-decoration:line-through}.progress{background:var(--surface-3);border-radius:999px;height:8px;overflow:hidden}.progress>i{border-radius:inherit;background:var(--brand);height:100%;display:block}.doc-req{border-bottom:1px solid var(--line);grid-template-columns:36px minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px 0;display:grid}.doc-req:last-child{border-bottom:0}@media (width<=520px){.doc-req{grid-template-columns:36px minmax(0,1fr);row-gap:8px}.doc-req>:nth-child(3){grid-column:1/-1;padding-left:48px;flex-wrap:wrap!important;justify-content:flex-start!important}}.file-ico{background:var(--surface-3);border:1px solid var(--line);width:36px;height:44px;color:var(--muted);font:700 .6rem var(--font-mono);border-radius:6px;place-items:center;display:grid}.file-ico.pdf{color:var(--bad);background:var(--bad-bg);border-color:#0000}.file-ico.img,.file-ico.doc{color:var(--info);background:var(--info-bg);border-color:#0000}.file-ico.xls{color:var(--ok);background:var(--ok-bg);border-color:#0000}.drop{border:2px dashed var(--line-strong);border-radius:var(--r-lg);text-align:center;color:var(--muted);cursor:pointer;background:var(--surface-2);flex-direction:column;align-items:center;gap:8px;padding:26px 18px;transition:border-color .15s,background .15s;display:flex}.drop:hover,.drop.over{border-color:var(--brand);background:var(--brand-soft);color:var(--brand-ink)}.drop svg{width:30px;height:30px}.drop strong{color:var(--ink)}.board{scroll-snap-type:x proximity;grid-auto-columns:290px;grid-auto-flow:column;align-items:start;gap:14px;padding-bottom:12px;display:grid;overflow-x:auto}.lane{background:var(--surface-3);border-radius:var(--r-lg);scroll-snap-align:start;flex-direction:column;gap:10px;min-height:120px;padding:10px;display:flex}.lane-head{justify-content:space-between;align-items:center;padding:4px 6px;font-size:.85rem;font-weight:700;display:flex}.b-card{background:var(--surface);border:1px solid var(--line);color:var(--ink);box-shadow:var(--sh-1);border-radius:12px;flex-direction:column;gap:9px;padding:12px;display:flex}.b-card:hover{border-color:var(--line-strong);box-shadow:var(--sh-2);text-decoration:none}.b-card.is-overdue{border-color:color-mix(in srgb, var(--bad) 50%, var(--line))}.cal{border-top:1px solid var(--line);border-left:1px solid var(--line);grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.cal-h{text-align:center;font:600 .7rem var(--font-body);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);background:var(--surface-2);border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:8px}.cal-d{border-right:1px solid var(--line);border-bottom:1px solid var(--line);flex-direction:column;gap:4px;min-width:0;min-height:112px;padding:6px;display:flex}.cal-d.off{background:var(--surface-2)}.cal-d .n{font:600 .78rem var(--font-mono);color:var(--muted)}.cal-d.today .n{background:var(--brand);color:var(--on-brand);border-radius:999px;align-self:flex-start;padding:1px 7px}.cal-chip{background:var(--st-bg,var(--slate-bg));color:var(--st-fg,var(--slate));text-overflow:ellipsis;white-space:nowrap;border-radius:5px;padding:3px 6px;font-size:.72rem;font-weight:600;display:block;overflow:hidden}.cal-chip:hover{filter:brightness(.96);text-decoration:none}.cal-chip.bad{background:var(--bad-bg);color:var(--bad)}.agenda{display:none}@media (width<=800px){.cal-wrap{display:none}.agenda{display:block}}.overlay{z-index:80;background:#060e1b8c;place-items:center;padding:20px;animation:.15s fade;display:grid;position:fixed;inset:0}.modal{background:var(--surface);border-radius:var(--r-lg);box-shadow:var(--sh-2);flex-direction:column;width:min(560px,100%);max-height:min(88dvh,820px);animation:.18s pop;display:flex}.modal.wide{width:min(760px,100%)}.modal-head{justify-content:space-between;align-items:flex-start;gap:12px;padding:18px 22px 0;display:flex}.modal-body{padding:16px 22px;overflow-y:auto}.modal-foot{border-top:1px solid var(--line);flex-wrap:wrap;justify-content:flex-end;gap:10px;padding:14px 22px 18px;display:flex}@keyframes fade{0%{opacity:0}}@keyframes pop{0%{opacity:0;transform:translateY(8px)scale(.98)}}@media (width<=640px){.overlay{place-items:end center;padding:0}.modal,.modal.wide{width:100%;max-height:92dvh;padding-bottom:env(safe-area-inset-bottom,0px);border-radius:20px 20px 0 0;animation:.22s sheet}.modal-foot .btn{flex:1}}@keyframes sheet{0%{opacity:0;transform:translateY(40px)}}.popover{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);min-width:260px;box-shadow:var(--sh-2);z-index:70;position:absolute;top:48px;right:0;overflow:hidden}@media (width<=640px){.popover.sheet-sm{max-height:min(70vh,520px);overflow-y:auto;box-shadow:0 -8px 40px #00000040;top:auto!important;left:12px!important;right:12px!important;bottom:calc(var(--tab-h,64px) + 12px + env(safe-area-inset-bottom,0px))!important;width:auto!important;min-width:0!important;position:fixed!important}.popover.sheet-sm .pop-item{padding:13px 16px}}.pop-item{text-align:left;cursor:pointer;width:100%;color:var(--ink);background:0 0;border:0;align-items:center;gap:10px;padding:10px 14px;font-size:.9rem;display:flex}.pop-item:hover{background:var(--surface-2);text-decoration:none}.pop-item svg{width:17px;height:17px;color:var(--muted)}.toasts{z-index:120;flex-direction:column;align-items:flex-end;gap:10px;display:flex;position:fixed;bottom:20px;right:20px}.toast{background:var(--ink);color:var(--bg);box-shadow:var(--sh-2);border-radius:12px;align-items:center;gap:10px;max-width:min(420px,100vw - 32px);padding:12px 16px;font-size:.9rem;animation:.2s pop;display:flex}.toast.bad{background:var(--bad);color:#fff}.toast svg{flex:none;width:18px;height:18px}@media (width<=1023px){.toasts{left:16px;right:16px;bottom:calc(var(--tab-h) + 16px + env(safe-area-inset-bottom,0px));align-items:stretch}}.chart{width:100%;height:auto;display:block;overflow:visible}.chart text{font:500 11px var(--font-body);fill:var(--muted)}.chart .grid-line{stroke:var(--chart-grid);stroke-width:1px}.bars{flex-direction:column;gap:11px;display:flex}.bar-row{grid-template-columns:minmax(84px,150px) minmax(0,1fr) 44px;align-items:center;gap:12px;font-size:.85rem;display:grid}.bar-row .track{background:var(--surface-3);border-radius:999px;height:10px;overflow:hidden}.bar-row .fill{border-radius:inherit;background:var(--brand);height:100%;display:block}.bar-row .v{text-align:right;font-variant-numeric:tabular-nums;font-weight:600}.legend{color:var(--muted);flex-wrap:wrap;gap:16px;font-size:.8rem;display:flex}.legend i{vertical-align:-1px;border-radius:3px;width:10px;height:10px;margin-right:6px;display:inline-block}.login{background:var(--surface);grid-template-columns:minmax(0,1.15fr) minmax(420px,.85fr);min-height:100dvh;display:grid}.login-hero{color:#fff;background:#0b1730;flex-direction:column;justify-content:space-between;padding:40px 48px;display:flex;position:relative;overflow:hidden}.login-hero img.bg{object-fit:cover;opacity:.9;width:100%;height:100%;position:absolute;inset:0}.login-hero:after{content:"";background:linear-gradient(#081224c7 0%,#08122447 45%,#081224e0 100%);position:absolute;inset:0}.login-hero>*{z-index:1;position:relative}.login-hero h1{letter-spacing:-.03em;max-width:15ch;font-size:clamp(2rem,1.2rem + 2.6vw,3.3rem);font-weight:700;line-height:1.02}.login-hero p.lede{color:#ffffffd1;max-width:46ch;margin-top:16px;font-size:1.05rem}.lane-line{background:repeating-linear-gradient(90deg, var(--accent) 0 16px, transparent 16px 26px);border-radius:2px;width:132px;height:4px;margin:22px 0 0}.hero-points{color:#ffffffd9;flex-wrap:wrap;gap:26px;font-size:.85rem;display:flex}.hero-points div{align-items:center;gap:8px;display:flex}.hero-points svg{width:17px;height:17px;color:var(--accent)}.login-panel{flex-direction:column;justify-content:center;gap:26px;padding:40px clamp(24px,5vw,72px);display:flex}@media (width<=900px){.login{grid-template-columns:minmax(0,1fr)}.login-hero{gap:22px;min-height:250px;padding:24px 20px 20px}.login-hero h1{font-size:1.9rem}.login-hero p.lede,.hero-points{display:none}.lane-line{margin-top:14px}.login-panel{padding:26px 20px 40px}}.kv{flex-wrap:wrap;align-items:baseline;gap:6px;display:flex}.pill-row{flex-wrap:wrap;gap:8px;display:flex}.note{color:var(--muted);font-size:.82rem}.callout-photo{border-radius:var(--r-lg);color:#fff;align-items:flex-end;min-height:150px;display:flex;position:relative;overflow:hidden}.callout-photo img{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.callout-photo:after{content:"";background:linear-gradient(90deg,#081224e0,#08122459);position:absolute;inset:0}.callout-photo>div{z-index:1;max-width:560px;padding:22px 24px;position:relative}.callout-photo h2{font-size:1.4rem}.callout-photo p{color:#ffffffd9;margin-top:6px}.chip-btn{border:1px solid var(--line);background:var(--surface);cursor:pointer;color:var(--ink-2);border-radius:999px;align-items:center;gap:6px;padding:5px 12px;font-size:.82rem;font-weight:600;display:inline-flex}.chip-btn:hover{border-color:var(--brand);color:var(--brand-ink)}.chip-btn.on{background:var(--brand-soft);color:var(--brand-ink);border-color:#0000}.chip-btn svg{width:14px;height:14px}.template-card{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);cursor:pointer;text-align:left;align-items:flex-start;gap:14px;padding:16px;transition:border-color .15s,box-shadow .15s,transform .1s;display:flex}.template-card:hover{border-color:var(--brand);box-shadow:var(--sh-2);transform:translateY(-1px)}.template-card .ic{background:var(--brand-soft);width:42px;height:42px;color:var(--brand-ink);border-radius:12px;flex:none;place-items:center;display:grid}.template-card .ic svg{width:21px;height:21px}.template-card p{color:var(--muted);margin-top:3px;font-size:.83rem}.template-card .tags{flex-wrap:wrap;gap:6px;margin-top:9px;display:flex}.doc-card{color:inherit;flex-direction:column;gap:10px;padding:16px;display:flex}a.doc-card:hover{box-shadow:var(--sh-2);border-color:var(--line-strong);text-decoration:none}.expiry-meter{background:var(--surface-3);border-radius:999px;height:6px;overflow:hidden}.expiry-meter i{border-radius:inherit;height:100%;display:block}.preview-frame{border:1px solid var(--line);border-radius:var(--r);background:var(--surface-2);width:100%;height:min(70dvh,620px)}.preview-frame.img{object-fit:contain;height:auto;max-height:70dvh}.share-page{background:var(--bg);place-items:center;min-height:100dvh;padding:24px;display:grid}.kbd{font:600 .72rem var(--font-mono);border:1px solid var(--line-strong);color:var(--muted);background:var(--surface);border-bottom-width:2px;border-radius:5px;padding:1px 6px}@media print{.sidebar,.topbar,.bottom-nav,.btn{display:none!important}.app{display:block}}.pop-sep{background:var(--line);height:1px;margin:4px 0}.pop-item.danger,.pop-item.danger svg{color:var(--bad)}.pop-item[role=menuitem],.popover .pop-item{white-space:nowrap}.choice{border:1px solid var(--line-strong);cursor:pointer;background:var(--surface);border-radius:12px;align-items:flex-start;gap:12px;padding:12px 14px;display:flex}.choice:hover{border-color:var(--brand)}.choice.on{border-color:var(--brand);background:var(--brand-soft)}.choice input{width:18px;height:18px;accent-color:var(--brand);flex:none;margin-top:2px}.choice b{font-weight:650;display:block}.choice small{color:var(--muted);margin-top:2px;font-size:.82rem;display:block}.status-menu{min-width:320px;padding:6px}.menu-item{text-align:left;cursor:pointer;width:100%;color:var(--ink);background:0 0;border:0;border-radius:9px;grid-template-columns:12px minmax(0,1fr) 18px;align-items:start;gap:12px;padding:9px 10px;display:grid}.menu-item:hover:not(:disabled){background:var(--surface-2)}.menu-item:disabled{cursor:not-allowed}.menu-item:disabled b{color:var(--muted)}.menu-item.current{background:var(--surface-3)}.menu-item .sdot{background:var(--st-fg,var(--slate));border-radius:50%;width:11px;height:11px;margin-top:5px}.menu-item:disabled .sdot{opacity:.4}.menu-item b{font-weight:650;display:block}.menu-item small{color:var(--muted);margin-top:1px;font-size:.78rem;display:block}.menu-item svg{width:16px;height:16px;color:var(--brand);margin-top:3px}.pw-wrap{display:block;position:relative}.pw-wrap .input{padding-right:44px}.pw-toggle{width:32px;height:32px;color:var(--muted,#64748b);cursor:pointer;background:0 0;border:0;border-radius:8px;place-items:center;display:grid;position:absolute;top:50%;right:6px;transform:translateY(-50%)}.pw-toggle:hover{background:var(--surface-2,#64748b1f);color:var(--text,inherit)}.pw-toggle:focus-visible{outline:2px solid var(--accent,#0f7c85);outline-offset:1px}.card-flush{overflow:clip}.sheet-bar{top:var(--top-h);z-index:6;background:var(--surface);border-top:1px solid var(--line);border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:10px;padding:10px 20px;display:flex;position:sticky}.sheet{max-height:calc(100vh - var(--top-h) - 90px);overscroll-behavior:contain;overflow:auto}.sheet table.tbl{border-collapse:separate;border-spacing:0}.sheet thead th{z-index:3;background:var(--surface-2);box-shadow:inset 0 -1px 0 var(--line);position:sticky;top:0}.sheet.pin-first tbody td:first-child,.sheet.pin-first thead th:first-child{background:var(--surface);box-shadow:inset -1px 0 0 var(--line);position:sticky;left:0}.sheet.pin-first tbody td:first-child{z-index:2}.sheet.pin-first thead th:first-child{z-index:4;background:var(--surface-2)}.sheet.pin-first tbody tr:hover td:first-child{background:var(--surface-2)}.role-chips{flex-wrap:wrap;gap:6px;display:flex}.role-chip{font:600 .76rem var(--font-body);border:1px solid var(--line);background:var(--surface-2);color:var(--muted);cursor:pointer;border-radius:999px;padding:5px 10px;text-decoration:line-through}.role-chip[aria-pressed=true]{background:var(--brand-soft);color:var(--brand-ink);border-color:var(--brand);text-decoration:none}.role-chip.link{border-style:dashed;text-decoration:none}.perm-matrix thead th{background:var(--surface)}.perm-matrix .perm-name{width:320px;min-width:240px;max-width:320px}.perm-matrix .perm-name .note{white-space:normal}.perm-matrix.pin-first thead th.perm-name{background:var(--surface)}.perm-matrix .perm-group td,.perm-matrix.pin-first .perm-group td:first-child{background:var(--surface-2);padding-top:10px;padding-bottom:10px}.perm-matrix .perm-all td{border-bottom:2px solid var(--line)}.perm-matrix input[type=checkbox]{width:18px;height:18px;accent-color:var(--accent);cursor:pointer}.perm-matrix input[type=checkbox]:disabled{cursor:default}@media (width<=760px){.sheet-bar{position:static}.sheet{max-height:75vh}.sheet.pin-first tbody td:first-child,.sheet.pin-first thead th:first-child{max-width:45vw}.perm-matrix .perm-name{width:180px;min-width:160px}.perm-matrix .perm-name .note{display:none}}
