:root{--bg:#f5f5f4;--karte:#fff;--text:#1c1917;--leise:#78716c;--rand:#e7e5e4;--primaer:#c2410c;--primaer-dunkel:#9a3412;--ok:#16a34a;--warnung:#d97706;--gesperrt:#dc2626;--unpruefbar:#2563eb;--kopf:#1f2937}
*{box-sizing:border-box}
html{font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;font-size:15px;color:var(--text);background:var(--bg)}
body{margin:0;min-height:100vh}
body.schmal main{max-width:640px}
main{max-width:1400px;margin:0 auto;padding:12px 16px 48px}
a{color:var(--primaer)}
h1{font-size:1.35rem;margin:0}
h1 small{font-weight:400;color:var(--leise);font-size:.9rem;margin-left:.4rem}
h2{font-size:1.1rem;margin:0}
.leise{color:var(--leise)}
.klein{font-size:.75rem}
.top{background:var(--kopf);color:#fff;display:flex;align-items:center;justify-content:space-between;padding:10px 16px;gap:12px;position:sticky;top:0;z-index:5}
.top .marke{color:#fff;text-decoration:none;font-weight:600;font-size:1.05rem}
.top nav{display:flex;gap:4px;align-items:center;flex-wrap:wrap}
.top nav a,.top nav button.link{color:#e5e7eb;text-decoration:none;padding:6px 10px;border-radius:6px;font:inherit;background:none;border:0;cursor:pointer}
.top nav a.aktiv{background:rgba(255,255,255,.15);color:#fff}
.top nav a:hover{background:rgba(255,255,255,.1)}
form.inline{display:inline}
.meldungen{max-width:1400px;margin:8px auto 0;padding:0 16px}
.meldung{padding:10px 14px;border-radius:8px;margin:6px 0;background:#e0f2fe;border:1px solid #bae6fd}
.meldung.success{background:#dcfce7;border-color:#bbf7d0}
.meldung.error{background:#fee2e2;border-color:#fecaca}
.kopf{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin:8px 0}
.nav-woche{display:flex;align-items:center;gap:8px}
.aktionen{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.knopf{display:inline-block;padding:8px 14px;border-radius:8px;border:1px solid var(--rand);background:var(--karte);color:var(--text);text-decoration:none;font:inherit;cursor:pointer;line-height:1.2}
.knopf:hover{border-color:#c7c3bf}
.knopf.primaer{background:var(--primaer);border-color:var(--primaer);color:#fff}
.knopf.primaer:hover{background:var(--primaer-dunkel)}
.knopf.leise{background:transparent}
.knopf.gefahr{color:var(--gesperrt);border-color:#fecaca}
button.link{background:none;border:0;color:var(--primaer);cursor:pointer;font:inherit}
select,input,textarea{font:inherit;padding:8px 10px;border:1px solid var(--rand);border-radius:8px;background:#fff;color:var(--text);width:100%}
label.klein{display:inline-flex;gap:4px;align-items:center;color:var(--leise)}
label.klein input{width:auto}
.status{margin:4px 0 10px}
.pille{display:inline-block;padding:3px 10px;border-radius:999px;font-size:.8rem;background:#e7e5e4;color:#44403c;margin-right:4px}
.pille.gruen{background:#dcfce7;color:#166534}
.pille.rot{background:#fee2e2;color:#991b1b}
.pille.gelb{background:#fef3c7;color:#92400e}
.pille.blau{background:#dbeafe;color:#1e40af}
.pille.grau{background:#e7e5e4;color:#57534e}
.summen{margin:0 0 8px;min-height:1.6rem}
.tabelle-wrap{overflow-x:auto;background:var(--karte);border:1px solid var(--rand);border-radius:12px}
table.plan{border-collapse:collapse;width:100%;min-width:900px;table-layout:fixed}
table.plan th,table.plan td{border-bottom:1px solid var(--rand);border-right:1px solid #f0eeec;vertical-align:top;padding:4px}
table.plan th{background:#fafaf9;font-weight:600;text-align:left;font-size:.85rem;position:sticky;top:0}
table.plan th.heute,table.plan td.heute{background:#fff7ed}
table.plan th.sonntag{color:var(--primaer)}
.person-spalte{width:150px;position:sticky;left:0;background:#fff;z-index:1;font-size:.9rem}
th.person-spalte{z-index:2}
.summe-spalte{width:52px;text-align:right;color:var(--leise);font-size:.85rem}
tr.bereich td{background:#f5f5f4;font-weight:600;font-size:.8rem;text-transform:uppercase;letter-spacing:.04em;color:#57534e;padding:5px 8px}
.farbe{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px;vertical-align:-1px}
td.zelle{min-height:44px;height:48px;cursor:pointer}
td.zelle:hover{background:#fafaf9}
.schicht{display:flex;align-items:center;gap:5px;width:100%;text-align:left;border:1px solid var(--rand);border-left:4px solid #999;border-radius:6px;background:#fff;padding:4px 6px;margin:2px 0;font:inherit;font-size:.82rem;cursor:pointer;flex-wrap:wrap}
.schicht:hover{border-color:#a8a29e}
.schicht.gesperrt{background:#fef2f2}
.schicht.warnung{background:#fffbeb}
.schicht.unpruefbar{background:#eff6ff}
.schicht.offen{background:#f5f5f4;border-style:dashed}
.schicht .zeit{font-variant-numeric:tabular-nums;font-weight:600}
.punkt{display:inline-block;width:9px;height:9px;border-radius:50%;background:var(--ok);margin-left:auto}
.punkt.warnung{background:var(--warnung)}
.punkt.gesperrt{background:var(--gesperrt)}
.punkt.unpruefbar{background:var(--unpruefbar)}
.legende{color:var(--leise);font-size:.8rem;margin-top:10px}
.legende .punkt{margin:0 3px 0 8px}
.dialog{position:fixed;inset:0;background:rgba(0,0,0,.35);display:flex;align-items:flex-start;justify-content:center;padding:6vh 12px;z-index:20;overflow:auto}
.dialog[hidden]{display:none}
.dialog-inhalt{background:#fff;border-radius:14px;width:100%;max-width:520px;padding:18px;box-shadow:0 20px 50px rgba(0,0,0,.25)}
.dialog-kopf{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}
.formular label{display:block;margin:8px 0;font-size:.9rem;color:#44403c}
.formular label input,.formular label select{margin-top:4px}
.reihe{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px}
.reihe label{margin:8px 0 0}
.dialog-fuss{display:flex;gap:8px;margin-top:14px;align-items:center}
.platz{flex:1}
.errorlist{color:var(--gesperrt);font-size:.8rem;margin:2px 0 0;padding-left:0;list-style:none}
.karte{background:#fff;border:1px solid var(--rand);border-radius:12px;padding:18px;margin-top:12px}
.hinweis{color:var(--leise);font-size:.85rem}
ul.tage{list-style:none;padding:0;margin:12px 0}
li.tag{background:#fff;border:1px solid var(--rand);border-radius:12px;padding:12px 14px;margin:8px 0}
li.tag.heute{border-color:var(--primaer);box-shadow:0 0 0 2px #fed7aa}
li.tag.frei{background:transparent;color:var(--leise)}
.tag-kopf{display:flex;gap:8px;align-items:baseline;margin-bottom:6px}
.meine-schicht{border-left:4px solid #999;padding:6px 10px;margin:6px 0;background:#fafaf9;border-radius:6px}
.meine-schicht .zeit{font-size:1.15rem;font-weight:600;font-variant-numeric:tabular-nums}
.kollegen{font-size:.85rem;margin-top:6px}
@media (max-width:700px){html{font-size:14px}.reihe{grid-template-columns:1fr 1fr}.person-spalte{width:110px}.top nav a{padding:6px 8px}}

.befunde{background:#fafaf9;border:1px solid var(--rand);border-radius:8px;padding:8px 12px;font-size:.85rem;margin-bottom:8px}
.befunde.gesperrt{background:#fef2f2;border-color:#fecaca}
.befunde.warnung{background:#fffbeb;border-color:#fde68a}
.befunde.unpruefbar{background:#eff6ff;border-color:#bfdbfe}
.befunde ul{margin:0;padding-left:0;list-style:none}
.befunde li{margin:3px 0}
.befunde .punkt{margin:0 4px 0 0;vertical-align:middle}

/* Klickflächen und Mobil-Kopf (Smoke-Test 28.09.) */
.schicht{min-height:40px}
.knopf{min-height:40px}
.dialog-kopf button.link{font-size:1.3rem;padding:4px 10px;min-height:40px}
.tabelle-wrap{background:linear-gradient(to right,#fff 30%,rgba(255,255,255,0)),linear-gradient(to right,rgba(255,255,255,0),#fff 70%) 100% 0,radial-gradient(farthest-side at 0 50%,rgba(0,0,0,.18),rgba(0,0,0,0)),radial-gradient(farthest-side at 100% 50%,rgba(0,0,0,.18),rgba(0,0,0,0)) 100% 0;background-repeat:no-repeat;background-size:40px 100%,40px 100%,14px 100%,14px 100%;background-attachment:local,local,scroll,scroll}
@media (max-width:700px){.top{padding:6px 10px}.top .marke span{font-size:.95rem}.top nav a,.top nav button.link{padding:8px 8px;font-size:.9rem}.top nav{gap:0}}
