/* Aanvullingen op stijl.css voor het nieuwe platform */
.module-kaart { display: flex; align-items: center; gap: 14px; text-decoration: none; color: inherit; margin-bottom: 10px; }
.module-kaart.dicht { opacity: .6; }
.module-kaart .slot { margin-left: auto; font-size: .85em; }
.audio-btn.klein { width: 26px; height: 26px; font-size: 11px; vertical-align: middle; }
.link-knop { background: none; border: 0; font: inherit; color: inherit; cursor: pointer; padding: 0; text-align: left; }
.module-nav { display: flex; justify-content: space-between; margin-top: 24px; }
.hero .reveal-btn { display: inline-block; margin-top: 14px; text-decoration: none; }
form p label { display: block; font-weight: 600; margin-top: 10px; }
form p input { width: 100%; padding: 10px; font: inherit; border: 1px solid #ccc; border-radius: 8px; }
.luisterlijst li { padding: 8px 0; }
.luisterlijst li.nu { font-weight: 700; }
.answer-input { width: 100%; min-height: 90px; font: inherit; padding: 10px; }
table.gram { width: 100%; border-collapse: collapse; font-size: 13.5px; margin-top: 6px; }
table.gram th, table.gram td { text-align: left; padding: 6px 8px; border-bottom: 1px solid var(--line); }
table.gram th { color: var(--ink-soft); font-weight: 600; font-size: 12px; text-transform: uppercase; letter-spacing: .03em; }
.meldingen { max-width: 760px; margin: 16px auto 0; padding: 0 16px; }
.cena { font-size: 1.4em; }
form ul { list-style: none; padding: 0; }
form ul li label { display: flex; gap: 8px; align-items: center; font-weight: 500; margin: 6px 0; }
form ul li input { width: auto; }
.voordelen { list-style: none; padding: 0; margin: 0 0 16px; line-height: 1.8; }
.akkoord { display: flex; gap: 10px; align-items: flex-start; font-weight: 400; font-size: .9em; margin: 14px 0; }
.akkoord input { width: auto; margin-top: 3px; }
.fout { color: var(--rose-dark); font-size: .9em; }
.opslag-status { font-size: .85em; color: var(--ink-soft); min-height: 1.2em; margin-top: 4px; }
.feedback { background: var(--blush); border-radius: 12px; padding: 10px 12px; margin-top: 8px; font-size: .95em; }
.afronden { text-align: center; margin: 28px 0 8px; }
.hero .progress-pill { margin-top: 14px; }
.weeknav { display: flex; justify-content: space-between; align-items: center; margin-bottom: 14px; gap: 8px; }
.dag { margin-bottom: 14px; }
.dag-naam { font-weight: 700; margin-bottom: 6px; text-transform: capitalize; }
.tijden { display: flex; flex-wrap: wrap; gap: 8px; }
.tijd { cursor: pointer; text-decoration: none; color: inherit; }
.tijd input { position: absolute; opacity: 0; pointer-events: none; }
.tijd span { display: inline-block; padding: 7px 12px; border: 1px solid var(--line); border-radius: 999px; background: #fff; font-weight: 600; }
.tijd input:checked + span, .tijd:hover span { background: var(--rose); color: #fff; border-color: var(--rose); }
.pakket-kaart, .les-kaart { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 10px; }
.prijs-knop { display: flex; align-items: center; gap: 12px; white-space: nowrap; }
.legenda { font-size: .85em; color: var(--ink-soft); margin: 0 0 8px; }
.legenda .vocab-pron { display: inline; }
.pakket-omschrijving { font-size: .9em; line-height: 1.7; margin: 8px 0 0; }
form.card textarea { width: 100%; font: inherit; padding: 10px; border: 1px solid #ccc; border-radius: 8px; }
.vraag-kaart p { margin: 6px 0; }
.telefoon-kaart { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.telefoon-kaart input { flex: 1; min-width: 160px; padding: 10px; font: inherit; border: 1px solid #ccc; border-radius: 8px; }
.dagdeel { display: grid; grid-template-columns: 110px 1fr; gap: 8px; align-items: start; margin: 4px 0 10px; }
.dagdeel-naam { font-size: .85em; color: var(--ink-soft); padding-top: 8px; }
.tijden { display: grid; grid-template-columns: repeat(auto-fill, minmax(68px, 1fr)); gap: 8px; }
.tijd span { display: block; text-align: center; }
@media (max-width: 520px) { .dagdeel { grid-template-columns: 1fr; } .dagdeel-naam { padding-top: 0; } }
.toetsvraag { margin-bottom: 22px; padding-bottom: 16px; border-bottom: 1px solid var(--line); }
.toetsvraag audio { width: 100%; margin: 8px 0; }
.leestekst { background: var(--blush); border-radius: 12px; padding: 10px 14px; margin: 8px 0; font-style: italic; }
.optie { display: block; padding: 8px 10px; margin: 6px 0; border: 1px solid var(--line); border-radius: 10px; cursor: pointer; }
.optie:has(input:checked) { border-color: var(--rose); background: var(--blush); }
.optie input { margin-right: 8px; width: auto; }
.score-regel { display: grid; grid-template-columns: 110px 1fr 44px; gap: 10px; align-items: center; margin: 8px 0; }
.advies-knoppen { display: flex; flex-wrap: wrap; gap: 10px; }
.kod-rij { display: flex; gap: 8px; align-items: center; }
.kod-rij input { flex: 1; }
.kod-rij .reveal-btn { margin-top: 0; white-space: nowrap; }
.kod-ok { display: block; color: #2E8B57; font-weight: 700; font-size: .9em; margin-top: 6px; }
/* Koppeloefening (slepen of tikken) */
.koppel-uitleg { font-size: 13px; color: var(--ink-soft); margin: 0 0 10px; }
.koppel-rijen { display: grid; gap: 8px; }
.koppel-rij { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); gap: 10px; align-items: center; padding: 6px 8px; border-radius: 12px; transition: background .25s; }
.koppel-rij.goed { background: #E4F5EA; }
.koppel-rij.fout { background: #FDE2E6; }
.koppel-nl { font-weight: 700; }
.koppel-vak { min-height: 40px; border: 2px dashed var(--line); border-radius: 12px; display: flex; align-items: center; padding: 3px; transition: border-color .2s, background .2s; }
.koppel-vak.erboven, .koppel-vak:focus { border-color: var(--rose); background: var(--blush); outline: none; }
.koppel-kaarten { display: flex; flex-wrap: wrap; gap: 8px; margin: 14px 0 6px; min-height: 44px; padding: 8px; border-radius: 12px; background: #FFF6F8; }
.koppel-kaart { font: inherit; font-size: 14px; font-weight: 600; padding: 8px 12px; border-radius: 999px; border: 1px solid var(--line); background: #fff; cursor: grab; transition: transform .15s, box-shadow .15s; touch-action: manipulation; }
.koppel-kaart:hover { transform: translateY(-1px); box-shadow: 0 4px 10px rgba(200,93,120,.15); }
.koppel-kaart.gekozen { border-color: var(--rose-dark); background: var(--blush-deep); }
.koppel-kaart.sleept { opacity: .5; }
.koppel-vak .koppel-kaart { width: 100%; text-align: left; }
.koppel-knoppen { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.koppel-knoppen .reveal-btn { margin-top: 0; }
.koppel-uitslag { font-weight: 700; color: var(--rose-dark); }
/* Invulvelden in de oefeningen (cursus/invullen.py); 16px zodat de iPhone niet inzoomt */
.exercise input.invul { font: inherit; font-size: 16px; width: 8em; max-width: 100%; padding: 2px 8px; margin: 2px 2px;
  border: 1px solid var(--line); border-bottom: 2px solid var(--rose); border-radius: 8px; background: #FFFBF9; color: var(--ink); }
.exercise input.invul:focus { outline: none; border-color: var(--rose); background: #fff; box-shadow: 0 0 0 3px var(--blush); }
.exercise input.invul-regel { display: block; width: 100%; margin: 4px 0 10px; padding: 6px 10px; }
.exercise textarea.invul { font-size: 16px; }

/* Leestekst (cursus A2) */
.leestekst-soort{font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--orange-dark,#C8692F);margin-bottom:4px}
.lees-kaart h3{margin:0 0 10px}
.leestekst-tekst{background:#FFFBF9;border:1px solid var(--line,#EFE1E4);border-radius:14px;padding:14px 16px;line-height:1.6}
.leestekst-tekst p{margin:0 0 10px}.leestekst-tekst p:last-child{margin:0}
.leestekst-vragen{margin:6px 0 10px;padding-left:22px}.leestekst-vragen li{margin:6px 0}
