*{box-sizing:border-box}
:root{
  --bg:#f7f9fc;
  --text:#1d2939;
  --muted:#667085;
  --ok:#16a34a;
  --bad:#dc2626;
  --chip:#ffffff;
  --shadow:0 6px 20px rgba(17,24,39,.08);
  --radius:16px;
  --brand:#FEF9C3;
  --accent:#111827;
}
html,body{height:100%}
body{
  margin:0; font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
  color:var(--text); background:var(--bg);
  display:flex; flex-direction:column;
}
.app-header{
  position:sticky; top:0; z-index:10;
  background:#fff; box-shadow:var(--shadow);
  padding:16px 20px; display:flex; align-items:center; justify-content:space-between;
}
.app-header h1{margin:0; font-size:clamp(1.1rem,1rem + 1vw,1.6rem)}
.meta{display:flex; align-items:center; gap:12px}
.score{font-weight:600}
.progress{color:var(--muted)}
.btn{
  border:0; background:var(--accent); color:#fff; padding:10px 14px; border-radius:12px;
  cursor:pointer; box-shadow:var(--shadow);
}
.btn.small{ padding:6px 10px; border-radius:10px; font-size:.9rem }
.btn.secondary{ background:#334155; }
.btn:disabled{opacity:.6; cursor:not-allowed}
.app-main{ width:min(900px,96%); margin:18px auto; display:flex; flex-direction:column; gap:16px}
.instructions{ background:#fff; border-radius:var(--radius); box-shadow:var(--shadow); padding:12px 16px; color:var(--muted)}
.card{
  background:#fff; border-radius:var(--radius); box-shadow:var(--shadow);
  padding:18px; display:flex; flex-direction:column; gap:16px;
}
.context{ color:var(--muted) }
.sentence{
  background:var(--brand);
  border-radius:14px; padding:14px; font-size:clamp(1.05rem,1rem + .6vw,1.5rem); line-height:1.7;
  display:flex; flex-wrap:wrap; gap:8px; align-items:center;
}
.drop{
  display:inline-flex; align-items:center; justify-content:center;
  min-width:160px; background:#fff; border:2px dashed #cbd5e1; padding:6px 10px; border-radius:12px;
}
.drop.highlight{ border-color:#111827 }
.comma{ margin:0 4px; font-weight:800 }
.hidden{ visibility:hidden }
.bank{ background:#fff; border-radius:var(--radius); box-shadow:var(--shadow); padding:10px }
.chips{ display:flex; flex-wrap:wrap; gap:10px }
.chip{
  background:#fff; border-radius:12px; padding:10px 12px; font-weight:700; box-shadow:var(--shadow);
  cursor:grab; user-select:none; transition:transform .12s ease;
}
.chip:active{ cursor:grabbing; transform:scale(.98) }
.chip.correct{ outline:3px solid var(--ok) }
.chip.wrong{ outline:3px solid var(--bad); animation:shake .18s linear 2 }
@keyframes shake{0%,100%{transform:translateX(0)}25%{transform:translateX(-3px)}75%{transform:translateX(3px)}}
.feedback{ min-height:22px; color:var(--muted) }
.feedback.good{ color:var(--ok); font-weight:700 }
.feedback.bad{ color:var(--bad); font-weight:700 }
.nav{ display:flex; justify-content:flex-end }
.legend{ display:flex; gap:10px; align-items:center; color:var(--muted); padding:0 2px }
.chip.info{ background:#eef2ff; border:1px solid #c7d2fe }
.app-footer{ text-align:center; color:var(--muted); padding:20px 0 28px }
