:root{color-scheme:dark;--bg:#0c1015;--surface:#121a22;--border:#293640;--text:#dfe6ed;--muted:#8b9ead;--green:#86ddba;--sidebar:224px}
*{box-sizing:border-box}
html{min-width:320px;scrollbar-gutter:stable}
body{margin:0;background:var(--bg);color:var(--text);font:14px/1.65 -apple-system,BlinkMacSystemFont,"Segoe UI","Microsoft YaHei","Noto Sans CJK SC",sans-serif}
button,input,select,textarea{font:inherit}
button,a,input,select,textarea{outline-offset:4px}
button{cursor:pointer}
button:disabled{opacity:.55;cursor:wait}
a{color:inherit;text-decoration:none}
[hidden]{display:none!important}
h1,h2,h3,p{overflow-wrap:anywhere}
h1{font-size:28px;line-height:1.35;letter-spacing:-.6px;margin:0 0 8px}
h2{font-size:15px;line-height:1.5;margin:0}
h3{font-size:14px;margin:0}
p{margin:6px 0 18px}
.muted{color:var(--muted)}
.small{font-size:12px}
.error{color:#f5a1a6}
.eyebrow,.nav-label{font-size:10px;font-weight:650;letter-spacing:1.7px;color:#81919f}
.primary,.secondary,.danger{display:inline-flex;align-items:center;justify-content:center;gap:8px;flex-shrink:0;min-height:40px;padding:9px 15px;border:1px solid transparent;border-radius:7px;font-size:12px;font-weight:650;line-height:1.5;white-space:nowrap}
.primary{background:var(--green);color:#10231b}
.primary:hover{background:#a5edce}
.secondary{background:#1a252f;border-color:#354552;color:#d5e0e9}
.secondary:hover{background:#243340}
.danger{background:#4b2529;color:#ffb8bc;border-color:#6f383e}
input,select,textarea{display:block;min-width:0;width:100%;min-height:42px;padding:10px 12px;background:#0c131a;border:1px solid #354653;border-radius:7px;color:var(--text);line-height:1.5}
input:focus,select:focus,textarea:focus{border-color:var(--green);outline:1px solid #86ddba40}
input[type=checkbox]{width:18px;height:18px;min-height:18px;margin:0;accent-color:var(--green)}
input::placeholder{color:#708495}
select{max-width:100%}
.login-screen{display:grid;place-items:center;min-height:100dvh;padding:24px;background:radial-gradient(ellipse at 70% 15%,#17322c55,transparent 48%),var(--bg)}
.login-card{width:min(420px,100%);padding:36px;border:1px solid var(--border);background:#121920;border-radius:16px;box-shadow:0 30px 100px #0005}
.brandmark{font-size:38px;font-weight:800;letter-spacing:-3px;line-height:1.4}
.brandmark span{font-size:13px;color:#74d5b0;padding-left:5px}
.login-card h1{font-size:26px;margin:12px 0}
.login-card label{display:block;margin-top:18px;font-size:13px}
.login-card input{margin-top:7px}
.login-card .primary{width:100%;justify-content:space-between;margin-top:24px}
.login-foot{border-top:1px solid #26313a;color:#8295a4;font-size:11px;margin-top:24px;padding-top:18px}
.shell{min-height:100dvh}
.sidebar{position:fixed;inset:0 auto 0 0;z-index:20;width:var(--sidebar);height:100dvh;padding:25px 16px 18px;background:#10161d;border-right:1px solid #263039;display:flex;flex-direction:column;gap:0}
.brand{flex-shrink:0;padding:0 13px;font-size:25px;line-height:1.5;font-weight:750;letter-spacing:-1px}
.brand-dot{font-size:10px;color:var(--green);vertical-align:top;margin-left:5px;position:relative;top:9px}
.node-badge{flex-shrink:0;border:1px solid #2d3a43;border-radius:5px;padding:7px 10px;margin:20px 11px;color:#9eb6b4;font-size:11px}
.nav-label{flex-shrink:0;margin:0 13px 12px}
.sidebar nav{display:flex;flex-direction:column;flex:1;min-height:0;overflow-y:auto;gap:5px;scrollbar-width:thin}
.nav-link{display:flex;align-items:center;gap:11px;flex-shrink:0;padding:10px 12px;border-radius:7px;color:#97a8b6;font-size:13px;line-height:1.5;white-space:nowrap}
.nav-link:hover{background:#1c2630;color:#dce6ed}
.nav-link.active{background:#22372f;color:#a5e5cb}
.nav-icon{flex:0 0 20px;text-align:center;font-size:17px;color:#8ca499}
.sidebar-bottom{flex-shrink:0;display:flex;align-items:center;gap:8px;margin-top:15px;padding:16px 11px 0;border-top:1px solid #26333c;font-size:11px;color:#8ba1af}
.status-dot{width:6px;height:6px;flex-shrink:0;border-radius:50%;background:var(--green)}
.link-button{background:none;border:0;color:#a6bfb6;padding:5px 0;font-size:12px;margin-left:auto;white-space:nowrap}
main{margin-left:var(--sidebar);min-width:0}
.topbar{display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:66px;padding:14px 32px;border-bottom:1px solid #252f38;font-size:12px;color:#8a9dab}
.topbar>span{min-width:0;overflow-wrap:anywhere}
.topbar>div{display:flex;align-items:center;justify-content:flex-end;gap:16px;flex-shrink:0}
#clock{font-variant-numeric:tabular-nums;font-size:11px;white-space:nowrap}
.page{width:100%;max-width:1600px;min-width:0;margin:0 auto;padding:32px}
.page-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:26px}
.page-heading>div:first-child{flex:1;min-width:0}
.page-heading h1{font-size:28px;margin:0 0 8px}
.page-heading p{max-width:800px;margin:0;color:var(--muted);font-size:13px}
.actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-width:0}
.page-heading>.actions{justify-content:flex-end;flex-shrink:0;padding-top:2px}
.pill{display:inline-flex;align-items:center;gap:5px;max-width:100%;padding:3px 8px;border:1px solid #334740;border-radius:5px;color:#a3dfc3;background:#1b3028;font-size:11px;line-height:1.6;white-space:nowrap}
.pill.warning{background:#30291a;color:#e0c58f;border-color:#50452c}
.pill.red{background:#392228;color:#e5a0aa;border-color:#56313b}
.pill.neutral{background:#1d2833;color:#a5bbce;border-color:#354452}
.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:24px}
.stat{min-width:0;min-height:136px;padding:19px 20px;background:var(--surface);border:1px solid var(--border);border-radius:9px}
.stat-label{font-size:12px;color:#91a5b5}
.stat-number{font-size:clamp(24px,2.5vw,32px);font-weight:600;line-height:1.3;letter-spacing:-.7px;margin:12px 0 7px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.stat-note{font-size:11px;color:#8297a6;line-height:1.6}
.panel{min-width:0;max-width:100%;overflow:hidden;margin:0 0 22px;border:1px solid var(--border);background:var(--surface);border-radius:9px}
.panel-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;padding:18px 21px;border-bottom:1px solid #2a3741}
.panel-header h2{min-width:0;font-size:14px}
.panel-body{min-width:0;padding:22px}
.panel-body>p:last-child{margin-bottom:0}
.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:22px}
.grid-2>*{min-width:0}
.flow{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;padding:24px 22px}
.flow-step{min-width:0;position:relative}
.flow-step:not(:last-child):after{content:"→";position:absolute;right:0;top:0;color:#6d8b7f}
.flow-step strong{display:block;margin-top:12px;font-size:12px}
.flow-step p{font-size:11px;color:#8ca0ad;margin:6px 0 0}
.step-circle{display:grid;place-items:center;width:26px;height:26px;border:1px solid #4d6c60;border-radius:50%;background:#21362e;color:#aedac8;font-size:11px}
.table-wrap{width:100%;min-width:0;overflow:auto;overscroll-behavior-x:contain}
.data-table{border-collapse:collapse;width:100%;min-width:680px;font-size:12px}
.data-table th{text-align:left;color:#91a5b5;font-size:11px;font-weight:500;padding:12px 18px;background:#101820;white-space:nowrap}
.data-table td{max-width:320px;border-top:1px solid #293741;padding:14px 18px;vertical-align:top;overflow-wrap:anywhere}
.data-table tr:hover td{background:#18222d}
.data-table .actions{gap:6px;min-width:120px}
.data-table button{min-height:34px;padding:6px 10px;font-size:11px}
.cell-sub{margin-top:5px;font-size:11px;color:#8a9eac;line-height:1.6;overflow-wrap:anywhere}
.mono{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:12px;overflow-wrap:anywhere}
pre.mono{max-width:100%;margin:0 0 18px;white-space:pre-wrap;overflow:auto}
.positive{color:#91dcb9}
.empty{padding:32px 24px;color:#8ea3b2;text-align:center;font-size:13px;overflow-wrap:anywhere}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:20px 24px}
.field{min-width:0}
.field label{display:block;min-height:20px;margin-bottom:7px;color:#b0c0cb;font-size:12px;line-height:1.65;overflow-wrap:anywhere}
.field .hint{margin-top:7px;color:#8a9eac;font-size:11px;line-height:1.65;overflow-wrap:anywhere}
.field.full{grid-column:1/-1}
.field.check{display:grid;grid-template-columns:18px minmax(0,1fr);grid-column:1/-1;align-items:center;column-gap:11px;row-gap:0;min-height:34px}
.field.check label{min-height:0;margin:0}
.field.check .hint{grid-column:2;margin-top:3px}
.form-footer{display:flex;align-items:center;flex-wrap:wrap;gap:15px;margin-top:24px;padding-top:20px;border-top:1px solid #2a3741}
.form-footer>span{flex:1;min-width:0;overflow-wrap:anywhere}
.info-box{padding:14px 17px;margin-bottom:22px;border:1px solid #335346;border-radius:7px;background:#18302b66;color:#b0d0c2;font-size:12px;line-height:1.8;overflow-wrap:anywhere}
.warning-box{background:#30271988;border-color:#5b4930;color:#dfc69b}
.key-item{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;align-items:center;gap:15px;padding:18px 0;border-top:1px solid #2a3741}
.key-item:first-child{border-top:0;padding-top:0}
.key-item:last-child{padding-bottom:0}
.key-item>*{min-width:0}
.key-name{font-size:13px;overflow-wrap:anywhere}
.key-item button{min-width:70px}
.toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:12px;padding:16px 20px;border-bottom:1px solid var(--border)}
.toolbar input{flex:1 1 200px;max-width:420px;min-width:0}
.event-card{padding:20px;border-bottom:1px solid var(--border)}
.event-card:last-child{border-bottom:0}
.event-title{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.event-title>div,.event-title>strong{min-width:0;overflow-wrap:anywhere}
.event-title strong{font-size:14px}
.event-meta{margin-top:7px;font-size:12px;color:#8da2b2;overflow-wrap:anywhere}
.markets{display:flex;gap:8px;flex-wrap:wrap;margin-top:15px}
.market-tag{max-width:100%;padding:5px 9px;background:#1e2b35;border-radius:5px;color:#acc0cd;font-size:11px;overflow-wrap:anywhere}
.heartbeat{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:14px 0;border-bottom:1px solid #2a3741;font-size:12px}
.heartbeat:last-child{border-bottom:0}
.heartbeat>span:first-child{min-width:0;flex:1;overflow-wrap:anywhere}
.heartbeat>span:last-child{max-width:70%;min-width:0;text-align:right}
.section-note{font-size:12px;color:#91a6b5;margin-bottom:20px}
.toast{position:fixed;bottom:24px;right:24px;z-index:50;max-width:min(460px,calc(100% - 40px));padding:14px 20px;border:1px solid #4b8369;border-radius:8px;background:#244b3d;color:#d3f2e3;box-shadow:0 10px 50px #0008;overflow-wrap:anywhere}
.toast.bad{background:#4a2930;border-color:#7d414e;color:#ffd5da}
dialog{width:min(800px,calc(100vw - 32px));max-height:85dvh;padding:26px;border:1px solid #3c4c59;border-radius:12px;background:#131d26;color:#d8e6ef;overflow:auto}
dialog::backdrop{background:#000a}
dialog h2{margin-bottom:16px}
dialog pre{max-height:55dvh;padding:17px;white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px;background:#0b131a;overflow:auto}
dialog button{margin-top:16px}
.candidate{padding:17px 0;border-bottom:1px solid #30414e;overflow-wrap:anywhere}
.candidate .actions{margin-top:12px}
@media(max-width:1200px){.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-2{grid-template-columns:minmax(0,1fr)}.page{padding:26px}.topbar{padding-inline:26px}}
@media(max-width:1000px){.key-item{grid-template-columns:minmax(0,1fr) auto}.key-item>:first-child{grid-column:1/-1}.page-heading{flex-wrap:wrap}.page-heading>.actions{justify-content:flex-start}.topbar #clock{display:none}}
@media(max-width:760px){.sidebar{position:relative;inset:auto;width:100%;height:auto;padding:15px 16px 12px;border-right:0;border-bottom:1px solid var(--border)}.brand{font-size:23px;padding:0 4px;max-width:calc(100% - 60px)}.node-badge,.nav-label{display:none}.sidebar nav{flex-direction:row;flex:none;gap:5px;overflow-x:auto;overflow-y:hidden;margin-top:14px;padding-bottom:6px}.nav-link{padding:9px 11px;font-size:12px}.sidebar-bottom{position:absolute;right:22px;top:16px;border:0;padding:0;margin:0}.sidebar-bottom #connection,.sidebar-bottom .status-dot{display:none}main{margin:0}.topbar{min-height:53px;padding:12px 18px;gap:12px}.topbar>div{gap:8px}.page{padding:24px 18px}.page-heading{gap:16px;margin-bottom:22px}.page-heading h1{font-size:25px}.page-heading>.actions{padding:0}.stats{gap:12px}.stat{padding:17px;min-height:126px}.form-grid{grid-template-columns:minmax(0,1fr);gap:19px}.panel-header{padding:17px}.panel-body{padding:19px}.flow{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;padding:22px}.flow-step:nth-child(2):after{display:none}.data-table td,.data-table th{padding:12px 14px}.toolbar{padding:16px}.heartbeat{gap:10px}.login-card{padding:28px}}
@media(max-width:420px){.stats{grid-template-columns:minmax(0,1fr)}.stat{min-height:112px}.stat-number{font-size:29px}.page-heading>.actions{width:100%}.key-item{grid-template-columns:minmax(0,1fr)}.key-item>:first-child{grid-column:auto}.key-item button{justify-self:start}.topbar{font-size:11px}.topbar .pill{font-size:10px}.page{padding:22px 14px}.login-screen{padding:18px}.login-card h1{font-size:24px}}
