@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;font-stretch:75% 100%;src:url(/_next/static/media/bricolage-grotesque-vietnamese-wdth-normal.4eab860b.woff2) format("woff2-variations");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:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;font-stretch:75% 100%;src:url(/_next/static/media/bricolage-grotesque-latin-ext-wdth-normal.2804f10d.woff2) format("woff2-variations");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-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;font-stretch:75% 100%;src:url(/_next/static/media/bricolage-grotesque-latin-wdth-normal.568e6357.woff2) format("woff2-variations");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:Public Sans Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_next/static/media/public-sans-vietnamese-wght-normal.7b0fa855.woff2) format("woff2-variations");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:Public Sans Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_next/static/media/public-sans-latin-ext-wght-normal.0afa0ba4.woff2) format("woff2-variations");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-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(/_next/static/media/public-sans-latin-wght-normal.035c7fe4.woff2) format("woff2-variations");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}:root{--font-ui:"Public Sans Variable",system-ui,-apple-system,"Segoe UI",sans-serif;--font-display:"Bricolage Grotesque Variable",var(--font-ui);--fs:14.5px;--row:46px;--gap:16px;--pad:16px;--r-lg:12px;--r-md:8px;--r-sm:6px;--good:#1f8a4c;--good-soft:#e3f4ea;--warn:#b7791f;--warn-soft:#fbf0d9;--bad:#c8372d;--bad-soft:#fbe6e3;--s1:#2a78d6;--s2:#eb6834;--s3:#1baf7a;--s4:#eda100;--s5:#e87ba4;--s6:#008300;--s7:#4a3aa7;--s8:#e34948;--seq-1:#cde2fb;--seq-2:#9ec5f4;--seq-3:#6da7ec;--seq-4:#3987e5;--seq-5:#256abf;--seq-6:#184f95;--grid:color-mix(in srgb,var(--ink) 9%,transparent)}html[data-text=small]{--fs:13.5px}html[data-text=large]{--fs:16px}html[data-density=compact]{--row:36px;--gap:12px;--pad:12px}html,html[data-theme=light]{--bg:#eef1f5;--panel:#ffffff;--panel-2:#f6f8fa;--line:#e0e5ec;--line-strong:#c9d1dc;--ink:#131a29;--ink-2:#4a5568;--ink-3:#758094;--rail:#14213d;--rail-2:#1c2c4e;--rail-ink:#c5d0e4;--rail-ink-dim:#8a99b6;--rail-line:#263659;--shadow-pop:0 10px 30px rgba(15,24,45,.18),0 1px 3px rgba(15,24,45,.12);color-scheme:light}html[data-theme=light][data-base=neutral]{--bg:#f2f2f3;--line:#e3e3e6;--line-strong:#cdcdd2;--panel-2:#f7f7f8;--ink:#17171a;--ink-2:#505058;--ink-3:#80808a;--rail:#1b1b20;--rail-2:#26262d;--rail-line:#33333b;--rail-ink:#cfcfd6;--rail-ink-dim:#8e8e99}html[data-theme=light][data-base=warm]{--bg:#f5f2ee;--line:#e6e0d8;--line-strong:#d3cabd;--panel-2:#faf8f5;--ink:#211c17;--ink-2:#5a5148;--ink-3:#8a8073;--rail:#2b2420;--rail-2:#38302b;--rail-line:#473e37;--rail-ink:#dcd2c7;--rail-ink-dim:#a1958a}html[data-theme=dark]{--bg:#0e131c;--panel:#151c28;--panel-2:#1a2231;--line:#243044;--line-strong:#31405a;--ink:#e9eef6;--ink-2:#a7b2c4;--ink-3:#7d899d;--rail:#0a0f17;--rail-2:#131b29;--rail-ink:#c5d0e4;--rail-ink-dim:#7d8aa3;--rail-line:#1b2638;--good:#4cc380;--good-soft:#14301f;--warn:#e2a93f;--warn-soft:#33270f;--bad:#ff7b70;--bad-soft:#3a1815;--s1:#3987e5;--s2:#d95926;--s3:#199e70;--s4:#c98500;--s5:#d55181;--s6:#008300;--s7:#9085e9;--s8:#e66767;--seq-1:#0d366b;--seq-2:#184f95;--seq-3:#256abf;--seq-4:#3987e5;--seq-5:#6da7ec;--seq-6:#9ec5f4;--shadow-pop:0 12px 34px rgba(0,0,0,.55),0 0 0 1px #243044;color-scheme:dark}html[data-theme=dark][data-base=neutral]{--bg:#0f0f11;--panel:#17171a;--panel-2:#1e1e22;--line:#2a2a30;--line-strong:#3a3a42;--rail:#0a0a0c;--rail-2:#151518;--rail-line:#222226}html[data-theme=dark][data-base=warm]{--bg:#14110e;--panel:#1d1914;--panel-2:#241f19;--line:#332c24;--line-strong:#463d32;--rail:#0f0d0b;--rail-2:#1a1612;--rail-line:#2a241d}html{--accent:#e8590c;--accent-ink:#fff;--accent-bright:#ff8a3d}html[data-accent=graphite]{--accent:#3b4252;--accent-bright:#cfd5e0}html[data-accent=blue]{--accent:#2563eb;--accent-bright:#7aa7ff}html[data-accent=indigo]{--accent:#4f46e5;--accent-bright:#9a94ff}html[data-accent=violet]{--accent:#7c3aed;--accent-bright:#b996ff}html[data-accent=pink]{--accent:#db2777;--accent-bright:#ff82bb}html[data-accent=rose]{--accent:#e11d48;--accent-bright:#ff849b}html[data-accent=orange]{--accent:#e0540a;--accent-bright:#ff9147}html[data-accent=amber]{--accent:#b45309;--accent-bright:#ffc84d}html[data-accent=green]{--accent:#15803d;--accent-bright:#55d98a}html[data-accent=teal]{--accent:#0f766e;--accent-bright:#45d6c8}html[data-accent=cyan]{--accent:#0e7490;--accent-bright:#4fd0ec}html[data-theme=dark][data-accent=graphite]{--accent:#cfd5e0;--accent-ink:#11151d}html[data-theme=dark][data-accent=amber]{--accent:#f0a63a;--accent-ink:#1d1203}html[data-theme=dark]{--accent-ink:#fff}html[data-theme=dark][data-accent=blue]{--accent:#4a82f0}html[data-theme=dark][data-accent=indigo]{--accent:#6a63f0}html[data-theme=dark][data-accent=violet]{--accent:#9159f2}html[data-theme=dark][data-accent=pink]{--accent:#e8478f}html[data-theme=dark][data-accent=rose]{--accent:#ee3f63}html[data-theme=dark][data-accent=orange]{--accent:#f0661c}html[data-theme=dark][data-accent=green]{--accent:#2a9b54}html[data-theme=dark][data-accent=teal]{--accent:#1c9488}html[data-theme=dark][data-accent=cyan]{--accent:#1f93b3}html{--accent-soft:color-mix(in srgb,var(--accent) 12%,var(--panel));--accent-line:color-mix(in srgb,var(--accent) 45%,var(--line))}*{box-sizing:border-box}html{font-size:var(--fs);-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font-ui);line-height:1.45;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased}h1,h2,h3,h4{font-family:var(--font-display);font-weight:650;letter-spacing:-.012em;margin:0;line-height:1.15}h1{font-size:1.75rem;font-stretch:92%}h2{font-size:1.2rem}h3{font-size:1rem}p{margin:0}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}::selection{background:color-mix(in srgb,var(--accent) 30%,transparent)}.num{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}.muted{color:var(--ink-3)}.dim{color:var(--ink-2)}.good{color:var(--good)}.bad{color:var(--bad)}.warn{color:var(--warn)}.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.row{display:flex;align-items:center;gap:10px}.row.wrap{flex-wrap:wrap}.row.between{justify-content:space-between}.row.end{justify-content:flex-end}.stack{display:flex;flex-direction:column;gap:12px}.stack.lg{gap:var(--gap)}.grow{flex:1 1 auto;min-width:0}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (max-width:760px){.hide-sm{display:none!important}}@media (prefers-reduced-motion:reduce){*{animation-duration:.001ms!important;transition-duration:.001ms!important}}.shell{display:grid;grid-template-columns:var(--rail-w,232px) minmax(0,1fr);min-height:100vh;transition:grid-template-columns .18s ease}.shell.collapsed{--rail-w:64px}.rail{background:var(--rail);color:var(--rail-ink);position:-webkit-sticky;position:sticky;top:0;height:100vh;display:flex;flex-direction:column;padding:14px 10px;gap:6px;overflow-y:auto;scrollbar-width:thin;z-index:40}.brand{display:flex;align-items:center;gap:10px;padding:4px 8px 14px;color:#fff;font-family:var(--font-display);font-weight:700;font-stretch:88%;font-size:1.05rem;line-height:1.05}.brand-mark{width:30px;height:30px;flex:none;border-radius:8px;background:var(--accent-bright);display:grid;place-items:center;color:#101827}.collapsed .brand-text,.collapsed .nav-group,.collapsed .nav-label,.collapsed .rail-foot-text{display:none}.nav-group{font-size:.72rem;letter-spacing:.02em;color:var(--rail-ink-dim);padding:14px 10px 4px;font-weight:600}.nav-item{display:flex;align-items:center;gap:11px;padding:8px 10px;border-radius:var(--r-md);color:var(--rail-ink);font-weight:500;position:relative}.nav-item:hover{text-decoration:none}.nav-item:hover,.nav-item[aria-current=page]{background:var(--rail-2);color:#fff}.nav-item[aria-current=page]:before{content:"";position:absolute;left:-10px;top:8px;bottom:8px;width:3px;border-radius:0 3px 3px 0;background:var(--accent-bright)}.nav-item svg{flex:none;opacity:.9}.nav-badge{margin-left:auto;background:var(--accent-bright);color:#101827;border-radius:99px;font-size:.72rem;font-weight:700;padding:1px 7px;min-width:20px;text-align:center}.collapsed .nav-badge{position:absolute;top:2px;right:4px;margin:0;font-size:.62rem;padding:0 5px}.rail-foot{margin-top:auto;padding-top:10px;border-top:1px solid var(--rail-line);display:flex;flex-direction:column;gap:4px}.me-chip{display:flex;align-items:center;gap:10px;padding:8px;border-radius:var(--r-md);color:var(--rail-ink);width:100%;background:none;border:0;cursor:pointer;text-align:left}.avatar,.me-chip:hover{background:var(--rail-2)}.avatar{width:30px;height:30px;border-radius:50%;border:1px solid var(--rail-line);display:grid;place-items:center;font-weight:700;font-size:.8rem;color:#fff;flex:none}.main{min-width:0;display:flex;flex-direction:column}.topbar{position:-webkit-sticky;position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:12px;padding:10px 24px;background:color-mix(in srgb,var(--bg) 88%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);min-height:56px}.page{padding:22px 24px 60px;max-width:1560px;width:100%;margin:0 auto}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:18px}.page-head p{color:var(--ink-2);margin-top:4px;max-width:70ch}.page-head>div:first-child{flex:1 1 360px;min-width:0}.page-head>.row{margin-left:auto;justify-content:flex-end}.search-trigger{flex:1 1 300px;max-width:420px;display:flex;align-items:center;gap:10px;padding:7px 12px;background:var(--panel);border:1px solid var(--line);border-radius:99px;color:var(--ink-3);cursor:pointer;text-align:left}.search-trigger:hover{border-color:var(--line-strong)}.kbd{font-size:.72rem;border:solid var(--line-strong);border-width:1px 1px 2px;border-radius:5px;padding:0 5px;color:var(--ink-2);background:var(--panel-2);font-family:var(--font-ui)}.menu-btn{display:none}@media (max-width:900px){.shell,.shell.collapsed{grid-template-columns:minmax(0,1fr)}.rail{position:fixed;inset:0 auto 0 0;width:260px;transform:translateX(-102%);transition:transform .2s ease;box-shadow:var(--shadow-pop)}.rail.open{transform:none}.menu-btn{display:inline-flex}.page{padding:16px 14px 60px}.topbar{padding:8px 14px}.collapsed .brand-text,.collapsed .nav-group,.collapsed .nav-label,.collapsed .rail-foot-text{display:revert}}.scrim{position:fixed;inset:0;background:rgba(8,12,20,.5);z-index:35}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--line-strong);background:var(--panel);color:var(--ink);padding:0 14px;height:36px;border-radius:var(--r-md);font-weight:600;cursor:pointer;white-space:nowrap;transition:background .12s,border-color .12s,transform .05s}.btn:hover{background:var(--panel-2);border-color:color-mix(in srgb,var(--ink) 30%,var(--line));text-decoration:none}.btn:active{transform:translateY(1px)}.btn[disabled]{opacity:.5;cursor:not-allowed;transform:none}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.btn.primary:hover{background:color-mix(in srgb,var(--accent) 88%,#000)}.btn.danger{color:var(--bad);border-color:color-mix(in srgb,var(--bad) 45%,var(--line))}.btn.danger.solid{background:var(--bad);color:#fff;border-color:var(--bad)}.btn.quiet{border-color:transparent;background:transparent;color:var(--ink-2)}.btn.quiet:hover{background:color-mix(in srgb,var(--ink) 7%,transparent);color:var(--ink)}.btn.sm{height:30px;padding:0 10px;font-size:.9rem}.btn.icon{width:34px;padding:0}.btn.sm.icon{width:30px}.input,.select,.textarea{width:100%;background:var(--panel);border:1px solid var(--line-strong);border-radius:var(--r-md);padding:0 11px;height:36px}.textarea{padding:9px 11px;height:auto;min-height:84px;resize:vertical;line-height:1.45}.input:hover,.select:hover,.textarea:hover{border-color:color-mix(in srgb,var(--ink) 30%,var(--line))}.input:focus,.select:focus,.textarea:focus{outline:2px solid color-mix(in srgb,var(--accent) 55%,transparent);outline-offset:0;border-color:var(--accent)}.input.sm,.select.sm{height:30px;font-size:.92rem}.select{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-right:30px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%23808a9c' stroke-width='1.8' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 11px center}.field{display:flex;flex-direction:column;gap:5px;min-width:0}.field>label,.label{font-size:.85rem;font-weight:600;color:var(--ink-2)}.hint{font-size:.84rem;color:var(--ink-3)}.field.err .input,.field.err .select{border-color:var(--bad)}.err-text{color:var(--bad);font-size:.86rem}.grid-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));grid-gap:16px;gap:16px;align-items:start}.form-grid .span-2{grid-column:span 2}@media (max-width:560px){.form-grid .span-2{grid-column:auto}}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));grid-gap:14px;gap:14px}.check{display:inline-flex;align-items:center;gap:8px;cursor:pointer}.check input{width:17px;height:17px;accent-color:var(--accent)}.switch{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:38px;height:22px;border-radius:99px;background:var(--line-strong);position:relative;cursor:pointer;transition:background .15s;flex:none;border:0}.switch:after{content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:#fff;transition:transform .15s;box-shadow:0 1px 2px rgba(0,0,0,.3)}.switch:checked{background:var(--accent)}.switch:checked:after{transform:translateX(16px)}.seg{display:inline-flex;background:var(--panel-2);border:1px solid var(--line);border-radius:var(--r-md);padding:2px;gap:2px}.seg button{border:0;background:none;padding:4px 12px;border-radius:6px;cursor:pointer;font-weight:600;color:var(--ink-2);height:28px;white-space:nowrap}.seg button[aria-pressed=true],.seg button[aria-selected=true]{background:var(--panel);color:var(--ink);box-shadow:0 0 0 1px var(--line-strong)}.tabs{display:flex;gap:2px;border-bottom:1px solid var(--line);margin-bottom:16px;overflow-x:auto;scrollbar-width:none}.tab{background:none;border:0;padding:9px 14px;font-weight:600;color:var(--ink-2);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap;display:inline-flex;gap:8px;align-items:center}.tab:hover{color:var(--ink)}.tab[aria-selected=true]{color:var(--ink);border-bottom-color:var(--accent)}.count{font-size:.76rem;background:var(--panel-2);border:1px solid var(--line);border-radius:99px;padding:0 7px;color:var(--ink-2)}.count.hot{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg);min-width:0}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px var(--pad) 0;min-height:44px}.panel-head h3{font-size:.98rem}.panel-body{padding:var(--pad)}.panel-head+.panel-body{padding-top:10px}.flat{border:0;background:none}.badge{display:inline-flex;align-items:center;gap:5px;font-size:.78rem;font-weight:650;padding:1px 8px;border-radius:99px;background:var(--panel-2);color:var(--ink-2);border:1px solid var(--line);white-space:nowrap}.badge.good{background:var(--good-soft);color:var(--good)}.badge.good,.badge.warn{border-color:transparent}.badge.warn{background:var(--warn-soft);color:var(--warn)}.badge.bad{background:var(--bad-soft);color:var(--bad);border-color:transparent}.badge.accent{background:var(--accent-soft);color:var(--accent);border-color:transparent}.dot{width:8px;height:8px;border-radius:50%;background:currentColor;display:inline-block}.table-wrap{overflow-x:auto;border-radius:inherit;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;touch-action:pan-x pan-y}table.t{width:100%;border-collapse:collapse}.t th{text-align:left;font-size:.8rem;font-weight:650;color:var(--ink-3);padding:9px 14px;border-bottom:1px solid var(--line);white-space:nowrap;background:var(--panel);position:-webkit-sticky;position:sticky;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.t th.sortable{cursor:pointer}.t th.sortable:hover{color:var(--ink)}.t td{padding:0 14px;height:var(--row);border-bottom:1px solid var(--line);vertical-align:middle}.t tr:last-child td{border-bottom:0}.t tbody tr:hover td{background:var(--panel-2)}.t tr.sel td{background:var(--accent-soft)}.t td.act,.t td.num,.t th.num{text-align:right}.t td.act{white-space:nowrap;width:1%}.t.tight td{height:36px}.empty{text-align:center;padding:38px 20px;color:var(--ink-2);display:flex;flex-direction:column;align-items:center;gap:8px}.empty h3{color:var(--ink)}.skeleton{background:linear-gradient(90deg,var(--panel-2),color-mix(in srgb,var(--ink) 8%,var(--panel-2)),var(--panel-2));background-size:200% 100%;animation:shimmer 1.4s infinite;border-radius:6px;min-height:14px}@keyframes shimmer{to{background-position:-200% 0}}.spinner{width:18px;height:18px;border-radius:50%;border:2px solid var(--line-strong);border-top-color:var(--accent);animation:spin .7s linear infinite;display:inline-block}@keyframes spin{to{transform:rotate(1turn)}}.notice{display:flex;gap:10px;padding:11px 14px;border-radius:var(--r-md);background:var(--accent-soft);border:1px solid var(--accent-line);color:var(--ink)}.notice.warn{background:var(--warn-soft);border-color:color-mix(in srgb,var(--warn) 35%,transparent)}.notice.bad{background:var(--bad-soft);border-color:color-mix(in srgb,var(--bad) 35%,transparent)}.notice.good{background:var(--good-soft);border-color:color-mix(in srgb,var(--good) 35%,transparent)}.bar-meter{height:6px;border-radius:99px;background:var(--panel-2);overflow:hidden;border:1px solid var(--line)}.bar-meter>i{display:block;height:100%;background:var(--accent);border-radius:99px}.overlay{position:fixed;inset:0;background:rgba(8,12,22,.52);z-index:80;display:flex;align-items:flex-start;justify-content:center;padding:8vh 16px 16px;overflow-y:auto;animation:fade .12s ease}.overlay.right{padding:0;justify-content:flex-end;align-items:stretch}@keyframes fade{0%{opacity:0}}.modal{background:var(--panel);border:1px solid var(--line-strong);border-radius:var(--r-lg);width:100%;max-width:560px;box-shadow:var(--shadow-pop);animation:pop .14s ease}.modal.wide{max-width:820px}.modal.xl{max-width:1100px}@keyframes pop{0%{transform:translateY(6px);opacity:0}}.modal-head{display:flex;justify-content:space-between;align-items:center;padding:16px 20px 0;gap:12px}.modal-body{padding:14px 20px 6px}.modal-foot{padding:14px 20px 18px;display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap}.drawer{background:var(--panel);width:min(440px,100vw);border-left:1px solid var(--line-strong);box-shadow:var(--shadow-pop);display:flex;flex-direction:column;animation:slide .18s ease}@keyframes slide{0%{transform:translateX(30px);opacity:0}}.drawer-head{padding:16px 20px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line)}.drawer-body{padding:16px 20px;overflow-y:auto;flex:1 1}.pop{position:absolute;z-index:60;background:var(--panel);border:1px solid var(--line-strong);border-radius:var(--r-md);box-shadow:var(--shadow-pop);min-width:220px;padding:6px}.pop .item{display:flex;align-items:center;gap:10px;width:100%;padding:7px 10px;border:0;background:none;border-radius:6px;cursor:pointer;text-align:left}.pop .item.active,.pop .item:hover{background:var(--panel-2)}.pop .sep{height:1px;background:var(--line);margin:5px 0}.toasts{position:fixed;bottom:18px;right:18px;z-index:120;display:flex;flex-direction:column;gap:8px;max-width:min(420px,calc(100vw - 36px))}.toast{background:var(--rail);color:#fff;border-radius:var(--r-md);padding:11px 14px;box-shadow:var(--shadow-pop);display:flex;gap:10px;align-items:flex-start;animation:pop .16s ease;border-left:4px solid var(--accent-bright)}.toast.bad{border-left-color:var(--bad)}.toast.good{border-left-color:var(--good)}.cmd{max-width:640px;padding:0;overflow:hidden}.cmd input{border:0;border-bottom:1px solid var(--line);border-radius:0;height:52px;font-size:1.05rem;padding:0 18px;background:transparent}.cmd input:focus{outline:none}.cmd-list{max-height:52vh;overflow-y:auto;padding:6px}.cmd-item{display:flex;gap:12px;align-items:center;padding:9px 12px;border-radius:8px;cursor:pointer}.cmd-item.active{background:var(--accent-soft)}.cmd-group{font-size:.74rem;font-weight:700;color:var(--ink-3);padding:10px 12px 4px}.boot{min-height:100vh;display:grid;place-items:center;background:var(--bg)}.boot-mark{width:38px;height:38px;border-radius:10px;background:var(--accent);animation:breathe 1.1s ease-in-out infinite alternate}@keyframes breathe{to{transform:scale(.82);opacity:.6}}.dash-bar{gap:10px;flex-wrap:wrap;margin-bottom:14px}.dash-bar,.dash-tabs{display:flex;align-items:center}.dash-tabs{gap:4px;overflow-x:auto;scrollbar-width:none;flex:1 1 320px;min-width:0}.dash-tab{border:1px solid transparent;background:none;padding:6px 12px;border-radius:99px;cursor:pointer;font-weight:650;color:var(--ink-2);white-space:nowrap}.dash-tab:hover{background:color-mix(in srgb,var(--ink) 6%,transparent)}.dash-tab[aria-selected=true]{background:var(--panel);border-color:var(--line-strong);color:var(--ink)}.dgrid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-gap:var(--gap);gap:var(--gap);align-items:stretch}.w{grid-column:span var(--span,6);min-width:0;display:flex;flex-direction:column;position:relative}.w>.panel{min-height:var(--min-h,230px)}.w .panel-body,.w>.panel{flex:1 1;display:flex;flex-direction:column}.w .panel-body{min-height:0}@media (max-width:1100px){.w{grid-column:span min(12,calc(var(--span, 6) * 2))}.w[data-w="12"],.w[data-w="8"]{grid-column:span 12}}@media (max-width:680px){.w{grid-column:span 12!important}}.editing .w>.panel{outline:2px dashed var(--accent-line);outline-offset:3px}.editing .w.dragging{opacity:.5}.w-tools{display:none;position:absolute;top:-13px;right:10px;z-index:5;background:var(--panel);border:1px solid var(--line-strong);border-radius:99px;padding:2px;gap:1px;box-shadow:0 2px 8px rgba(0,0,0,.12)}.editing .w-tools{display:flex}.grip{cursor:-webkit-grab;cursor:grab;touch-action:none}.grip:active{cursor:-webkit-grabbing;cursor:grabbing}.drop-ghost{border:2px dashed var(--accent-line);border-radius:var(--r-lg);min-height:140px;display:grid;place-items:center;color:var(--ink-3);cursor:pointer;background:transparent;font-weight:600;grid-column:span 4}.drop-ghost:hover{background:var(--accent-soft);color:var(--accent)}.weigh{background:linear-gradient(180deg,var(--rail-2),var(--rail));color:var(--rail-ink);border:1px solid var(--rail-line);border-radius:var(--r-lg);padding:18px 22px;display:grid;grid-template-columns:minmax(0,auto) minmax(0,1fr) minmax(0,auto);grid-gap:8px 32px;gap:8px 32px;align-items:center;overflow:hidden;position:relative}.weigh-read{font-family:var(--font-display);font-weight:700;font-stretch:75%;font-size:clamp(3rem,7vw,5.2rem);line-height:.95;color:var(--accent-bright);letter-spacing:-.015em;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;text-shadow:0 0 28px color-mix(in srgb,var(--accent-bright) 35%,transparent)}.weigh-unit{font-size:1.1rem;font-weight:600;color:var(--rail-ink);margin-left:8px;font-stretch:100%;letter-spacing:0;text-shadow:none}.weigh-cap{font-size:.86rem;color:var(--rail-ink-dim);margin-top:6px}.weigh-stats{display:flex;gap:26px;flex-wrap:wrap;justify-content:flex-end}.weigh-stat b{display:block;font-family:var(--font-display);font-size:1.45rem;color:#fff;font-weight:650;line-height:1.1}.weigh-stat span{font-size:.8rem;color:var(--rail-ink-dim)}.chg{font-size:.82rem;font-weight:650;white-space:nowrap}.chg.up{color:var(--good)}.chg.down{color:var(--bad)}.chg.flat{color:var(--ink-3)}.weigh .chg.up{color:#6ee09c}.weigh .chg.down{color:#ff9086}@media (max-width:900px){.weigh{grid-template-columns:1fr}.weigh-stats{justify-content:flex-start}}.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));grid-gap:10px;gap:10px}.kpi{padding:12px 14px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--panel-2);min-width:0}.kpi .v{font-family:var(--font-display);font-size:1.7rem;font-weight:650;line-height:1.1;margin:2px 0;font-stretch:92%}.kpi .l{font-size:.84rem;color:var(--ink-2)}.rank{display:flex;flex-direction:column;gap:9px}.rank-row{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-gap:2px 12px;gap:2px 12px;align-items:center;color:inherit}.rank-row,.rank-row:hover{text-decoration:none}.rank-row:hover .rank-name{color:var(--accent)}.rank-name{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rank-val{font-weight:650}.rank-bar{grid-column:1/-1;height:7px;border-radius:4px;background:var(--panel-2);overflow:hidden}.rank-bar i{display:block;height:100%;background:var(--s1);border-radius:0 4px 4px 0}.todo{display:flex;flex-direction:column}.todo a{display:flex;align-items:center;gap:10px;padding:9px 4px;border-bottom:1px solid var(--line);color:var(--ink)}.todo a:last-child{border:0}.todo a:hover{background:var(--panel-2);text-decoration:none}.todo .n{margin-left:auto;font-family:var(--font-display);font-weight:700;font-size:1.15rem}.todo .n.zero{color:var(--ink-3);font-weight:500}.feed{display:flex;flex-direction:column}.feed li{list-style:none;display:grid;grid-template-columns:auto 1fr auto;grid-gap:10px;gap:10px;padding:7px 0;border-bottom:1px solid var(--line);align-items:baseline}.feed{margin:0;padding:0}.map{width:100%;flex:1 1;min-height:200px;border-radius:var(--r-md);overflow:hidden;border:1px solid var(--line);z-index:0;background:var(--panel-2)}.legend{display:flex;gap:14px;flex-wrap:wrap;font-size:.84rem;color:var(--ink-2)}.legend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px;vertical-align:-1px}.chart{min-height:150px;position:relative;flex:1 1}.chart,.chart svg{width:100%;height:100%}.chart svg{display:block;overflow:visible}.chart text{font-family:var(--font-ui);fill:var(--ink-3);font-size:11px}.tip{position:absolute;pointer-events:none;background:var(--panel);border:1px solid var(--line-strong);box-shadow:var(--shadow-pop);border-radius:8px;padding:8px 10px;font-size:.84rem;z-index:10;min-width:130px;transform:translate(-50%,-100%);white-space:nowrap}.tip b{display:block;margin-bottom:3px}.tip .r{display:flex;justify-content:space-between;gap:14px}.tip .r i{width:8px;height:8px;border-radius:2px;display:inline-block;margin-right:6px}.tag-list{display:flex;flex-wrap:wrap;gap:6px}.swatch{width:28px;height:28px;border-radius:50%;border:2px solid var(--panel);box-shadow:0 0 0 1px var(--line-strong);cursor:pointer;padding:0}.swatch[aria-pressed=true]{box-shadow:0 0 0 2px var(--ink)}.login{min-height:100vh;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr)}.login-art{background:var(--rail);color:var(--rail-ink);padding:48px;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}.login-art .weigh-read{font-size:clamp(4rem,11vw,9rem)}.login-form{display:grid;place-items:center;padding:32px}@media (max-width:860px){.login{grid-template-columns:1fr}.login-art{padding:26px;min-height:240px}}.print-only{display:none}@media print{.no-print,.rail,.toasts,.topbar{display:none!important}.shell{display:block}.page{padding:0}.print-only{display:block}}.field>.seg{align-self:flex-start}tr.attn td:first-child,tr.attn td:nth-child(2){box-shadow:inset 3px 0 0 var(--bad)}@media (max-width:760px){.page-head{flex-direction:column;align-items:stretch}}@media print{.no-print,.rail,.toasts,.topbar{display:none!important}.shell{display:block}}.kv{display:grid;grid-template-columns:max-content 1fr;grid-gap:6px 18px;gap:6px 18px}.kv>span{color:var(--ink-2)}.pin-map{width:100%;border-radius:var(--radius,10px);border:1px solid var(--line,#d9dde3)}.pin-icon{background:none;border:0}.pin-dot{display:block;width:24px;height:24px;margin:0 2px;border-radius:50% 50% 50% 0;background:var(--accent,#e8590c);border:3px solid #fff;box-shadow:0 2px 6px rgba(0,0,0,.35);transform:rotate(-45deg)}.pin-dot:after{content:"";position:absolute;left:9px;top:9px;width:6px;height:6px;border-radius:50%;background:#fff}.route-layout{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(280px,1fr);grid-gap:18px;gap:18px;align-items:start}@media (max-width:980px){.route-layout{grid-template-columns:1fr}}.drawer.wide{width:min(620px,100vw)}.wprev{position:relative;overflow:hidden;border:1px solid var(--line);border-radius:var(--r-md);background:var(--bg,var(--panel-2));pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.wprev-in{transform-origin:top left;position:absolute;top:0;left:0}.display{min-height:100vh;padding:20px 24px 34px;background:var(--bg);cursor:none}.display-foot{position:fixed;right:16px;bottom:8px;font-size:.78rem;color:var(--ink-3)}.display-msg{min-height:100vh;display:grid;place-content:center;text-align:center;padding:24px;grid-gap:8px;gap:8px}@media (max-width:760px){.page-head>div:first-child{flex:0 0 auto}.page-head>.row{margin-left:0;justify-content:flex-start}.t td{white-space:nowrap}.t td:first-child,.t th:first-child{position:-webkit-sticky;position:sticky;left:0;z-index:1;background:var(--panel);box-shadow:1px 0 0 var(--line)}.t th:first-child{z-index:2}.seg{max-width:100%;overflow-x:auto;scrollbar-width:none}.row.wrap>.seg{flex:0 1 auto}}