:root {
  color-scheme: light;
  --bg:#f5f6f8; --panel:#fff; --panel2:#f9fafb; --text:#15171a; --muted:#6b7280;
  --line:#e5e7eb; --accent:#111827; --accentText:#fff; --danger:#b42318; --warn:#b54708;
  --ok:#067647; --shadow:0 8px 30px rgba(0,0,0,.07); --radius:16px;
}
body.dark { color-scheme: dark; --bg:#0b0e13; --panel:#121720; --panel2:#171d27; --text:#f5f7fa; --muted:#9ca3af; --line:#27303d; --accent:#f3f4f6; --accentText:#111827; --shadow:0 8px 30px rgba(0,0,0,.3); }
*{box-sizing:border-box}[hidden]{display:none!important} body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--bg);color:var(--text)}
button,input,select,textarea{font:inherit} button{cursor:pointer}.app-shell{min-height:100vh;display:grid;grid-template-columns:250px 1fr}.sidebar{position:sticky;top:0;height:100vh;background:var(--panel);border-right:1px solid var(--line);padding:20px;display:flex;flex-direction:column;gap:26px}.brand{display:flex;align-items:center;gap:12px}.brand small{display:block;color:var(--muted);margin-top:2px}.logo{width:42px;height:42px;border-radius:13px;background:var(--accent);color:var(--accentText);display:grid;place-items:center;font-weight:800}.sidebar nav{display:grid;gap:6px}.nav-btn{border:0;background:transparent;color:var(--muted);padding:11px 12px;text-align:left;border-radius:10px;display:flex;gap:10px;align-items:center}.nav-btn.active,.nav-btn:hover{background:var(--panel2);color:var(--text)}.sidebar-footer{margin-top:auto;display:grid;gap:12px;color:var(--muted)}.main{min-width:0}.topbar{padding:26px 32px 18px;display:flex;align-items:center;justify-content:space-between;gap:20px}.topbar h1{margin:0;font-size:28px}.topbar p{margin:4px 0 0;color:var(--muted)}.top-actions{display:flex;gap:10px}.view{padding:0 32px 42px}.primary,.ghost,.danger{border:1px solid var(--line);border-radius:10px;padding:10px 14px}.primary{background:var(--accent);color:var(--accentText);border-color:var(--accent)}.ghost{background:var(--panel);color:var(--text)}.danger{background:transparent;color:var(--danger);border-color:color-mix(in srgb,var(--danger) 30%,var(--line))}.full{width:100%}.grid{display:grid;gap:16px}.grid.kpis{grid-template-columns:repeat(4,minmax(0,1fr))}.grid.two{grid-template-columns:1.35fr 1fr}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:18px;box-shadow:var(--shadow)}.card h2,.card h3{margin:0 0 12px}.kpi-label{color:var(--muted);font-size:13px}.kpi-value{font-size:32px;font-weight:750;margin-top:6px}.kpi-foot{font-size:12px;color:var(--muted);margin-top:8px}.section-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:12px}.section-head p{margin:4px 0 0;color:var(--muted)}.list{display:grid;gap:10px}.event-row,.tour-row,.warning-row{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,.8fr) minmax(0,.8fr) auto;gap:14px;align-items:center;padding:13px 0;border-top:1px solid var(--line)}.event-row:first-child,.tour-row:first-child,.warning-row:first-child{border-top:0}.row-title{font-weight:700}.sub{color:var(--muted);font-size:13px;margin-top:3px}.badge{display:inline-flex;align-items:center;border-radius:999px;padding:5px 9px;font-size:12px;font-weight:700;background:var(--panel2);border:1px solid var(--line)}.badge.ok{color:var(--ok)}.badge.warn{color:var(--warn)}.badge.danger{color:var(--danger)}.progress{height:7px;background:var(--panel2);border-radius:99px;overflow:hidden;border:1px solid var(--line)}.progress>span{display:block;height:100%;background:var(--accent)}.empty{padding:32px 10px;text-align:center;color:var(--muted)}.toolbar{display:flex;justify-content:space-between;gap:10px;margin-bottom:16px;flex-wrap:wrap}.toolbar .left,.toolbar .right{display:flex;gap:8px;flex-wrap:wrap}.search{min-width:230px}.field{display:grid;gap:6px}.field label{font-size:13px;color:var(--muted)}.field input,.field select,.field textarea{width:100%;border:1px solid var(--line);background:var(--panel);color:var(--text);border-radius:10px;padding:10px 11px}.field textarea{min-height:90px;resize:vertical}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.form-grid .span2{grid-column:1/-1}dialog{width:min(680px,calc(100vw - 30px));border:1px solid var(--line);background:var(--panel);color:var(--text);border-radius:18px;padding:0;box-shadow:0 30px 100px rgba(0,0,0,.25)}dialog::backdrop{background:rgba(0,0,0,.45)}.dialog-head{padding:20px 22px 10px;display:flex;justify-content:space-between;gap:16px}.dialog-head h2{margin:0}.dialog-head p{color:var(--muted);margin:4px 0 0}.icon-btn{border:0;background:transparent;color:var(--muted);font-size:25px}.dialog-actions{padding:16px 22px 20px;display:flex;justify-content:flex-end;gap:10px;border-top:1px solid var(--line)}#modalBody{padding:10px 22px 22px}.toast{position:fixed;right:24px;bottom:24px;transform:translateY(20px);opacity:0;pointer-events:none;background:var(--text);color:var(--panel);padding:11px 14px;border-radius:10px;transition:.2s}.toast.show{opacity:1;transform:translateY(0)}.pill{display:inline-flex;gap:6px;align-items:center}.dot{width:8px;height:8px;border-radius:50%;background:currentColor}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:12px;border-bottom:1px solid var(--line);white-space:nowrap}th{font-size:12px;color:var(--muted);font-weight:650}.actions{display:flex;gap:7px}.mini{padding:6px 9px;border-radius:8px;font-size:12px}.hero{padding:24px;background:linear-gradient(135deg,var(--panel),var(--panel2));}.hero h2{font-size:24px;margin-bottom:6px}.hero p{color:var(--muted);max-width:750px}.timeline{display:grid;gap:0}.timeline-item{display:grid;grid-template-columns:70px 16px 1fr;gap:10px;min-height:58px}.timeline-item .line{position:relative}.timeline-item .line:before{content:"";position:absolute;left:7px;top:0;bottom:0;width:2px;background:var(--line)}.timeline-item .line:after{content:"";position:absolute;left:3px;top:5px;width:10px;height:10px;border-radius:50%;background:var(--accent)}
@media(max-width:1000px){.grid.kpis{grid-template-columns:repeat(2,1fr)}.grid.two{grid-template-columns:1fr}.app-shell{grid-template-columns:80px 1fr}.sidebar{padding:16px 10px}.brand>div:last-child,.nav-btn span,.sidebar-footer small{display:none}.brand{justify-content:center}.nav-btn{justify-content:center}.sidebar-footer .ghost{font-size:0}.sidebar-footer .ghost:after{content:"◐";font-size:18px}.topbar{padding:20px}.view{padding:0 20px 34px}}
@media(max-width:680px){.app-shell{display:block}.sidebar{position:fixed;z-index:20;left:0;right:0;bottom:0;top:auto;height:auto;border-right:0;border-top:1px solid var(--line);padding:7px;background:color-mix(in srgb,var(--panel) 92%,transparent);backdrop-filter:blur(12px)}.brand,.sidebar-footer{display:none}.sidebar nav{display:flex;overflow:auto}.nav-btn{min-width:66px;display:grid;justify-items:center;font-size:11px;padding:7px}.nav-btn span{display:block}.main{padding-bottom:76px}.topbar{align-items:flex-start}.topbar p{display:none}.top-actions .ghost{display:none}.view{padding:0 14px 24px}.grid.kpis{grid-template-columns:1fr 1fr;gap:10px}.card{padding:14px}.event-row,.tour-row,.warning-row{grid-template-columns:1fr auto}.event-row>div:nth-child(2),.tour-row>div:nth-child(2),.warning-row>div:nth-child(2),.event-row>div:nth-child(3),.tour-row>div:nth-child(3),.warning-row>div:nth-child(3){display:none}.form-grid{grid-template-columns:1fr}.form-grid .span2{grid-column:auto}}

/* Modul 2: Foodsoul branding, Rider review and document workspace */
.logo{width:48px;height:42px;background:#f2eadf;color:#173e34;overflow:hidden}.logo img{width:100%;height:100%;object-fit:contain;padding:3px}
.brand-hero{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:18px}.brand-hero>img,.brand-mark{width:150px;height:92px;object-fit:contain;border-radius:16px;background:var(--panel2);border:1px solid var(--line);padding:10px}.brand-mark{display:grid;place-items:center;color:#173e34;font-size:24px;font-weight:800}
.eyebrow{color:var(--muted);font-size:12px;font-weight:750;letter-spacing:.08em;text-transform:uppercase;margin-bottom:4px}.notice{padding:13px 15px;margin-bottom:16px;border:1px solid color-mix(in srgb,var(--warn) 35%,var(--line));border-radius:12px;background:color-mix(in srgb,var(--warn) 8%,var(--panel));color:var(--text)}
.rider-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.rider-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:16px 0}.rider-stats>div{background:var(--panel2);border:1px solid var(--line);border-radius:10px;padding:10px}.rider-stats b,.rider-stats span{display:block}.rider-stats b{font-size:20px}.rider-stats span{font-size:11px;color:var(--muted);margin-top:3px}
.detail p{margin:4px 0 12px;color:var(--muted)}.meal-list{display:flex;flex-wrap:wrap;gap:7px;margin:12px 0}.meal-list span{font-size:12px;padding:6px 8px;border-radius:8px;background:var(--panel2);border:1px solid var(--line)}.review-box{display:grid;gap:7px;border-left:3px solid var(--warn);padding:10px 12px;margin:14px 0;background:var(--panel2)}.review-box label{font-size:13px}
.meal-fields{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:8px}.meal-fields input{min-width:0;border:1px solid var(--line);background:var(--panel);color:var(--text);border-radius:10px;padding:10px 11px}.settings-card{max-width:680px;display:grid;gap:18px}
@media(max-width:1000px){.rider-grid{grid-template-columns:1fr}}@media(max-width:680px){.brand-hero{grid-template-columns:1fr}.brand-hero>img,.brand-mark{width:120px;height:78px}.rider-stats{grid-template-columns:1fr 1fr}.meal-fields{grid-template-columns:1fr}.brand-hero>button{justify-self:start}}

/* Modul 3: Menü- und Rezeptplanung */
.menu-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:16px}.menu-summary>div{display:flex;align-items:baseline;gap:8px;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:13px 16px}.menu-summary b{font-size:23px}.menu-summary span{color:var(--muted);font-size:13px}.menu-layout{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(290px,.75fr);gap:16px;align-items:start}.menu-grid{grid-template-columns:1fr}.menu-card .section-head p{margin:4px 0 0;color:var(--muted)}.menu-courses{display:grid;gap:0;border-top:1px solid var(--line);margin:14px 0}.menu-courses>div{display:grid;grid-template-columns:150px minmax(0,1fr) auto;gap:12px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line)}.menu-courses>div>span{font-size:12px;color:var(--muted)}.menu-courses small{display:flex;justify-content:flex-end;gap:5px}.food-tags{display:flex;flex-wrap:wrap;gap:5px;margin-top:7px}.food-tag{display:inline-flex;padding:3px 7px;border-radius:999px;background:color-mix(in srgb,var(--ok) 10%,var(--panel));border:1px solid color-mix(in srgb,var(--ok) 25%,var(--line));color:var(--ok);font-size:10px;font-weight:700}.food-tag.allergen{background:color-mix(in srgb,var(--warn) 9%,var(--panel));border-color:color-mix(in srgb,var(--warn) 24%,var(--line));color:var(--warn)}.menu-issues,.menu-ready,.approval-note{display:grid;gap:5px;padding:10px 12px;margin:12px 0;border-radius:10px;font-size:12px}.menu-issues{background:color-mix(in srgb,var(--warn) 8%,var(--panel));border-left:3px solid var(--warn)}.menu-ready{background:color-mix(in srgb,var(--ok) 8%,var(--panel));color:var(--ok);border-left:3px solid var(--ok)}.approval-note{background:var(--panel2);border:1px solid var(--line)}.menu-actions{margin-top:15px}.recipe-library{position:sticky;top:20px}.recipe-library>.search{width:100%;margin-bottom:8px}.recipe-list{display:grid}.recipe-item{display:grid;grid-template-columns:1fr auto;align-items:start;gap:10px;padding:13px 0;border-bottom:1px solid var(--line)}.recipe-item:last-child{border-bottom:0}.recipe-item .eyebrow{margin-bottom:3px}.check-row{display:flex;flex-wrap:wrap;gap:10px;padding:8px 0}.check-row label{color:var(--text)}
@media(max-width:1000px){.menu-layout{grid-template-columns:1fr}.recipe-library{position:static}}@media(max-width:680px){.menu-summary{grid-template-columns:1fr}.menu-courses>div{grid-template-columns:1fr}.menu-courses small{justify-content:flex-start}}

/* Modul 4: Personalplanung und Arbeitszeiten */
.staff-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px}.staff-summary>div{display:flex;align-items:baseline;gap:8px;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:13px 16px}.staff-summary b{font-size:23px}.staff-summary span{color:var(--muted);font-size:13px}.staff-layout{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(340px,.85fr);gap:16px;align-items:start}.staff-issues{display:grid;grid-template-columns:minmax(190px,.8fr) repeat(2,minmax(0,1fr));gap:10px;align-items:center;padding:12px 14px;margin-bottom:16px;background:var(--panel);border:1px solid var(--line);border-left:4px solid var(--warn);border-radius:12px}.staff-issues>div span{display:block;color:var(--muted);font-size:12px;margin-top:3px}.staff-issues p{margin:0;padding:8px 10px;border-radius:8px;background:var(--panel2);font-size:12px}.staff-issues p.danger{color:var(--danger)}.staff-issues p.warn{color:var(--warn)}.shift-list{display:grid}.shift-row{display:grid;grid-template-columns:auto minmax(120px,.8fr) minmax(150px,.8fr) auto minmax(180px,auto);gap:12px;align-items:center;padding:14px 0;border-bottom:1px solid var(--line)}.shift-row:last-child{border-bottom:0}.shift-row>div>span{display:block;color:var(--muted);font-size:12px;margin-top:3px}.avatar{width:42px;height:42px;display:grid;place-items:center;border-radius:13px;background:#e9f1ed;color:#173e34;font-weight:800}.crew-panel{position:sticky;top:20px}.crew-panel>.search{width:100%;margin-bottom:7px}.crew-list{display:grid}.crew-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:11px;align-items:center;padding:13px 0;border-bottom:1px solid var(--line)}.crew-card:last-child{border-bottom:0}.crew-card>div>span{display:block;color:var(--muted);font-size:12px;margin-top:3px}.crew-card small{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}.crew-actions{display:grid;justify-items:end;gap:5px}.availability-person{display:flex;gap:12px;align-items:center;padding:12px;background:var(--panel2);border:1px solid var(--line);border-radius:12px;margin-bottom:16px}.availability-person span{display:block;color:var(--muted);font-size:12px;margin-top:3px}.need-form{display:grid;gap:9px}.need-form>div:not(.notice){display:grid;grid-template-columns:1fr 100px;align-items:center;gap:12px}.need-form input{width:100%;border:1px solid var(--line);background:var(--panel);color:var(--text);border-radius:10px;padding:9px}.need-form label{font-weight:650}
@media(max-width:1100px){.staff-layout{grid-template-columns:1fr}.crew-panel{position:static}.shift-row{grid-template-columns:auto 1fr auto}.shift-row>div:nth-child(3){grid-column:2}.shift-row>.actions{grid-column:2/-1}}@media(max-width:760px){.staff-summary{grid-template-columns:1fr 1fr}.staff-issues{grid-template-columns:1fr}.shift-row{grid-template-columns:auto 1fr}.shift-row>div:nth-child(4){grid-column:2}.shift-row>.actions{grid-column:1/-1}.crew-card{grid-template-columns:auto 1fr}.crew-actions{grid-column:2;justify-items:start}.crew-actions .badge{margin-bottom:4px}}

/* Modul 5: Rider-Import und Einkaufslisten */
dialog{max-height:calc(100vh - 24px);overflow:auto}
.dashboard-import{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:14px;align-items:center;margin-top:16px;padding:16px 18px;background:linear-gradient(110deg,#173e34,#245b4c);color:#fff;border-radius:16px;box-shadow:var(--shadow)}.dashboard-import .upload-symbol{width:44px;height:44px;display:grid;place-items:center;border-radius:13px;background:rgba(255,255,255,.14);font-size:24px}.dashboard-import b,.dashboard-import span{display:block}.dashboard-import span{font-size:13px;opacity:.78;margin-top:4px}.dashboard-import .primary{background:#f2eadf;color:#173e34;border-color:#f2eadf}.import-result{display:grid;gap:4px;padding:12px 14px;margin-bottom:16px;background:color-mix(in srgb,var(--ok) 9%,var(--panel));border:1px solid color-mix(in srgb,var(--ok) 28%,var(--line));border-radius:12px}.import-result span{color:var(--muted);font-size:12px}.import-check{display:flex;align-items:center;gap:8px;padding:11px 12px;background:var(--panel2);border:1px solid var(--line);border-radius:10px}.shopping-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin:3px 0 18px;padding:20px 22px;background:linear-gradient(135deg,var(--panel),var(--panel2));border:1px solid var(--line);border-radius:16px}.shopping-head h2{margin:0}.shopping-head p{margin:4px 0 0;color:var(--muted)}.shopping-progress{width:min(240px,40%)}.shopping-progress b,.shopping-progress span{display:block}.shopping-progress b{font-size:22px}.shopping-progress span{color:var(--muted);font-size:12px;margin:2px 0 7px}.shopping-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.shopping-card .section-head p{margin:4px 0 0;color:var(--muted)}.shopping-items{display:grid}.shopping-item{display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:center;padding:11px 2px;border-bottom:1px solid var(--line);cursor:pointer}.shopping-item:last-child{border-bottom:0}.shopping-item input{width:19px;height:19px;accent-color:var(--ok)}.shopping-item span{display:flex;justify-content:space-between;gap:12px;align-items:baseline}.shopping-item small{color:var(--muted)}.shopping-item.done b{text-decoration:line-through;color:var(--muted)}
@media(max-width:850px){.dashboard-import{grid-template-columns:auto 1fr}.dashboard-import button{grid-column:1/-1}.shopping-grid{grid-template-columns:1fr}.shopping-head{align-items:flex-start;flex-direction:column}.shopping-progress{width:100%}}@media print{.sidebar,.topbar,.print-hide,.toast{display:none!important}.app-shell{display:block}.view{padding:0}.shopping-head,.shopping-card{box-shadow:none;break-inside:avoid}.shopping-item input{appearance:none;border:1px solid #777}.shopping-grid{grid-template-columns:1fr 1fr}body{background:#fff;color:#000}}

/* Modul 6: Equipment, Bestände und Packlisten */
.equipment-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px}.equipment-summary>div{display:flex;align-items:baseline;gap:8px;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:13px 16px}.equipment-summary b{font-size:23px}.equipment-summary span{color:var(--muted);font-size:13px}.equipment-summary .has-issues{border-color:color-mix(in srgb,var(--danger) 42%,var(--line))}.equipment-summary .has-issues b{color:var(--danger)}
.equipment-alerts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:16px}.equipment-alerts p{margin:0;padding:11px 13px;border:1px solid color-mix(in srgb,var(--warn) 30%,var(--line));border-left:4px solid var(--warn);border-radius:10px;background:color-mix(in srgb,var(--warn) 7%,var(--panel));font-size:12px}.equipment-alerts p.danger{color:var(--danger);border-left-color:var(--danger);background:color-mix(in srgb,var(--danger) 7%,var(--panel))}
.equipment-layout{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(360px,.75fr);gap:16px;align-items:start}.pack-card{min-width:0}.pack-card .section-head p{margin:4px 0 0;color:var(--muted)}.pack-table table{min-width:710px}.pack-table td{vertical-align:middle}.stage-input{width:70px;padding:8px;border:1px solid var(--line);border-radius:9px;background:var(--panel2);color:var(--text);font:inherit;text-align:center}.stage-input:focus{outline:2px solid var(--accent);outline-offset:1px}
.inventory-panel{position:sticky;top:20px}.inventory-panel>.search{width:100%;margin-bottom:8px}.inventory-list{display:grid}.inventory-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:11px;align-items:center;padding:13px 0;border-bottom:1px solid var(--line)}.inventory-card:last-child{border-bottom:0}.inventory-card.conflict{background:color-mix(in srgb,var(--danger) 5%,transparent)}.inventory-icon{width:38px;height:38px;display:grid;place-items:center;border-radius:11px;background:var(--panel2);color:var(--accent);font-size:18px}.inventory-card span,.inventory-card small{display:block;color:var(--muted);font-size:12px;margin-top:3px}.inventory-card>div:last-child{display:grid;justify-items:end;gap:6px}
@media(max-width:1120px){.equipment-layout{grid-template-columns:1fr}.inventory-panel{position:static}}@media(max-width:760px){.equipment-summary{grid-template-columns:1fr 1fr}.equipment-alerts{grid-template-columns:1fr}.inventory-card{grid-template-columns:auto 1fr}.inventory-card>div:last-child{grid-column:2;justify-items:start}.toolbar .right{width:100%}.toolbar .right button{flex:1}}
@media print{.equipment-summary{grid-template-columns:repeat(4,1fr)}.equipment-layout{display:block}.inventory-panel{display:none}.pack-card{box-shadow:none;border:0;padding:0}.pack-table table{min-width:0}.pack-table th:last-child,.pack-table td:last-child{display:none}.stage-input{appearance:textfield;border:0;background:transparent;width:42px}.equipment-alerts{grid-template-columns:1fr 1fr}}

/* Modul 7: Rider-PDF-Auslesung und Live-Produktionstag */
.meal-import-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:14px;border:1px solid var(--line);border-radius:13px;background:var(--panel2)}.meal-import-title{grid-column:1/-1;display:flex;justify-content:space-between;gap:12px}.meal-import-title span{font-size:12px;color:var(--muted)}
.dashboard-live{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:12px;padding:12px 16px;border:1px solid var(--line);border-radius:14px;background:var(--panel)}.dashboard-live>div{display:grid;grid-template-columns:auto auto;align-items:center;gap:2px 9px}.dashboard-live small{grid-column:2;color:var(--muted)}.live-pulse{grid-row:1/3;width:11px;height:11px;border-radius:50%;background:var(--danger);box-shadow:0 0 0 5px color-mix(in srgb,var(--danger) 12%,transparent)}
.connection-chip{display:inline-flex;align-items:center;padding:8px 10px;border:1px solid color-mix(in srgb,var(--ok) 32%,var(--line));border-radius:10px;background:color-mix(in srgb,var(--ok) 8%,var(--panel));color:var(--ok);font-size:12px;font-weight:700}.connection-chip.offline{border-color:color-mix(in srgb,var(--danger) 35%,var(--line));background:color-mix(in srgb,var(--danger) 8%,var(--panel));color:var(--danger)}
.live-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;padding:22px;margin-bottom:14px;border-radius:18px;background:linear-gradient(120deg,#173e34,#245b4c);color:#fff;box-shadow:var(--shadow)}.live-hero h2{margin:0;font-size:29px}.live-hero p{margin:5px 0 0;opacity:.75}.live-hero .eyebrow{color:#d6e4dd}.meal-strip{display:flex;gap:8px}.meal-strip>div{min-width:94px;padding:9px 12px;border-radius:12px;background:rgba(255,255,255,.11)}.meal-strip span,.meal-strip b,.meal-strip small{display:block}.meal-strip span,.meal-strip small{font-size:11px;opacity:.75}.meal-strip b{margin:2px 0;font-size:18px}
.live-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px}.live-summary>div{display:flex;align-items:baseline;gap:8px;padding:13px 16px;border:1px solid var(--line);border-radius:12px;background:var(--panel)}.live-summary b{font-size:23px}.live-summary span{font-size:13px;color:var(--muted)}.live-summary .has-issues{border-color:color-mix(in srgb,var(--danger) 42%,var(--line))}.live-summary .has-issues b{color:var(--danger)}
.live-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(340px,.65fr);gap:16px;align-items:start}.live-layout>main,.live-layout>aside{display:grid;gap:16px}.live-layout>aside{position:sticky;top:18px}.live-agenda .section-head p,.live-task-card .section-head p,.readiness-card .section-head p,.incident-card .section-head p,.notes-card .section-head p{margin:4px 0 0;color:var(--muted)}.agenda-list{display:grid}.agenda-list article{display:grid;grid-template-columns:55px 16px 1fr;gap:9px;align-items:start;min-height:58px}.agenda-list time{font-weight:800;color:var(--accent);font-size:13px}.agenda-list article>span{position:relative;width:2px;height:100%;background:var(--line)}.agenda-list article>span:before{content:"";position:absolute;left:-4px;top:4px;width:10px;height:10px;border-radius:50%;background:var(--accent)}.agenda-list small,.live-task small,.readiness-row small,.incident-row small,.note-row small{display:block;color:var(--muted);font-size:12px;margin-top:4px}
.live-task-list{display:grid}.live-task{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center;padding:13px 0;border-bottom:1px solid var(--line)}.live-task:last-child{border-bottom:0}.live-task>label input{position:absolute;opacity:0}.live-task>label span{display:block;width:23px;height:23px;border:2px solid var(--line);border-radius:8px;cursor:pointer}.live-task>label input:checked+span{border-color:var(--ok);background:var(--ok)}.live-task>label input:checked+span:after{content:"✓";display:grid;place-items:center;color:white;font-weight:800}.live-task.done>div:nth-child(2)>b{text-decoration:line-through;color:var(--muted)}.live-task>div:last-child{display:grid;justify-items:end;gap:6px}
.readiness-row{display:grid;grid-template-columns:auto 1fr;gap:10px;padding:11px 0;border-bottom:1px solid var(--line)}.readiness-row:last-child{border-bottom:0}.readiness-row>span{width:25px;height:25px;display:grid;place-items:center;border-radius:50%;background:color-mix(in srgb,var(--warn) 12%,var(--panel));color:var(--warn);font-weight:800}.readiness-row.ready>span{background:color-mix(in srgb,var(--ok) 12%,var(--panel));color:var(--ok)}
.incident-list,.note-list{display:grid}.incident-row,.note-row{padding:12px 0;border-bottom:1px solid var(--line)}.incident-row:last-child,.note-row:last-child{border-bottom:0}.incident-row{display:grid;grid-template-columns:1fr auto;gap:10px}.incident-row b,.note-row b{display:block;margin-top:6px}.incident-row.resolved{opacity:.6}.severity{display:inline-flex;padding:3px 7px;border-radius:999px;background:var(--panel2);font-size:10px;font-weight:800;text-transform:uppercase}.severity.kritisch{background:color-mix(in srgb,var(--danger) 12%,var(--panel));color:var(--danger)}.severity.achtung{background:color-mix(in srgb,var(--warn) 12%,var(--panel));color:var(--warn)}.severity.info{background:color-mix(in srgb,var(--accent) 10%,var(--panel));color:var(--accent)}.note-row span{display:inline-flex;color:var(--accent);font-size:11px;font-weight:750;text-transform:uppercase}
@media(max-width:1120px){.live-layout{grid-template-columns:1fr}.live-layout>aside{position:static}.live-hero{align-items:flex-start;flex-direction:column}}@media(max-width:760px){.meal-import-grid{grid-template-columns:1fr}.meal-import-title{display:grid}.dashboard-live{align-items:flex-start}.live-summary{grid-template-columns:1fr 1fr}.meal-strip{width:100%;overflow:auto}.meal-strip>div{flex:1}.live-task{grid-template-columns:auto 1fr}.live-task>div:last-child{grid-column:2;justify-items:start}.incident-row{grid-template-columns:1fr}.toolbar .left{width:100%}.toolbar .left select{max-width:100%}}
@media print{.dashboard-live,.connection-chip{display:none!important}.live-hero{background:#fff;color:#000;border:1px solid #ccc;box-shadow:none}.live-hero .eyebrow{color:#555}.live-summary{grid-template-columns:repeat(4,1fr)}.live-layout{display:grid;grid-template-columns:1.3fr .7fr}.live-layout>aside{position:static}.live-layout .card{box-shadow:none;break-inside:avoid}.live-task>label span{border-color:#777}.live-task>label input:checked+span{background:#333}}

/* Modul 8: Benutzer, Rollen und Änderungsprotokoll */
.user-switch-btn{max-width:270px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.permission-locked{opacity:.48;cursor:not-allowed!important}.access-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}.access-summary>div{display:flex;align-items:baseline;gap:8px;padding:14px 16px;background:var(--panel);border:1px solid var(--line);border-radius:12px}.access-summary b{font-size:23px}.access-summary span{font-size:13px;color:var(--muted)}.access-layout{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(300px,.7fr);gap:16px;align-items:start;margin-bottom:16px}.user-list{display:grid}.user-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;gap:12px;align-items:center;padding:14px 0;border-bottom:1px solid var(--line)}.user-row:last-child{border-bottom:0}.user-row>div:nth-child(2)>span,.user-row>div:nth-child(2)>small{display:block;color:var(--muted);margin-top:3px}.user-row>div:nth-child(2)>small{font-size:11px}.user-row>div:nth-child(3){display:flex;flex-wrap:wrap;justify-content:flex-end;gap:5px}.current-label{display:inline-flex!important;margin:0 0 0 6px!important;padding:2px 6px;border-radius:999px;background:color-mix(in srgb,var(--ok) 10%,var(--panel));color:var(--ok)!important;font-size:10px}.role-panel{position:sticky;top:20px}.role-row{display:grid;gap:4px;padding:12px;border:1px solid transparent;border-bottom-color:var(--line)}.role-row:last-child{border-bottom-color:transparent}.role-row span{color:var(--muted);font-size:12px}.role-row.current{border-color:color-mix(in srgb,var(--ok) 28%,var(--line));border-radius:10px;background:color-mix(in srgb,var(--ok) 7%,var(--panel))}.audit-card .section-head{align-items:flex-end}.audit-card table{min-width:760px}
@media(max-width:1050px){.access-layout{grid-template-columns:1fr}.role-panel{position:static}.access-summary{grid-template-columns:repeat(2,1fr)}}
@media(max-width:680px){.top-actions .user-switch-btn{display:inline-flex;max-width:130px}.access-summary{grid-template-columns:1fr 1fr;gap:8px}.access-summary>div{display:grid;gap:2px}.user-row{grid-template-columns:auto minmax(0,1fr)}.user-row>div:nth-child(3),.user-row>button{grid-column:2;justify-self:start}.user-row>div:nth-child(3){justify-content:flex-start}.audit-card .section-head{align-items:stretch;display:grid}.audit-card .search{min-width:0;width:100%}}
@media print{.access-summary,.access-layout,.audit-card{box-shadow:none}.audit-card .search,.user-row button{display:none!important}}

/* Modul 9: Konflikt- und Freigabezentrale */
.warning-toolbar .left{flex:1}.warning-toolbar .left .search{flex:1}.warning-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}.warning-summary>div{display:flex;align-items:baseline;gap:8px;padding:14px 16px;background:var(--panel);border:1px solid var(--line);border-radius:12px}.warning-summary>div.has-issues{border-color:color-mix(in srgb,var(--danger) 42%,var(--line));background:color-mix(in srgb,var(--danger) 5%,var(--panel))}.warning-summary>div.has-issues b{color:var(--danger)}.warning-summary b{font-size:23px}.warning-summary span{color:var(--muted);font-size:13px}.warning-list{display:grid;gap:10px}.warning-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:14px;align-items:center;padding:16px 18px;background:var(--panel);border:1px solid var(--line);border-left:4px solid var(--warn);border-radius:14px;box-shadow:var(--shadow)}.warning-card.critical{border-left-color:var(--danger);background:color-mix(in srgb,var(--danger) 3%,var(--panel))}.warning-symbol{width:34px;height:34px;display:grid;place-items:center;border-radius:50%;background:color-mix(in srgb,var(--warn) 12%,var(--panel));color:var(--warn);font-weight:900}.warning-card.critical .warning-symbol{background:color-mix(in srgb,var(--danger) 12%,var(--panel));color:var(--danger)}.warning-card h3{margin:5px 0 4px}.warning-card p{margin:0 0 5px;color:var(--text)}.warning-card small{color:var(--muted)}.warning-meta{display:flex;flex-wrap:wrap;gap:8px}.warning-meta span{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.warning-actions{display:grid;gap:7px;min-width:138px}.warning-empty{display:grid;justify-items:center;gap:5px;padding:48px;text-align:center}.warning-empty b{font-size:20px;color:var(--ok)}.warning-empty span{color:var(--muted)}
@media(max-width:900px){.warning-toolbar .left{display:grid;width:100%;grid-template-columns:1fr 1fr}.warning-toolbar .left .search{grid-column:1/-1}.warning-summary{grid-template-columns:1fr 1fr}.warning-card{grid-template-columns:auto 1fr}.warning-actions{grid-column:2;display:flex;flex-wrap:wrap}}
@media(max-width:600px){.warning-toolbar .left{grid-template-columns:1fr}.warning-toolbar .left .search{grid-column:auto}.warning-summary{gap:8px}.warning-summary>div{display:grid;gap:2px}.warning-card{padding:14px}.warning-symbol{width:30px;height:30px}.warning-actions{grid-column:1/-1}.warning-actions button{flex:1}}
@media print{.warning-toolbar,.warning-actions{display:none!important}.warning-summary{grid-template-columns:repeat(4,1fr)}.warning-card{box-shadow:none;break-inside:avoid}}

/* Backend: Login / Auth-Bildschirm */
.auth-screen{position:fixed;inset:0;display:grid;place-items:center;background:var(--bg,#0f1720);padding:20px;z-index:50}
.auth-card{width:100%;max-width:360px;display:grid;gap:12px;padding:28px 26px;background:var(--panel);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow)}
.auth-card h1{margin:0;font-size:22px}
.auth-card p{margin:0;color:var(--muted);font-size:13px}
.auth-logo{width:44px;height:44px;object-fit:contain;margin-bottom:2px}
.auth-error{color:var(--danger);font-size:13px;margin:0;padding:8px 10px;border-radius:8px;background:color-mix(in srgb,var(--danger) 10%,var(--panel))}
.auth-card .field{display:grid;gap:5px}
.auth-card .field label{font-size:12px;color:var(--muted)}
.auth-card button.full{width:100%;margin-top:4px}
.sync-chip{font-size:11px;color:var(--muted)}
.sync-chip.error{color:var(--danger)}

.ai-chat{display:flex;flex-direction:column;gap:10px;max-height:360px;overflow-y:auto;margin-bottom:12px}
.ai-msg{border-radius:12px;padding:10px 12px;background:var(--panel2);border:1px solid var(--line);max-width:92%}
.ai-msg.user{align-self:flex-end;background:var(--accent);color:var(--accentText);border-color:var(--accent)}
.ai-msg.error{border-color:color-mix(in srgb,var(--danger) 40%,var(--line))}
.ai-msg b{display:block;font-size:11px;opacity:.7;margin-bottom:3px;text-transform:uppercase;letter-spacing:.03em}
.ai-msg p{margin:0;font-size:14px;line-height:1.45}
.ai-ask-row{display:flex;gap:8px}
.ai-ask-row input{flex:1;border:1px solid var(--line);background:var(--panel);color:var(--text);border-radius:10px;padding:10px 12px}
