@font-face{font-family:Public Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/public-sans-vietnamese-400-normal-TxZB8OSn.woff2) format("woff2"),url(/assets/public-sans-vietnamese-400-normal-BO1meqcx.woff) format("woff");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;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/public-sans-latin-ext-400-normal-mk90oQqJ.woff2) format("woff2"),url(/assets/public-sans-latin-ext-400-normal-B02wwOdZ.woff) format("woff");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;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/public-sans-latin-400-normal-8Rpg0ruU.woff2) format("woff2"),url(/assets/public-sans-latin-400-normal-SBbinRkI.woff) format("woff");unicode-range:U+0000-00FF,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;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/public-sans-vietnamese-500-normal-DjztbcKe.woff2) format("woff2"),url(/assets/public-sans-vietnamese-500-normal-CXYe29CY.woff) format("woff");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;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/public-sans-latin-ext-500-normal-DC-z7ASZ.woff2) format("woff2"),url(/assets/public-sans-latin-ext-500-normal-BHCCp-na.woff) format("woff");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;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/public-sans-latin-500-normal-NlrCPXnF.woff2) format("woff2"),url(/assets/public-sans-latin-500-normal-vCxiVFAq.woff) format("woff");unicode-range:U+0000-00FF,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;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/public-sans-vietnamese-600-normal-P4BtCUdw.woff2) format("woff2"),url(/assets/public-sans-vietnamese-600-normal-CcnAzmUX.woff) format("woff");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;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/public-sans-latin-ext-600-normal-DchWdWJ_.woff2) format("woff2"),url(/assets/public-sans-latin-ext-600-normal-DfkbVac2.woff) format("woff");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;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/public-sans-latin-600-normal-Fru-LXNs.woff2) format("woff2"),url(/assets/public-sans-latin-600-normal-BR59oU-I.woff) format("woff");unicode-range:U+0000-00FF,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;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/public-sans-vietnamese-700-normal-D97ShjGS.woff2) format("woff2"),url(/assets/public-sans-vietnamese-700-normal-Dq5VrXjD.woff) format("woff");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;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/public-sans-latin-ext-700-normal-CgolUQuG.woff2) format("woff2"),url(/assets/public-sans-latin-ext-700-normal-jWHjnMgZ.woff) format("woff");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;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/public-sans-latin-700-normal-BqJmxWdE.woff2) format("woff2"),url(/assets/public-sans-latin-700-normal-Dm-oTPSL.woff) format("woff");unicode-range:U+0000-00FF,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;font-style:normal;font-display:swap;font-weight:300;src:url(/assets/archivo-vietnamese-300-normal-DlA9Skee.woff2) format("woff2"),url(/assets/archivo-vietnamese-300-normal-D1FN3R2n.woff) format("woff");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-display:swap;font-weight:300;src:url(/assets/archivo-latin-ext-300-normal-0WwdIqab.woff2) format("woff2"),url(/assets/archivo-latin-ext-300-normal-D3llZCfd.woff) format("woff");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:Archivo;font-style:normal;font-display:swap;font-weight:300;src:url(/assets/archivo-latin-300-normal-AMs-pvbP.woff2) format("woff2"),url(/assets/archivo-latin-300-normal-BRswihEa.woff) format("woff");unicode-range:U+0000-00FF,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;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/archivo-vietnamese-400-normal-BF4g3tCF.woff2) format("woff2"),url(/assets/archivo-vietnamese-400-normal-FGOLYM1a.woff) format("woff");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-display:swap;font-weight:400;src:url(/assets/archivo-latin-ext-400-normal-B5tPZzqW.woff2) format("woff2"),url(/assets/archivo-latin-ext-400-normal-DrmqtLj6.woff) format("woff");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:Archivo;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/archivo-latin-400-normal-C81ewxNO.woff2) format("woff2"),url(/assets/archivo-latin-400-normal-Bl602Mgc.woff) format("woff");unicode-range:U+0000-00FF,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;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/archivo-vietnamese-500-normal-k0drYPZA.woff2) format("woff2"),url(/assets/archivo-vietnamese-500-normal-7W3lD2kQ.woff) format("woff");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-display:swap;font-weight:500;src:url(/assets/archivo-latin-ext-500-normal-RFhg4CpD.woff2) format("woff2"),url(/assets/archivo-latin-ext-500-normal-D7mXw3Kz.woff) format("woff");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:Archivo;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/archivo-latin-500-normal-CGugC8dq.woff2) format("woff2"),url(/assets/archivo-latin-500-normal-pkzA7jw9.woff) format("woff");unicode-range:U+0000-00FF,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{--ink:#121212;--ink-2:#2A2722;--yellow:#EFCC13;--paper:#F6F2EB;--text-2:#5B564D;--hair:rgba(18,18,18,.08);--wash:rgba(18,18,18,.06);--green:#3E6B4F;--green-t:rgba(62,107,79,.12);--brick:#A64B36;--brick-t:rgba(166,75,54,.12);--taupe:#B3A994;--taupe-t:rgba(179,169,148,.22);--taupe-ink:#6E6450;--card:rgba(255,255,255,.74);--shadow:0 30px 60px -24px rgba(80,60,20,.18),0 2px 6px rgba(80,60,20,.05);--shadow-lift:0 36px 70px -24px rgba(80,60,20,.26),0 4px 10px rgba(80,60,20,.06);--r:28px;--r-sm:16px;--r-xs:10px;--ease-out:cubic-bezier(.23,1,.32,1);--font:"Public Sans",system-ui,sans-serif;--num:"Archivo","Public Sans",sans-serif}*{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%}body{font-family:var(--font);color:var(--ink);font-size:14px;line-height:1.5;background:radial-gradient(900px 520px at 100% -8%,rgba(239,204,19,.16),transparent 62%),radial-gradient(700px 500px at -10% 30%,rgba(255,255,255,.7),transparent 60%),var(--paper);background-attachment:fixed;min-height:100vh;-webkit-font-smoothing:antialiased}::selection{background:#efcc1373;color:var(--ink)}button,input{font-family:inherit}:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.num,.tnum{font-family:var(--num);font-variant-numeric:tabular-nums}.rail{position:fixed;left:24px;top:50%;transform:translateY(-50%);background:var(--ink);border-radius:999px;padding:10px;display:flex;flex-direction:column;gap:8px;box-shadow:0 24px 50px -16px #00000073;z-index:30}.rail button{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:transparent;color:#ffffff9e;cursor:pointer;position:relative;transition:background-color .2s var(--ease-out),color .2s var(--ease-out),transform .16s var(--ease-out)}.rail button:hover{color:#fff}.rail button.on{background:#ffffff1f;color:#fff}.rail button:active{transform:scale(.94)}.rail .sep{height:1px;background:#ffffff1f;margin:4px 10px}.rail .tip{position:absolute;left:58px;top:50%;transform:translate(-4px,-50%);opacity:0;pointer-events:none;background:var(--ink);color:#fff;font-size:12px;font-weight:600;white-space:nowrap;border-radius:8px;padding:5px 10px;transition:opacity .15s var(--ease-out),transform .15s var(--ease-out)}@media(hover:hover)and (pointer:fine){.rail button:hover .tip,.rail button:focus-visible .tip{opacity:1;transform:translateY(-50%)}}.page{max-width:1200px;margin:0 auto;padding:28px 40px 56px 128px}.hub-header{display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{display:flex;align-items:center;gap:22px;min-width:0}.brand img{height:46px;width:auto;display:block}.brand .vr{width:1px;height:40px;background:var(--hair);flex:none}.hub-header h1{font-size:26px;font-weight:600;letter-spacing:-.02em;line-height:1.1}.hub-header .sub{color:var(--text-2);font-size:12px;margin-top:3px}.hactions{display:flex;align-items:center;gap:10px}.btn,.export{-webkit-appearance:none;-moz-appearance:none;appearance:none;height:44px;padding:0 20px;border-radius:999px;border:0;font:600 14px var(--font);display:inline-flex;align-items:center;gap:8px;cursor:pointer;white-space:nowrap;transition:transform .16s var(--ease-out),box-shadow .2s var(--ease-out),background-color .2s var(--ease-out)}.export{background:var(--ink);color:#fff;box-shadow:0 12px 24px -12px #00000080}.export:hover:not(:disabled){box-shadow:0 16px 28px -12px #0009}.btn:active,.export:active{transform:scale(.97)}.export:disabled{opacity:.6;cursor:default}.btn.ghost{background:transparent;color:var(--text-2)}.btn.ghost:hover{background:var(--wash);color:var(--ink)}.export-menu{position:relative}.export-pop{position:absolute;right:0;top:calc(100% + 8px);z-index:40;background:#fff;border-radius:var(--r-sm);box-shadow:var(--shadow-lift);padding:8px;min-width:220px;display:flex;flex-direction:column;gap:2px;transform-origin:top right;animation:popIn .18s var(--ease-out)}@keyframes popIn{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:none}}.export-pop button{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:transparent;text-align:left;font:600 14px var(--font);color:var(--ink);padding:11px 12px;border-radius:var(--r-xs);cursor:pointer;white-space:nowrap}.export-pop button:hover:not(:disabled){background:var(--wash)}.export-pop button:disabled{opacity:.5;cursor:default}.export-range{font-size:12px;color:var(--text-2);padding:6px 12px}.export-error{color:var(--brick);font-size:12px;margin-top:6px;max-width:260px}.controls{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:28px;flex-wrap:wrap}.controls .group{display:flex;gap:12px;flex-wrap:wrap;align-items:center}.seg{display:inline-flex;background:var(--card);border:1px solid #fff;border-radius:999px;padding:4px;gap:2px;box-shadow:0 8px 20px -14px #503c144d;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}.seg button{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:transparent;height:36px;padding:0 16px;border-radius:999px;font:600 14px var(--font);color:var(--text-2);cursor:pointer;white-space:nowrap;transition:background-color .22s var(--ease-out),color .22s var(--ease-out),transform .16s var(--ease-out)}.seg button:hover:not(.on){color:var(--ink)}.seg button.on{background:var(--ink);color:#fff}.seg button:active{transform:scale(.97)}.rangeline{display:flex;align-items:center;gap:14px;color:var(--text-2);font-size:14px;flex-wrap:wrap}.rangeline b{color:var(--ink);font-weight:600}.daterange{display:inline-flex;align-items:center;gap:8px;background:var(--card);border:1px solid #fff;border-radius:999px;padding:4px 4px 4px 14px;box-shadow:0 8px 20px -14px #503c144d;animation:popIn .18s var(--ease-out)}.daterange input[type=date]{font-size:14px;color:var(--ink);border:1px solid var(--hair);border-radius:999px;padding:6px 12px;background:#fff;height:36px}.daterange .to{color:var(--text-2);font-size:12px}.daterange .apply{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:var(--ink);color:#fff;font:600 14px var(--font);height:36px;padding:0 16px;border-radius:999px;cursor:pointer}.daterange .apply:disabled{opacity:.5;cursor:default}section{margin-top:40px}.sec-h,.eyebrow{font-size:18px;font-weight:600;letter-spacing:-.01em;margin-bottom:16px;display:flex;align-items:baseline;justify-content:space-between;gap:12px;color:var(--ink)}.sec-h small{font-size:12px;font-weight:500;color:var(--text-2);text-align:right}.card{background:var(--card);border:1px solid #fff;border-radius:var(--r);box-shadow:var(--shadow);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}.card .ch{padding:20px 22px 6px;display:flex;justify-content:space-between;align-items:baseline;gap:12px}.card .ch h3,.card-title{font-size:14px;font-weight:600}.card .ch .hint{font-size:12px;color:var(--text-2)}.rise{animation:rise .5s var(--ease-out) both}.stagger>*{animation:rise .5s var(--ease-out) both}.stagger>*:nth-child(2){animation-delay:50ms}.stagger>*:nth-child(3){animation-delay:.1s}.stagger>*:nth-child(4){animation-delay:.15s}.stagger>*:nth-child(5){animation-delay:.2s}@keyframes rise{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}.tabview{animation:viewIn .32s var(--ease-out)}@keyframes viewIn{0%{opacity:0;filter:blur(6px)}to{opacity:1;filter:none}}.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.kpis.key{grid-template-columns:1fr 1fr 1fr 1.35fr 1fr}.kpi{background:var(--card);border:1px solid #fff;border-radius:var(--r);box-shadow:var(--shadow);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);padding:22px 22px 20px;display:flex;flex-direction:column;min-width:0;transition:transform .25s var(--ease-out),box-shadow .25s var(--ease-out)}@media(hover:hover)and (pointer:fine){.kpi:hover{transform:translateY(-3px);box-shadow:var(--shadow-lift)}}.kpi .lab{font-size:12px;font-weight:700;color:var(--text-2);display:flex;align-items:center;gap:8px}.chip{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:var(--wash);color:var(--ink);flex:none}.kpi .num{font-family:var(--num);font-variant-numeric:tabular-nums;font-size:48px;font-weight:300;letter-spacing:-.035em;line-height:1;margin-top:18px}.kpi .sub,.kpi .foot{font-size:12px;color:var(--text-2)}.kpi .foot{margin-top:auto;padding-top:14px}.kpi .foot b{color:var(--ink);font-weight:600;font-family:var(--num)}.kpi .kpi-range{margin-top:4px}.delta{display:inline-flex;align-items:center;gap:4px;margin-top:12px;align-self:flex-start;background:var(--wash);border-radius:999px;padding:3px 10px;font-size:12px;font-weight:600;font-variant-numeric:tabular-nums}.delta.none{font-weight:500;color:var(--text-2)}.kpi.dark{background:var(--ink);border-color:var(--ink);color:#fff;box-shadow:0 34px 60px -24px #0000008c}.kpi.dark .lab,.kpi.dark .foot,.kpi.dark .sub{color:#ffffffb3}.kpi.dark .foot b{color:#fff}.kpi.dark .chip{background:#ffffff1a;color:#fff}.kpi.dark .delta{background:#ffffff1f}.split{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:14px}.split>div{background:#ffffff12;border-radius:var(--r-sm);padding:10px 12px;min-width:0}.split .v{font-family:var(--num);font-variant-numeric:tabular-nums;font-size:26px;font-weight:300;letter-spacing:-.02em;line-height:1.1}.split .t{font-size:12px;color:#ffffffb3}.split .today-line{display:inline-flex;margin-top:6px;background:var(--yellow);color:var(--ink);border-radius:999px;padding:1px 8px;font-size:12px;font-weight:700;animation:rise .4s var(--ease-out) both}.cpl{margin-top:10px;font-size:12px;color:#ffffffb3;display:flex;justify-content:space-between;gap:10px}.cpl b{color:#fff;font-weight:600;text-align:right}.kpi .note{font-size:14px;font-weight:600;margin-top:18px;line-height:1.35;max-width:22ch}.kpi.accent .chip{background:#efcc1347}.kpi.warn .chip{background:var(--brick-t);color:var(--brick)}.synced{display:flex;align-items:center;gap:8px;margin-top:16px;color:var(--text-2);font-size:12px}.synced .ok-ic{color:var(--green)}.synced.stale{color:var(--brick);font-weight:600}.synced.stale .ok-ic{color:var(--brick)}.today{margin-top:20px;padding:18px 22px;display:grid;grid-template-columns:auto 1fr auto;gap:28px;align-items:center;background:linear-gradient(90deg,rgba(239,204,19,.1),var(--card) 38%)}.today .tt{display:flex;flex-direction:column;gap:6px}.now{display:inline-flex;align-items:center;gap:6px;align-self:flex-start;background:var(--yellow);color:var(--ink);border-radius:999px;padding:3px 10px;font-size:12px;font-weight:700}.now .pulse{width:7px;height:7px;border-radius:50%;background:var(--ink)}.today .tt b{font-size:18px;font-weight:600}.today .tt .partial{font-size:12px;color:var(--text-2)}.today-row{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}.today-item .tv{font-family:var(--num);font-variant-numeric:tabular-nums;font-size:26px;font-weight:400;letter-spacing:-.02em}.today-item .tl{font-size:12px;color:var(--text-2)}.today .side{font-size:12px;color:var(--text-2);text-align:right;line-height:1.7}.quality{padding:22px}.quality .lead{font-size:14px;color:var(--text-2);margin-bottom:14px;max-width:75ch}.quality .lead b{color:var(--ink);font-weight:600}.qbar{display:flex;height:16px;gap:3px}.qseg{border-radius:999px;transform-origin:left;animation:grow .7s var(--ease-out) both}.qseg.bot,.sw.bot{background:var(--brick)}.qseg.low,.sw.low{background:var(--taupe)}.qseg.real,.sw.real{background:var(--green)}@keyframes grow{0%{transform:scaleX(0)}to{transform:none}}.qlegend{display:flex;gap:24px;margin-top:14px;font-size:14px;flex-wrap:wrap}.qlegend span{display:flex;align-items:center;gap:8px;color:var(--text-2)}.qlegend b{color:var(--ink);font-family:var(--num);font-weight:500}.qlegend .tot{margin-left:auto}.qlegend .tot b{font-family:var(--font);font-weight:600}.sw{width:10px;height:10px;border-radius:3px;display:inline-block}.cols{display:grid;grid-template-columns:1.25fr 1fr;gap:16px;align-items:start}.two{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start}table{width:100%;border-collapse:collapse}.tablecard{padding:10px 8px 8px}th{font-size:12px;font-weight:600;color:var(--text-2);text-align:right;padding:10px 14px;white-space:nowrap}th:first-child,td:first-child{text-align:left}td{padding:11px 14px;text-align:right;font-family:var(--num);font-variant-numeric:tabular-nums;font-size:14px}td:first-child{font-family:var(--font);font-weight:500}tbody tr+tr td{border-top:1px solid var(--hair)}.src{font-weight:500}.src .med{color:var(--text-2);font-weight:400}.typ{font-size:12px;color:var(--text-2);font-family:var(--font);font-weight:400}.tag,.q{display:inline-flex;border-radius:999px;padding:2px 10px;font:600 12px var(--font);white-space:nowrap}.tag.real,.tag.live{background:var(--green-t);color:var(--green)}.tag.low,.tag.paused{background:var(--taupe-t);color:var(--taupe-ink)}.tag.bot{background:var(--brick-t);color:var(--brick)}tr.parent{cursor:pointer;transition:background-color .15s var(--ease-out)}@media(hover:hover){tr.parent:hover td{background:#12121208}}tr.parent .caret{display:inline-block;margin-right:6px;color:var(--text-2);transition:transform .2s var(--ease-out);vertical-align:-2px}tr.parent.open .caret{transform:rotate(90deg)}tr.detail td{font:400 12px/1.6 var(--font);color:var(--text-2);text-align:left;background:#12121206}tr.detail td>*{animation:detailIn .22s var(--ease-out)}tr.detail b{color:var(--ink);font-weight:600}@keyframes detailIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}.chartcard{padding:22px}.chartcard .ct{display:flex;justify-content:space-between;align-items:center;gap:10px}.legendpill{display:inline-flex;gap:8px;margin-top:14px;flex-wrap:wrap}.legendpill span{background:var(--ink);color:#fff;border-radius:999px;padding:4px 12px;font-size:12px;font-weight:600}.legendpill span.lt{background:var(--wash);color:var(--ink)}.trendwrap{margin-top:8px}.trend-tip{background:#fff;border-radius:12px;box-shadow:var(--shadow-lift);padding:8px 12px}.trend-tip-date{font-size:12px;color:var(--text-2);font-weight:600;margin-bottom:2px}.trend-tip-val{font-size:14px;font-weight:600;display:flex;align-items:center;gap:7px;font-variant-numeric:tabular-nums}.trend-tip-val .dotg{width:8px;height:8px;border-radius:50%;background:var(--ink);flex:none}.recharts-surface{overflow:visible}.recharts-text{font-family:var(--font);font-size:12px;fill:var(--text-2)}.bars{padding:22px}.bar{display:grid;grid-template-columns:170px 1fr 72px;align-items:center;gap:14px;padding:7px 0}.bars.wide .bar{grid-template-columns:280px 1fr 84px}.bar .n{font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bar .n span{color:var(--text-2);font-weight:400}.track{height:10px;border-radius:999px;background:var(--wash);overflow:hidden}.track i{display:block;height:100%;border-radius:999px;background:var(--ink-2);transform-origin:left;animation:grow .7s var(--ease-out) both}.bar .val{text-align:right;font-family:var(--num);font-variant-numeric:tabular-nums}.bar.parent{cursor:pointer;border-radius:var(--r-xs)}.bar .caret{margin-right:6px;color:var(--text-2);display:inline-block;transition:transform .2s var(--ease-out);vertical-align:-2px}.bar.parent.open .caret{transform:rotate(90deg)}.bar-detail{padding:4px 0 10px 22px;font-size:12px;color:var(--text-2);animation:detailIn .22s var(--ease-out)}.empty{color:var(--text-2);font-size:14px;padding:6px 0}.statrow{padding:26px 28px;display:grid;grid-template-columns:repeat(4,1fr);column-gap:44px}.statrow .s{position:relative;min-width:0}.statrow .s+.s:before{content:"";position:absolute;left:-22px;top:4px;bottom:4px;width:1px;background:var(--hair)}.statrow .v{font-family:var(--num);font-variant-numeric:tabular-nums;font-size:32px;font-weight:300;letter-spacing:-.03em;line-height:1.15}.statrow .l{font-size:12px;color:var(--text-2)}.camp{margin-top:16px}.metaextra{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:16px;align-items:start}.mini{padding:20px 22px}.mini .row{display:flex;justify-content:space-between;gap:12px;padding:9px 0;font-size:14px}.mini .row+.row{border-top:1px solid var(--hair)}.mini .row span:last-child{font-family:var(--num);font-variant-numeric:tabular-nums;text-align:right}.mini .up{color:var(--green)}.okpill{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:3px 10px;font-size:12px;font-weight:600;margin-top:12px}.okpill.ok{background:var(--green-t);color:var(--green)}.okpill.bad{background:var(--brick-t);color:var(--brick)}.linkbtn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:transparent;color:var(--ink);font:600 12px var(--font);text-decoration:underline;text-underline-offset:3px;cursor:pointer;padding:12px 0 0;margin-left:12px}.recon{margin-top:12px}.recon td,.recon th{padding:8px 6px;font-size:12px}.meta-flag{color:var(--brick);font-weight:600}.meta-total td{font-weight:600}footer{margin-top:48px;padding-top:22px;border-top:1px solid var(--hair);display:flex;justify-content:space-between;align-items:center;gap:20px;color:var(--text-2);font-size:12px}footer img{height:30px;display:block}.state{padding:40px;text-align:center;color:var(--text-2);font-size:14px}.skeleton{display:grid;grid-template-columns:repeat(5,1fr);gap:16px;margin-top:40px}.skeleton div{height:200px;border-radius:var(--r);background:linear-gradient(90deg,#ffffff80,#ffffffe6,#ffffff80);background-size:200% 100%;animation:shimmer 1.4s linear infinite}@keyframes shimmer{to{background-position:-200% 0}}.spinner{display:inline-block;width:22px;height:22px;border:3px solid var(--hair);border-top-color:var(--ink);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.mail-banner{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:14px 18px;margin-bottom:16px}.mail-banner .lab{font-size:12px;color:var(--text-2);font-weight:600}.mail-banner .addr{font-size:14px;font-weight:600;font-family:var(--num)}.mail-banner .copy{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:var(--wash);color:var(--ink);font:600 12px var(--font);height:32px;padding:0 14px;border-radius:999px;cursor:pointer;margin-left:auto}.mail-banner .copy.done{background:var(--green-t);color:var(--green)}.mail-search{display:flex;align-items:center;gap:14px;margin-bottom:16px}.mail-search input{flex:1;font-size:14px;color:var(--ink);height:44px;padding:0 18px;border:1px solid #fff;border-radius:999px;background:var(--card);box-shadow:0 8px 20px -14px #503c144d}.mail-count{font-size:12px;color:var(--text-2);white-space:nowrap}.mail-grid{display:grid;grid-template-columns:360px 1fr;gap:16px;align-items:start}.mail-list{max-height:640px;overflow:auto;padding:8px}.mail-item-wrap{position:relative}.mail-item{display:block;width:100%;text-align:left;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;cursor:pointer;background:transparent;border-radius:var(--r-sm);padding:12px 42px 12px 14px;font-family:var(--font)}.mail-item:hover{background:var(--wash)}.mail-item.active{background:#fff;box-shadow:0 8px 20px -14px #503c1459}.mail-row1{display:flex;justify-content:space-between;gap:10px;align-items:baseline}.mail-from{font-weight:600;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mail-when{font-size:12px;color:var(--text-2);white-space:nowrap;flex:none}.mail-subj{font-size:14px;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mail-snip{font-size:12px;color:var(--text-2);margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mail-del{position:absolute;top:10px;right:8px;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:transparent;color:var(--text-2);width:30px;height:30px;border-radius:50%;cursor:pointer;opacity:0;transition:opacity .15s var(--ease-out),background-color .15s var(--ease-out)}.mail-item-wrap:hover .mail-del,.mail-del:focus-visible{opacity:.8}.mail-del:hover{opacity:1;background:var(--brick-t);color:var(--brick)}.mail-confirm{display:flex;align-items:center;gap:8px;padding:8px 14px;font-size:12px;color:var(--brick);font-weight:600}.mail-confirm.inline{padding:0}.mail-confirm button{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;font:600 12px var(--font);height:30px;padding:0 12px;border-radius:999px;cursor:pointer}.mail-confirm button.danger{background:var(--brick);color:#fff}.mail-confirm button.ghost{background:var(--wash);color:var(--ink)}.mail-confirm button:disabled{opacity:.6;cursor:default}.mail-pane{min-height:640px}.mail-read{padding:24px 26px}.mail-read-head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px}.mail-read h3{font-size:18px;font-weight:600;margin-bottom:8px}.mail-meta{font-size:12px;color:var(--text-2);padding-bottom:14px;border-bottom:1px solid var(--hair);margin-bottom:14px}.mail-del-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:var(--brick-t);color:var(--brick);font:600 12px var(--font);height:32px;padding:0 14px;border-radius:999px;cursor:pointer;white-space:nowrap;flex:none}.mail-html{width:100%;height:560px;border:0;background:#fff;border-radius:var(--r-sm)}.mail-text{white-space:pre-wrap;font-size:14px;line-height:1.6;max-width:75ch}.login-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}.login-card{background:var(--card);border:1px solid #fff;border-radius:var(--r);box-shadow:var(--shadow);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);padding:34px 32px;width:100%;max-width:380px;display:flex;flex-direction:column;gap:14px;animation:rise .5s var(--ease-out) both}.login-mark img{height:44px;display:block}.login-title{font-size:26px;font-weight:600;letter-spacing:-.02em}.login-sub{font-size:14px;color:var(--text-2);margin-top:-8px}.login-card input{font-size:14px;height:44px;padding:0 16px;border:1px solid var(--hair);border-radius:999px;color:var(--ink);background:#fff}.login-card input.err{border-color:var(--brick)}.login-err{font-size:12px;color:var(--brick);margin-top:-6px}.login-card button{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:var(--ink);color:#fff;font:600 14px var(--font);height:44px;border-radius:999px;cursor:pointer;transition:transform .16s var(--ease-out)}.login-card button:active{transform:scale(.97)}.login-card button:disabled{opacity:.55;cursor:default}.login-switch{background:transparent!important;color:var(--text-2)!important;height:auto!important;font-size:12px!important;padding:4px!important;align-self:center;text-decoration:underline;text-underline-offset:3px}.admin-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;flex-wrap:wrap;margin-bottom:12px}.admin-note{font-size:14px;color:var(--text-2);max-width:65ch}.admin-note b{color:var(--ink);font-weight:600}.admin-kpis{margin-bottom:8px}.admin-form{display:flex;flex-direction:column}.admin-form-body{padding:18px 22px 22px;display:flex;flex-direction:column;gap:12px}.admin-warn{background:var(--brick-t);border-radius:var(--r-sm);padding:10px 14px;font-size:12px;color:var(--brick);font-weight:600;line-height:1.5}.admin-field{display:flex;flex-direction:column;gap:6px}.admin-field span{font-size:12px;font-weight:600;color:var(--text-2)}.admin-field input{font-size:14px;height:44px;padding:0 16px;border:1px solid var(--hair);border-radius:999px;background:#fff}.admin-hint{font-size:12px;font-weight:600}.admin-hint.bad{color:var(--brick)}.admin-hint.ok{color:var(--green)}.admin-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:var(--ink);color:#fff;font:600 14px var(--font);height:44px;padding:0 18px;border-radius:999px;cursor:pointer;align-self:flex-start;transition:transform .16s var(--ease-out)}.admin-btn:active{transform:scale(.97)}.admin-btn:disabled{opacity:.5;cursor:default}.admin-btn.danger{background:var(--brick)}@media(max-width:880px){.kpis{grid-template-columns:1fr 1fr}.cols,.two,.metaextra,.mail-grid{grid-template-columns:1fr}}@media(max-width:720px){.rail{left:50%;top:auto;bottom:16px;transform:translate(-50%);flex-direction:row}.rail .sep{width:1px;height:auto;margin:10px 4px}.rail .tip{display:none}.page{padding:20px 16px 112px}.hub-header{flex-direction:column;align-items:flex-start;gap:14px}.brand{gap:14px}.brand img{height:36px}.brand .vr{height:32px}.hub-header h1{font-size:22px}.hactions,.export-menu{width:100%}.export{width:100%;justify-content:center}.export-pop{left:0;right:0;transform-origin:top center}.controls{flex-direction:column;align-items:stretch;margin-top:20px}.seg{justify-content:space-between;overflow-x:auto}.seg button{padding:0 12px}.rangeline{gap:6px 12px;font-size:12px}.kpis.key{grid-template-columns:1fr 1fr}.kpi{padding:18px}.kpi .num{font-size:40px}.kpi.dark{grid-column:1/-1;order:-1}.today{grid-template-columns:1fr;gap:14px}.today-row{grid-template-columns:1fr 1fr;gap:14px}.today .side{text-align:left}.qlegend .tot{margin-left:0}.statrow{grid-template-columns:1fr 1fr;row-gap:18px;column-gap:32px;padding:22px}.statrow .s+.s:before{left:-16px}.statrow .s:nth-child(odd):before{display:none}.bar,.bars.wide .bar{grid-template-columns:1fr auto;row-gap:6px}.bar .n{grid-column:1/-1;white-space:normal}th,td{padding:10px 8px}.hide-sm{display:none}.daterange{flex-wrap:wrap;border-radius:var(--r-sm);padding:8px}.skeleton{grid-template-columns:1fr 1fr}footer{flex-direction:column;align-items:flex-start}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-delay:0ms!important;transition-duration:.01ms!important}.kpi:hover{transform:none}}@media(prefers-reduced-transparency:reduce){.card,.kpi,.seg,.login-card{background:#fff;backdrop-filter:none;-webkit-backdrop-filter:none}}.mini-seg{box-shadow:none;background:var(--wash);border-color:transparent;padding:3px}.mini-seg button{height:28px;padding:0 10px;font-size:12px}.mini-seg button.on{background:#fff;color:var(--ink);box-shadow:0 2px 6px #00000014}.kpi.dark .delta.none{color:#ffffffc7}.table-more{display:block;margin:4px 14px 10px;padding-top:6px}.tablecard{overflow-x:auto}@media(max-width:720px){.tablecard{padding:6px 2px}.tablecard th,.tablecard td{padding:10px 6px;font-size:13px}.tablecard td:first-child{overflow-wrap:anywhere}.tag{padding:2px 8px}}
