:root{
  --bg:#0f1115; --panel:#171a21; --panel2:#1e222b; --ink:#e8eaed; --muted:#9aa2ad;
  --line:#2a2f3a; --brand:#e23b3b; --accent:#5b9dff; --ok:#3fb950; --warn:#e3a13b; --open:#e23b3b;
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);
  font:16px/1.45 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}
a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:underline}

.topbar{display:flex;align-items:center;gap:12px;padding:10px 14px;
  background:var(--panel);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5}
.brand{font-weight:700;color:var(--ink)}
.topbar nav{margin-left:auto;display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.who{color:var(--muted);font-size:.9rem}
.inline{display:inline}
button.link{background:none;border:0;color:var(--accent);cursor:pointer;font-size:.9rem;padding:0}

.netbar{background:var(--warn);color:#1b1b1b;text-align:center;padding:6px 10px;font-size:.9rem}
.netbar.hidden{display:none}

main{max-width:720px;margin:0 auto;padding:16px}
.card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:18px;margin-bottom:16px}
.card.narrow{max-width:360px;margin:10vh auto}
h1{margin:.1em 0 .5em;font-size:1.4rem}
h2{margin:1.4em 0 .4em;font-size:1.05rem}
.muted{color:var(--muted)}
.small{font-size:.85rem}
.err{color:#ff8b8b}
.ok{color:var(--ok)}
.open{color:var(--open);font-weight:700}
.note{background:var(--panel2);border:1px solid var(--line);padding:8px 10px;border-radius:8px}

label{display:block;margin:.6em 0;font-size:.9rem;color:var(--muted)}
input,select,textarea{width:100%;margin-top:4px;padding:11px 12px;background:var(--panel2);
  color:var(--ink);border:1px solid var(--line);border-radius:10px;font-size:1rem}
input:focus,select,textarea:focus{outline:2px solid var(--accent);outline-offset:-1px}
.req{color:var(--brand)}
.row{display:flex;gap:12px}
.row>label{flex:1}
button.primary{width:100%;margin-top:12px;padding:13px;border:0;border-radius:10px;
  background:var(--brand);color:#fff;font-size:1.05rem;font-weight:600;cursor:pointer}
button.primary:disabled{background:#3a3f4a;color:#8b929c;cursor:not-allowed}

.typegrid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:8px 0 4px}
.type{display:flex;flex-direction:column;align-items:center;gap:4px;padding:14px 6px;
  background:var(--panel2);border:1px solid var(--line);border-radius:12px;color:var(--ink);
  font-size:1.6rem;cursor:pointer}
.type span{font-size:.75rem;color:var(--muted)}
.type.sel{border-color:var(--brand);box-shadow:0 0 0 2px rgba(226,59,59,.35)}
.formmsg{min-height:1.2em;margin-top:8px;font-size:.9rem}
.formmsg.ok{color:var(--ok)} .formmsg.err{color:#ff8b8b}

.filters,.exports{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}
.chip{padding:4px 10px;border:1px solid var(--line);border-radius:20px;color:var(--muted);font-size:.85rem}
.chip.on{background:var(--brand);color:#fff;border-color:var(--brand)}

.timeline{list-style:none;padding:0;margin:0}
.timeline li a{display:flex;gap:10px;padding:10px 6px;border-bottom:1px solid var(--line);color:var(--ink)}
.timeline li a:hover{background:var(--panel2);text-decoration:none}
.timeline .ic{font-size:1.3rem}
.timeline .body{display:flex;flex-direction:column}
.timeline .sum{font-weight:600}
.timeline .meta{color:var(--muted);font-size:.82rem}

table.kv,table.list{width:100%;border-collapse:collapse;margin-top:8px}
table.kv th{text-align:left;color:var(--muted);font-weight:500;width:130px;vertical-align:top;padding:6px 8px}
table.kv td{padding:6px 8px}
table.list th,table.list td{padding:7px 8px;border-bottom:1px solid var(--line);text-align:left;font-size:.9rem}
.back{font-size:.85rem;color:var(--muted)}
.resolve{margin-top:16px;padding-top:12px;border-top:1px solid var(--line)}

.rephead{display:flex;align-items:baseline;justify-content:space-between}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(90px,1fr));gap:10px;margin:6px 0 4px}
.stat{background:var(--panel2);border:1px solid var(--line);border-radius:12px;padding:12px;text-align:center}
.stat b{display:block;font-size:1.5rem}
.stat span{color:var(--muted);font-size:.8rem}
.stat.warn b{color:var(--warn)}
ul.plain,ol.plain{padding-left:1.2em}
ul.plain li,ol.plain li{margin:.25em 0}
pre.raw{background:var(--panel2);border:1px solid var(--line);border-radius:10px;padding:10px;overflow:auto;font-size:.8rem}
