:root{--bg:#f6f4ee;--bg-2:#eeebe2;--surface:#fff;--surface-2:#fbfaf6;--ink:#111a2e;--ink-2:#4b5568;--ink-3:#8a93a6;--line:#e7e3d7;--line-2:#f0ede4;--brand:#1b2a5c;--brand-2:#2f4a9e;--brand-soft:#e8ecf8;--on-brand:#fff;--accent:#c9973a;--accent-soft:#f8efd9;--good:#14805e;--good-soft:#dcf3ea;--bad:#c2410c;--bad-soft:#fde8dc;--info:#1d4ed8;--shadow-1:0 1px 2px #111a2e0d, 0 1px 1px #111a2e08;--shadow-2:0 10px 30px -12px #111a2e2e, 0 2px 6px #111a2e0d;--shadow-3:0 30px 60px -20px #111a2e4d;--ring:0 0 0 3px #2f4a9e38;--radius:16px;--radius-sm:10px;--sidebar:268px;--font-body:"Plus Jakarta Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-display:"Fraunces", "Georgia", serif;--ease:cubic-bezier(.22, 1, .36, 1);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--bg:#090e1d;--bg-2:#0e1528;--surface:#121a31;--surface-2:#17203b;--ink:#edf0f8;--ink-2:#aab3c7;--ink-3:#6f7a92;--line:#222c48;--line-2:#1a2340;--brand:#8fa8f5;--brand-2:#b3c3fa;--brand-soft:#1b2748;--on-brand:#0a1128;--accent:#e3b862;--accent-soft:#2b2617;--good:#4ade9f;--good-soft:#10302a;--bad:#fb923c;--bad-soft:#35201a;--info:#7aa2ff;--shadow-1:0 1px 2px #0006;--shadow-2:0 14px 34px -14px #000000b3, 0 2px 6px #0000004d;--shadow-3:0 30px 60px -20px #000c;--ring:0 0 0 3px #8fa8f547;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:after,:before{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{font-family:var(--font-body);color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;transition:background-color .45s var(--ease),color .45s var(--ease);margin:0;font-size:15px;line-height:1.55;overflow-x:hidden}h1,h2,h3,h4{letter-spacing:-.01em;margin:0;font-weight:600;line-height:1.2}.display,h1,h2{font-family:var(--font-display);letter-spacing:-.02em;font-weight:600}p{margin:0}a{text-decoration:none}a,button{color:inherit}button{font:inherit}::selection{background:var(--accent);color:#1a1405}:focus-visible{outline:2px solid var(--brand-2);outline-offset:2px;border-radius:6px}.num{font-variant-numeric:tabular-nums}.muted{color:var(--ink-2)}.faint{color:var(--ink-3)}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}@keyframes fadeUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes pop{0%{opacity:0;transform:scale(.94)translateY(8px)}to{opacity:1;transform:none}}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes float{0%,to{transform:translateZ(0)scale(1)}50%{transform:translate(30px,-40px)scale(1.08)}}@keyframes spin{to{transform:rotate(1turn)}}@keyframes growX{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes pulseDot{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--good) 50%,transparent)}to{box-shadow:0 0 0 10px #0000}}.reveal{opacity:0;transition:opacity .7s var(--ease),transform .7s var(--ease);transition-delay:var(--d,0s);transform:translateY(18px)}.reveal.in{opacity:1;transform:none}.page-enter-active,.page-leave-active{transition:opacity .28s var(--ease),transform .28s var(--ease)}.page-enter-from{opacity:0;transform:translateY(14px)}.page-leave-to{opacity:0;transform:translateY(-8px)}@media (prefers-reduced-motion:reduce){*,:after,:before{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.reveal{opacity:1;transform:none}}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-1);transition:transform .35s var(--ease),box-shadow .35s var(--ease),border-color .3s,background-color .45s var(--ease);padding:22px}.card.hover:hover{box-shadow:var(--shadow-2);border-color:color-mix(in srgb,var(--brand) 25%,var(--line));transform:translateY(-3px)}.card-title{color:var(--ink-2);text-transform:uppercase;letter-spacing:.08em;font-size:13px;font-weight:600}.btn{border:1px solid var(--line);background:var(--surface);height:42px;color:var(--ink);cursor:pointer;transition:transform .2s var(--ease),background-color .2s,border-color .2s,box-shadow .25s,opacity .2s;white-space:nowrap;border-radius:12px;justify-content:center;align-items:center;gap:8px;padding:0 18px;font-size:14px;font-weight:600;display:inline-flex}.btn:hover{box-shadow:var(--shadow-1);border-color:color-mix(in srgb,var(--brand) 30%,var(--line));transform:translateY(-1px)}.btn:active{transform:translateY(0)scale(.98)}.btn[disabled]{opacity:.55;pointer-events:none}.btn.primary{background:var(--brand);color:var(--on-brand);box-shadow:0 6px 18px -8px var(--brand);border-color:#0000}.btn.primary:hover{background:var(--brand-2);box-shadow:0 10px 24px -10px var(--brand-2)}:root[data-theme=dark] .btn.primary{box-shadow:0 6px 22px -10px var(--brand)}.btn.ghost{background:0 0;border-color:#0000}.btn.ghost:hover{background:var(--brand-soft);box-shadow:none}.btn.danger{color:var(--bad)}.btn.danger:hover{background:var(--bad-soft);border-color:#0000}.btn.sm{border-radius:10px;height:34px;padding:0 12px;font-size:13px}.btn.icon{width:40px;padding:0}.btn.sm.icon{width:34px}.spinner{border:2px solid;border-right-color:#0000;border-radius:50%;width:16px;height:16px;animation:.7s linear infinite spin}.field{gap:6px;display:grid}.field>label,.label{color:var(--ink-2);font-size:13px;font-weight:600}.input,.select{border:1px solid var(--line);background:var(--surface-2);width:100%;height:44px;color:var(--ink);font:inherit;border-radius:12px;padding:0 14px;font-size:15px;transition:border-color .2s,box-shadow .2s,background-color .3s}.input::placeholder{color:var(--ink-3)}.input:hover,.select:hover{border-color:color-mix(in srgb,var(--brand) 35%,var(--line))}.input:focus,.select:focus{border-color:var(--brand-2);box-shadow:var(--ring);background:var(--surface);outline:none}.select{appearance:none;cursor:pointer;background-image:url(data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2216%22%20fill%3D%22none%22%20stroke%3D%22%238a93a6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20stroke-width%3D%222.4%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cpath%20d%3D%22m6%209%206%206%206-6%22%2F%3E%3C%2Fsvg%3E);background-position:right 12px center;background-repeat:no-repeat;padding-right:38px}.hint{color:var(--ink-3);font-size:12.5px}.err{color:var(--bad);font-size:13px}.switch{flex:none;width:44px;height:26px;display:inline-block;position:relative}.switch input{opacity:0;cursor:pointer;z-index:1;margin:0}.switch i,.switch input{position:absolute;inset:0}.switch i{background:var(--line);border-radius:99px;transition:background-color .25s}.switch i:after{content:"";width:20px;height:20px;transition:transform .3s var(--ease);background:#fff;border-radius:50%;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #0000004d}.switch input:checked+i{background:var(--good)}.switch input:checked+i:after{transform:translate(18px)}.chip{background:var(--brand-soft);color:var(--brand);white-space:nowrap;border-radius:99px;align-items:center;gap:6px;padding:4px 11px;font-size:12.5px;font-weight:600;display:inline-flex}.chip.gold{background:var(--accent-soft);color:color-mix(in srgb,var(--accent) 80%,#000)}:root[data-theme=dark] .chip.gold{color:var(--accent)}.chip.good{background:var(--good-soft);color:var(--good)}.chip.bad{background:var(--bad-soft);color:var(--bad)}.chip.plain{background:var(--bg-2);color:var(--ink-2)}.dot{background:var(--good);border-radius:50%;width:8px;height:8px;animation:1.8s infinite pulseDot}.seg{background:var(--bg-2);border-radius:13px;gap:2px;padding:4px;display:inline-flex}.seg,.seg button{position:relative}.seg button{white-space:nowrap;z-index:1;color:var(--ink-2);cursor:pointer;transition:color .2s,background-color .3s var(--ease),box-shadow .3s;background:0 0;border:0;border-radius:10px;padding:7px 16px;font-size:13.5px;font-weight:600}.seg button.on,.seg button:hover{color:var(--ink)}.seg button.on{background:var(--surface);box-shadow:var(--shadow-1)}.table-wrap{border-radius:var(--radius-sm);overflow-x:auto}table.t{border-collapse:separate;border-spacing:0;width:100%;font-size:14px}.t th{text-align:left;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);border-bottom:1px solid var(--line);white-space:nowrap;background:var(--surface);padding:10px 14px;font-size:12px;font-weight:700;position:sticky;top:0}.t td.r,.t th.r{text-align:right}.t td{border-bottom:1px solid var(--line-2);vertical-align:middle;padding:13px 14px}.t tbody tr{transition:background-color .18s}.t tbody tr:hover{background:var(--surface-2)}.t tbody tr.click{cursor:pointer}.t tbody tr:last-child td{border-bottom:0}.t th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.t th.sortable:hover{color:var(--ink)}.skel{background:linear-gradient(100deg,var(--line-2) 30%,var(--line) 50%,var(--line-2) 70%);background-size:200% 100%;border-radius:10px;animation:1.6s linear infinite shimmer}.avatar{width:38px;height:38px;color:var(--on-brand);background:linear-gradient(135deg,var(--brand),var(--brand-2));border-radius:50%;flex:none;place-items:center;font-size:14px;font-weight:700;display:grid}.avatar.sm{width:30px;height:30px;font-size:12px}.overlay{z-index:80;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#090e1d80;place-items:center;padding:16px;animation:.25s fadeIn;display:grid;position:fixed;inset:0}.modal{background:var(--surface);border:1px solid var(--line);width:min(560px,100%);max-height:calc(100dvh - 32px);box-shadow:var(--shadow-3);animation:pop .4s var(--ease);border-radius:20px;overflow:auto}.modal-head{justify-content:space-between;align-items:center;padding:22px 24px 4px;display:flex}.modal-body{gap:16px;padding:14px 24px 8px;display:grid}.modal-foot{justify-content:flex-end;gap:10px;padding:16px 24px 22px;display:flex}.toasts{z-index:100;gap:10px;width:min(360px,100vw - 32px);display:grid;position:fixed;bottom:16px;right:16px}.toast{background:var(--ink);color:var(--bg);box-shadow:var(--shadow-3);animation:pop .4s var(--ease);border-radius:14px;align-items:flex-start;gap:12px;padding:14px 16px;font-size:14px;display:flex}.toast.error{background:var(--bad);color:#fff}.toast.ok svg{color:#4ade9f}.toast-enter-active,.toast-leave-active{transition:all .35s var(--ease)}.toast-enter-from,.toast-leave-to{opacity:0;transform:translate(30px)}.shell{min-height:100dvh}.sidebar{width:var(--sidebar);z-index:50;background:var(--surface);border-right:1px solid var(--line);transition:transform .4s var(--ease),background-color .45s var(--ease);flex-direction:column;padding:22px 16px 16px;display:flex;position:fixed;inset:0 auto 0 0}.brand{align-items:center;gap:12px;padding:4px 10px 22px;display:flex}.brand-mark{width:40px;height:40px;transition:transform .6s var(--ease);flex:none}img.brand-mark{-o-object-fit:contain;object-fit:contain;border-radius:8px}.brand:hover .brand-mark{transform:rotate(120deg)}.brand b{font-family:var(--font-display);letter-spacing:-.02em;font-size:20px;line-height:1.1;display:block}.brand small{color:var(--ink-2);letter-spacing:.1em;text-transform:uppercase;font-size:11.5px}.nav{gap:2px;min-height:0;display:grid;overflow-y:auto}.nav-label{letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);padding:18px 12px 6px;font-size:11px;font-weight:700}.nav a{color:var(--ink-2);transition:background-color .2s,color .2s,transform .25s var(--ease);border-radius:12px;align-items:center;gap:12px;padding:9px 12px;font-size:14.5px;font-weight:600;display:flex;position:relative}.nav a:hover{background:var(--bg-2);color:var(--ink);transform:translate(3px)}.nav a.active,.nav a.router-link-exact-active{background:var(--brand-soft);color:var(--brand)}.nav a.active:before,.nav a.router-link-exact-active:before{content:"";background:var(--accent);border-radius:0 4px 4px 0;width:4px;position:absolute;top:10px;bottom:10px;left:-16px}.side-foot{border-top:1px solid var(--line);gap:10px;margin-top:auto;padding-top:14px;display:grid}.me{align-items:center;gap:11px;padding:6px 8px;display:flex}.me,.me>div{min-width:0}.me b{white-space:nowrap;text-overflow:ellipsis;font-size:14px;display:block;overflow:hidden}.me small{color:var(--ink-3);font-size:12px}.main{margin-left:var(--sidebar);flex-direction:column;min-height:100dvh;display:flex}.topbar{z-index:40;background:color-mix(in srgb,var(--bg) 82%,transparent);-webkit-backdrop-filter:blur(14px)saturate(1.4);backdrop-filter:blur(14px)saturate(1.4);border-bottom:1px solid #0000;align-items:center;gap:12px;height:68px;padding:0 32px;transition:border-color .3s,background-color .45s;display:flex;position:sticky;top:0}.topbar.scrolled{border-bottom-color:var(--line)}.topbar .grow{flex:1;min-width:0}.crumb{color:var(--ink-3);font-size:13px}.content{flex:1;width:100%;max-width:1360px;margin:0 auto;padding:12px 32px 64px}.menu-btn,.scrim{display:none}@media (width<=1023px){.sidebar{box-shadow:var(--shadow-3);transform:translate(-102%)}.sidebar.open{transform:none}.scrim{z-index:45;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#090e1d80;animation:.25s fadeIn;display:block;position:fixed;inset:0}.main{margin-left:0}.menu-btn{display:inline-flex}.topbar{padding:0 16px}.content{padding:8px 16px 48px}}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin:8px 0 24px;display:flex}.page-head h1{font-size:clamp(26px,4vw,38px)}.page-head p{color:var(--ink-2);max-width:62ch;margin-top:6px}.grid{gap:18px;display:grid}.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))}.row{align-items:center;gap:12px;display:flex}.row.wrap{flex-wrap:wrap}.spread{justify-content:space-between}.stack{gap:14px;display:grid}@media (width<=1100px){.g3,.g4{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=720px){.g2,.g3,.g4{grid-template-columns:minmax(0,1fr)}.card{padding:18px}}.bar-row{grid-template-columns:minmax(0,1fr);gap:7px;min-width:0;display:grid}.bar-top>.num{flex:none}.bar-row+.bar-row{margin-top:14px}.bar-top{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.bar-name{align-items:center;gap:9px;min-width:0;font-weight:600;display:flex}.bar-name span:last-child{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.swatch{border-radius:4px;flex:none;width:11px;height:11px}.bar-track{background:var(--bg-2);border-radius:99px;height:10px;overflow:hidden}.bar-fill{transform-origin:0;height:100%;animation:growX 1.1s var(--ease) both;animation-delay:var(--d,0s);border-radius:99px}.stackbar{background:var(--bg-2);border-radius:99px;min-width:90px;height:10px;display:flex;overflow:hidden}.stackbar i{height:100%;transition:flex-grow .6s var(--ease);display:block}.auth-bg{z-index:0;background:radial-gradient(1200px 700px at 15% -10%,color-mix(in srgb,var(--brand-2) 22%,transparent),transparent 60%),radial-gradient(900px 600px at 100% 100%,color-mix(in srgb,var(--accent) 22%,transparent),transparent 55%),var(--bg);position:fixed;inset:0;overflow:hidden}.orb{filter:blur(60px);opacity:.5;border-radius:50%;animation:14s ease-in-out infinite float;position:absolute}.orb.a{background:var(--brand-2);width:380px;height:380px;top:8%;left:-100px}.orb.b{background:var(--accent);width:320px;height:320px;animation-delay:-6s;bottom:6%;right:-60px}.orb.c{opacity:.28;background:#3aa6a0;width:220px;height:220px;animation-duration:18s;animation-delay:-3s;top:-80px;left:46%}.auth-wrap{z-index:1;grid-template-columns:1.1fr 1fr;align-items:center;gap:48px;max-width:1180px;min-height:100dvh;margin:0 auto;padding:32px 24px;display:grid;position:relative}.auth-hero h1{margin:22px 0 16px;font-size:clamp(34px,5.4vw,60px);line-height:1.04}.auth-hero h1 em{color:var(--accent);font-style:italic}.auth-hero p{color:var(--ink-2);max-width:46ch;font-size:17px}.auth-card{box-shadow:var(--shadow-3);background:color-mix(in srgb,var(--surface) 88%,transparent);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);animation:fadeUp .9s var(--ease) both;border-radius:24px;padding:34px;animation-delay:.15s}.feature-list{gap:12px;margin-top:30px;display:grid}.feature-list div{color:var(--ink-2);animation:fadeUp .8s var(--ease) both;align-items:center;gap:12px;font-weight:500;display:flex}.feature-list svg{color:var(--accent);flex:none}@media (width<=900px){.auth-wrap{grid-template-columns:1fr;gap:24px;padding-top:72px}.auth-hero p,.feature-list{display:none}.auth-hero h1{margin:14px 0 0;font-size:34px}}.empty{text-align:center;color:var(--ink-2);padding:48px 16px}.empty svg{color:var(--ink-3);margin-bottom:10px}.kpi{gap:4px;display:grid}.kpi .v{font-family:var(--font-display);letter-spacing:-.02em;font-size:clamp(28px,3.4vw,40px);font-weight:600;line-height:1.1}.kpi .l{color:var(--ink-2);font-size:13.5px}.kpi .ico{background:var(--brand-soft);width:40px;height:40px;color:var(--brand);transition:transform .4s var(--ease);border-radius:12px;place-items:center;margin-bottom:10px;display:grid}.card.hover:hover .kpi .ico{transform:rotate(-8deg)scale(1.08)}.chart{width:100%;height:300px}.scroll-x{overflow-x:auto}.search{position:relative}.search svg{color:var(--ink-3);pointer-events:none;position:absolute;top:50%;left:13px;transform:translateY(-50%)}.search .input{padding-left:40px}.dropdown{z-index:30;background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-3);max-height:320px;animation:pop .25s var(--ease);border-radius:14px;position:absolute;top:calc(100% + 6px);left:0;right:0;overflow:auto}.dropdown button{text-align:left;cursor:pointer;background:0 0;border:0;justify-content:space-between;align-items:center;gap:12px;width:100%;padding:11px 14px;display:flex}.dropdown button:hover{background:var(--brand-soft)}.crumbs{flex-wrap:wrap;align-items:center;gap:4px;font-size:14px;display:flex}.crumbs button{cursor:pointer;color:var(--ink-2);background:0 0;border:0;border-radius:8px;padding:5px 9px;font-weight:600;transition:background-color .2s,color .2s}.crumbs button:hover:not(:disabled){background:var(--brand-soft);color:var(--brand)}.crumbs button:disabled{color:var(--ink);cursor:default}.crumbs svg{color:var(--ink-3)}.notice{background:var(--accent-soft);color:var(--ink);border:1px solid color-mix(in srgb,var(--accent) 35%,transparent);border-radius:12px;gap:10px;padding:12px 14px;font-size:13.5px;display:flex}.notice svg{color:var(--accent);flex:none;margin-top:2px}.mobile-cards{display:none}@media (width<=720px){.desk-only{display:none!important}.mobile-cards{gap:12px;display:grid}.page-head{margin-bottom:18px}}
