:root{
  --bg:#DADFDD; --surface:#F5F6F3; --ink:#16252E; --muted:#4E6370; --line:#B9C2BF; --marker:#F3D63A; --alert:#B3321F; --good:#1F6B3A;
  --display:"Bahnschrift","DIN Alternate","Franklin Gothic Medium","Arial Narrow",system-ui,sans-serif;
  --body:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --mono:ui-monospace,"SF Mono",Consolas,"Liberation Mono",monospace;
}
@media(prefers-color-scheme:dark){
  :root{--bg:#101A20; --surface:#192830; --ink:#E8ECEA; --muted:#9FB0B9; --line:#2F4350; --alert:#F07D6B; --good:#6FCB8F}
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:1rem/1.5 var(--body)}
a{color:var(--ink);text-underline-offset:.18em}
a:hover{background:var(--marker);color:#16252E}
:focus-visible{outline:3px solid var(--ink);outline-offset:2px}
h1,h2,h3{font-family:var(--display);line-height:1.1;margin:0}
h1{font-size:1.9rem;font-weight:800}
h2{font-size:1.3rem;font-weight:800;margin-bottom:.75rem}
.boot{padding:2rem 1rem}
.wrap{max-width:74rem;margin:0 auto;padding:0 1rem}
.mono,.num{font-variant-numeric:tabular-nums}
.num{text-align:right;white-space:nowrap}
.muted{color:var(--muted)}
.good{color:var(--good)} .bad{color:var(--alert)}

header.bar{background:var(--surface);border-bottom:2px solid var(--ink)}
header.bar .wrap{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;padding-top:.7rem;padding-bottom:.7rem}
.brand{font:800 1.3rem/1 var(--display);margin-right:auto;text-decoration:none}
nav.tabs{display:flex;gap:.25rem;flex-wrap:wrap}
nav.tabs a{padding:.4rem .8rem;text-decoration:none;font-weight:700;border:2px solid transparent}
nav.tabs a[aria-current=page]{border-color:var(--ink);background:var(--marker);color:#16252E}
main.wrap{padding-top:1.5rem;padding-bottom:3rem}
h3{margin:1rem 0 .25rem}
.head{display:flex;align-items:baseline;gap:1rem;flex-wrap:wrap;margin-bottom:1rem}
.head .grow{margin-right:auto}

button,.btn{font:inherit;font-weight:700;color:var(--ink);background:var(--surface);border:2px solid var(--ink);padding:.45rem .9rem;cursor:pointer;text-decoration:none;display:inline-block;border-radius:0}
button:hover,.btn:hover{background:var(--marker);color:#16252E}
button.primary{background:var(--ink);color:var(--surface)}
button.primary:hover{background:var(--marker);color:#16252E}
button.danger{border-color:var(--alert);color:var(--alert)}
button.danger.armed{background:var(--alert);color:#fff}
button.link{border:0;background:none;padding:0;text-decoration:underline;font-weight:600}
button:disabled{opacity:.5;cursor:default}
input,select,textarea{font:inherit;color:var(--ink);background:var(--surface);border:2px solid var(--ink);padding:.45rem .6rem;border-radius:0;max-width:100%}
textarea{width:100%;min-height:6rem;resize:vertical}
label{font-weight:700;display:block;margin-bottom:.25rem}

.chips{display:flex;gap:.4rem;flex-wrap:wrap;margin-bottom:.75rem}
.chips button{padding:.3rem .7rem;font-weight:600}
.chips button[aria-pressed=true]{background:var(--ink);color:var(--surface)}
.tools{display:flex;gap:.75rem;flex-wrap:wrap;align-items:center;margin-bottom:.75rem}
.tools input[type=search]{flex:1 1 14rem}

.scroll{overflow-x:auto;background:var(--surface);border:2px solid var(--ink)}
table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}
th,td{padding:.5rem .7rem;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
th.num,td.num{text-align:right}
thead th{border-bottom:2px solid var(--ink);white-space:nowrap}
thead th button{border:0;background:none;padding:0;font-weight:800}
thead th button:hover{background:var(--marker);color:#16252E}
tfoot td{font-weight:800;border-top:2px solid var(--ink);border-bottom:0}
tbody tr:last-child td{border-bottom:0}
.empty{background:var(--surface);border:2px dashed var(--line);padding:2rem 1rem;text-align:center}
.status{display:inline-block;padding:0 .5rem;border:1.5px solid var(--ink);font-weight:700;font-size:.85rem}
.status.bought{background:var(--marker);color:#16252E}
.status.sold{background:var(--ink);color:var(--surface)}
.status.passed{border-style:dashed;color:var(--muted);border-color:var(--muted)}

.cards{display:grid;gap:.75rem;grid-template-columns:repeat(auto-fit,minmax(10rem,1fr));margin-bottom:1.5rem}
.card{background:var(--surface);border:2px solid var(--ink);padding:.75rem .9rem}
.card .k{font-size:.85rem;color:var(--muted)}
.card .v{font:800 1.7rem/1.2 var(--display);font-variant-numeric:tabular-nums}
.panel{background:var(--surface);border:2px solid var(--ink);padding:1rem;margin-bottom:1.25rem}
.grid2{display:grid;gap:1.25rem;grid-template-columns:1fr}
@media(min-width:52rem){.grid2{grid-template-columns:1fr 1fr}}
.bar-row{display:grid;grid-template-columns:8rem 1fr 6rem;gap:.6rem;align-items:center;padding:.25rem 0}
.bar-track{height:.9rem;background:var(--line)}
.bar-fill{height:100%;background:var(--ink)}
.bar-fill.neg{background:var(--alert)}
.hero{display:grid;gap:1rem;grid-template-columns:1fr}
@media(min-width:44rem){.hero.has-photo{grid-template-columns:16rem 1fr}}
.hero img{width:100%;height:auto;border:2px solid var(--ink);background:var(--line);aspect-ratio:4/3;object-fit:cover}
.facts{display:grid;gap:.15rem .75rem;grid-template-columns:auto 1fr;margin:0}
.facts dt{color:var(--muted)} .facts dd{margin:0;font-variant-numeric:tabular-nums}
.addrow{display:grid;gap:.6rem;grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));align-items:end;margin-bottom:.75rem}
.addrow .wide{grid-column:span 2}
.actions{display:flex;gap:.6rem;flex-wrap:wrap;align-items:center}
.msg{min-height:1.5rem;margin:.5rem 0 0}
.msg.err{color:var(--alert);font-weight:700}

.signin{max-width:26rem;margin:12vh auto 0;padding:0 1rem}
.signin .panel{box-shadow:8px 8px 0 var(--ink)}
.signin input{width:100%;font-family:var(--mono)}
.signin h1{margin-bottom:.5rem}
.fine{font-size:.9rem;color:var(--muted)}
@media(prefers-reduced-motion:no-preference){button,.btn{transition:background-color .12s}}
