/* 封禁名单 · 终端风
   纯黑底 + 荧光绿单色，全等宽字体，零圆角零阴影。
   结构对齐 main.4.js 生成的 DOM（.list-section / .rows / .row / .who / .why / .mark）。 */

:root{
  --bg:#0a0c0b;
  --panel:#111613;
  --panel2:#0d1210;
  --line:#1e2a23;
  --line2:#2b3a31;
  --fg:#c6d3ca;
  --fg-dim:#7b8b81;
  --fg-faint:#4c5a53;
  --acc:#3ff08c;
  --acc-dim:#1d7a4a;
  --warn:#ffb454;
  --red:#ff6b6b;
  --mono: ui-monospace, "SFMono-Regular", "JetBrains Mono", Consolas, "Courier New", monospace;
}

*{box-sizing:border-box}

html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}

body{
  margin:0;
  min-height:100vh;
  background:var(--bg);
  color:var(--fg);
  font-family:var(--mono);
  font-size:13.5px;
  line-height:1.65;
  display:flex;
  flex-direction:column;
}

a{color:inherit;text-decoration:none}
a:hover{color:var(--acc)}
button{font:inherit;cursor:pointer}
::selection{background:var(--acc);color:#04110a}

:focus-visible{outline:2px solid var(--acc);outline-offset:2px}

.visually-hidden{
  position:absolute;width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;
}

.skip-link{position:absolute;left:-9999px;top:8px;z-index:100;padding:10px 16px;background:var(--acc);color:#04110a}
.skip-link:focus{left:12px}

.container{width:min(100%,1040px);margin-inline:auto;padding-inline:24px}

main{flex:1}

/* ---------- 顶栏：像 tmux 状态条 ---------- */
.site-header{
  position:sticky;top:0;z-index:20;
  background:var(--acc);color:#04110a;
  border-bottom:1px solid #0a1a12;
  font-size:12.5px;font-weight:600;
}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:20px;height:36px}
.brand{display:flex;align-items:center;gap:9px;color:#04110a}
.brand-mark{width:16px;height:16px;flex:0 0 auto;color:#04110a}
.brand-text{display:flex;align-items:baseline;gap:8px;font-size:13px;font-weight:700;letter-spacing:.01em}
.brand-text small{font-weight:500;font-size:10.5px;opacity:.66;letter-spacing:.1em}
.header-nav{display:flex;align-items:stretch;font-size:12.5px}
.nav-group{display:flex;align-items:center;gap:16px;padding-left:16px;margin-left:16px;border-left:1px solid rgba(4,17,10,.28)}
.nav-group:first-child{padding-left:0;margin-left:0;border-left:0}
.header-nav a,.header-nav .link-btn{color:#04110a;opacity:.72}
.header-nav a:hover,.header-nav .link-btn:hover{opacity:1;color:#04110a}

/* ---------- 首屏 ---------- */
.hero{padding:44px 0 4px}
.eyebrow{
  display:flex;align-items:center;gap:8px;margin:0 0 16px;
  font-size:12px;color:var(--fg-faint);
}
.eyebrow .dot{width:6px;height:6px;background:var(--acc);display:inline-block;animation:blink 1.1s steps(1) infinite}
@keyframes blink{50%{opacity:.25}}

.hero h1{
  font-size:clamp(24px,3.4vw,32px);
  font-weight:700;margin:0;letter-spacing:-.01em;color:var(--fg);
}
.hero h1::before{content:"# ";color:var(--acc)}

.lead{margin:14px 0 0;max-width:68ch;color:var(--fg-dim);font-size:12.5px;line-height:1.95}

.stats{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));
  margin:26px 0 0;padding:0;max-width:660px;
  border:1px solid var(--line);
}
.stats > div{padding:12px 16px;border-left:1px solid var(--line)}
.stats > div:first-child{border-left:0}
.stats dt{margin:0;font-size:11px;color:var(--fg-faint)}
.stats dd{margin:6px 0 0;font-size:20px;font-weight:600;color:var(--acc)}
.stats .stat-pending{color:var(--warn)}
.stats .stat-time{font-size:12.5px;font-weight:400;color:var(--fg-dim);padding-top:5px}

.hero-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px}

.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:7px;
  min-height:38px;padding:8px 16px;
  background:transparent;color:var(--fg);
  border:1px solid var(--line2);
  font-size:12.5px;font-family:var(--mono);
  transition:color .15s,border-color .15s,background .15s;
}
.btn:hover{color:var(--acc);border-color:var(--acc-dim)}
.btn-primary{background:var(--acc);color:#04110a;border-color:var(--acc);font-weight:600}
.btn-primary:hover{background:#63f5a2;color:#04110a;border-color:var(--acc)}
.btn svg{width:14px;height:14px;flex:0 0 auto}

/* ---------- 工具条 ---------- */
.toolbar{padding:26px 0 0}
.search{position:relative;display:flex;align-items:center;gap:9px;max-width:560px;height:40px;padding:0 13px;background:var(--panel);border:1px solid var(--line)}
.search:focus-within{border-color:var(--acc-dim)}
.search-icon{width:15px;height:15px;color:var(--fg-faint);flex:0 0 auto}
.search input{flex:1;min-width:0;height:100%;background:none;border:0;outline:none;color:var(--fg);font:inherit;font-size:13px}
.search input::placeholder{color:var(--fg-faint)}
.search input::-webkit-search-cancel-button{display:none}
.search-clear{
  width:22px;height:22px;line-height:1;display:grid;place-items:center;flex:0 0 auto;
  background:transparent;border:0;color:var(--fg-faint);font-size:16px;
}
.search-clear:hover{color:var(--acc)}

/* ---------- 列表 ---------- */
.list-wrap{padding-top:20px;padding-bottom:60px}

.result-line{margin:0 0 12px;min-height:18px;font-size:11.5px;color:var(--fg-faint)}

.list-section{margin-top:22px}
.list-section:first-child{margin-top:0}

.section-head{
  display:flex;align-items:baseline;justify-content:space-between;
  gap:8px 16px;flex-wrap:wrap;
  padding:0 0 8px;
}
.section-head h2{font-size:14px;font-weight:600;margin:0;color:var(--fg)}
.section-head h2::before{content:"> ";color:var(--acc)}
.section-head .hint{font-size:11.5px;color:var(--fg-faint)}

.pending-note{
  margin:0 0 10px;padding:10px 14px;
  background:rgba(255,180,84,.05);
  border:1px solid rgba(255,180,84,.22);
  font-size:12px;line-height:1.85;color:var(--fg-dim);
}
.pending-note b{color:var(--warn);font-weight:600}

.rows{
  display:flex;flex-direction:column;
  border:1px solid var(--line);
  counter-reset:rownum;
}

.row{
  display:grid;
  grid-template-columns:46px minmax(0,1.5fr) minmax(0,1fr) auto;
  gap:14px;align-items:baseline;
  padding:12px 14px;
  border-top:1px solid var(--line);
  transition:background .12s;
}
.row:first-child{border-top:0}
.row:hover{background:var(--panel)}
.row::before{
  counter-increment:rownum;
  content:"[" counter(rownum,decimal-leading-zero) "]";
  color:var(--fg-faint);font-size:11px;
}

.who{min-width:0}
.who-name{
  display:block;font-size:14px;font-weight:600;color:var(--fg);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.who-name.is-empty{color:var(--fg-faint);font-weight:400;font-style:italic}
.who-ids{display:flex;flex-wrap:wrap;gap:4px 14px;margin-top:5px;font-size:11.5px;color:var(--fg-faint)}
.who-ids b{font-weight:400;color:var(--fg-dim)}
.who-ids .label{color:var(--fg-faint);opacity:.8}

.why{min-width:0}
.why-reason{display:block;font-size:12.5px;color:var(--fg-dim);overflow-wrap:anywhere}
.why-time{display:block;margin-top:4px;font-size:11px;color:var(--fg-faint)}

.mark{display:flex;align-items:center;gap:8px;justify-self:end}

.evidence{
  width:30px;height:30px;display:grid;place-items:center;
  border:1px solid var(--line);color:var(--fg-dim);
}
.evidence:hover{color:var(--acc);border-color:var(--acc-dim)}
.evidence svg{width:14px;height:14px}

.tag{
  display:inline-flex;align-items:center;padding:2px 8px;
  font-size:10px;letter-spacing:.08em;white-space:nowrap;
  border:1px solid var(--line);
}
.tag-pending{border-color:rgba(255,180,84,.45);color:var(--warn)}

.rows.is-pending .row::before{color:rgba(255,180,84,.6)}

/* ---------- 空态 / 错误态 ---------- */
.state{
  padding:46px 24px;text-align:center;
  border:1px solid var(--line);
}
.state h2{font-size:14px;font-weight:600;margin:0 0 10px;color:var(--fg)}
.state h2::before{content:"// ";color:var(--fg-faint)}
.state p{margin:0 auto;max-width:52ch;font-size:12.5px;color:var(--fg-dim);line-height:1.9}
.state.is-error{border-color:rgba(255,107,107,.4)}
.state.is-error h2{color:var(--red)}
.state.is-error h2::before{color:rgba(255,107,107,.5)}
.state .btn{margin-top:18px}

/* ---------- 加载骨架 ---------- */
.skeleton{display:flex;flex-direction:column;border:1px solid var(--line)}
.skeleton i{display:block;height:62px;border-top:1px solid var(--line);background:linear-gradient(90deg,var(--panel2),var(--panel),var(--panel2));background-size:200% 100%;animation:shimmer 1.4s linear infinite}
.skeleton i:first-child{border-top:0}
@keyframes shimmer{from{background-position:120% 0}to{background-position:-120% 0}}

/* 搜索命中高亮 */
mark{background:rgba(63,240,140,.22);color:var(--acc);padding:0 1px}

/* ---------- 页脚 ---------- */
.site-footer{border-top:1px solid var(--line);margin-top:20px}
.footer-inner{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:20px 0 34px}
.footer-inner p{margin:0;font-size:11.5px;color:var(--fg-faint)}
.footer-inner code{color:var(--fg-dim);background:var(--panel);padding:1px 5px}
.footer-meta{letter-spacing:.08em}

/* ---------- 响应式 ---------- */
@media (max-width:820px){
  .row{grid-template-columns:40px minmax(0,1fr) auto;gap:10px}
  .why{grid-column:2/-1}
  .mark{grid-row:1;grid-column:3}
}

@media (max-width:600px){
  .container{padding-inline:16px}
  .hero{padding-top:32px}
  .header-nav{display:none}
  .stats{grid-template-columns:1fr;max-width:none}
  .stats > div{border-left:0;border-top:1px solid var(--line);padding-left:0}
  .stats > div:first-child{border-top:0}
  .search{max-width:none}
  .row{padding:11px 12px}
  .hero-actions .btn{flex:1 1 auto}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important}
  .eyebrow .dot{animation:none}
}
