@font-face{font-family:Manrope;src:url("manrope-latin.woff2") format("woff2");font-style:normal;font-weight:200 800;font-display:swap}

:root{
  --bg:#0b0e0c; --bg-soft:#0f1310; --sidebar:#0d110e;
  --surface:#121612; --surface-2:#171c18; --surface-3:#1d231e;
  --text:#f0f4ed; --text-soft:#c4ccc3; --muted:#8b968c; --faint:#667067;
  --line:rgba(235,244,232,.09); --line-strong:rgba(235,244,232,.16);
  --accent:#c8f56a; --accent-strong:#d8ff83; --accent-ink:#172009;
  --accent-dim:rgba(200,245,106,.11); --accent-line:rgba(200,245,106,.42);
  --teal:#72d7bd; --teal-dim:rgba(114,215,189,.11);
  --amber:#f0b75e; --amber-dim:rgba(240,183,94,.12);
  --red:#ff8379; --red-dim:rgba(255,131,121,.11);
  --blue:#84aefd; --blue-dim:rgba(132,174,253,.11);
  --violet:#b8a1f7;
  --radius:18px; --radius-sm:12px;
  --shadow:0 20px 60px rgba(0,0,0,.28);
  --ease-out:cubic-bezier(.23,1,.32,1);
  --font:Manrope,"SF Pro Display","Segoe UI Variable","PingFang SC","Microsoft YaHei",system-ui,sans-serif;
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;background:var(--bg);color:var(--text);font-family:var(--font);
  font-size:14.5px;line-height:1.55;-webkit-font-smoothing:antialiased;
  display:grid;grid-template-columns:236px minmax(0,1fr) 344px;
  min-height:100vh;
}
h1,h2,h3,p{margin:0}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;border:0;background:none;cursor:pointer}
::selection{background:var(--accent);color:var(--accent-ink)}
::-webkit-scrollbar{width:9px;height:9px}
::-webkit-scrollbar-thumb{background:rgba(235,244,232,.14);border-radius:9px}
::-webkit-scrollbar-track{background:transparent}

.sidebar{
  background:var(--sidebar);border-right:1px solid var(--line);
  padding:22px 16px;display:flex;flex-direction:column;gap:26px;
  position:sticky;top:0;height:100vh;
}
.brand{display:flex;align-items:center;gap:11px;padding:0 6px}
.logo{
  width:36px;height:36px;border-radius:11px;background:var(--accent);color:var(--accent-ink);
  display:grid;place-items:center;font-weight:800;font-size:13px;letter-spacing:-.02em;flex:none;
}
.brand-txt{display:flex;flex-direction:column;line-height:1.25}
.brand-txt strong{font-size:14.5px;font-weight:700;letter-spacing:-.01em}
.brand-txt span{font-size:11.5px;color:var(--faint)}

.nav{display:flex;flex-direction:column;gap:2px}
.nav-item{
  display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:var(--radius-sm);
  font-size:13.5px;color:var(--muted);transition:background .16s var(--ease-out),color .16s var(--ease-out);
}
.nav-item:hover{background:var(--surface-2);color:var(--text-soft)}
.nav-item.on{background:var(--surface-3);color:var(--text);font-weight:600}
.nav-item .ico{width:5px;height:5px;border-radius:50%;background:currentColor;opacity:.5;flex:none}
.nav-item.on .ico{background:var(--accent);opacity:1}

.side-status{margin-top:auto;padding:14px 12px;background:var(--surface);border-radius:var(--radius-sm);border:1px solid var(--line)}
.side-label{font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--faint);margin-bottom:11px}
.sp{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--text-soft);padding:4px 0}
.sp .dot{width:7px;height:7px;border-radius:50%;flex:none}
.dot.g{background:var(--accent);box-shadow:0 0 0 3px var(--accent-dim)}
.dot.y{background:var(--amber);box-shadow:0 0 0 3px var(--amber-dim)}
.dot.r{background:var(--red);box-shadow:0 0 0 3px var(--red-dim)}
.sp .sp-name{color:var(--muted)}
.sp .sp-val{margin-left:auto;font-size:11.5px;color:var(--faint);font-variant-numeric:tabular-nums}

.side-quota{margin-top:14px;padding-top:13px;border-top:1px solid var(--line);display:flex;align-items:baseline;gap:8px}
.sq-num{font-size:19px;font-weight:700;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.sq-label{font-size:11px;color:var(--faint)}

.test-btn{
  padding:10px;border-radius:var(--radius-sm);border:1px solid var(--line-strong);
  font-size:12.5px;color:var(--text-soft);transition:all .16s var(--ease-out);
}
.test-btn:hover{background:var(--accent-dim);border-color:var(--accent-line);color:var(--accent)}
.test-btn:disabled{opacity:.5;cursor:default}

.main{padding:30px 32px 40px;max-width:960px;min-width:0}
.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:26px}
h1{font-size:26px;font-weight:700;letter-spacing:-.025em;line-height:1.25}
.page-sub{font-size:12.5px;color:var(--muted);margin-top:6px}

.tabs{display:flex;gap:2px;background:var(--surface);border:1px solid var(--line);border-radius:11px;padding:3px;flex:none}
.tabs button{padding:5px 13px;border-radius:8px;font-size:12px;color:var(--muted);transition:all .16s var(--ease-out)}
.tabs button:hover{color:var(--text-soft)}
.tabs button.on{background:var(--surface-3);color:var(--text);font-weight:600}

.panel{margin-bottom:22px}
.panel-head{display:flex;align-items:baseline;gap:12px;margin-bottom:13px}
.panel-head h2{font-size:14px;font-weight:700;letter-spacing:-.01em}
.panel-note{font-size:11.5px;color:var(--faint);margin-left:auto;white-space:nowrap;flex:none}

.event-list{display:flex;flex-direction:column;gap:8px}
.card{
  position:relative;background:var(--surface);border:1px solid var(--line);
  border-radius:var(--radius);padding:16px 18px;overflow:hidden;
  transition:border-color .18s var(--ease-out),background .18s var(--ease-out);
}
.card:hover{border-color:var(--line-strong);background:var(--surface-2)}
.card::after{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--faint)}
.card.s3::after{background:var(--red)} .card.s2::after{background:var(--amber)}
.card.s1::after{background:var(--blue)}

.card-top{display:flex;align-items:flex-start;gap:14px}
.card-title{font-size:15px;font-weight:600;line-height:1.45;flex:1;letter-spacing:-.005em}
.score{
  flex:none;font-size:12px;font-weight:700;font-variant-numeric:tabular-nums;
  padding:3px 9px;border-radius:8px;background:var(--surface-3);color:var(--text-soft);
}
.score.hot{background:var(--red-dim);color:var(--red)}
.card-why{font-size:13px;color:var(--text-soft);margin-top:7px;line-height:1.6}

.card-meta{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-top:12px;font-size:11.5px;color:var(--faint)}
.chip{font-size:11px;padding:2.5px 9px;border-radius:7px;background:var(--surface-3);color:var(--text-soft)}
.chip.accent{background:var(--accent-dim);color:var(--accent)}
.chip.amber{background:var(--amber-dim);color:var(--amber)}
.chip.src{background:transparent;border:1px solid var(--line-strong);color:var(--muted)}
.chip.src.strong{border-color:var(--accent-line);color:var(--accent)}
.dotsep{width:3px;height:3px;border-radius:50%;background:var(--faint);opacity:.6}

.fb{margin-left:auto;display:flex;gap:5px;opacity:0;transition:opacity .16s var(--ease-out)}
.card:hover .fb,.card:focus-within .fb{opacity:1}
.fb button{
  font-size:11px;padding:3px 10px;border-radius:7px;
  border:1px solid var(--line);color:var(--faint);transition:all .14s var(--ease-out);
}
.fb button:hover{color:var(--text-soft);border-color:var(--line-strong)}
.fb button.on{background:var(--surface-3);color:var(--text);border-color:var(--line-strong)}

.timeline{display:flex;align-items:flex-end;justify-content:space-between;gap:2px;height:88px;padding:14px 16px 12px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}
.bar{flex:1;min-width:2px;background:rgba(200,245,106,.22);border-radius:3px 3px 1px 1px;transition:background .14s var(--ease-out)}
.bar.zero{background:rgba(235,244,232,.07)}
.bar:hover{background:var(--accent)}
.bar.hot{background:rgba(255,131,121,.42)}
.bar.hot:hover{background:var(--red)}

.source-list{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
.srow{display:grid;grid-template-columns:1fr auto auto;gap:12px;align-items:center;padding:11px 16px;border-bottom:1px solid var(--line);font-size:12.5px}
.srow:last-child{border-bottom:0}
.srow-name{color:var(--text-soft)}
.srow-err{color:var(--red);font-size:11.5px;max-width:340px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.srow-time{color:var(--faint);font-size:11px;font-variant-numeric:tabular-nums}

.rail{
  background:var(--bg-soft);border-left:1px solid var(--line);
  padding:30px 20px;position:sticky;top:0;height:100vh;overflow-y:auto;
}
.rail-head{display:flex;align-items:baseline;gap:10px;margin-bottom:14px}
.rail-head h2{font-size:14px;font-weight:700}

.ledger{display:flex;flex-direction:column;gap:6px}
.prow{
  background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);
  padding:10px 12px;display:grid;grid-template-columns:1fr auto;gap:4px 10px;
}
.prow-time{grid-column:1/-1;font-size:11px;color:var(--faint);display:flex;align-items:center;gap:7px;font-variant-numeric:tabular-nums}
.prow-title{font-size:12.5px;line-height:1.45;color:var(--text-soft);overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.prow-res{font-size:11px;font-weight:600;align-self:start;white-space:nowrap}
.prow-res.ok{color:var(--accent)} .prow-res.bad{color:var(--red)} .prow-res.skip{color:var(--faint)}

.k{font-size:10px;letter-spacing:.04em;padding:1.5px 6px;border-radius:5px;font-weight:600}
.k.event{background:var(--red-dim);color:var(--red)}
.k.heartbeat{background:var(--blue-dim);color:var(--blue)}
.k.test{background:var(--amber-dim);color:var(--amber)}
.k.suppressed{background:var(--surface-3);color:var(--faint)}

.empty{padding:44px 16px;text-align:center;color:var(--faint);font-size:12.5px;background:var(--surface);border:1px dashed var(--line-strong);border-radius:var(--radius)}
.foot{display:flex;gap:18px;flex-wrap:wrap;font-size:11px;color:var(--faint);padding-top:8px;font-variant-numeric:tabular-nums}

@media(max-width:1280px){
  body{grid-template-columns:212px minmax(0,1fr)}
  .rail{display:none}
}
@media(max-width:860px){
  body{grid-template-columns:1fr}
  .sidebar{position:static;height:auto;flex-direction:row;align-items:center;gap:14px;padding:12px 16px;flex-wrap:wrap}
  .nav{flex-direction:row}
  .side-status,.test-btn{display:none}
  .main{padding:20px 16px 32px}
  h1{font-size:21px}
}
