/* Schriften lokal ausgeliefert (keine Übertragung an Google, LG München I, 20.01.2022, 3 O 17493/20). Lizenz: SIL OFL 1.1, siehe fonts/ */
@font-face{font-family:"Lato";font-style:normal;font-weight:400;font-display:swap;src:url(fonts/lato-latin-400-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Lato";font-style:normal;font-weight:400;font-display:swap;src:url(fonts/lato-latin-ext-400-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Lato";font-style:normal;font-weight:700;font-display:swap;src:url(fonts/lato-latin-700-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Lato";font-style:normal;font-weight:700;font-display:swap;src:url(fonts/lato-latin-ext-700-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Anton";font-style:normal;font-weight:400;font-display:swap;src:url(fonts/anton-latin-400-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Anton";font-style:normal;font-weight:400;font-display:swap;src:url(fonts/anton-latin-ext-400-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}

/* Hanse BauAkademie: Orange #ED7203, Schiefer #48565C, Dunkel #1E2527 (Logo/Website) */
:root{--orange:#ED7203;--orange-dark:#C85F00;--slate:#48565C;--dark:#1E2527;--navy:var(--dark);--navy-2:var(--slate);--accent:var(--orange);
  --bg:#F3F4F4;--card:#fff;--text:#1E2527;--muted:#5F6B70;--line:#DDE1E3;--ok:#2E7D32;--bad:#C62828;--radius:6px;
  --font-head:"Anton","Arial Narrow",Impact,sans-serif;--font-body:"Lato",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
*{box-sizing:border-box}
[hidden]{display:none !important}
body{margin:0;font:16px/1.6 var(--font-body);background:var(--bg);color:var(--text);min-height:100vh;display:flex;flex-direction:column}
main.container{flex:1 0 auto;width:100%}
h1,h2,h3{font-family:var(--font-head);font-weight:400;text-transform:uppercase;letter-spacing:.02em;line-height:1.2;color:var(--dark)}
h1{font-size:2rem;margin:.2em 0 .6em}h1::after{content:"";display:block;width:64px;height:4px;background:var(--orange);margin-top:10px}
h2{font-size:1.35rem}h3{font-size:1.1rem}
a{color:var(--orange-dark)}a:hover{color:var(--orange)}
.topbar{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:10px 24px;background:#fff;color:var(--dark);border-bottom:4px solid var(--orange);box-shadow:0 2px 8px rgba(30,37,39,.06)}
.brand{display:flex;align-items:center;gap:14px;text-decoration:none;color:var(--slate)}
.brand img{height:58px;width:auto;display:block}
.brand small{font-family:var(--font-head);font-size:1rem;letter-spacing:.06em;text-transform:uppercase;color:#fff;background:var(--slate);padding:2px 10px;border-radius:3px}
.usernav{display:flex;gap:16px;align-items:center}.usernav form{margin:0}
.usernav .who{color:var(--slate);font-weight:700}
.link{background:none;border:0;color:var(--slate);text-decoration:underline;cursor:pointer;font:inherit}.link:hover{color:var(--orange)}
.container{max-width:1080px;margin:0 auto;padding:28px 16px 64px}
.footer{background:var(--dark);color:#C9D1D4;font-size:.9rem;padding:28px 24px;display:flex;flex-wrap:wrap;gap:12px 32px;align-items:center;justify-content:space-between;border-top:4px solid var(--orange)}
.footer img{height:44px;width:auto;display:block}
.footer a{color:#fff;text-decoration:none;border-bottom:1px solid var(--orange)}.footer a:hover{color:var(--orange)}
.card{background:var(--card);border-radius:var(--radius);padding:24px;box-shadow:0 1px 3px rgba(30,37,39,.08),0 4px 16px rgba(30,37,39,.05);margin-bottom:20px;border-top:3px solid transparent}
.card h2:first-child{margin-top:0}
.narrow{max-width:560px;margin:40px auto}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:20px}
.login-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:24px;margin-top:32px}
.course-card{border-top-color:var(--orange);display:flex;flex-direction:column}
.course-card h2{font-size:1.15rem}
.course-card .btn{margin-top:auto;align-self:flex-start}
.course-card.disabled{opacity:.6}
.btn{display:inline-block;padding:10px 20px;border-radius:3px;border:2px solid var(--slate);background:#fff;color:var(--slate);text-decoration:none;font:inherit;font-weight:700;text-transform:uppercase;letter-spacing:.04em;font-size:.9rem;cursor:pointer;transition:background .15s,color .15s}
.btn:hover{background:var(--slate);color:#fff}
.btn-primary{background:var(--orange);border-color:var(--orange);color:#fff}.btn-primary:hover{background:var(--orange-dark);border-color:var(--orange-dark);color:#fff}
.btn:disabled{opacity:.5;cursor:default}
.stack{display:flex;flex-direction:column;gap:12px}
input[type=email],input[type=text]{width:100%;padding:10px;border:1px solid #c5ccd0;border-radius:3px;font:inherit}
input:focus,select:focus,textarea:focus,.btn:focus-visible{outline:2px solid var(--orange);outline-offset:1px}
.muted{color:var(--muted)}.small{font-size:.875rem}
.badge{display:inline-block;padding:2px 8px;border-radius:999px;background:#E6E9EA;font-size:.75rem;margin-left:6px}
.badge-ok{background:#dff3e7;color:var(--ok)}.badge-bad{background:#f8dedb;color:var(--bad)}
.alert{background:#FDF0E4;border-left:4px solid var(--accent);padding:12px}
.table{width:100%;border-collapse:collapse;background:#fff;border-radius:var(--radius);overflow:hidden}
.table th,.table td{padding:10px;border-bottom:1px solid var(--line);text-align:left}
.table th{background:var(--slate);color:#fff;font-weight:700;font-size:.85rem;text-transform:uppercase;letter-spacing:.04em}
.modules{list-style:none;padding:0}.module{background:#fff;border-radius:var(--radius);border-left:4px solid var(--line);padding:14px 18px;margin-bottom:8px;display:flex;align-items:center;gap:8px}
.module.done{border-left:4px solid var(--ok)}
.icon::before{display:inline-block;width:1.5em}.icon-video::before{content:"▶"}.icon-slides::before{content:"▤"}.icon-quiz::before{content:"?"}
.player-wrap{position:relative;background:#000;border-radius:var(--radius);overflow:hidden}
.player-wrap video{width:100%;display:block}
.overlay-watermark{position:absolute;top:12px;right:16px;color:rgba(255,255,255,.35);font-size:.8rem;pointer-events:none;user-select:none}
.slides{text-align:center}.slides img{max-width:100%;border-radius:8px;box-shadow:0 2px 12px rgba(0,0,0,.15);user-select:none;-webkit-user-drag:none}
.slide-nav{display:flex;justify-content:center;gap:16px;align-items:center;margin-top:12px}
.options{display:flex;flex-direction:column;gap:10px;margin:16px 0}
.option{display:flex;gap:10px;align-items:flex-start;padding:12px;border:1px solid #dbe2ea;border-radius:10px;cursor:pointer}
.option:hover{background:#FDF0E4;border-color:var(--orange)}.option.correct{border-color:var(--ok);background:#eef9f2}
.feedback{padding:12px;border-radius:8px;margin-bottom:12px}.feedback.ok{background:#eef9f2}.feedback.bad{background:#fbeceb}
.question-image{max-width:100%;max-height:360px;border-radius:8px}
.exam-mode .topbar,.exam-mode .footer{display:none}
.exam-card{position:relative;overflow:hidden;max-width:820px;margin:24px auto}
.exam-head{display:flex;justify-content:space-between;font-weight:600}.timer{font-variant-numeric:tabular-nums;color:var(--navy)}
.timebar{height:6px;background:#E6E9EA;border-radius:3px;margin:8px 0 16px}.timebar div{height:100%;background:var(--accent);border-radius:3px;transition:width .25s linear}
.noselect{user-select:none;-webkit-user-select:none}
.exam-watermark{position:absolute;inset:0;pointer-events:none;color:rgba(30,37,39,.06);font-size:.9rem;line-height:3.2;transform:rotate(-18deg) scale(1.4);word-spacing:1em;overflow:hidden}
.check{display:flex;gap:8px;align-items:flex-start}
.verify{padding:12px;border-radius:8px;font-size:1.1rem}.verify-gültig{background:#eef9f2}.verify-widerrufen,.verify-unbekannt,.verify-abgelaufen{background:#fbeceb}
.dl{display:grid;grid-template-columns:max-content 1fr;gap:6px 16px}.dl dt{color:var(--muted)}.dl dd{margin:0}
@media print{body{display:none}}
.navlink{color:var(--slate);text-decoration:none;font-weight:700;border:2px solid var(--slate);padding:4px 12px;border-radius:3px;text-transform:uppercase;font-size:.85rem;letter-spacing:.04em}.navlink:hover{background:var(--slate);color:#fff}
.adminnav{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:12px;font-size:.95rem}
.adminnav .tab{margin-left:8px;padding:2px 10px;border-radius:999px;background:#E6E9EA;text-decoration:none;color:var(--slate)}
.adminnav .sep{color:var(--muted)}
.flash{background:#eef9f2;border-left:4px solid var(--ok);padding:10px 14px;border-radius:6px}
.grid-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px 18px;align-items:end}
.grid-form label,.stack label{display:flex;flex-direction:column;gap:4px;font-size:.9rem}
.grid-form label.check,.stack label.check{flex-direction:row;align-items:center}
.grid-form .span2{grid-column:1/-1}
.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:20px}
.subcard{border:1px solid #e1e7ee;border-radius:10px;padding:16px;margin-top:16px}
input[type=number],input[type=date],input[type=file],select,textarea{padding:8px;border:1px solid #c5ccd0;border-radius:3px;font:inherit}
input[type=number].num{width:5em}
input.short{width:9em;padding:6px;border:1px solid #c5ccd0;border-radius:6px}
textarea{width:100%}
form.inline{display:inline}
.btn-small{padding:4px 10px;border-radius:6px;border:1px solid #c5ccd0;background:#fff;cursor:pointer;font:inherit;font-size:.85rem}
.btn-small.danger{color:var(--bad);border-color:#e6b8b2}
.btn-small:disabled{opacity:.4;cursor:default}
a.btn-small{display:inline-block;text-decoration:none;color:inherit}
.nowrap{white-space:nowrap}
.mono{font-family:ui-monospace,monospace;word-break:break-all;background:#f4f6f9;padding:8px;border-radius:6px}
.qr{width:200px;height:200px;image-rendering:pixelated}
tr.inactive td{opacity:.5}
tr.highlight td{background:#FDF0E4}
.answers{margin:0;padding-left:18px}.answers .right{font-weight:700;color:var(--ok)}
@media (max-width:640px){.table{display:block;overflow-x:auto}}
@media (max-width:640px){
  .topbar{flex-wrap:wrap;gap:8px;padding:10px 16px}
  .brand small{display:none}
  .brand img{height:44px}
  h1{font-size:1.6rem}
  .usernav{gap:10px;flex-wrap:wrap}
  .usernav .who{display:none}
  .container{padding:16px 16px 48px}
  .card{padding:16px}
}
/* Kapitel */
.chapter{display:grid;grid-template-columns:240px 1fr;gap:20px;align-items:start}
.chapter-nav ol{list-style:none;padding:0;margin:0;background:#fff;border-radius:var(--radius);padding:8px}
.chapter-nav li{padding:8px 10px;border-radius:8px;font-size:.9rem}
.chapter-nav li.nav-done::before{content:"✓ ";color:var(--ok)}
.chapter-nav li.nav-current{background:#FDF0E4;border-left:3px solid var(--orange);font-weight:600}
.chapter-nav li.nav-locked{color:var(--muted)}
.chapter-nav li.nav-locked::before{content:"🔒 "}
.step-media video{width:100%;border-radius:10px;background:#000}
.img-box{position:relative;display:inline-block;max-width:100%}
.img-box img{max-width:100%;display:block;border-radius:10px;user-select:none}
.img-box.clickable{cursor:crosshair}
.marker{position:absolute;transform:translate(-50%,-50%);background:var(--orange);color:#fff;font-size:.8rem;font-weight:700;padding:2px 8px;border-radius:999px;white-space:nowrap;box-shadow:0 1px 4px rgba(0,0,0,.3);pointer-events:none}
.countdown{position:absolute;top:12px;right:12px;background:var(--navy);color:#fff;font-size:1.6rem;font-weight:700;width:56px;height:56px;border-radius:50%;display:flex;align-items:center;justify-content:center}
.step-text p{margin:.4em 0}
.step-buttons{display:flex;gap:10px;margin-top:12px}
.solution{font-weight:600;color:var(--ok)}
.module.locked{opacity:.6}
.steps-admin{padding-left:20px}
.step-admin{background:#f7f9fb;border-radius:10px;padding:12px;margin-bottom:10px}
.step-head{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.step-actions{margin-left:auto}
.step-body{display:flex;gap:14px;margin-top:8px;align-items:flex-start}
.thumb{width:160px;border-radius:6px}
.pre{white-space:pre-line;margin:0 0 6px}
@media (max-width:760px){.chapter{grid-template-columns:1fr}.step-body{flex-direction:column}}
/* Bearbeiten/Löschen in der Verwaltung */
a.btn-small{display:inline-block;text-decoration:none;color:var(--slate)}
.btn-danger{background:var(--bad);border-color:var(--bad);color:#fff}.btn-danger:hover{background:#9f1f1f;border-color:#9f1f1f;color:#fff}
.danger-zone{border-top-color:var(--bad)}
details.inline-edit{display:inline-block;margin-left:8px}
details.inline-edit summary{cursor:pointer;color:var(--slate)}
details.inline-edit[open]{display:block;margin:8px 0 0}
/* Fortschritt */
.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px;margin-bottom:12px}
.tile{background:#f4f5f5;border-radius:8px;padding:10px 12px;display:flex;flex-direction:column}
.tile strong{font-family:Anton,"Arial Narrow",sans-serif;font-size:1.6rem;font-weight:normal;color:var(--dark,#1E2527)}
.tile span{font-size:.8rem;color:#5F6B70}
.tile-ok strong{color:#ED7203}
.tile-bad strong{color:var(--bad)}
progress.bar{width:110px;height:10px;vertical-align:middle;accent-color:#ED7203}
.qr-large{width:240px;height:240px;image-rendering:pixelated;margin:8px auto;display:block}
.center{text-align:center}
.device-transfer{margin:0 0 12px}
