/* ===========================================================
   Ausbildungszentrum Lindenberg — shared site chrome
   Institutional tokens (paper/ink + red/blue/amber/slate),
   consistent with the illustrated course pages.
=========================================================== */
:root{
  --paper:#f3f0e9; --paper-raised:#fbf9f5; --ink:#221f1c; --ink-soft:#544e47; --ink-mute:#8a8177;
  --line:#ddd6c9; --line-strong:#c8bfad;
  --red:#a72b24; --red-ink:#7d1f19; --red-tint:#f4e2df;
  --blue:#2b4570; --blue-tint:#e3e8f0;
  --amber:#a8701f; --amber-tint:#f2e4cd;
  --slate:#3f5245; --slate-tint:#e2e8e2;
  --ok:#2f6b3a; --ok-tint:#dcecdd; --bad:#a72b24; --bad-tint:#f4e2df;
  --shadow:0 1px 2px rgba(34,31,28,.06), 0 8px 24px -12px rgba(34,31,28,.18);
  --course-accent:#a72b24; --course-accent-ink:#7d1f19; --course-accent-tint:#f4e2df;
}
:root:not([data-theme="light"]){ @media (prefers-color-scheme: dark){
  --paper:#191714; --paper-raised:#211e1a; --ink:#eee8de; --ink-soft:#c2b9ab; --ink-mute:#8c8375;
  --line:#332e27; --line-strong:#453f35;
  --red:#e05b4e; --red-ink:#f3a89e; --red-tint:#3a2320;
  --blue:#7f9cd1; --blue-tint:#1e2636; --amber:#dba54a; --amber-tint:#372a17; --slate:#8fac9a; --slate-tint:#1c2620;
  --ok:#7cc088; --ok-tint:#1c2e1f; --bad:#e05b4e; --bad-tint:#3a2320;
  --shadow:0 1px 2px rgba(0,0,0,.3), 0 8px 28px -12px rgba(0,0,0,.5);
}}
:root[data-theme="dark"]{
  --paper:#191714; --paper-raised:#211e1a; --ink:#eee8de; --ink-soft:#c2b9ab; --ink-mute:#8c8375;
  --line:#332e27; --line-strong:#453f35;
  --red:#e05b4e; --red-ink:#f3a89e; --red-tint:#3a2320;
  --blue:#7f9cd1; --blue-tint:#1e2636; --amber:#dba54a; --amber-tint:#372a17; --slate:#8fac9a; --slate-tint:#1c2620;
  --ok:#7cc088; --ok-tint:#1c2e1f; --bad:#e05b4e; --bad-tint:#3a2320;
  --shadow:0 1px 2px rgba(0,0,0,.3), 0 8px 28px -12px rgba(0,0,0,.5);
}

*{box-sizing:border-box;}
html{color-scheme:light dark;}
body{margin:0;background:var(--paper);color:var(--ink);font-family:'Source Sans 3',Arial,sans-serif;font-size:16px;line-height:1.55;}
h1,h2,h3,.disp{font-family:'Oswald','Arial Narrow',sans-serif;text-transform:uppercase;letter-spacing:.02em;font-weight:600;text-wrap:balance;}
.mono{font-family:'JetBrains Mono',ui-monospace,monospace;font-variant-numeric:tabular-nums;}
a{color:inherit;}
.wrap{max-width:1080px;margin:0 auto;padding:0 28px;}
button{font:inherit;}

/* ---- top nav (site-wide) ---- */
header.sitehead{border-bottom:1px solid var(--line);background:var(--paper-raised);position:sticky;top:0;z-index:40;}
header.sitehead .band{height:4px;background:linear-gradient(90deg,var(--red),var(--blue),var(--amber),var(--slate));}
.navrow{max-width:1080px;margin:0 auto;padding:12px 28px;display:flex;align-items:center;gap:18px;}
.navrow .brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink);flex:1;min-width:0;}
.navrow .brand .mark{width:34px;height:34px;border-radius:8px;background:var(--red);color:#fff;display:flex;align-items:center;justify-content:center;font-family:'Oswald';font-weight:700;font-size:15px;flex-shrink:0;}
.navrow .brand .tx{font-family:'Oswald';font-weight:600;text-transform:uppercase;letter-spacing:.03em;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.navrow .brand .tx small{display:block;font-family:'JetBrains Mono';text-transform:none;letter-spacing:0;font-size:11px;color:var(--ink-mute);font-weight:400;}
.navlinks{display:flex;gap:6px;align-items:center;flex-shrink:0;}
.navlinks a, .navlinks button.navbtn{font-family:'JetBrains Mono';font-size:12.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-soft);text-decoration:none;padding:8px 12px;border-radius:7px;border:1px solid transparent;background:none;cursor:pointer;}
.navlinks a:hover, .navlinks button.navbtn:hover{border-color:var(--line-strong);color:var(--ink);}
#ausbilderBadge{display:none;align-items:center;gap:7px;font-family:'JetBrains Mono';font-size:11.5px;padding:7px 11px;border-radius:20px;background:var(--ok-tint);color:var(--ok);font-weight:600;}
#ausbilderBadge.on{display:inline-flex;}
#ausbilderBadge .dot{width:6px;height:6px;border-radius:50%;background:var(--ok);}

/* ---- pin modal ---- */
.modal-veil{position:fixed;inset:0;background:rgba(20,17,14,.55);display:none;align-items:center;justify-content:center;z-index:100;padding:20px;}
.modal-veil.open{display:flex;}
.modal-card{background:var(--paper-raised);border:1px solid var(--line-strong);border-radius:14px;box-shadow:var(--shadow);max-width:400px;width:100%;padding:26px 26px 22px;}
.modal-card h3{margin:0 0 6px;font-size:19px;}
.modal-card p.hint{font-size:13px;color:var(--ink-soft);margin:0 0 18px;line-height:1.5;}
.modal-card input[type=password], .modal-card input[type=text]{width:100%;font-family:'JetBrains Mono';font-size:20px;letter-spacing:.14em;padding:12px 14px;border-radius:8px;border:1px solid var(--line-strong);background:var(--paper);color:var(--ink);text-align:center;margin-bottom:12px;}
.modal-card input:focus{outline:2px solid var(--red);outline-offset:1px;}
.modal-actions{display:flex;gap:10px;}
.btn{font-family:'JetBrains Mono';font-size:12.5px;text-transform:uppercase;letter-spacing:.05em;font-weight:600;padding:11px 16px;border-radius:8px;border:1px solid var(--line-strong);background:var(--paper);color:var(--ink);cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:8px;}
.btn:hover{border-color:var(--ink-mute);}
.btn.primary{background:var(--red);border-color:var(--red);color:#fff;}
.btn.primary:hover{background:var(--red-ink);}
.btn.block{width:100%;}
.modal-err{color:var(--bad);font-size:12.5px;margin:0 0 10px;display:none;}
.modal-err.show{display:block;}
.modal-close{position:absolute;top:14px;right:16px;background:none;border:none;font-size:20px;color:var(--ink-mute);cursor:pointer;}
.modal-card{position:relative;}

/* ---- caveat banner ---- */
.caveat{font-size:12px;color:var(--ink-mute);background:var(--paper-raised);border:1px dashed var(--line-strong);border-radius:9px;padding:10px 14px;margin-top:14px;line-height:1.5;}
.caveat b{color:var(--ink-soft);}

footer.sitefoot{border-top:1px solid var(--line);padding:26px 0 44px;margin-top:20px;}
footer.sitefoot p{font-size:13px;color:var(--ink-mute);max-width:760px;margin:0 0 6px;}
