:root {
  --bg:#faf9f5; --card:#ffffff; --ink:#1f1e1d; --mute:#73726c; --line:#e8e6dc; --soft:#f0eee6;
  --accent:#d97757; --accent-ink:#ffffff;
  --considering:#9a6a1c; --shortlisted:#2f7d4f; --discarded:#a14a4a;
  --serif: "Iowan Old Style", "Palatino Linotype", Georgia, "Times New Roman", serif;
  --sans: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
}
@media (prefers-color-scheme: dark) {
  :root { --bg:#262624; --card:#30302e; --ink:#f5f4ed; --mute:#a3a198; --line:#41403b; --soft:#3a3935;
    --considering:#e3b04b; --shortlisted:#6fcf97; --discarded:#e58f8f; }
}
* { box-sizing:border-box; }
body { margin:0; background:var(--bg); color:var(--ink); font:16px/1.55 var(--sans); }
.hidden { display:none !important; }
.wrap { max-width:820px; margin:0 auto; padding:0 16px; }
.spark { color:var(--accent); }
h1, h2, h3 { font-family:var(--serif); font-weight:500; letter-spacing:-.01em; }

.login { min-height:100vh; display:grid; place-items:center; padding:16px; }
.btn { display:inline-block; font-size:.92rem; border:1px solid var(--line); background:var(--card); color:var(--ink); border-radius:999px; padding:8px 18px; text-decoration:none; }
.btn.primary { background:var(--accent); border-color:var(--accent); color:var(--accent-ink); font-size:1rem; padding:10px 24px; }
.btn.ghost { background:none; }
.login-card { text-align:center; max-width:380px; }
.login-card .spark { font-size:2.2rem; }
.login-card h1 { font-size:2rem; margin:.2em 0; }
.login-card p { color:var(--mute); }
.err { color:var(--discarded); min-height:1.5em; }

header { border-bottom:1px solid var(--line); }
.bar { display:flex; align-items:center; gap:12px; padding-top:14px; padding-bottom:14px; flex-wrap:wrap; }
.bar h1 { font-size:1.3rem; margin:0; flex:1; }
#who { color:var(--mute); font-size:.9rem; }
.lede { font-family:var(--serif); font-size:1.15rem; color:var(--mute); margin:28px 0 18px; }

button { font:inherit; font-size:.92rem; cursor:pointer; border:1px solid var(--line); background:var(--card); color:var(--ink); border-radius:999px; padding:6px 14px; }
button:hover { border-color:var(--mute); }
button.on { background:var(--ink); border-color:var(--ink); color:var(--bg); }
button.ghost { background:none; }
nav { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:8px; }

.card { background:var(--card); border:1px solid var(--line); border-radius:16px; padding:24px; margin:18px 0; }
.card.is-discarded { opacity:.62; }
.top { display:flex; gap:12px; align-items:flex-start; justify-content:space-between; flex-wrap:wrap; }
.card h2 { font-size:1.6rem; margin:0; line-height:1.2; }
.headline { color:var(--mute); margin-top:4px; }
.status { font-size:.85rem; border-radius:999px; padding:5px 12px; border:1px solid var(--line); background:var(--soft); color:var(--ink); }
.dot { display:inline-block; width:8px; height:8px; border-radius:50%; margin-right:6px; }
.considering .dot, .dot.considering { background:var(--considering); }
.shortlisted .dot, .dot.shortlisted { background:var(--shortlisted); }
.discarded .dot, .dot.discarded { background:var(--discarded); }

.photos { display:flex; gap:10px; flex-wrap:wrap; margin:16px 0 4px; }
.photos img { height:190px; border-radius:12px; border:1px solid var(--line); display:block; }
.photos .pdf { padding:10px 14px; border:1px solid var(--line); border-radius:12px; color:var(--accent); text-decoration:none; background:var(--soft); }

dl.facts { display:grid; grid-template-columns:max-content 1fr; gap:6px 18px; margin:18px 0 0; padding:16px; background:var(--soft); border-radius:12px; }
dl.facts dt { color:var(--mute); font-size:.9rem; }
dl.facts dd { margin:0; }
@media (max-width:520px) { dl.facts { grid-template-columns:1fr; gap:0; } dl.facts dt { margin-top:8px; } }

.sec { margin-top:18px; }
.sec h3 { font-size:1.05rem; margin:0 0 4px; }
.sec p { margin:0; white-space:pre-wrap; }
.contact { margin-top:18px; font-size:.95rem; color:var(--mute); }
.contact b { color:var(--ink); font-weight:600; }

.discuss { margin-top:24px; padding-top:18px; border-top:1px solid var(--line); }
.discuss h3 { font-size:1.05rem; margin:0 0 8px; }
.statusbar { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:16px; align-items:center; }
.statusbar span { color:var(--mute); font-size:.9rem; margin-right:4px; }
.comment { margin:12px 0; padding:10px 14px; background:var(--soft); border-radius:12px; }
.comment .who { font-weight:600; font-size:.9rem; }
.comment small { color:var(--mute); margin-left:8px; }
.comment .del { border:0; background:none; color:var(--mute); padding:0 4px; float:right; }
.comment p { margin:4px 0 0; white-space:pre-wrap; }
.cform { display:flex; gap:8px; margin-top:12px; }
.cform input { flex:1; font:inherit; padding:9px 14px; border:1px solid var(--line); border-radius:999px; background:var(--bg); color:var(--ink); min-width:0; }
.cform button { background:var(--accent); border-color:var(--accent); color:var(--accent-ink); }
.empty { text-align:center; color:var(--mute); margin:48px 0; font-family:var(--serif); font-size:1.1rem; }
