/* TeacherWidget V582 — einheitliche Oberfläche ("Slate & Indigo").
   Reine Präsentationsschicht: keine IDs, keine Handler, keine Logik.
   Diese Datei wird als LETZTES geladen und vereinheitlicht die Farbwelt,
   Typografie, Radien, Schatten und Abstände aller älteren Schichten
   (teacherwidget-ui.css, modern-ui.css, class-manager.css, toolbox.css). */

:root{
  /* Flächen */
  --tw-x-bg:#f4f6f9;
  --tw-x-surface:#ffffff;
  --tw-x-surface-2:#f9fafc;
  --tw-x-surface-3:#eef1f6;
  /* Linien */
  --tw-x-line:#e4e8ef;
  --tw-x-line-strong:#d3dae6;
  /* Schrift */
  --tw-x-text:#16202e;
  --tw-x-muted:#64708a;
  --tw-x-faint:#94a0b5;
  /* Akzent */
  --tw-x-accent:#2d4a8a;
  --tw-x-accent-hover:#23396b;
  --tw-x-accent-soft:#ebf0fa;
  --tw-x-accent-line:#b9c8e6;
  --tw-x-accent-bright:#3a5da6;
  /* Signalfarben */
  --tw-x-danger:#c0392b;
  --tw-x-danger-soft:#fbeceb;
  --tw-x-warn:#c0791a;
  --tw-x-ok:#2f7a55;
  --tw-x-warn-soft:#fdf3e0;
  --tw-x-ok-soft:#e7f4ed;
  /* Dunkle Leisten */
  --tw-x-ink-900:#101826;
  --tw-x-ink-800:#1a2230;
  --tw-x-ink-700:#222c3c;
  --tw-x-ink-600:#2e3a4d;
  --tw-x-on-ink:#eaeef6;
  --tw-x-on-ink-muted:#a9b4c8;
  /* Form */
  --tw-x-r-sm:8px;
  --tw-x-r-md:11px;
  --tw-x-r-lg:16px;
  --tw-x-r-xl:20px;
  --tw-x-shadow-1:0 1px 2px rgba(16,24,38,.06);
  --tw-x-shadow-2:0 6px 18px rgba(16,24,38,.08);
  --tw-x-shadow-3:0 18px 44px rgba(16,24,38,.16);
  --tw-x-font:"Inter",-apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;

  /* Alte Tokens auf die neue Palette umbiegen */
  --tw-bg:var(--tw-x-bg); --tw-surface:var(--tw-x-surface); --tw-surface-2:var(--tw-x-surface-2);
  --tw-line:var(--tw-x-line); --tw-line-strong:var(--tw-x-line-strong);
  --tw-text:var(--tw-x-text); --tw-muted:var(--tw-x-muted);
  --tw-accent:var(--tw-x-accent); --tw-accent-2:var(--tw-x-accent-bright); --tw-accent-soft:var(--tw-x-accent-soft);
  --tw-danger:var(--tw-x-danger);
  --tw-950:var(--tw-x-ink-900); --tw-900:#141c29; --tw-850:var(--tw-x-ink-800); --tw-800:var(--tw-x-ink-700); --tw-700:var(--tw-x-ink-600);
  --tw-500:var(--tw-x-muted); --tw-300:#b3bccd;
  --tw-r1:var(--tw-x-r-sm); --tw-r2:var(--tw-x-r-md); --tw-r3:var(--tw-x-r-lg);
  --tw-shadow:var(--tw-x-shadow-3);

  --tw-ui-bg:var(--tw-x-bg); --tw-ui-surface:var(--tw-x-surface); --tw-ui-surface-2:var(--tw-x-surface-2);
  --tw-ui-surface-3:var(--tw-x-surface-3); --tw-ui-border:var(--tw-x-line); --tw-ui-border-strong:var(--tw-x-line-strong);
  --tw-ui-text:var(--tw-x-text); --tw-ui-muted:var(--tw-x-muted);
  --tw-ui-blue:var(--tw-x-accent); --tw-ui-blue-2:var(--tw-x-accent-hover); --tw-ui-blue-soft:var(--tw-x-accent-soft);
  --tw-ui-green:var(--tw-x-ok); --tw-ui-red:var(--tw-x-danger); --tw-ui-amber:var(--tw-x-warn);
  --tw-ui-shadow:var(--tw-x-shadow-3); --tw-ui-shadow-soft:var(--tw-x-shadow-2);
  --tw-ui-shadow-float:0 14px 38px rgba(16,24,38,.15),0 2px 6px rgba(16,24,38,.06);
  --tw-ui-font:var(--tw-x-font);
  --tw-v560-chrome-muted:var(--tw-x-on-ink-muted);
}

html,body{background:var(--tw-x-bg)}
body,button,input,select,textarea{font-family:var(--tw-x-font)}
body{-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;color:var(--tw-x-text)}

/* ---------- Typografie ---------- */
h1,h2,h3,h4{letter-spacing:-.018em;color:var(--tw-x-text)}
.tw-workspace-head h1,.tw-plan-editor-title,.tw-calendar-title,.tw-calendar-date-title{letter-spacing:-.02em;font-weight:750}
.tw-calendar-subtitle,.tw-workspace-head p{color:var(--tw-x-muted)}

/* ---------- Flächen & Karten ---------- */
.tw-workspace-host{background:var(--tw-x-bg)!important}
.tw-workspace-head{background:rgba(244,246,249,.92)!important;backdrop-filter:saturate(140%) blur(8px);border-bottom:1px solid var(--tw-x-line)!important}
.tw-plan-editor-section,.tw-calendar-card,.tw-plan-featured,.tw-plan-lesson-row,
.tw-pb-teacher-scroll-v578,.tw-empty-state{
  background:var(--tw-x-surface);
  border:1px solid var(--tw-x-line);
  border-radius:var(--tw-x-r-lg);
  box-shadow:var(--tw-x-shadow-1);
}
.tw-plan-featured{box-shadow:var(--tw-x-shadow-2)}
.tw-plan-lesson-row:hover,.tw-plan-featured:hover{border-color:var(--tw-x-accent-line)}
.tw-plan-editor-sectionhead{background:var(--tw-x-surface-2);border-bottom:1px solid var(--tw-x-line)}
.tw-plan-editor-sectionhead b{letter-spacing:-.01em}

/* ---------- Schaltflächen ---------- */
.tw-btn{
  height:40px;border-radius:var(--tw-x-r-md);font-weight:650;letter-spacing:-.012em;
  transition:background .15s ease,border-color .15s ease,box-shadow .15s ease,transform .06s ease;
}
.tw-btn:active{transform:translateY(1px)}
.tw-btn-primary{background:var(--tw-x-accent)!important;border-color:var(--tw-x-accent)!important;color:#fff!important;box-shadow:var(--tw-x-shadow-1)}
.tw-btn-primary:hover{background:var(--tw-x-accent-hover)!important;border-color:var(--tw-x-accent-hover)!important}
.tw-btn-secondary{background:var(--tw-x-surface)!important;border:1px solid var(--tw-x-line-strong)!important;color:var(--tw-x-text)!important}
.tw-btn-secondary:hover{background:var(--tw-x-surface-3)!important;border-color:var(--tw-x-accent-line)!important}
.tw-btn-quiet{background:transparent!important;border:1px solid transparent!important;color:var(--tw-x-muted)!important}
.tw-btn-quiet:hover{background:var(--tw-x-surface-3)!important;color:var(--tw-x-text)!important}
.tw-btn-danger,.tw-btn.is-danger{background:var(--tw-x-danger-soft)!important;border:1px solid #f0c8c3!important;color:var(--tw-x-danger)!important}
.tw-btn-danger:hover,.tw-btn.is-danger:hover{background:#f6ddda!important}
.tw-iconbtn{border-radius:var(--tw-x-r-md);border:1px solid var(--tw-x-line-strong);background:var(--tw-x-surface);color:var(--tw-x-text)}
.tw-iconbtn:hover{border-color:var(--tw-x-accent-line);background:var(--tw-x-surface-3)}

/* ---------- Eingabefelder ---------- */
body.tw-ui-v511 input:not([type="range"]):not([type="color"]),
body.tw-ui-v511 select,
body.tw-ui-v511 textarea:not([data-text-edit]),
.tw-plan-editor-meta input,.tw-plan-editor-notes textarea{
  border:1px solid var(--tw-x-line-strong)!important;
  border-radius:var(--tw-x-r-md)!important;
  background:var(--tw-x-surface)!important;
  color:var(--tw-x-text)!important;
  box-shadow:none!important;
}
body.tw-ui-v511 input:focus,body.tw-ui-v511 select:focus,body.tw-ui-v511 textarea:not([data-text-edit]):focus{
  border-color:var(--tw-x-accent)!important;
  box-shadow:0 0 0 3px rgba(45,74,138,.14)!important;
}
body.tw-ui-v511 button:focus-visible,body.tw-ui-v511 input:focus-visible,
body.tw-ui-v511 select:focus-visible,body.tw-ui-v511 textarea:not([data-text-edit]):focus-visible{
  outline:3px solid rgba(45,74,138,.22)!important;outline-offset:2px!important;
}
input[type="range"]{accent-color:var(--tw-x-accent-bright)}

/* ---------- Planung: Fächer, Ordner, Stundenliste ---------- */
.tw-plan-subject-row.is-active,.tw-plan-folder-row.is-active{
  background:var(--tw-x-accent-soft)!important;color:var(--tw-x-accent-hover)!important;
  box-shadow:inset 0 0 0 1px var(--tw-x-accent-line);
}
.tw-plan-subject-count,.tw-plan-folder-count{background:var(--tw-x-surface-3);color:var(--tw-x-muted);border-radius:999px}
.tw-plan-status{border-radius:999px;padding:2px 9px;font-size:11px;font-weight:700;letter-spacing:.01em}
.tw-plan-status.is-planned{background:var(--tw-x-accent-soft);color:var(--tw-x-accent-hover)}
.tw-plan-status.is-simple{background:var(--tw-x-surface-3);color:var(--tw-x-muted)}
.tw-plan-docicon{border-radius:var(--tw-x-r-md);background:var(--tw-x-accent-soft);color:var(--tw-x-accent)}
.tw-plan-timechip{background:var(--tw-x-accent-soft);color:var(--tw-x-accent-hover);border-radius:999px;font-weight:700}

/* ---------- Kalender & Lehrerplaner ---------- */
.tw-calendar-switcher{border-radius:var(--tw-x-r-md);border-color:var(--tw-x-line-strong);background:var(--tw-x-surface-2)}
.tw-calendar-switcher button{border-radius:9px;color:var(--tw-x-muted);font-weight:650}
.tw-calendar-switcher button.is-active,.tw-calendar-switcher button[aria-pressed=true]{
  background:var(--tw-x-surface)!important;color:var(--tw-x-accent-hover)!important;
  box-shadow:var(--tw-x-shadow-1),inset 0 0 0 1px var(--tw-x-accent-line)!important;
}
.tw-pb-teacher-corner-v578,.tw-pb-teacher-time-v578{background:var(--tw-x-surface-3)!important;color:var(--tw-x-text)!important;border-radius:var(--tw-x-r-md)!important}
.tw-pb-teacher-dayhead-v578{background:var(--tw-x-surface-3)!important;color:var(--tw-x-text)!important;border-radius:var(--tw-x-r-md)!important;font-weight:700}
.tw-pb-teacher-dayhead-v578.is-today{background:var(--tw-x-accent)!important;color:#fff!important}
.tw-pb-teacher-dayhead-v578.is-today small{color:#ccd8ee!important}
.tw-pb-teacher-cell-v578{border-radius:var(--tw-x-r-md)!important;border-color:var(--tw-x-line)!important;transition:border-color .15s ease,background .15s ease}
.tw-pb-teacher-cell-v578:hover{border-color:var(--tw-x-accent-line)!important;background:var(--tw-x-surface-2)!important}
.tw-pb-teacher-cell-v578.is-filled{background:var(--tw-x-surface)!important;box-shadow:var(--tw-x-shadow-1)}
.tw-pb-teacher-cell-v578.is-today{background:#f7f9fd!important;box-shadow:inset 2px 0 0 var(--tw-x-accent-line)}
.tw-pb-teacher-cell-v578.is-droptarget-v580{background:var(--tw-x-accent-soft)!important;box-shadow:inset 0 0 0 2px var(--tw-x-accent)!important}
.tw-pb-teacher-note-v578 textarea{background:var(--tw-x-surface-2)!important;border-radius:var(--tw-x-r-md)!important}
.tw-pb-teacher-dialog-v578{background:var(--tw-x-surface)!important;border-radius:var(--tw-x-r-xl)!important;box-shadow:var(--tw-x-shadow-3)!important;border:1px solid var(--tw-x-line)}
.tw-pb-teacher-dialog-back-v578{background:rgba(16,24,38,.44)!important;backdrop-filter:blur(2px)}
#twPBTeacherTemplateBtnV580.is-active{background:var(--tw-x-accent)!important;border-color:var(--tw-x-accent)!important;color:#fff!important}
.tw-pb-teacher-ghost-v580{border-radius:var(--tw-x-r-md);border-color:var(--tw-x-accent)!important;box-shadow:var(--tw-x-shadow-3)}

/* ---------- Phasentabelle ---------- */
.tw-plan-phase-table thead th{background:var(--tw-x-surface-2);color:var(--tw-x-muted);font-size:11.5px;font-weight:700;letter-spacing:.02em;text-transform:none}
.tw-plan-phase-timebox-v581{border-radius:var(--tw-x-r-md);border-color:var(--tw-x-line-strong)}
.tw-plan-phase-timebox-v581:focus-within{border-color:var(--tw-x-accent);box-shadow:0 0 0 3px rgba(45,74,138,.12)}

/* ---------- Tafel-Oberfläche ---------- */
#twBoard49HeaderBar{background:linear-gradient(180deg,#1b2432,#141c29)!important}
#twBoard49PenFloatMenu.tw-ui-quickbar{
  background:linear-gradient(180deg,#222c3c,#19212e)!important;
  border:1px solid rgba(255,255,255,.08)!important;
  border-radius:var(--tw-x-r-lg)!important;
  box-shadow:0 18px 42px rgba(10,16,26,.42)!important;
}
#twBoard49PenFloatMenu.tw-ui-quickbar .tw-ui-quick-label{color:#8d9ab2!important;letter-spacing:.04em;text-transform:uppercase;font-size:9.5px}
#twBoard49PenFloatMenu.tw-ui-quickbar button{border-radius:10px!important}
#twBoard49PenFloatMenu.tw-ui-quickbar #twBoard49PenFloatSize,
#twBoard49PenFloatMenu.tw-ui-quickbar #twBoard49PenFloatOpacity{accent-color:#7f9bdd!important}
.tw-ui-rail,.tw-ui-siderail{background:var(--tw-x-surface)!important;border-right:1px solid var(--tw-x-line)!important}

/* ---------- Dialoge, Menüs, Hinweise ---------- */
.tw-row-more>div,.tw-calendar-options-menu,.tw-plan-subject-more>div{
  background:var(--tw-x-surface);border:1px solid var(--tw-x-line);border-radius:var(--tw-x-r-md);box-shadow:var(--tw-x-shadow-2);
}
.tw-row-more>div button:hover,.tw-calendar-options-menu button:hover{background:var(--tw-x-surface-3)}
.tw-empty-state{background:var(--tw-x-surface-2);border:1px dashed var(--tw-x-line-strong);color:var(--tw-x-muted)}
.tw-empty-state b{color:var(--tw-x-text)}

/* ---------- Bildlaufleisten ---------- */
*{scrollbar-color:var(--tw-x-line-strong) transparent}
::-webkit-scrollbar{width:11px;height:11px}
::-webkit-scrollbar-thumb{background:var(--tw-x-line-strong);border-radius:999px;border:3px solid transparent;background-clip:content-box}
::-webkit-scrollbar-thumb:hover{background:#b8c2d4;background-clip:content-box}
::-webkit-scrollbar-track{background:transparent}

@media (max-width:760px){
  .tw-btn{height:38px}
  .tw-pb-teacher-dialog-v578{border-radius:var(--tw-x-r-lg)!important}
}

/* ---------- Werkzeugfenster der Tafel (Bubble-Panels) ---------- */
.tw-ui-bubble-popup,.tw-ui-panel{
  border-radius:var(--tw-x-r-lg)!important;border:1px solid var(--tw-x-line)!important;
  box-shadow:var(--tw-x-shadow-3)!important;background:var(--tw-x-surface)!important;
}
#twBoard49BubbleSectionPopup h3,#twBoard49BubbleSectionPopup b{letter-spacing:-.01em}
/* ---------- Kalenderkacheln ---------- */
.tw-calendar-day{border-radius:var(--tw-x-r-md)!important;border:1px solid var(--tw-x-line)!important;background:var(--tw-x-surface)!important}
.tw-calendar-day:hover{border-color:var(--tw-x-accent-line)!important}
.tw-calendar-day.is-today{box-shadow:inset 0 0 0 2px var(--tw-x-accent)!important}
.tw-calendar-day.is-outside{background:var(--tw-x-surface-2)!important;color:var(--tw-x-faint)!important}
.tw-calendar-month-grid>.tw-calendar-weekday,.tw-calendar-weekday{background:var(--tw-x-surface-2)!important;background-image:none!important;border-radius:0!important;color:var(--tw-x-muted)!important;font-weight:700;letter-spacing:.04em;text-transform:uppercase;font-size:11px;border:0!important;box-shadow:none!important;padding:4px 2px!important}
/* ---------- Tafelübersicht / Listen ---------- */
.tw-board-card,.tw-pb-board-row,.tw-pb-list-row{border-radius:var(--tw-x-r-lg)!important;border:1px solid var(--tw-x-line)!important;background:var(--tw-x-surface)!important;box-shadow:var(--tw-x-shadow-1)}
.tw-board-card:hover,.tw-pb-board-row:hover{border-color:var(--tw-x-accent-line)!important;box-shadow:var(--tw-x-shadow-2)!important}

/* Wochentagsleiste des Monatsrasters: ruhige Kopfzeile statt farbiger Balken */
#twPBMonthGrid>.tw-ui-calendar-head,#twPBWeekGrid>.tw-ui-calendar-head,
#twPBMonthGrid>div:nth-child(-n+7),#twPBWeekGrid>div:nth-child(-n+7){
  background:var(--tw-x-surface-2)!important;background-image:none!important;
  color:var(--tw-x-muted)!important;border-radius:0!important;
  border-bottom:1px solid var(--tw-x-line)!important;box-shadow:none!important;
  font-weight:700!important;letter-spacing:.04em!important;
}

/* ===================================================================
   V583 — Schaltflächen-System und Trennlinien
   =================================================================== */

/* ---------- Basis ---------- */
.tw-x-btn{
  --tw-b-h:40px;
  appearance:none;
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  min-height:var(--tw-b-h)!important;padding:0 15px!important;
  border-radius:var(--tw-x-r-md)!important;
  border:1px solid transparent!important;
  font-family:var(--tw-x-font)!important;font-size:14px!important;font-weight:650!important;
  letter-spacing:-.012em;line-height:1.1;white-space:nowrap;cursor:pointer;
  transition:background-color .15s ease,border-color .15s ease,box-shadow .15s ease,color .15s ease,transform .06s ease;
}
.tw-x-btn:active{transform:translateY(1px)}
.tw-x-btn:focus-visible{outline:3px solid rgba(45,74,138,.24)!important;outline-offset:2px}
.tw-x-btn[disabled],.tw-x-btn[aria-disabled="true"]{opacity:.45!important;cursor:not-allowed!important;transform:none!important;box-shadow:none!important}
.tw-x-btn-block{width:100%!important}
.tw-x-btn-icon{padding:0!important;width:var(--tw-b-h)!important;min-width:var(--tw-b-h)!important}
.tw-x-btn svg{width:17px;height:17px;flex:0 0 auto}

/* ---------- Varianten ---------- */
.tw-x-btn-primary{background:var(--tw-x-accent)!important;border-color:var(--tw-x-accent)!important;color:#fff!important;box-shadow:0 1px 2px rgba(16,24,38,.14)}
.tw-x-btn-primary:hover{background:var(--tw-x-accent-hover)!important;border-color:var(--tw-x-accent-hover)!important}
.tw-x-btn-secondary{background:var(--tw-x-surface)!important;border-color:var(--tw-x-line-strong)!important;color:var(--tw-x-text)!important;box-shadow:0 1px 1px rgba(16,24,38,.04)}
.tw-x-btn-secondary:hover{background:var(--tw-x-surface-3)!important;border-color:var(--tw-x-accent-line)!important}
.tw-x-btn-secondary[aria-pressed="true"],.tw-x-btn-secondary.is-active{
  background:var(--tw-x-accent-soft)!important;border-color:var(--tw-x-accent-line)!important;color:var(--tw-x-accent-hover)!important;
}
.tw-x-btn-quiet{background:transparent!important;border-color:transparent!important;color:var(--tw-x-muted)!important;box-shadow:none!important}
.tw-x-btn-quiet:hover{background:var(--tw-x-surface-3)!important;color:var(--tw-x-text)!important}
.tw-x-btn-danger{background:var(--tw-x-surface)!important;border-color:#eccbc7!important;color:var(--tw-x-danger)!important}
.tw-x-btn-danger:hover{background:var(--tw-x-danger-soft)!important;border-color:#e0b0aa!important}

/* Alte Klassen auf dieselbe Optik ziehen */
.tw-btn{min-height:40px;padding:0 15px;font-size:14px}
.tw-iconbtn{min-height:40px;min-width:40px;border-radius:var(--tw-x-r-md)}

/* ---------- Trennlinien: klare Bereiche ---------- */
.tw-calendar-topline{padding-bottom:12px;border-bottom:1px solid var(--tw-x-line)}
.tw-calendar-tools{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:10px 0;border-bottom:1px solid var(--tw-x-line)}
.tw-calendar-categories{padding-top:10px;border-top:1px solid var(--tw-x-line)}
.tw-plan-editor-head{border-bottom:1px solid var(--tw-x-line)}
.tw-plan-editor-footer{margin-top:14px;padding-top:14px;border-top:1px solid var(--tw-x-line);display:flex;gap:10px;align-items:center}
.tw-plan-editor-footer .tw-x-btn-danger{margin-right:auto}
.tw-plan-featured-foot{border-top:1px solid var(--tw-x-line);padding-top:12px;margin-top:2px;display:flex;gap:9px;justify-content:flex-end}
.tw-plan-featured-phases,.tw-plan-featured-notes{border-top:1px solid var(--tw-x-line)}
.tw-plan-content-sectionhead{border-bottom:1px solid var(--tw-x-line);padding-bottom:7px;margin-bottom:9px}
.tw-plan-subject-list>.tw-plan-subject-row+.tw-plan-subject-row,
#twPBFolderNavigator .tw-plan-folder-row+.tw-plan-folder-row{border-top:1px solid var(--tw-x-line)}
.tw-pb-teacher-dialog-v578 h3{padding-bottom:11px;border-bottom:1px solid var(--tw-x-line);margin-bottom:14px}
.tw-pb-teacher-actions-v578{border-top:1px solid var(--tw-x-line);padding-top:13px}
.tw-pb-teacher-actions-v578 .tw-x-btn-danger{margin-left:auto}
#twBoard49BubbleSectionPopup hr,.tw-ui-panel hr{border:0;border-top:1px solid var(--tw-x-line);margin:12px 0}
.tw-plan-phase-table tbody tr+tr td{border-top:1px solid var(--tw-x-line)}
.tw-plan-phase-table thead th{border-bottom:1px solid var(--tw-x-line-strong)}

/* Werkzeugfenster der Tafel: Abschnitte sichtbar trennen */
#twBoard49BubbleSectionPopup b{display:block;margin-top:2px}


/* Gruppen nebeneinander stehender Schaltflächen ruhig halten */
.tw-calendar-tools .tw-calendar-options{margin-left:auto}

/* V583: Durchsetzung gegen ältere !important-Regeln der Werkzeugfenster */
html body.tw-ui-v511 button.tw-x-btn,
html body.tw-ui-v511 #twBoard49Toolbar button.tw-x-btn,
html body.tw-ui-v511 #twPBModal button.tw-x-btn{
  border-radius:var(--tw-x-r-md)!important;font-weight:650!important;min-height:40px!important;
}
html body.tw-ui-v511 button.tw-x-btn-primary,
html body.tw-ui-v511 #twBoard49Toolbar button.tw-x-btn-primary,
html body.tw-ui-v511 #twPBModal button.tw-x-btn-primary{
  background:var(--tw-x-accent)!important;border:1px solid var(--tw-x-accent)!important;color:#fff!important;
}
html body.tw-ui-v511 button.tw-x-btn-primary:hover{background:var(--tw-x-accent-hover)!important;border-color:var(--tw-x-accent-hover)!important}
html body.tw-ui-v511 button.tw-x-btn-secondary,
html body.tw-ui-v511 #twPBModal button.tw-x-btn-secondary{
  background:var(--tw-x-surface)!important;border:1px solid var(--tw-x-line-strong)!important;color:var(--tw-x-text)!important;
}
html body.tw-ui-v511 button.tw-x-btn-secondary:hover{background:var(--tw-x-surface-3)!important;border-color:var(--tw-x-accent-line)!important}
html body.tw-ui-v511 button.tw-x-btn-danger,
html body.tw-ui-v511 #twPBModal button.tw-x-btn-danger{
  background:var(--tw-x-surface)!important;border:1px solid #eccbc7!important;color:var(--tw-x-danger)!important;
}
html body.tw-ui-v511 button.tw-x-btn-danger:hover{background:var(--tw-x-danger-soft)!important}
html body.tw-ui-v511 button.tw-x-btn-quiet{background:transparent!important;border:1px solid transparent!important;color:var(--tw-x-muted)!important}
html body.tw-ui-v511 button.tw-x-btn-quiet:hover{background:var(--tw-x-surface-3)!important;color:var(--tw-x-text)!important}

/* V585: ausgeblendete Schaltflächen bleiben ausgeblendet */
.tw-x-btn[hidden],.tw-x-btn[style*="display: none"],.tw-x-btn[style*="display:none"]{display:none!important}

/* ===================================================================
   V586 — Feinschliff: Rhythmus, Bewegung, Schnellzugriff, Rückmeldungen
   =================================================================== */
:root{
  --tw-x-s1:4px; --tw-x-s2:8px; --tw-x-s3:12px; --tw-x-s4:16px; --tw-x-s5:24px; --tw-x-s6:32px;
  --tw-x-ease:cubic-bezier(.2,.7,.3,1);
}

/* Bewegung: spürbar, aber nie im Weg - und abschaltbar über die Systemeinstellung */
.tw-x-btn,.tw-plan-lesson-row,.tw-plan-featured,.tw-pb-teacher-cell-v578,.tw-calendar-day,
.tw-plan-subject-row,.tw-plan-folder-row{transition:background-color .16s var(--tw-x-ease),border-color .16s var(--tw-x-ease),box-shadow .16s var(--tw-x-ease),transform .1s var(--tw-x-ease)}
.tw-plan-lesson-row:hover,.tw-plan-featured:hover{box-shadow:var(--tw-x-shadow-2)}
.tw-pb-teacher-cell-v578:active{transform:scale(.995)}
@media (prefers-reduced-motion:reduce){*{animation-duration:.001ms!important;transition-duration:.001ms!important}}

/* Typografische Leiter */
.tw-workspace-head h1,.tw-calendar-date-title{font-size:clamp(22px,2.4vw,28px);font-weight:760;letter-spacing:-.022em}
.tw-calendar-title{font-size:19px;font-weight:720}
.tw-calendar-subtitle,.tw-plan-editor-subtitle{font-size:13px;color:var(--tw-x-muted)}
.tw-plan-content-sectionhead{font-size:12px;letter-spacing:.03em;text-transform:uppercase;color:var(--tw-x-muted)}

/* Ruhigere Abstände im Arbeitsbereich */
.tw-workspace-content{padding-left:var(--tw-x-s5);padding-right:var(--tw-x-s5)}
.tw-plan-editor-section{margin-bottom:var(--tw-x-s4)}
.tw-calendar-topline{gap:var(--tw-x-s4)}

/* Leere Zustände mit klarer Handlungsaufforderung */
.tw-empty-state{padding:26px 22px;text-align:center;display:grid;gap:7px;justify-items:center;border-radius:var(--tw-x-r-lg)}
.tw-empty-state b{font-size:15px}
.tw-empty-state span{font-size:13px;max-width:44ch;line-height:1.5}

/* Schnellzugriff-Knopf in der Kopfleiste */
.tw-palette-trigger-v586{
  width:auto!important;padding:0 11px!important;gap:8px;display:flex!important;align-items:center;
  border:1px solid rgba(255,255,255,.14)!important;border-radius:10px!important;
  color:var(--tw-x-on-ink-muted)!important;background:rgba(255,255,255,.05)!important;
}
.tw-palette-trigger-v586:hover{background:rgba(255,255,255,.12)!important;color:#fff!important}
.tw-palette-trigger-v586 span{font-size:12.5px;font-weight:600}
.tw-palette-trigger-v586 kbd{
  font:inherit;font-size:10.5px;padding:2px 5px;border-radius:5px;
  background:rgba(255,255,255,.12);color:#dbe3f2;border:1px solid rgba(255,255,255,.14);
}
@media (max-width:900px){.tw-palette-trigger-v586 span,.tw-palette-trigger-v586 kbd{display:none}
  .tw-palette-trigger-v586{width:38px!important;padding:0!important;justify-content:center}}

/* Befehlsleiste */
#twPaletteV586{position:fixed;inset:0;z-index:2147483600;background:rgba(12,18,28,.46);backdrop-filter:blur(3px);display:flex;align-items:flex-start;justify-content:center;padding:12vh 16px 16px}
#twPaletteV586[hidden]{display:none!important}
.tw-palette-box-v586{width:min(620px,100%);background:var(--tw-x-surface);border:1px solid var(--tw-x-line);border-radius:var(--tw-x-r-xl);box-shadow:0 30px 70px rgba(10,16,26,.38);overflow:hidden;animation:twPaletteIn .16s var(--tw-x-ease)}
@keyframes twPaletteIn{from{opacity:0;transform:translateY(-8px) scale(.985)}to{opacity:1;transform:none}}
.tw-palette-head-v586{display:flex;align-items:center;gap:11px;padding:14px 16px;border-bottom:1px solid var(--tw-x-line)}
.tw-palette-head-v586 svg{width:19px;height:19px;fill:none;stroke:var(--tw-x-muted);stroke-width:1.9;stroke-linecap:round}
.tw-palette-head-v586 input{flex:1;border:0!important;outline:none;font-size:16px;background:transparent!important;color:var(--tw-x-text);box-shadow:none!important}
.tw-palette-head-v586 kbd{font:inherit;font-size:11px;color:var(--tw-x-muted);border:1px solid var(--tw-x-line-strong);border-radius:6px;padding:2px 6px}
.tw-palette-list-v586{max-height:min(52vh,420px);overflow:auto;padding:7px}
.tw-palette-item-v586{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;text-align:left;padding:10px 12px;border:0;border-radius:var(--tw-x-r-md);background:transparent;cursor:pointer;color:var(--tw-x-text)}
.tw-palette-item-v586 b{display:block;font-size:14.5px;font-weight:650}
.tw-palette-item-v586 small{display:block;font-size:12px;color:var(--tw-x-muted);margin-top:2px}
.tw-palette-item-v586.is-active{background:var(--tw-x-accent-soft);box-shadow:inset 0 0 0 1px var(--tw-x-accent-line)}
.tw-palette-go-v586{color:var(--tw-x-faint);font-size:13px}
.tw-palette-item-v586.is-active .tw-palette-go-v586{color:var(--tw-x-accent)}
.tw-palette-empty-v586{padding:22px;text-align:center;color:var(--tw-x-muted);font-size:13.5px}
body.tw-palette-open-v586{overflow:hidden}

/* Kurze Rückmeldungen */
#twToastHostV586{position:fixed;left:50%;bottom:calc(env(safe-area-inset-bottom,0px) + 18px);transform:translateX(-50%);z-index:2147483500;display:grid;gap:8px;justify-items:center;pointer-events:none}
.tw-toast-v586{
  background:rgba(22,32,46,.96);color:#eef2f9;font-size:13.5px;font-weight:600;letter-spacing:-.01em;
  padding:10px 16px;border-radius:999px;box-shadow:0 12px 30px rgba(10,16,26,.34);
  opacity:0;transform:translateY(10px);transition:opacity .22s var(--tw-x-ease),transform .22s var(--tw-x-ease);max-width:min(88vw,520px);text-align:center;
}
.tw-toast-v586.is-in{opacity:1;transform:none}
.tw-toast-v586.is-error{background:rgba(160,48,38,.96)}
html body.tw-ui-v511 #twPaletteV586 .tw-palette-head-v586 input{border:0!important;border-radius:0!important;box-shadow:none!important;background:transparent!important;padding:0!important}

/* ===================================================================
   V587 — Schriftgrößen, Umbruchverhalten, Ansicht „Heute“
   =================================================================== */

/* Schriftgrößenleiter: keine Kleinstschriften mehr unter 11,5 px */
.tw-plan-lesson-copy b,.tw-plan-featured-copy b{font-size:15px;font-weight:700;letter-spacing:-.01em}
.tw-plan-lesson-copy small,.tw-plan-featured-copy small{font-size:12.5px;line-height:1.45;color:var(--tw-x-muted)}
.tw-plan-status{font-size:11.5px}
.tw-plan-subject-row,.tw-plan-folder-row{font-size:14.5px}
.tw-plan-subject-count,.tw-plan-folder-count{font-size:12px;font-weight:700}
.tw-plan-content-sectionhead{font-size:11.5px}
.tw-pb-teacher-cellcopy-v578 b{font-size:14px}
.tw-pb-teacher-cellcopy-v578 small{font-size:12px}
.tw-pb-teacher-time-v578 b,.tw-pb-teacher-dayhead-v578 b{font-size:14px}
.tw-pb-teacher-time-v578 small,.tw-pb-teacher-dayhead-v578 small{font-size:11.5px}
.tw-plan-editor-meta label,.tw-plan-editor-notes label{font-size:12px;letter-spacing:.01em}
.tw-plan-phase-table td input,.tw-plan-phase-table td textarea{font-size:14.5px}
#twBoard49PenFloatMenu.tw-ui-quickbar .tw-ui-quick-label{font-size:10px}

/* Anlegen-Zeile bricht sauber um, statt über den Rand zu laufen */
.tw-plan-create{display:flex!important;flex-wrap:wrap;gap:10px;align-items:center}
.tw-plan-create>input{flex:1 1 220px;min-width:0}
.tw-plan-create>select{flex:1 1 140px;min-width:0;max-width:210px}
.tw-plan-create>.tw-x-btn,.tw-plan-create>button{flex:0 0 auto}

/* Platz für den schwebenden Menüknopf */
.tw-workspace-content{padding-bottom:96px}

/* ---------- Ansicht „Heute“ ---------- */
#twTodayV587{position:fixed;inset:0;z-index:2147483550;background:rgba(12,18,28,.46);backdrop-filter:blur(3px);display:flex;align-items:flex-start;justify-content:center;padding:8vh 16px 16px}
#twTodayV587[hidden]{display:none!important}
body.tw-today-open-v587{overflow:hidden}
.tw-today-box-v587{width:min(680px,100%);max-height:84vh;display:flex;flex-direction:column;background:var(--tw-x-surface);border:1px solid var(--tw-x-line);border-radius:var(--tw-x-r-xl);box-shadow:0 30px 70px rgba(10,16,26,.38);overflow:hidden;animation:twPaletteIn .16s var(--tw-x-ease)}
.tw-today-head-v587{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 18px;border-bottom:1px solid var(--tw-x-line);background:var(--tw-x-surface-2)}
.tw-today-head-v587 b{display:block;font-size:17px;font-weight:740;letter-spacing:-.015em}
.tw-today-head-v587 small{display:block;font-size:12.5px;color:var(--tw-x-muted);margin-top:3px}
.tw-today-close-v587{border:0;background:transparent;color:var(--tw-x-muted);font-size:16px;width:34px;height:34px;border-radius:9px;cursor:pointer}
.tw-today-close-v587:hover{background:var(--tw-x-surface-3);color:var(--tw-x-text)}
.tw-today-body-v587{padding:14px 18px;overflow:auto;display:grid;gap:10px}
.tw-today-card-v587{display:flex;align-items:center;gap:13px;padding:11px 12px;border:1px solid var(--tw-x-line);border-radius:var(--tw-x-r-md);background:var(--tw-x-surface)}
.tw-today-card-v587.is-now{border-color:var(--tw-x-accent-line);background:var(--tw-x-accent-soft);box-shadow:inset 2px 0 0 var(--tw-x-accent)}
.tw-today-card-v587.is-past{opacity:.55}
.tw-today-slot-v587{flex:0 0 58px;text-align:center}
.tw-today-slot-v587 b{display:block;font-size:15px;font-weight:750}
.tw-today-slot-v587 small{display:block;font-size:11.5px;color:var(--tw-x-muted);white-space:nowrap}
.tw-today-copy-v587{flex:1 1 auto;min-width:0}
.tw-today-copy-v587 b{display:block;font-size:15px;font-weight:660;overflow-wrap:anywhere}
.tw-today-copy-v587 small{display:block;font-size:12.5px;color:var(--tw-x-muted);margin-top:2px}
.tw-today-badge-v587{display:inline-block;margin-left:6px;padding:1px 7px;border-radius:999px;background:var(--tw-x-accent);color:#fff;font-size:10.5px;font-weight:700;letter-spacing:.02em}
.tw-today-actions-v587{display:flex;gap:7px;flex:0 0 auto}
.tw-today-actions-v587 .tw-x-btn{min-height:34px!important;padding:0 12px!important;font-size:13px!important}
.tw-today-empty-v587{display:grid;gap:7px;justify-items:center;text-align:center;padding:22px 12px;border:1px dashed var(--tw-x-line-strong);border-radius:var(--tw-x-r-lg);background:var(--tw-x-surface-2)}
.tw-today-empty-v587 b{font-size:15px}
.tw-today-empty-v587 span{font-size:13px;color:var(--tw-x-muted);max-width:42ch}
.tw-today-emptyactions-v587{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:6px}
.tw-today-note-v587{display:grid;gap:6px;margin-top:4px}
.tw-today-note-v587 label{font-size:12px;font-weight:700;color:var(--tw-x-muted)}
.tw-today-note-v587 textarea{min-height:76px;resize:vertical;font-size:14px;border-radius:var(--tw-x-r-md)}
.tw-today-foot-v587{display:flex;gap:8px;padding:13px 18px;border-top:1px solid var(--tw-x-line);background:var(--tw-x-surface-2)}
.tw-today-foot-v587 .tw-x-btn-quiet{margin-left:auto}
@media (max-width:620px){
  #twTodayV587{padding:0}
  .tw-today-box-v587{max-height:100vh;height:100%;border-radius:0;width:100%}
  .tw-today-card-v587{flex-wrap:wrap}
  .tw-today-actions-v587{width:100%;justify-content:flex-end}
}

/* V587: Anlegen-Zeile bleibt als Fußzeile der Inhaltsspalte immer sichtbar */
.tw-plan-lessons-pane .tw-plan-create{
  position:sticky;bottom:0;z-index:5;
  background:linear-gradient(180deg,rgba(255,255,255,.75),var(--tw-x-surface) 28%);
  border-top:1px solid var(--tw-x-line);
  padding:12px 0 14px;margin-top:10px;
}
@media (max-width:1200px){ .tw-plan-lessons-pane .tw-plan-create{padding-right:74px} }

/* ===================================================================
   V588 — Eingabehilfen, To-dos in „Heute“, volle Höhe in der Planung
   =================================================================== */

/* Planung füllt die Fläche - kein toter Raum mehr unter den Spalten */
body.tw-section-plan.tw-planning-columns-active .tw-plan-lessons-pane{display:flex;flex-direction:column;min-height:0}
body.tw-section-plan.tw-planning-columns-active .tw-plan-lessons-pane>*:not(.tw-plan-create){flex:0 0 auto}
body.tw-section-plan.tw-planning-columns-active #twPBLessonList{flex:1 1 auto;min-height:0}
body.tw-section-plan .tw-workspace-content{padding-bottom:0}
body.tw-section-plan .tw-workspace{height:100%}

/* Eingabehilfen: schlichte Zeile unter dem Feld */
.tw-inputtools-v588{display:flex;gap:4px;align-items:center;margin-top:6px}
.tw-inputtools-v588.is-compact{margin-top:4px;gap:2px}
.tw-inputtool-v588{
  width:30px;height:30px;display:inline-flex;align-items:center;justify-content:center;
  border:1px solid transparent;border-radius:8px;background:transparent;color:var(--tw-x-faint);
  cursor:pointer;transition:background-color .15s var(--tw-x-ease),color .15s var(--tw-x-ease),border-color .15s var(--tw-x-ease);
}
.tw-inputtool-v588:hover{background:var(--tw-x-surface-3);color:var(--tw-x-accent);border-color:var(--tw-x-line)}
.tw-inputtool-v588 svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.tw-inputtool-v588.is-recording{background:var(--tw-x-danger-soft);color:var(--tw-x-danger);border-color:#eccbc7;animation:twRecPulse 1.3s infinite}
@keyframes twRecPulse{0%,100%{opacity:1}50%{opacity:.55}}
.tw-inputtools-v588.is-compact .tw-inputtool-v588{width:26px;height:26px}
.tw-inputtools-v588.is-compact .tw-inputtool-v588 svg{width:14px;height:14px}

/* Anhänge */
.tw-attstrip-v588{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.tw-attstrip-v588[hidden]{display:none}
.tw-att-item-v588{position:relative;width:78px;height:58px;border:1px solid var(--tw-x-line);border-radius:9px;overflow:hidden;background:var(--tw-x-surface-2)}
.tw-att-item-v588 img{width:100%;height:100%;object-fit:cover;cursor:zoom-in;display:block}
.tw-att-del-v588{position:absolute;top:2px;right:2px;width:20px;height:20px;border:0;border-radius:6px;background:rgba(16,24,38,.62);color:#fff;font-size:11px;line-height:1;cursor:pointer}
.tw-att-del-v588:hover{background:rgba(160,48,38,.86)}
.tw-att-viewer-v588{position:fixed;inset:0;z-index:2147483600;background:rgba(10,16,26,.82);display:flex;align-items:center;justify-content:center;padding:24px;cursor:zoom-out}
.tw-att-viewer-v588 img{max-width:100%;max-height:100%;border-radius:12px;box-shadow:0 24px 60px rgba(0,0,0,.5)}

/* Handschrift-Fenster */
.tw-pen-back-v588{position:fixed;inset:0;z-index:2147483600;background:rgba(12,18,28,.5);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;padding:18px}
.tw-pen-box-v588{width:min(880px,100%);background:var(--tw-x-surface);border-radius:var(--tw-x-r-xl);border:1px solid var(--tw-x-line);box-shadow:0 30px 70px rgba(10,16,26,.4);overflow:hidden;display:flex;flex-direction:column}
.tw-pen-box-v588 header{padding:14px 18px;border-bottom:1px solid var(--tw-x-line);background:var(--tw-x-surface-2)}
.tw-pen-box-v588 header b{display:block;font-size:16px;font-weight:730}
.tw-pen-box-v588 header span{display:block;font-size:12.5px;color:var(--tw-x-muted);margin-top:2px}
.tw-pen-canvas-v588{width:100%;height:min(52vh,380px);touch-action:none;background:#fff;display:block;cursor:crosshair}
.tw-pen-box-v588 footer{display:flex;gap:8px;justify-content:flex-end;padding:13px 18px;border-top:1px solid var(--tw-x-line);background:var(--tw-x-surface-2)}
.tw-pen-box-v588 footer [data-clear]{margin-right:auto}

/* To-dos in „Heute“ */
.tw-today-todos-v587{display:grid;gap:5px;margin-top:4px}
.tw-today-todos-v587 h4{margin:0 0 2px;font-size:12px;font-weight:700;color:var(--tw-x-muted);letter-spacing:.02em}
.tw-today-todo-v587{display:flex;align-items:flex-start;gap:9px;padding:8px 10px;border:1px solid var(--tw-x-line);border-radius:var(--tw-x-r-md);background:var(--tw-x-surface-2);font-size:14px;cursor:pointer}
.tw-today-todo-v587 input{margin-top:2px;width:17px;height:17px;accent-color:var(--tw-x-accent)}
.tw-today-todo-v587 b{font-weight:700;color:var(--tw-x-muted);margin-right:3px}
.tw-today-todo-v587.is-done span{text-decoration:line-through;color:var(--tw-x-faint)}
.tw-today-todolink-v587{justify-self:start;margin-top:2px}

/* ===================================================================
   V589 — Diktat im Feld, Spracheintrag, Überlagerungen behoben
   =================================================================== */

/* Werkzeuge direkt im Feld: keine zusätzliche Zeile, keine Überlagerung */
.tw-inputtools-v588.is-inline{
  position:absolute;right:6px;top:6px;margin:0;gap:2px;z-index:3;
  background:rgba(255,255,255,.86);border-radius:8px;backdrop-filter:blur(2px);
}
.has-inline-tools-v588{padding-right:38px!important}
textarea.has-inline-tools-v588{padding-right:38px!important}
.tw-plan-phase-table td{position:relative}
.tw-plan-phase-table .tw-inputtools-v588.is-inline{right:4px;top:4px;background:transparent}

/* Tagesnotizen: Modus- und Werkzeugknöpfe brechen sauber um */
.tw-day-notes-modes{display:flex!important;flex-wrap:wrap!important;align-items:center;gap:8px!important;margin-bottom:10px!important}
.tw-day-notes-tools{display:inline-flex!important;flex-wrap:wrap;gap:6px!important;margin-left:auto!important}
.tw-day-notes-mode,.tw-day-ink-tool{min-height:36px!important;padding:0 13px!important;border-radius:var(--tw-x-r-md)!important}
.tw-day-card-actions{display:flex;flex-wrap:wrap;gap:9px;align-items:center;margin-top:12px;padding-top:12px;border-top:1px solid var(--tw-x-line)}
.tw-day-card-actions .tw-plan-save-state{margin-right:auto;font-size:12.5px;color:var(--tw-x-muted)}
.tw-day-add-row{display:flex!important;flex-wrap:wrap;gap:8px;align-items:center;position:relative}
.tw-day-add-row>input{flex:1 1 220px;min-width:0}

/* Klassenmanager: Kopf- und Reiterzeilen überlagern sich nicht mehr */
.tw-cm-toolbar,.tw-cm-tabs,.tw-cm-head,.tw-cm-actions,.tw-cm-topbar{
  display:flex!important;flex-wrap:wrap!important;gap:8px!important;align-items:center;row-gap:8px!important;
}
.tw-cm-tabs{padding-bottom:10px;border-bottom:1px solid var(--tw-x-line);margin-bottom:12px}
.tw-cm-card,.tw-cm-modern-card{border-radius:var(--tw-x-r-lg)!important;border:1px solid var(--tw-x-line)!important;box-shadow:var(--tw-x-shadow-1);padding:16px!important;margin-bottom:14px}
.tw-cm-card h3,.tw-cm-modern-card h3{font-size:16px;font-weight:730;margin:0 0 12px}
.tw-cm-form-grid{display:grid!important;gap:12px!important;grid-template-columns:repeat(auto-fit,minmax(190px,1fr))!important}
.tw-cm-field{display:grid!important;gap:5px!important;font-size:12px;font-weight:700;color:var(--tw-x-muted);position:relative;min-width:0}
.tw-cm-field input,.tw-cm-field select,.tw-cm-field textarea{font-size:14.5px;font-weight:400;color:var(--tw-x-text);width:100%;box-sizing:border-box}
.tw-cm-field textarea{min-height:92px;resize:vertical}

/* Spracheintrag: Bestätigungsfenster */
.tw-voice-back-v589{position:fixed;inset:0;z-index:2147483600;background:rgba(12,18,28,.5);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;padding:16px}
.tw-voice-box-v589{width:min(560px,100%);background:var(--tw-x-surface);border:1px solid var(--tw-x-line);border-radius:var(--tw-x-r-xl);box-shadow:0 30px 70px rgba(10,16,26,.4);overflow:hidden;animation:twPaletteIn .16s var(--tw-x-ease)}
.tw-voice-box-v589 header{padding:15px 18px;border-bottom:1px solid var(--tw-x-line);background:var(--tw-x-surface-2)}
.tw-voice-box-v589 header b{display:block;font-size:16px;font-weight:730}
.tw-voice-box-v589 header span{display:block;font-size:12.5px;color:var(--tw-x-muted);margin-top:2px}
.tw-voice-form-v589{display:grid;gap:11px;padding:16px 18px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
.tw-voice-form-v589 label{display:grid;gap:5px;font-size:12px;font-weight:700;color:var(--tw-x-muted)}
.tw-voice-form-v589 label[hidden]{display:none}
.tw-voice-form-v589 input,.tw-voice-form-v589 select{font-size:15px;font-weight:400;color:var(--tw-x-text)}
.tw-voice-box-v589 footer{display:flex;gap:8px;justify-content:flex-end;padding:13px 18px;border-top:1px solid var(--tw-x-line);background:var(--tw-x-surface-2)}

/* ===================================================================
   V590 — Sichtbare Aufnahme, aufgeräumte Tagesnotiz
   =================================================================== */

/* Tagesnotiz: eine Reihe für die Eingabeart, Stiftwerkzeuge daneben */
.tw-day-notes-modes{justify-content:flex-start}
.tw-day-notes-modes .tw-day-notes-mode[aria-pressed="true"]{
  background:var(--tw-x-accent-soft)!important;border-color:var(--tw-x-accent-line)!important;color:var(--tw-x-accent-hover)!important;
}
.tw-day-notes-tools{margin-left:auto!important;padding-left:10px;border-left:1px solid var(--tw-x-line)}
.tw-day-notes-tools[hidden]{display:none!important}
.tw-day-notes{position:relative}
.tw-day-card .tw-inputtools-v588.is-inline{right:8px;top:8px}

/* Aufnahmefenster */
.tw-rec-back-v590{position:fixed;inset:0;z-index:2147483600;background:rgba(12,18,28,.55);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:18px}
.tw-rec-box-v590{width:min(460px,100%);background:var(--tw-x-surface);border:1px solid var(--tw-x-line);border-radius:var(--tw-x-r-xl);box-shadow:0 30px 70px rgba(10,16,26,.42);padding:24px 22px 16px;text-align:center;animation:twPaletteIn .16s var(--tw-x-ease)}
.tw-rec-mic-v590{width:78px;height:78px;border-radius:50%;border:1px solid var(--tw-x-line-strong);background:var(--tw-x-surface-2);color:var(--tw-x-muted);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:all .18s var(--tw-x-ease)}
.tw-rec-mic-v590 svg{width:32px;height:32px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.tw-rec-mic-v590.is-live{background:var(--tw-x-danger);border-color:var(--tw-x-danger);color:#fff;box-shadow:0 0 0 0 rgba(192,57,43,.45);animation:twRecRing 1.6s infinite}
@keyframes twRecRing{0%{box-shadow:0 0 0 0 rgba(192,57,43,.45)}70%{box-shadow:0 0 0 18px rgba(192,57,43,0)}100%{box-shadow:0 0 0 0 rgba(192,57,43,0)}}
.tw-rec-state-v590{margin-top:14px;font-size:15.5px;font-weight:700;color:var(--tw-x-text)}
.tw-rec-hint-v590{margin-top:5px;font-size:12.5px;color:var(--tw-x-muted)}
.tw-rec-text-v590{margin-top:14px;min-height:46px;padding:10px 12px;border-radius:var(--tw-x-r-md);background:var(--tw-x-surface-2);border:1px solid var(--tw-x-line);font-size:15px;color:var(--tw-x-text);text-align:left;white-space:pre-wrap}
.tw-rec-text-v590:empty::before{content:"…";color:var(--tw-x-faint)}
.tw-rec-manual-v590{width:100%;box-sizing:border-box;margin-top:12px;min-height:74px;font-size:15px;resize:vertical}
.tw-rec-box-v590 footer{display:flex;gap:8px;justify-content:flex-end;margin-top:16px;padding-top:13px;border-top:1px solid var(--tw-x-line)}

/* Diktierknopf in der Tages-Zeitleiste */
#twPBDayVoiceBtnV590{margin-left:8px}
/* V590: Hülle für Felder mit Werkzeugen im Feld */
.tw-fieldwrap-v590{position:relative;display:block;width:100%}
.tw-fieldwrap-v590>textarea,.tw-fieldwrap-v590>input{width:100%;box-sizing:border-box}
.tw-plan-phase-table .tw-fieldwrap-v590{display:block}

/* ===== V591: Termin bearbeiten + Lesbarkeit bei Überschneidungen ===== */

/* Überlappende Termine werden gestaffelt statt geschrumpft. Die angetippte
   oder mit der Tastatur fokussierte Karte kommt nach vorn, damit auch der
   verdeckte Titel jederzeit vollständig lesbar ist. */
.tw-pb-timeline-event:hover,
.tw-pb-timeline-event:focus-visible,
.tw-pb-timeline-event:focus{
  z-index:40!important;
  box-shadow:0 10px 26px rgba(20,32,52,.34)!important;
}
.tw-pb-timeline-event:focus-visible{outline:3px solid #f4c04f;outline-offset:1px}

.tw-extra-edit-back-v591{
  position:fixed;inset:0;z-index:2147483639;
  background:rgba(12,18,28,.62);
  display:flex;align-items:center;justify-content:center;
  padding:16px;box-sizing:border-box;
}
.tw-extra-edit-box-v591{
  width:min(520px,100%);max-height:calc(100dvh - 32px);overflow:auto;
  background:#fff;color:#1b2432;border-radius:20px;box-sizing:border-box;
  box-shadow:0 26px 70px rgba(10,18,32,.42);
}
.tw-extra-edit-box-v591 header{
  padding:18px 20px 12px;border-bottom:1px solid #e3e8f0;
  display:flex;flex-direction:column;gap:3px;
}
.tw-extra-edit-box-v591 header b{font-size:19px}
.tw-extra-edit-box-v591 header span{font-size:13px;color:#64708a}
.tw-extra-edit-form-v591{display:grid;gap:11px;padding:16px 20px}
.tw-extra-edit-form-v591 label{display:grid;gap:5px}
.tw-extra-edit-form-v591 label[hidden]{display:none}
.tw-extra-edit-form-v591 label>span{font-size:13px;font-weight:700;color:#4a566b}
.tw-extra-edit-form-v591 input[type=text],
.tw-extra-edit-form-v591 input:not([type]),
.tw-extra-edit-form-v591 input[type=time],
.tw-extra-edit-form-v591 select{
  width:100%;box-sizing:border-box;border:1px solid #d3dae6;border-radius:12px;
  padding:11px 12px;font-size:16px;background:#fff;color:#1b2432;
}
.tw-extra-edit-allday-v591{
  display:flex!important;flex-direction:row;align-items:center;gap:9px;
}
.tw-extra-edit-allday-v591 input{width:20px;height:20px;flex:0 0 auto}
.tw-extra-edit-links-v591{padding:0 20px 4px}
.tw-extra-edit-links-v591 button{
  width:100%;border:1px solid #cbd5e4;background:#f4f7fb;color:#22304a;
  border-radius:12px;padding:11px 14px;font-size:15px;font-weight:700;cursor:pointer;
}
.tw-extra-edit-links-v591 button:hover{background:#e8eff8}
.tw-extra-edit-box-v591 footer{
  display:flex;gap:9px;justify-content:flex-end;flex-wrap:wrap;
  padding:14px 20px 18px;border-top:1px solid #e3e8f0;margin-top:8px;
}
.tw-extra-edit-box-v591 footer .tw-x-btn{
  border:0;border-radius:12px;padding:11px 17px;font-size:15px;font-weight:800;cursor:pointer;
}
.tw-extra-edit-box-v591 footer .tw-x-btn-primary{background:#22406e;color:#fff}
.tw-extra-edit-box-v591 footer .tw-x-btn-quiet{background:transparent;color:#4a566b}
.tw-extra-edit-box-v591 footer .tw-x-btn-danger{background:#fbeceb;color:#8f2013;margin-right:auto}
@media (prefers-color-scheme:dark){
  .tw-extra-edit-box-v591{background:#161d29;color:#e7ecf4}
  .tw-extra-edit-box-v591 header{border-bottom-color:#2a3444}
  .tw-extra-edit-box-v591 footer{border-top-color:#2a3444}
  .tw-extra-edit-box-v591 header span,.tw-extra-edit-form-v591 label>span{color:#9aa8bd}
  .tw-extra-edit-form-v591 input,.tw-extra-edit-form-v591 select{background:#1e2735;color:#e7ecf4;border-color:#364254}
  .tw-extra-edit-links-v591 button{background:#1e2735;color:#dbe4f0;border-color:#364254}
}

/* V591: Termin-Zeile in der Heute-Ansicht ist ein Knopf, kein Haken. */
.tw-today-extra-open-v591{
  display:block;width:100%;text-align:left;border:0;background:transparent;
  color:inherit;font:inherit;padding:2px 0;cursor:pointer;border-radius:8px;
}
.tw-today-extra-open-v591:hover{text-decoration:underline}
.tw-today-extra-open-v591:focus-visible{outline:2px solid #f4c04f;outline-offset:2px}
.tw-extra-edit-links-v591{display:flex;gap:9px}
.tw-extra-edit-links-v591 button{flex:1}

/* ===== V597/V598: Menükarten der Tafel ===== */

/* V598 KORREKTUR einer eigenen Regression aus V597: "background:revert" auf
   einer !important-Regel setzt NICHT die inline gesetzte Farbe wieder ein -
   revert geht auf die Browser-Voreinstellung für dieses Element zurück, und
   !important sticht dabei jede Inline-Angabe aus, egal wie hoch deren
   Spezifität wäre. Ergebnis: statt der Farbvorschau ein einheitliches
   Browser-Grau, bei JEDEM Farbfeld mit dieser Klasse - auch bei den eigenen
   Standardfarben, die vorher einwandfrei funktioniert hatten. Diese Regel ist
   ersatzlos gestrichen: der eigentliche Fehler wird jetzt an der Quelle in
   modern-ui.css behoben (siehe dort), die Klasse braucht dafür keine eigene
   Hintergrund-Regel mehr. */
#twBoard49BubbleSectionPopup button.tw-ui-color-swatch,
button.tw-ui-color-swatch{
  min-height:0!important;
  font-size:inherit!important;
  box-shadow:none!important;
}
#twBoard49BubbleSectionPopup button.tw-ui-color-swatch{
  border-radius:10px!important;
  border-width:1px!important;
}
/* Aktives Farbfeld bleibt erkennbar - unabhängig davon, über welchen der drei
   Wege (Klasse oder Attribut) es markiert wird. */
#twBoard49BubbleSectionPopup button.tw-ui-color-swatch.is-active,
#twBoard49BubbleSectionPopup button[data-color].is-active,
#twBoard49BubbleSectionPopup button[data-focus-color].is-active,
#twBoard49BubbleSectionPopup button[data-saved-color].is-active,
button.tw-ui-color-swatch[aria-pressed="true"]{
  outline:3px solid var(--tw-ui-blue,#2d4a8a);
  outline-offset:2px;
}

/* Kleine Überlagerungen (Lösch-× am Farbfeld) behalten ihre eigene Größe
   und Position und werden nicht zur formatfüllenden Schaltfläche. */
.tw-fn-overlay-v597,
#twBoard49BubbleSectionPopup button.tw-fn-overlay-v597{
  min-height:0!important;
  width:19px!important;
  height:19px!important;
  padding:0!important;
  border-radius:50%!important;
  background:#fff!important;
  color:#8a2418!important;
  border:1px solid #d3dae6!important;
  font:900 12px/1 system-ui,sans-serif!important;
  box-shadow:0 1px 3px rgba(16,24,38,.18)!important;
}

/* Gleiche Höhe für die regulären Knöpfe einer Karte, auch wenn eine Zeile
   zweizeilig umbricht. Vorher standen Nachbarn unterschiedlich hoch. */
#twBoard49BubbleSectionPopup .tw-ui-inspector-section > div[style*="grid"]{
  align-items:stretch!important;
}
/* V598: die Vermaßung darf reine Symbolknöpfe (Pfeile im Zoom-Steuerkreuz
   u.ä.) nicht verzerren. .tw-x-btn-icon behält Nullpolsterung und ein
   quadratisches Format; alle übrigen Knöpfe bekommen einheitliche Höhe UND
   Innenabstand. Vorher erhielt JEDER Knopf pauschal Innenabstand, was die
   Symbolknöpfe aus ihrer vorgesehenen 40×40-Form drückte. */
#twBoard49BubbleSectionPopup button:not(.tw-ui-color-swatch):not(.tw-fn-overlay-v597):not([data-color]):not([data-focus-color]):not([data-saved-color]):not([data-swatch]):not([data-tw-btn-skip]){
  min-height:40px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  text-align:center!important;
  line-height:1.2!important;
  white-space:normal!important;
  overflow-wrap:anywhere;
}
#twBoard49BubbleSectionPopup button:not(.tw-ui-color-swatch):not(.tw-fn-overlay-v597):not(.tw-x-btn-icon):not([data-color]):not([data-focus-color]):not([data-saved-color]):not([data-swatch]):not([data-tw-btn-skip]){
  padding:8px 10px!important;
}
#twBoard49BubbleSectionPopup button.tw-x-btn-icon{
  padding:0!important;
  height:40px!important;
}

/* V597: dezentes Entfernen-Kreuz am Werkzeugrand - beim Darüberfahren
   deutlicher, damit es trotzdem sicher zu treffen ist. */
[data-tool-close-focus],[data-tool-close]{
  transition:opacity .12s ease, background .12s ease, color .12s ease;
}
[data-tool-close-focus]:hover,[data-tool-close]:hover,
[data-tool-close-focus]:focus-visible,[data-tool-close]:focus-visible{
  opacity:1!important;
  background:#d62828!important;
  color:#fff!important;
  border-color:#fff!important;
}

/* ===== V599: aktive Stiftfarbe in der unteren Leiste ===== */

/* URSACHE, warum der Fix aus V598 nicht wirken konnte: In
   teacherwidget-ui.css gibt es zwei Regeln der Form
   "#twBoard49PenFloatMenu.tw-ui-quickbar button { background:…!important;
   box-shadow:none!important }". Deren Spezifität (1 ID + 1 Klasse + 1 Typ)
   liegt ÜBER der reinen ID-Regel für den Farbknopf in modern-ui.css - bei
   beidseitigem !important gewinnt also die Sammelregel. Sie hat den Knopf
   auf die neutrale dunkle Bedienfläche gesetzt UND jeden Schatten
   abgeräumt, weshalb weder der Farbring noch der Farbverlauf je zu sehen
   waren. Diese Regel hier hat zwei IDs und sticht beide sauber aus.
   Zugleich ist das die ehrlichere Darstellung: Der Knopf zeigt jetzt die
   tatsächlich gewählte Farbe als Fläche, nicht bloß einen Regenbogenring,
   der immer gleich aussieht. */
#twBoard49PenFloatMenu.tw-ui-quickbar button#twBoard49PenFloatColorWheelBtn,
#twBoard49PenFloatMenu button#twBoard49PenFloatColorWheelBtn{
  width:30px!important;
  height:30px!important;
  min-width:30px!important;
  padding:0!important;
  border-radius:50%!important;
  border:3px solid #fff!important;
  background:var(--tw-pen-active-color,#111111)!important;
  background-color:var(--tw-pen-active-color,#111111)!important;
  background-image:none!important;
  box-shadow:0 0 0 1.5px rgba(16,24,38,.45),0 2px 7px rgba(0,0,0,.30)!important;
}
#twBoard49PenFloatMenu.tw-ui-quickbar button#twBoard49PenFloatColorWheelBtn:hover,
#twBoard49PenFloatMenu.tw-ui-quickbar button#twBoard49PenFloatColorWheelBtn:focus-visible{
  background:var(--tw-pen-active-color,#111111)!important;
  box-shadow:0 0 0 1.5px rgba(16,24,38,.45),0 0 0 4px rgba(255,255,255,.30),0 2px 9px rgba(0,0,0,.34)!important;
}

/* V601: Griffe, die auf einem Eckpunkt der Figur sitzen (Dreiecksspitze,
   Linienende, Kreisscheitel), werden als runder Punkt gezeichnet - die
   langen Kantenbalken der Box wären dort sachlich falsch. Etwas größer als
   die Randgriffe, weil sie frei auf der Tafel liegen und ohne Kante als
   Zielhilfe getroffen werden müssen. */
.tw-object-resize-handle[data-own-corner="1"]{opacity:.95}
.tw-object-resize-handle[data-own-corner="1"]::after{
  width:13px!important;
  height:13px!important;
  border-radius:50%!important;
  background:rgba(45,74,138,.95)!important;
  border:2px solid #fff!important;
  box-shadow:0 1px 5px rgba(20,49,91,.35)!important;
}

/* ===== V606: altes Menü in der linken Leiste =====

   Unterhalb der Werkzeugknöpfe standen die ORIGINAL-Abschnitte der früheren
   Werkzeugleiste (data-toolbar-section) weiterhin sichtbar - man sah sie,
   sobald man weit genug nach unten scrollte. Entfernen lassen sie sich
   nicht: Genau diese Abschnitte werden beim Antippen eines Knopfes in die
   Menükarte verschoben und danach wieder zurückgelegt. Sie SIND der Inhalt
   der Karten.
   Ausgeblendet wurden sie bisher nur, nachdem sie einmal geöffnet und wieder
   geschlossen worden waren (dabei setzt der Code display:none). Ein
   Abschnitt, den man noch nie geöffnet hatte, blieb sichtbar - daher der
   Eindruck einer alten, halb vorhandenen Menüversion.
   Diese Regel blendet sie in der Leiste grundsätzlich aus. Sobald ein
   Abschnitt in die Karte verschoben wird, liegt er nicht mehr innerhalb der
   Leiste - die Regel greift dort also nicht, und die Karte zeigt ihn normal. */
#twBoard49Toolbar.tw-ui-rail-mode [data-toolbar-section]{
  display:none!important;
}
/* In der klassischen kompletten Werkzeugleiste bleiben sie sichtbar - dort
   sind sie die eigentliche Bedienoberfläche. */
#twBoard49Toolbar.tw-ui-toolbar-full [data-toolbar-section]{
  display:block!important;
}

/* V608: Diktatknopf in der Textfeld-Leiste der Tafel - dieselbe Rückmeldung
   wie bei den Planungsfeldern, damit erkennbar ist, dass gerade aufgenommen
   wird. Die Leiste dort nutzt eigene Knöpfe, deshalb eine eigene Regel. */
#twBoard49ObjectLayer [data-obj-ui] button.is-recording{
  background:var(--tw-x-danger-soft,#fbeceb)!important;
  color:var(--tw-x-danger,#8f2013)!important;
  border-color:#eccbc7!important;
  animation:twRecPulse 1.3s infinite;
}

/* =====================================================================
   V611 · DUNKLES ERSCHEINUNGSBILD
   =====================================================================
   Offene Anforderung aus der Planung, jetzt umgesetzt.

   Ansatz: Das gesamte Erscheinungsbild hängt bereits an einem
   Token-System (--tw-x-*). Statt hunderte Einzelregeln zu überschreiben,
   werden nur diese Tokens neu belegt - alles, was sie benutzt, zieht
   automatisch mit. Das ist der einzige Weg, der bei rund 2.500 Regeln
   nicht in Flickwerk endet.

   Drei Zustände, umgeschaltet über data-theme am <html>:
     (kein Attribut) = Automatik, folgt dem Gerät
     data-theme="light" = dauerhaft hell
     data-theme="dark"  = dauerhaft dunkel

   Bewusste Entscheidungen:
   - Die TAFELFLÄCHE selbst bleibt hell. Sie ist Papier, keine Bedien-
     oberfläche; Handschrift, Lineatur und eingefügte Bilder sind auf
     hellen Grund gerechnet. Ein dunkles Tafelbild wäre ein eigenes
     Feature, kein Nebeneffekt des Bedienthemas.
   - Flächen werden nicht schwarz, sondern bläulich-grau abgestuft. Reines
     Schwarz lässt Kanten verschwinden und flimmert auf OLED beim Scrollen.
   - Der Blauton wird aufgehellt. Das Dunkelblau der hellen Ansicht hat auf
     dunklem Grund zu wenig Kontrast.
   - Signalfarben behalten ihre Bedeutung, werden aber entsättigt - sonst
     leuchten Rot und Grün auf dunklem Grund unangenehm.
   ===================================================================== */

:root[data-theme="dark"]{
  color-scheme:dark;

  /* Flächen: vier Stufen, damit Karten auf Hintergrund und Leisten auf
     Karten erkennbar bleiben, ohne Rahmen zu brauchen. */
  --tw-x-bg:#0f151f;
  --tw-x-surface:#18202d;
  --tw-x-surface-2:#1e2735;
  --tw-x-surface-3:#26303f;

  --tw-x-line:#2b3646;
  --tw-x-line-strong:#3a4759;

  /* Schrift: nicht reinweiß - das blendet auf dunklem Grund. */
  --tw-x-text:#e7ecf4;
  --tw-x-muted:#9dabc0;
  /* V621.2: #71809a lag auf der Flaeche bei 4,1:1, im Browser gemessen -
     knapp unter 4,5. Traegt u. a. die Tage des Nachbarmonats. */
  --tw-x-faint:#8792a6;

  --tw-x-accent:#6f9ce0;
  --tw-x-accent-hover:#87b0ec;
  --tw-x-accent-soft:#1c2941;
  --tw-x-accent-line:#35507d;
  --tw-x-accent-bright:#8fb6f0;

  --tw-x-danger:#f08a7d;
  --tw-x-danger-soft:#33201e;
  --tw-x-warn:#e0b467;
  --tw-x-ok:#69c093;
  /* V621: Die beiden gedaempften Signalflaechen fehlten. Ohne sie landeten
     gruen und gelb hinterlegte Felder im Dunkeln auf einer Ersatzfarbe. */
  --tw-x-warn-soft:#332a18;
  --tw-x-ok-soft:#1a3026;
  /* V621: Diese beiden definiert modern-ui.css fest hell und theme-v582.css
     biegt sie NICHT auf die Palette um - sie blieben deshalb leuchtend. */
  --tw-ui-green-soft:#1a3026;
  --tw-ui-purple:#a98bf0;

  /* Die dunklen Leisten heben sich jetzt nach OBEN ab, nicht nach unten -
     sonst verschwänden sie im dunklen Hintergrund. */
  --tw-x-ink-900:#1b2331;
  --tw-x-ink-800:#222c3c;
  --tw-x-ink-700:#2a3547;
  --tw-x-ink-600:#354158;
  --tw-x-on-ink:#e7ecf4;

  /* Schatten wirken auf dunklem Grund kaum; dafür mehr Tiefe. */
  --tw-x-shadow-1:0 1px 2px rgba(0,0,0,.40);
  --tw-x-shadow-2:0 4px 14px rgba(0,0,0,.45);
  --tw-x-shadow-3:0 10px 30px rgba(0,0,0,.50);
  --tw-ui-shadow-float:0 16px 44px rgba(0,0,0,.55),0 2px 8px rgba(0,0,0,.35);
}

/* V621: Hier stand eine wortgleiche Kopie des Blocks oben, eingefasst in
   @media (prefers-color-scheme:dark) fuer den Automatikmodus. Sie ist
   entfallen.

   Grund: Die Kopie belegte im Automatikmodus zwar die Tokens neu, aber
   saemtliche Nachzugsregeln fuer fest eingetragene helle Farben haengen an
   html[data-theme="dark"] - und genau dieses Attribut setzte die Automatik
   nicht. Helle Schrift traf auf weisse Flaeche.

   Seit V621 loest ui-theme-v611.js die Automatik selbst auf und setzt das
   Attribut immer. Damit gibt es nur noch EINEN dunklen Zweig, der nicht mehr
   aus dem Tritt geraten kann. Nebenwirkung mit Absicht: Faellt das Skript
   aus, bleibt die Oberflaeche vollstaendig hell statt halb umgestellt. */

/* ---------------------------------------------------------------------
   V611 · Nachzug für Stellen mit fest eingetragenen Farben

   Über Jahre gewachsener Code enthält viele Inline-Stile mit festem Weiß.
   Sie ziehen bei einem Tokenwechsel nicht mit. Statt hunderte Einzelfälle
   zu jagen, greifen hier gezielte Regeln für die großen Flächen. Die
   Auswahl ist bewusst eng gehalten - pauschale Regeln auf "alles mit
   weißem Hintergrund" würden auch Farbfelder und Tafelinhalte treffen.
   --------------------------------------------------------------------- */
/* V621: Hier stand eine leere Regel ohne Wirkung. Entfernt. */

html[data-theme="dark"] body,
html[data-theme="dark"] #twPBModal{
  background:var(--tw-x-bg)!important;
  color:var(--tw-x-text);
}

/* Karten, Abschnitte und Dialoge des Planers, Kalenders und
   Klassenmanagers. Sie sind im Quelltext mit "background:#fff" inline
   ausgezeichnet - dieser Selektor fängt genau diese Fälle ab. */
html[data-theme="dark"] #twPBModal div[style*="background:#fff"],
html[data-theme="dark"] #twPBModal div[style*="background: #fff"],
html[data-theme="dark"] #twPBModal div[style*="background:#ffffff"],
html[data-theme="dark"] #twPBModal section[style*="background:#fff"],
html[data-theme="dark"] .tw-calendar-view div[style*="background:#fff"]{
  background:var(--tw-x-surface)!important;
  border-color:var(--tw-x-line)!important;
  color:var(--tw-x-text)!important;
}

/* Eingabefelder: heller Grund wäre auf dunkler Oberfläche ein Blitzer. */
html[data-theme="dark"] #twPBModal input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]),
html[data-theme="dark"] #twPBModal select,
html[data-theme="dark"] #twPBModal textarea,
html[data-theme="dark"] .tw-tb-window input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]),
html[data-theme="dark"] .tw-tb-window select,
html[data-theme="dark"] .tw-tb-window textarea{
  background:var(--tw-x-surface-2)!important;
  color:var(--tw-x-text)!important;
  border-color:var(--tw-x-line-strong)!important;
}
html[data-theme="dark"] #twPBModal input::placeholder,
html[data-theme="dark"] #twPBModal textarea::placeholder{ color:var(--tw-x-faint)!important }

/* Werkzeugkoffer: eigenes Papierfarbschema, das hier nicht passt. */
html[data-theme="dark"] .tw-tb-window{
  background:var(--tw-x-surface)!important;
  border-color:var(--tw-x-line-strong)!important;
  color:var(--tw-x-text);
}
html[data-theme="dark"] .tw-tb-nav{
  background:var(--tw-x-surface-2)!important;
  border-color:var(--tw-x-line)!important;
}
html[data-theme="dark"] .tw-tb-content{ color:var(--tw-x-text) }

/* Menükarten verwenden die persönliche Menüpalette in menu-chrome.css. */
html[data-theme="dark"] #twBoard49Toolbar.tw-ui-rail-mode{
  background:rgba(24,32,45,.72)!important;
  border-color:var(--tw-x-line)!important;
}

/* WICHTIG: Die Tafelfläche selbst bleibt unverändert hell. Handschrift,
   Lineatur und eingefügte Bilder sind auf hellen Grund gerechnet. */
html[data-theme="dark"] #twBoard49Stage,
html[data-theme="dark"] #twBoard49DrawCanvas,
html[data-theme="dark"] #twBoard49PreviewCanvas,
html[data-theme="dark"] #twBoard49BgCanvas{
  filter:none!important;
}

/* Bilder und Handschrift dürfen nie eingefärbt werden. */
html[data-theme="dark"] img,
html[data-theme="dark"] canvas,
html[data-theme="dark"] svg image{ filter:none!important }

/* =====================================================================
   V611 · Mehrfachauswahl im Planer
   ===================================================================== */
.tw-plan-selecttoggle-v611{display:flex;justify-content:flex-end;margin:0 0 10px}
.tw-plan-selectable-v611{
  position:relative;
  padding-left:44px!important;
  cursor:pointer;
  transition:background .12s ease,border-color .12s ease;
}
.tw-plan-selbox-v611{
  position:absolute;left:13px;top:50%;transform:translateY(-50%);
  width:22px;height:22px;border-radius:6px;
  border:2px solid var(--tw-x-line-strong);background:var(--tw-x-surface);
  pointer-events:none;
}
.tw-plan-selectable-v611.is-selected-v611{
  background:var(--tw-x-accent-soft)!important;
  border-color:var(--tw-x-accent-line)!important;
}
.tw-plan-selectable-v611.is-selected-v611 .tw-plan-selbox-v611{
  background:var(--tw-x-accent);border-color:var(--tw-x-accent);
}
/* Das Häkchen als reines CSS-Zeichen, damit keine Grafik nachgeladen wird. */
.tw-plan-selectable-v611.is-selected-v611 .tw-plan-selbox-v611::after{
  content:"";position:absolute;left:6px;top:2px;width:6px;height:11px;
  border:solid #fff;border-width:0 2.5px 2.5px 0;transform:rotate(42deg);
}
/* Die Aktionsleiste bleibt beim Scrollen am unteren Rand stehen - bei
   dreißig Zeilen sonst nicht erreichbar, ohne ganz nach unten zu scrollen. */
.tw-plan-bulkbar-v611{
  position:sticky;bottom:0;z-index:20;
  display:flex;align-items:center;gap:8px;flex-wrap:wrap;
  margin-top:12px;padding:11px 13px;
  background:var(--tw-x-surface);
  border:1px solid var(--tw-x-line-strong);
  border-radius:14px;
  box-shadow:var(--tw-ui-shadow-float);
}
.tw-plan-bulkbar-count-v611{font-weight:800;margin-right:auto;color:var(--tw-x-text)}
.tw-plan-bulkbar-v611 .tw-btn{min-height:40px}
.tw-plan-bulkbar-v611 .tw-btn:disabled{opacity:.45;cursor:not-allowed}
.tw-btn-danger{background:var(--tw-x-danger-soft);color:var(--tw-x-danger);border:1px solid #eccbc7}

/* V611: Bewegungen zurücknehmen, wenn das Gerät darum bittet. Für
   Menschen mit vestibulärer Empfindlichkeit sind gleitende Übergänge
   unangenehm; die Funktion bleibt vollständig erhalten. */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation-duration:.001ms!important;
    animation-iteration-count:1!important;
    transition-duration:.001ms!important;
    scroll-behavior:auto!important;
  }
}

/* =====================================================================
   V612 · Stunde duplizieren + Tastaturkürzel-Übersicht
   ===================================================================== */
.tw-dup-back-v612,.tw-keys-back-v612{
  position:fixed;inset:0;z-index:2147483639;
  background:rgba(12,18,28,.62);
  display:flex;align-items:center;justify-content:center;
  padding:16px;box-sizing:border-box;
}
.tw-dup-box-v612,.tw-keys-box-v612{
  width:min(540px,100%);max-height:calc(100dvh - 32px);overflow:auto;
  background:var(--tw-x-surface);color:var(--tw-x-text);
  border-radius:20px;box-sizing:border-box;
  box-shadow:0 26px 70px rgba(10,18,32,.42);
  border:1px solid var(--tw-x-line);
}
.tw-keys-box-v612{width:min(720px,100%)}
.tw-dup-box-v612 header,.tw-keys-box-v612 header{
  padding:18px 20px 12px;border-bottom:1px solid var(--tw-x-line);
  display:flex;flex-direction:column;gap:3px;
}
.tw-dup-box-v612 header b,.tw-keys-box-v612 header b{font-size:19px}
.tw-dup-box-v612 header span,.tw-keys-box-v612 header span{font-size:13px;color:var(--tw-x-muted)}
.tw-dup-form-v612{display:grid;gap:11px;padding:16px 20px}
.tw-dup-form-v612 label{display:grid;gap:5px}
.tw-dup-form-v612 label>span{font-size:13px;font-weight:700;color:var(--tw-x-muted)}
.tw-dup-form-v612 input[type=text],
.tw-dup-form-v612 input:not([type]),
.tw-dup-form-v612 input[type=date]{
  width:100%;box-sizing:border-box;border:1px solid var(--tw-x-line-strong);
  border-radius:12px;padding:11px 12px;font-size:16px;
  background:var(--tw-x-surface-2);color:var(--tw-x-text);
}
.tw-dup-check-v612{display:flex!important;flex-direction:row;align-items:center;gap:9px;
  background:var(--tw-x-accent-soft);border:1px solid var(--tw-x-accent-line);
  border-radius:12px;padding:10px 12px;font-weight:700}
.tw-dup-check-v612 input{width:20px;height:20px;flex:0 0 auto}
.tw-dup-hint-v612{margin:2px 0 0;font-size:12.5px;color:var(--tw-x-muted);line-height:1.5}
.tw-dup-box-v612 footer,.tw-keys-box-v612 footer{
  display:flex;gap:9px;justify-content:flex-end;flex-wrap:wrap;
  padding:14px 20px 18px;border-top:1px solid var(--tw-x-line);
}

.tw-keys-cols-v612{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));
  gap:8px 22px;padding:16px 20px}
.tw-keys-cols-v612 h4{margin:0 0 6px;font-size:12px;text-transform:uppercase;
  letter-spacing:.06em;color:var(--tw-x-muted)}
.tw-keys-cols-v612 dl{margin:0 0 14px;display:grid;grid-template-columns:auto 1fr;
  gap:6px 12px;align-items:center}
.tw-keys-cols-v612 dt{display:flex;gap:3px}
.tw-keys-cols-v612 dd{margin:0;font-size:14px}
.tw-keys-cols-v612 kbd{
  background:var(--tw-x-surface-3);border:1px solid var(--tw-x-line-strong);
  border-bottom-width:2px;border-radius:6px;padding:2px 7px;
  font:700 12px/1.5 ui-monospace,monospace;color:var(--tw-x-text);
  min-width:22px;text-align:center;display:inline-block;
}

/* ===== V617: Nicht zugeordnete Tafeln ===== */
.tw-plan-content-sectionhead{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
#twPBOrphanBtnV617{min-height:34px;font-size:13px;white-space:nowrap}
.tw-orphan-back-v617{
  position:fixed;inset:0;z-index:2147483639;background:rgba(12,18,28,.62);
  display:flex;align-items:center;justify-content:center;padding:16px;box-sizing:border-box;
}
.tw-orphan-box-v617{
  width:min(640px,100%);max-height:calc(100dvh - 32px);overflow:auto;
  background:var(--tw-x-surface);color:var(--tw-x-text);
  border:1px solid var(--tw-x-line);border-radius:20px;box-sizing:border-box;
  box-shadow:0 26px 70px rgba(10,18,32,.42);
}
.tw-orphan-box-v617 header{padding:18px 20px 12px;border-bottom:1px solid var(--tw-x-line);
  display:flex;flex-direction:column;gap:4px}
.tw-orphan-box-v617 header b{font-size:19px}
.tw-orphan-box-v617 header span{font-size:13px;color:var(--tw-x-muted);line-height:1.5}
.tw-orphan-list-v617{list-style:none;margin:0;padding:8px 14px}
.tw-orphan-list-v617 li{
  display:flex;align-items:center;gap:10px;flex-wrap:wrap;
  padding:11px 8px;border-bottom:1px solid var(--tw-x-line);
}
.tw-orphan-list-v617 li:last-child{border-bottom:0}
.tw-orphan-info-v617{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1 1 220px}
.tw-orphan-info-v617 b{font-size:15px;overflow-wrap:anywhere}
.tw-orphan-info-v617 small{font-size:12.5px;color:var(--tw-x-muted)}
.tw-orphan-actions-v617{display:flex;gap:7px;flex:0 0 auto}
.tw-orphan-actions-v617 .tw-x-btn{min-height:36px;border-radius:10px;padding:0 13px;
  font-size:13px;font-weight:800;border:1px solid var(--tw-x-line-strong);cursor:pointer}
.tw-orphan-actions-v617 .tw-x-btn-primary{background:var(--tw-x-accent);color:#fff;border-color:var(--tw-x-accent)}
.tw-orphan-actions-v617 .tw-x-btn-quiet{background:var(--tw-x-surface-2);color:var(--tw-x-text)}
.tw-orphan-box-v617 footer{display:flex;justify-content:flex-end;padding:14px 20px 18px;
  border-top:1px solid var(--tw-x-line)}

/* V618: Papierkorb-Abschnitt im Dialog */
.tw-orphan-trash-v618{border-top:1px solid var(--tw-x-line);margin-top:6px;padding:14px 20px 0}
.tw-orphan-trash-v618 h4{margin:0 0 3px;font-size:13px;text-transform:uppercase;
  letter-spacing:.06em;color:var(--tw-x-muted)}
.tw-orphan-trash-v618 p{margin:0 0 6px;font-size:12.5px;color:var(--tw-x-muted)}
.tw-orphan-trash-v618 .tw-orphan-list-v617{padding:0}


/* V622.68 – CRISP TYPOGRAPHY
   Keine erzwungene Graustufen-Antialiasing-Schicht mehr. Auf Chromium/WebKit
   wirkte die globale Vorgabe "-webkit-font-smoothing: antialiased" besonders
   auf Touch-/HiDPI-Geräten sichtbar weicher. Der Browser darf wieder seine
   native, zum Display passende Text-Rasterung wählen.
   WICHTIG: Keine Geometrie-, Zoom- oder Transform-Regel wird hier verändert. */
html,body,button,input,select,textarea,[contenteditable="true"]{
  -webkit-font-smoothing:auto;
  -moz-osx-font-smoothing:auto;
  text-rendering:auto;
}
#twBoard49Stage,
#twBoard49Stage button,
#twBoard49Stage input,
#twBoard49Stage select,
#twBoard49Stage textarea,
#twBoard49Stage [contenteditable="true"]{
  -webkit-font-smoothing:auto;
  text-rendering:auto;
}
