/* Theme application (ultra-light) */
[data-theme] body{background:var(--bg);color:var(--text)}
[data-theme] .list li.active{border-color:var(--accent);background:var(--accent-weak)}
[data-theme] .sum-title{color:var(--muted)}
[data-theme] .card{background:var(--card);border-color:var(--border)}
[data-theme] .box{background:var(--card);border-color:var(--border)}

    /* === Extra Themes (ocean/forest/sunset) === */
    :root[data-theme="ocean"]{
  --bg:#ffffff; --text:#0a1a35; --muted:#2a4a8a;
  --card:#ffffff; --border:#e9efff; --accent:#3a74ff; --accent-weak:#f6f8ff;
  --btn:#0a1a35; --btn-bg:#fff; --btn-border:var(--border);
  --badge-bg:#f7faff; --chip-bg:#f9fbff; --chip-border:#eef3ff;
  --ok:#1286df; --warn:#b06a00; --bad:#c53a3a;
}
    :root[data-theme="forest"]{
  --bg:#ffffff; --text:#0b2d1e; --muted:#146b42;
  --card:#ffffff; --border:#e5f4ec; --accent:#1aa058; --accent-weak:#f5fbf8;
  --btn:#0b2d1e; --btn-bg:#fff; --btn-border:var(--border);
  --badge-bg:#f3fbf7; --chip-bg:#f6fcf9; --chip-border:#e8f6ef;
  --ok:#1aa058; --warn:#b06a00; --bad:#c53a3a;
}
    :root[data-theme="sunset"]{
  --bg:#ffffff; --text:#3a1710; --muted:#a84a08;
  --card:#ffffff; --border:#ffe9da; --accent:#f0702a; --accent-weak:#fff7f1;
  --btn:#3a1710; --btn-bg:#fff; --btn-border:var(--border);
  --badge-bg:#fff2e9; --chip-bg:#fff5ee; --chip-border:#ffeadf;
  --ok:#f0702a; --warn:#a86a05; --bad:#c53a3a;
}
    [data-theme="ocean"] .btn-primary,[data-theme="forest"] .btn-primary,[data-theme="sunset"] .btn-primary{background:var(--accent);color:#111}
    [data-theme="ocean"] .sum-title,[data-theme="forest"] .sum-title,[data-theme="sunset"] .sum-title{color:var(--muted)}
    [data-theme="ocean"] .list li.active,[data-theme="forest"] .list li.active,[data-theme="sunset"] .list li.active{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 12%, transparent)}
    
    /* Hide redundant top switchers */
    #yearSwitcher, #classSwitcher { display:none !important; }
    #yearSwitcher + .sep { display:none !important; }

    /* Active state for inline-panel toggle buttons */
    .inline-panel-btn-active {
      background: #6ba3a3 !important;
      box-shadow: inset 0 3px 6px rgba(0,0,0,0.25) !important;
      transform: translateY(1px);
    }

    .list li.active{border-color:#1e66ff;background:rgba(30,102,255,.08);box-shadow:0 0 0 2px rgba(30,102,255,.12) inset}
    #yearSwitcher select,#classSwitcher select{border-color:#1e66ff}
    
    :root{
      --bg:#f7f9fc;--card:#fff;--text:#0b1a33;--muted:#5b6b86;--border:#d6ddeb;--accent:#2f6ffb;--warn:#b91c1c;
      --btn:#0b1a33;--btn-bg:#fff;--btn-border:var(--border);
      --ausfall-bg:#fff0f0;--ausfall-border:#f3b4b4;--ausfall-text:#a32020;
      --undo-cancel-bg:#f0fff4;--undo-cancel-border:#86efac;--undo-cancel-text:#166534;
      --table-max-h:78vh;
      --badge-bg:#eef2fb; --chip-bg:#eef2fb; --chip-border:var(--border);
      --fixday-bg:#eaf2ff; --fixday-border:#cfe0ff; --fixday-text:#274a8b;
    }
    [data-theme="dark"]{
      --bg:#0c1220;--card:#111a2e;--text:#e6edf7;--muted:#9fb1d1;--border:#24314d;--accent:#4c83ff;--warn:#ef4444;
      --btn:#e6edf7;--btn-bg:#0c1220;--btn-border:#24314d;
      --ausfall-bg:#2a1220;--ausfall-border:#6b203b;--ausfall-text:#ff5b8a;
      --undo-cancel-bg:#0a2818;--undo-cancel-border:#065f46;--undo-cancel-text:#6ee7b7;
      --badge-bg:#192540; --chip-bg:#16213a; --chip-border:#223055;
      --fixday-bg:#14284d; --fixday-border:#20406f; --fixday-text:#a8c0ff;
    }
    [data-theme="grey"]{
      --bg:#e0e3e9;--card:#eaedf2;--text:#1c1d20;--muted:#4f5560;--border:#c2c7d1;--accent:#4b6cff;--warn:#c62828;
      --btn:#1c1d20;--btn-bg:#eaedf2;--btn-border:#c2c7d1;
      --ausfall-bg:#f2dede;--ausfall-border:#d9a9a9;--ausfall-text:#9f1f1f;
      --undo-cancel-bg:#e8f5e9;--undo-cancel-border:#81c784;--undo-cancel-text:#1b5e20;
      --badge-bg:#dde3f7; --chip-bg:#dbe1f1; --chip-border:#c7cfe6;
      --fixday-bg:#e5ecfb; --fixday-border:#c8d9ff; --fixday-text:#274a8b;
    }

    *{box-sizing:border-box;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,"Apple Color Emoji","Segoe UI Emoji"}
    body{margin:0;background:var(--bg);color:var(--text)}
    header{padding:.9rem 1.25rem;border-bottom:1px solid var(--border);background:var(--card);display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}
    .title{display:flex;flex-direction:column;gap:.25rem}
    .title h1{margin:0;font-size:1.35rem}
    .ver{color:var(--muted);font-size:.88rem}
    .h-actions{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}
    .info-pop{display:none;background:var(--card);border:1px solid var(--border);border-radius:12px;padding:.6rem .8rem;margin:.5rem 1.25rem 0}
    .info-pop p{margin:.2rem 0}
    .card{background:var(--card);margin:1rem 1.25rem;padding:.75rem 1rem .5rem;border:1px solid var(--border);border-radius:14px;box-shadow:0 1px 8px rgba(20,39,80,.06)}
    .grid2{display:grid;grid-template-columns:1fr 1fr;gap:1rem;align-items:start}
    .row{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap}
    .row.gap{margin-top:.75rem} /* requested gap under year row */
    .muted{color:var(--muted)}
    input,select,button{padding:.55rem .7rem;border-radius:10px;border:1px solid var(--btn-border);background:var(--btn-bg);color:var(--btn)}
    button.primary{background:var(--accent);color:#fff;border:1px solid var(--accent)}
    button.ghost{background:var(--btn-bg);color:var(--btn);border:1px solid var(--btn-border)}
    button.slim{padding:.35rem .5rem}

    /* Card Toggle Buttons */
    .card-toggle-btn{
      padding:.6rem;
      min-width: 48px;
      min-height: 48px;
      border-radius:12px;
      border:2px solid transparent;
      background:rgba(0,0,0,0.04);
      color:#666;
      cursor:pointer;
      display:inline-flex;
      align-items:center;
      justify-content:center;
      transition:all .2s ease;
    }
    .card-toggle-btn:hover{
      background:rgba(0,0,0,0.08);
      transform: translateY(-1px);
      box-shadow: 0 2px 8px rgba(0,0,0,0.1);
    }
    .card-toggle-btn.active{
      background:#578d8d;
      border-color:#578d8d;
      color:#fff;
      box-shadow: 0 2px 8px rgba(87,141,141,0.3);
    }
    .card-toggle-btn svg{
      stroke:currentColor;
    }
    .icon{font-size:.9rem;line-height:1}
    .list{list-style:none;margin:.5rem 0;padding-left:0}
    .list li{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.45rem .55rem;border:1px solid var(--border);background:var(--card);border-radius:10px;margin-bottom:.4rem}
    .table-wrap{overflow:auto;max-height:var(--table-max-h);border:1px solid var(--border);border-radius:10px;background:var(--card)}
    table{width:100%;border-collapse:collapse}
    th,td{padding:.55rem .6rem;border-bottom:1px solid var(--border);text-align:left;vertical-align:middle}
    tr:hover td{background:rgba(0,0,0,.02)}
    td input{
      width:100%;
      background:rgba(0,0,0,.015);
      box-shadow:inset 0 1px 2px rgba(0,0,0,.04);
      transition:all .15s ease;
    }
    td input:hover{
      background:rgba(0,0,0,.025);
      box-shadow:inset 0 1px 3px rgba(0,0,0,.06);
    }
    td input:focus{
      background:var(--btn-bg);
      box-shadow:0 0 0 2px rgba(47,111,251,.12), inset 0 1px 2px rgba(0,0,0,.03);
      outline:none;
    }
    .badge{padding:.25rem .5rem;border-radius:8px;font-size:.82rem;background:var(--badge-bg);border:1px solid var(--border);color:#2b4ec4}
    .chip{display:inline-flex;align-items:center;gap:.45rem;padding:.2rem .6rem;border-radius:999px;background:var(--chip-bg);border:1px solid var(--chip-border);font-size:.86rem}
    .chip .dot{width:.75rem;height:.75rem;border-radius:50%;border:1px solid var(--border);display:inline-block}
    .el-btn{border:1px solid #a8d5d5;background:#e8f5f5;color:#578d8d;border-radius:999px;padding:.25rem .6rem;cursor:pointer;line-height:1;font-size:.85rem;margin-right:.5rem}
    .el-btn.active{background:#578d8d;color:#fff;border-color:#578d8d;font-weight:600}
    .ausfall-btn{border:1px solid var(--ausfall-border);background:var(--ausfall-bg);color:var(--ausfall-text);border-radius:999px;padding:.25rem .6rem;cursor:pointer;line-height:1}
    .undo-cancel{border:1px solid var(--undo-cancel-border);background:var(--undo-cancel-bg);color:var(--undo-cancel-text);border-radius:999px;padding:.25rem .6rem;cursor:pointer;line-height:1}
    .ausfall-col{width:140px; text-align:center}
    .topic-col{width:16ch; max-width:24ch}
    .date-col{width:14ch}
    .date-weak{display:block;font-size:.78rem;color:#7a879d;margin-top:.28rem}
    .topic-small{display:block;font-size:.85rem;color:#5b6b86;margin-top:.1rem}
    details{border-radius:12px;overflow:hidden}
    summary{list-style:none;cursor:pointer;padding:.9rem 0;display:flex;align-items:center;gap:.6rem}
    summary::-webkit-details-marker{display:none}
    .caret{
      display:inline-flex;
      align-items:center;
      justify-content:center;
      width:1.2rem;
      height:1.2rem;
      margin-right:.3rem;
      transition:.2s;
      font-size:1rem;
      color:var(--muted);
    }
    .caret::before{
      content:'▶';
      display:block;
      transform:rotate(90deg);
    }
    details[open] > summary .caret::before{
      transform:rotate(270deg);
    }
    .sum-title{font-weight:600}
    .diag{background:#fffaf0;border:1px solid #fdecc2;padding:.6rem .8rem;border-radius:10px;color:#7a5d00;margin:.6rem;display:none}
    .kpi{display:inline-block;background:#f1f5ff;border:1px solid #dee7ff;border-radius:999px;padding:.18rem .5rem;margin-right:.4rem;font-size:.85rem;color:#2b4ec4}
    .diag-list{margin:.4rem 0 0 .2rem; padding-left:1.1rem}
    .info-toggle{border-radius:999px;width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--btn-border);background:var(--btn-bg);cursor:pointer}
    .overflow{margin:.6rem 0 0;padding:.6rem .8rem;border:1px dashed #cbd5e1;border-radius:10px;background:#f8fafc;color:#334155}
    .overflow h4{margin:.1rem 0 .4rem;font-size:.95rem}
    .overflow ol{margin:.25rem 0 0 1rem}
    .toolbar{display:flex;gap:.4rem;align-items:center;flex-wrap:wrap}
    .spacer{flex:1}
    .search{min-width:220px}
    .sep{width:1px;height:26px;background:var(--border)}
    .hidden{display:none !important}
    .subtle{color:var(--muted);font-size:.9rem}

    .num-col{width:40px;text-align:center;padding:.4rem .25rem !important}
    .topic-col{padding:.4rem .5rem !important}
    .actions-col{width:85px;padding:.4rem .3rem !important;vertical-align:middle}
    .rowctl-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;opacity:.35;transition:.15s}
    .rowctl-grid:hover{opacity:.85}
    .rowctl-col{display:flex;flex-direction:column;gap:.25rem;align-items:center}
    .rowctl-grid button{padding:.15rem .35rem;border-radius:999px;line-height:1;border:1px solid var(--btn-border);background:var(--btn-bg);color:var(--btn);font-size:.85rem;min-width:24px;height:20px;display:flex;align-items:center;justify-content:center}
    .rowctl-grid button.lock{opacity:0.6}
    .rowctl-grid button.lock.locked{background:#2d5656;color:#fff;border-color:#1a3333;opacity:1;box-shadow:0 0 0 2px rgba(45,86,86,0.4);font-weight:600}

    /* Lesson plan button styling */
    .lesson-plan-btn{
      padding:0.25rem 0.5rem;
      background:transparent;
      border:none;
      border-left:1px solid var(--border);
      color:var(--btn);
      cursor:pointer;
      border-radius:0;
      display:flex;
      align-items:center;
      justify-content:center;
      flex-shrink:0;
      width:2.5rem;
      opacity:0.6;
      transition:all 0.15s;
    }
    .lesson-plan-btn:hover{opacity:1;}
    .lesson-plan-btn.has-plan{
      background:#5a8a8a !important;
      color:#fff !important;
      border-color:#4a7575 !important;
      border-radius:8px !important;
      opacity:1 !important;
      box-shadow:0 0 0 2px rgba(90,138,138,0.3) !important;
      font-weight:600;
    }
    .lesson-plan-btn.has-plan:hover{background:#6a9a9a !important;}

    .btn-placeholder{height:20px;visibility:hidden}

    .fixday td{background:var(--fixday-bg) !important;border-bottom:1px solid var(--fixday-border)}
    .fixlabel{color:var(--fixday-text);font-weight:600}

    .period{border:1px dashed var(--border); border-radius:12px; padding:.6rem .7rem; margin:.5rem 0}
    .period-h{display:flex; align-items:center; gap:.5rem; flex-wrap:wrap}
    .period-body{margin-top:.45rem}
    .mini{font-size:.92rem}
    .mini .list li{padding:.35rem .4rem}

    /* Timetable Grid Styles */
    .timetable-cell:hover{
      opacity: 0.8;
      transform: scale(1.02);
    }
    .timetable-cell.active:hover{
      background: #4a7373 !important;
    }
    .timetable-cell:not(.active):hover{
      background: var(--badge-bg) !important;
    }

    .toast{position:fixed;right:1rem;bottom:1rem;background:#111827;color:#fff;padding:.6rem .8rem;border-radius:10px;opacity:0;transform:translateY(8px);transition:.2s;z-index:9999;box-shadow:0 6px 18px rgba(0,0,0,.2)}
    .toast.show{opacity:1;transform:translateY(0)}

    @media print{
      /* === Seiteneinstellungen === */
      @page{
        margin: 1cm;
        size: A4;
      }

      /* === Farben erzwingen === */
      *{
        -webkit-print-color-adjust: exact !important;
        print-color-adjust: exact !important;
        color-adjust: exact !important;
      }

      /* === Grundlegende Print-Styles === */
      :root{--table-max-h:unset}
      body{
        background:#fff !important;
        color:#000 !important;
        margin:0;
        padding:0;
      }

      /* === Elemente ausblenden === */
      header .h-actions, header .badge, header span.badge,
      header .kpi, header span.kpi,
      .info-pop, #sec-import, #sec-year, #sec-holidays, #sec-manage,
      #sec-blocks, #sec-export, .info-toggle, .diag, .toolbar,
      .actions-col, .ausfall-col, #scheduleDiag, #slotCount,
      .planSearch, #btnClearSearch, #btnPrint, .search,
      button, .el-btn, .ausfall-btn, .lesson-plan-btn,
      .up, .down, .ins, .del, .lock, .move-overflow,
      .continue-unit-btn, .undo-cancel, .cancellation-note,
      #overflowBox, #inlineBlocksTopics, #inlineClearPlan,
      .rowctl-grid, #btnMaximizePlan, #btnToggleBlocksTopics,
      #btnToggleClearPlan, #btnCenterToday, #btnOpenAiCurriculum,
      #statusBar{
        display:none !important;
      }

      /* === Header mit Logo === */
      header{
        padding:0.5rem 0 !important;
        border-bottom:2px solid #578d8d;
        margin-bottom:0.5rem !important;
      }

      header h1{
        font-size:1.5rem !important;
        margin:0 !important;
      }

      /* === Print-Header anzeigen === */
      .print-only{
        display:block !important;
      }

      #printHeader{
        margin-top:0 !important;
        margin-bottom:0.75rem !important;
      }

      #printHeader > div{
        font-size:1rem !important;
        padding:0.5rem 0.75rem !important;
        margin:0 !important;
      }

      /* === Karten & Container === */
      .card{
        box-shadow:none !important;
        border:0 !important;
        margin:0 !important;
        padding:0.5rem 0 !important;
        background:transparent !important;
      }

      #sec-plan{
        page-break-before:auto;
      }

      .table-wrap{
        border:0 !important;
        overflow:visible !important;
        max-height:none !important;
      }

      /* === Tabelle === */
      #planTable{
        width:100% !important;
        border-collapse:collapse !important;
        page-break-inside:auto;
        font-size:0.9rem;
      }

      thead{display:table-header-group}
      tbody{display:table-row-group}

      tr{
        page-break-inside:avoid;
        page-break-after:auto;
      }

      th{
        background:#578d8d !important;
        color:#fff !important;
        padding:0.4rem !important;
        text-align:left !important;
        font-weight:600 !important;
        border:1px solid #999 !important;
      }

      td{
        padding:0.4rem !important;
        border:1px solid #ddd !important;
        vertical-align:top !important;
        background:transparent !important;
      }

      /* === Spalten-Breiten === */
      .num-col{width:2.5rem !important}
      .date-col{width:9rem !important}
      .topic-col{width:10rem !important}

      /* === Ferien/Schulfrei-Zeilen - MIT Hintergrundfarbe === */
      tr.fixday td{
        background:rgba(255, 152, 0, 0.15) !important;
      }

      .chip{
        display:inline-block !important;
        padding:0.2rem 0.4rem !important;
        border-radius:3px !important;
        font-size:0.85rem !important;
        font-weight:600 !important;
        background:rgba(255, 152, 0, 0.25) !important;
        color:#d84315 !important;
      }

      /* === Einheiten-Dropdown: Als Text mit schwarzer Schrift === */
      .unit-select{
        appearance:none !important;
        border:none !important;
        background:transparent !important;
        padding:0.2rem !important;
        font-weight:600 !important;
        font-size:0.9rem !important;
        color:#000 !important;
      }

      /* === Input-Felder als Text === */
      input.contentRow{
        border:none !important;
        background:transparent !important;
        padding:0.2rem !important;
        font-size:0.9rem !important;
      }

      /* === Opacity für vergangene Stunden === */
      tr.past{opacity:1 !important}

      /* === Datum-Spalte === */
      .date-col{
        white-space:normal !important;
      }

      .date-weak{
        display:block !important;
        color:#666 !important;
        font-size:0.75rem !important;
        line-height:1.2 !important;
        margin-top:0.15rem !important;
      }
    }
  
/* === Auto-highlight for today & gentle fading of past rows (safe v4) === */
tr.today td{
  background: rgba(87, 141, 141, 0.15) !important;
  font-weight: 600;
}
tr.past{ opacity: .60; }
@media print{ tr.past{ opacity: 1 !important; } }

  
/* === Row-wide highlight override for 'today' (clean full-width look) === */




  
/* subtle flash outline when jumping to 'today' */
tr.flash-today { outline: 2px solid var(--accent); outline-offset: -2px; }

  
/* === Full-row outline for 'today' (replaces left stripe) === */

/* ==========================================================================
   AUTH OVERLAY STYLING
   Füge dies am ENDE deiner styles.css ein!
   ========================================================================== */

/* Auth Overlay - Full Screen */
#authOverlay {
  display: none; /* Initial versteckt */
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.85);
  backdrop-filter: blur(8px);
  z-index: 9999;
  justify-content: center;
  align-items: center;
  animation: fadeIn 0.3s ease;
}

@keyframes fadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}

/* Auth Card */
.auth-card {
  background: var(--bg-card, #fff);
  border-radius: 12px;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3);
  width: 90%;
  max-width: 420px;
  padding: 2rem;
  animation: slideUp 0.3s ease;
}

@keyframes slideUp {
  from {
    opacity: 0;
    transform: translateY(20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes spin {
  to {
    transform: rotate(360deg);
  }
}

/* Auth Header */
.auth-header {
  text-align: center;
  margin-bottom: 1.5rem;
}

.auth-header h1 {
  margin: 0 0 0.5rem 0;
  font-size: 1.8rem;
  color: var(--text-primary, #222);
}

.auth-header p {
  margin: 0;
  color: var(--text-secondary, #666);
  font-size: 0.95rem;
}

/* Tabs */
.auth-tabs {
  display: flex;
  gap: 0.5rem;
  margin-bottom: 1.5rem;
}

.auth-tab {
  flex: 1;
  padding: 0.75rem 1rem;
  background: transparent;
  border: none;
  border-radius: 6px;
  cursor: pointer;
  font-size: 1rem;
  font-weight: 500;
  color: var(--text-secondary, #666);
  transition: all 0.2s;
}

.auth-tab:hover {
  color: var(--text-primary, #222);
  background: var(--bg-hover, #f5f5f5);
}

.auth-tab.active {
  color: white;
  background: var(--primary, #578d8d);
}

/* Forms */
.auth-form {
  display: none;
}

.auth-form.active {
  display: block;
}

.auth-form-group {
  margin-bottom: 1rem;
}

.auth-form-group label {
  display: block;
  margin-bottom: 0.4rem;
  font-weight: 500;
  font-size: 0.9rem;
  color: var(--text-primary, #222);
}

.auth-form-group input {
  width: 100%;
  padding: 0.75rem;
  border: 1px solid var(--border, #ddd);
  border-radius: 6px;
  font-size: 1rem;
  background: var(--bg-input, #fff);
  color: var(--text-primary, #222);
  transition: border-color 0.2s;
  box-sizing: border-box;
}

.auth-form-group input:focus {
  outline: none;
  border-color: var(--primary, #4a90e2);
}

/* Error Message */
.auth-error {
  display: none;
  background: #fee;
  color: #c33;
  padding: 0.75rem;
  border-radius: 6px;
  margin-bottom: 1rem;
  font-size: 0.9rem;
  border-left: 3px solid #c33;
}

/* Submit Button */
.auth-submit {
  width: 100%;
  padding: 0.85rem;
  background: var(--primary, #4a90e2);
  color: white;
  border: none;
  border-radius: 6px;
  font-size: 1rem;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.2s;
  margin-top: 0.5rem;
}

.auth-submit:hover {
  background: var(--primary-hover, #357abd);
}

.auth-submit:active {
  transform: scale(0.98);
}

/* Logout Button (in der App) */
/* User Info & Logout sind jetzt im Header integriert - kein fixed positioning mehr */

/* Dark Theme Anpassungen */
@media (prefers-color-scheme: dark) {
  .auth-card {
    background: var(--bg-card, #2a2a2a);
  }
  
  .auth-form-group input {
    background: var(--bg-input, #333);
    border-color: var(--border, #444);
    color: var(--text-primary, #eee);
  }
}

/* Mobile Responsiveness */
@media (max-width: 500px) {
  .auth-card {
    width: 95%;
    padding: 1.5rem;
  }
  
  /* User Info & Logout Mobile Anpassungen entfernt - jetzt im Header */
}

/* Plan Maximieren */
.plan-maximized {
  position: fixed !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  width: 100vw !important;
  height: 100vh !important;
  margin: 0 !important;
  z-index: 9999 !important;
  overflow: auto !important;
  background: var(--bg) !important;
  border-radius: 0 !important;
  padding: 1rem !important;
  box-shadow: none !important;
}

.plan-maximized details {
  min-height: 100% !important;
}

.plan-maximized #scheduleContainer {
  height: auto !important;
  max-height: none !important;
  overflow: visible !important;
}

.plan-maximized #overflowBox {
  max-height: none !important;
}

/* Doppelstunden-Umrahmung - nur äußere Borders, solid mit Transparenz */
/* CSS-Variable für die Farbe (Standard: mitteldunkles Grau mit 50% Transparenz) */
body.highlight-double-slots {
  --double-slots-color: rgba(128, 128, 128, 0.5);
}

/* Erste Zeile: oben, links, rechts */
body.highlight-double-slots tr.double-slot-pair.group-start td:first-child {
  border-left: 2px solid var(--double-slots-color);
  border-top: 2px solid var(--double-slots-color);
  border-top-left-radius: 12px;
}
body.highlight-double-slots tr.double-slot-pair.group-start td {
  border-top: 2px solid var(--double-slots-color);
}
body.highlight-double-slots tr.double-slot-pair.group-start td:last-child {
  border-right: 2px solid var(--double-slots-color);
  border-top: 2px solid var(--double-slots-color);
  border-top-right-radius: 12px;
}

/* Mittlere Zeilen: nur links und rechts */
body.highlight-double-slots tr.double-slot-pair.group-middle td:first-child {
  border-left: 2px solid var(--double-slots-color);
}
body.highlight-double-slots tr.double-slot-pair.group-middle td:last-child {
  border-right: 2px solid var(--double-slots-color);
}

/* Letzte Zeile: unten, links, rechts */
body.highlight-double-slots tr.double-slot-pair.group-end td:first-child {
  border-left: 2px solid var(--double-slots-color);
  border-bottom: 2px solid var(--double-slots-color);
  border-bottom-left-radius: 12px;
}
body.highlight-double-slots tr.double-slot-pair.group-end td {
  border-bottom: 2px solid var(--double-slots-color);
}
body.highlight-double-slots tr.double-slot-pair.group-end td:last-child {
  border-right: 2px solid var(--double-slots-color);
  border-bottom: 2px solid var(--double-slots-color);
  border-bottom-right-radius: 12px;
}

/* Entferne den normalen Border zwischen den Doppelstunden-Zeilen */
body.highlight-double-slots tr.double-slot-pair.group-start td,
body.highlight-double-slots tr.double-slot-pair.group-middle td {
  border-bottom: none !important;
}

/* Modal Radio Button Labels - Hover und Selected States */
#selfLearningModal label:has(input[type="radio"]):hover,
#classImportModal label:has(input[type="radio"]):hover {
  border-color: #578d8d !important;
  background: rgba(87, 141, 141, 0.05);
}

#selfLearningModal label:has(input[type="radio"]:checked),
#classImportModal label:has(input[type="radio"]:checked) {
  border-color: #578d8d !important;
  background: rgba(87, 141, 141, 0.08);
}

/* Quill Editor Überschriften anpassen */
#lessonPlanEditor .ql-editor h2 {
  font-size: 1.4rem;
  margin-top: 1rem;
  margin-bottom: 0.5rem;
  font-weight: 600;
}

#lessonPlanEditor .ql-editor h3 {
  font-size: 1.1rem;
  margin-top: 0.75rem;
  margin-bottom: 0.4rem;
  font-weight: 600;
}

/* Modal Styles (für Schuljahr löschen, etc.) */
.modal-overlay {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.5);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 10000;
  padding: 1rem;
}

.modal-content {
  background: var(--card);
  border-radius: 8px;
  box-shadow: 0 10px 40px rgba(0, 0, 0, 0.2);
  max-width: 500px;
  width: 100%;
  max-height: 90vh;
  overflow-y: auto;
  animation: modalFadeIn 0.2s ease-out;
}

@keyframes modalFadeIn {
  from {
    opacity: 0;
    transform: translateY(-20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.modal-header {
  padding: 1.25rem 1.5rem;
  border-bottom: 1px solid var(--border);
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-radius: 8px 8px 0 0;
}

.modal-header h2 {
  margin: 0;
  font-size: 1.25rem;
  font-weight: 600;
}

.modal-body {
  padding: 1.5rem;
}

.modal-footer {
  padding: 1rem 1.5rem;
  border-top: 1px solid var(--border);
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0.75rem;
  border-radius: 0 0 8px 8px;
  background: var(--badge-bg);
}

.close-btn {
  background: transparent;
  border: none;
  font-size: 1.75rem;
  cursor: pointer;
  color: inherit;
  padding: 0;
  width: 30px;
  height: 30px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 4px;
  transition: background 0.2s;
}

.close-btn:hover {
  background: rgba(0, 0, 0, 0.1);
}

.btn-secondary {
  background: transparent;
  color: var(--text);
  border: 2px solid var(--border);
  padding: 0.6rem 1.2rem;
  border-radius: 6px;
  cursor: pointer;
  font-size: 0.95rem;
  font-weight: 500;
  transition: all 0.2s;
}

.btn-secondary:hover {
  background: var(--badge-bg);
  border-color: var(--muted);
}

.btn-primary {
  background: var(--accent);
  color: white;
  border: none;
  padding: 0.6rem 1.2rem;
  border-radius: 6px;
  cursor: pointer;
  font-size: 0.95rem;
  font-weight: 500;
  transition: all 0.2s;
}

.btn-primary:hover:not(:disabled) {
  opacity: 0.9;
  transform: translateY(-1px);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
}

.btn-primary:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}
