@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/cd79e1ff94fa521b-s.p.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/89362aa296165c6d-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/e11f95d95ac59fa4-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/00f4982f357db61e-s.p.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/62a3c74fa0e47362-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/8201559e247ad180-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/2173e4bb28c315da-s.p.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/c6f81e539d11fc99-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/25ab8995c98996d7-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/9ddf1512dbee9c99-s.p.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/8247d8d2a376ae43-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/e270c9fc4fe96f5a-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:800;font-display:swap;src:url(/_next/static/media/6bb6a9cb68044e10-s.p.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:800;font-display:swap;src:url(/_next/static/media/9a3689a7cda641d2-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:800;font-display:swap;src:url(/_next/static/media/bed26dc8a57eea87-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Be Vietnam Pro Fallback;src:local("Arial");ascent-override:90.61%;descent-override:24.01%;line-gap-override:0.00%;size-adjust:110.36%}.__className_0df554{font-family:Be Vietnam Pro,Be Vietnam Pro Fallback;font-style:normal}:root{--brand:#26b5e9;--brand-600:#1599cc;--brand-dark:#0b3556;--brand-ink:#082840;--brand-soft:#e8f7fd;--brand-softer:#f3fbfe;--ink:#0f2233;--muted:#64788a;--line:#e6edf3;--bg:#f4f8fb;--card:#ffffff;--ok:#12a150;--ok-soft:#e6f6ec;--warn:#b7700a;--warn-soft:#fdf3e0;--bad:#d92d2d;--bad-soft:#fdeaea;--gold:#e7a512;--silver:#94a3b8;--bronze:#c2733b;--radius:16px;--shadow:0 1px 2px rgba(11,53,86,0.04),0 4px 16px rgba(11,53,86,0.05);--sidebar:clamp(200px,15vw,232px);--fs:clamp(13px,0.2vw + 11.6px,14px);--fs-sm:clamp(11.5px,0.15vw + 10.6px,12.5px);--pad:clamp(12px,0.8vw + 5px,16px);--gap:clamp(8px,0.6vw + 4px,12px);--bottom-nav:64px}*{box-sizing:border-box}body,html{margin:0}body{font-family:Be Vietnam Pro,system-ui,-apple-system,sans-serif;background:var(--bg);color:var(--ink);font-size:var(--fs);line-height:1.5;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;-webkit-font-smoothing:antialiased}a,h1{color:var(--brand-dark)}h1{font-size:clamp(18px,.9vw + 12px,22px);line-height:1.25;margin:0 0 2px;letter-spacing:-.2px}h2{font-size:clamp(14px,.3vw + 12px,15px);margin:0 0 10px;color:var(--brand-dark)}h3{font-size:clamp(13px,.3vw + 11px,14px)}h3,p{margin:0 0 8px}code{background:var(--brand-soft);padding:1px 6px;border-radius:6px;font-size:13px}.muted{color:var(--muted)}.small{font-size:var(--fs-sm)}.num{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.nowrap{white-space:nowrap}.right{text-align:right}.app{min-height:100dvh}.sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar);z-index:20;background:linear-gradient(180deg,var(--brand-dark),var(--brand-ink));color:#d4e9f5;display:flex;flex-direction:column;padding:18px 12px}.brandmark{display:flex;align-items:center;gap:10px;color:#fff;text-decoration:none;font-weight:700;font-size:15px;padding:4px 6px 16px}.brandmark b{color:var(--brand);font-weight:800}.brandmark-badge{width:34px;height:34px;border-radius:10px;background:var(--brand);color:#fff;display:grid;place-items:center;font-weight:800;font-size:13px;letter-spacing:.5px;box-shadow:0 4px 12px rgba(38,181,233,.35)}.side-nav{display:flex;flex-direction:column;gap:2px;flex:1 1;overflow-y:auto}.side-nav a{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:10px;color:#c3dcec;text-decoration:none;font-size:var(--fs);font-weight:500;transition:background .15s,color .15s}.side-nav a:hover{background:rgba(255,255,255,.06);color:#fff}.side-nav a.on{background:rgba(38,181,233,.16);color:#fff;box-shadow:inset 3px 0 0 var(--brand)}.side-nav a.on svg{color:var(--brand)}.side-user{display:flex;align-items:center;gap:10px;padding:12px 8px 4px;border-top:1px solid rgba(255,255,255,.08);margin-top:8px}.side-user-info{flex:1 1;min-width:0;display:flex;flex-direction:column}.side-user-info strong{color:#fff;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.side-user-info span{font-size:12px;color:#8fb3ca}.icon-btn{background:none;border:0;color:#9fc2d8;padding:8px;border-radius:10px;cursor:pointer;display:grid;place-items:center}.icon-btn:hover{background:rgba(255,255,255,.08);color:#fff}.avatar{display:inline-grid;place-items:center;border-radius:50%;background:linear-gradient(135deg,var(--brand),#6fd0f2);color:#fff;font-weight:700;flex-shrink:0;letter-spacing:.3px}.main{zoom:var(--z);margin-left:calc(var(--sidebar) / var(--z));padding:clamp(16px,1.6vw,26px) clamp(16px,2vw,30px) 48px;max-width:calc(1400px + var(--sidebar))}.bottom-nav,.mobile-top{display:none}@media (max-width:1023px){.sidebar{display:none}.main{margin-left:0;padding:16px 16px calc(var(--bottom-nav) + 28px + env(safe-area-inset-bottom))}.mobile-top{display:flex;align-items:center;justify-content:space-between;position:-webkit-sticky;position:sticky;top:0;z-index:15;background:var(--brand-dark);padding:calc(10px + env(safe-area-inset-top)) 16px 10px}.mobile-top .brandmark{padding:0;font-size:15px}.mobile-top .brandmark-badge{width:30px;height:30px;font-size:12px}.bottom-nav{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:30;background:rgba(255,255,255,.96);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom)}.bottom-nav-form button,.bottom-nav>a,.bottom-nav>button{flex:1 1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;height:var(--bottom-nav);color:var(--muted);text-decoration:none;font:inherit;font-size:11px;font-weight:500;background:none;border:0;cursor:pointer;touch-action:manipulation;-webkit-user-select:none;-moz-user-select:none;user-select:none}.bottom-nav-form{flex:1 1;display:flex}.bottom-nav .on{color:var(--brand-600)}.bottom-nav .on svg{stroke-width:2.2}}.sheet-backdrop{position:fixed;inset:0;z-index:50;background:rgba(8,40,64,.45);display:flex;align-items:flex-end;animation:fade .15s ease-out}.sheet{background:#fff;width:100%;border-radius:20px 20px 0 0;padding:8px 16px calc(16px + env(safe-area-inset-bottom));animation:rise .22s cubic-bezier(.2,.8,.2,1)}.sheet-handle{width:40px;height:4px;border-radius:4px;background:#d5dee6;margin:4px auto 12px}.sheet-user{display:flex;flex-direction:column;padding:0 4px 12px}.sheet-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:8px;gap:8px;margin-bottom:12px}.sheet-grid a{display:flex;flex-direction:column;align-items:center;gap:6px;padding:14px 6px;border-radius:14px;background:var(--brand-softer);color:var(--brand-dark);text-decoration:none;font-size:13px;font-weight:500;text-align:center}.sheet-grid a.on{background:var(--brand-soft);color:var(--brand-600)}@keyframes fade{0%{opacity:0}}@keyframes rise{0%{transform:translateY(100%)}}@media (prefers-reduced-motion:reduce){.sheet,.sheet-backdrop{animation:none}}.page-head{align-items:flex-end;justify-content:space-between;gap:10px;margin-bottom:clamp(12px,1.2vw,18px)}.page-actions,.page-head{display:flex;flex-wrap:wrap}.page-actions{gap:8px;align-items:center}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:var(--pad);box-shadow:var(--shadow);min-width:0}.card-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:12px;flex-wrap:wrap}.card-head h2{margin:0}.card-link{font-size:13px;color:var(--brand-600);text-decoration:none;font-weight:600;display:inline-flex;align-items:center;gap:2px}.grid{display:grid;grid-gap:var(--gap);gap:var(--gap)}.g2{grid-template-columns:repeat(2,minmax(0,1fr))}.g3{grid-template-columns:repeat(3,minmax(0,1fr))}.g4{grid-template-columns:repeat(4,minmax(0,1fr))}.g-2-1{grid-template-columns:minmax(0,2fr) minmax(0,1fr)}@media (max-width:1023px){.g4{grid-template-columns:repeat(2,minmax(0,1fr))}.g-2-1{grid-template-columns:1fr}}@media (max-width:760px){.g2,.g3{grid-template-columns:1fr}.grid{gap:10px}}.stack{flex-direction:column;gap:12px}.row,.stack{display:flex}.row{gap:8px;flex-wrap:wrap;align-items:center}.between{justify-content:space-between}.mt{margin-top:16px}.mt-s{margin-top:8px}.stat{display:flex;flex-direction:column;gap:4px}.stat-top{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}.stat .label{font-size:var(--fs-sm);color:var(--muted);font-weight:500}.stat-icon{width:28px;height:28px;border-radius:10px;display:grid;place-items:center;background:var(--brand-soft);color:var(--brand-600);flex-shrink:0}.stat .value{font-size:clamp(17px,.9vw + 10px,22px);font-weight:700;color:var(--brand-dark);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;letter-spacing:-.3px;line-height:1.2;word-break:break-word}.stat .hint{font-size:11.5px;color:var(--muted)}.stat.accent{background:linear-gradient(135deg,var(--brand-dark) 0,#13507d 60%,#1a77a8 100%);border:0;color:#fff}.stat.accent .hint,.stat.accent .label,.stat.accent .muted{color:#bfe3f4}.stat.accent .value{color:#fff}.stat.accent .stat-icon{background:rgba(255,255,255,.14);color:#fff}.delta{font-weight:600}.delta.up{color:var(--ok)}.delta.down{color:var(--bad)}.delta.flat{color:var(--muted)}.stat.accent .delta.up{color:#7ff0b0}.stat.accent .delta.down{color:#ffb3b3}.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0 calc(var(--pad) * -1);padding:0 var(--pad)}table{width:100%;border-collapse:collapse;font-size:var(--fs-sm)}th{text-align:left;font-weight:600;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.3px;padding:10px;border-bottom:1px solid var(--line);white-space:nowrap;background:var(--brand-softer)}th:first-child{border-top-left-radius:10px}th:last-child{border-top-right-radius:10px}td{padding:9px;border-bottom:1px solid var(--line);vertical-align:top}tbody tr:hover td{background:#fafcfe}tr:last-child td{border-bottom:0}td.r,th.r{text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap}tfoot td{font-weight:700;background:var(--brand-softer);border-top:2px solid var(--line)}.empty{text-align:center;color:var(--muted);padding:28px}@media (max-width:760px){.table-wrap{margin:0 -14px;padding:0 14px}}@media (max-width:640px){.table-wrap.cards{margin:0;padding:0;overflow:visible}.table-wrap.cards thead{display:none}.table-wrap.cards tr{display:block;padding:10px 0;border-bottom:1px solid var(--line)}.table-wrap.cards tr:last-child{border-bottom:0}.table-wrap.cards tbody tr:hover td{background:none}.table-wrap.cards td{display:flex;justify-content:space-between;gap:12px;padding:3px 0;border:0;text-align:right}.table-wrap.cards td:before{content:attr(data-label);color:var(--muted);font-size:13px;text-align:left;flex-shrink:0}.table-wrap.cards td:not([data-label]):before{content:none}.table-wrap.cards td.empty{justify-content:center}.table-wrap.cards tfoot{display:block}.table-wrap.cards tfoot tr{background:var(--brand-softer);border-radius:10px;padding:10px}.table-wrap.cards tfoot td{background:none;border:0}}.badge{display:inline-flex;align-items:center;gap:4px;padding:2px 9px;border-radius:999px;font-size:12px;font-weight:600;white-space:nowrap;background:var(--brand-soft);color:var(--brand-dark)}.badge.PENDING{background:var(--warn-soft);color:var(--warn)}.badge.ACTIVE,.badge.APPROVED{background:var(--ok-soft);color:var(--ok)}.badge.PAID{background:var(--brand-soft);color:#0a6f96}.badge.CANCELLED,.badge.LOCKED,.badge.REJECTED{background:var(--bad-soft);color:var(--bad)}.badge.gray{background:#eef2f6;color:var(--muted)}label{display:block;font-size:var(--fs-sm);font-weight:600;margin-bottom:4px;color:var(--brand-dark)}input,select,textarea{width:100%;font:inherit;font-size:16px;padding:9px 11px;border:1px solid #cfdbe5;border-radius:10px;background:#fff;color:var(--ink)}@media (min-width:1024px){input,select,textarea{font-size:14px;padding:8px 10px}}input::placeholder,textarea::placeholder{color:#a7b6c2}input:focus,select:focus,textarea:focus{outline:3px solid rgba(38,181,233,.25);outline-offset:0;border-color:var(--brand)}input[type=file]{padding:8px;font-size:14px}input.compact,select.compact{padding:7px 9px;font-size:14px;width:auto;min-width:70px;border-radius:9px}.field{margin-bottom:12px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;background:var(--brand);color:#fff;border:0;border-radius:10px;padding:8px 14px;font:inherit;font-weight:600;font-size:var(--fs);cursor:pointer;text-decoration:none;white-space:nowrap;touch-action:manipulation;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:background .15s,transform .1s;min-height:38px}.btn:hover{background:var(--brand-600)}.btn:active{transform:scale(.98)}.btn.dark{background:var(--brand-dark)}.btn.dark:hover{background:var(--brand-ink)}.btn.ghost{background:#fff;color:var(--brand-dark);border:1px solid #cfdbe5}.btn.ghost:hover{background:var(--brand-softer)}.btn.danger{background:#fff;color:var(--bad);border:1px solid #f3c2c2}.btn.sm{padding:5px 10px;font-size:var(--fs-sm);border-radius:8px;min-height:30px}.btn.block{width:100%}.alert{padding:11px 14px;border-radius:12px;margin-bottom:14px;font-size:14px}.alert.err{background:var(--bad-soft);color:var(--bad)}.alert.ok{background:var(--ok-soft);color:var(--ok)}.alert.info{background:var(--brand-soft);color:var(--brand-dark)}.alert.warn{background:var(--warn-soft);color:var(--warn)}.segmented{display:inline-flex;background:#e9f0f5;border-radius:12px;padding:3px;gap:2px;overflow-x:auto;max-width:100%;scrollbar-width:none}.segmented::-webkit-scrollbar{display:none}.segmented a{padding:6px 10px;border-radius:8px;font-size:var(--fs-sm);font-weight:600;color:var(--muted);text-decoration:none;white-space:nowrap}.segmented a.on{background:#fff;color:var(--brand-dark);box-shadow:0 1px 3px rgba(11,53,86,.12)}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:16px;overflow-x:auto;scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}.tabs a{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;font-size:var(--fs);font-weight:600;color:var(--muted);text-decoration:none;border-bottom:2px solid transparent;white-space:nowrap;margin-bottom:-1px}.tabs a.on{color:var(--brand-600);border-bottom-color:var(--brand)}.auth{min-height:100dvh;display:grid;place-items:center;padding:24px 16px;background:radial-gradient(1200px 500px at 10% -10%,#cdeefb,transparent 60%),radial-gradient(800px 400px at 110% 110%,#d9f1fb,transparent 60%),var(--bg)}.auth .card{width:100%;max-width:440px;padding:28px 24px}.auth .brand{text-align:center;margin-bottom:18px}.auth .brand .logo{color:var(--brand-dark);font-size:22px;font-weight:800}.bars{align-items:flex-end;gap:6px;height:160px;padding-top:8px}.bar,.bars{display:flex}.bar{flex:1 1;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;min-width:0}.bar .fill{width:100%;max-width:42px;background:linear-gradient(180deg,#4cc6f0,var(--brand));border-radius:7px 7px 3px 3px;min-height:2px}.bar .lbl{color:var(--muted);margin-top:4px}.bar .lbl,.bar .val{font-size:11px;white-space:nowrap}.bar .val{color:var(--brand-dark);margin-bottom:2px;font-weight:600}.chart{width:100%;height:auto;display:block;overflow:visible}.chart text{font-size:11px;fill:var(--muted);font-family:inherit}.legend{display:flex;gap:14px;flex-wrap:wrap;font-size:12px;color:var(--muted)}.legend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:5px;vertical-align:-1px}.hbar{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-gap:4px 10px;gap:4px 10px;align-items:center;font-size:13px}.hbar-track{grid-column:1/-1;height:8px;background:#edf3f7;border-radius:6px;overflow:hidden;margin-bottom:8px}.hbar-fill{height:100%;background:var(--brand);border-radius:6px}.funnel{display:flex;flex-direction:column;gap:8px}.funnel-step{gap:10px}.funnel-bar,.funnel-step{display:flex;align-items:center}.funnel-bar{height:36px;border-radius:10px;background:linear-gradient(90deg,var(--brand),#6fd0f2);color:#fff;padding:0 12px;font-weight:700;font-size:14px;min-width:64px}.funnel-label{font-size:13px;color:var(--muted)}.share{display:flex;gap:8px}.share input{font-size:14px;background:var(--brand-softer);border-color:#cbe9f6;min-width:0}.codebox{font-size:26px;font-weight:800;letter-spacing:2px;color:var(--brand-dark)}.tree{list-style:none;padding:0;margin:0}.tree li{padding:10px 0;border-bottom:1px dashed var(--line)}.tree li:last-child{border-bottom:0}.tree .sub{list-style:none;margin:8px 0 0 18px;padding-left:12px;border-left:2px solid var(--brand-soft)}.tree .sub li{padding:6px 0}.tree .node{display:flex;justify-content:space-between;gap:8px}.tree .node>:last-child{flex-shrink:0}details summary{cursor:pointer;color:var(--brand-dark);font-weight:600}.filters{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;margin-bottom:14px}.filters>div{min-width:140px}@media (max-width:640px){.filters>div{flex:1 1 100%}.filters .btn{flex:1 1}}.hero{border-radius:18px;padding:var(--pad) calc(var(--pad) + 2px);color:#fff;position:relative;overflow:hidden;background:radial-gradient(500px 220px at 100% 0,rgba(38,181,233,.55),transparent 70%),linear-gradient(135deg,var(--brand-dark),#12507e);box-shadow:0 10px 30px rgba(11,53,86,.18)}.hero h1{color:#fff;font-size:18px}.hero .muted{color:#bfe3f4}.hero-amount{font-size:clamp(24px,1.6vw + 14px,30px);font-weight:800;letter-spacing:-.5px;margin:6px 0 2px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.hero-row{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:8px;gap:8px;margin-top:16px}.hero-row div{background:rgba(255,255,255,.1);border-radius:12px;padding:10px}.hero-row span{display:block;font-size:12px;color:#bfe3f4}.hero-row strong{font-size:var(--fs);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}@media (max-width:420px){.hero-amount{font-size:28px}.hero-row strong{font-size:13px}}.rank-list{list-style:none;margin:0;padding:0}.rank-list li{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--line)}.rank-list li:last-child{border-bottom:0}.rank-list li.me{background:var(--brand-softer);margin:0 -10px;padding:10px;border-radius:12px;border-bottom:0}.rank-no{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;font-weight:800;font-size:13px;background:#eef2f6;color:var(--muted);flex-shrink:0}.rank-no.r1{background:#fff4d6;color:var(--gold)}.rank-no.r2{background:#eef1f5;color:#64748b}.rank-no.r3{background:#fbebdf;color:var(--bronze)}.rank-name{flex:1 1;min-width:0}.rank-name strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:var(--fs-sm)}.rank-name span{font-size:12px;color:var(--muted)}.rank-val{font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--brand-dark);white-space:nowrap}.podium{display:grid;grid-template-columns:1fr 1.1fr 1fr;grid-gap:10px;gap:10px;align-items:end;margin-bottom:14px}.podium>div{text-align:center;background:var(--brand-softer);border-radius:16px;padding:14px 8px;min-width:0}.podium>div.p1{background:linear-gradient(180deg,#fff6dc,#fff);padding-top:22px;border:1px solid #f6e3a8}.podium .avatar{margin:0 auto 6px}.podium strong{display:block;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.podium .rank-val{font-size:13px}.progress{height:10px;border-radius:999px;background:#e9f0f5;overflow:hidden}.progress>span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--brand),#5fd0f5)}.progress.done>span{background:linear-gradient(90deg,#16a34a,#4ade80)}.contest-card{padding:0;overflow:hidden}.contest-banner{background:linear-gradient(135deg,#0b3556,#1a77a8);position:relative}.contest-banner.no-img{height:clamp(80px,8vw,110px)}.contest-banner .badge{position:absolute;top:12px;left:12px}.contest-body{padding:var(--pad)}.reward-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));grid-gap:10px;gap:10px}.reward{border:1px solid var(--line);border-radius:14px;padding:10px;background:#fff;display:flex;flex-direction:column;gap:6px;position:relative}.reward.got{border-color:#9be3b8;background:#f3fcf6}.reward-img{border-radius:10px;background:var(--brand-softer);color:var(--brand);overflow:hidden}.reward-img.no-img{aspect-ratio:16/9;display:grid;place-items:center}.reward-name{font-weight:700;font-size:var(--fs-sm);line-height:1.3}.reward-meta{font-size:12px;color:var(--muted)}.product-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(clamp(150px,13vw,200px),1fr));grid-gap:var(--gap);gap:var(--gap)}@media (max-width:520px){.product-grid{grid-template-columns:1fr 1fr;gap:10px}}.product-card{display:flex;flex-direction:column;padding:0;overflow:hidden}.product-img{background:#fff;color:var(--brand);position:relative}.product-img.no-img{aspect-ratio:4/3;background:var(--brand-softer);display:grid;place-items:center}.product-rate{position:absolute;top:8px;left:8px;background:var(--brand-dark);color:#fff;font-weight:800;font-size:12px;padding:3px 8px;border-radius:8px}.product-body{padding:12px;display:flex;flex-direction:column;gap:6px;flex:1 1}.product-name{line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.product-earn,.product-name{font-weight:600;font-size:var(--fs-sm)}.product-earn{color:var(--ok)}.qr-box{display:grid;place-items:center;padding:12px;background:#fff;border-radius:14px;border:1px solid var(--line)}.qr-box svg{width:200px;height:200px}.empty-state{display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;padding:28px 12px}.empty-icon{width:52px;height:52px;border-radius:16px;background:var(--brand-soft);color:var(--brand-600);display:grid;place-items:center;margin-bottom:4px}.task-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.task-list a{display:flex;align-items:center;gap:10px;padding:10px;border-radius:12px;background:var(--brand-softer);text-decoration:none;color:var(--ink)}.task-list a:hover{background:var(--brand-soft)}.task-list .ti{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:#fff;color:var(--brand-600);flex-shrink:0}.task-list .ti.warn{color:var(--warn)}.task-list strong{display:block;font-size:var(--fs-sm)}.task-list span{font-size:12px;color:var(--muted)}.task-list .go{margin-left:auto;color:var(--muted)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.combo-bar{min-width:0}.main{overflow-x:clip}@media (min-width:641px){.table-wrap td:first-child{min-width:170px}}.contest-art{position:absolute;right:18px;bottom:10px;color:rgba(255,255,255,.22)}.contest-banner:after{content:"";position:absolute;inset:0;background:radial-gradient(300px 140px at 85% 20%,rgba(38,181,233,.45),transparent 70%);pointer-events:none}.mini-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:8px;gap:8px}.mini-stats>div{background:var(--brand-softer);border-radius:12px;padding:10px;min-width:0}.mini-stats>div.ok{background:var(--ok-soft)}.mini-stats .small{font-size:12px}.mini-val{font-size:clamp(15px,.6vw + 11px,18px);font-weight:800;color:var(--brand-dark);line-height:1.25;word-break:break-word}.mini-val.sm{font-size:13px;font-weight:700}.mini-stats>div.ok .mini-val{color:var(--ok)}@media (max-width:420px){.mini-val{font-size:15px}.mini-val.sm{font-size:12px}}.check{display:flex;gap:8px;align-items:flex-start;font-weight:500;margin-bottom:6px}.check input{width:auto;margin-top:3px;flex-shrink:0}.rev-status{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:10px;gap:10px}@media (max-width:640px){.rev-status{grid-template-columns:1fr}}.rev-item{border-radius:14px;padding:14px;background:var(--brand-softer);border:1px solid var(--line);min-width:0}.rev-head{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:var(--muted)}.rev-icon{width:26px;height:26px;border-radius:8px;display:grid;place-items:center;background:#fff}.rev-item.warn .rev-icon{color:var(--warn)}.rev-item.ok{background:var(--ok-soft);border-color:#c9ecd6}.rev-item.ok .rev-icon{color:var(--ok)}.rev-item.bad .rev-icon{color:var(--bad)}.rev-value{font-size:clamp(16px,.8vw + 10px,20px);font-weight:800;color:var(--brand-dark);margin-top:6px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.rev-item.ok .rev-value{color:#0e7a3c}.rev-meta{font-size:13px;font-weight:600;color:var(--ink)}.rev-hint{font-size:12px;color:var(--muted);margin-top:2px}@media (max-width:640px){.rev-item{display:grid;grid-template-columns:1fr auto;grid-column-gap:8px;column-gap:8px}.rev-value{font-size:18px;margin:0;grid-row:1/3;grid-column:2;align-self:center;text-align:right}.rev-hint{grid-column:1/-1}}.promo{background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden;box-shadow:var(--shadow);display:flex;flex-direction:column;min-width:0}.promo-banner{position:relative;background:linear-gradient(135deg,#0b3556,#1a77a8 60%,#26b5e9)}.promo-banner.no-img{aspect-ratio:3/1;max-height:150px;width:100%}.promo-art{position:absolute;right:18px;bottom:12px;color:rgba(255,255,255,.3)}.promo-tags{position:absolute;top:10px;left:10px;right:10px;display:flex;gap:6px;flex-wrap:wrap}.promo-body{padding:14px 16px 16px;display:flex;flex-direction:column;gap:8px;flex:1 1}.promo-title{font-size:clamp(14px,.4vw + 11.5px,16px);margin:0;color:var(--brand-dark);line-height:1.35}.promo-content{font-size:var(--fs-sm);white-space:pre-line;color:var(--ink);display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;overflow:hidden}.promo-code{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;border:1.5px dashed #9fd9f1;border-radius:12px;background:var(--brand-softer);font-size:14px}.promo-code strong{letter-spacing:1px;color:var(--brand-dark)}.promo-actions{display:grid;grid-template-columns:1fr 1fr;grid-gap:6px;gap:6px;margin-top:auto}.promo-actions>a{grid-column:1/-1}.promo-actions .btn{padding-inline:6px}.promo-rail{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(260px,1fr);grid-gap:14px;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:4px;scrollbar-width:thin}.promo-rail>*{scroll-snap-align:start}@media (max-width:640px){.promo-rail{grid-auto-columns:88%;margin:0 -16px;padding:0 16px 4px}}.section-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-bottom:10px}.section-head h2{margin:0}.quick-actions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:var(--gap);gap:var(--gap);margin-top:var(--gap)}.quick-actions .qa{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;padding:10px 6px;min-height:76px;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);font:inherit;font-size:var(--fs-sm);font-weight:600;color:var(--brand-dark);text-decoration:none;cursor:pointer;text-align:center;touch-action:manipulation;transition:transform .12s,box-shadow .15s}.quick-actions .qa:hover{box-shadow:0 6px 18px rgba(11,53,86,.1)}.quick-actions .qa:active{transform:scale(.97)}.quick-actions .qa svg{width:22px;height:22px}.quick-actions .qa>svg{padding:8px;background:var(--brand-soft);color:var(--brand-600)}.qa-icon,.quick-actions .qa>svg{width:36px;height:36px;border-radius:12px}.qa-icon{display:grid;place-items:center;background:var(--brand-dark);color:#fff}@media (max-width:420px){.quick-actions{gap:8px}.quick-actions .qa{font-size:12px;min-height:80px}}.honor{background:radial-gradient(420px 180px at 100% 0,#fff4d6,transparent 70%),#fff}.honor h2{display:flex;align-items:center;gap:6px}.honor h2 svg{color:var(--gold)}.honor-foot{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center;justify-content:space-between;border-top:1px dashed var(--line);margin-top:10px;padding-top:10px}.steps{list-style:none;counter-reset:s;margin:0;padding:0;display:flex;flex-direction:column;gap:14px}.steps li{counter-increment:s;position:relative;padding-left:44px}.steps li:before{content:counter(s);position:absolute;left:0;top:-2px;width:30px;height:30px;border-radius:50%;background:var(--brand-dark);color:#fff;display:grid;place-items:center;font-weight:700;font-size:14px}.steps li p{margin:2px 0 8px}.auth2{position:relative;isolation:isolate;overflow:hidden;min-height:100dvh;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(360px,440px);grid-template-areas:"hero form";grid-gap:0 56px;gap:0 56px;padding:56px max(32px,6vw);align-items:center;color:#fff;background:#0b3556}.auth2-bg{position:absolute;inset:0;width:100%;height:100%;z-index:-1}.auth2-hero{grid-area:hero}.auth2-form{grid-area:form}.auth2-more{grid-area:more;display:grid;grid-template-columns:1fr 1fr;grid-gap:14px;gap:14px;margin-top:28px}.auth2-more>.auth2-block:last-child{grid-column:1/-1}.auth2-rules{margin:0;padding-left:18px;font-size:14px;display:grid;grid-gap:6px;gap:6px}.auth2-brand{display:flex;align-items:center;gap:10px;font-weight:700;font-size:16px;margin-bottom:28px}.auth2-brand b{color:var(--brand)}.auth2-title{text-wrap:balance;font-size:clamp(26px,3.2vw,44px);line-height:1.12;color:#fff;letter-spacing:-1px;margin:0 0 14px}.auth2-title span{color:var(--brand)}.auth2-sub{color:#c6e4f3;font-size:clamp(14px,.3vw + 12px,15px);max-width:560px;margin-bottom:24px}.auth2-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:10px;gap:10px;max-width:620px}.auth2-stats>div{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);border-radius:16px;padding:14px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.auth2-stats strong{display:block;white-space:nowrap;font-size:clamp(17px,1.6vw,22px);font-weight:800;color:#fff;letter-spacing:-.5px}.auth2-stats span{font-size:12px;color:#b5d9ec}.auth2-why{display:grid;grid-gap:12px;gap:12px;margin-top:24px;max-width:620px}.auth2-why-item{display:flex;gap:12px;align-items:flex-start}.auth2-why-item strong{color:#fff;font-size:var(--fs)}.auth2-why-item p{margin:2px 0 0;color:#b5d9ec;font-size:var(--fs-sm)}.auth2-ico{width:36px;height:36px;border-radius:11px;background:rgba(38,181,233,.22);color:#8fdcf7;display:grid;place-items:center;flex-shrink:0}.auth2-block{background:rgba(255,255,255,.96);color:var(--ink);border-radius:18px;padding:18px}.auth2-block h2{margin-bottom:12px}.auth2-policy{list-style:none;margin:0;padding:0}.auth2-policy li{display:flex;justify-content:space-between;gap:8px;padding:8px 0;border-bottom:1px solid var(--line);font-size:14px}.auth2-policy li:last-child{border-bottom:0}.auth2-policy strong{color:var(--brand-600)}.auth2-form .card{padding:26px 22px;box-shadow:0 20px 60px rgba(0,0,0,.25);border:0;color:var(--ink)}.auth2-form h2.form-title{font-size:22px;margin:0 0 4px}@media (max-width:960px){.auth2{grid-template-columns:1fr;grid-template-areas:"hero" "form";padding:24px 16px calc(32px + env(safe-area-inset-bottom));gap:0;align-items:start}.auth2-form{position:static;margin-top:22px}.auth2-more{grid-template-columns:1fr;margin-top:16px}.auth2-brand{margin-bottom:18px}.auth2-sub{font-size:15px;margin-bottom:16px}.auth2-stats strong{font-size:20px}.auth2-stats>div{padding:10px}.auth2-why{display:none}}.auth-divider{display:flex;align-items:center;gap:10px;margin:18px 0 12px;color:var(--muted);font-size:13px}.auth-divider:after,.auth-divider:before{content:"";flex:1 1;height:1px;background:var(--line)}.honor-foot:empty{display:none}.stage-steps{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:3px;font-size:12px;color:var(--muted);position:relative}.stage-steps li{display:inline-flex;align-items:center;gap:4px;white-space:nowrap;position:relative}.stage-steps li+li:before{content:"";position:absolute;left:6px;top:-5px;width:2px;height:7px;background:var(--line)}.stage-steps li.done+li:before{background:var(--ok)}.stage-steps .dot{width:14px;height:14px;border-radius:50%;border:2px solid #cfdbe5;display:grid;place-items:center;background:#fff}.stage-steps li.done{color:var(--ok)}.stage-steps li.done .dot{background:var(--ok);border-color:var(--ok);color:#fff}.stage-steps li.now{color:var(--brand-dark);font-weight:700}.stage-steps li.now .dot{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}.goal-list{list-style:none;margin:0;padding:0;display:grid;grid-gap:12px;gap:12px}.goal-list li{padding:12px;border:1px solid var(--line);border-radius:14px;background:#fff}.goal-list li.done{background:var(--ok-soft);border-color:#c9ecd6}.goal-top{display:flex;justify-content:space-between;gap:8px;align-items:baseline;margin-bottom:8px;flex-wrap:wrap}.goal-state{font-size:13px}.goal-state b{color:var(--warn)}.goal-meta{font-size:12px;color:var(--muted);margin-top:6px}.brandlogo{display:inline-flex;align-items:center;gap:8px;line-height:1}.brandlogo img{height:var(--h);width:auto;display:block}.funnel-card{background:radial-gradient(600px 260px at 30% 0,rgba(38,181,233,.08),transparent 60%),radial-gradient(500px 260px at 100% 100%,rgba(124,92,255,.07),transparent 60%),#fff}.ai-funnel-insight{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;font-size:var(--fs-sm);color:var(--ink);margin-bottom:4px}.ai-chip{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;font-size:12px;font-weight:700;color:#1599cc;background:linear-gradient(90deg,rgba(38,181,233,.1),rgba(124,92,255,.1));border:1px solid rgba(38,181,233,.35)}.ai-chip svg{color:#7c5cff}.flowfunnel-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0 -6px}.flowfunnel{width:100%;min-width:660px;height:auto;display:block;font-family:inherit}.flowfunnel .ff-ch{fill:var(--brand-dark);font-size:15px;font-weight:700}.flowfunnel .ff-chv{fill:var(--muted);font-size:12px}.flowfunnel .ff-stl{fill:#1599cc;font-size:11px;font-weight:700;letter-spacing:.6px}.flowfunnel .ff-stv{fill:var(--brand-dark);font-size:22px;font-weight:800}.flowfunnel .ff-conv{fill:#1599cc;font-size:12px;font-weight:700}.flowfunnel .ff-tl{fill:#7fd6f5;font-size:11px;font-weight:700;letter-spacing:1.4px}.flowfunnel .ff-tv{fill:#fff;font-size:20px;font-weight:800}.flowfunnel .ff-ts{fill:#ffc20e;font-size:11px;font-weight:600}.flowfunnel .ff-tile.pulse rect{animation:ffPulse 5s ease-in-out infinite;transform-box:fill-box;transform-origin:center}@keyframes ffPulse{0%,70%,to{transform:scale(1)}80%{transform:scale(1.04)}}@media (prefers-reduced-motion:reduce){.flowfunnel .ff-tile.pulse rect{animation:none}}.funnel-legend{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:12px;color:var(--muted);margin-top:6px}.funnel-legend i{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:6px;vertical-align:0}.media{overflow:hidden}.media>img{display:block;width:100%;height:auto}:root{--z:1}@media (min-width:1500px) and (max-width:1679px){:root{--z:.95}}@media (min-width:1380px) and (max-width:1499px){:root{--z:.9}}@media (min-width:1260px) and (max-width:1379px){:root{--z:.85}}@media (min-width:1140px) and (max-width:1259px){:root{--z:.8}}@media (min-width:1024px) and (max-width:1139px){:root{--z:.75}}@media (min-width:880px) and (max-width:1023px){:root{--z:.88}}@media (min-width:768px) and (max-width:879px){:root{--z:.82}}.auth2-form,.auth2-hero,.sidebar>*{zoom:var(--z)}.perm-checks{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));grid-gap:6px 14px;gap:6px 14px}.perm-checks label{display:flex;gap:8px;align-items:flex-start;font-size:calc(var(--fs) * .9);font-weight:400;cursor:pointer;margin:0}.perm-checks input[type=checkbox]{width:16px;height:16px;flex:none;margin-top:2px;accent-color:var(--brand)}.forgot{margin:-4px 0 12px;text-align:right}.forgot a{font-weight:600;color:var(--brand-600);text-decoration:none}.move-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;padding-block:10px}.avatar{overflow:hidden}.avatar img{width:100%;height:100%;object-fit:cover;display:block}.profile-card{display:flex;gap:16px;align-items:flex-start}.profile-info{flex:1 1;min-width:0}@media (max-width:520px){.profile-card{flex-direction:column;align-items:center;text-align:center}.profile-card .row{justify-content:center}}.pick-list{list-style:none;margin:0;padding:0;border:1px solid var(--line);border-radius:10px}.pick-list li+li{border-top:1px solid var(--line)}.pick-list label{display:flex;gap:10px;align-items:flex-start;padding:8px 10px;cursor:pointer;font-size:calc(var(--fs)*.93)}.pick-list label:hover{background:var(--brand-softer)}.pick-list input[type=checkbox]{width:auto;flex:none;margin-top:3px}@keyframes pulse-ring{0%{box-shadow:0 0 0 0 rgba(217,45,45,.55)}70%{box-shadow:0 0 0 9px rgba(217,45,45,0)}to{box-shadow:0 0 0 0 rgba(217,45,45,0)}}@keyframes blink-soft{0%,to{background:var(--warn-soft)}50%{background:#fbe2b5}}.pulse-dot{display:inline-block;width:10px;height:10px;border-radius:50%;background:var(--bad);flex-shrink:0;animation:pulse-ring 1.4s ease-out infinite;vertical-align:middle}.nav-badge{margin-left:auto;min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:var(--bad);color:#fff;font-size:11px;font-weight:700;display:inline-grid;place-items:center;animation:pulse-ring 1.4s ease-out infinite}.bottom-nav a{position:relative}.bottom-nav .nav-badge{position:absolute;top:2px;left:calc(50% + 6px);margin:0;min-width:18px;height:18px;font-size:10px}.pending-alert{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--warn);background:var(--warn-soft);border:1px solid #f3d29a;animation:blink-soft 1.6s ease-in-out infinite}.pending-alert .btn{margin-left:auto}.task-list a.task-hot{background:var(--warn-soft);box-shadow:inset 0 0 0 1px #f3d29a;animation:blink-soft 1.6s ease-in-out infinite}.task-list a.task-hot .ti{animation:pulse-ring 1.4s ease-out infinite;color:var(--bad)}.pending-card{border:1px solid #f3d29a;margin-bottom:var(--gap)}.pending-card h2{display:flex;align-items:center;gap:8px}.pending-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.pending-list li{display:flex;align-items:center;gap:12px;padding:10px;border-radius:12px;background:var(--brand-softer);flex-wrap:wrap}.pending-who{flex:1 1;min-width:200px;display:flex;flex-direction:column;gap:2px}.pending-who strong{display:flex;align-items:center;gap:6px}.pending-who span{font-size:12px;color:var(--muted);overflow-wrap:anywhere}.pending-actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.pending-actions select{width:auto;max-width:200px}.danger-text{color:var(--bad)}.new-badge{background:var(--bad);color:#fff;animation:pulse-ring 1.4s ease-out infinite}.live-toast{position:fixed;right:20px;bottom:20px;z-index:50;display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:14px;background:#fff;box-shadow:0 10px 30px rgba(11,53,86,.18);border:1px solid #f3d29a;font-size:14px;max-width:calc(100vw - 32px)}@media (max-width:900px){.live-toast{right:16px;left:16px;bottom:84px}}@media (prefers-reduced-motion:reduce){.nav-badge,.new-badge,.pending-alert,.pulse-dot,.task-list a.task-hot,.task-list a.task-hot .ti{animation:none}}.passkey-login{margin-top:10px}.passkey-card .btn,.passkey-login .btn,.passkey-prompt .btn{display:inline-flex;align-items:center;justify-content:center;gap:8px}.passkey-prompt{display:flex;gap:12px;align-items:flex-start;margin-bottom:var(--gap);border:1px solid var(--brand-soft)}.passkey-icon{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:var(--brand-soft);color:var(--brand-600);flex-shrink:0}.device-list{list-style:none;margin:0 0 12px;padding:0;display:flex;flex-direction:column;gap:8px}.device-list li{display:flex;align-items:center;gap:10px;padding:10px;border-radius:12px;background:var(--brand-softer)}.device-list li>div{flex:1 1;min-width:0;display:flex;flex-direction:column}.device-list li span{font-size:12px;color:var(--muted)}.bank-confirm{margin:4px 0 14px;padding:12px;border-radius:12px;background:var(--warn-soft)}.tpl-layout{display:grid;grid-template-columns:260px 1fr;grid-gap:var(--gap);gap:var(--gap);align-items:start}@media (max-width:900px){.tpl-layout{grid-template-columns:1fr}}.tpl-list{padding:8px}.tpl-list,.tpl-list a{display:flex;flex-direction:column;gap:4px}.tpl-list a{padding:10px 12px;border-radius:10px;text-decoration:none;color:var(--ink)}.tpl-list a:hover{background:var(--brand-softer)}.tpl-list a.on{background:var(--brand-soft);box-shadow:inset 3px 0 0 var(--brand)}.tpl-list a>span{display:flex;gap:4px;flex-wrap:wrap}.var-chips{display:flex;flex-wrap:wrap;gap:6px}.var-chip{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;border:1px solid var(--line);background:#fff;cursor:pointer;font:inherit;font-size:12px;color:var(--ink);width:auto}.var-chip:hover{border-color:var(--brand);background:var(--brand-softer)}.var-chip code{color:var(--brand-600);font-weight:700}.var-chip span{color:var(--muted)}.tpl-preview{width:100%;height:520px;border:1px solid var(--line);border-radius:12px;background:#f2f7fb}