/* Brand colours: change them here. */
:root {
  --brand: #7c4dff;
  --brand-ink: #ffffff;
  --accent: #ff6b9d;
  --sun: #ffd23f;
  --mint: #19c7a0;
  --sky: #38b6ff;
  --text: #24213a;
  --muted: #666385;
  --bg: #fff8ef;
  --card: #ffffff;
  --border: #ece4f7;
  --danger: #d62f4b;
  --ok: #0f9d77;
  --radius: 16px;
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
}
* { box-sizing: border-box; }
body { margin: 0; background: var(--bg); color: var(--text); line-height: 1.55; }
a { color: var(--brand); }
h1, h2, h3 { line-height: 1.2; }
header.site { background: linear-gradient(90deg, #7c4dff, #ff6b9d); }
header.site .inner, main { max-width: 980px; margin: 0 auto; padding: 16px; }
header.site .inner { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
header.site .brand { display: flex; align-items: center; gap: 10px; font-weight: 800; font-size: 1.25rem; color: #fff; text-decoration: none; }
nav { display: flex; align-items: center; flex-wrap: wrap; gap: 4px 14px; }
nav a, .linkbtn { color: #fff; text-decoration: none; font-weight: 600; }
nav a.owner { background: var(--sun); color: var(--text); padding: 2px 10px; border-radius: 99px; }
nav a.btn { background: var(--sun); color: var(--text); }
.linkbtn { background: none; border: 0; cursor: pointer; font: inherit; font-weight: 600; padding: 0; opacity: .9; }
form.inline { display: inline; margin: 0; }
.card { background: var(--card); border: 2px solid var(--border); border-radius: var(--radius); padding: 20px; margin: 16px 0; box-shadow: 0 4px 0 var(--border); }
.hero { background: linear-gradient(135deg, #fff2c9, #ffe0ee 50%, #e2d9ff); border-radius: 24px; padding: 28px 22px; margin: 8px 0 16px; }
.hero h1 { margin: 0 0 8px; font-size: 2rem; }
.grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 14px; }
.grid .card { margin: 0; display: flex; flex-direction: column; gap: 8px; }
.grid .card:nth-child(4n+1) { border-color: #cdbcff; } .grid .card:nth-child(4n+2) { border-color: #ffc2d8; }
.grid .card:nth-child(4n+3) { border-color: #a8ecdc; } .grid .card:nth-child(4n) { border-color: #ffe48a; }
.btn { display: inline-block; background: var(--brand); color: var(--brand-ink); border: 0; border-radius: 99px; padding: 10px 20px; font-size: 1rem; font-weight: 700; cursor: pointer; text-decoration: none; box-shadow: 0 3px 0 rgba(0,0,0,.18); }
.btn.small { padding: 5px 14px; font-size: .9rem; }
.btn.secondary { background: #fff; color: var(--brand); border: 2px solid var(--brand); box-shadow: none; }
.btn.pink { background: var(--accent); } .btn.green { background: var(--mint); } .btn.danger { background: var(--danger); }
.row { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; }
label { display: block; font-weight: 700; margin: 12px 0 4px; }
input, select, textarea { width: 100%; padding: 10px 12px; border: 2px solid var(--border); border-radius: 12px; font: inherit; background: #fff; }
input[type=radio], input[type=checkbox] { width: auto; }
table { width: 100%; border-collapse: collapse; }
th, td { text-align: left; padding: 10px 8px; border-bottom: 1px solid var(--border); vertical-align: top; }
.flash { padding: 12px 16px; border-radius: 12px; margin: 12px 0; font-weight: 600; }
.flash.ok { background: #dcf7ee; color: var(--ok); }
.flash.error { background: #ffe3e8; color: var(--danger); }
.muted { color: var(--muted); }
.tag { display: inline-block; background: #efe8ff; color: var(--brand); border-radius: 99px; padding: 2px 10px; font-size: .85rem; font-weight: 700; margin: 2px 4px 2px 0; }
.tag.pink { background: #ffe3ee; color: #c2275f; } .tag.green { background: #dcf7ee; color: var(--ok); } .tag.sun { background: #fff0b8; color: #7a5b00; }
.opt { display: flex; gap: 10px; align-items: flex-start; border: 2px solid var(--border); border-radius: 12px; padding: 10px 12px; margin: 8px 0; cursor: pointer; font-weight: 500; }
.opt:hover { border-color: var(--brand); background: #f7f3ff; }
.opt.right { border-color: var(--ok); background: #dcf7ee; } .opt.wrong { border-color: var(--danger); background: #ffe3e8; }
.opt input { margin-top: 5px; }
.bar { height: 14px; border-radius: 99px; background: var(--border); overflow: hidden; } .bar > i { display: block; height: 100%; background: linear-gradient(90deg, var(--mint), var(--sky)); }
.score { font-size: 3rem; font-weight: 800; color: var(--brand); }
.ad { margin: 24px 0 8px; padding: 10px 14px; border: 2px dashed #ffc2d8; border-radius: 12px; background: #fff; color: var(--muted); text-align: center; }
.match { background: #fff6d6; border-left: 5px solid var(--sun); padding: 8px 12px; border-radius: 8px; margin: 8px 0; font-size: .95rem; }
.passage { background: #f7f3ff; border-radius: 12px; padding: 10px 14px; margin: 8px 0; font-size: .95rem; }
.thumbs img { max-width: 140px; max-height: 140px; border-radius: 8px; border: 2px solid var(--border); margin: 4px; }
@media (max-width: 600px) { th, td { padding: 8px 4px; } .hero h1 { font-size: 1.6rem; } }
