:root{
  --bg:#fff7f0; --card:#fff; --ink:#2b2b2b; --muted:#8a8a8a;
  --accent:#f4511e; --accent-d:#d83c0a; --line:#f0e6dd;
  --ok:#2e7d32; --warn:#c62828;
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html{-webkit-text-size-adjust:100%}
html,body{margin:0}
body{
  font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei","Helvetica Neue",Arial,sans-serif;
  background:var(--bg); color:var(--ink); line-height:1.5; -webkit-font-smoothing:antialiased;
}
.wrap{max-width:480px; margin:0 auto; padding:16px 16px 48px}
header{padding:8px 0 4px}
h1{font-size:24px; margin:0; font-weight:800}
.date{color:var(--muted); font-size:14px; margin-top:2px}
.countdown{
  margin:14px 0; padding:12px 14px; border-radius:14px; font-weight:700;
  background:#fff0e8; color:var(--accent-d);
}
.countdown.closed{background:#fdecea; color:var(--warn)}
.card{background:var(--card); border:1px solid var(--line); border-radius:16px; padding:16px; margin:14px 0;
  box-shadow:0 1px 3px rgba(0,0,0,.04)}
label{display:block; font-weight:600; font-size:14px; margin:14px 0 6px}
input[type=text]{
  width:100%; padding:13px 14px; font-size:17px; border:1.5px solid var(--line);
  border-radius:12px; background:#fff; color:var(--ink);
}
input[type=text]:focus{outline:none; border-color:var(--accent)}
input:disabled{background:#f3f3f3; color:#666}
.options{display:flex; flex-direction:column; gap:10px; margin-top:6px}
.opt{
  display:flex; align-items:center; gap:12px; padding:14px 16px; border:1.5px solid var(--line);
  border-radius:12px; font-size:17px; cursor:pointer; transition:.12s; user-select:none;
}
.opt.sel{border-color:var(--accent); background:#fff3ed; font-weight:700}
.opt .dot{width:20px;height:20px;border-radius:50%;border:2px solid var(--line);flex:none}
.opt.sel .dot{border-color:var(--accent); background:var(--accent); box-shadow:inset 0 0 0 3px #fff}
button.primary{
  width:100%; padding:15px; font-size:18px; font-weight:800; color:#fff;
  background:var(--accent); border:none; border-radius:14px; margin-top:18px; cursor:pointer;
}
button.primary:active{background:var(--accent-d)}
button.primary:disabled{background:#ccc; cursor:not-allowed}
.msg{margin-top:12px; font-size:14px; min-height:18px}
.msg.ok{color:var(--ok)} .msg.err{color:var(--warn)}
.list-title{font-weight:700; font-size:15px; margin:6px 4px; color:var(--muted)}
.ordered{display:flex; flex-direction:column}
.ordered .row{display:flex; justify-content:space-between; gap:10px; padding:11px 4px; border-bottom:1px solid var(--line); font-size:15px}
.ordered .row:last-child{border-bottom:none}
.ordered .row .nm{font-weight:600; min-width:0; overflow-wrap:anywhere}
.ordered .row .op{color:var(--accent-d); text-align:right; min-width:0; overflow-wrap:anywhere}
.note{color:var(--muted); font-size:13px}
.empty{color:var(--muted); font-size:14px; padding:12px 4px}
.counts{display:flex; gap:10px; flex-wrap:wrap; margin:10px 0 4px}
.chip{background:#fff3ed; color:var(--accent-d); font-weight:700; padding:8px 14px; border-radius:999px; font-size:16px}
.total{font-size:18px; font-weight:800; margin-bottom:2px}
button.copy{width:100%; padding:14px; font-size:16px; font-weight:700; background:var(--ok); color:#fff; border:none; border-radius:14px; margin-top:16px; cursor:pointer}
button.copy:active{background:#1b5e20}
pre.rtext{background:#faf6f2; border:1px solid var(--line); border-radius:12px; padding:12px; font-size:14px; white-space:pre-wrap; margin-top:12px; font-family:inherit}
button.latebtn{
  width:100%; padding:13px; font-size:16px; font-weight:700; margin-top:12px; cursor:pointer;
  background:#fff; color:var(--accent-d); border:1.5px dashed var(--accent); border-radius:14px;
}
button.latebtn:active{background:#fff3ed}
.badge-late{
  display:inline-block; background:#fdecea; color:var(--warn); font-size:11px; font-weight:800;
  padding:1px 6px; border-radius:6px; vertical-align:1px; margin-left:2px;
}

/* ── 2.0 ───────────────────────────────────────────────────────────────── */
.hdr{display:flex;justify-content:space-between;align-items:flex-start;padding:8px 0 4px}
.count-chip{background:var(--accent);color:#fff;font-weight:800;font-size:14px;
  padding:8px 14px;border-radius:999px;text-decoration:none;white-space:nowrap;margin-top:4px}
.banner{margin:10px 0;padding:13px 15px;border-radius:14px;font-size:15px;line-height:1.5}
.banner.lucky{background:#f3e5f5;color:#6a1b9a;font-weight:600}
.banner.ai{background:#e8f5e9;color:#1b5e20}
.ai-by{display:block;font-size:11px;color:#81c784;margin-top:4px}
.card-title{font-weight:800;font-size:16px;margin-bottom:10px}
.card-title .sub{font-weight:400;font-size:12px;color:var(--muted);margin-left:6px}
.opt-label{flex:1}
.opt-count{font-size:12px;color:var(--accent-d);font-weight:600;white-space:nowrap}
.fortune{margin-top:10px;padding:11px 13px;background:#fff8e1;color:#795548;border-radius:12px;
  font-size:14px;font-weight:600}
.wish-row{display:flex;justify-content:space-between;align-items:center;padding:9px 0;
  border-bottom:1px solid var(--line)}
.wish-row:last-child{border-bottom:none}
.wish-name{font-size:16px;font-weight:600}
.wish-btn{border:1.5px solid var(--accent);background:#fff;color:var(--accent-d);font-weight:700;
  font-size:14px;padding:7px 13px;border-radius:999px;cursor:pointer}
.wish-btn.voted{background:var(--accent);color:#fff}
.rank-row{display:flex;justify-content:space-between;padding:8px 2px;font-size:15px;
  border-bottom:1px solid var(--line)}
.rank-row:last-child{border-bottom:none}
.rank-days{color:var(--accent-d);font-weight:700}
.wall{display:flex;flex-direction:column;gap:6px;margin-bottom:10px}
.wall-row{font-size:14px;color:#5d4037;background:#faf6f2;border-radius:10px;padding:8px 11px;
  overflow-wrap:anywhere}
.wall-input{display:flex;gap:8px}
.wall-input input{flex:1;padding:11px 13px;font-size:15px;border:1.5px solid var(--line);
  border-radius:10px}
.wall-input button{padding:0 18px;background:var(--accent);color:#fff;border:none;
  border-radius:10px;font-weight:700;font-size:15px;cursor:pointer}
.group-row{padding:10px 4px;border-bottom:1px solid var(--line)}
.group-row:last-child{border-bottom:none}
.group-head{font-weight:800;font-size:15px;color:var(--accent-d);margin-bottom:3px}
.group-names{font-size:14px;line-height:1.8;overflow-wrap:anywhere}
.foot{text-align:center;color:#c9b8a8;font-size:12px;margin-top:26px}
.foot a{color:#c9b8a8}
.del-order{border:none;background:#fdecea;color:#c62828;font-size:12px;font-weight:800;
  width:22px;height:22px;border-radius:6px;cursor:pointer;margin-left:6px;vertical-align:1px}
