/* Pain Board — FRAME/SHIFT product aesthetic: dark, credible, technical-but-warm.
   Discussion is the signal, so comment counts + threads are visually prominent. */
:root{
  /* dark (default) — FRAME/SHIFT product look */
  --bg:#0E0F12; --panel:#15171C; --panel2:#1b1d24; --line:#262931; --line2:#333742;
  --ink:#F4F2ED; --muted:#9A9B9F; --accent:#E24B4A; --accent-d:#c23a39; --blue:#4A90E2;
  --green:#3ec98a; --amber:#e0a43b; --topbg:rgba(14,15,18,.9);
  --serif:Georgia,"Times New Roman",serif;
  --sans:system-ui,-apple-system,"Helvetica Neue",Helvetica,Arial,sans-serif;
  --mono:"SFMono-Regular",ui-monospace,Menlo,Consolas,monospace;
  --radius:8px;
}
/* light — the lab's creamy paper (#f4f1ea) */
:root[data-theme="light"]{
  --bg:#f4f1ea; --panel:#fbfaf6; --panel2:#ece8df; --line:#d8d3c7; --line2:#c8c2b4;
  --ink:#16130f; --muted:#5a564e; --accent:#c0392b; --accent-d:#9c2f24; --blue:#2a6f97;
  --green:#2e7d52; --amber:#a8631a; --topbg:rgba(244,241,234,.92);
}
*{box-sizing:border-box}
[hidden]{display:none!important}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.55 var(--sans);-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%}
a{color:var(--ink)} a:hover{color:var(--accent)}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
h1,h2,h3{font-family:var(--serif);font-weight:600;letter-spacing:-0.01em}
.wrap{max-width:820px;margin:0 auto;padding:0 16px}

/* top bar */
.top{border-bottom:1px solid var(--line);background:var(--topbg);position:sticky;top:0;z-index:10;backdrop-filter:blur(6px)}
.topright{display:flex;align-items:center;gap:8px}
.themebtn{background:none;border:1px solid var(--line2);border-radius:20px;min-width:40px;height:36px;cursor:pointer;font-size:15px;color:var(--ink);line-height:1}
.themebtn:hover{border-color:var(--accent)}
.top .wrap{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px}
.brand{display:flex;align-items:baseline;gap:10px}
.brand a{text-decoration:none;color:var(--ink)}
.brand .fs{font-family:var(--mono);font-size:12px;letter-spacing:.18em;color:var(--muted)}
.brand .fs:hover{color:var(--accent)}
.brand .nm{font-family:var(--serif);font-size:19px}
.brand .nm:hover{color:var(--accent)}
.brand .nm b{color:var(--accent);font-weight:600}
.top .wa{font-size:12.5px;font-weight:600;color:#fff;background:#25D366;text-decoration:none;border:1px solid #25D366;border-radius:20px;padding:7px 12px;white-space:nowrap}
.top .wa:hover{filter:brightness(1.06);color:#fff}

/* hero + rule */
.hero{padding:26px 0 8px}
.hero h1{font-size:28px;margin:0 0 8px}
.hero p{color:var(--muted);font-size:15px;margin:0 0 14px;max-width:62ch}
.rule{display:flex;gap:9px;align-items:flex-start;background:var(--panel);border:1px solid var(--line);border-left:3px solid var(--amber);
  border-radius:var(--radius);padding:10px 13px;font-size:13px;color:var(--ink);margin:0 0 18px}
.rule b{color:var(--amber)}

/* toolbar */
.toolbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:14px}
.toolbar input[type=search],.toolbar select{background:var(--panel);border:1px solid var(--line2);color:var(--ink);
  border-radius:var(--radius);padding:9px 11px;font:14px var(--sans);min-height:42px}
.toolbar input[type=search]{flex:1;min-width:160px}
.toolbar .grow{flex:1}
.tagbar{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:16px}
.tagchip{font-size:12px;color:var(--muted);border:1px solid var(--line2);border-radius:20px;padding:5px 11px;cursor:pointer;background:transparent;min-height:34px}
.tagchip:hover{color:var(--ink)} .tagchip.on{background:var(--accent);border-color:var(--accent);color:#fff}

.btn{font:600 14px var(--sans);padding:10px 16px;border-radius:var(--radius);border:1px solid var(--line2);background:var(--panel);color:var(--ink);cursor:pointer;min-height:44px}
.btn:hover{border-color:var(--accent)}
.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}
.btn.primary:hover{background:var(--accent-d)}
.btn.sm{min-height:0;padding:6px 11px;font-size:13px}
.btn.ghost{background:transparent}

/* pain cards */
.list{display:flex;flex-direction:column;gap:10px;margin-bottom:30px}
.card{display:flex;gap:14px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px}
.card:hover{border-color:var(--line2)}
.vote{display:flex;flex-direction:column;align-items:center;gap:2px;flex:none;min-width:46px}
.vote button{width:44px;height:38px;border:1px solid var(--line2);background:var(--panel2);color:var(--muted);border-radius:8px;cursor:pointer;font-size:15px}
.vote button.on{color:var(--accent);border-color:var(--accent)}
.vote .n{font-family:var(--mono);font-size:15px;color:var(--ink)}
.card .main{flex:1;min-width:0}
.card h3{font-size:18px;margin:0 0 5px;line-height:1.3}
.card h3 a{text-decoration:none}
.card .ex{color:var(--muted);font-size:14px;margin:0 0 10px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.meta{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:12.5px;color:var(--muted)}
.meta .tag{border:1px solid var(--line2);border-radius:20px;padding:2px 9px;font-size:11.5px;color:var(--muted)}
.meta .comments{color:var(--ink);font-weight:600}
.meta .comments b{color:var(--accent)}
.badge{font-family:var(--mono);font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;padding:2px 8px;border-radius:20px;border:1px solid var(--line2)}
.badge.open{color:var(--muted)} .badge.workaround{color:var(--amber);border-color:#5a4a1d}
.badge.solved{color:var(--green);border-color:#1d5a3c}
.solved-link{color:var(--green);text-decoration:none;font-weight:600}
.solved-link:hover{text-decoration:underline}

/* post form */
.poster{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:16px;margin-bottom:18px}
.poster label{display:block;font-size:13px;color:var(--muted);margin:0 0 5px}
.poster input[type=text],.poster textarea{width:100%;background:var(--panel2);border:1px solid var(--line2);color:var(--ink);
  border-radius:var(--radius);padding:11px 12px;font:15px var(--sans);margin-bottom:12px}
.poster textarea{resize:vertical;min-height:90px;line-height:1.5}
.poster .tagpick{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}
.nudge{background:rgba(224,164,59,.1);border:1px solid #5a4a1d;color:var(--ink);border-radius:var(--radius);padding:10px 13px;font-size:13.5px;margin-bottom:12px;line-height:1.5}
.posterbar{display:flex;gap:10px;align-items:center;justify-content:flex-end}
.note{font-size:13px;color:var(--muted)}
.note.bad{color:var(--accent)} .note.good{color:var(--green)}

/* pain permalink page */
.painhead{padding:20px 0 6px}
.painhead .back{font-size:13px;color:var(--muted);text-decoration:none}
.painhead h1{font-size:25px;margin:12px 0 10px;line-height:1.25}
.painbody{color:var(--ink);font-size:16px;line-height:1.6;white-space:pre-wrap;margin:0 0 14px}
.painmeta{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:8px}
.share{margin-left:auto}

/* THREADED comments — the hero of the page */
.threadhead{display:flex;align-items:baseline;justify-content:space-between;border-top:1px solid var(--line);margin-top:22px;padding-top:16px}
.threadhead h2{font-size:18px;margin:0}
.threadhead .count b{color:var(--accent)}
.addcomment{margin:12px 0 20px}
.addcomment textarea{width:100%;background:var(--panel2);border:1px solid var(--line2);color:var(--ink);border-radius:var(--radius);padding:11px 12px;font:15px var(--sans);min-height:70px;resize:vertical}
.thread{display:flex;flex-direction:column;gap:2px}
.cmt{padding:11px 0 4px;border-top:1px solid var(--line)}
.cmt:first-child{border-top:none}
.cmt .who{font-size:12.5px;color:var(--muted);margin-bottom:4px}
.cmt .who b{color:var(--ink)}
.cmt .txt{font-size:15px;line-height:1.55;white-space:pre-wrap}
.cmt .actions{display:flex;gap:14px;margin-top:5px}
.cmt .actions button{background:none;border:none;color:var(--muted);font-size:12.5px;cursor:pointer;padding:3px 0}
.cmt .actions button:hover{color:var(--accent)}
.kids{margin-left:16px;padding-left:13px;border-left:2px solid var(--line);margin-top:2px}
.collapsed > .kids,.collapsed > .replybox{display:none}
.replybox{margin:8px 0 4px}
.replybox textarea{width:100%;background:var(--panel2);border:1px solid var(--line2);color:var(--ink);border-radius:var(--radius);padding:9px 11px;font:14px var(--sans);min-height:54px;resize:vertical;margin-bottom:8px}
.replybox .row{display:flex;gap:8px;justify-content:flex-end}

/* footer — subtle FRAME/SHIFT */
.foot{border-top:1px solid var(--line);margin-top:24px;padding:22px 0 50px;color:var(--muted);font-size:13.5px;line-height:1.6}
.foot a{color:var(--ink)} .foot .fs b{color:var(--accent)}
.foot .wa-cta{display:inline-block;margin-top:10px;background:#25D366;border:1px solid #25D366;border-radius:20px;padding:8px 14px;text-decoration:none;color:#fff;font-size:13.5px;font-weight:600}
.foot .wa-cta:hover{filter:brightness(1.06);color:#fff}
.foot .links{margin-top:14px;font-size:13px;color:var(--muted)}
.foot .links a{color:var(--ink);text-decoration:none;margin:0 2px}
.foot .links a:hover{color:var(--accent)}

.empty{color:var(--muted);text-align:center;padding:40px 16px}
#toast{position:fixed;left:50%;bottom:20px;transform:translateX(-50%) translateY(18px);background:var(--ink);color:var(--bg);
  padding:10px 18px;border-radius:8px;font-size:14px;opacity:0;transition:.25s;pointer-events:none;z-index:50}
#toast.show{opacity:1;transform:translateX(-50%) translateY(0)}

@media (max-width:520px){
  .hero h1{font-size:24px}
  .card{padding:12px}
  .kids{margin-left:9px;padding-left:9px}
}
