:root{--font-ui:"IBM Plex Sans",-apple-system,BlinkMacSystemFont,"PingFang SC","Noto Sans TC","Microsoft YaHei",sans-serif;--font-mono:"IBM Plex Mono","SF Mono",ui-monospace,"Menlo","Consolas",monospace;--bg:#f4f6fb;--surface:#fff;--surface-2:#f7f9fd;--surface-hover:#eef2fa;--border:#dde3ee;--border-strong:#c5cfe2;--hairline:rgba(0,20,102,.07);--text:#222;--text-2:#6b7280;--text-3:#9aa3b5;--brand:#0033cc;--brand-2:#00248f;--brand-deep:#001466;--brand-dim:#00248f;--brand-soft:rgba(0,51,204,.08);--brand-line:rgba(0,51,204,.28);--brand-glow:#7a93ff;--on-brand:#fff;--pos:#12a150;--pos-soft:rgba(18,161,80,.1);--pos-line:rgba(18,161,80,.35);--neg:#dc3545;--neg-soft:rgba(220,53,69,.08);--neg-line:rgba(220,53,69,.3);--warn:#b45309;--warn-soft:rgba(245,158,11,.14);--warn-line:rgba(245,158,11,.4);--sidebar:#fff;--topbar:rgba(255,255,255,.82);--shadow-sm:0 1px 2px rgba(0,20,102,.06);--shadow-md:0 8px 24px -10px rgba(0,20,102,.18);--mask:rgba(0,20,102,.38);--grad-hero:linear-gradient(135deg,#001466 0%,#00248f 45%,#0033cc 100%);--grad-cta:linear-gradient(135deg,#001466,#0033cc);--grad-card:linear-gradient(160deg,#00248f,#0033cc)}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{font-family:var(--font-ui);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;line-height:1.5}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:6px;border:2px solid transparent;background-clip:padding-box}@keyframes pulseDot{0%,to{opacity:1}50%{opacity:.35}}@keyframes fadeUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes spin{to{transform:rotate(360deg)}}.app{display:grid;grid-template-columns:248px 1fr;min-height:100vh;min-width:1120px}.sidebar{background:var(--sidebar);border-right:1px solid var(--border);display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.brand{padding:20px 20px 18px;border-bottom:2px solid var(--brand);display:flex;align-items:center;gap:12px}.brand-mark{width:42px;height:42px;border-radius:11px;background:var(--brand);color:var(--on-brand);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:22px;flex:none}.brand-mark.grad{background:var(--grad-cta)}.brand-name{font-size:19px;font-weight:700;letter-spacing:-.01em;line-height:1.1}.brand-sub{font-size:12px;color:var(--text-3);margin-top:1px}.nav{flex:1;padding:14px 12px;overflow-y:auto}.nav-group{margin-bottom:16px}.nav-label{font-size:11px;font-weight:600;letter-spacing:.14em;color:var(--text-3);text-transform:uppercase;padding:0 10px 8px}.nav-item{position:relative;display:flex;align-items:center;gap:11px;padding:8px 12px;border-radius:9px;cursor:pointer;font-size:13.5px;color:var(--text-2);text-decoration:none;width:100%;border:none;background:transparent;font-family:var(--font-ui);text-align:left}.nav-item:hover{background:var(--surface-hover)}.nav-item.active{color:var(--brand-dim);font-weight:600}.nav-item.active:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:var(--brand-soft);border-radius:9px;z-index:0}.nav-item.active:after{content:"";position:absolute;left:-12px;top:8px;bottom:8px;width:3px;background:var(--brand);border-radius:0 3px 3px 0}.nav-item>*{position:relative;z-index:1}.nav-dot{width:6px;height:6px;border-radius:50%;background:var(--text-3);flex:none}.nav-item.active .nav-dot{background:var(--brand)}.nav-badge{margin-left:auto;font-family:var(--font-mono);font-size:10.5px;font-weight:600;min-width:19px;height:16px;padding:0 5px;border-radius:8px;background:var(--neg);color:#fff;display:flex;align-items:center;justify-content:center}.side-foot{padding:12px 20px;border-top:1px solid var(--border);font-size:12px;color:var(--text-3);display:flex;flex-direction:column;gap:6px}.side-foot .row{display:flex;align-items:center;justify-content:space-between}.dot{width:6px;height:6px;border-radius:50%;display:inline-block}.dot.live{background:var(--pos);animation:pulseDot 2s infinite}.main{display:flex;flex-direction:column;min-width:0}.topbar{position:sticky;top:0;z-index:20;height:64px;display:flex;align-items:center;justify-content:space-between;padding:0 28px;background:var(--topbar);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--border)}.page-title{font-size:20px;font-weight:700;letter-spacing:-.01em}.page-kicker{font-size:12.5px;color:var(--text-3)}.top-right{display:flex;align-items:center;gap:14px}.clock{font-family:var(--font-mono);font-size:12.5px;color:var(--text-3)}.env-chip{display:inline-flex;align-items:center;height:24px;padding:0 10px;border-radius:7px;background:var(--brand);color:var(--on-brand);font-size:11.5px;font-weight:700}.btn-theme{height:32px;padding:0 12px;border-radius:8px;border:1px solid var(--border);background:var(--surface);color:var(--text-2);cursor:pointer;display:flex;align-items:center;gap:6px;font-size:12px;font-weight:600}.btn-theme:hover{border-color:var(--brand-line);color:var(--brand-dim)}.acct{display:flex;align-items:center;gap:9px;height:40px;padding:0 10px;border-radius:9px;border:1px solid var(--border);background:var(--surface)}.acct .av{width:30px;height:30px;border-radius:8px;background:var(--brand);color:var(--on-brand);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px}.acct .nm{font-size:13px;font-weight:600;line-height:1.2}.acct .rl{font-size:11px;color:var(--text-3)}.content{flex:1;padding:24px 28px 56px;overflow-x:hidden}.wrap{max-width:1320px;margin:0 auto}.page{animation:fadeUp .2s ease}.section-head{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:18px;gap:12px;flex-wrap:wrap}.section-head h2{font-size:20px;font-weight:700}.section-head .sub{font-size:13px;color:var(--text-3);margin-top:4px}.card{border:1px solid var(--border);border-radius:13px;padding:18px 20px;background:var(--surface);box-shadow:var(--shadow-sm);line-height:normal}.cards{display:grid;gap:14px}.g4{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.g2{grid-template-columns:repeat(auto-fit,minmax(360px,1fr))}.grid12{display:grid;grid-template-columns:repeat(12,1fr);gap:14px}.cap{font-size:12px;font-weight:600;letter-spacing:.12em;color:var(--text-3);text-transform:uppercase;margin:0 2px 14px;display:flex;align-items:center;gap:10px}.cap.mt{margin-top:28px}.card.acc-pos{border-left:3px solid var(--pos)}.card.acc-neg{border-left:3px solid var(--neg)}.card.acc-brand{border-left:3px solid var(--brand)}.card.acc-warn{border-left:3px solid var(--warn)}.card.brand-grad{background:var(--grad-card);border-color:transparent;color:#fff}.card.brand-grad .kpi-t,.card.brand-grad .kpi-s,.card.brand-grad .u{color:#ffffffb8}.card.brand-grad .kpi-n{color:#fff}.kpi-h{display:flex;align-items:center;justify-content:space-between}.kpi-t{font-size:12.5px;color:var(--text-2);font-weight:600}.kpi-n{font-family:var(--font-mono);font-size:28px;font-weight:600;margin-top:14px}.kpi-n .u{font-size:11px;color:var(--text-3);font-weight:500;font-family:var(--font-ui)}.kpi-s{font-size:12px;color:var(--text-3);margin-top:10px;font-family:var(--font-mono)}.card-head{display:flex;align-items:center;justify-content:space-between;padding:13px 16px 11px;border-bottom:1px solid var(--hairline)}.card-title{font-size:13.5px;font-weight:700;display:flex;align-items:center;gap:8px}.card-title:before{content:"";width:3px;height:14px;background:var(--brand);border-radius:2px}.card-sub{font-size:11px;color:var(--text-3)}.card-body{padding:14px 16px}.banner{background:var(--grad-hero);border-radius:14px;padding:28px 32px;color:#fff;box-shadow:var(--shadow-md)}.banner h1{font-size:26px;font-weight:700;letter-spacing:-.01em}.banner p{font-size:13.5px;color:#fffc;margin-top:8px;line-height:1.8}.banner .tag{display:inline-flex;align-items:center;height:26px;padding:0 12px;border-radius:13px;border:1px solid rgba(255,255,255,.35);font-size:11px;font-weight:600;letter-spacing:.1em;margin-bottom:14px}.tbl{border:1px solid var(--border);border-radius:12px;overflow:hidden;background:var(--surface);box-shadow:var(--shadow-sm)}.tbl-scroll{overflow-x:auto}table.grid{display:table;width:100%;border-collapse:collapse;font-size:13px}table.grid th{background:var(--surface-2);text-align:left;padding:11px 14px;font-size:11px;letter-spacing:.06em;color:var(--text-3);text-transform:uppercase;font-weight:600;white-space:nowrap;border-bottom:1px solid var(--border)}table.grid td{padding:11px 14px;border-bottom:1px solid var(--hairline);white-space:nowrap}table.grid tr:last-child td{border-bottom:none}table.grid tbody tr:hover{background:var(--surface-hover)}table.grid tbody tr.clickable{cursor:pointer}table.grid tbody tr.hl,table.grid tr.mainrow,table.grid tr.mainrow:hover{background:var(--brand-soft)}table.grid th.hl{color:var(--brand-dim);background:var(--brand-soft);box-shadow:inset 0 -2px 0 var(--brand-line)}table.grid td.hl,table.grid tbody tr:hover td.hl{background:var(--brand-soft)}table.grid th.sticky-col,table.grid td.sticky-col{position:sticky;left:0;z-index:1}table.grid th.sticky-col{z-index:3;background:var(--surface-2)}table.grid td.sticky-col{background:var(--surface)}table.grid tbody tr:hover td.sticky-col{background:var(--surface-hover)}.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.r{text-align:right}.pos{color:var(--pos)}.neg{color:var(--neg)}.filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px;align-items:center}.chip{height:30px;padding:0 12px;border-radius:6px;border:1px solid var(--border);background:var(--surface);color:var(--text-2);font-size:12.5px;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:6px;font-family:var(--font-mono)}.chip:hover{border-color:var(--border-strong);color:var(--text)}.chip.on{background:var(--brand-soft);border-color:var(--brand-line);color:var(--brand-dim)}.btn{height:34px;padding:0 14px;border-radius:8px;border:1px solid var(--border);background:var(--surface);color:var(--text-2);font-size:13px;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:7px;font-family:var(--font-ui)}.btn:hover{border-color:var(--brand-line);color:var(--brand-dim)}.btn.primary{background:var(--brand);color:var(--on-brand);border-color:var(--brand)}.btn.primary:hover{background:var(--brand-2);border-color:var(--brand-2);color:var(--on-brand)}.btn.primary.grad{background:var(--grad-cta);border-color:transparent}.btn:disabled{opacity:.5;cursor:not-allowed}.inp{height:34px;padding:0 10px;border-radius:8px;border:1px solid var(--border-strong);background:var(--surface);color:var(--text);font-family:var(--font-mono);font-size:13px;outline:none}.inp:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}select.inp{font-family:var(--font-ui)}.cell-inp{width:72px;height:26px;padding:0 6px;border-radius:5px;border:1px solid var(--border);background:var(--surface);color:var(--text);font-family:var(--font-mono);font-size:12px;text-align:right}.cell-inp:focus{border-color:var(--brand);outline:none}.cell-inp.dirty{border-color:var(--brand);background:var(--brand-soft)}.cell-inp.txt{text-align:left;font-family:var(--font-ui);font-size:12.5px}.tgl{position:relative;width:40px;height:22px;border-radius:12px;background:var(--border-strong);cursor:pointer;transition:.15s;flex:none;border:none;padding:0}.tgl.on{background:var(--pos)}.tgl:after{content:"";position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:#fff;transition:.15s}.tgl.on:after{left:20px}.tgl:disabled{opacity:.5;cursor:not-allowed}.cell-toggle{width:16px;height:16px;accent-color:var(--brand);cursor:pointer}.fld{display:flex;flex-direction:column;gap:6px}.fld label{font-size:12px;color:var(--text-3);font-weight:600}.fld .inp,.fld select,.fld textarea{width:100%}.fld textarea{min-height:150px;padding:10px;border-radius:8px;border:1px solid var(--border-strong);background:var(--surface);color:var(--text);font-family:var(--font-mono);font-size:12px;line-height:1.6;resize:vertical}.fld textarea:focus{border-color:var(--brand);outline:none}.fld select{height:34px;padding:0 10px;border-radius:8px;border:1px solid var(--border-strong);background:var(--surface);color:var(--text);font-size:13px}.fld-row{display:flex;gap:12px}.fld-row .fld{flex:1}.kv{display:grid;grid-template-columns:96px 1fr;gap:6px 12px;font-size:12.5px}.kv .k{color:var(--text-3)}.pill{height:21px;padding:0 8px;border-radius:6px;font-size:11px;font-weight:700;display:inline-flex;align-items:center;gap:5px;font-family:var(--font-mono);white-space:nowrap}.pill.ok{background:var(--pos-soft);color:var(--pos)}.pill.crit,.pill.bad{background:var(--neg-soft);color:var(--neg)}.pill.warn{background:var(--warn-soft);color:var(--warn)}.pill.pending,.pill.mut{background:var(--surface-2);color:var(--text-2);border:1px solid var(--border)}.pill.brand,.pill.gold{background:var(--brand-soft);color:var(--brand-dim)}.role-badge{font-family:var(--font-mono);font-size:10.5px;padding:1px 7px;border-radius:5px}.role-badge.main{background:var(--pos-soft);color:var(--pos)}.role-badge.ref{background:var(--brand-soft);color:var(--brand-dim)}.badge-type{font-family:var(--font-mono);font-size:10px;color:var(--text-3);border:1px solid var(--border);border-radius:5px;padding:1px 6px}.note{margin-top:14px;padding:12px 16px;border:1px solid var(--border);border-radius:10px;background:var(--surface-2);font-size:12.5px;color:var(--text-2);line-height:1.7}.note b{color:var(--text)}.note.help{display:none}.placeholder{border:1px dashed var(--border-strong);border-radius:14px;background:var(--surface-2);padding:48px 28px;text-align:center;color:var(--text-3);font-size:13.5px;line-height:1.8}.placeholder .ph-tag{display:inline-block;font-family:var(--font-mono);font-size:11px;color:var(--text-3);border:1px dashed var(--border-strong);border-radius:6px;padding:2px 10px;margin-bottom:14px}.alert-card{border:1px solid var(--border);border-left:3px solid var(--neg);border-radius:9px;background:var(--surface);padding:14px 16px;box-shadow:var(--shadow-sm)}.alert-card.warn-lv{border-left-color:var(--warn)}.alert-card.info-lv{border-left-color:var(--brand)}.alert-card .a-head{display:flex;align-items:center;gap:9px;margin-bottom:7px;flex-wrap:wrap}.alert-card .a-title{font-size:13.5px;font-weight:700}.alert-card .a-desc{font-size:12.5px;color:var(--text-2);line-height:1.7}.alert-card .a-sugg{margin-top:8px;font-size:12px;color:var(--text-2);background:var(--surface-2);border:1px solid var(--hairline);border-radius:7px;padding:8px 11px;line-height:1.7}.alert-card .a-sugg b{color:var(--brand-dim)}.stat-line{display:flex;gap:18px;flex-wrap:wrap;margin:8px 0 2px}.stat-line .s{font-size:11px;color:var(--text-3)}.stat-line .s b{display:block;font-family:var(--font-mono);font-size:15px;color:var(--text);font-weight:600;margin-top:2px}.spin{display:inline-block;width:12px;height:12px;border:2px solid var(--brand-line);border-top-color:var(--brand);border-radius:50%;animation:spin .7s linear infinite}.modal-mask,.overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;background:var(--mask);display:flex;align-items:center;justify-content:center;padding:24px}.modal{width:560px;max-width:100%;max-height:88vh;overflow-y:auto;background:var(--surface);border:1px solid var(--border-strong);border-radius:14px;box-shadow:0 24px 64px -16px #00146659}.modal-head{display:flex;align-items:center;justify-content:space-between;padding:18px 20px;border-bottom:1px solid var(--border)}.modal-head h3{font-size:16px;font-weight:700}.modal-body{padding:18px 20px;display:flex;flex-direction:column;gap:14px}.modal-foot{display:flex;justify-content:flex-end;gap:8px;padding:16px 20px;border-top:1px solid var(--border)}.x-btn{background:none;border:none;color:var(--text-3);font-size:20px;cursor:pointer;line-height:1}.x-btn:hover{color:var(--text)}.drawer{position:fixed;top:0;right:0;bottom:0;width:560px;background:var(--surface);z-index:81;border-left:2px solid var(--brand);box-shadow:-8px 0 30px #0014662e;display:flex;flex-direction:column;animation:fadeUp .18s ease}.drawer-head{padding:18px 22px 14px;border-bottom:1px solid var(--border)}.drawer-body{flex:1;overflow-y:auto;padding:16px 22px}.toast{position:fixed;right:24px;bottom:24px;z-index:60;padding:11px 16px;border-radius:10px;font-size:13px;font-weight:600;box-shadow:var(--shadow-md);border:1px solid}.toast.ok{background:var(--pos-soft);border-color:var(--pos-line);color:var(--pos)}.toast.err{background:var(--neg-soft);border-color:var(--neg-line);color:var(--neg)}.toast.info{background:var(--brand-soft);border-color:var(--brand-line);color:var(--brand-dim)}.copyable{display:inline-flex;align-items:center;gap:5px;position:relative}.copy-btn{background:none;border:none;padding:0 2px;cursor:pointer;color:var(--text-3);font-size:11px;line-height:1;opacity:.65}.copy-btn:hover{opacity:1;color:var(--brand-dim)}.copy-tip{position:absolute;left:50%;transform:translate(-50%);bottom:calc(100% + 4px);background:var(--surface-2);border:1px solid var(--border-strong);border-radius:5px;padding:2px 7px;font-size:10.5px;color:var(--text-2);white-space:nowrap;z-index:5}.hbar-row{display:grid;grid-template-columns:92px 1fr 128px;gap:10px;align-items:center;padding:5px 0}.hbar-label{font-family:var(--font-mono);font-size:12px;white-space:nowrap}.hbar-track{height:14px;background:var(--surface-2);border-radius:3px;overflow:hidden}.hbar-fill{height:100%;background:linear-gradient(90deg,var(--brand-2),var(--brand));border-radius:3px}.hist{display:flex;align-items:flex-end;gap:14px;height:170px;padding:4px 6px 0}.hist .col{flex:1;display:flex;flex-direction:column;align-items:center;gap:5px;height:100%;justify-content:flex-end}.hist .bar{width:100%;border-radius:3px 3px 0 0;background:var(--brand)}.hist .v{font-family:var(--font-mono);font-size:11px;color:var(--text-2)}.hist .l{font-family:var(--font-mono);font-size:10px;color:var(--text-3);white-space:nowrap}.legend{display:flex;flex-direction:column;gap:9px}.legend .li{display:flex;align-items:center;gap:8px;font-size:12px}.legend .sw{width:10px;height:10px;border-radius:3px;flex:none}.legend .amt{margin-left:auto;font-family:var(--font-mono);font-size:12px}.dash-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}.dcard{border:1px solid var(--border);border-radius:12px;background:var(--surface);padding:13px 15px;box-shadow:var(--shadow-sm);border-left:3px solid var(--pos);line-height:normal}.dcard.stale{border-left-color:var(--neg);background:linear-gradient(0deg,var(--neg-soft),transparent)}.dcard.bad{border-left-color:var(--warn);background:linear-gradient(0deg,var(--warn-soft),transparent)}.dcard.closed{border-left-color:var(--text-3);opacity:.72}.dcard-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.dcard .snm{font-weight:700;font-size:15px;font-family:var(--font-mono)}.dcard .scn{font-size:11px;color:var(--text-3);margin-left:6px;font-weight:400}.dquote{display:grid;grid-template-columns:1fr 1fr;gap:6px;font-family:var(--font-mono);font-variant-numeric:tabular-nums}.dquote .lab{font-size:10px;color:var(--text-3);font-family:var(--font-ui);display:block}.dquote .bid{color:var(--pos);font-size:16px}.dquote .ask{color:var(--neg);font-size:16px}.dmeta{display:flex;justify-content:space-between;margin-top:10px;font-size:11px;color:var(--text-3);font-family:var(--font-mono)}:root{--blue:var(--brand);--blue-deep:var(--brand-dim);--blue-soft:var(--brand-soft);--blue-line:var(--brand-line);--navy:var(--brand-deep);--red:var(--neg);--shadow-card:var(--shadow-sm)}.app>div{min-width:0;display:flex;flex-direction:column}.side{background:var(--sidebar);border-right:1px solid var(--border);position:sticky;top:0;height:100vh;display:flex;flex-direction:column}.brand .mk{width:42px;height:42px;border-radius:11px;background:var(--grad-cta);color:var(--on-brand);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:16px;flex:none}.brand h1{font-size:18px;font-weight:700;letter-spacing:-.01em;line-height:1.1}.brand .sub{font-size:11px;color:var(--text-3);margin-top:1px;font-family:var(--font-mono);letter-spacing:.09em;text-transform:uppercase}.nav-g{font-size:11px;font-weight:600;letter-spacing:.14em;color:var(--text-3);text-transform:uppercase;padding:14px 10px 8px}.nav-i{position:relative;display:flex;align-items:center;gap:11px;padding:8px 12px;border-radius:9px;cursor:pointer;font-size:13.5px;color:var(--text-2);margin-bottom:1px}.nav-i:hover{background:var(--surface-hover)}.nav-i.on{color:var(--brand-dim);font-weight:600}.nav-i.on:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:var(--brand-soft);border-radius:9px;z-index:0}.nav-i.on:after{content:"";position:absolute;left:-12px;top:8px;bottom:8px;width:3px;background:var(--brand);border-radius:0 3px 3px 0}.nav-i>*{position:relative;z-index:1}.nav-i .n{margin-left:auto;font-family:var(--font-mono);font-size:10.5px;color:var(--text-3)}.badge-alert{background:var(--neg);color:#fff;border-radius:9px;padding:1px 7px;font-size:10.5px;font-weight:700;line-height:1.5;font-family:var(--font-mono)}.side-f{padding:12px 20px;border-top:1px solid var(--border);font-size:12px;color:var(--text-3);display:flex;flex-direction:column;gap:6px;font-family:var(--font-mono)}.dot{width:6px;height:6px;border-radius:50%;display:inline-block;margin-right:6px}.dot.ok{background:var(--pos);animation:pulseDot 2s infinite}.dot.bad{background:var(--neg)}.dot.warn{background:var(--warn)}.top{position:sticky;top:0;z-index:30;min-height:64px;display:flex;align-items:center;gap:14px;padding:6px 28px;background:var(--topbar);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--border)}.top>div:first-child{min-width:0;overflow:hidden}.top h2{font-size:19px;font-weight:700;letter-spacing:-.01em;white-space:nowrap}.top .kick{font-size:12.5px;color:var(--text-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.top .r{margin-left:auto;display:flex;align-items:center;gap:10px;justify-content:flex-end;flex-wrap:nowrap;flex:none}.top .r .fresh{white-space:nowrap;line-height:1.6}main.main{flex:1;padding:24px 28px 56px;max-width:1400px;overflow-x:hidden;animation:fadeUp .2s ease}.card{padding:0;margin-bottom:14px;overflow:hidden;border-radius:12px}.card-h{padding:13px 16px 11px;border-bottom:1px solid var(--hairline);display:flex;align-items:center;gap:10px}.card-h h3{font-size:13.5px;font-weight:700;display:flex;align-items:center;gap:8px}.card-h h3:before{content:"";width:3px;height:14px;background:var(--brand);border-radius:2px}.card-h .sub{font-size:11px;color:var(--text-3)}.card-h .r{margin-left:auto;display:flex;gap:8px;align-items:center}.card-b{padding:14px 16px}.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;margin-bottom:16px}.kpi{border:1px solid var(--border);border-radius:13px;padding:16px 18px;background:var(--surface);box-shadow:var(--shadow-sm);line-height:normal}.kpi .t{font-size:12.5px;color:var(--text-2);font-weight:600}.kpi .v{font-family:var(--font-mono);font-size:26px;font-weight:600;margin-top:10px;font-variant-numeric:tabular-nums;letter-spacing:-.01em}.kpi .s{font-size:11.5px;color:var(--text-3);margin-top:8px;font-family:var(--font-mono)}.tw{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:13px}th{background:var(--surface-2);text-align:left;padding:11px 14px;font-size:11px;letter-spacing:.06em;color:var(--text-3);text-transform:uppercase;font-weight:600;white-space:nowrap;border-bottom:1px solid var(--border)}th.s{cursor:pointer;-webkit-user-select:none;user-select:none}th.s:hover{color:var(--brand-dim)}th .ar{color:var(--brand);margin-left:3px}td{padding:11px 14px;white-space:nowrap;border-bottom:1px solid var(--hairline)}tbody tr:last-child td{border-bottom:none}tbody tr:hover{background:var(--surface-hover)}tbody tr.click{cursor:pointer}.mut{color:var(--text-3)}.pill.p-g{background:var(--pos-soft);color:var(--pos)}.pill.p-r{background:var(--neg-soft);color:var(--neg)}.pill.p-w{background:var(--warn-soft);color:var(--warn)}.pill.p-m{background:var(--surface-2);color:var(--text-2);border:1px solid var(--border)}.pill.p-b{background:var(--brand-soft);color:var(--brand-dim)}.inp{font-family:var(--font-ui);min-width:190px}select{height:34px;padding:0 10px;border-radius:8px;border:1px solid var(--border-strong);background:var(--surface);color:var(--text);font-size:13px;font-family:var(--font-ui);outline:none}select:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}.cb{display:flex;align-items:center;gap:6px;font-size:12.5px;color:var(--text-2);cursor:pointer}.bar{display:flex;gap:9px;align-items:center;flex-wrap:wrap;padding:12px 16px;border-bottom:1px solid var(--hairline);background:var(--surface-2)}.note{margin:0 0 14px}.err{padding:12px 16px;background:var(--neg-soft);border:1px solid var(--neg-line);border-radius:10px;font-size:12.5px;color:var(--neg);margin-bottom:14px;font-family:var(--font-mono)}.pg{display:flex;align-items:center;gap:10px;padding:11px 16px;border-top:1px solid var(--hairline);font-size:12.5px;color:var(--text-2)}.pg .sp{margin-left:auto;display:flex;gap:7px;align-items:center}.empty{padding:44px;text-align:center;color:var(--text-3);font-size:13.5px}.ovl{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--mask);z-index:69}.drw{position:fixed;top:0;right:0;bottom:0;width:820px;max-width:92vw;background:var(--surface);z-index:70;border-left:2px solid var(--brand);box-shadow:-8px 0 30px #0014662e;display:flex;flex-direction:column;animation:fadeUp .18s ease}.drw-h{padding:16px 22px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:12px}.drw-b{padding:16px 22px;overflow-y:auto;flex:1}.kv{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-bottom:18px}.kv div .k{font-size:11px;color:var(--text-3);margin-bottom:2px}.kv div .v{font-size:14.5px;font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-weight:600}.fresh{display:flex;align-items:center;gap:6px;font-size:11.5px;font-family:var(--font-mono);padding:4px 10px;border-radius:7px;border:1px solid var(--border)}.fresh.ok{background:var(--pos-soft);border-color:var(--pos-line);color:var(--pos)}.fresh.warn{background:var(--warn-soft);border-color:var(--warn-line);color:var(--warn)}.fresh.bad{background:var(--neg-soft);border-color:var(--neg-line);color:var(--neg)}.warn-card{border-color:var(--neg);background:var(--neg-soft)}.fchip{display:inline-flex;align-items:center;gap:4px;cursor:pointer;-webkit-user-select:none;user-select:none;font-size:12px;font-family:var(--font-mono);padding:3px 10px;border-radius:6px;border:1px solid var(--border-strong);background:var(--surface);color:var(--text-2);white-space:nowrap}.fchip:hover{border-color:var(--brand-line);color:var(--brand-dim)}.fchip.on{background:var(--brand);border-color:var(--brand);color:var(--on-brand)}.fchip.on.ok{background:var(--pos);border-color:var(--pos)}.fchip.on.bad{background:var(--neg);border-color:var(--neg)}.tzbox{display:grid;grid-template-columns:auto auto auto;gap:2px 12px;align-items:baseline;font-family:var(--font-mono);font-size:11px;line-height:1.5;color:var(--text-2);border:1px solid var(--border);border-radius:8px;padding:5px 12px;background:var(--surface-2)}.tzbox .row{display:contents}.tzbox .lb{color:var(--text-3);white-space:nowrap}.tzbox .zn{color:var(--text-2);white-space:nowrap}.tzbox b{font-weight:600;color:var(--text);font-variant-numeric:tabular-nums;white-space:nowrap}.umenu{position:relative}.uchip{display:flex;align-items:center;gap:8px;cursor:pointer;-webkit-user-select:none;user-select:none;padding:4px 8px 4px 4px;border:1px solid var(--border);border-radius:9px;background:var(--surface)}.uchip:hover{border-color:var(--brand-line)}.uchip .av{width:26px;height:26px;border-radius:8px;background:var(--brand);color:var(--on-brand);flex:none;display:grid;place-items:center;font-size:11px;font-weight:700}.uchip .nm{display:flex;flex-direction:column;line-height:1.3;font-size:12px;color:var(--text);max-width:150px}.uchip .nm .n1{max-width:130px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.uchip .nm i{font-style:normal;font-size:11px;color:var(--text-3);font-family:var(--font-mono)}.uchip .cv{font-size:11px;color:var(--text-3)}.umask{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40}.udrop{position:absolute;right:0;top:calc(100% + 7px);z-index:41;min-width:190px;background:var(--surface);border:1px solid var(--border);border-radius:11px;box-shadow:var(--shadow-md);overflow:hidden;padding:5px}.udrop .em{padding:8px 12px;font-size:11px;color:var(--text-3);font-family:var(--font-mono);border-bottom:1px solid var(--border);margin-bottom:4px;word-break:break-all}.udrop .it{padding:8px 12px;font-size:13px;border-radius:7px;cursor:pointer;color:var(--text-2)}.udrop .it:hover{background:var(--surface-hover);color:var(--text)}body{font-size:13px}.brand .mk{width:36px;height:36px;font-size:14px;border-radius:9px}.brand h1{font-size:16px}.brand .sub,.nav-g{font-size:10px}.nav-i{font-size:12.5px;padding:7px 11px}.nav-i .n{font-size:10px}.side-f{font-size:11px}.top{min-height:56px}.top h2{font-size:16.5px}.top .kick{font-size:11.5px}.fresh{font-size:11px;padding:3px 9px}.kpi{padding:13px 15px}.kpi .t{font-size:11.5px}.kpi .v{font-size:22px;margin-top:8px}.kpi .s{font-size:11px;margin-top:6px}.card-h{padding:11px 14px 10px}.card-h h3{font-size:12.5px}.card-h .sub{font-size:10.5px}table{font-size:12.5px}th{font-size:10.5px;padding:9px 12px}td{padding:9px 12px}.pill{height:20px;font-size:10.5px;padding:0 8px}.btn{height:30px;font-size:12px;padding:0 12px}.chip{height:27px;font-size:12px}.inp,select{height:30px;font-size:12.5px}.bar{padding:10px 14px}.note{font-size:12px;padding:10px 14px}.err{font-size:12px}.pg{font-size:12px;padding:9px 14px}.empty{font-size:12.5px;padding:36px}.kv div .k{font-size:10.5px}.kv div .v{font-size:13.5px}.drw-h{padding:13px 18px}.drw-b{padding:14px 18px}.bar{padding:11px 16px;row-gap:8px}.bar+.bar{padding-top:0}.fresh.click{cursor:pointer}.fresh .cv{font-size:11px;opacity:.65;margin-left:2px}.syncdrop{position:absolute;right:0;top:calc(100% + 7px);z-index:41;width:430px;background:var(--surface);border:1px solid var(--border);border-radius:11px;box-shadow:0 8px 28px #0f172a29;overflow:hidden}.syncdrop.gd{width:min(760px,94vw);max-height:84vh;overflow-y:auto}.gd-cols{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:stretch}.gd-cols .gd-col{min-width:0}.gd-cols .gd-col+.gd-col{border-left:1px solid var(--border)}@media (max-width:820px){.gd-cols{grid-template-columns:minmax(0,1fr)}.gd-cols .gd-col+.gd-col{border-left:none;border-top:1px solid var(--border)}}.gd-tab{font-size:11.5px}.gd-tab .row{display:grid;grid-template-columns:minmax(0,1fr) auto auto auto;gap:0 12px;align-items:center;padding:5px 12px;border-bottom:1px solid var(--border)}.gd-tab .row.h{font-size:10.5px;color:var(--text-2);background:var(--surface);font-weight:600}.gd-tab .num{font-family:var(--font-mono);text-align:right;min-width:46px;white-space:nowrap}.syncdrop.gd .synctb td:nth-child(2){white-space:nowrap}.gd-links{display:flex;flex-wrap:wrap;gap:6px;margin-top:9px}.gl{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-family:var(--font-mono);border:1px solid var(--border);border-radius:20px;padding:2px 10px;background:var(--surface);color:var(--text-2);cursor:default;white-space:nowrap}.gl.bad{border-color:var(--neg);color:var(--neg);font-weight:700}.gl .v{color:var(--text-3)}.gl.bad .v{color:var(--neg)}.syncdrop.gd .synctb{table-layout:fixed}.syncdrop.gd .synctb th:nth-child(1),.syncdrop.gd .synctb td:nth-child(1){width:26%}.syncdrop.gd .synctb th:nth-child(2),.syncdrop.gd .synctb td:nth-child(2){width:46%}.syncdrop.gd .synctb th{padding:5px 12px;font-size:10.5px}.syncdrop.gd .synctb td{padding:5px 12px;font-size:11.5px;overflow:hidden;text-overflow:ellipsis}.syncdrop.gd .ft{padding:9px 14px;font-size:10.5px;line-height:1.65}.syncdrop.gd .sec{padding:10px 14px}.syncdrop.gd .sec-t2{padding:9px 12px 0}.gd-reads{font-size:11px;line-height:1.9;color:var(--text-2);padding:7px 12px 9px}.gd-reads .mut{font-size:10px}.amodal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:flex;align-items:center;justify-content:center;padding:22px}.amodal .mask{position:absolute;top:0;right:0;bottom:0;left:0;background:#0f172a73}.amodal .box{position:relative;width:min(1160px,96vw);max-height:92vh;display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--border);border-radius:14px;box-shadow:0 24px 64px #0f172a47;overflow:hidden}.amodal .box-h{display:flex;align-items:center;gap:10px;padding:12px 16px;flex:none;border-bottom:1px solid var(--border);background:var(--surface-2)}.amodal .box-b{overflow-y:auto;padding:14px 16px}.syncdrop .hd{padding:10px 14px;border-bottom:1px solid var(--border);font-size:11px;color:var(--text-2);font-family:var(--font-mono);background:var(--surface-2)}.syncdrop table.synctb{width:100%;border-collapse:collapse}.syncdrop .synctb th{padding:8px 14px;font-size:11px;background:var(--surface)}.syncdrop .synctb td{padding:8px 14px;font-size:12px;white-space:nowrap}.syncdrop .synctb td:nth-child(2){white-space:normal;font-size:11px}.syncdrop .ft{padding:12px 14px;border-top:1px solid var(--border);background:var(--surface-2);font-size:11px;line-height:1.7;color:var(--text-2)}.warn-t{color:var(--warn)}.lagbadge{font-size:11px;padding:1px 7px;border-radius:20px;margin-left:2px;background:var(--warn-soft);color:var(--warn);border:1px solid rgba(217,119,6,.3)}.lagbadge.bad{background:var(--neg-soft);color:var(--neg);border-color:#e11d484d}.syncdrop .sec{padding:12px 14px;background:var(--surface-2);border-bottom:1px solid var(--border)}.syncdrop .sec-t{font-size:11px;font-weight:700;color:var(--text-2);letter-spacing:.06em;display:flex;align-items:baseline;gap:8px;margin-bottom:8px}.syncdrop .sec-t .mut{font-weight:400;letter-spacing:0}.syncdrop .sec-t2{padding:12px 14px 0;margin-bottom:0}.syncdrop .conn{display:flex;align-items:center;gap:8px;font-size:12px;font-family:var(--font-mono)}.syncdrop .conn.ok b{color:var(--pos)}.syncdrop .conn.warn b{color:var(--warn)}.syncdrop .conn.bad b{color:var(--neg)}.syncdrop .sec-n{font-size:11px;line-height:1.65;color:var(--text-3);margin-top:7px}.srcdrop{position:absolute;right:0;top:calc(100% + 7px);z-index:41;width:340px;background:var(--surface);border:1px solid var(--border);border-radius:11px;box-shadow:0 8px 28px #0f172a29;overflow:hidden}.srcdrop .hd{padding:9px 14px;border-bottom:1px solid var(--border);font-size:11px;color:var(--text-2);font-family:var(--font-mono);background:var(--surface-2);letter-spacing:.04em}.srcdrop .it{display:flex;align-items:center;gap:7px;padding:10px 14px;cursor:pointer;font-size:12px;border-bottom:1px solid var(--border);white-space:nowrap}.srcdrop .it:hover{background:var(--surface-hover)}.srcdrop .it.on{background:var(--brand-soft);box-shadow:inset 3px 0 0 var(--brand);font-weight:650}.srcdrop .it b{font-size:12.5px}.srcdrop .it .pl{font-size:10.5px;padding:1px 6px;border-radius:20px;font-family:var(--font-mono);border:1px solid var(--border);color:var(--text-3);text-transform:uppercase;letter-spacing:.04em}.srcdrop .it .off{font-size:10.5px;padding:1px 6px;border-radius:20px;background:var(--neg-soft);color:var(--neg);border:1px solid var(--neg-line)}.srcdrop .it .hb{margin-left:auto;font-size:11px}.srcdrop .ft{padding:11px 14px;background:var(--surface-2);font-size:11px;line-height:1.65;color:var(--text-3)}.sk{background:linear-gradient(90deg,var(--surface-2) 25%,var(--surface-hover) 50%,var(--surface-2) 75%);background-size:200% 100%;animation:skShine 1.2s ease-in-out infinite;border-radius:6px}@keyframes skShine{0%{background-position:200% 0}to{background-position:-200% 0}}.fld{display:inline-flex;flex-direction:column;gap:4px}.flab{font-size:11px;color:var(--text-3);font-weight:600}.langsw{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;padding:0;border:1px solid var(--border);border-radius:9px;background:var(--surface);color:var(--text-2);cursor:pointer;-webkit-user-select:none;user-select:none}.langsw:hover{border-color:var(--brand-line);color:var(--brand-dim)}.langsw svg{flex:none;color:var(--brand)}.langsw-drop{min-width:160px}.langsw-drop .it{display:flex;justify-content:space-between;align-items:center;gap:12px}.langsw-drop .it.on{color:var(--brand-dim);font-weight:600;background:var(--brand-soft)}.langsw-drop .ck{color:var(--brand);font-size:12px}.tzsw-drop{min-width:280px;padding:6px}.tzsw-drop .hd{font-size:11px;color:var(--text-3);font-weight:600;padding:6px 12px 4px}.tzsw-drop .it{display:flex;align-items:flex-start;padding:8px 12px}.tzsw-drop .it.on{color:var(--brand-dim);background:var(--brand-soft)}.tzsw-drop .it.on .ck{font-weight:700}.tzsw-drop .it.dis{opacity:.5;cursor:not-allowed}.tzsw-drop .ft{font-size:11px;line-height:1.6;color:var(--text-3);padding:8px 12px 4px;border-top:1px solid var(--border);margin-top:4px}.tzbox .row.on b{color:var(--brand-dim)}.tzbox.click{cursor:pointer}.tzbox.click:hover{border-color:var(--brand-line)}
