:root {
  color-scheme: dark;
  --bg:#060a0f; --panel:#0b1018; --panel2:#0f1520;
  --border:rgba(255,255,255,0.07); --border2:rgba(255,255,255,0.13);
  --c1:#00d4f5; --c2:#2ddb6e; --c3:#ff7043;
  --c1d:rgba(0,212,245,0.09); --c2d:rgba(45,219,110,0.09); --c3d:rgba(255,112,67,0.09);
  --text:#b8cfe0; --text-hi:#ddeeff; --muted:#3d5468; --muted2:#182433; --white:#e4f2ff;
  --shadow:0 8px 32px rgba(0,0,0,0.55); --shadow-sm:0 2px 12px rgba(0,0,0,0.4);
  --glass-bg:#0e1520; --glass-bg2:#0a1018;
  --glass-border:rgba(255,255,255,0.09); --glass-hi:rgba(255,255,255,0.03);
  --glass-blur:0px; --glass-sat:100%;
  --bg-gradient:
    radial-gradient(ellipse 1100px 600px at 5% 0%,   rgba(0,180,220,0.07) 0%, transparent 65%),
    radial-gradient(ellipse  800px 500px at 95% 15%,  rgba(45,200,110,0.05) 0%, transparent 60%),
    radial-gradient(ellipse  900px 700px at 60% 100%, rgba(255,100,60,0.04) 0%, transparent 60%),
    linear-gradient(180deg, #07090e 0%, #050709 100%);
  --grid-line:rgba(0,200,240,0.025);
  --radius:10px; --radius-sm:6px;
}
@media (prefers-color-scheme: light) {
  :root {
    color-scheme: light;
    --bg:#f0f4f8; --panel:#ffffff; --panel2:#f7f9fc;
    --border:rgba(15,30,60,0.09); --border2:rgba(15,30,60,0.16);
    --c1:#0070d8; --c2:#0a9e4a; --c3:#d95a1a;
    --c1d:rgba(0,112,216,0.08); --c2d:rgba(10,158,74,0.08); --c3d:rgba(217,90,26,0.08);
    --text:#1a2e44; --text-hi:#0a1929; --muted:#5a7080; --muted2:#e8eef5; --white:#0a1929;
    --shadow:0 8px 28px rgba(10,24,50,0.12); --shadow-sm:0 2px 10px rgba(10,24,50,0.08);
    --glass-bg:rgba(255,255,255,0.85); --glass-bg2:rgba(255,255,255,0.96);
    --glass-border:rgba(15,30,60,0.10); --glass-hi:rgba(255,255,255,0.70);
    --glass-blur:20px; --glass-sat:110%;
    --bg-gradient:
      radial-gradient(ellipse 1200px 700px at 0% 0%,   rgba(0,112,216,0.10) 0%, transparent 60%),
      radial-gradient(ellipse  900px 600px at 100% 20%, rgba(10,158,74,0.07) 0%, transparent 55%),
      radial-gradient(ellipse  800px 500px at 50% 100%, rgba(217,90,26,0.06) 0%, transparent 55%),
      linear-gradient(160deg, #eef3fa 0%, #f5f0ee 100%);
    --grid-line:rgba(0,60,160,0.04);
  }
}
:root[data-theme='dark'] {
  color-scheme:dark;
  --bg:#060a0f; --panel:#0b1018; --panel2:#0f1520;
  --border:rgba(255,255,255,0.07); --border2:rgba(255,255,255,0.13);
  --c1:#00d4f5; --c2:#2ddb6e; --c3:#ff7043;
  --c1d:rgba(0,212,245,0.09); --c2d:rgba(45,219,110,0.09); --c3d:rgba(255,112,67,0.09);
  --text:#b8cfe0; --text-hi:#ddeeff; --muted:#3d5468; --muted2:#182433; --white:#e4f2ff;
  --shadow:0 8px 32px rgba(0,0,0,0.55); --shadow-sm:0 2px 12px rgba(0,0,0,0.4);
  --glass-bg:#0e1520; --glass-bg2:#0a1018;
  --glass-border:rgba(255,255,255,0.09); --glass-hi:rgba(255,255,255,0.03);
  --glass-blur:0px; --glass-sat:100%;
  --bg-gradient:
    radial-gradient(ellipse 1100px 600px at 5% 0%,   rgba(0,180,220,0.07) 0%, transparent 65%),
    radial-gradient(ellipse  800px 500px at 95% 15%,  rgba(45,200,110,0.05) 0%, transparent 60%),
    radial-gradient(ellipse  900px 700px at 60% 100%, rgba(255,100,60,0.04) 0%, transparent 60%),
    linear-gradient(180deg, #07090e 0%, #050709 100%);
  --grid-line:rgba(0,200,240,0.025);
}
:root[data-theme='light'] {
  color-scheme:light;
  --bg:#f0f4f8; --panel:#ffffff; --panel2:#f7f9fc;
  --border:rgba(15,30,60,0.09); --border2:rgba(15,30,60,0.16);
  --c1:#0070d8; --c2:#0a9e4a; --c3:#d95a1a;
  --c1d:rgba(0,112,216,0.08); --c2d:rgba(10,158,74,0.08); --c3d:rgba(217,90,26,0.08);
  --text:#1a2e44; --text-hi:#0a1929; --muted:#5a7080; --muted2:#e8eef5; --white:#0a1929;
  --shadow:0 8px 28px rgba(10,24,50,0.12); --shadow-sm:0 2px 10px rgba(10,24,50,0.08);
  --glass-bg:rgba(255,255,255,0.85); --glass-bg2:rgba(255,255,255,0.96);
  --glass-border:rgba(15,30,60,0.10); --glass-hi:rgba(255,255,255,0.70);
  --glass-blur:20px; --glass-sat:110%;
  --bg-gradient:
    radial-gradient(ellipse 1200px 700px at 0% 0%,   rgba(0,112,216,0.10) 0%, transparent 60%),
    radial-gradient(ellipse  900px 600px at 100% 20%, rgba(10,158,74,0.07) 0%, transparent 55%),
    radial-gradient(ellipse  800px 500px at 50% 100%, rgba(217,90,26,0.06) 0%, transparent 55%),
    linear-gradient(160deg, #eef3fa 0%, #f5f0ee 100%);
  --grid-line:rgba(0,60,160,0.04);
}

*,*::before,*::after{margin:0;padding:0;box-sizing:border-box;}
body{background:var(--bg-gradient);background-attachment:fixed;color:var(--text);font-family:'IBM Plex Sans SC',sans-serif;min-height:100vh;-webkit-font-smoothing:antialiased;}
body::before{content:'';position:fixed;inset:0;pointer-events:none;z-index:0;background-image:linear-gradient(var(--grid-line) 1px,transparent 1px),linear-gradient(90deg,var(--grid-line) 1px,transparent 1px);background-size:56px 56px;}
body::after{content:'';position:fixed;inset:0;pointer-events:none;z-index:999;background:repeating-linear-gradient(0deg,transparent,transparent 3px,rgba(0,0,0,0.04) 3px,rgba(0,0,0,0.04) 4px);opacity:0;}
@media(prefers-color-scheme:dark){body::after{opacity:0.35;}}
:root[data-theme='dark'] body::after{opacity:0.35;}
:root[data-theme='light'] body::after{opacity:0;}

.app{position:relative;z-index:1;max-width:1400px;margin:0 auto;padding:28px 24px;}
.header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;gap:16px;flex-wrap:wrap;}
.brand{display:flex;align-items:baseline;gap:10px;}
.brand-name{font-family:'IBM Plex Mono',monospace;font-size:20px;font-weight:700;color:var(--white);letter-spacing:2px;text-shadow:0 0 24px rgba(0,212,245,0.18);}
.header-right{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.clock{font-family:'IBM Plex Mono',monospace;font-size:13px;color:var(--c1);background:var(--glass-bg);border:1px solid var(--glass-border);padding:7px 14px;border-radius:var(--radius-sm);letter-spacing:1px;}
.btn{font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:1px;padding:7px 16px;border-radius:var(--radius-sm);border:1px solid var(--border2);background:transparent;color:var(--muted);cursor:pointer;transition:all .18s ease;}
.btn:hover{border-color:var(--c1);color:var(--c1);background:var(--c1d);}
.btn.primary{border-color:var(--c1);color:var(--c1);background:var(--c1d);}
.btn.primary:hover{background:var(--c1);color:#000;box-shadow:0 0 16px rgba(0,212,245,0.3);}

/* Quota Alert */
.quota-alert{display:none;margin-bottom:16px;border-radius:var(--radius);border:1px solid rgba(255,179,0,0.35);background:rgba(255,179,0,0.07);padding:12px 18px;animation:alertIn .3s ease;}
.quota-alert.critical{border-color:rgba(229,57,53,0.40);background:rgba(229,57,53,0.07);}
.quota-alert.show{display:block;}
@keyframes alertIn{from{opacity:0;transform:translateY(-6px);}to{opacity:1;transform:translateY(0);}}
.quota-alert-head{display:flex;align-items:center;gap:10px;font-family:'IBM Plex Mono',monospace;font-size:11px;font-weight:700;color:#ffb300;margin-bottom:10px;}
.quota-alert.critical .quota-alert-head{color:#e53935;}
.quota-alert-body{display:flex;gap:24px;flex-wrap:wrap;align-items:center;}
.quota-alert-node{display:flex;align-items:center;gap:8px;font-family:'IBM Plex Mono',monospace;font-size:10px;color:var(--text);}
.quota-alert-bar-wrap{display:flex;align-items:center;gap:6px;}
.quota-alert-bar-track{width:80px;height:4px;background:var(--border);border-radius:2px;overflow:hidden;}
.quota-alert-bar-fill{height:100%;border-radius:2px;transition:width .6s;}
.quota-alert-pct{font-size:10px;font-family:'IBM Plex Mono',monospace;min-width:34px;}

/* Summary */
.summary{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:28px;}
.sum-card{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius);padding:18px 20px;position:relative;overflow:hidden;box-shadow:var(--shadow-sm);transition:border-color .2s,box-shadow .2s;}
.sum-card:hover{border-color:var(--border2);box-shadow:var(--shadow);}
.sum-card::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;border-radius:var(--radius) var(--radius) 0 0;}
.sum-card.c1::before{background:linear-gradient(90deg,var(--c1) 0%,rgba(0,212,245,0.15) 60%,transparent);}
.sum-card.c2::before{background:linear-gradient(90deg,var(--c2) 0%,rgba(45,219,110,0.15) 60%,transparent);}
.sum-card.c3::before{background:linear-gradient(90deg,var(--c3) 0%,rgba(255,112,67,0.15) 60%,transparent);}
.sum-card.cw::before{background:linear-gradient(90deg,#a78bfa 0%,rgba(167,139,250,0.15) 60%,transparent);}
.sum-card::after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,var(--glass-hi) 0%,transparent 50%);border-radius:inherit;}
.sum-label{font-family:'IBM Plex Mono',monospace;font-size:9px;letter-spacing:2.5px;text-transform:uppercase;color:var(--muted);margin-bottom:10px;}
.sum-val{font-family:'IBM Plex Mono',monospace;font-size:28px;font-weight:700;color:var(--white);line-height:1;transition:color .4s;}
.sum-val.flash{animation:numFlash .5s ease;}
@keyframes numFlash{0%{opacity:.4;transform:scale(.96);}60%{opacity:1;transform:scale(1.03);}100%{transform:scale(1);}}
.sum-sub{font-size:11px;color:var(--muted);margin-top:6px;}
.health-bar-wrap{margin-top:8px;display:flex;align-items:center;gap:6px;}
.health-bar-track{flex:1;height:3px;background:var(--border);border-radius:2px;overflow:hidden;}
.health-bar-fill{height:100%;border-radius:2px;transition:width .8s cubic-bezier(.4,0,.2,1);}
.health-pct{font-family:'IBM Plex Mono',monospace;font-size:9px;min-width:32px;text-align:right;}
.hour-spark{margin-top:10px;}
.hour-spark-bars{display:flex;gap:1px;align-items:flex-end;height:20px;}
.hour-spark-bar{flex:1;border-radius:1px 1px 0 0;min-height:1px;opacity:.7;}
.hour-spark-label{display:flex;justify-content:space-between;margin-top:3px;}
.hour-spark-label span{font-family:'IBM Plex Mono',monospace;font-size:8px;color:var(--muted);}

/* Sections */
.section-label{font-family:'IBM Plex Mono',monospace;font-size:10px;letter-spacing:3px;text-transform:uppercase;color:var(--muted);margin-bottom:14px;display:flex;align-items:center;gap:10px;}
.section-label::after{content:'';flex:1;height:1px;background:var(--border);}
.section-head{cursor:pointer;user-select:none;transition:color .15s;}
.section-head:hover{color:var(--c1);}
.section-head .chev{font-family:'IBM Plex Mono',monospace;font-size:11px;color:var(--muted);margin-right:6px;display:inline-block;width:14px;text-align:center;transition:transform .15s ease;}
.section-head[data-collapsed='true'] .chev{transform:rotate(-90deg);}
.section-wrap[data-collapsed='true']{display:none;}

/* Nodes */
.nodes{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:24px;}
.node-card{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm);transition:border-color .2s,box-shadow .2s,transform .2s;}
.node-card:hover{border-color:var(--border2);box-shadow:var(--shadow);transform:translateY(-2px);}
.node-card.node-0{--nc:var(--c1);--ncd:var(--c1d);}
.node-card.node-1{--nc:var(--c2);--ncd:var(--c2d);}
.node-card.node-2{--nc:var(--c3);--ncd:var(--c3d);}
.node-top{padding:14px 16px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;background:var(--glass-bg2);}
.node-id{display:flex;align-items:center;gap:10px;}
.node-led{width:8px;height:8px;border-radius:50%;background:var(--muted2);flex-shrink:0;transition:background .3s,box-shadow .3s;}
.node-led.online{background:var(--nc);box-shadow:0 0 8px var(--nc),0 0 2px var(--nc);animation:blink 2.5s infinite;}
.node-led.offline{background:#e53935;box-shadow:0 0 6px rgba(229,57,53,0.5);}
.node-led.loading{background:#ffb300;box-shadow:0 0 6px rgba(255,179,0,0.5);animation:blink .8s infinite;}
@keyframes blink{0%,100%{opacity:1}50%{opacity:.25}}
.node-name{font-family:'IBM Plex Mono',monospace;font-size:13px;font-weight:700;color:var(--white);}
.node-url{font-size:10px;color:var(--muted);margin-top:2px;}
.node-badge{font-family:'IBM Plex Mono',monospace;font-size:9px;letter-spacing:1px;padding:3px 9px;border-radius:3px;border:1px solid var(--border2);color:var(--muted);}
.node-badge.online{border-color:var(--nc);color:var(--nc);background:var(--ncd);}
.node-badge.offline{border-color:#e53935;color:#e53935;background:rgba(229,57,53,0.08);}
.node-badge.loading{border-color:#ffb300;color:#ffb300;background:rgba(255,179,0,0.08);}
.node-stats{padding:14px 16px;display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.nstat-label{font-family:'IBM Plex Mono',monospace;font-size:9px;color:var(--muted);letter-spacing:1px;text-transform:uppercase;margin-bottom:4px;}
.nstat-val{font-family:'IBM Plex Mono',monospace;font-size:17px;font-weight:700;color:var(--nc);}
.nstat-sub{font-size:10px;color:var(--muted);margin-top:2px;}
.node-bar-row{padding:0 16px 14px;}
.bar-label{display:flex;justify-content:space-between;font-family:'IBM Plex Mono',monospace;font-size:9px;color:var(--muted);margin-bottom:6px;}
.bar-track{height:3px;background:var(--border);border-radius:2px;overflow:hidden;}
.bar-fill{height:100%;border-radius:2px;background:var(--nc);transition:width .9s cubic-bezier(.4,0,.2,1);box-shadow:0 0 8px var(--nc);}
.latency-row{padding:0 16px 14px;border-top:1px solid var(--border);display:grid;grid-template-columns:80px 1fr;gap:12px;align-items:center;padding-top:12px;}
.latency-val{font-family:'IBM Plex Mono',monospace;font-size:18px;font-weight:700;line-height:1;}
.latency-val.good{color:#2ddb6e;}
.latency-val.warn{color:#ffb300;}
.latency-val.bad{color:#e53935;}
.latency-val.na{color:var(--muted);}
.latency-spark{height:32px;overflow:hidden;}
.latency-spark svg{width:100%;height:100%;display:block;}
.acc-health-row{padding:0 16px 10px;display:flex;align-items:center;gap:8px;border-top:1px solid var(--border);padding-top:10px;}
.acc-health-label{font-family:'IBM Plex Mono',monospace;font-size:9px;color:var(--muted);letter-spacing:1px;text-transform:uppercase;flex-shrink:0;}
.acc-health-track{flex:1;height:4px;background:var(--border);border-radius:2px;overflow:hidden;}
.acc-health-fill{height:100%;border-radius:2px;transition:width .8s cubic-bezier(.4,0,.2,1);}
.acc-health-txt{font-family:'IBM Plex Mono',monospace;font-size:9px;flex-shrink:0;min-width:40px;text-align:right;}

/* Account list in node card */
.node-accounts{border-top:1px solid var(--border);padding:8px 12px;max-height:220px;overflow-y:auto;}
.node-accounts::-webkit-scrollbar{width:3px;}
.node-accounts::-webkit-scrollbar-thumb{background:var(--border2);border-radius:2px;}
.acc-item{border-bottom:1px solid var(--border);}
.acc-item:last-child{border-bottom:none;}
.acc-row{display:flex;align-items:center;justify-content:space-between;padding:5px 4px;font-size:11px;cursor:pointer;border-radius:4px;transition:background .12s;user-select:none;}
.acc-row:hover{background:rgba(255,255,255,0.04);}
.acc-row.expanded{background:rgba(255,255,255,0.04);}
.acc-left{display:flex;align-items:center;gap:7px;min-width:0;flex:1;}
.acc-dot{width:5px;height:5px;border-radius:50%;flex-shrink:0;}
.acc-dot.ready{background:var(--c2);box-shadow:0 0 5px var(--c2);}
.acc-dot.error{background:#e53935;}
.acc-dot.unknown{background:var(--muted2);}
.acc-email{color:var(--text);font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:150px;}
.acc-provider{font-family:'IBM Plex Mono',monospace;font-size:9px;color:var(--muted);background:var(--muted2);padding:1px 6px;border-radius:3px;flex-shrink:0;}
.acc-runtime-badge{font-family:'IBM Plex Mono',monospace;font-size:8px;color:#a78bfa;background:rgba(167,139,250,0.1);border:1px solid rgba(167,139,250,0.25);padding:1px 5px;border-radius:3px;flex-shrink:0;}
.acc-chev{font-size:9px;color:var(--muted);flex-shrink:0;margin-left:4px;transition:transform .15s;}
.acc-row.expanded .acc-chev{transform:rotate(90deg);}

/* Account detail panel */
.acc-detail{display:none;padding:8px 12px 10px 16px;background:rgba(0,0,0,0.18);border-top:1px solid var(--border);animation:detailIn .15s ease;}
.acc-detail.open{display:block;}
@keyframes detailIn{from{opacity:0;transform:translateY(-4px);}to{opacity:1;transform:translateY(0);}}
.acc-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px 16px;margin-bottom:8px;}
.acc-detail-row{display:flex;flex-direction:column;gap:1px;}
.acc-detail-label{font-family:'IBM Plex Mono',monospace;font-size:8px;letter-spacing:1px;text-transform:uppercase;color:var(--muted);}
.acc-detail-val{font-family:'IBM Plex Mono',monospace;font-size:10px;color:var(--text-hi);word-break:break-all;}
.acc-detail-val.copyable{cursor:pointer;border-bottom:1px dashed var(--border2);display:inline;}
.acc-detail-val.copyable:hover{color:var(--c1);border-bottom-color:var(--c1);}
.acc-detail-models{margin-top:6px;}
.acc-detail-models-title{font-family:'IBM Plex Mono',monospace;font-size:8px;letter-spacing:1px;text-transform:uppercase;color:var(--muted);margin-bottom:4px;}
.acc-detail-model-row{display:flex;align-items:center;justify-content:space-between;padding:3px 0;border-bottom:1px solid var(--border);font-size:10px;}
.acc-detail-model-row:last-child{border-bottom:none;}
.acc-detail-model-name{font-family:'IBM Plex Mono',monospace;font-size:10px;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:130px;}
.acc-detail-model-cnt{font-family:'IBM Plex Mono',monospace;font-size:10px;color:var(--nc);flex-shrink:0;}
.acc-detail-no-usage{font-family:'IBM Plex Mono',monospace;font-size:9px;color:var(--muted);}

.node-footer{border-top:1px solid var(--border);padding:10px 16px;display:flex;justify-content:space-between;align-items:center;}
.node-footer-info{font-family:'IBM Plex Mono',monospace;font-size:9px;color:var(--muted);}
.btn-xs{font-family:'IBM Plex Mono',monospace;font-size:9px;padding:4px 10px;border:1px solid var(--border2);border-radius:3px;background:transparent;color:var(--muted);cursor:pointer;transition:all .15s;}
.btn-xs:hover{border-color:var(--nc);color:var(--nc);}

/* Chart */
.chart-wrap{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius);padding:20px;margin-bottom:24px;box-shadow:var(--shadow-sm);}
.chart-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;flex-wrap:wrap;gap:10px;}
.chart-legend{display:flex;gap:20px;flex-wrap:wrap;}
.legend-item{display:flex;align-items:center;gap:6px;font-family:'IBM Plex Mono',monospace;font-size:10px;color:var(--muted);}
.legend-dot{width:8px;height:8px;border-radius:2px;}
.chart-toggle{display:flex;gap:0;border:1px solid var(--border2);border-radius:var(--radius-sm);overflow:hidden;}
.chart-toggle-btn{font-family:'IBM Plex Mono',monospace;font-size:10px;padding:4px 12px;background:transparent;color:var(--muted);border:none;cursor:pointer;transition:all .15s;}
.chart-toggle-btn.active{background:var(--c1d);color:var(--c1);}
.chart-toggle-btn:hover:not(.active){background:var(--border);color:var(--text);}
.chart-container{position:relative;}
.chart-area{display:flex;gap:4px;align-items:flex-end;height:120px;margin-bottom:8px;}
.chart-group{flex:1;display:flex;gap:2px;align-items:flex-end;height:100%;position:relative;cursor:pointer;}
.chart-group:hover .chart-tooltip{display:block;}
.chart-bar{flex:1;border-radius:2px 2px 0 0;min-height:2px;transition:height .65s cubic-bezier(.4,0,.2,1);opacity:.75;}
.chart-group:hover .chart-bar{opacity:1;filter:brightness(1.25) saturate(1.3);}
.chart-tooltip{display:none;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translateX(-50%);background:var(--glass-bg2);border:1px solid var(--border2);border-radius:var(--radius-sm);padding:8px 10px;white-space:nowrap;z-index:10;pointer-events:none;box-shadow:var(--shadow-sm);min-width:100px;}
.chart-tooltip::after{content:'';position:absolute;top:100%;left:50%;transform:translateX(-50%);border:5px solid transparent;border-top-color:var(--border2);}
.chart-tooltip-date{font-family:'IBM Plex Mono',monospace;font-size:9px;color:var(--muted);margin-bottom:5px;}
.chart-tooltip-row{display:flex;align-items:center;gap:6px;font-family:'IBM Plex Mono',monospace;font-size:10px;margin-bottom:2px;}
.chart-tooltip-row:last-child{margin-bottom:0;}
.chart-tooltip-dot{width:6px;height:6px;border-radius:2px;flex-shrink:0;}
.chart-xlabels{display:flex;gap:4px;}
.chart-xlabel{flex:1;text-align:center;font-family:'IBM Plex Mono',monospace;font-size:9px;color:var(--muted);}

/* Logs & Stats */
.log-wrap{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm);}
.acc-stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:24px;}
.acc-stats-card{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm);}
.acc-stats-header{padding:12px 16px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;background:var(--glass-bg2);}
.acc-stats-title{font-family:'IBM Plex Mono',monospace;font-size:11px;font-weight:700;}
.acc-stats-body{padding:0;}
.acc-stat-row{display:grid;grid-template-columns:24px 1fr auto auto;align-items:center;gap:10px;padding:9px 16px;border-bottom:1px solid var(--border);}
.acc-stat-row:last-child{border-bottom:none;}
.acc-stat-row:hover{background:rgba(255,255,255,0.02);}
.acc-stat-rank{font-family:'IBM Plex Mono',monospace;font-size:10px;color:var(--muted);text-align:right;}
.acc-stat-email{font-size:11px;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.acc-stat-req{font-family:'IBM Plex Mono',monospace;font-size:11px;font-weight:700;text-align:right;}
.acc-stat-tok{font-family:'IBM Plex Mono',monospace;font-size:10px;color:var(--muted);text-align:right;min-width:60px;}
.log-table{width:100%;border-collapse:collapse;}
.log-table th{text-align:left;padding:10px 14px;font-family:'IBM Plex Mono',monospace;font-size:9px;letter-spacing:2px;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--border);font-weight:400;background:var(--glass-bg2);}
.log-table td{padding:9px 14px;font-size:11px;border-bottom:1px solid var(--border);color:var(--text);}
.log-table tr:last-child td{border-bottom:none;}
.log-table tr:hover td{background:rgba(255,255,255,0.025);}
.tag{font-family:'IBM Plex Mono',monospace;font-size:9px;padding:2px 7px;border-radius:2px;display:inline-block;}
.empty-state{text-align:center;padding:40px;font-family:'IBM Plex Mono',monospace;font-size:11px;color:var(--muted);}
.load-more-row{text-align:center;padding:12px;border-top:1px solid var(--border);}
.load-more-btn{font-family:'IBM Plex Mono',monospace;font-size:10px;color:var(--muted);background:transparent;border:1px solid var(--border2);border-radius:var(--radius-sm);padding:6px 20px;cursor:pointer;transition:all .15s;}
.load-more-btn:hover{color:var(--c1);border-color:var(--c1);background:var(--c1d);}
.tok-breakdown{display:inline-flex;gap:4px;align-items:center;}
.tok-chip{font-family:'IBM Plex Mono',monospace;font-size:8px;padding:1px 4px;border-radius:2px;}

/* Key Manager */
.keymgr-wrap{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm);}
.keymgr-header{padding:14px 20px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;background:var(--glass-bg2);}
.keymgr-title{font-family:'IBM Plex Mono',monospace;font-size:12px;font-weight:700;color:var(--white);}
.keymgr-subtitle{font-family:'IBM Plex Mono',monospace;font-size:10px;color:var(--muted);}
.keymgr-body{padding:16px 20px;display:flex;flex-direction:column;gap:12px;}
.keymgr-add{display:flex;gap:8px;}
.keymgr-add input{flex:1;font-family:'IBM Plex Mono',monospace;font-size:12px;background:var(--muted2);border:1px solid var(--border2);border-radius:var(--radius-sm);color:var(--text);padding:8px 12px;outline:none;transition:border-color .15s;}
.keymgr-add input:focus{border-color:var(--c1);box-shadow:0 0 0 2px var(--c1d);}
.keymgr-add input::placeholder{color:var(--muted);}
.keymgr-btn{font-family:'IBM Plex Mono',monospace;font-size:11px;padding:8px 16px;border-radius:var(--radius-sm);border:1px solid var(--c1);color:var(--c1);background:var(--c1d);cursor:pointer;transition:all .15s;white-space:nowrap;}
.keymgr-btn:hover{background:rgba(0,212,245,0.16);}
.keymgr-btn.danger{border-color:#e53935;color:#e53935;background:rgba(229,57,53,0.08);}
.keymgr-btn.danger:hover{background:rgba(229,57,53,0.16);}
.keymgr-btn.sync{border-color:var(--c2);color:var(--c2);background:var(--c2d);}
.keymgr-btn.sync:hover{background:rgba(45,219,110,0.16);}
.keymgr-keys{display:flex;flex-direction:column;gap:6px;}
.keymgr-key-row{display:flex;align-items:center;gap:10px;padding:8px 12px;background:var(--muted2);border:1px solid var(--border);border-radius:var(--radius-sm);transition:border-color .15s;}
.keymgr-key-row:hover{border-color:var(--border2);}
.keymgr-key-text{font-family:'IBM Plex Mono',monospace;font-size:12px;color:var(--white);flex:1;}
.keymgr-key-nodes{display:flex;gap:4px;}
.keymgr-node-dot{font-family:'IBM Plex Mono',monospace;font-size:9px;padding:2px 6px;border-radius:2px;}

/* Filters */
.filter-bar{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius) var(--radius) 0 0;border-bottom:none;padding:12px 16px;display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.filter-group{display:flex;align-items:center;gap:6px;}
.filter-label{font-family:'IBM Plex Mono',monospace;font-size:9px;letter-spacing:1px;text-transform:uppercase;color:var(--muted);flex-shrink:0;}
.filter-select{font-family:'IBM Plex Mono',monospace;font-size:11px;background:var(--muted2);border:1px solid var(--border2);border-radius:var(--radius-sm);color:var(--text);padding:4px 8px;outline:none;cursor:pointer;transition:border-color .15s;}
.filter-select:focus{border-color:var(--c1);}
.filter-input{font-family:'IBM Plex Mono',monospace;font-size:11px;background:var(--muted2);border:1px solid var(--border2);border-radius:var(--radius-sm);color:var(--text);padding:4px 10px;outline:none;width:160px;transition:border-color .15s;}
.filter-input:focus{border-color:var(--c1);}
.filter-input::placeholder{color:var(--muted);}
.filter-divider{width:1px;height:20px;background:var(--border);flex-shrink:0;}
.filter-reset{font-family:'IBM Plex Mono',monospace;font-size:10px;color:var(--muted);background:transparent;border:1px solid var(--border2);border-radius:var(--radius-sm);padding:4px 10px;cursor:pointer;transition:all .15s;}
.filter-reset:hover{color:var(--c1);border-color:var(--c1);background:var(--c1d);}
.filter-count{font-family:'IBM Plex Mono',monospace;font-size:10px;color:var(--muted);margin-left:auto;}

/* Misc */
.err-txt{color:#e53935;font-size:10px;font-family:'IBM Plex Mono',monospace;}
.skeleton{background:linear-gradient(90deg,var(--border) 25%,var(--border2) 50%,var(--border) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:3px;height:12px;margin:6px 0;}
@keyframes shimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}
.copy-pill{display:inline-flex;align-items:center;gap:6px;cursor:pointer;user-select:none;padding:2px 6px;border-radius:5px;border:1px solid var(--border);background:rgba(255,255,255,0.03);transition:all .15s;}
.copy-pill:hover{border-color:var(--border2);background:rgba(255,255,255,0.06);}
.copy-icon{font-size:11px;color:var(--muted);}
.toast{position:fixed;bottom:24px;right:24px;background:var(--glass-bg2);border:1px solid var(--c1);color:var(--c1);padding:10px 18px;font-family:'IBM Plex Mono',monospace;font-size:11px;border-radius:var(--radius-sm);z-index:1000;transform:translateY(60px);opacity:0;transition:all .25s cubic-bezier(.4,0,.2,1);box-shadow:0 0 20px var(--c1d),var(--shadow-sm);}
.toast.show{transform:translateY(0);opacity:1;}

/* Dark mode overrides */
@media(prefers-color-scheme:dark){*{backdrop-filter:none!important;-webkit-backdrop-filter:none!important;}.node-top,.acc-stats-header,.keymgr-header{background:#111827!important;}.log-table th{background:#0d1622!important;}.filter-select,.filter-input,.keymgr-add input{background:#0a1018!important;color:#b8cfe0!important;border-color:rgba(255,255,255,0.12)!important;}.keymgr-key-row{background:#0a1018!important;}.acc-detail{background:rgba(0,0,0,0.35)!important;}}
:root[data-theme='dark'] *{backdrop-filter:none!important;-webkit-backdrop-filter:none!important;}
:root[data-theme='dark'] .node-top,:root[data-theme='dark'] .acc-stats-header,:root[data-theme='dark'] .keymgr-header{background:#111827!important;}
:root[data-theme='dark'] .log-table th{background:#0d1622!important;}
:root[data-theme='dark'] .filter-select,:root[data-theme='dark'] .filter-input,:root[data-theme='dark'] .keymgr-add input{background:#0a1018!important;color:#b8cfe0!important;border-color:rgba(255,255,255,0.12)!important;}
:root[data-theme='dark'] .keymgr-key-row{background:#0a1018!important;}
:root[data-theme='dark'] .acc-detail{background:rgba(0,0,0,0.35)!important;}

/* Light mode overrides */
@media(prefers-color-scheme:light){.brand-name{text-shadow:none;}.sum-val{color:var(--text-hi);text-shadow:none;}.node-top{background:rgba(238,243,250,0.96)!important;}.acc-stats-header,.keymgr-header{background:rgba(238,243,250,0.96)!important;}.log-table th{background:rgba(238,243,250,0.98)!important;}.filter-select,.filter-input,.keymgr-add input{background:#f7f9fc;color:var(--text);border-color:rgba(15,30,60,0.15);}.keymgr-key-row{background:#eef3fa;}.copy-pill{background:rgba(15,30,60,0.03);}.quota-alert{background:rgba(217,119,6,0.06);border-color:rgba(217,119,6,0.30);}.quota-alert.critical{background:rgba(220,38,38,0.06);border-color:rgba(220,38,38,0.30);}.quota-alert-head{color:#b45309;}.quota-alert.critical .quota-alert-head{color:#dc2626;}.acc-detail{background:rgba(0,0,0,0.04)!important;}}
:root[data-theme='light'] .brand-name{text-shadow:none;}
:root[data-theme='light'] .sum-val{color:var(--text-hi);text-shadow:none;}
:root[data-theme='light'] .node-top{background:rgba(238,243,250,0.96)!important;}
:root[data-theme='light'] .filter-select,:root[data-theme='light'] .filter-input,:root[data-theme='light'] .keymgr-add input{background:#f7f9fc;color:var(--text);}
:root[data-theme='light'] .keymgr-key-row{background:#eef3fa;}
:root[data-theme='light'] .acc-detail{background:rgba(0,0,0,0.04)!important;}

/* Responsive */
@media(max-width:900px){.nodes{grid-template-columns:1fr 1fr;}.summary{grid-template-columns:repeat(2,1fr);}.acc-stats-grid{grid-template-columns:1fr;}}
@media(max-width:640px){.app{padding:14px;}.header{flex-direction:column;align-items:flex-start;gap:10px;}.summary{grid-template-columns:1fr;gap:10px;}.nodes{grid-template-columns:1fr;gap:10px;}.chart-wrap{padding:12px;}.filter-bar{flex-direction:column;align-items:stretch;gap:10px;}.log-wrap{overflow:auto;}table{min-width:1000px;}.keymgr-wrap{padding:12px;}.keymgr-add{flex-direction:column;}.quota-alert-body{gap:12px;}.quota-alert-bar-track{width:60px;}}
