/* =====================================================================
   Toetsen (apps/toetsen) — enkel --lk-*-tokens, prefix tt-
   Laadt na main.css (+ admin.css op de beheerpagina).
   ===================================================================== */

/* [hidden] moet winnen van componenten met een eigen display (bv. .lk-callout{display:flex}) */
[hidden]{display:none !important}

/* ===== Beheer ===== */
.tt-status--closed{background:var(--lk-surface-2);color:var(--lk-muted)}
.tt-code-chip{font-family:var(--lk-font-mono);font-size:var(--lk-t-xs);font-weight:500;letter-spacing:.12em;padding:2px 8px;border-radius:var(--lk-r-sm);background:var(--lk-accent-soft);color:var(--lk-accent-deep)}
.tt-empty{padding:var(--lk-s-6) var(--lk-s-5);text-align:center;color:var(--lk-muted)}
.tt-rowlink{cursor:pointer}
.tt-back{display:inline-flex;align-items:center;gap:6px;cursor:pointer}
.tt-back:hover{color:var(--lk-ink)}
.tt-detail__facts{display:flex;flex-wrap:wrap;gap:var(--lk-s-2) var(--lk-s-5);font-size:var(--lk-t-sm);color:var(--lk-ink-2);margin-bottom:var(--lk-s-4)}
.tt-detail__facts i{color:var(--lk-accent)}
/* Openen / gesloten / concept */
.tt-open{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--lk-s-5);align-items:center;margin-bottom:var(--lk-s-4);border-color:var(--lk-ok);border-width:2px}
.tt-open__code{display:flex;flex-direction:column;gap:2px}
.tt-open__label{font-size:var(--lk-t-xs);font-weight:700;color:var(--lk-muted);text-transform:uppercase;letter-spacing:.08em}
.tt-open__big{font-family:var(--lk-font-mono);font-size:var(--lk-t-5xl);font-weight:500;letter-spacing:.14em;line-height:1.1;color:var(--lk-ink)}
.tt-open__url{font-family:var(--lk-font-mono);font-size:var(--lk-t-sm);color:var(--lk-accent-deep)}
.tt-open__side{display:flex;flex-direction:column;align-items:flex-end;gap:var(--lk-s-3)}
.tt-open__pin{display:flex;flex-direction:column;align-items:flex-end;gap:2px}
.tt-pinview{appearance:none;font:inherit;display:inline-flex;align-items:center;gap:8px;padding:4px 10px;border-radius:var(--lk-r-sm);border:1px solid var(--lk-border);background:var(--lk-surface-2);color:var(--lk-ink);cursor:pointer}
.tt-pinview span{font-family:var(--lk-font-mono);font-size:var(--lk-t-lg);letter-spacing:.2em}
.tt-open__actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:var(--lk-s-2)}
.tt-open__classes{margin-top:var(--lk-s-2);font-size:var(--lk-t-sm);font-weight:700;color:var(--lk-ok)}
.tt-classes{margin-bottom:var(--lk-s-4)}
.tt-status--makeup{background:var(--lk-warn-soft);color:var(--lk-warn)}
.tt-missing{padding:0 var(--lk-s-4) var(--lk-s-3);border-bottom:1px solid var(--lk-border)}
.tt-missing > summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;gap:6px;font-size:var(--lk-t-sm);font-weight:600;color:var(--lk-warn);user-select:none}
.tt-missing > summary::-webkit-details-marker{display:none}
.tt-missing > summary .bi-chevron-right{transition:transform var(--lk-t-fast)}
.tt-missing[open] > summary .bi-chevron-right{transform:rotate(90deg)}
.tt-missing ul{margin:var(--lk-s-2) 0 0;padding:0;list-style:none;display:flex;flex-wrap:wrap;gap:var(--lk-s-1) var(--lk-s-2)}
.tt-missing li{font-size:var(--lk-t-sm);background:var(--lk-surface-2);border:1px solid var(--lk-border);border-radius:var(--lk-r-full);padding:2px 10px}
.tt-inline-tag{display:inline-block;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:1px 6px;border-radius:var(--lk-r-sm);background:var(--lk-accent-soft);color:var(--lk-accent-deep)}
#openClasses label.is-disabled{opacity:.6;cursor:default}
.tt-open__note{margin:0;font-size:var(--lk-t-sm);color:var(--lk-warn)}
.tt-closed{display:flex;justify-content:space-between;align-items:center;gap:var(--lk-s-5);margin-bottom:var(--lk-s-4)}
.tt-closed p{margin:var(--lk-s-1) 0 0;font-size:var(--lk-t-sm);color:var(--lk-ink-2)}
.tt-closed strong i{color:var(--lk-accent)}

.tt-openbox{max-width:520px;width:100%}
.tt-openbox__lead{margin:calc(-1 * var(--lk-s-3)) 0 var(--lk-s-4);color:var(--lk-ink-2)}
.tt-openbox__info:not(:empty){margin-top:var(--lk-s-4)}
.tt-openbox__actions{display:flex;justify-content:flex-end;gap:var(--lk-s-2);margin-top:var(--lk-s-5)}

/* Code groot tonen (projectie) — bewust zonder pincode */
.tt-codescreen{position:fixed;inset:0;z-index:1100;display:none;flex-direction:column;align-items:center;justify-content:center;gap:var(--lk-s-4);background:var(--lk-bg);text-align:center;padding:var(--lk-s-6)}
.tt-codescreen.is-open{display:flex}
.tt-codescreen__close{position:absolute;top:var(--lk-s-5);right:var(--lk-s-5)}
.tt-codescreen__counts{display:flex;gap:var(--lk-s-3);flex-wrap:wrap;justify-content:center;margin-bottom:var(--lk-s-4)}
.tt-codescreen__counts:empty{display:none}
.tt-codescreen__counts > div{display:flex;flex-direction:column;align-items:center;min-width:140px;padding:var(--lk-s-3) var(--lk-s-4);border-radius:var(--lk-r-lg);background:var(--lk-surface-2)}
.tt-codescreen__counts b{font-size:clamp(2rem,5vw,3.5rem);font-weight:800;line-height:1.05;color:var(--lk-ink)}
.tt-codescreen__counts span{font-size:var(--lk-t-md);color:var(--lk-muted)}
.tt-codescreen__counts .is-busy b{color:var(--lk-info)}
.tt-codescreen__counts .is-ok{background:var(--lk-ok-soft)}
.tt-codescreen__counts .is-ok b{color:var(--lk-ok)}
.tt-codescreen__counts .is-warn{background:var(--lk-warn-soft)}
.tt-codescreen__counts .is-warn b{color:var(--lk-warn)}
.tt-codescreen__counts .is-error{background:var(--lk-error-soft)}
.tt-codescreen__counts .is-error b{color:var(--lk-error)}
.tt-codescreen__url{margin:0;font-family:var(--lk-font-mono);font-size:clamp(1.5rem,4vw,3rem);color:var(--lk-accent-deep)}
.tt-codescreen__code{margin:0;font-family:var(--lk-font-mono);font-weight:500;font-size:clamp(4rem,16vw,14rem);letter-spacing:.12em;line-height:1;color:var(--lk-ink)}
.tt-codescreen__title{margin:0;font-size:var(--lk-t-xl);color:var(--lk-ink-2)}

.tt-prev__actions{display:flex;gap:var(--lk-s-2);flex:none}
.tt-panel{background:var(--lk-surface);border:1px solid var(--lk-border);border-radius:var(--lk-r-lg);padding:var(--lk-s-5);box-shadow:var(--lk-sh-1)}

/* Importeren */
.tt-filepick{display:flex;align-items:center;gap:var(--lk-s-3);flex-wrap:wrap}
.tt-import__text{font-family:var(--lk-font-mono);font-size:var(--lk-t-xs);line-height:1.5;resize:vertical}
.tt-import__actions{display:flex;justify-content:flex-end;gap:var(--lk-s-2);margin-top:var(--lk-s-4)}
.tt-import__msg:not(:empty){display:flex;flex-direction:column;gap:var(--lk-s-3);margin:var(--lk-s-4) 0}
.tt-msglist{margin:var(--lk-s-2) 0 0;padding-left:1.2em}
.tt-msglist li + li{margin-top:2px}
#importPreview:not(:empty){margin-top:var(--lk-s-4)}

/* Voorbeeld van een geïmporteerde toets (met juiste antwoorden) */
.tt-prev__top{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--lk-s-4);padding-bottom:var(--lk-s-4);border-bottom:1px solid var(--lk-border)}
.tt-prev__title{font-size:var(--lk-t-xl);margin:var(--lk-s-1) 0 var(--lk-s-2)}
.tt-prev__facts{display:flex;flex-wrap:wrap;gap:var(--lk-s-2) var(--lk-s-4);font-size:var(--lk-t-sm);color:var(--lk-ink-2)}
.tt-prev__facts i{color:var(--lk-accent)}
.tt-prev__list{display:grid;gap:var(--lk-s-3);margin-top:var(--lk-s-4)}
.tt-prev__q{border:1px solid var(--lk-border);border-radius:var(--lk-r-md);padding:var(--lk-s-4);background:var(--lk-surface-2)}
.tt-prev__head{display:flex;justify-content:space-between;align-items:center;gap:var(--lk-s-3);margin-bottom:var(--lk-s-2)}
.tt-prev__nr{font-family:var(--lk-font-mono);font-size:var(--lk-t-xs);color:var(--lk-muted);text-transform:uppercase;letter-spacing:.08em}
.tt-prev__pts{font-size:var(--lk-t-xs);font-weight:700;color:var(--lk-ink-2);background:var(--lk-surface);border-radius:var(--lk-r-full);padding:2px 10px}
.tt-prev__prompt{font-weight:700;margin:0 0 var(--lk-s-2)}
.tt-prev__hint{font-size:var(--lk-t-sm);color:var(--lk-muted);margin:0 0 var(--lk-s-3)}
.tt-prev__img{max-height:120px;width:auto;background:#fff;border:1px solid var(--lk-border);border-radius:var(--lk-r-sm);padding:var(--lk-s-2)}
.tt-prev__imgcap{font-size:var(--lk-t-xs);color:var(--lk-muted);margin:var(--lk-s-1) 0 var(--lk-s-3)}
.tt-prev__opts,.tt-prev__pairs{list-style:none;margin:0;padding:0;display:grid;gap:var(--lk-s-1)}
.tt-prev__opts li{display:flex;align-items:center;gap:var(--lk-s-2);padding:6px 10px;border-radius:var(--lk-r-sm);color:var(--lk-ink-2)}
.tt-prev__opts li i{color:var(--lk-muted)}
.tt-prev__opts li.is-correct{background:var(--lk-ok-soft);color:var(--lk-ok);font-weight:700}
.tt-prev__opts li.is-correct i{color:var(--lk-ok)}
.tt-prev__pairs li{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:var(--lk-s-3);padding:6px 10px;border-radius:var(--lk-r-sm);background:var(--lk-surface)}
.tt-prev__pairs li i{color:var(--lk-accent)}
.tt-prev__sort{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--lk-s-2)}
.tt-prev__sortcol{padding:6px 10px;border-radius:var(--lk-r-sm);background:var(--lk-ok-soft)}
.tt-prev__sorttitle{display:block;font-size:var(--lk-t-xs);font-weight:700;color:var(--lk-ok);margin-bottom:4px}
.tt-prev__card{display:inline-block;margin:2px 4px 2px 0;padding:2px 8px;border-radius:var(--lk-r-full);background:var(--lk-surface);border:1px solid var(--lk-border);font-size:var(--lk-t-sm)}
.tt-prev__sortrest{margin-top:var(--lk-s-2);font-size:var(--lk-t-sm);color:var(--lk-muted)}
.tt-prev__sortrest > span{font-size:var(--lk-t-xs);font-weight:700;text-transform:uppercase;letter-spacing:.06em;margin-right:var(--lk-s-2)}
.tt-edit__place{flex:none;width:96px;font-size:var(--lk-t-xs);color:var(--lk-muted)}
.tt-prev__model{font-size:var(--lk-t-sm);padding:var(--lk-s-2) var(--lk-s-3);border-left:3px solid var(--lk-ok);background:var(--lk-ok-soft);border-radius:var(--lk-r-sm)}
.tt-prev__model span{display:block;font-size:var(--lk-t-xs);font-weight:700;color:var(--lk-ok);text-transform:uppercase;letter-spacing:.06em}
.tt-prev__model.is-empty{border-left-color:var(--lk-warn);background:var(--lk-warn-soft);color:var(--lk-warn)}

/* Live overzicht */
.tt-sidetitle{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tt-live__actions{display:flex;gap:var(--lk-s-2)}
.tt-live__head{display:flex;justify-content:space-between;align-items:center;gap:var(--lk-s-5);flex-wrap:wrap;background:var(--lk-surface);border:1px solid var(--lk-border);border-radius:var(--lk-r-lg);padding:var(--lk-s-4) var(--lk-s-5);box-shadow:var(--lk-sh-1)}
.tt-live__code{display:flex;flex-direction:column;gap:2px}
.tt-live__big{font-family:var(--lk-font-mono);font-size:var(--lk-t-3xl);font-weight:500;letter-spacing:.14em;line-height:1.1}
.tt-live__counts{display:flex;gap:var(--lk-s-2);flex-wrap:wrap}
.tt-live__counts > div{display:flex;flex-direction:column;align-items:center;min-width:92px;padding:var(--lk-s-2) var(--lk-s-3);border-radius:var(--lk-r-md);background:var(--lk-surface-2)}
.tt-live__counts b{font-size:var(--lk-t-2xl);font-weight:800;line-height:1.1}
.tt-live__counts span{font-size:var(--lk-t-xs);color:var(--lk-muted)}
.tt-live__counts .is-ok{background:var(--lk-ok-soft)}
.tt-live__counts .is-ok b{color:var(--lk-ok)}
.tt-live__counts .is-warn{background:var(--lk-warn-soft)}
.tt-live__counts .is-warn b{color:var(--lk-warn)}
.tt-live__counts .is-error{background:var(--lk-error-soft)}
.tt-live__counts .is-error b{color:var(--lk-error)}
.tt-live__privacy{margin:var(--lk-s-2) 0 var(--lk-s-4);font-size:var(--lk-t-xs);color:var(--lk-muted)}
.tt-live__stamp{margin:var(--lk-s-3) 0 0;font-size:var(--lk-t-xs);color:var(--lk-muted);font-family:var(--lk-font-mono)}
.tt-status--busy{background:var(--lk-info-soft);color:var(--lk-info)}
.tt-status--blocked{background:var(--lk-error-soft);color:var(--lk-error)}
.tt-row--locked{box-shadow:inset 3px 0 0 var(--lk-warn)}
.tt-row--blocked{box-shadow:inset 3px 0 0 var(--lk-error)}
.tt-live__rowactions{width:220px;display:flex;justify-content:flex-end;gap:var(--lk-s-1)}
.tt-reset{color:var(--lk-muted)}
.tt-reset:hover{color:var(--lk-error)}
.tt-warn-text{color:var(--lk-warn);font-weight:600}
.tt-progress-mini{display:inline-block;vertical-align:middle;width:54px;height:6px;border-radius:var(--lk-r-full);background:var(--lk-surface-2);overflow:hidden;margin-right:4px}
.tt-progress-mini span{display:block;height:100%;background:var(--lk-accent)}

/* Detail: actierij + dichtgeklapte vragen */
.tt-detail__bar{display:flex;justify-content:space-between;align-items:center;gap:var(--lk-s-4);flex-wrap:wrap;margin-bottom:var(--lk-s-4)}
.tt-detail__bar .tt-detail__facts{margin-bottom:0}
.tt-detail__actions{display:flex;gap:var(--lk-s-2);flex-wrap:wrap}
.tt-collapse{margin-top:var(--lk-s-2)}
.tt-collapse > summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:var(--lk-s-2);flex-wrap:wrap;padding:var(--lk-s-3) var(--lk-s-4);border:1px dashed var(--lk-border);border-radius:var(--lk-r-md);font-weight:700;color:var(--lk-ink-2);user-select:none}
.tt-collapse > summary::-webkit-details-marker{display:none}
.tt-collapse > summary:hover{background:var(--lk-surface-2)}
.tt-collapse > summary .bi-chevron-right{transition:transform var(--lk-t-fast)}
.tt-collapse[open] > summary{margin-bottom:var(--lk-s-3)}
.tt-collapse[open] > summary .bi-chevron-right{transform:rotate(90deg)}
.tt-collapse__warn{margin-left:auto;font-size:var(--lk-t-xs);font-weight:600;color:var(--lk-warn)}
.tt-live__pin{align-items:flex-start}

/* Vraag bewerken (enkel tekst) */
.tt-prev__headright{display:flex;align-items:center;gap:var(--lk-s-2)}
.tt-prev__q{transition:box-shadow var(--lk-t)}
.tt-prev__q.is-saved{box-shadow:0 0 0 2px var(--lk-ok)}
.tt-edit{background:var(--lk-surface);border-color:var(--lk-accent);border-width:2px}
.tt-edit .lk-field{margin-bottom:var(--lk-s-3)}
.tt-edit__warn{margin-bottom:var(--lk-s-3)}
.tt-edit__opts,.tt-edit__pairs{display:grid;gap:var(--lk-s-2)}
.tt-edit__opt{display:flex;align-items:center;gap:var(--lk-s-2)}
.tt-edit__opt i{color:var(--lk-muted)}
.tt-edit__opt.is-correct i{color:var(--lk-ok)}
.tt-edit__opt.is-correct .lk-input{border-color:var(--lk-ok)}
.tt-edit__pair{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:var(--lk-s-2)}
.tt-edit__pair i{color:var(--lk-accent)}
.tt-edit__msg:not(:empty){margin-bottom:var(--lk-s-3)}
.tt-edit__actions{display:flex;justify-content:flex-end;gap:var(--lk-s-2)}

/* Nakijken */
.tt-grade__q + .tt-grade__q{margin-top:var(--lk-s-4)}
.tt-grade__head{display:flex;justify-content:space-between;align-items:center;gap:var(--lk-s-3);margin-bottom:var(--lk-s-2)}
.tt-grade__empty{margin:var(--lk-s-3) 0 0;font-size:var(--lk-t-sm);color:var(--lk-muted)}
.tt-grade__list{margin-top:var(--lk-s-4);border:1px solid var(--lk-border);border-radius:var(--lk-r-md);overflow:hidden}
.tt-grade__row{display:grid;grid-template-columns:170px minmax(0,1fr) auto;gap:var(--lk-s-4);align-items:center;padding:var(--lk-s-3) var(--lk-s-4);border-bottom:1px solid var(--lk-border);background:var(--lk-surface)}
.tt-grade__row:last-child{border-bottom:0}
.tt-grade__row.is-done{background:var(--lk-surface-2)}
.tt-grade__who{display:flex;flex-direction:column;min-width:0}
.tt-grade__who b{font-size:var(--lk-t-sm)}
.tt-grade__who span{font-size:var(--lk-t-xs);color:var(--lk-muted)}
.tt-grade__main{min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:var(--lk-s-2)}
.tt-grade__comment{width:100%}
.tt-grade__comment .lk-textarea{width:100%;font-size:var(--lk-t-sm);min-height:56px;resize:vertical}
.tt-grade__commenthelp{font-size:var(--lk-t-xs);color:var(--lk-muted);margin-top:2px}
.tt-grade__note{appearance:none;font:inherit;text-align:left;display:flex;gap:var(--lk-s-2);align-items:flex-start;max-width:100%;padding:6px 10px;border:0;border-left:3px solid var(--lk-info);border-radius:var(--lk-r-sm);background:var(--lk-info-soft);color:var(--lk-ink);font-size:var(--lk-t-sm);white-space:pre-wrap;overflow-wrap:anywhere;cursor:pointer}
.tt-grade__note i{color:var(--lk-info);margin-top:2px}
.tt-grade__addnote{padding:2px 8px;color:var(--lk-muted)}
.tt-res__note{font-size:.8em;color:var(--lk-info);margin-left:2px}
.tt-grade__answer{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.45}
.tt-grade__pts{display:flex;gap:4px}
.tt-ptbtn{appearance:none;font:inherit;min-width:38px;height:34px;padding:0 8px;border-radius:var(--lk-r-sm);border:1px solid var(--lk-border);background:var(--lk-surface);color:var(--lk-ink-2);font-weight:700;font-size:var(--lk-t-sm);cursor:pointer}
.tt-ptbtn:hover{border-color:var(--lk-accent)}
.tt-ptbtn.is-on{background:var(--lk-accent);border-color:var(--lk-accent);color:#fff}

/* Resultaten */
.tt-res__wrap{overflow-x:auto;background:var(--lk-surface);border:1px solid var(--lk-border);border-radius:var(--lk-r-lg);box-shadow:var(--lk-sh-1)}
.tt-res{width:100%;border-collapse:collapse;font-size:var(--lk-t-sm)}
.tt-res th,.tt-res td{padding:8px 10px;border-bottom:1px solid var(--lk-border);text-align:center;white-space:nowrap}
.tt-res thead th{position:sticky;top:0;background:var(--lk-surface-2);font-size:var(--lk-t-xs);color:var(--lk-ink-2)}
.tt-res th small{color:var(--lk-muted);font-weight:500}
.tt-res .tt-res__name{text-align:left}
.tt-res td.tt-res__name{font-weight:600}
.tt-res__tot{border-left:1px solid var(--lk-border)}
.tt-res__cell.is-full{color:var(--lk-ok);font-weight:700}
.tt-res__cell.is-part{color:var(--lk-warn);font-weight:700}
.tt-res__cell.is-zero{color:var(--lk-error)}
.tt-res__cell.is-pending{color:var(--lk-warn);font-weight:800;background:var(--lk-warn-soft)}
.tt-res tr.is-missing td{color:var(--lk-muted)}
.tt-res tfoot td{font-weight:700;background:var(--lk-surface-2);border-bottom:0}
.tt-res tfoot .is-low{background:var(--lk-error-soft);color:var(--lk-error)}
.tt-res__sort{appearance:none;font:inherit;font-weight:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer;display:inline-flex;align-items:center;gap:4px}
.tt-res__sort:hover,.tt-res__sort.is-active{color:var(--lk-accent-deep)}
.tt-res tbody tr.is-low td{background:var(--lk-error-soft)}
.tt-res tbody tr.is-top td{background:var(--lk-ok-soft)}
.tt-res__legend{display:flex;flex-wrap:wrap;gap:var(--lk-s-2) var(--lk-s-5);margin:var(--lk-s-3) 0 0;font-size:var(--lk-t-xs);color:var(--lk-muted)}
.tt-res__legend > span{display:inline-flex;align-items:center;gap:6px}
.tt-res__swatch{display:inline-block;width:14px;height:14px;border-radius:3px;border:1px solid var(--lk-border)}
.tt-res__swatch.is-low{background:var(--lk-error-soft)}
.tt-res__swatch.is-top{background:var(--lk-ok-soft)}
.tt-res__pct{font-size:var(--lk-t-xs)}

/* =====================================================================
   Leerlingpagina (index.html) — overgenomen uit design-toets.html
   (zonder mockup-bediening en zonder gsm-media-queries)
   ===================================================================== */
.tt-page{min-height:calc(100vh - 73px);padding:var(--lk-s-4) 0 var(--lk-s-6)}
.tt-wrap{max-width:860px;margin:0 auto;padding:0 var(--lk-s-5)}
.tt-screen{display:none}
.tt-screen.is-active{display:block}

/* --- Aanmelden --- */
.tt-join{max-width:560px;margin:0 auto}
.tt-join__kicker{font-family:var(--lk-font-mono);font-size:var(--lk-t-xs);color:var(--lk-muted);text-transform:uppercase;letter-spacing:.1em;margin:0 0 var(--lk-s-2)}
.tt-join__title{font-size:var(--lk-t-2xl);font-weight:800;letter-spacing:-.02em;margin:0 0 var(--lk-s-2)}
.tt-join__lead{color:var(--lk-ink-2);margin:0 0 var(--lk-s-6)}
.tt-card{background:var(--lk-surface);border:1px solid var(--lk-border);border-radius:var(--lk-r-lg);padding:var(--lk-s-5);box-shadow:var(--lk-sh-1)}
.tt-card + .tt-card{margin-top:var(--lk-s-4)}
.tt-step{display:flex;align-items:center;gap:var(--lk-s-3);margin:0 0 var(--lk-s-4);font-weight:700}
.tt-step__nr{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:var(--lk-r-full);background:var(--lk-accent-soft);color:var(--lk-accent-deep);font-size:var(--lk-t-sm);font-weight:800}
.tt-step.is-done .tt-step__nr{background:var(--lk-ok-soft);color:var(--lk-ok)}
.tt-code{display:flex;gap:var(--lk-s-3)}
.tt-code .lk-input{font-family:var(--lk-font-mono);font-size:var(--lk-t-xl);letter-spacing:.3em;text-transform:uppercase;text-align:center;padding:12px}
.tt-picks{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:var(--lk-s-2)}
.tt-pick{appearance:none;font:inherit;text-align:left;padding:12px 14px;min-height:48px;border-radius:var(--lk-r-md);border:1px solid var(--lk-border);background:var(--lk-surface-2);color:var(--lk-ink);cursor:pointer;font-weight:600;transition:background var(--lk-t-fast),border-color var(--lk-t-fast)}
.tt-pick:hover{background:var(--lk-hover)}
.tt-pick:focus-visible{outline:none;box-shadow:var(--lk-sh-ring)}
.tt-pick.is-selected{border-color:var(--lk-accent);background:var(--lk-accent-soft);color:var(--lk-accent-deep)}
.tt-pick[disabled]{opacity:.5;cursor:not-allowed}
.tt-pick small{display:block;font-weight:500;color:var(--lk-muted);font-size:var(--lk-t-xs)}
.tt-ready{text-align:center}
.tt-ready__hi{font-size:var(--lk-t-xl);font-weight:800;margin:0 0 var(--lk-s-2)}
.tt-ready__facts{display:flex;justify-content:center;gap:var(--lk-s-5);flex-wrap:wrap;color:var(--lk-ink-2);font-size:var(--lk-t-sm);margin:var(--lk-s-4) 0}
.tt-ready__facts i{color:var(--lk-accent)}
.tt-msg{margin-top:var(--lk-s-3)}

/* --- Toetsbalk --- */
.tt-bar{position:sticky;top:73px;z-index:20;background:var(--lk-surface);border:1px solid var(--lk-border);border-radius:var(--lk-r-lg);padding:var(--lk-s-4) var(--lk-s-5);box-shadow:var(--lk-sh-2);margin-bottom:var(--lk-s-5)}
.tt-bar__top{display:flex;align-items:center;justify-content:space-between;gap:var(--lk-s-4);flex-wrap:wrap}
.tt-bar__title{font-weight:800;font-size:var(--lk-t-md);margin:0;line-height:1.25}
.tt-bar__who{font-size:var(--lk-t-sm);color:var(--lk-ink-2)}
.tt-bar__meta{display:flex;align-items:center;gap:var(--lk-s-4)}
.tt-saved{display:inline-flex;align-items:center;gap:6px;font-size:var(--lk-t-xs);font-family:var(--lk-font-mono);color:var(--lk-ok)}
.tt-saved.is-saving{color:var(--lk-muted)}
.tt-saved.is-error{color:var(--lk-error)}
.tt-dots{display:flex;flex-wrap:wrap;gap:var(--lk-s-2);margin-top:var(--lk-s-4)}
.tt-dot{appearance:none;font:inherit;width:40px;height:40px;border-radius:var(--lk-r-full);border:1.5px solid var(--lk-border);background:var(--lk-surface);color:var(--lk-ink-2);font-weight:700;font-size:var(--lk-t-sm);cursor:pointer;transition:background var(--lk-t-fast),border-color var(--lk-t-fast)}
.tt-dot:hover{border-color:var(--lk-accent)}
.tt-dot:focus-visible{outline:none;box-shadow:var(--lk-sh-ring)}
.tt-dot.is-answered{background:var(--lk-accent-soft);border-color:transparent;color:var(--lk-accent-deep)}
.tt-dot.is-current{border-color:var(--lk-accent);border-width:2.5px;color:var(--lk-ink)}
.tt-progress{font-size:var(--lk-t-xs);color:var(--lk-muted);margin-top:var(--lk-s-2)}

/* --- Vraag --- */
.tt-q{background:var(--lk-surface);border:1px solid var(--lk-border);border-radius:var(--lk-r-lg);padding:var(--lk-s-5) var(--lk-s-6);box-shadow:var(--lk-sh-1)}
.tt-q__head{display:flex;justify-content:space-between;align-items:center;gap:var(--lk-s-3);margin-bottom:var(--lk-s-3)}
.tt-q__nr{font-family:var(--lk-font-mono);font-size:var(--lk-t-xs);color:var(--lk-muted);text-transform:uppercase;letter-spacing:.1em}
.tt-q__headright{display:flex;align-items:center;gap:var(--lk-s-2);flex-wrap:wrap;justify-content:flex-end}
.tt-nl{display:inline-flex;align-items:center;gap:6px;font:inherit;font-size:var(--lk-t-xs);font-weight:700;color:var(--lk-info);background:var(--lk-info-soft);border:1px solid var(--lk-info);border-radius:var(--lk-r-full);padding:3px 10px;cursor:pointer}
button.tt-nl:hover{filter:brightness(.95)}
.tt-nl--static{cursor:default;margin:0 0 var(--lk-s-2)}
.tt-nl__list{margin:0 0 var(--lk-s-4);padding-left:1.2em}
.tt-nl__label{font-family:var(--lk-font-mono);font-size:var(--lk-t-xs);color:var(--lk-muted);text-transform:uppercase;letter-spacing:.1em;margin:0 0 var(--lk-s-1)}
.tt-nl__example{margin:0;padding:var(--lk-s-3) var(--lk-s-4);background:var(--lk-surface-2);border-left:3px solid var(--lk-ok);border-radius:var(--lk-r-sm);font-size:var(--lk-t-md)}
.tt-nl__example mark{background:var(--lk-ok-soft);color:var(--lk-ok);font-weight:800;padding:0 2px;border-radius:3px}
.tt-edit__nl{display:flex;align-items:flex-start;gap:var(--lk-s-2);margin:0 0 var(--lk-s-3);cursor:pointer}
.tt-edit__nl input{margin-top:4px}
.tt-q__pts{font-size:var(--lk-t-xs);font-weight:700;color:var(--lk-ink-2);background:var(--lk-surface-2);border-radius:var(--lk-r-full);padding:3px 10px}
.tt-q__prompt{font-size:var(--lk-t-xl);font-weight:700;line-height:1.35;margin:0 0 var(--lk-s-2)}
.tt-q__hint{color:var(--lk-muted);font-size:var(--lk-t-sm);margin:0 0 var(--lk-s-4)}
.tt-q__img{display:flex;justify-content:center;background:#fff;border:1px solid var(--lk-border);border-radius:var(--lk-r-md);padding:var(--lk-s-4);margin-bottom:var(--lk-s-5)}
.tt-q__img img{max-height:180px;max-width:100%;object-fit:contain}
.tt-opts{display:grid;grid-template-columns:1fr 1fr;gap:var(--lk-s-3)}
.tt-opt{appearance:none;font:inherit;display:flex;align-items:center;gap:var(--lk-s-3);text-align:left;padding:14px 16px;min-height:56px;border-radius:var(--lk-r-md);border:1.5px solid var(--lk-border);background:var(--lk-surface);color:var(--lk-ink);cursor:pointer;font-size:var(--lk-t-base);font-weight:600;transition:background var(--lk-t-fast),border-color var(--lk-t-fast)}
.tt-opt:hover{background:var(--lk-surface-2)}
.tt-opt:focus-visible{outline:none;box-shadow:var(--lk-sh-ring)}
.tt-opt__key{flex:none;display:inline-grid;place-items:center;width:28px;height:28px;border-radius:var(--lk-r-sm);background:var(--lk-surface-2);color:var(--lk-ink-2);font-family:var(--lk-font-mono);font-size:var(--lk-t-xs);font-weight:500}
.tt-opt.is-chosen{border-color:var(--lk-accent);background:var(--lk-accent-soft)}
.tt-opt.is-chosen .tt-opt__key{background:var(--lk-accent);color:#fff}

/* Koppelen */
.tt-match{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--lk-s-4)}
.tt-match__col,.tt-mi{min-width:0}
.tt-mi{overflow-wrap:break-word}
.tt-match__col{display:flex;flex-direction:column;gap:var(--lk-s-2)}
.tt-match__label{font-size:var(--lk-t-xs);font-weight:700;color:var(--lk-muted);text-transform:uppercase;letter-spacing:.08em;margin-bottom:2px}
.tt-mi{appearance:none;font:inherit;display:flex;align-items:center;justify-content:space-between;gap:var(--lk-s-2);padding:12px 14px;min-height:52px;border-radius:var(--lk-r-md);border:1.5px solid var(--lk-border);background:var(--lk-surface);color:var(--lk-ink);font-weight:600;cursor:pointer;text-align:left}
.tt-mi:hover{background:var(--lk-surface-2)}
.tt-mi:focus-visible{outline:none;box-shadow:var(--lk-sh-ring)}
.tt-mi.is-selected{border-color:var(--lk-accent);box-shadow:var(--lk-sh-ring)}
.tt-mi__badge{flex:none;display:inline-grid;place-items:center;width:26px;height:26px;border-radius:var(--lk-r-full);font-size:var(--lk-t-xs);font-weight:800;color:#fff;visibility:hidden}
.tt-mi.is-paired{border-color:var(--pc)}
.tt-mi.is-paired .tt-mi__badge{visibility:visible;background:var(--pc)}
.tt-match__help{grid-column:1/-1;font-size:var(--lk-t-sm);color:var(--lk-muted);margin:0}
/* Sorteren (plaats in de juiste kolom) */
.tt-sort{display:flex;flex-direction:column;gap:var(--lk-s-3)}
.tt-sort__stack,.tt-sort__col{border:1.5px dashed var(--lk-border);border-radius:var(--lk-r-md);padding:var(--lk-s-3);background:var(--lk-surface-2);transition:border-color var(--lk-t-fast),background var(--lk-t-fast)}
.tt-sort__cols{display:grid;grid-template-columns:repeat(var(--cols,2),minmax(0,1fr));gap:var(--lk-s-3)}
.tt-sort__col{border-style:solid;background:var(--lk-surface);min-height:110px;cursor:default}
.tt-sort.has-sel .tt-sort__stack,.tt-sort.has-sel .tt-sort__col{cursor:pointer}
.tt-sort__col.is-target,.tt-sort__stack.is-target{border-color:var(--lk-accent)}
.tt-sort__col.is-target:hover,.tt-sort__stack.is-target:hover{background:var(--lk-accent-soft)}
.tt-sort__label,.tt-sort__title{display:block;font-size:var(--lk-t-sm);font-weight:700;color:var(--lk-ink-2);margin-bottom:var(--lk-s-2)}
.tt-sort__label{font-size:var(--lk-t-xs);color:var(--lk-muted);text-transform:uppercase;letter-spacing:.08em}
.tt-sort__cards{display:flex;flex-wrap:wrap;gap:var(--lk-s-2)}
.tt-sort__empty{font-size:var(--lk-t-sm);color:var(--lk-muted);font-style:italic;padding:6px 0}
/* tt-sortcard, niet tt-card: die klasse is al van de kaarten op het aanmeldscherm */
.tt-sortcard{appearance:none;font:inherit;padding:8px 14px;min-height:44px;border-radius:var(--lk-r-md);border:1.5px solid var(--lk-border);background:var(--lk-surface);color:var(--lk-ink);font-weight:600;cursor:grab;max-width:100%;overflow-wrap:break-word;text-align:left;box-shadow:var(--lk-sh-1);touch-action:none;-webkit-user-select:none;user-select:none}
.tt-sortcard:hover{background:var(--lk-hover)}
.tt-sortcard:focus-visible{outline:none;box-shadow:var(--lk-sh-ring)}
.tt-sortcard.is-selected{border-color:var(--lk-accent);background:var(--lk-accent-soft);box-shadow:var(--lk-sh-ring)}
.tt-sortcard.is-dragging{opacity:.35}
.tt-sortcard--ghost{position:fixed;z-index:200;margin:0;pointer-events:none;cursor:grabbing;border-color:var(--lk-accent);box-shadow:var(--lk-sh-3);transform:rotate(-2deg)}
#q.is-dragging,#q.is-dragging *{cursor:grabbing}
.tt-sort__col.is-over,.tt-sort__stack.is-over{border-color:var(--lk-accent);background:var(--lk-accent-soft)}
.tt-sort .tt-match__help{margin-top:0}
@media (max-width:640px){.tt-sort__cols{grid-template-columns:1fr}}

/* Kort antwoord */
.tt-short .lk-textarea{min-height:140px;font-size:var(--lk-t-base);line-height:1.5;resize:vertical}
.tt-short__count{text-align:right;font-size:var(--lk-t-xs);color:var(--lk-muted);margin-top:4px}

/* Navigatie onderaan */
.tt-nav{display:flex;justify-content:space-between;align-items:center;gap:var(--lk-s-3);margin-top:var(--lk-s-4)}
.tt-keys{font-size:var(--lk-t-xs);color:var(--lk-muted);text-align:center;margin-top:var(--lk-s-4)}
.tt-keys kbd{font-family:var(--lk-font-mono);background:var(--lk-surface-2);border:1px solid var(--lk-border);border-radius:4px;padding:1px 6px}

/* Vergrendeld */
.tt-lock{position:fixed;inset:0;z-index:200;display:none;align-items:center;justify-content:center;padding:var(--lk-s-5);background:var(--lk-bg)}
.tt-lock.is-open{display:flex}
.tt-lock__box{max-width:440px;width:100%;text-align:center;background:var(--lk-surface);border:2px solid var(--lk-warn);border-radius:var(--lk-r-xl);padding:var(--lk-s-6);box-shadow:var(--lk-sh-4)}
.tt-lock__icon{display:inline-grid;place-items:center;width:72px;height:72px;border-radius:var(--lk-r-full);background:var(--lk-warn-soft);color:var(--lk-warn);font-size:34px;margin-bottom:var(--lk-s-4)}
.tt-lock__title{font-size:var(--lk-t-xl);font-weight:800;margin:0 0 var(--lk-s-2)}
.tt-lock__text{color:var(--lk-ink-2);margin:0 0 var(--lk-s-5)}
.tt-pin{display:flex;justify-content:center;gap:var(--lk-s-2);margin-bottom:var(--lk-s-4)}
.tt-pin input{width:56px;height:64px;text-align:center;font-family:var(--lk-font-mono);font-size:var(--lk-t-2xl);border-radius:var(--lk-r-md);border:1.5px solid var(--lk-border);background:var(--lk-surface-2);color:var(--lk-ink)}
/* pincode nooit leesbaar op het scherm (leerling kijkt mee): bolletjes i.p.v. cijfers */
.tt-pin input{-webkit-text-security:disc;text-security:disc}
.tt-pin input:focus{outline:none;border-color:var(--lk-accent);box-shadow:var(--lk-sh-ring)}
.tt-lock__meta{font-size:var(--lk-t-xs);color:var(--lk-muted);margin-top:var(--lk-s-4)}

/* Ingediend */
.tt-done{max-width:520px;margin:var(--lk-s-6) auto 0;text-align:center}
.tt-done__icon{display:inline-grid;place-items:center;width:84px;height:84px;border-radius:var(--lk-r-full);background:var(--lk-ok-soft);color:var(--lk-ok);font-size:42px;margin-bottom:var(--lk-s-4)}
.tt-done h2{font-size:var(--lk-t-2xl);font-weight:800;margin:0 0 var(--lk-s-2)}
.tt-done p{color:var(--lk-ink-2);margin:0 0 var(--lk-s-2)}

/* Bevestigen (hergebruikt .lk-modal) */
.tt-confirm__list{font-weight:700}

/* Balk: terug naar volledig scherm */
.tt-fsbar{margin-bottom:var(--lk-s-3)}
.tt-fsbar .lk-callout{align-items:center}
.tt-fsbar .lk-callout > div{flex:1}

/* Voorbeeldmodus (leerkracht) */
.tt-previewbar{display:flex;align-items:center;gap:var(--lk-s-3);margin-bottom:var(--lk-s-3);padding:var(--lk-s-2) var(--lk-s-4);border-radius:var(--lk-r-md);background:var(--lk-info-soft);color:var(--lk-info);font-size:var(--lk-t-sm)}
.tt-previewbar strong{letter-spacing:.06em}
.tt-saved:has(.bi-eye){color:var(--lk-info)}

/* Naam van de leerling groot in de header (tijdens de toets) */
.lk-nav__inner{position:relative}
.tt-navname{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:flex;align-items:baseline;gap:var(--lk-s-3);max-width:calc(100% - 520px);white-space:nowrap;pointer-events:none}
.tt-navname__label{font-size:var(--lk-t-2xl);font-weight:900;letter-spacing:-.01em;color:var(--lk-ink);overflow:hidden;text-overflow:ellipsis}
.tt-navname__class{font-family:var(--lk-font-mono);font-size:var(--lk-t-sm);color:var(--lk-muted)}
.tt-lock__name{margin:0 0 var(--lk-s-2);font-size:var(--lk-t-2xl);font-weight:900;color:var(--lk-ink)}

/* =====================================================================
   Feedback afdrukken (navy zoals de bijlagen, lettertype Atkinson Hyperlegible Next) — enkel #ttPrint wordt afgedrukt
   ===================================================================== */
.tt-fb{max-width:560px;width:100%}
.tt-fb__lead{margin:calc(-1 * var(--lk-s-3)) 0 var(--lk-s-3);color:var(--lk-ink-2);font-size:var(--lk-t-sm)}
.tt-fb__bar{display:flex;justify-content:space-between;align-items:center;font-size:var(--lk-t-sm);font-weight:700;margin-bottom:var(--lk-s-2)}
.tt-fb__list{max-height:44vh;overflow:auto;border:1px solid var(--lk-border);border-radius:var(--lk-r-md)}
.tt-fb__pick{display:flex;align-items:center;gap:var(--lk-s-2);padding:6px 12px;border-bottom:1px solid var(--lk-border);cursor:pointer;font-size:var(--lk-t-sm)}
.tt-fb__pick:last-child{border-bottom:0}
.tt-fb__pick input{accent-color:var(--lk-accent)}
.tt-fb__pick span{flex:1}
.tt-fb__pick small{color:var(--lk-muted)}
.tt-fb__pick small b{color:var(--lk-warn)}
.tt-fb__warn:not(:empty){margin-top:var(--lk-s-3)}
.tt-fb__privacy{margin:var(--lk-s-3) 0 0;font-size:var(--lk-t-xs);color:var(--lk-muted)}

#ttPrint{display:none}
#ttPrint.is-measuring{display:block;position:absolute;left:-10000px;top:0;visibility:hidden}
#ttPrint{font-family:"Atkinson Hyperlegible Next","Atkinson Hyperlegible",Verdana,sans-serif;color:#1a1a1a;font-size:10pt;line-height:1.3;background:#fff}
#ttPrint .fb-student + .fb-student,#ttPrint .fb-blank + .fb-student{break-before:page}
#ttPrint .fb-blank{break-before:page;padding-top:120mm;text-align:center;color:#999;font-size:9pt;font-style:italic}
#ttPrint .fb-head{display:flex;justify-content:space-between;align-items:flex-start;gap:6mm;padding-bottom:4mm;margin-bottom:5mm;border-bottom:2px solid #1F4E78}
#ttPrint .fb-kicker{font-size:8pt;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#1F4E78}
#ttPrint .fb-title{font-size:11pt;font-weight:600;color:#444}
#ttPrint .fb-name{font-size:18pt;font-weight:800;color:#1F4E78;line-height:1.2;margin-top:1mm}
#ttPrint .fb-meta{font-size:9pt;color:#666}
#ttPrint .fb-score{flex:none;text-align:center;border:2px solid #1F4E78;border-radius:3mm;padding:2mm 5mm;min-width:32mm}
#ttPrint .fb-score__big{font-size:20pt;font-weight:800;color:#1F4E78;line-height:1.1}
#ttPrint .fb-score__big span{font-size:11pt;font-weight:600;color:#555}
#ttPrint .fb-score__pct{font-size:8.5pt;color:#555}
#ttPrint .fb-q{break-inside:avoid;margin:0 0 2.5mm;padding:1.8mm 3mm;border:1px solid #d5dbe3;border-left:3px solid #1F4E78;border-radius:1.5mm}
#ttPrint .fb-q.is-full{border-left-color:#2E7D32}
#ttPrint .fb-qhead{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:.5mm}
#ttPrint .fb-qnr{font-size:8.5pt;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#1F4E78}
#ttPrint .fb-q.is-full .fb-qnr{color:#2E7D32}
#ttPrint .fb-pts{font-size:9pt;font-weight:700}
#ttPrint .fb-prompt{margin:0 0 1mm;font-weight:600}
#ttPrint .fb-mc{display:flex;gap:4mm;align-items:flex-start}
#ttPrint .fb-img{width:22mm;height:auto;max-height:16mm;object-fit:contain;border:1px solid #ddd;border-radius:1mm;padding:1mm;background:#fff}
#ttPrint .fb-img--block{display:block;width:auto;max-width:60mm;max-height:30mm;margin:0 0 1.5mm}
#ttPrint .fb-opts{list-style:none;margin:0;padding:0;flex:1}
#ttPrint .fb-opts li{display:flex;gap:2mm;align-items:baseline;padding:.15mm 0;color:#555}
#ttPrint .fb-opts--grid{display:grid;grid-template-columns:1fr 1fr;column-gap:4mm}
#ttPrint .fb-opts li em{font-style:normal;font-size:8pt;color:#777}
#ttPrint .fb-mark{flex:none;width:4mm;font-weight:700;text-align:center}
#ttPrint .is-correct .fb-mark{color:#2E7D32}
#ttPrint .is-wrong .fb-mark{color:#C62828}
#ttPrint .fb-opts li.is-correct{color:#1a1a1a;font-weight:700}
#ttPrint .fb-opts li.is-wrong .fb-opt{text-decoration:line-through}
#ttPrint .fb-pairs{width:100%;border-collapse:collapse;font-size:9.5pt}
#ttPrint .fb-pairs th{text-align:left;font-size:8pt;font-weight:600;color:#777;border-bottom:1px solid #ccc;padding:.6mm 1.5mm}
#ttPrint .fb-pairs td{padding:.8mm 1.5mm;border-bottom:1px solid #eee}
#ttPrint .fb-pairs tr.is-wrong td:nth-child(2){text-decoration:line-through;color:#777}
#ttPrint .fb-sortnote{margin:1mm 0 0;font-size:8.5pt;color:#555}
#ttPrint .fb-box{margin-top:1.5mm}
#ttPrint .fb-label{display:block;font-size:7.5pt;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#777}
#ttPrint .fb-text{white-space:pre-wrap;overflow-wrap:anywhere}
#ttPrint .fb-box--model{padding:1.5mm 2.5mm;border-left:2px solid #2E7D32;background:#f1f7f1}
#ttPrint .fb-box--model .fb-label{color:#2E7D32}
#ttPrint .fb-box--comment{padding:1.5mm 2.5mm;border-left:2px solid #1F4E78;background:#eef3f8}
#ttPrint .fb-box--comment .fb-label{color:#1F4E78}
#ttPrint .fb-none{color:#999;font-style:italic}
@media print{
  body > *:not(#ttPrint){display:none!important}
  html,body{background:#fff!important}
  body{padding:0!important}
  #ttPrint{display:block!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
}
