:root{
  --bg:#fbfbf7; --card:#ffffff; --text:#111827; --muted:#6b7280;
  --brand:#6d28d9; --brand2:#10b981; --warn:#f59e0b; --border:#e5e7eb;
  --danger:#ef4444;
}
*{box-sizing:border-box}
body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
  background:linear-gradient(135deg,#fbfbf7 0%,#f3f4ff 100%);color:var(--text);}
a{color:var(--brand);text-decoration:none} a:hover{text-decoration:underline}
.container{max-width:1020px;margin:0 auto;padding:18px}
.header{background:linear-gradient(135deg,#6d28d9 0%,#7c3aed 35%,#10b981 120%);
  color:white;padding:22px 18px;}
.header h1{margin:0;font-size:1.6rem} .header p{margin:6px 0 0;opacity:.92}
.nav{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}
.nav a{display:inline-block;padding:10px 12px;border-radius:999px;background:rgba(255,255,255,.15);
  color:white;font-weight:900}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:14px;margin-top:16px}
.card{background:var(--card);border:1px solid var(--border);border-radius:16px;padding:16px;
  box-shadow:0 8px 24px rgba(0,0,0,.06)}
.card h2{margin:0 0 8px;font-size:1.08rem}
.badge{display:inline-block;padding:6px 10px;border-radius:999px;background:#ede9fe;color:#4c1d95;
  font-weight:950;font-size:.85rem}
.badge.green{background:#d1fae5;color:#065f46}
.badge.warn{background:#fef3c7;color:#92400e}
.badge.red{background:#fee2e2;color:#991b1b}
small,.muted{color:var(--muted)}
hr{border:none;border-top:1px solid var(--border);margin:14px 0}
.btnrow{display:flex;gap:10px;flex-wrap:wrap;margin-top:10px}
.btn{display:inline-block;padding:10px 12px;border-radius:12px;border:1px solid var(--border);background:white;
  font-weight:950;cursor:pointer}
.btn.primary{background:var(--brand);border-color:var(--brand);color:white}
.btn.good{background:var(--brand2);border-color:var(--brand2);color:white}
.callout{border-left:6px solid var(--warn);background:#fffbeb;padding:12px 12px 12px 14px;border-radius:14px}
.footer{margin:30px 0 10px;color:var(--muted);font-size:.9rem}
.kv{display:grid;grid-template-columns:150px 1fr;gap:10px} .kv div{padding:6px 0}
.pill{display:inline-flex;align-items:center;gap:8px;padding:8px 10px;border-radius:999px;border:1px solid var(--border);
  background:#fff;font-weight:950}
.gamebox{margin-top:10px;border:1px dashed var(--border);border-radius:14px;padding:12px;background:#fafafa}
.big{font-size:2.0rem;font-weight:1000;letter-spacing:.02em}
.choices{display:flex;gap:10px;flex-wrap:wrap;margin-top:10px}
.choice{padding:10px 12px;border-radius:14px;border:1px solid var(--border);background:#fff;font-weight:1000;
  cursor:pointer;min-width:86px;text-align:center}
.choice.ok{border-color:rgba(16,185,129,.6);box-shadow:0 0 0 3px rgba(16,185,129,.18)}
.choice.no{border-color:rgba(239,68,68,.6);box-shadow:0 0 0 3px rgba(239,68,68,.18)}
.letterbank{display:flex;gap:10px;flex-wrap:wrap;margin-top:10px}
.letter{width:46px;height:46px;border-radius:14px;border:1px solid var(--border);background:#fff;display:flex;
  align-items:center;justify-content:center;font-size:1.3rem;font-weight:1000;cursor:pointer;user-select:none}
.letter.used{opacity:.35;cursor:not-allowed}
.slotrow{display:flex;gap:10px;flex-wrap:wrap;margin-top:10px}
.slot{width:54px;height:54px;border-radius:14px;border:2px solid #d1d5db;background:#fff;display:flex;
  align-items:center;justify-content:center;font-size:1.5rem;font-weight:1000}
input[type="text"]{padding:10px 12px;border-radius:12px;border:2px solid var(--border);font-size:1rem;min-width:220px}
textarea{font-family:inherit}

.hiddenText{filter:blur(6px);user-select:none}
.pill .value{color:var(--text);font-weight:1000}
