:root{--bg0: #f7f9fc;--bg1: #f3f6fb;--bg2: #eef2f8;--card: rgba(255, 255, 255, .86);--card2: rgba(255, 255, 255, .74);--line: rgba(15, 23, 42, .12);--line2: rgba(15, 23, 42, .18);--ink: #0f172a;--muted: rgba(15, 23, 42, .72);--soft: rgba(15, 23, 42, .56);--a1: #0ea5e9;--a2: #7c3aed;--a3: #16a34a;--shadow: 0 18px 60px rgba(2, 6, 23, .12);--shadow2: 0 10px 30px rgba(2, 6, 23, .1);--r12: 12px;--r16: 16px;--r20: 20px;--r24: 24px;--mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--sans: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji", "Segoe UI Emoji"}*{box-sizing:border-box}html,body{height:100%}body{margin:0;font-family:var(--sans);color:var(--ink);background:radial-gradient(1200px 600px at 18% -10%,rgba(124,58,237,.12),transparent 60%),radial-gradient(900px 500px at 82% 0%,rgba(14,165,233,.12),transparent 55%),radial-gradient(1000px 600px at 60% 120%,rgba(22,163,74,.08),transparent 55%),linear-gradient(180deg,var(--bg0),var(--bg1) 35%,var(--bg2) 100%)}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}button,input,select,textarea{font-family:inherit}.mono{font-family:var(--mono);font-size:.95em}.muted{color:var(--muted)}.sep{opacity:.6;padding:0 8px}::selection{background:#0ea5e938}:focus-visible{outline:2px solid rgba(14,165,233,.75);outline-offset:3px;border-radius:10px}.appRoot{min-height:100vh}.shell{max-width:1280px;margin:0 auto;padding:18px 18px 28px}.pageWrap{display:flex;flex-direction:column;gap:14px}.pageHeader{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 18px}.pageHeaderLeft{display:flex;flex-direction:column;gap:6px}.pageTitle{font-size:22px;font-weight:800;letter-spacing:.2px}.pageMeta{font-size:13px;color:var(--muted)}.pageHeaderRight{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.pageBody{display:block}.footer{margin-top:10px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 6px 0;color:var(--muted);font-size:12.5px}.footerRight{display:flex;align-items:center;gap:6px}.linkBtn{background:transparent;border:0;color:#0f172ac7;cursor:pointer;padding:4px 6px;border-radius:10px}.linkBtn:hover{background:#0f172a0f}.card{background:linear-gradient(180deg,#ffffffeb,#ffffffc7);border:1px solid var(--line);border-radius:var(--r20);box-shadow:var(--shadow2);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.card.pad{padding:14px}.card.padLg{padding:18px}.hr{height:1px;background:var(--line);margin:12px 0}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.grid4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}@media (max-width: 980px){.grid4,.grid3{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 680px){.grid2,.grid3,.grid4{grid-template-columns:1fr}}.topbar{position:sticky;top:0;z-index:30;border-bottom:1px solid rgba(15,23,42,.1);background:linear-gradient(180deg,#f7f9fceb,#f3f6fbc7);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.topbarInner{max-width:1280px;margin:0 auto;padding:14px 18px;display:flex;align-items:center;justify-content:space-between;gap:12px}.brandRow{display:flex;align-items:center;gap:10px;min-width:260px}.brandDot{width:34px;height:34px;border-radius:12px;background:radial-gradient(14px 14px at 30% 25%,rgba(14,165,233,.92),transparent 60%),radial-gradient(14px 14px at 70% 70%,rgba(124,58,237,.9),transparent 60%),linear-gradient(180deg,#ffffffeb,#ffffffb3);border:1px solid rgba(15,23,42,.12);box-shadow:0 12px 24px #0206171a}.brandText{display:flex;flex-direction:column;line-height:1.15}.brandTitle{font-weight:850;letter-spacing:.2px}.brandSub{font-size:12.5px;color:var(--muted)}.navRow{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:center;flex:1}.navPill{border:1px solid rgba(15,23,42,.12);background:#ffffffb8;color:#0f172ad1;padding:8px 10px;border-radius:999px;cursor:pointer;font-size:13px;transition:transform .12s ease,background .12s ease,border-color .12s ease}.navPill:hover{transform:translateY(-1px);background:#ffffffdb;border-color:#0ea5e942}.navPill.active{background:linear-gradient(90deg,#0ea5e929,#7c3aed24);border-color:#0ea5e957}.userRow{display:flex;align-items:center;gap:10px;justify-content:flex-end;min-width:260px}.userMeta{display:flex;flex-direction:column;text-align:right;line-height:1.15}.userName{font-size:13px;font-weight:750}.userRole{font-size:12px;color:var(--muted)}.userActions{display:flex;align-items:center;gap:8px}.ticker{border-bottom:1px solid rgba(15,23,42,.1);background:#ffffff8c;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.tickerInner{max-width:1280px;margin:0 auto;padding:10px 18px;display:flex;align-items:center;gap:10px;overflow:hidden}.tickerLabel{font-size:12px;color:var(--muted);white-space:nowrap}.tickerTrack{display:flex;gap:10px;flex:1;overflow-x:auto;scrollbar-width:none}.tickerTrack::-webkit-scrollbar{display:none}.tick{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:999px;border:1px solid rgba(15,23,42,.12);background:#ffffffb8;white-space:nowrap}.tickSym{font-weight:800;font-size:12.5px;letter-spacing:.2px}.tickVal{font-family:var(--mono);font-size:12.5px;opacity:.92}.tickChg.up{color:#16a34af2}.tickChg.down{color:#dc2626eb}.input,.select,.textarea{width:100%;border-radius:14px;border:1px solid rgba(15,23,42,.14);background:#ffffffd1;color:var(--ink);padding:10px 12px;outline:none}.textarea{min-height:110px;resize:vertical}.input::placeholder,.textarea::placeholder{color:#0f172a73}.field .label{font-size:12.5px;color:var(--muted);margin-bottom:6px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 12px;border-radius:14px;border:1px solid rgba(15,23,42,.14);background:#ffffffc7;color:#0f172adb;cursor:pointer;transition:transform .12s ease,background .12s ease,border-color .12s ease;-webkit-user-select:none;user-select:none}.btn:hover{transform:translateY(-1px);background:#ffffffeb;border-color:#0ea5e942}.btn:disabled{opacity:.45;cursor:not-allowed;transform:none}.btn.primary{background:linear-gradient(90deg,#0ea5e92e,#7c3aed29);border-color:#0ea5e952;color:#0f172aeb}.btn.ghost{background:#ffffff8c;border-color:#0f172a1f}.badge{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:999px;border:1px solid rgba(15,23,42,.14);background:#ffffffad;font-size:12px;color:#0f172ad6}.badge.good{border-color:#16a34a52;background:#16a34a1f}.badge.info{border-color:#0ea5e952;background:#0ea5e91f}.badge.warn{border-color:#f59e0b59;background:#f59e0b24}.badge.neutral{border-color:#0f172a29;background:#ffffff9e}.loginWrap{min-height:100vh;display:grid;grid-template-columns:1.1fr .9fr;gap:0;position:relative}@media (max-width: 980px){.loginWrap{grid-template-columns:1fr}.loginSide{display:none}}.loginBgGlow{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(800px 500px at 20% 20%,rgba(14,165,233,.12),transparent 60%),radial-gradient(900px 550px at 80% 30%,rgba(124,58,237,.12),transparent 60%),radial-gradient(900px 650px at 40% 110%,rgba(22,163,74,.08),transparent 60%);filter:blur(0px);pointer-events:none;opacity:.95}.loginCard{position:relative;padding:40px 28px;display:flex;flex-direction:column;justify-content:center;max-width:520px;margin:0 auto;z-index:2}.loginBrandRow{display:flex;align-items:center;gap:12px;margin-bottom:16px}.brandMark{width:44px;height:44px;border-radius:16px;background:radial-gradient(18px 18px at 25% 30%,rgba(14,165,233,.92),transparent 55%),radial-gradient(18px 18px at 70% 70%,rgba(124,58,237,.9),transparent 55%),linear-gradient(180deg,#ffffffeb,#ffffffb3);border:1px solid rgba(15,23,42,.14);box-shadow:0 18px 40px #0206171f}.brandName{font-weight:900;font-size:16px;letter-spacing:.2px}.brandTag{font-size:12.5px;color:var(--muted);margin-top:2px}.loginTitle{font-size:26px;font-weight:900;letter-spacing:.2px}.loginSub{color:var(--muted);margin-top:8px;max-width:460px}.loginError{margin-top:12px;padding:10px 12px;border-radius:14px;border:1px solid rgba(220,38,38,.3);background:#dc26261a;color:#7f1d1df2;font-size:13px}.loginForm{margin-top:18px;display:flex;flex-direction:column;gap:12px}.field{display:flex;flex-direction:column;gap:6px}.loginRow{display:flex;align-items:center;justify-content:space-between;gap:12px}.checkRow{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:13px}.checkRow input{accent-color:rgba(14,165,233,.95)}.loginDivider{margin:6px 0 2px;display:flex;align-items:center;gap:10px;color:#0f172a8c;font-size:12px}.loginDivider:before,.loginDivider:after{content:"";height:1px;background:#0f172a1f;flex:1}.loginDivider span{white-space:nowrap}.loginFooter{color:#0f172a8f;font-size:12px;line-height:1.45;margin-top:6px}.loginSide{position:relative;padding:36px 34px;display:flex;align-items:center;justify-content:center;z-index:2}.sideHero{width:100%;max-width:520px;padding:22px 22px 20px;border-radius:var(--r24);border:1px solid rgba(15,23,42,.12);background:#ffffffb3;box-shadow:var(--shadow);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.sideTitle{font-size:28px;font-weight:950;letter-spacing:.2px}.sideCopy{margin-top:10px;color:var(--muted);line-height:1.6}.sideBadges{margin-top:12px;display:flex;gap:8px;flex-wrap:wrap}.sideKpis{margin-top:16px;display:grid;grid-template-columns:1fr 1fr;gap:12px}.kpi{padding:12px;border-radius:16px;border:1px solid rgba(15,23,42,.12);background:#0f172a0a}.kpiLabel{color:var(--muted);font-size:12px}.kpiValue{margin-top:6px;font-weight:850;font-size:14px;display:flex;align-items:center;gap:8px}.dotLive{width:10px;height:10px;border-radius:999px;background:#16a34aeb;box-shadow:0 0 0 5px #16a34a24}.sideNote{margin-top:14px;color:#0f172a94;font-size:12.5px;line-height:1.55}.pillRow{display:flex;gap:8px;flex-wrap:wrap}.row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.right{margin-left:auto}
