@import url('https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,300;0,9..40,400;0,9..40,500;0,9..40,600;1,9..40,300;1,9..40,400&display=swap');

*{box-sizing:border-box;margin:0;padding:0}
body{font-family:'DM Sans',sans-serif;background:#0f172a;color:#e2e8f0;min-height:100vh;display:flex;flex-direction:column;align-items:center;padding:16px}
h1{font-size:1.2rem;font-weight:600;color:#f8fafc;margin-bottom:8px;text-align:center}
h2{font-size:1rem;font-weight:500;color:#94a3b8;margin-bottom:16px;text-align:center}
.container{width:100%;max-width:960px;display:flex;flex-direction:column;gap:16px}
.stage{background:#1e293b;border-radius:12px;padding:20px;display:flex;flex-direction:column;align-items:center;gap:16px;min-height:280px}
.controls{background:#1e293b;border-radius:12px;padding:16px;display:flex;flex-wrap:wrap;gap:10px;justify-content:center;align-items:center}
.panel{background:#334155;border-radius:8px;padding:12px;width:100%;max-width:400px;display:flex;flex-direction:column;gap:8px}
.btn{background:#3b82f6;color:#fff;border:none;border-radius:8px;padding:8px 16px;font-family:inherit;font-size:.85rem;font-weight:500;cursor:pointer;transition:background .2s,transform .1s}
.btn:hover{background:#2563eb}
.btn:active{transform:scale(.97)}
.btn.secondary{background:#475569}
.btn.secondary:hover{background:#64748b}
.btn.success{background:#22c55e}
.btn.success:hover{background:#16a34a}
.btn.danger{background:#ef4444}
.btn.danger:hover{background:#dc2626}
.btn:disabled{opacity:.5;cursor:not-allowed}
.feedback{text-align:center;padding:12px 16px;border-radius:8px;font-size:.9rem;font-weight:500;min-height:44px;display:flex;align-items:center;justify-content:center}
.feedback.success{background:rgba(34,197,94,.15);color:#4ade80}
.feedback.error{background:rgba(239,68,68,.15);color:#f87171}
.feedback.info{background:rgba(59,130,246,.15);color:#60a5fa}
.grid{display:grid;gap:10px;width:100%}
.grid-2{grid-template-columns:repeat(2,1fr)}
.grid-3{grid-template-columns:repeat(3,1fr)}
.grid-4{grid-template-columns:repeat(4,1fr)}
.card{background:#334155;border-radius:8px;padding:12px;text-align:center;cursor:pointer;transition:transform .2s,border-color .2s;border:2px solid transparent;font-size:.85rem}
.card:hover{transform:translateY(-2px);border-color:#3b82f6}
.card.selected{border-color:#3b82f6;background:rgba(59,130,246,.15)}
.card.correct{border-color:#22c55e;background:rgba(34,197,94,.15)}
.card.wrong{border-color:#ef4444;background:rgba(239,68,68,.15)}
.dropzone{background:#334155;border:2px dashed #64748b;border-radius:8px;padding:16px;text-align:center;min-height:60px;transition:border-color .2s}
.dropzone.dragover{border-color:#3b82f6;background:rgba(59,130,246,.1)}
.draggable{background:#475569;border-radius:6px;padding:8px 12px;cursor:grab;font-size:.85rem;transition:transform .2s}
.draggable:hover{background:#64748b}
.draggable.dragging{opacity:.5}
.slot{background:#334155;border:2px dashed #64748b;border-radius:8px;padding:12px;min-height:48px;display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap}
.slot.filled{border-style:solid;border-color:#22c55e;background:rgba(34,197,94,.1)}
.score{font-size:.85rem;color:#94a3b8;text-align:center}
.legend{display:flex;gap:12px;flex-wrap:wrap;justify-content:center;font-size:.8rem;color:#94a3b8}
.legend span{display:flex;align-items:center;gap:4px}
.dot{width:12px;height:12px;border-radius:50%;display:inline-block}
@media(max-width:600px){.grid-4{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(2,1fr)}}
