/* EST-Planer v45 – einheitliche Oberfläche Admin / Lehrkräfte.
   Schullogo bleibt original; Farben zentral anpassbar.
   Bewusst als letzte CSS-Datei geladen, um ältere Versionsstile zu überschreiben. */
:root {
  --est-green-950:#153e32;
  --est-green-900:#205440;
  --est-green-800:#2c614d;
  --est-green-700:#356f55;
  --est-green-100:#e5f0e8;
  --est-green-50:#f3f8f4;
  --est-wine:#71344b;
  --est-wine-dark:#57253a;
  --est-wine-pale:#f8edf1;
  --est-ink:#1c2b29;
  --est-subtle:#4d625c;
  --est-line:#d6e1d9;
  --est-canvas:#f3f6f3;
  --est-paper:#fff;
  --est-warn:#845608;
  --est-warn-bg:#fff7e7;
  --est-danger:#a12f3b;
  --est-danger-bg:#fff1f2;
  --est-ok:#205a3d;
  --est-ok-bg:#eaf5ed;
  --est-shadow:0 12px 38px rgba(21,56,40,.07),0 2px 7px rgba(21,56,40,.035);
  --est-radius:14px;
  font-size:18px;
  color-scheme:light;
}
*, *::before, *::after {box-sizing:border-box}
html {scroll-behavior:smooth; scroll-padding-top:6rem}
body {margin:0; min-height:100vh; background:var(--est-canvas); color:var(--est-ink); font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif; line-height:1.55; -webkit-font-smoothing:antialiased}
::selection {background:#c7e4d2; color:var(--est-ink)}
a {color:var(--est-green-800); text-underline-offset:3px}
a:hover {color:var(--est-wine)}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible {outline:3px solid var(--est-wine)!important;outline-offset:3px}
button,input,textarea,select {font:inherit}
button,input[type="submit"],input[type="button"],a.button {transition:background .14s ease,border-color .14s ease,box-shadow .14s ease,transform .14s ease; min-height:44px; border-radius:9px; font-weight:650; text-decoration:none; vertical-align:middle}
button,input[type="submit"],input[type="button"] {background:var(--est-green-800); border:1px solid var(--est-green-800); color:white; padding:.53rem .9rem; cursor:pointer; margin:.15rem .12rem .15rem 0; box-shadow:0 2px 4px rgba(28,75,52,.09)}
button:hover,input[type="submit"]:hover,input[type="button"]:hover {background:var(--est-green-950);border-color:var(--est-green-950); color:#fff}
button:active,input[type="submit"]:active,a.button:active {transform:translateY(1px)}
button:disabled,input[type="submit"]:disabled,input[type="button"]:disabled {opacity:.48;cursor:not-allowed;box-shadow:none;transform:none}
a.button {display:inline-flex;align-items:center;justify-content:center;gap:.4rem;margin:.15rem .15rem .15rem 0;padding:.53rem .86rem;background:#fff;color:var(--est-green-900);border:1px solid #a4beb0}
a.button:hover {background:var(--est-green-50);border-color:var(--est-green-800);color:var(--est-green-950)}
a.button.primary,button.primary,button.button.primary,input.primary[type="submit"] {background:var(--est-green-800);color:#fff;border-color:var(--est-green-800);font-weight:750}
a.button.primary:hover,button.primary:hover,button.button.primary:hover {background:var(--est-green-950);border-color:var(--est-green-950)}
a.button.danger,button.danger,input.danger[type="submit"] {color:var(--est-danger);background:#fff;border:1px solid var(--est-danger);font-weight:700}
a.button.danger:hover,button.danger:hover,input.danger[type="submit"]:hover {color:#fff;background:var(--est-danger)}
label {display:block;margin-top:.75rem;font-weight:650;color:var(--est-ink)}
input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="submit"]):not([type="button"]),select,textarea {max-width:100%;min-height:44px;border:1.5px solid #bdccc2;border-radius:9px;padding:.57rem .68rem;background:#fff;color:var(--est-ink);box-shadow:0 1px 2px rgba(0,0,0,.025)}
input[type="file"] {max-width:100%;background:#f8faf8!important}
input:disabled,textarea:disabled,select:disabled {background:#ecf0ed;color:#68766c;cursor:not-allowed}
input[type="checkbox"],input[type="radio"] {width:1.17rem;height:1.17rem;accent-color:var(--est-green-800);cursor:pointer;vertical-align:middle}
textarea {width:min(100%,48rem);min-height:7rem;resize:vertical}
select {background-color:#fff}
small,.muted,.hint {color:var(--est-subtle)}
.muted,.hint {line-height:1.48}
.lead {color:var(--est-subtle);font-size:1.06rem;line-height:1.58;max-width:68ch}
h1,h2,h3 {line-height:1.25;letter-spacing:-.025em;color:var(--est-green-950)}
h1 {font-size:clamp(1.65rem,3vw,2.16rem); margin:0}
h2 {font-size:1.35rem; margin:1.35rem 0 .65rem}
h3 {font-size:1.08rem; margin:1.1rem 0 .55rem}
hr {border:0;border-top:1px solid var(--est-line);margin:1.6rem 0}
code {background:#eaf1eb;padding:.1rem .28rem;border-radius:4px;overflow-wrap:anywhere}
/* Header */
.site-header {background:var(--est-green-950);color:#fff;padding:0;border:0;box-shadow:0 4px 16px rgba(12,49,34,.10)}
.site-header-inner {max-width:1460px;margin:auto;padding:.85rem clamp(1rem,3.2vw,2rem);display:flex;gap:1rem;align-items:center;justify-content:space-between}
.site-brand {display:inline-flex;align-items:center;gap:.85rem;color:white;text-decoration:none;min-width:0}
.site-brand:hover {color:#fff}
.site-brand-logo {width:59px;height:59px;object-fit:contain;padding:5px;background:#fff;border-radius:50%;border:2px solid #dbe7d8;flex-shrink:0;box-shadow:0 0 0 3px rgba(255,255,255,.10)}
.site-brand-copy {min-width:0;display:flex;flex-direction:column;line-height:1.25}
.site-brand-name {font-weight:800;font-size:clamp(1.02rem,2vw,1.22rem);letter-spacing:-.02em}
.site-brand-subtitle {font-size:.83rem;color:#d3e8da;margin-top:.25rem}
.site-header-actions {display:flex;align-items:center;gap:.65rem;flex-wrap:wrap;justify-content:flex-end}
.site-user-role {padding:.29rem .62rem;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.18);border-radius:20px;color:#eef6ee;font-size:.81rem;font-weight:650;white-space:nowrap}
.site-logout {display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:.28rem .75rem;color:#fff!important;border:1px solid rgba(255,255,255,.5);border-radius:9px;text-decoration:none;font-weight:700;font-size:.88rem;margin:0}
.site-logout:hover {background:rgba(255,255,255,.13);color:#fff!important}
.skip-link {position:fixed;top:-100px;left:12px;z-index:3000;background:#fff;color:var(--est-green-950);padding:.6rem 1rem;border:3px solid var(--est-wine);border-radius:8px}
.skip-link:focus {top:10px}
/* Main canvas */
main.est-main {width:calc(100% - 2rem);max-width:1370px;min-height:50vh;margin:1.45rem auto 2.8rem;padding:clamp(1.2rem,2.8vw,2.4rem);background:var(--est-paper);border:1px solid var(--est-line);border-radius:var(--est-radius);box-shadow:var(--est-shadow);overflow:visible}
body.est-role-teacher main.est-main {max-width:1240px}
body.est-role-guest main.est-main {max-width:580px;min-height:unset;margin-top:3rem}
.est-page-intro {margin:0 0 1.65rem;padding:0 0 1.15rem;border-bottom:1px solid var(--est-line);position:relative}
.est-page-intro::after {content:"";position:absolute;left:0;bottom:-2px;width:72px;height:3px;border-radius:3px;background:var(--est-wine)}
.est-eyebrow {display:block;margin-bottom:.38rem;color:var(--est-green-700);font-weight:750;font-size:.78rem;letter-spacing:.075em;text-transform:uppercase}
body.est-role-guest .est-eyebrow {color:var(--est-wine)}
.est-site-footer {text-align:center;padding:.2rem 1rem 2rem;color:var(--est-subtle);font-size:.8rem}
/* Main menu – admin; preserve v44 popup behaviour */
.est-admin-nav-items {display:flex;align-items:center;flex-wrap:wrap;gap:.42rem;width:100%}
.est-admin-mobile-trigger {display:none}

body .admin-menu-v44 {background:#fff;border:0;border-bottom:1px solid var(--est-line);padding:.6rem max(1rem,calc((100% - 1365px)/2));gap:.42rem;box-shadow:0 4px 13px rgba(18,57,37,.035)}
body .admin-menu-home,body .admin-menu-trigger {min-height:43px;color:var(--est-green-950)!important;background:transparent;border:1px solid transparent;border-radius:9px;box-shadow:none;font-size:.88rem;font-weight:700;padding:.52rem .7rem}
body .admin-menu-trigger:hover,body .admin-menu-home:hover {background:var(--est-green-50);border-color:var(--est-line);color:var(--est-green-950)!important}
body .admin-menu-home.active,body .admin-menu-section.active-group>.admin-menu-trigger,body .admin-menu-section.open>.admin-menu-trigger {background:var(--est-green-900);border-color:var(--est-green-900);color:#fff!important}
body .admin-menu-section.open>.admin-menu-trigger:hover {background:var(--est-green-950)}
body .admin-menu-panel {border:1px solid var(--est-line);border-top:3px solid var(--est-green-700);border-radius:12px;padding:.45rem;background:#fff;box-shadow:0 18px 38px rgba(15,52,37,.18)}
body .admin-menu-panel a {border-radius:8px;color:var(--est-ink)!important;font-size:.88rem;font-weight:550;padding:.67rem .75rem}
body .admin-menu-panel a:hover,body .admin-menu-panel a:focus-visible {background:var(--est-green-50);color:var(--est-green-900)!important}
body .admin-menu-panel a.active {background:var(--est-green-100);box-shadow:inset 3px 0 0 var(--est-green-700);color:var(--est-green-950)!important}
/* Teacher navigation */
body .teacher-menu {position:sticky;top:0;z-index:200;display:flex;gap:.4rem;align-items:center;flex-wrap:wrap;padding:.6rem max(1rem,calc((100% - 1230px)/2));border-bottom:1px solid var(--est-line);background:#fff;box-shadow:0 4px 13px rgba(18,57,37,.04)}
body .teacher-menu a {display:inline-flex;justify-content:center;align-items:center;min-height:43px;margin:0;padding:.46rem .85rem;border:1px solid transparent;border-radius:9px;background:transparent;color:var(--est-green-950);font-weight:700;font-size:.92rem;text-decoration:none}
body .teacher-menu a:hover,body .teacher-menu a:focus-visible {background:var(--est-green-50);border-color:var(--est-line);color:var(--est-green-950)}
body .teacher-menu a.active,body .teacher-menu a[aria-current="page"] {background:var(--est-green-900);color:#fff;border-color:var(--est-green-900)}
/* Panels, information and statuses */
.card, .admin-card,.reset-card {background:#fff;border:1px solid var(--est-line);border-radius:var(--est-radius);padding:1.15rem 1.25rem;margin:1rem 0;box-shadow:0 2px 7px rgba(20,61,44,.035)}
.card h2:first-child,.admin-card h2:first-child {margin-top:0}
.notice,.est-state {padding:.85rem 1.05rem;border:1px solid #bcd3c3;border-left:5px solid var(--est-green-700);border-radius:10px;background:var(--est-green-50);margin:1rem 0;color:var(--est-ink);line-height:1.48}
.notice.error,.notice.danger,.est-state-warning {border-color:#ecd0bd;border-left-color:var(--est-wine);background:var(--est-warn-bg);color:#4b372b}
.est-state-ok {border-color:#bcdac4;border-left-color:var(--est-ok);background:var(--est-ok-bg)}
.notice a {font-weight:750}
/* Responsive table container: scrolling stays local to the table, not to the entire
   page. In particular, sticky save controls continue to follow the viewport. */
.est-table-scroll {width:100%;max-width:100%;overflow-x:auto;overscroll-behavior-x:contain;margin:1rem 0 1.2rem;border-radius:11px}
.est-table-scroll:focus-visible {outline:3px solid var(--est-wine);outline-offset:2px}
.est-table-scroll table {margin:0}
/* Data dense tables */
table {width:100%;margin:1rem 0 1.2rem;border-collapse:separate;border-spacing:0;border:1px solid var(--est-line);border-radius:11px;background:#fff;overflow:hidden;font-size:.88rem;line-height:1.43}
th,td {padding:.72rem .67rem;border:none;border-bottom:1px solid #e5ebe7;text-align:left;vertical-align:middle}
th {font-size:.78rem;letter-spacing:.015em;font-weight:800;background:#e9f1eb;color:var(--est-green-950)}
tr:last-child > td {border-bottom:0}
tbody tr:nth-child(even) {background:#f8faf8}
tbody tr:hover {background:#f0f6f1}
td label,th label {margin-top:0}
td button,td a.button {min-height:38px;padding:.35rem .57rem;font-size:.84rem}
/* v44 dashboard */
.est-stat-grid {gap:1rem; margin:1.25rem 0 1.6rem}
.est-stat-card {background:linear-gradient(145deg,#fff,var(--est-green-50));border:1px solid var(--est-line);border-radius:14px;padding:1.25rem 1.1rem;box-shadow:0 3px 10px rgba(23,68,47,.035);min-height:125px;position:relative;overflow:hidden}
.est-stat-card::before {content:"";position:absolute;inset:0 auto 0 0;width:4px;background:var(--est-green-700)}
.est-stat-card:nth-child(4)::before {background:var(--est-wine)}
.est-stat-card strong {font-size:clamp(1.8rem,2.6vw,2.35rem);color:var(--est-green-950);font-weight:820}
.est-stat-card span {color:var(--est-subtle);font-size:.84rem;font-weight:650}
.est-state {border-width:1px;border-left-width:5px;border-radius:12px;padding:1.15rem 1.25rem}
.est-action-grid {gap:.95rem}
.est-action {border:1px solid var(--est-line);border-radius:13px;background:#fff;color:var(--est-ink);padding:1.15rem;box-shadow:0 2px 8px rgba(15,55,38,.035);text-decoration:none;position:relative}
.est-action::after {content:"↗";position:absolute;right:.95rem;top:.75rem;font-size:1.15rem;color:var(--est-wine)}
.est-action strong {color:var(--est-green-900);text-decoration:none;font-size:1.02rem;padding-right:1rem}
.est-action span {color:var(--est-subtle)}
.est-action:hover,.est-action:focus-visible {background:var(--est-green-50);border-color:#9bbba6;box-shadow:0 8px 17px rgba(25,72,49,.09);transform:translateY(-1px)}
/* Email tabs (keep tab JS and aria semantics intact) */
.est-email-tabs {gap:.35rem;padding:.4rem;border:1px solid var(--est-line);border-radius:11px;background:#f2f6f2;margin:1.2rem 0 .7rem}
.est-email-tabs button {margin:0;background:transparent;border:1px solid transparent;box-shadow:none;color:var(--est-green-950);border-radius:8px;font-weight:700;font-size:.85rem;min-height:42px}
.est-email-tabs button:hover {color:var(--est-green-950);background:#e3efe5;border-color:transparent}
.est-email-tabs button[aria-selected="true"] {background:var(--est-green-900);color:#fff;border-color:var(--est-green-900);box-shadow:0 2px 7px rgba(13,55,34,.12)}
.est-email-tabs button[aria-selected="true"]:hover {background:var(--est-green-950);color:#fff}
/* Teacher cards / student selection / sticky save */
body.est-role-teacher .teacher-class-grid {gap:1rem;margin:1.25rem 0}
body.est-role-teacher .teacher-class-card {position:relative;border:1px solid var(--est-line);border-left:5px solid var(--est-green-700);border-radius:12px;padding:1.15rem 1.25rem;color:var(--est-green-950);background:linear-gradient(105deg,#f7faf7,#fff);box-shadow:0 3px 12px rgba(16,58,41,.045)}
body.est-role-teacher .teacher-class-card::after {content:"→";position:absolute;right:1.1rem;top:1rem;color:var(--est-wine);font-size:1.2rem}
body.est-role-teacher .teacher-class-card:hover,body.est-role-teacher .teacher-class-card:focus-visible {border-color:var(--est-green-700);background:var(--est-green-50);transform:translateY(-2px);box-shadow:0 10px 20px rgba(19,63,39,.1)}
body.est-role-teacher .teacher-class-name {font-size:1.14rem;font-weight:820;color:var(--est-green-950);padding-right:1.4rem}
body.est-role-teacher .teacher-class-subjects {color:var(--est-subtle);font-size:.9rem}
body.est-role-teacher .teacher-help {background:var(--est-green-50)}
body.est-role-teacher .own-subject-box {padding:.85rem 1rem;border-left:5px solid var(--est-green-700);border-radius:8px;background:var(--est-green-50);color:var(--est-green-950)}
body.est-role-teacher .colleague-picker summary {background:#fff;color:var(--est-green-950);border:1px solid #9bbba6;padding:.46rem .7rem;min-height:42px;border-radius:8px;font-size:.84rem}
body.est-role-teacher .colleague-picker summary:hover {background:var(--est-green-50)}
body.est-role-teacher .colleague-picker[open] {background:#f8faf8;padding:.55rem;border:1px solid var(--est-line);border-radius:9px}
body.est-role-teacher .inline-check {font-weight:500;padding:.38rem .3rem}
body.est-role-teacher .colleague-live-status {color:var(--est-green-900);font-size:.85rem}
body.est-role-teacher .duration-select {min-width:8rem}
body.est-role-teacher .save-bar {position:sticky;bottom:0;z-index:90;padding:.85rem 1rem;border:1px solid #9bc4a8;border-left:5px solid var(--est-green-700);border-radius:12px;background:#f1f8f2;box-shadow:0 -5px 26px rgba(17,58,37,.15);color:var(--est-green-950);backdrop-filter:blur(10px)}
body.est-role-teacher .save-bar.saved {background:var(--est-ok-bg);border-color:#b2d4bd;border-left-color:var(--est-ok)}
body.est-role-teacher .save-bar.dirty {background:var(--est-warn-bg);border-color:#ecd7aa;border-left-color:var(--est-wine)}
body.est-role-teacher .save-bar .save-button {background:var(--est-green-800);border-color:var(--est-green-800);min-height:46px;font-weight:800;padding:.6rem 1rem}
body.est-role-teacher .save-bar .save-button:hover {background:var(--est-green-950);border-color:var(--est-green-950)}
body.est-role-teacher .save-bar.dirty .save-button {background:var(--est-wine);border-color:var(--est-wine)}
body.est-role-teacher .save-bar.dirty .save-button:hover {background:var(--est-wine-dark);border-color:var(--est-wine-dark)}
/* Legacy forms / manual appointment / sensitive buttons */
.est-manual-grid {gap:1rem}
.est-manual-grid select {width:100%}
body .reset-card.teacher-reset {background:var(--est-warn-bg);border-color:#ebd6ac}
body .reset-card.full-reset {background:var(--est-danger-bg);border-color:#e5b8be}
/* small-screen layout */
@media(max-width:900px) {
  :root {font-size:17px}
  body .admin-menu-v44 {position:relative;padding:.65rem;gap:.35rem}
  .est-admin-nav-items {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.35rem;width:100%}
  body .admin-menu-home,body .admin-menu-trigger {width:100%}
  body .admin-menu-section {min-width:0}
  .est-admin-mobile-trigger {display:none}
  .est-nav-ready .est-admin-mobile-trigger {display:flex;align-items:center;justify-content:space-between;width:100%;margin:0;min-height:46px;padding:.45rem .8rem;background:#fff;color:var(--est-green-950);border:1px solid var(--est-line);box-shadow:none}
  .est-nav-ready .est-admin-mobile-trigger:hover {background:var(--est-green-50);color:var(--est-green-950)}
  .est-nav-ready .est-admin-nav-items {display:none}
  .est-nav-ready.est-nav-expanded .est-admin-nav-items {display:grid}

  main.est-main {width:calc(100% - 1.15rem);margin:.75rem auto 1.5rem;padding:1.05rem}
  body .teacher-menu {padding:.5rem .7rem;gap:.3rem}
  .site-header-inner {padding:.7rem 1rem}
  .site-brand-logo {width:48px;height:48px}
}
@media(max-width:650px) {
  :root {font-size:16.5px}
  .site-brand-subtitle {font-size:.75rem}
  .site-brand-name {font-size:.99rem}
  .site-user-role {display:none}
  .site-logout {min-height:38px;padding:.3rem .55rem;font-size:.82rem}
  body .teacher-menu a {flex:1 1 calc(50% - .35rem);text-align:center;padding:.45rem .38rem;font-size:.88rem}
  .est-stat-grid,.est-action-grid {grid-template-columns:repeat(2,minmax(0,1fr))}
  .est-stat-card {padding:.95rem .65rem;min-height:110px}
  .est-stat-card strong {font-size:1.8rem}
  .est-action {padding:.9rem .75rem}
  .est-action span {font-size:.8rem}
  body.est-role-teacher .save-bar {gap:.6rem;flex-direction:column;align-items:stretch}
  body.est-role-teacher .save-bar button {width:100%}
  .est-email-tabs {display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
  .est-email-tabs button {white-space:normal;font-size:.82rem;padding:.5rem .25rem}
  body.est-page-class .est-table-scroll table {min-width:960px}
}
@media(max-width:440px) {
  .est-admin-nav-items {grid-template-columns:1fr}
  .site-brand-logo {width:43px;height:43px}
  .site-brand-copy {max-width:195px}
  .site-brand-name {font-size:.92rem}
  .site-brand-subtitle {font-size:.68rem}
  .site-header-inner {gap:.4rem}
  .est-action-grid {grid-template-columns:1fr}
}
@media(prefers-reduced-motion:reduce) {
  *,*::before,*::after {scroll-behavior:auto!important;transition:none!important;animation:none!important}
}
@media print {
  :root {font-size:12pt;color:#000}
  body {background:#fff;color:#000}
  .site-header,.site-logout,.skip-link,.site-user-role,.teacher-menu,.admin-menu-v44,.est-site-footer,.no-print {display:none!important}
  main.est-main {border:0;border-radius:0;box-shadow:none;max-width:none;width:100%;min-height:0;margin:0;padding:0;overflow:visible}
  .est-table-scroll {overflow:visible;width:100%;max-width:none;margin:.5rem 0;break-inside:auto}
  .est-page-intro {border:0;margin:0 0 .75rem;padding:0}
  .est-page-intro::after,.est-eyebrow {display:none}
  .card,.admin-card,.est-state,.notice {box-shadow:none}
  table {font-size:10pt;border:1px solid #777;overflow:visible}
  th,td {border-bottom:1px solid #aaa;padding:.35rem}
  th {background:#eee!important;color:#000}
  .print-page {break-after:page}
  a {color:#000}
}
