:root{
  --bg:#ffffff; --card:#ffffff; --ink:#1e293b; --muted:#64748b;
  --accent:#3b82f6; --ok:#10b981; --bad:#ef4444; --border:#e2e8f0;
}
*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0; font:16px/1.5 system-ui, Segoe UI, Roboto, Helvetica, Arial, sans-serif;
  color:var(--ink);
  background: radial-gradient(1000px 600px at 20% -10%, #f0f9ff 0%, transparent 60%),
              radial-gradient(1000px 600px at 120% 20%, #f8fafc 0%, transparent 60%),
              var(--bg);
}
.wrap{max-width:1100px;margin:24px auto;padding:16px}
.top h2{margin:0 0 6px; color:#1e40af; font-weight:700}
.fullscreen-btn{
  margin:0 0 12px; padding:8px 12px; border-radius:8px; border:1px solid #cbd5e1;
  background:#f1f5f9; color:#475569; cursor:pointer; font-size:14px;
  transition:all 0.2s ease;
}
.fullscreen-btn:hover{
  background:#e2e8f0; border-color:#94a3b8;
}
.stats{display:flex;gap:12px;align-items:center;margin:10px 0 22px}
#progressBar{flex:1;height:12px;border-radius:999px;background:#e2e8f0;overflow:hidden;border:1px solid #cbd5e1}
#progressFill{height:100%;width:0%;background:linear-gradient(90deg,#10b981,#34d399);border-radius:999px}
#score,#remaining{min-width:140px;text-align:right;color:#475569}

.card{background:var(--card);border:1px solid var(--border);border-radius:16px;padding:18px;box-shadow:0 4px 12px rgba(0,0,0,.1)}
.cols{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.tray.sentences{
  min-height:220px; padding:10px; border:1px solid var(--border); border-radius:12px; background:#f8fafc;
  display:flex; flex-direction:column; gap:10px;
}
.sentence{
  padding:10px 12px; border:1px solid var(--border); border-radius:10px; background:#f8fafc; cursor:grab;
  transition:transform .02s ease, background .15s, border-color .15s;
}
.sentence:active{cursor:grabbing; transform:scale(.98)}
.sentence.bad{
  outline:2px solid #ef4444; background:#f8fafc; border-color:#fca5a5;
}
.sentence.good{
  outline:2px solid #10b981; background:#f8fafc; border-color:#6ee7b7;
}
.bins .bin{margin-bottom:14px}
.bin-title{margin-bottom:6px; color:#334155; font-weight:600}
.drop{
  min-height:120px; padding:10px; border:1px dashed #cbd5e1; border-radius:12px; background:#f8fafc;
  display:flex; flex-direction:column; gap:8px;
}

/* Farger for kategorier */
.bin[data-cat="A"] .bin-title{color:#dc2626}
.bin[data-cat="A"] .drop{border-color:#fca5a5; background:#fef2f2}
.bin[data-cat="A"] .drop.drag-over{border-color:#dc2626; background:#fee2e2}

.bin[data-cat="B"] .bin-title{color:#059669}
.bin[data-cat="B"] .drop{border-color:#6ee7b7; background:#f0fdf4}
.bin[data-cat="B"] .drop.drag-over{border-color:#059669; background:#dcfce7}

.bin[data-cat="C"] .bin-title{color:#7c3aed}
.bin[data-cat="C"] .drop{border-color:#c4b5fd; background:#faf5ff}
.bin[data-cat="C"] .drop.drag-over{border-color:#7c3aed; background:#f3e8ff}

.feedback{margin-top:12px;padding:12px 14px;border-radius:10px;border:1px solid var(--border);background:#f8fafc}
.feedback.ok{
  border-color:#10b981; background:#f0fdf4; color:#065f46;
}
.feedback.bad{
  border-color:#ef4444; background:#fef2f2; color:#991b1b;
}
.hidden{display:none}
.actions{display:flex;gap:10px;margin-top:14px;align-items:center}
.primary,.ghost,.restart{
  padding:10px 14px;border-radius:10px;border:1px solid var(--border);background:#ffffff;color:var(--ink);cursor:pointer;
  transition:all 0.2s ease;
}

/* Farger for knapper */
.primary{
  background:#3b82f6; color:#ffffff; border-color:#3b82f6;
}
.primary:hover{
  background:#2563eb; border-color:#2563eb;
}

.ghost{
  background:#f1f5f9; color:#475569; border-color:#cbd5e1;
}
.ghost:hover{
  background:#e2e8f0; border-color:#94a3b8;
}

.restart{
  background:#f59e0b; color:#ffffff; border-color:#f59e0b;
}
.restart:hover{
  background:#d97706; border-color:#d97706;
}
.hint{margin-top:8px;color:var(--muted); background:#f1f5f9; padding:8px 12px; border-radius:8px; border-left:3px solid #3b82f6}
.micro{display:block;margin-top:6px;color:#64748b; background:#f8fafc; padding:6px 10px; border-radius:6px; border-left:2px solid #7c3aed}

/* Regelbank styling */
.rule-section{
  margin-bottom:20px; padding:16px; background:#f8fafc; border-radius:12px; border-left:4px solid #3b82f6;
}
.rule-section h3{
  margin:0 0 8px; color:#1e40af; font-size:18px; font-weight:600;
}
.rule-section p{
  margin:8px 0; line-height:1.6; color:#374151;
}
.rule-section strong{
  color:#1f2937; font-weight:600;
}
.sources{
  margin-top:24px; padding:16px; background:#f1f5f9; border-radius:8px; border:1px solid #e2e8f0;
}
.sources h4{
  margin:0 0 8px; color:#374151; font-size:16px; font-weight:600;
}
.sources ul{
  margin:0; padding-left:20px; color:#6b7280; font-size:14px; line-height:1.5;
}
.sources li{
  margin-bottom:4px;
}
.sources em{
  font-style:italic; color:#4b5563;
}

@media (max-width:900px){.cols{grid-template-columns:1fr}}
