@import"https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&family=JetBrains+Mono:wght@400;500;600&display=swap";*{box-sizing:border-box;margin:0;padding:0}:root{--brand:#4f46e5;--brand-d:#4338ca;--brand-l:#6366f1;--brand-2:#8b7cf7;--cyan:#06b6d4;--bg:#f4f5fb;--card:#fff;--field:#fafbff;--hover:#f7f8fd;--track:#eef0f7;--line:#ebedf5;--line-2:#f1f2f9;--ink:#1b203a;--ink-2:#5b6480;--ink-3:#9aa1b6;--green:#16a34a;--green-bg:#e8f8f0;--red:#ef4444;--red-bg:#fdecec;--amber:#f59e0b;--amber-bg:#fef4e3;--blue:#3b82f6;--blue-bg:#eaf2fe;--violet:#7c5cf6;--violet-bg:#f0ecff}.app{font-family:Plus Jakarta Sans,-apple-system,PingFang SC,Microsoft YaHei,sans-serif;color:var(--ink);background:var(--bg);min-height:100vh;-webkit-font-smoothing:antialiased}.mono{font-family:JetBrains Mono,monospace;font-variant-numeric:tabular-nums}.row{display:flex;align-items:center}.col{display:flex;flex-direction:column}.jb{justify-content:space-between}.wrap{flex-wrap:wrap}.muted{color:var(--ink-2)}.dim{color:var(--ink-3)}.b{font-weight:700}.sb{font-weight:600}.eb{font-weight:800}.xs{font-size:11px}.sm{font-size:12px}.md{font-size:13px}.lg{font-size:15px}.h1{font-size:24px;font-weight:800;letter-spacing:-.02em}.scroll::-webkit-scrollbar{width:7px;height:7px}.scroll::-webkit-scrollbar-thumb{background:#d6d9e6;border-radius:8px}.scroll::-webkit-scrollbar-track{background:transparent}.shell{display:flex;height:100vh;overflow:hidden}.side{width:248px;flex-shrink:0;display:flex;flex-direction:column;position:relative;overflow:hidden}.side.admin{background:linear-gradient(180deg,#0c1230,#0a0f28)}.side.user{background:radial-gradient(120% 60% at 30% 8%,#27277a,#141452 30%,#0a0c2e 70%)}.side .glow{position:absolute;width:280px;height:280px;border-radius:50%;filter:blur(70px);pointer-events:none}.side.admin .glow{background:#3b3bd6;top:-90px;left:-60px;opacity:.32}.side.user .glow{background:#5b4bff;top:-40px;left:30px;opacity:.5}.brand{display:flex;align-items:center;gap:11px;padding:20px 20px 16px}.logo{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;background:linear-gradient(135deg,#6366f1,#22d3ee);box-shadow:0 6px 18px #5046e573;flex-shrink:0}.brand .t1{color:#fff;font-weight:800;font-size:15px;line-height:1.1}.brand .t2{color:#7f87b8;font-size:10px;letter-spacing:.5px;margin-top:2px}.nav{padding:6px 12px;display:flex;flex-direction:column;gap:3px;position:relative;z-index:1}.navi{display:flex;align-items:center;gap:11px;padding:10px 12px;border-radius:10px;color:#aab1d6;font-size:13.5px;font-weight:500;cursor:pointer;transition:.15s}.navi:hover{background:#ffffff0f;color:#e9ebff}.navi.on{background:linear-gradient(135deg,var(--brand),#5b54e8);color:#fff;font-weight:600;box-shadow:0 8px 20px #4f46e566}.navi .nbadge{margin-left:auto;background:#ef4444;color:#fff;font-size:10px;font-weight:700;min-width:18px;height:18px;border-radius:9px;display:grid;place-items:center;padding:0 5px}.navi.on .nbadge{background:#ffffff40}.sidefoot{margin-top:auto;padding:12px;position:relative;z-index:1}.health{background:#ffffff0d;border:1px solid rgba(255,255,255,.07);border-radius:14px;padding:14px}.plan-chip{background:linear-gradient(135deg,#5b54e8,#7c5cf6);border-radius:13px;padding:13px 14px;display:flex;gap:10px;align-items:center;color:#fff}.usercard{display:flex;align-items:center;gap:10px;padding:11px;border-radius:12px;background:#ffffff0d;margin-top:10px}.avatar{width:34px;height:34px;border-radius:9px;background:linear-gradient(135deg,#818cf8,#22d3ee);display:grid;place-items:center;color:#fff;font-weight:700;font-size:13px;flex-shrink:0}.main{flex:1;display:flex;flex-direction:column;overflow:hidden}.topbar{height:62px;background:var(--card);border-bottom:1px solid var(--line);display:flex;align-items:center;gap:14px;padding:0 22px;flex-shrink:0}.tsearch{flex:1;max-width:420px;display:flex;align-items:center;gap:9px;background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:9px 13px;color:var(--ink-3);font-size:13px}.daterange{display:flex;align-items:center;gap:8px;background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:8px 12px;font-size:12.5px;color:var(--ink-2)}.iconbtn{width:38px;height:38px;border-radius:10px;display:grid;place-items:center;color:var(--ink-2);cursor:pointer;position:relative}.iconbtn:hover{background:var(--bg)}.tdot{position:absolute;top:7px;right:8px;background:#ef4444;color:#fff;font-size:9px;font-weight:700;min-width:15px;height:15px;border-radius:8px;display:grid;place-items:center;padding:0 3px}.statuspill{display:flex;align-items:center;gap:6px;background:var(--green-bg);color:var(--green);font-size:12px;font-weight:600;padding:6px 12px;border-radius:20px}.content{flex:1;overflow-y:auto;padding:24px}.card{background:var(--card);border:1px solid var(--line);border-radius:16px}.cardhead{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;border-bottom:1px solid var(--line-2)}.cardhead .ttl{font-weight:700;font-size:14.5px}.link{color:var(--brand);font-size:12.5px;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:3px}.stat{background:var(--card);border:1px solid var(--line);border-radius:15px;padding:16px}.chip{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;flex-shrink:0}.statval{font-size:25px;font-weight:800;letter-spacing:-.5px;line-height:1}.trendup{color:var(--green);font-weight:700;font-size:11.5px;display:inline-flex;gap:2px;align-items:center}.trenddn{color:var(--red);font-weight:700;font-size:11.5px;display:inline-flex;gap:2px;align-items:center}.pill{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:600;padding:3px 9px;border-radius:7px;white-space:nowrap}.tag{display:inline-flex;align-items:center;font-size:11px;font-weight:600;padding:2px 8px;border-radius:6px;background:var(--blue-bg);color:var(--blue)}.dot{width:7px;height:7px;border-radius:50%;display:inline-block;flex-shrink:0}table{width:100%;border-collapse:collapse}th{text-align:left;font-size:11.5px;font-weight:600;color:var(--ink-3);padding:11px 14px;background:var(--line-2);white-space:nowrap}th:first-child{border-radius:8px 0 0 8px}th:last-child{border-radius:0 8px 8px 0}td{padding:13px 14px;font-size:13px;border-bottom:1px solid var(--line-2);vertical-align:middle;white-space:nowrap}tbody tr:hover{background:var(--hover)}tbody tr:last-child td{border-bottom:none}.tact{width:30px;height:30px;border-radius:8px;display:grid;place-items:center;color:var(--ink-3);cursor:pointer}.tact:hover{background:var(--bg);color:var(--brand)}.prog{height:6px;border-radius:4px;background:var(--track);overflow:hidden;position:relative}.prog>span{position:absolute;inset:0 auto 0 0;border-radius:4px}.tg{width:40px;height:22px;border-radius:12px;background:#d4d7e4;position:relative;cursor:pointer;transition:.2s;flex-shrink:0}.tg.on{background:var(--brand)}.tg>i{position:absolute;width:18px;height:18px;background:#fff;border-radius:50%;top:2px;left:2px;transition:.2s;box-shadow:0 1px 3px #0003}.tg.on>i{left:20px}.btn{display:inline-flex;align-items:center;gap:7px;font-size:13px;font-weight:600;padding:9px 15px;border-radius:10px;cursor:pointer;border:1px solid var(--line);background:var(--card);color:var(--ink-2);transition:.15s}.btn:hover{background:var(--bg)}.btn.pri{background:linear-gradient(135deg,var(--brand),#5b54e8);color:#fff;border:none;box-shadow:0 6px 16px #4f46e552}.btn.pri:hover{filter:brightness(1.05)}.btn.blk{width:100%;justify-content:center;padding:12px}.seg{display:flex;background:var(--bg);border:1px solid var(--line);border-radius:9px;padding:3px}.seg>div{font-size:12px;font-weight:600;color:var(--ink-2);padding:5px 11px;border-radius:6px;cursor:pointer}.seg>div.on{background:var(--card);color:var(--brand);box-shadow:0 1px 3px #00000014}.tabs{display:flex;gap:22px;border-bottom:1px solid var(--line);padding:0 2px}.tab{font-size:13.5px;font-weight:600;color:var(--ink-2);padding:12px 2px;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;display:flex;gap:7px;align-items:center}.tab.on{color:var(--brand);border-color:var(--brand)}.tabnum{font-size:11px;background:var(--bg);color:var(--ink-3);padding:1px 7px;border-radius:8px;font-weight:600}.tab.on .tabnum{background:var(--violet-bg);color:var(--brand)}.select{display:flex;align-items:center;gap:8px;font-size:12.5px;font-weight:500;color:var(--ink-2);background:var(--card);border:1px solid var(--line);border-radius:9px;padding:8px 12px;cursor:pointer}.input{width:100%;font-size:13px;border:1px solid var(--line);border-radius:10px;padding:11px 13px;color:var(--ink);background:var(--field);font-family:inherit}.input:focus{outline:none;border-color:var(--brand);background:var(--card)}.grid{display:grid;gap:16px}.gauge-center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;pointer-events:none}.heat{display:grid;gap:3px}.heatcell{aspect-ratio:1;border-radius:3px;min-height:13px}.dotmap{background:radial-gradient(circle at 1px 1px,#dfe3f0 1px,transparent 0);background-size:14px 14px;border-radius:12px;position:relative}.mapb{position:absolute;background:#4f46e51f;border:1.5px solid rgba(79,70,229,.5);color:var(--brand);border-radius:50%;display:grid;place-items:center;font-size:11px;font-weight:700}.platcard{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:16px}.accord{border-bottom:1px solid var(--line-2);padding:14px 2px;display:flex;justify-content:space-between;align-items:center;cursor:pointer;font-size:13.5px;font-weight:500}.cat{background:var(--card);border:1px solid var(--line);border-radius:13px;padding:15px;cursor:pointer;transition:.15s}.cat:hover{border-color:var(--brand);box-shadow:0 8px 22px #4f46e51a;transform:translateY(-2px)}.fade{animation:fade .35s ease}@keyframes fade{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes heathalo{0%{transform:scale(.82);opacity:.55}to{transform:scale(1.75);opacity:0}}@keyframes heatbloom{0%,to{opacity:.7;transform:scale(1)}50%{opacity:1;transform:scale(1.08)}}.fl{font-size:17px;line-height:1}.rankbadge{width:24px;height:24px;border-radius:8px;display:grid;place-items:center;font-size:11px;font-weight:800;color:#fff}.authwrap{min-height:100vh;display:flex}.authleft{width:42%;background:linear-gradient(160deg,#0c1230,#161a52);color:#fff;padding:48px;display:flex;flex-direction:column;position:relative;overflow:hidden}.authright{flex:1;display:flex;align-items:center;justify-content:center;background:var(--bg);padding:40px}.authcard{width:100%;max-width:380px;background:#fff;border:1px solid var(--line);border-radius:18px;padding:34px}.authuser{flex:1;background:radial-gradient(120% 80% at 70% 20%,#e9e7ff,#f4f5fb);display:flex;align-items:center;justify-content:center;padding:40px;position:relative;overflow:hidden}.auth{min-height:100vh;display:flex;font-family:inherit}.auth-hero{position:relative;width:46%;flex-shrink:0;color:#fff;display:flex;flex-direction:column;justify-content:space-between;padding:46px 44px;background-size:cover;background-position:center;overflow:hidden}.auth-hero .scrim{position:absolute;inset:0;background:linear-gradient(155deg,#080a2a8c,#0a0c3429 42%,#0a0e40a3)}.auth-hero .z{position:relative;z-index:1}.auth-form{flex:1;display:flex;align-items:center;justify-content:center;background:var(--bg);padding:40px}.auth-card{width:100%;max-width:392px;background:var(--card);border:1px solid var(--line);border-radius:20px;padding:36px;box-shadow:0 24px 60px #1e235a1a}.auth-bg{position:fixed;inset:0;background-size:cover;background-position:center}.glasscard{position:relative;z-index:1;width:100%;background:#ffffffd6;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid rgba(255,255,255,.9);border-radius:22px;padding:34px;box-shadow:0 26px 70px #3c37962e}.feat{display:flex;gap:12px;align-items:flex-start;margin-bottom:15px}.feat .fi{width:38px;height:38px;border-radius:11px;background:#ffffff21;border:1px solid rgba(255,255,255,.2);display:grid;place-items:center;flex-shrink:0;color:#dfe3ff}.lbl{font-size:12.5px;font-weight:600;color:var(--ink-2);margin-bottom:7px;display:block}.inp{display:flex;align-items:center;gap:10px;border:1.5px solid var(--line);border-radius:12px;padding:0 13px;background:var(--field);transition:.15s}.inp:focus-within{border-color:var(--brand);background:var(--card);box-shadow:0 0 0 4px #4f46e51a}.inp input{flex:1;border:none;background:transparent;padding:12px 0;font-size:14px;font-family:inherit;color:var(--ink);outline:none}.inp input::placeholder{color:var(--ink-3)}.authlink{color:var(--brand);font-weight:600;cursor:pointer}.cbx{width:18px;height:18px;border-radius:6px;border:1.5px solid #cfd3e6;display:grid;place-items:center;cursor:pointer;flex-shrink:0;transition:.15s}.cbx.on{background:var(--brand);border-color:var(--brand)}.authtab{flex:1;text-align:center;padding:9px;font-size:12.5px;font-weight:600;border-radius:8px;cursor:pointer;color:var(--ink-2)}.authtab.on{background:var(--card);color:var(--brand);box-shadow:0 2px 6px #00000014}.modal-ov{position:fixed;inset:0;background:#10142d73;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;padding:24px;z-index:50;animation:fade .2s ease}.modal{width:100%;background:var(--card);border-radius:18px;box-shadow:0 30px 80px #14193c4d;display:flex;flex-direction:column;max-height:88vh;animation:pop .22s cubic-bezier(.2,.8,.3,1)}.modal-hd{display:flex;align-items:flex-start;justify-content:space-between;padding:18px 20px;border-bottom:1px solid var(--line-2)}.modal-ttl{font-weight:700;font-size:16px}.modal-bd{padding:20px;overflow-y:auto}.modal-ft{display:flex;justify-content:flex-end;gap:10px;padding:14px 20px;border-top:1px solid var(--line-2)}@keyframes pop{0%{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:none}}.sk{display:block;background:linear-gradient(90deg,#eef0f7 25%,#e4e7f3 37%,#eef0f7 63%);background-size:400% 100%;animation:shimmer 1.4s ease infinite;border-radius:8px}@keyframes shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.inp.err{border-color:var(--red);background:var(--red-bg)}.inp.err:focus-within{box-shadow:0 0 0 4px #ef44441f}.input.err{border-color:var(--red);background:var(--red-bg)}.err-text{color:var(--red);font-size:11.5px;margin-top:6px;font-weight:500}.btn[disabled]{opacity:.6;cursor:not-allowed}[data-theme=dark]{--bg:#0a0f1f;--card:#141b30;--field:#0f1528;--hover:#1a2240;--track:#202744;--line:#242c47;--line-2:#1b2238;--ink:#e8ebf7;--ink-2:#a4accb;--ink-3:#6c7498;--green-bg:rgba(22,163,74,.18);--red-bg:rgba(239,68,68,.18);--amber-bg:rgba(245,158,11,.18);--blue-bg:rgba(59,130,246,.18);--violet-bg:rgba(124,92,246,.2)}[data-theme=dark] .card,[data-theme=dark] .stat,[data-theme=dark] .platcard{box-shadow:0 1px 2px #00000052}[data-theme=dark] .sk{background:linear-gradient(90deg,#1a2138 25%,#232b48 37%,#1a2138 63%);background-size:400% 100%}[data-theme=dark] .tsearch,[data-theme=dark] .daterange{background:var(--field)}.cleaninput{flex:1;border:none;background:transparent;outline:none;color:var(--ink);font-size:13px;font-family:inherit}.cleaninput::placeholder{color:var(--ink-3)}.linkbtn,.plainbtn,.ghostbtn,.ghosticon,.ghostnav{background:none;border:none;padding:0;font:inherit;color:inherit}.linkbtn{display:inline-flex;align-items:center;gap:4px}.plainbtn,.ghostbtn{cursor:pointer}.ghosticon{display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.ghostnav{width:100%;text-align:left}.authnotice{font-size:12.5px;border-radius:10px;padding:10px 12px;margin-bottom:14px;border:1px solid transparent}.authnotice.error{background:var(--red-bg);color:var(--red);border-color:#ef44442e}.authnotice.success{background:var(--green-bg);color:var(--green);border-color:#16a34a2e}.spin{animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.seg>button{font-size:12px;font-weight:600;color:var(--ink-2);padding:5px 11px;border-radius:6px;cursor:pointer;background:none;border:none;font-family:inherit}.seg>button.on{background:var(--card);color:var(--brand);box-shadow:0 1px 3px #00000014}.tab,.authtab,.iconbtn,.tact,.tg{border:none;background:transparent;font-family:inherit}button.btn{font-family:inherit}.actionrow{width:100%;background:transparent;border:0;color:inherit;font:inherit;text-align:left}.blockish{display:block}
