/* Parler Schulmanager V3 – warmes Papier, gezieltes Milchglas, Architektur.
   Bilddateien ausschließlich lokal; keine Menschenmotive. */
:root {
  --radius: 16px;
  --radius-sm: 8px;
  --shadow: 0 5px 20px rgba(22, 51, 106, .045), inset 0 1px 0 rgba(255,255,255,.9);
  --shadow-md: 0 10px 28px rgba(22, 51, 106, .085);
  --shadow-lg: 0 20px 60px rgba(22, 51, 106, .14);
  --v3-motion: 220ms;
}
@media screen {
  body { background-color: var(--parler-papier); }
  .topbar {
    color: var(--parler-tinte); background: rgba(249,247,244,.86);
    -webkit-backdrop-filter: blur(22px) saturate(1.5); backdrop-filter: blur(22px) saturate(1.5);
    border-top: 1px solid rgba(255,255,255,.8); border-bottom: 1px solid rgba(22,51,106,.13);
    box-shadow: 0 2px 16px rgba(22,51,106,.035);
  }
  .topbar :focus-visible { outline-color: var(--kupfer-dunkel); }
  .area-badge { border-left-color: rgba(22,51,106,.18); }
  .area-badge .area-eyebrow { color: var(--grau); }
  .area-badge .area-name { color: var(--parler-tinte); }
  .nav-toggle:hover, .topbar-icon:hover, .user-menu summary:hover { background: rgba(22,51,106,.065); }
  .topbar .avatar { background: var(--parler-feder); }
  .topbar-icon .count { border-color: var(--parler-papier); }
  .topbar-search input { color: var(--parler-tinte); background: rgba(255,255,255,.8); border-color: var(--linie-stark); border-radius: 10px; }
  .topbar-search input::placeholder { color: var(--grau); }
  .topbar-search input:focus { border-color: var(--blau-3); }
  .topbar-search input:focus-visible { outline-color: var(--kupfer-dunkel); }
  .child-switch select, .child-name { color: var(--parler-tinte); background: var(--surface); border-color: var(--linie-stark); }
  .child-name { background: transparent; }
  .menu-panel, .suggest-box, .combo-list {
    background: rgba(249,247,244,.94); -webkit-backdrop-filter: blur(20px) saturate(1.4); backdrop-filter: blur(20px) saturate(1.4);
    border-color: rgba(22,51,106,.15); box-shadow: var(--shadow-lg), inset 0 1px 0 rgba(255,255,255,.85);
  }
  .menu-item:hover, .suggest-item.active, .suggest-item:hover { background: var(--parler-feder); }
  .sidebar { background: var(--parler-papier); border-right-color: rgba(22,51,106,.09); }
  .sidebar-inner { padding-top: 18px; }
  .nav-item { border-radius: 9px; padding-top: 10px; padding-bottom: 10px; transition: background var(--v3-motion), box-shadow var(--v3-motion); }
  .nav-item.active { color: var(--parler-tinte); background: #e9edf3; box-shadow: inset 3px 0 0 var(--parler-kupfer); }
  .nav-item.active .icon { color: var(--parler-tinte); }
  .main { padding-top: 32px; }
  .page-head { margin-bottom: 26px; }
  .page-title h1 { letter-spacing: -.025em; }
  .page-title h1::after { width: 32px; height: 2px; opacity: .8; }
  .card, .stat, .tile { border-color: rgba(22,51,106,.105); }
  .card-head { padding-top: 18px; padding-bottom: 15px; border-bottom-color: rgba(22,51,106,.09); }
  .card-head h2 { font-size: 1.5rem; letter-spacing: -.015em; }
  .card-body { padding: 22px; }
  .btn { border-radius: 9px; transition: background var(--v3-motion), box-shadow var(--v3-motion), transform var(--v3-motion); }
  .btn:not(.btn-ghost):hover { box-shadow: 0 4px 12px rgba(22,51,106,.09); }
  .btn:not(:disabled):active { transform: translateY(1px); }
  a.stat, .tile { transition: transform var(--v3-motion), box-shadow var(--v3-motion), border-color var(--v3-motion); }
  @media (hover: hover) { a.stat:hover, .tile:hover { transform: translateY(-2px); box-shadow: var(--shadow-md); } }
  .tabs a, .tab { transition: background var(--v3-motion), color var(--v3-motion), border-color var(--v3-motion); }
  .table th { background: var(--parler-papier); }
  dialog.modal { background: var(--surface); border-radius: 18px; border: 1px solid rgba(255,255,255,.85); }
  dialog.modal[open] { animation: v3-dialog-in var(--v3-motion) ease-out; }
  dialog.modal::backdrop { background: rgba(22,38,65,.23); -webkit-backdrop-filter: blur(5px); backdrop-filter: blur(5px); }
  dialog.modal[open]::backdrop { animation: v3-fade-in var(--v3-motion) ease-out; }
  .modal-head { padding: 20px 22px 16px; }
  .modal-head h2 { font-size: 1.6rem; }
  .modal-body { padding: 22px; }
  .modal-foot { border-radius: 0 0 18px 18px; padding: 16px 22px; }
  .toast, .alert-success { animation: v3-feedback-in var(--v3-motion) ease-out; }
  .alert-success > .icon { animation: v3-check-in var(--v3-motion) ease-out; }
  [data-row] { transition: opacity var(--v3-motion), transform var(--v3-motion), background var(--v3-motion); }
  [data-row].is-done { background: var(--success-bg); opacity: 0; transform: translateY(-5px); }
}
/* Ein einzelnes zurückhaltendes Architekturmotiv auf der Startseite. */
@media screen { body[data-module="dashboard"] .main { padding-top: 20px; } }
.page-head.dashboard-welcome { position: relative; isolation: isolate; min-height: 76px; padding: 4px 0; align-items: center; margin-bottom: 20px; }
.dashboard-welcome::before {
  content: ""; position: absolute; z-index: -1; pointer-events: none; right: -12px; top: -14px;
  width: min(48%, 480px); height: 114px;
  background: url('../img/architektur/fassade-bruecke.webp') center right / cover no-repeat;
  opacity: .37; mix-blend-mode: multiply;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 38%, #000 90%, transparent), linear-gradient(0deg, transparent, #000 22%, #000 86%, transparent);
  -webkit-mask-composite: source-in;
  mask-image: linear-gradient(90deg, transparent, #000 38%, #000 90%, transparent), linear-gradient(0deg, transparent, #000 22%, #000 86%, transparent);
  mask-composite: intersect;
}
.dashboard-welcome .page-title { flex: 1 1 260px; max-width: 100%; }
.dashboard-welcome h1 { font-size: clamp(1.6rem, 2.3vw, 2rem); line-height: 1.2; }
.dashboard-welcome h1::after { display: none; }
.dashboard-welcome .page-subtitle { display: flex; flex-wrap: wrap; gap: 2px 12px; font-family: var(--font-ui); font-size: .8rem; line-height: 1.5; margin: 6px 0 0; }
.dashboard-welcome .page-actions { position: relative; align-self: center; }
.dashboard-welcome [data-dashboard-edit] { min-width: 40px; min-height: 40px; }
.dashboard-overview { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(300px, 1fr); gap: 20px; margin-bottom: 26px; }
.dashboard-overview > .stats { grid-template-columns: repeat(2,minmax(0,1fr)); margin: 0; gap: 12px; }
.dashboard-overview .stat { grid-template-columns: 1fr; padding: 18px; row-gap: 6px; }
.dashboard-overview .stat-icon { display: none; }
.dashboard-overview .stat-label { font-size: .8rem; line-height: 1.45; }
.dashboard-overview .stat-value { font-size: 2rem; }
.day-focus { position: relative; background: var(--surface); padding: 25px 27px; border-radius: var(--radius); border: 1px solid rgba(22,51,106,.09); box-shadow: var(--shadow-md); display: flex; flex-direction: column; justify-content: center; min-width: 0; }
.day-focus::before { content: ""; position: absolute; left: -1px; width: 3px; top: 26px; bottom: 26px; background: var(--parler-kupfer); border-radius: 0 3px 3px 0; }
.day-focus-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; margin-bottom: 19px; }
.day-focus .eyebrow { color: var(--grau); font-size: .68rem; }
.day-focus h2 { font-size: 2rem; line-height: 1.1; margin-bottom: 11px; letter-spacing: -.02em; overflow-wrap: anywhere; }
.day-focus-meta { margin: 0; color: var(--grau); font-size: .9rem; }
.day-focus-note { margin: 11px 0 0; font-size: .86rem; }
.day-focus-foot { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-top: 23px; flex-wrap: wrap; }
.day-focus-foot .small { color: var(--grau); }
/* Anmeldung: echte Funktion, ein Architekturdetail, deckende Formularfläche. */
.auth-page.auth-v3 { display: block; position: relative; isolation: isolate; background: var(--parler-papier); min-height: 100vh; }
.auth-v3 .auth-main { min-height: 100vh; padding: 42px 28px; align-items: center; }
.auth-v3 .auth-card { width: min(1050px,100%); display: grid; grid-template-columns: minmax(0,1.15fr) minmax(310px,1fr); gap: 52px; align-items: center; }
.auth-welcome { position: relative; padding: 22px 0; min-width: 0; }
.auth-v3 .auth-brand { margin-bottom: 28px; }
.auth-v3 .auth-brand .auth-mark { height: 50px; }
.auth-v3 .auth-brand .bare-line { display: none; }
.auth-v3 .auth-title { font-size: clamp(2.7rem,4vw,3.6rem); letter-spacing: -.025em; max-width: 430px; }
.auth-v3 .auth-intro { font-family: var(--font-ui); font-size: .95rem; line-height: 1.65; max-width: 345px; margin-top: 18px; }
.auth-architecture { display: block; width: 100%; height: auto; max-width: 490px; margin: 24px 0 0; opacity: .66; mix-blend-mode: multiply; pointer-events: none;
  -webkit-mask-image: linear-gradient(0deg, transparent, #000 9%, #000 90%, transparent); mask-image: linear-gradient(0deg, transparent, #000 9%, #000 90%, transparent); }
.auth-form-panel { padding: 30px; border-radius: 20px; border: 1px solid rgba(22,51,106,.08); background: #fff; box-shadow: 0 14px 44px rgba(22,51,106,.07), inset 0 1px 0 #fff; }
.auth-form-panel h2 { font-size: 1.8rem; margin-bottom: 22px; }
.auth-v3 .role-chips { margin-top: 23px; gap: 6px; }
.auth-v3 .auth-foot { font-size: .78rem; line-height: 1.6; }
@keyframes v3-dialog-in { from { opacity: 0; transform: translateY(14px) scale(.988); } to { opacity: 1; transform: translateY(0) scale(1); } }
@keyframes v3-fade-in { from { opacity: 0; } to { opacity: 1; } }
@keyframes v3-feedback-in { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: translateY(0); } }
@keyframes v3-check-in { from { transform: scale(.8); } to { transform: scale(1); } }
@media (max-width: 1180px) {
  .dashboard-overview { grid-template-columns: 1fr; }
  .dashboard-overview > .stats { grid-template-columns: repeat(4,minmax(0,1fr)); }
  .dashboard-welcome .page-title { max-width: 100%; }
  .auth-v3 .auth-card { gap: 34px; }
}
@media (max-width: 900px) {
  .main { padding-top: 24px; }
  .auth-v3 .auth-card { max-width: 450px; grid-template-columns: minmax(0,1fr); gap: 16px; }
  .auth-v3 .auth-main { padding: 28px 20px 38px; align-items: flex-start; }
  .auth-welcome { padding: 6px 0 12px; }
  .auth-v3 .auth-brand { margin-bottom: 20px; }
  .auth-v3 .auth-brand .auth-mark { height: 42px; }
  .auth-v3 .auth-title { font-size: 2.7rem; max-width: 290px; position: relative; z-index: 1; }
  .auth-v3 .auth-intro { max-width: 285px; font-size: .88rem; position: relative; z-index: 1; }
  .auth-architecture { position: absolute; z-index: -1; top: 30px; right: -10px; width: 69%; margin: 0; opacity: .25; }
  .auth-form-panel { padding: 24px; }
  .dashboard-welcome::before { opacity: .22; height: 120px; width: 60%; right: -8px; }
}
@media (max-width: 600px) {
  .dashboard-overview > .stats { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .dashboard-overview .stat { padding: 15px; }
  .day-focus { padding: 22px; }
  .day-focus h2 { font-size: 1.85rem; }
  .card-body { padding: 18px; }
  .page-head.dashboard-welcome { gap: 12px; margin-bottom: 16px; }
  .dashboard-welcome .page-actions { gap: 6px; }
  .dashboard-welcome .page-actions .btn { padding-left: 10px; padding-right: 10px; }
}
@media (prefers-reduced-transparency: reduce) {
  .topbar, .menu-panel, .suggest-box, .combo-list { background: var(--parler-papier); -webkit-backdrop-filter: none; backdrop-filter: none; }
  dialog.modal::backdrop { -webkit-backdrop-filter: none; backdrop-filter: none; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
  a.stat:hover, .tile:hover { transform: none; }
}
@media print {
  .dashboard-welcome::before, .auth-architecture { display: none !important; }
  .page-head.dashboard-welcome { min-height: 0; padding: 0; }
  .dashboard-overview { display: block; }
  .day-focus { box-shadow: none; border: 1px solid var(--linie-stark); break-inside: avoid; margin-bottom: 14px; }
  .card, .stat, .tile { box-shadow: none; }
}

body[data-module="admin_stammdaten"] .tabs, body[data-module="wahlfaecher"] .tabs, body[data-module="admin_import"] .tabs { flex-wrap: wrap; overflow: visible; }

.chat-list-row{position:relative}.chat-list-row .chat-item{padding-right:40px}.chat-delete{position:absolute;right:5px;top:25px;opacity:0}.chat-list-row:hover .chat-delete,.chat-list-row:focus-within .chat-delete{opacity:1}@media(hover:none){.chat-delete{opacity:1}}

.zuordnung-liste{max-height:420px;overflow-y:auto;display:grid;gap:10px;padding:8px}.zuordnung-liste .check{justify-content:flex-start}

#bulk-data,#bulk-users{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-bottom:16px}

/* 3.2: persönliche Navigation und ruhige, geschützte Dateivorschauen. */
.nav-edit{font-size:.8rem;gap:8px;margin-bottom:10px;width:100%;justify-content:flex-start}
#menu-editor{width:min(620px,calc(100vw - 24px));max-height:90dvh}
#menu-editor .modal-body{overflow-y:auto;max-height:65dvh}
.menu-editor-list{list-style:none;padding:0;margin:16px 0;display:grid;gap:6px}
.menu-editor-list li{display:flex;align-items:center;gap:6px;padding:8px;background:rgba(255,255,255,.72);border:1px solid var(--border);border-radius:12px;cursor:grab}
.menu-editor-list li.dragging{opacity:.5}
.menu-entry-title{flex:1;min-width:0;font-size:.9rem}
.menu-entry-title small{display:block;opacity:.65;font-size:.72rem}
.menu-star{color:#8b9298;font-size:1.25rem}
.menu-star[aria-pressed=true]{color:#97601b;background:#fff2cd}
.menu-editor-foot{flex-wrap:wrap;gap:8px}
.chat-file-card{display:block;width:280px;max-width:100%;overflow:hidden;border:1px solid rgba(90,100,110,.18);border-radius:12px;background:rgba(255,255,255,.7);color:var(--text);text-decoration:none;margin:6px 0}
.chat-file-card:hover{box-shadow:0 3px 12px rgba(0,0,0,.08)}
.chat-image-preview{display:block;width:100%;max-height:220px;object-fit:contain;background:rgba(255,255,255,.5)}
.chat-pdf-preview{height:188px;display:flex;align-items:center;justify-content:center;overflow:hidden;background:#edf0ef;color:#596465;font-size:.8rem}
.chat-pdf-preview canvas{display:block;max-width:100%;max-height:100%;object-fit:contain}
.chat-pdf-preview.preview-unavailable{height:64px}
.chat-file-info{display:flex;align-items:center;gap:10px;padding:12px}
.chat-file-info>span{min-width:0}
.chat-file-info strong{display:block;font-size:.85rem;overflow-wrap:anywhere}
.chat-file-info small{display:block;font-size:.72rem;opacity:.7;margin-top:3px}
@media(max-width:600px){.chat-file-card{width:230px}.menu-editor-list li{padding:5px;gap:2px}.menu-editor-list .btn-icon{min-width:36px;min-height:40px}}
@media screen{.sidebar{display:flex;flex-direction:column;overflow:hidden}.sidebar-inner{flex:1;min-height:0;overflow-y:auto;padding-bottom:12px}.sidebar-foot{flex:none;margin:0;padding:8px 14px;background:rgba(249,248,244,.95)}.sidebar-foot::before{display:none}.sidebar-foot>div{font-size:.65rem}.nav-edit{margin-bottom:2px;padding:5px 8px}}
.msg.mine a.chat-file-card,.msg a.chat-file-card{color:var(--parler-tinte,#16336a);text-decoration:none;background:rgba(255,255,255,.94)}
.dashboard-personal-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-top:0}.dashboard-personal-grid>.dashboard-overview,.dashboard-personal-grid>.stats{grid-column:1/-1}.dashboard-personal-grid>.card{margin:0}.dashboard-editor{width:min(680px,95vw);max-height:90dvh}.dashboard-editor .modal-body{max-height:60dvh;overflow:auto}.dashboard-editor .modal-foot{flex-wrap:wrap}.dashboard-editor label{font-size:.9rem}.dashboard-personal-grid>[hidden]{display:none!important}@media(max-width:700px){.dashboard-personal-grid{grid-template-columns:1fr}}
.chat-compose-meta{display:flex;justify-content:space-between;gap:8px;padding:5px 14px;color:var(--text-muted);font-size:.72rem;flex-wrap:wrap}.chat-input{flex-wrap:wrap}.chat-schedule{flex-basis:100%;display:grid;gap:4px}.chat-schedule[hidden]{display:none}.chat-schedule label{font-size:.8rem}.chat-planned{max-height:110px;overflow:auto;font-size:.75rem;background:var(--info-bg)}.chat-planned>div{padding:6px 14px;display:flex;align-items:center;justify-content:space-between;gap:8px}.draft-status{padding:10px 14px;margin-bottom:12px;border-radius:10px;background:var(--info-bg);color:var(--info);font-size:.86rem}.modal textarea[readonly]{width:100%}@media(max-width:600px){.chat-input{gap:5px}.chat-input .btn{padding:8px}.chat-input textarea{min-width:100px}.chat-compose-meta{font-size:.68rem}}
.chat-input{display:grid;grid-template-columns:34px minmax(0,1fr) 40px 44px;align-items:end}.chat-input textarea{width:100%;min-width:0}.chat-schedule{grid-column:1/-1}
.draft-conflict{max-height:90dvh}.draft-conflict .modal-body{max-height:60dvh;overflow:auto}.draft-conflict .modal-foot{flex-wrap:wrap}

/* Alle Kachelebenen folgen den Rundungen, ohne Suchlisten abzuschneiden. */
.card > .card-head:first-child { border-radius: calc(var(--radius) - 1px) calc(var(--radius) - 1px) 0 0; }
.card > .card-body:first-child { border-top-left-radius:inherit; border-top-right-radius:inherit; }
.card > .card-body:last-child { border-bottom-left-radius:inherit; border-bottom-right-radius:inherit; }
.card > .card-body:only-child { border-radius:inherit; }
.card-body.flush > .table-wrap { border-radius:inherit; }
.main > .grid, .main > form > .grid { margin-bottom:22px; }
.grid { row-gap:22px; column-gap:22px; }
.theme-mark-dark { display:none!important; }
.cal td[data-ka-date] { cursor:pointer; }
.cal td[data-ka-date]:hover, .cal td[data-ka-date]:focus-visible { outline:2px solid var(--accent); outline-offset:-2px; }
.kb-previous { margin-bottom:18px; padding:16px; border:1px solid var(--border); border-radius:var(--radius-sm); background:var(--surface-2); }
.kb-previous p:last-child { margin-bottom:0; }
.nta-item + .nta-item { border-top:1px solid var(--border); padding-top:18px; margin-top:18px; }
@media print { .theme-mark-dark { display:none!important; }.theme-mark-light { display:block!important; } }

.klassenstatistik th { white-space:normal; }

/* Rechtliche Informationen bleiben in jeder Seitenfußleiste erreichbar. */
.legal-footer{display:flex;flex-wrap:wrap;gap:12px 24px;padding:24px 0 8px;margin-top:28px;border-top:1px solid var(--border);font-size:.85rem}
.legal-footer a{color:var(--link,var(--accent));text-decoration:underline;text-underline-offset:3px}
.auth-main>.legal-footer{max-width:1060px;width:100%;padding:20px 24px;margin:20px auto 0}
.legal-document{max-width:850px;line-height:1.75;overflow-wrap:anywhere}
.legal-confirm{margin:22px 0;gap:16px}.legal-confirm .check{align-items:flex-start}.legal-confirm input{flex:none;margin-top:4px}
/* Rechtliche Links bleiben unter dem Inhalt, auch auf kurzen Seiten. */
.auth-v3 .auth-main{flex-direction:column;width:100%;gap:0}
.auth-main>.auth-card{flex-shrink:0}
.legal-confirm{display:flex;flex-direction:column;align-items:stretch}
.legal-confirm>.check{display:flex;width:100%}
@media screen{
  .layout>.main{display:flex;flex-direction:column;padding-bottom:0}
  .layout>.main>*{flex-shrink:0}
  .layout>.main>.legal-footer{margin-top:auto;min-height:54px;padding:16px 0;align-items:center}
  .sidebar-foot{min-height:54px;display:flex;flex-direction:column;justify-content:center}
}
.tt-day-short{display:none}
@media(max-width:760px){
  .tt-day-full{display:none}.tt-day-short{display:inline}
  .tt-wrap{width:100%;overflow:visible}
  table.tt{min-width:0;border-spacing:2px;width:100%}
  table.tt th{padding:7px 1px;font-size:.78rem}
  table.tt th.tt-corner,td.tt-period{width:38px;font-size:.66rem;padding:4px 1px}
  table.tt th .tt-date{font-size:.62rem}
  td.tt-period span{white-space:normal;overflow-wrap:anywhere;font-size:.6rem}
  td.tt-period strong{font-size:1.15rem}
  td.tt-cell{padding:1px}
  .tt-lesson{padding:5px 2px;border-left-width:2px;font-size:.68rem;overflow-wrap:anywhere}
  .tt-lesson .tt-subject{font-size:.75rem}
  .tt-lesson .tt-meta{white-space:normal;overflow-wrap:anywhere}
  .tt-lesson .tt-flag{position:static;display:block;font-size:.52rem;padding:1px;letter-spacing:0}
}
body[data-module="admin_einstellungen"] .tabs{flex-wrap:wrap;overflow:visible}

.zuordnung-filter{align-items:end}.zuordnung-filter .field{flex:1}.zuordnung-karten{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;margin:16px 0 24px}.zuordnung-karte{display:flex;flex-direction:column;gap:8px;padding:20px;border:1px solid var(--border);border-radius:16px;background:var(--surface);color:var(--text);text-decoration:none!important}.zuordnung-karte:hover,.zuordnung-karte:focus-visible,.zuordnung-karte.active{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent)}.zuordnung-karte small{overflow-wrap:anywhere;color:var(--text-muted)}.zuordnung-grund{font-size:.8rem;padding:8px;background:var(--info-bg);border-radius:8px}.zuordnung-karte b{margin-top:auto;color:var(--accent)}.zuordnung-editor{scroll-margin-top:100px}.zuordnung-editor .zuordnung-liste label{padding:10px;border-bottom:1px solid var(--border)}

.chat-poll{min-width:min(250px,65vw);max-width:100%;padding:10px}.chat-poll fieldset{padding:0;border:0;margin:0}.poll-option{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--border);cursor:pointer}.poll-option span{flex:1;overflow-wrap:anywhere}.poll-option input{flex:none}.chat-poll .form-actions{flex-wrap:wrap;gap:6px}.chat-poll-new{align-self:flex-start;margin:6px 12px}.chat-poll .help,.chat-poll .muted{color:inherit;opacity:.8}

/* Sprachwahl: eigene Auswahl pro Konto, unveränderte Schul- und Benutzerdaten. */
.language-switch{margin:0;flex:0 0 auto}.language-switch label{display:flex;align-items:center;gap:5px;margin:0}.language-switch select{width:auto;max-width:120px;font-size:12px;padding:5px 20px 5px 6px;min-height:30px}.auth-form-panel>.language-switch{display:flex;justify-content:flex-end;margin-bottom:14px}.topbar>.language-switch{margin-right:8px}@media(max-width:600px){.topbar>.language-switch select{max-width:85px}.topbar>.language-switch{margin-right:0}.language-switch label>span[aria-hidden]{display:none}}

/* Rollenansicht und Klassenorganisation */
.preview-banner{position:sticky;top:var(--topbar-height,64px);z-index:35;display:flex;gap:1rem;align-items:center;justify-content:center;flex-wrap:wrap;padding:.65rem 1rem;background:var(--surface,#f3e4c9);color:var(--text,#16336a);border-bottom:2px solid #bd8456}.checklist-grid{display:grid;gap:.6rem}.checklist-row{display:flex;gap:.8rem;align-items:center;padding:.65rem;border-bottom:1px solid var(--border,#ddd)}.ticket-history{border-left:2px solid var(--border,#ddd);padding-left:1rem}.mail-layout{display:grid;grid-template-columns:minmax(160px,1fr) minmax(0,4fr);gap:1rem}@media(max-width:700px){.mail-layout{grid-template-columns:1fr}.preview-banner{position:relative;top:auto}}

/* Aufklappbare Klassenlisten und Tickets mit gut erreichbarer Kopfzeile. */
details.card > summary.card-header { padding:16px 22px; cursor:pointer; border-radius:inherit; font-weight:700; }
details.card[open] > summary.card-header { border-bottom:1px solid var(--border); border-radius:var(--radius) var(--radius) 0 0; }
details.card > summary.card-header:focus-visible { outline:3px solid var(--feld-rand); outline-offset:2px; }

/* Rechtliches: Beschriftungen teilen sich eine Zeile, Eingaben bleiben gleich hoch. */
.legal-details-grid > .field { display:grid; grid-template-rows:subgrid; grid-row:span 2; gap:6px; }
.legal-details-grid > .field > label { align-self:end; }
.legal-details-grid > .field > input,
.legal-details-grid > .field > textarea { height:96px; min-height:96px; margin:0; }
.legal-review-confirmation { margin-top:28px; padding:20px; border:2px solid var(--feld-rand); border-radius:var(--radius-sm); }
.legal-review-confirmation .check { display:flex; align-items:flex-start; gap:14px; font-size:1rem; line-height:1.5; }
.legal-review-confirmation input[type=checkbox] { flex:0 0 24px; width:24px; height:24px; margin-top:1px; }
@supports not (grid-template-rows:subgrid) {
  .legal-details-grid > .field { display:flex; }
  .legal-details-grid > .field > label { min-height:5em; display:flex; align-items:flex-end; }
}
@media(max-width:600px) { .legal-review-confirmation { padding:16px; } }

/* Kontrast und mobile Formularanordnung */
.topbar input[type=search] { border:2px solid var(--feld-rand); background:var(--surface,#fff); color:var(--text,#16336a); }
.ticket-history .ticket-needs-reply { border-left:4px solid var(--parler-tinte); font-weight:600; padding:16px; }
.chat-list-row .chat-delete:hover,.chat-list-row .chat-delete:focus-visible { background:transparent; color:#c92a2a; }
.chat-list-row .chat-delete { width:24px;height:24px;padding:3px;right:7px;top:7px;box-shadow:none; }
@media(max-width:600px) { .timetable-filters,.tt-filters { display:flex; flex-direction:column; align-items:stretch; } .timetable-filters > *, .tt-filters > * { width:100%; } }

@media(max-width:600px) { .tt-toolbar { flex-direction:column; align-items:stretch; } .tt-toolbar > .pills { order:-1; } .tt-toolbar .inline-form, .tt-toolbar .inline-form select { width:100%; } }
html[data-theme=dark] .btn-danger { background:#ffb4ab; color:#4d0000; }
html[data-theme=dark] .btn-success { background:#a8e0b2; color:#073c18; }

.poll-result { display:flex; align-items:center; gap:12px; }
.poll-result progress { flex:1; height:12px; accent-color:var(--parler-tinte); }
.poll-voters { margin:4px 0 12px; overflow-wrap:anywhere; }

.topbar-search input::placeholder { color:var(--muted);opacity:1; }
.ticket-history .ticket-needs-reply { background:var(--accent-50);border-radius:12px;margin-block:16px; }

.chat-attach {position:relative}.chat-attach-menu {position:absolute;bottom:calc(100% + 12px);left:0;z-index:40;width:min(300px,80vw);padding:12px;background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:14px;box-shadow:0 12px 36px #0002}.chat-attach-menu:not([hidden]) {display:grid;gap:8px}.chat-attach-menu button {text-align:left;padding:8px;border:0;border-radius:8px;background:var(--surface-2);color:var(--text)}.chat-once-view img {display:block;max-width:100%;max-height:75vh;margin-bottom:16px}
.role-preview-link{flex:0 0 34px;width:34px;height:34px;padding:6px}
.seat-plan{overflow:auto;max-width:100%}.seat-row{display:flex;gap:12px;min-width:760px;margin:12px 0}.seat-desk{display:flex;gap:6px;flex:1;background:var(--surface,#fff);border:2px solid var(--border,#ccd3df);border-radius:12px;padding:8px}.seat-place{min-width:0;flex:1;display:flex;flex-direction:column;gap:6px;font-size:12px}.seat-place select{width:100%;font-size:12px}.seat-aisle{width:48px;align-self:center;font-size:10px;text-align:center;opacity:.55}
@media(max-width:900px){.topbar .role-preview-link{flex-basis:28px;width:28px;height:28px;margin:0}.topbar{min-width:0}}

@media(max-width:600px){.topbar{gap:4px;padding:0 8px}.topbar .nav-toggle,.topbar .topbar-icon{width:32px;height:32px}.topbar .role-preview-link{width:28px;height:28px;flex-basis:28px}.topbar .brand-mark{height:32px}.topbar .tour-start{width:30px;height:30px;flex-basis:30px}.topbar .user-menu summary{padding:0;gap:0}.topbar .user-menu summary>svg{display:none}.topbar .avatar{width:30px;height:30px}.topbar>.language-switch select{max-width:78px}.topbar-spacer{min-width:0}}
@media(max-width:360px){.topbar{gap:2px;padding:0 6px}.topbar .topbar-icon,.topbar .nav-toggle{width:28px;height:28px}.topbar .brand-mark{height:28px}.topbar>.language-switch select{max-width:68px}}
