
:root{--bg:#0d141c;--panel:#121c26;--ink:#e8e2d5;--dim:#8fa0ad;--accent:#5aa08c;
--line:#243542;--warn:#c9a35a;--mono:'JetBrains Mono',monospace;--serif:'Fraunces',serif;}
*{box-sizing:border-box;margin:0;padding:0}
body{background:var(--bg);color:var(--ink);font-family:var(--mono);font-size:14px;line-height:1.55;
padding:2rem 1.2rem;max-width:860px;margin:0 auto}
a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}
header{border-bottom:1px solid var(--line);padding-bottom:1rem;margin-bottom:1.6rem}
.brand{font-family:var(--serif);font-size:1.05rem;letter-spacing:.14em;color:var(--accent)}
h1{font-family:var(--serif);font-weight:600;font-size:1.9rem;margin:.4rem 0 .2rem}
h2{font-family:var(--serif);font-weight:500;font-size:1.15rem;color:var(--accent);
margin:1.6rem 0 .5rem;border-bottom:1px solid var(--line);padding-bottom:.25rem}
.meta{color:var(--dim);font-size:.78rem;letter-spacing:.08em;text-transform:uppercase}
.badge{display:inline-block;border:1px solid var(--accent);color:var(--accent);
padding:.1rem .5rem;border-radius:3px;font-size:.7rem;letter-spacing:.1em;margin-left:.5rem}
.badge.need{border-color:var(--warn);color:var(--warn)}
ul{list-style:none;margin:.4rem 0}
li{padding:.28rem 0 .28rem 1.1rem;position:relative;border-bottom:1px dotted var(--line)}
li:before{content:"·";color:var(--accent);position:absolute;left:.2rem}
.panel{background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:.9rem 1rem;margin:.6rem 0}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:.6rem}
.card{background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:.7rem .8rem}
.card .id{color:var(--accent);font-weight:700}
.kv{color:var(--dim);font-size:.8rem;margin-top:.15rem}
footer{margin-top:2.5rem;border-top:1px solid var(--line);padding-top:.8rem;color:var(--dim);font-size:.75rem}
.log{border-left:2px solid var(--accent);padding-left:.8rem;margin:.7rem 0}
