/* ClassHum: a calm classroom, with no external assets or font requests. */
:root {
  --paper:#f6f5f0; --bg1:#f6f5f0; --bg2:#eeeee7; --karte:#fff;
  --karte2:#f1f3ed; --linie:#dce1d7; --text:#243c32; --gedimmt:#52665b;
  --leise:#65736b; --blau:#24634b; --tealgg:#487e61; --gruen:#2c7251;
  --amber:#a25b22; --koralle:#b0443b; --cyanhell:#d8ec92;
  --verlauf:#245b43; --shadow:0 8px 24px -18px #223e3433;
}
* { box-sizing:border-box; margin:0; padding:0; }
html { scroll-behavior:smooth; }
body { background:var(--paper); color:var(--text); font-family:'Segoe UI',Arial,sans-serif; min-height:100vh; line-height:1.55; -webkit-font-smoothing:antialiased; }
a { color:var(--blau); text-underline-offset:4px; }
button,input,textarea,select { font:inherit; }
button,a,input,textarea,select { -webkit-tap-highlight-color:transparent; }
button { cursor:pointer; border:1px solid transparent; padding:12px 19px; background:var(--verlauf); color:#fff; border-radius:10px; font-size:.88rem; font-weight:650; line-height:1.35; transition:background .15s,transform .15s,border-color .15s; }
button:hover { background:#184832; }
button:active { transform:translateY(1px); }
button:disabled { opacity:.5; cursor:wait; }
button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible { outline:3px solid #b56b31; outline-offset:3px; }
button.sekundaer,.mini-knopf,.antwort-toggle { background:#fff; color:var(--blau); border:1px solid var(--linie); box-shadow:none; }
button.sekundaer:hover,.mini-knopf:hover,.antwort-toggle:hover { background:#f0f4ee; border-color:#92af9b; }
button.gefahr { background:#aa463c; }
button.gefahr:hover { background:#8e352b; }
button.voll { width:100%; }
button.text-button,.text-button { background:transparent; color:var(--blau); padding:8px 0; text-decoration:underline; text-underline-offset:4px; box-shadow:none; }
input,textarea,select { width:100%; padding:12px 14px; border:1px solid var(--linie); border-radius:9px; background:#fbfcf9; color:var(--text); margin:7px 0 13px; font-size:.94rem; }
textarea { resize:vertical; min-height:90px; }
input:focus,textarea:focus,select:focus { background:#fff; border-color:var(--blau); }
::placeholder { color:#758177; opacity:1; }
label,.field-label { font-size:.78rem; font-weight:650; color:var(--gedimmt); }
h1,h2,h3 { line-height:1.18; font-weight:650; letter-spacing:-.025em; }
h1 { font-family:Georgia,'Times New Roman',serif; font-weight:400; font-size:clamp(2.4rem,4.5vw,3.75rem); letter-spacing:-.045em; }
h2 { font-size:1.16rem; }
h3 { font-size:1rem; }
[hidden] { display:none!important; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.skip-link { position:fixed; top:-100px; left:18px; z-index:30; padding:12px; background:white; }
.skip-link:focus { top:12px; }
.banner-wrap { border-bottom:1px solid var(--linie); background:#ffffffa8; }
.banner { max-width:1280px; margin:auto; min-height:86px; padding:18px 40px; display:flex; align-items:center; gap:25px; }
.brand { display:flex; align-items:center; gap:10px; color:var(--text); font-size:1.65rem; font-weight:750; letter-spacing:-1.2px; text-decoration:none; }
.brand-icon { display:grid; place-items:center; background:#255e46; color:#deefad; border-radius:10px; width:39px; height:39px; font-size:2rem; line-height:1; }
.brand-period { color:#bd6747; }
.view-label { border-left:1px solid #ccd4c9; padding-left:23px; font-size:.79rem; color:var(--gedimmt); }
.banner-tools { margin-left:auto; }
.connection-status { display:inline-flex; align-items:center; gap:7px; color:var(--leise); font-size:.74rem; white-space:nowrap; }
.connection-status::before { content:''; width:6px; height:6px; background:#b87137; border-radius:50%; }
.connection-status.connected::before { background:#41805a; box-shadow:0 0 0 3px #41805a13; }
.sprach-wahl { display:flex; gap:2px; padding:3px; border:1px solid var(--linie); border-radius:8px; }
.sprach-wahl button { border-radius:5px; padding:6px 9px; min-height:30px; background:transparent; color:var(--leise); font-size:.7rem; }
.sprach-wahl button.aktiv { background:var(--text); color:#fff; }
.connection-warning { max-width:1200px; margin:14px auto; background:#fff0d5; color:#784b1f; border:1px solid #d8bb8a; border-radius:10px; padding:12px 18px; font-size:.85rem; }
.container { max-width:1280px; margin:auto; padding:0 40px 145px; }
body.teacher .container { padding-bottom:64px; }
body.beamer .container { padding-bottom:40px; }
.page-heading { display:flex; justify-content:space-between; align-items:center; gap:24px; padding:43px 0 30px; }
.page-heading h1 { margin:9px 0 10px; }
.page-heading > .eyebrow { margin-bottom:10px; }
.page-heading:has(> .eyebrow) { display:block; }
.eyebrow { display:block; text-transform:uppercase; font-size:.65rem; letter-spacing:1.8px; font-weight:750; color:var(--leise); margin-bottom:9px; }
.subtitle { color:var(--leise); max-width:650px; font-size:.98rem; line-height:1.65; }
.heading-mark { font-size:6rem; color:#c5d5b7; line-height:1; font-weight:400; margin-right:16px; }
.karte { background:var(--karte); border:1px solid var(--linie); border-radius:14px; padding:24px; margin:16px 0; box-shadow:var(--shadow); }
.karte > h2 + p { margin-top:10px; }
.hinweis { color:var(--leise); font-size:.85rem; line-height:1.65; }
.fehler { color:var(--koralle); font-size:.84rem; margin:8px 0; }
.fehler:empty { margin:0; }
.zentriert { text-align:center; }
.section-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; margin:0 0 15px; }
.section-heading h2 { font-size:1.08rem; }
.board-count { background:#e9ede4; color:var(--gedimmt); padding:3px 10px; border-radius:20px; font-size:.75rem; }
.student-layout { display:grid; grid-template-columns:330px minmax(0,1fr); gap:34px; align-items:start; }
.compose-column { position:sticky; top:22px; }
.compose-card { margin:0; padding:23px; }
.compose-card h2 { font-family:Georgia,serif; font-size:1.5rem; font-weight:400; margin-bottom:22px; }
.compose-hint { margin-top:14px; font-size:.7rem; color:var(--leise); text-align:center; line-height:1.7; }
.tab-leiste { display:flex; gap:7px; margin:10px 0; }
.tab-leiste button { flex:1; font-size:.75rem; padding:10px 6px; border-radius:8px; }
.tab-leiste button.inaktiv { background:#f2f4ee; color:var(--gedimmt); border:1px solid #e3e7dc; }
.compose-tabs { background:#f2f4ed; border-radius:9px; padding:4px; gap:2px; }
.compose-tabs button { font-size:.74rem; padding:9px 4px; }
.compose-tabs button.inaktiv { border-color:transparent; }
.appreciation-card { margin-top:20px; padding:24px; border-radius:14px; background:#eaf0df; border:1px solid #dfe8d3; }
.appreciation-card .eyebrow { font-size:.62rem; }
.appreciation-card h3 { font-size:.88rem; line-height:1.45; margin:15px 0 8px; }
.appreciation-card p { font-size:.76rem; color:#596b50; line-height:1.75; }
.supply-grid { display:grid; grid-template-columns:1fr 1fr; gap:15px; margin:15px 0; }
.supply-grid > div + div { border-left:1px solid #cddbc0; padding-left:22px; }
.supply-grid b { display:block; font-size:1.8rem; font-weight:500; color:#3b5b30; }
.supply-grid span { font-size:.72rem; color:#586d4e; }
.board-search { margin:0 0 13px; background:#fff; padding:12px 16px; }
.board-tabs { display:flex; flex-wrap:wrap; gap:6px; margin:0 0 20px; }
.board-tabs button,.filter-chip { background:transparent; color:var(--leise); font-size:.73rem; font-weight:550; padding:7px 11px; border:1px solid transparent; border-radius:7px; }
.board-tabs button:hover { background:#e9ede4; }
.board-tabs button.active,.board-tabs button.aktiv,.board-tabs button[aria-pressed=true] { background:#e7eddf; color:#2e573d; border-color:#d9e2d0; }
.board-tabs button span { margin-left:4px; font-size:.67rem; opacity:.8; }
.board-feed { min-height:230px; }
.beitrag { background:#fff; border:1px solid var(--linie); border-radius:12px; padding:21px 23px; margin:0 0 14px; box-shadow:var(--shadow); }
.beitrag.an-lehrer { border-left:3px solid #bf8b5b; padding-left:21px; }
.beitrag.erledigt { background:#f5f7f1; }
.beitrag.erkenntnis { background:#fcfcf6; border-color:#dce0cd; }
.beitrag-kopf { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:8px; margin-bottom:11px; }
.beitrag-kopf .autor { font-size:.78rem; color:var(--gedimmt); font-weight:650; }
.beitrag-text { font-size:1rem; font-weight:550; line-height:1.65; margin:4px 0 13px; white-space:pre-wrap; overflow-wrap:anywhere; }
.marke-pille { display:inline-block; padding:3px 9px; font-size:.63rem; font-weight:650; border-radius:5px; white-space:nowrap; }
.marke-pille.schueler { background:#edf2e8; color:#426642; }
.marke-pille.lehrer { background:#f9eddf; color:#946039; }
.marke-pille.gruen { background:#e5eedf; color:#48673e; }
.marke-pille.teal { background:#eeefdb; color:#696c31; }
.beitrag-aktionen { display:flex; gap:7px; flex-wrap:wrap; padding-top:12px; border-top:1px solid #eef0e8; margin-top:13px; align-items:center; }
.beitrag-aktionen button,.mini-knopf,.antwort-toggle { font-size:.74rem; padding:8px 12px; border-radius:7px; }
.mini-knopf.gold { color:#8b6429; border-color:#e7d3a1; background:#fff9e9; }
.anerkennung { display:inline-block; font-size:.7rem; color:#8b6429; padding:3px 7px; background:#fcf3dc; border-radius:5px; }
.antwort-toggle { margin:6px 0; }
.antwort-toggle .neu { color:var(--koralle); }
.antwort-liste { padding:3px 0 3px 16px; border-left:2px solid #dce5d5; margin:12px 0; }
.antwort { padding:7px 0; font-size:.86rem; line-height:1.7; overflow-wrap:anywhere; white-space:pre-wrap; }
.antwort .wer { font-weight:650; color:var(--blau); }
.verdeckt { background:repeating-linear-gradient(135deg,#f3f3e9,#f3f3e9 5px,#f8f8ef 5px,#f8f8ef 10px); border:1px dashed #cdd3ba; border-radius:9px; color:#697259; font-size:.79rem; padding:18px; text-align:center; margin:10px 0; }
.aufgedeckt { background:#edf2e6; border:1px solid #d7e2ca; border-radius:9px; padding:15px; margin:10px 0; font-size:.9rem; white-space:pre-wrap; overflow-wrap:anywhere; }
.empty-state { min-height:280px; border:1px dashed #ced7c7; border-radius:13px; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:32px; background:#f0f2e9; }
.empty-state h3 { font-family:Georgia,serif; font-size:1.4rem; font-weight:400; margin:12px 0; }
.empty-state p { color:var(--leise); font-size:.84rem; max-width:340px; }
.empty-symbol { display:block; font-size:3rem; color:#73945d; font-weight:300; line-height:1.2; margin:10px 0; }
.board-footnote { text-align:center; font-size:.71rem; color:#7b887e; margin:25px 0 0; }
.focus-banner { background:#264f3d; color:#f2f6e6; padding:19px 24px; border-radius:12px; display:flex; justify-content:space-between; align-items:center; gap:20px; margin:0 0 26px; }
.focus-banner .eyebrow { color:#b9ccab; margin:0 0 5px; font-size:.61rem; }
.focus-banner strong { display:block; font-size:1rem; font-weight:500; overflow-wrap:anywhere; }
.countdown { font-variant-numeric:tabular-nums; font-size:1.85rem; letter-spacing:.02em; white-space:nowrap; line-height:1.1; color:#e2edbc; }
.countdown.timer-finished { font-size:.92rem; white-space:normal; text-align:right; }
.focus-symbol { font-size:1.8rem; color:#cddda4; }
.ampel-leiste { position:fixed; z-index:10; bottom:18px; left:50%; transform:translateX(-50%); display:flex; align-items:center; justify-content:center; gap:8px; padding:13px 18px; width:max-content; max-width:calc(100% - 24px); border-radius:16px; border:1px solid #d6ded0; background:#fffffff2; box-shadow:0 5px 25px #253d3220; backdrop-filter:blur(12px); }
.ampel-leiste .frage { font-size:.7rem; line-height:1.4; margin-right:12px; color:var(--gedimmt); }
.ampel-knopf { display:flex; align-items:center; gap:7px; padding:11px 14px; color:var(--gedimmt); background:#f5f6f1; border:1px solid #e8ebe2; font-size:.73rem; font-weight:550; white-space:nowrap; }
.ampel-knopf > span:first-child { font-size:1.1rem; line-height:1; }
.ampel-knopf[data-farbe=gruen] > span:first-child { color:#5d8651; }
.ampel-knopf[data-farbe=gelb] > span:first-child { color:#c79d36; }
.ampel-knopf[data-farbe=rot] > span:first-child { color:#c16953; }
.ampel-knopf:hover { color:var(--text); background:#eaf0e4; }
.ampel-knopf.gewaehlt { border-color:#607f50; background:#eaf0e2; box-shadow:0 0 0 1px #607f50; color:#254a34; }
.join-layout { display:grid; grid-template-columns:1.15fr .85fr; gap:90px; align-items:center; min-height:calc(100vh - 180px); padding:45px 40px; }
.join-intro h1 { margin:14px 0 22px; max-width:570px; font-size:clamp(2.5rem,4.7vw,4.2rem); }
.join-intro .subtitle { max-width:410px; }
.join-card { padding:32px; }
.join-card h2 { font-size:1.35rem; margin:12px 0; }
.join-card .hinweis { margin:0 0 26px; }
.privacy-note { font-size:.73rem; color:var(--leise); margin-top:24px; padding-top:20px; border-top:1px solid #e6e9e1; }
.join-steps { display:flex; gap:20px; list-style:none; counter-reset:steps; margin-top:26px; }
.join-steps li { flex:1; font-size:.73rem; color:var(--gedimmt); counter-increment:steps; }
.join-steps li::before { content:'0' counter(steps); display:block; font-size:.66rem; color:#9a775a; letter-spacing:1px; margin-bottom:6px; }
.connection-art { position:relative; height:140px; width:280px; margin:27px 0 0; }
.art-orbit { position:absolute; width:145px; height:92px; border:1px solid #bdcdae; border-radius:50%; transform:rotate(-28deg); top:18px; left:20px; }
.orbit-two { left:85px; transform:rotate(25deg); }
.art-node { position:absolute; width:44px; height:44px; display:grid; place-items:center; border-radius:50%; font-family:Georgia,serif; font-size:1.6rem; background:#e1eacb; color:#4b6940; }
.node-one { top:34px; left:0; background:#eacdb7; color:#8f5934; }
.node-two { top:0; left:119px; }
.node-three { top:64px; left:210px; background:#c5d8bb; }
.art-caption { position:absolute; left:77px; bottom:5px; font-size:.55rem; letter-spacing:2px; text-transform:uppercase; color:#839078; }
.waiting-card { padding:60px 24px; max-width:760px; margin:10px auto; }
.waiting-card h2 { font-family:Georgia,serif; font-weight:400; font-size:2rem; }
.waiting-card p { max-width:420px; margin:auto; }
.dashboard-grid { display:grid; grid-template-columns:minmax(0,1fr) 350px; gap:28px; align-items:start; }
.dashboard-main,.dashboard-side,.board-column { min-width:0; }
.dashboard-side > .karte:first-child,.dashboard-main > .karte:first-child { margin-top:0; }
.dashboard-side .karte { padding:22px; }
.stat-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:13px; margin:0 0 25px; }
.stat-card { background:#fff; border:1px solid var(--linie); border-radius:12px; padding:19px 20px; }
.stat-card strong,.stat-card b { display:block; font-size:2rem; font-weight:450; line-height:1.2; margin:6px 0; font-variant-numeric:tabular-nums; }
.stat-card span,.stat-card small { color:var(--leise); font-size:.75rem; }
.session-strip { display:flex; align-items:center; justify-content:space-between; gap:14px; flex-wrap:wrap; margin:0 0 20px; font-size:.82rem; }
.action-row { display:flex; gap:8px; flex-wrap:wrap; align-items:center; margin-top:14px; }
.action-row button { font-size:.77rem; padding:10px 13px; }
.focus-form { margin-top:15px; }
.focus-duration { max-width:120px; }
.teacher-login { max-width:480px; margin:25px auto; padding:32px; }
.teacher-login label { display:block; margin-top:18px; }
.auth-form label { margin-top:14px; }
.auth-form #authSubmit { margin-top:6px; }
.auth-divider { display:flex; align-items:center; gap:12px; margin:20px 0 14px; color:var(--leise); font-size:.75rem; }
.auth-divider::before,.auth-divider::after { content:''; flex:1; height:1px; background:var(--linie); }
.google-button { display:flex; align-items:center; justify-content:center; gap:10px; }
.google-g { display:grid; place-items:center; width:20px; height:20px; border-radius:50%; background:#fff; border:1px solid var(--linie); color:#4285f4; font-weight:800; font-size:.8rem; }
.puls-balken { height:13px; border-radius:9px; overflow:hidden; display:flex; background:#edf0e8; margin-top:18px; }
.puls-balken div { height:100%; transition:width .4s ease; }
.p-gruen { background:#6d985a; }.p-gelb { background:#dab552; }.p-rot { background:#c97660; }
.ampel-zahlen,.pulse-legend { display:flex; gap:16px; justify-content:space-between; margin:13px 0; font-size:.81rem; }
.pulse-label { font-size:.7rem; color:var(--leise); }
.roster-list { margin-top:15px; }
.roster-person { padding:14px 0; border-top:1px solid #e7ebe1; }
.roster-identity { display:flex; align-items:center; gap:8px; font-size:.88rem; overflow-wrap:anywhere; }
.roster-actions { display:flex; flex-wrap:wrap; gap:5px; margin-top:9px; }
.roster-actions button { padding:6px 9px; min-width:33px; font-size:.72rem; }
.online-punkt { display:inline-block; width:7px; height:7px; border-radius:50%; background:#c4cbc0; margin-right:5px; }
.online-punkt.an { background:#5c8b4c; }
.konto-chip { border:1px solid var(--linie); border-radius:6px; padding:4px 9px; font-size:.8rem; }
.rueckblick-zeile { display:flex; justify-content:space-between; gap:12px; padding:9px 0; border-bottom:1px solid #e6eade; font-size:.87rem; }
.rueckblick-zeile b { font-variant-numeric:tabular-nums; }
table.beteiligung { width:100%; border-collapse:collapse; font-size:.8rem; }
table.beteiligung th,table.beteiligung td { text-align:left; padding:10px 8px; border-bottom:1px solid #e4e8de; white-space:nowrap; }
table.beteiligung th { font-size:.71rem; color:var(--leise); }
.summary-panel { margin-top:20px; }
.projector-stage { display:grid; grid-template-columns:minmax(0,1.5fr) minmax(280px,1fr); align-items:center; gap:50px; min-height:65vh; padding:35px 0; }
.projector-title { font-family:Georgia,serif; font-size:clamp(2.6rem,5vw,4.8rem); font-weight:400; line-height:1.08; letter-spacing:-.04em; margin:15px 0 22px; overflow-wrap:anywhere; }
.projector-note { font-size:1.05rem; color:var(--leise); line-height:1.8; max-width:600px; }
.projector-stats { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; border-top:1px solid #d7dfce; margin-top:35px; padding-top:25px; }
.projector-stat strong { display:block; font-size:2.3rem; font-weight:450; }
.projector-stat span { color:var(--leise); font-size:.8rem; }
.qr-box { text-align:center; }
.qr-box img { display:block; width:min(100%,300px); height:auto; aspect-ratio:1; margin:18px auto; border:1px solid #e5e9de; border-radius:12px; background:white; padding:14px; }
.qr-box.qr-small img { width:180px; }
.qr-box .eyebrow { margin-bottom:12px; }
.join-link { display:flex; justify-content:center; align-items:center; flex-wrap:wrap; gap:9px; margin-top:15px; }
.join-link .url { font-size:.91rem; overflow-wrap:anywhere; color:var(--blau); }
.join-link .kopieren { padding:7px 12px; font-size:.74rem; background:#f1f4eb; color:var(--blau); }
.beamer-spalten { display:grid; grid-template-columns:1fr 1fr; gap:25px; }
body.beamer .focus-banner { padding:28px 32px; }
body.beamer .focus-banner strong { font-size:1.5rem; }
body.beamer .countdown { font-size:3.8rem; }
body.beamer .countdown.timer-finished { font-size:1.5rem; }
body.beamer .gross-titel { font-family:Georgia,serif; font-size:2.6rem; text-align:center; margin:35px 0; font-weight:400; }
.ampel-riesig { display:flex; justify-content:center; gap:55px; padding:30px 0; }
.ampel-riesig .topf { text-align:center; }.ampel-riesig .zahl { font-size:4rem; }.ampel-riesig .symbol { font-size:2rem; }
.notice { position:fixed; bottom:110px; left:50%; transform:translateX(-50%); z-index:40; max-width:min(560px,calc(100% - 32px)); width:max-content; padding:14px 20px; border-radius:10px; background:#fff5e9; color:#87402e; border:1px solid #d9a796; box-shadow:0 8px 30px #243c3220; font-size:.87rem; }
.notice.success { background:#edf4e5; border-color:#9bb48a; color:#35532a; }
body.teacher .notice,body.beamer .notice { bottom:24px; }
@media(min-width:1450px) { .banner,.container { max-width:1360px; } .student-layout { grid-template-columns:350px minmax(0,1fr); gap:44px; } }
@media(max-width:1000px) { .banner { padding:18px 25px; gap:15px; }.container { padding-left:25px;padding-right:25px; }.student-layout { grid-template-columns:290px minmax(0,1fr);gap:22px; }.join-layout { padding:40px 0;gap:40px; }.dashboard-grid { grid-template-columns:minmax(0,1fr) 310px;gap:20px; }.projector-stage { gap:30px; }.connection-status { font-size:.66rem; } }
@media(max-width:760px) { .banner { min-height:72px; padding:15px 18px; gap:12px; }.brand { font-size:1.4rem; }.brand-icon { width:32px;height:32px;font-size:1.65rem; }.view-label { display:none; }.banner-tools { margin-left:auto; }.connection-status { max-width:120px;white-space:normal;font-size:.63rem;line-height:1.4; }.sprach-wahl button { padding:6px 7px; }.container { padding:0 18px 125px; }.page-heading { padding:28px 0 24px; }.page-heading h1 { font-size:2.7rem; }.heading-mark { display:none; }.subtitle { font-size:.87rem; }.student-layout,.dashboard-grid { grid-template-columns:1fr;gap:28px; }.compose-column { position:static; }.appreciation-card { padding:16px 19px; }.appreciation-card h3,.appreciation-card p { display:none; }.supply-grid { margin:5px 0 0; }.supply-grid b { font-size:1.35rem; }.supply-grid > div { display:flex;gap:10px;align-items:center; }.supply-grid > div+div { padding-left:17px; }.appreciation-card .eyebrow { margin-bottom:10px; }.compose-card { padding:20px; }.compose-card h2 { margin-bottom:14px; }.beitrag { padding:18px; }.beitrag.an-lehrer { padding-left:16px; }.beitrag-aktionen button { min-height:38px; }.board-tabs { gap:4px; }.board-tabs button { padding:8px 9px; }.join-layout { grid-template-columns:1fr; gap:15px;padding:35px 0; }.join-intro h1 { font-size:2.7rem;max-width:490px; }.connection-art,.join-intro .join-steps { display:none; }.join-card { margin-top:10px;padding:25px; }.join-intro .subtitle { max-width:500px; }.focus-banner { padding:16px 19px; }.countdown { font-size:1.65rem; }.focus-banner strong { font-size:.87rem; }.stat-grid { gap:8px; }.stat-card { padding:15px 12px; }.stat-card strong { font-size:1.7rem; }.stat-card span { font-size:.66rem; }.dashboard-side { display:grid;grid-template-columns:1fr; }.ampel-leiste { bottom:8px;padding:10px;gap:5px; }.ampel-leiste .frage { margin-right:6px;font-size:.63rem; }.ampel-knopf { flex-direction:column;gap:5px;padding:8px 10px;font-size:.65rem;min-width:65px; }.ampel-knopf > span:first-child { font-size:.9rem; }.projector-stage { grid-template-columns:1fr;gap:15px;min-height:auto;padding:30px 0; }.projector-title { font-size:2.8rem; }.projector-note { font-size:.92rem; }.projector-stats { margin-top:22px;padding-top:18px; }.projector-stat strong { font-size:1.8rem; }.beamer-spalten { grid-template-columns:1fr; }.qr-box img { max-width:245px; }.ampel-riesig { gap:25px; }.connection-warning { margin:12px 18px; }.notice { bottom:105px; }.teacher-login { margin-top:15px; } }
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { animation:none!important;transition:none!important;scroll-behavior:auto!important; } }
@media print { .banner-tools,.sprach-wahl,.ampel-leiste,.compose-column,button,.notice { display:none!important; } body { background:white; }.container { max-width:none;padding:0; }.student-layout,.dashboard-grid { display:block; }.beitrag { break-inside:avoid; } }
.teacher .page-heading,.beamer .page-heading { display:block; }
.teacher .stat-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }
.teacher .pulse-legend { display:grid; gap:8px; }
.teacher .pulse-label { display:flex; justify-content:space-between; gap:12px; }
.teacher .pulse-label strong { color:var(--text); font-size:1rem; }
.teacher .empty-state > button { margin-top:20px; }
.beamer-spalten { grid-template-columns:minmax(0,1.65fr) minmax(280px,1fr); align-items:start; }
.projector-stage { display:block; min-height:65vh; }
.projector-stage .focus-banner { margin-top:28px; }
.beamer .session-strip { margin-top:28px; }
.beamer .page-heading .subtitle { margin:auto; }
.beamer .join-steps { margin:36px 0; }
.beamer .join-steps li { font-size:.95rem; }
.beamer .beitrag { padding:28px; }
.beamer .beitrag-text { font-size:1.5rem; }
.beamer .aufgedeckt { font-size:1.2rem; }
.reply-form { margin-top:15px; }
@media(max-width:760px) { .teacher .stat-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.beamer-spalten { grid-template-columns:1fr; }.projector-stage { min-height:auto; }.beamer .session-strip { font-size:.72rem; }.beamer .join-steps li { font-size:.76rem; } }
.teacher .page-heading { padding:28px 0 18px; }
.teacher .page-heading h1 { font-size:2.8rem; margin:5px 0 8px; }
.teacher .stat-card { padding:14px 18px; }
.teacher .stat-card strong { font-size:1.65rem; margin:0 0 5px; }
.teacher .session-strip { margin-bottom:15px; }
.teacher .focus-banner { padding:14px 22px; margin-bottom:20px; }
.teacher .stat-grid { margin-bottom:22px; }
