.teacher-shell{--t-bg:#eef1f4;--t-surface:var(--surface);--t-border:#d7dbe2;--t-border-strong:#b7c0cc;--t-text:#263140;--t-text-muted:#667085;--t-accent:#1d4ed8;--t-accent-hover:#1741b0;--t-danger:var(--berry);--t-danger-hover:#c23f3b;--t-danger-bg:#fdecea;--t-success-bg:var(--leaf-soft);--t-success-ink:var(--leaf-deep);background:var(--t-bg);min-height:100vh;color:var(--t-text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:var(--fs-label);line-height:1.4}.teacher-shell button:focus-visible{outline:var(--focus-ring);outline-offset:var(--focus-offset)}.teacher-shell input:focus-visible{outline:var(--focus-ring);outline-offset:var(--focus-offset)}.teacher-shell [tabindex]:focus-visible{outline:var(--focus-ring);outline-offset:var(--focus-offset)}.teacher-card{background:var(--t-surface);border:1px solid var(--t-border);border-radius:var(--r-tile);box-shadow:var(--shadow-tile);padding:var(--s-5)}.teacher-section-title{margin:0 0 var(--s-4);font-size:var(--fs-body);color:var(--t-text);font-weight:600}.teacher-title{margin:0 0 var(--s-5);font-size:var(--fs-title);color:var(--t-text);font-weight:700}.teacher-form{gap:var(--s-4);flex-direction:column;align-items:flex-start;display:flex}.teacher-form-inline{flex-flow:wrap;align-items:flex-end}.teacher-field{gap:var(--s-1);flex-direction:column;width:100%;display:flex}.teacher-form-inline .teacher-field{width:auto}.teacher-field-narrow input{width:90px}.teacher-field-label{font-size:var(--fs-label);color:var(--t-text-muted);font-weight:600}.teacher-input{min-height:40px;padding:var(--s-2) var(--s-3);border:1px solid var(--t-border-strong);border-radius:var(--r-key);background:var(--t-surface);color:var(--t-text);font-size:var(--fs-label);transition:border-color var(--ease), box-shadow var(--ease)}@media (hover:hover){.teacher-input:hover{border-color:var(--t-accent)}}.teacher-input:focus-visible{border-color:var(--t-accent)}.teacher-input-compact{width:100%;min-height:34px}.teacher-btn{min-height:40px;padding:var(--s-2) var(--s-4);border-radius:var(--r-key);font-size:var(--fs-label);cursor:pointer;transition:background var(--ease), border-color var(--ease), transform 80ms ease;border:1px solid #0000;justify-content:center;align-items:center;font-weight:600;display:inline-flex}.teacher-btn:active:not(:disabled){transform:translateY(1px)}.teacher-btn:disabled{cursor:default;opacity:.5}.teacher-btn-primary{background:var(--t-accent);border-color:var(--t-accent);color:#fff}@media (hover:hover){.teacher-btn-primary:hover:not(:disabled){background:var(--t-accent-hover);border-color:var(--t-accent-hover)}}.teacher-btn-secondary{background:var(--t-surface);border-color:var(--t-border-strong);color:var(--t-text)}@media (hover:hover){.teacher-btn-secondary:hover:not(:disabled){border-color:var(--t-accent);color:var(--t-accent)}}.teacher-btn-danger{background:var(--t-danger);border-color:var(--t-danger);color:#fff}@media (hover:hover){.teacher-btn-danger:hover:not(:disabled){background:var(--t-danger-hover);border-color:var(--t-danger-hover)}}.teacher-btn-ghost{color:var(--t-text-muted);padding:var(--s-2) var(--s-3);background:0 0;border-color:#0000}@media (hover:hover){.teacher-btn-ghost:hover:not(:disabled){color:var(--t-text);text-decoration:underline}}.teacher-btn-small{min-height:32px;padding:var(--s-1) var(--s-3);font-size:13px}.teacher-link-btn{margin-top:var(--s-2);color:var(--t-accent);font-size:var(--fs-label);cursor:pointer;background:0 0;border:none;align-self:flex-start;padding:0;font-weight:600;text-decoration:underline}@media (hover:hover){.teacher-link-btn:hover{color:var(--t-accent-hover)}}.teacher-message{padding:var(--s-2) var(--s-3);border-radius:var(--r-key);font-size:var(--fs-label);margin:0}.teacher-message-error{background:var(--t-danger-bg);color:var(--t-danger)}.teacher-message-success{background:var(--t-success-bg);color:var(--t-success-ink)}.teacher-message-muted{color:var(--t-text-muted)}.teacher-login{min-height:100vh;padding:var(--s-5);justify-content:center;align-items:center;display:flex}.teacher-login-card{width:min(420px,100%);box-shadow:var(--shadow-card)}.teacher-login-card .teacher-form{margin-bottom:var(--s-4)}.teacher-login-card .teacher-btn{width:100%}.teacher-header{padding:var(--s-4) var(--s-6);background:var(--t-surface);border-bottom:1px solid var(--t-border);justify-content:space-between;align-items:center;display:flex}.teacher-header-title{font-size:var(--fs-body);color:var(--t-text);margin:0;font-weight:700}.group-overview{max-width:1040px;padding:var(--s-6);gap:var(--s-5);flex-direction:column;margin:0 auto;display:flex}.teacher-panel-row{gap:var(--s-5);flex-wrap:wrap;align-items:stretch;display:flex}.teacher-panel-row>.teacher-card{flex:320px}.teacher-actions-row{align-items:center;gap:var(--s-4);flex-wrap:wrap;display:flex}.teacher-file-field{align-items:center;gap:var(--s-2);flex-direction:row;width:auto}.teacher-group-list{gap:var(--s-4);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.teacher-group-card{border:1px solid var(--t-border);border-radius:var(--r-key);padding:var(--s-4)}.teacher-group-card-header{align-items:baseline;gap:var(--s-2);margin-bottom:var(--s-2);display:flex}.teacher-group-name{font-size:var(--fs-body);font-weight:600}.teacher-group-count{color:var(--t-text-muted);font-weight:500}.teacher-table-wrap{overflow-x:auto}.teacher-table{border-collapse:collapse;width:100%}.teacher-table th{text-align:left;font-size:var(--fs-label);color:var(--t-text-muted);padding:var(--s-2) var(--s-3);border-bottom:2px solid var(--t-border);font-weight:600}.teacher-table td{padding:var(--s-2) var(--s-3);border-bottom:1px solid var(--t-border);vertical-align:middle}@media (hover:hover){.teacher-table-row:hover{background:var(--t-bg)}}.teacher-delete-confirm{align-items:center;gap:var(--s-2);color:var(--t-danger);font-weight:600;display:inline-flex}@media (prefers-reduced-motion:reduce){.teacher-input,.teacher-btn{transition:none}}.grapheme-timeline-hint{margin:0 0 var(--s-1);color:var(--t-text-muted);font-size:13px}.grapheme-steps{margin:var(--s-2) 0 0;padding:0 0 var(--s-2);gap:6px;list-style:none;display:flex;overflow-x:auto}.grapheme-step{flex:none;position:relative}.grapheme-step-btn{min-width:40px;min-height:36px;padding:var(--s-1) var(--s-2);white-space:nowrap;border:1px solid var(--t-border-strong);border-radius:var(--r-key);background:var(--t-surface);color:var(--t-text-muted);cursor:pointer;transition:background var(--ease), border-color var(--ease), transform 80ms ease;font-size:13px}@media (hover:hover){.grapheme-step-btn:not(:disabled):hover{border-color:var(--t-accent);color:var(--t-accent)}}.grapheme-step-btn:not(:disabled):active{transform:translateY(1px)}.grapheme-step-btn:disabled{opacity:.4;cursor:not-allowed}.grapheme-step[data-active=true] .grapheme-step-btn{background:var(--t-success-bg);border-color:var(--leaf);color:var(--t-success-ink)}.grapheme-step[data-anchor=true]~.grapheme-step[data-active=true] .grapheme-step-btn{background:repeating-linear-gradient(135deg, var(--t-success-bg) 0 4px, var(--t-surface) 4px 8px);border-style:dashed}.grapheme-step[data-anchor=true] .grapheme-step-btn{border-color:var(--t-accent);border-width:2px;font-weight:700;box-shadow:0 0 0 2px #1d4ed826}.grapheme-step[data-anchor=true]:before{content:"▼";color:var(--t-accent);font-size:10px;position:absolute;top:-14px;left:50%;transform:translate(-50%)}@media (prefers-reduced-motion:reduce){.grapheme-step-btn{transition:none}}@media print{.teacher-header{display:none}}.mastery-bar{background:var(--t-border);border-radius:4px;min-width:120px;height:.9rem;display:flex;overflow:hidden}.mastery-seg.mastery-gekonnt{background:var(--leaf-deep)}.mastery-seg.mastery-geuebt{background:var(--leaf)}.mastery-seg.mastery-kennengelernt{background:var(--sand)}.mastery-seg.mastery-ungesehen{background:var(--t-border)}.learnstand-chips{gap:var(--s-1);flex-wrap:wrap;display:flex}.learnstand-chip{padding:2px var(--s-2);background:var(--t-bg);color:var(--t-text-muted);border:1px solid var(--t-border-strong);white-space:nowrap;border-radius:999px;align-items:center;font-size:12px;font-weight:600;display:inline-flex}.learnstand-chip-quartile.learnstand-chip-hinter-gruppe{background:var(--t-danger-bg);color:var(--t-danger);border-color:#0000}.learnstand-chip-quartile.learnstand-chip-vor-gruppe{background:var(--t-success-bg);color:var(--t-success-ink);border-color:#0000}.learnstand-row{cursor:pointer}.learnstand-row[data-selected=true]{background:var(--t-bg)}.learner-detail-header{margin-bottom:var(--s-4);justify-content:space-between;align-items:flex-start}.week-chart-wrap{margin-bottom:var(--s-5)}.week-chart{width:100%;max-width:600px;height:auto}.chart-line-mastered{stroke:var(--t-accent);stroke-width:2px}.chart-line-seen{stroke:var(--t-border-strong);stroke-width:2px}.chart-line-unlocked{stroke:var(--t-text-muted);stroke-width:1px}.chart-pause{fill:var(--t-text-muted)}.chart-week-label{fill:var(--t-text-muted);font-size:10px}.chart-legend{margin:var(--s-2) 0 0;font-size:12px}.hint-detail-list{margin:0 0 var(--s-4)}.hint-detail-list dt{margin-top:var(--s-3);font-weight:600}.hint-detail-list dd{margin:0 0 var(--s-1)}.error-profile-list,.word-status-list{margin:0 0 var(--s-4);gap:var(--s-1);flex-direction:column;padding:0;list-style:none;display:flex}.status-dot{width:.6rem;height:.6rem;margin-right:var(--s-2);border-radius:50%;display:inline-block}.status-dot.status-gekonnt{background:var(--leaf-deep)}.status-dot.status-geuebt{background:var(--leaf)}.status-dot.status-kennengelernt{background:var(--sand)}.status-dot.status-ungesehen{background:var(--t-border)}.regressed-badge{margin-left:var(--s-2);padding:1px var(--s-2);background:var(--t-danger-bg);color:var(--t-danger);border-radius:999px;font-size:11px;font-weight:600}.roster-avatar{object-fit:contain;vertical-align:middle;width:24px;height:24px;margin-right:6px}.learner-report{max-width:210mm;margin:0 auto;padding:16px 24px}.report-toolbar{align-items:center;gap:12px;margin-bottom:16px;display:flex}.report-header{break-inside:avoid;page-break-inside:avoid;margin-bottom:12px}.report-section{break-inside:avoid;page-break-inside:avoid;margin-bottom:20px}.report-mastery-bar-wrap{transform-origin:0;margin:12px 0 20px;transform:scale(1.6)}.report-mastery-numbers{font-weight:700}.report-footer{break-inside:avoid;page-break-inside:avoid;margin-top:24px}@media print{.learner-report{max-width:none;padding:0}.report-toolbar{display:none}.report-header,.report-section,.report-footer{break-inside:avoid;page-break-inside:avoid}}.print-sheet-toolbar{align-items:center;gap:12px;margin-bottom:16px;display:flex}.print-sheet-cards{flex-wrap:wrap;gap:10px;display:flex}.print-card{break-inside:avoid;page-break-inside:avoid;border:1px dashed #999;border-radius:6px;min-width:160px;padding:10px 14px}.print-card-name{min-height:1.2em;font-weight:700}.print-card-symbols{gap:4px;display:flex}.print-card-symbols img{object-fit:contain;width:24px;height:24px}.print-card-code{color:#666;font-size:10px}.print-sheet-footer{break-inside:avoid;page-break-inside:avoid;margin-top:20px}@media print{.print-sheet-toolbar{display:none}.print-card,.print-sheet-footer{break-inside:avoid;page-break-inside:avoid}}
