/* Layout: Arbeitsfläche links, rechts haftende Kostenleiste; mobil Leiste unten. Farben als Tokens, hell/dunkel. */
/* Keine externen Schriften (Google Fonts) – IP-Übertragung ohne Einwilligung ist unzulässig (LG München I, 20.01.2022, 3 O 17493/20). */
:root{
  --bg:#eef0ee; --panel:#ffffff; --panel-2:#f6f7f5; --line:#d5d9d4; --fg:#1d2321; --muted:#5f6a66;
  --accent:#1f5fa8; --accent-ink:#ffffff; --accent-soft:#e3ecf7;
  --pe:#2f8a3e; --pe-soft:#e6f3e8; --warn:#9a5c00; --warn-soft:#fbf0dc; --danger:#b3261e; --danger-soft:#fbe9e7; --brown:#7a4a2a;
  --plate:#fbfbfa; --plate-edge:#b9c0bb; --rocker:#ffffff; --screen:#1f2a33; --glass:#22292e; --cab:#e4e7e3;
  --display:"Barlow Condensed","Roboto Condensed","Arial Narrow","Helvetica Neue",Arial,sans-serif;
  --body:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --mono:ui-monospace,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace;
  --r:6px; color-scheme:light;
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){
  --bg:#141917; --panel:#1c2220; --panel-2:#222a27; --line:#34403b; --fg:#e7ece9; --muted:#9aa7a1;
  --accent:#6ea6ea; --accent-ink:#0b1a2b; --accent-soft:#1d2d40; --pe:#6cc47b; --pe-soft:#1c3322; --warn:#f0b450; --warn-soft:#3a2d16; --danger:#ff8a80; --danger-soft:#3b1d1a; --brown:#c48a62;
  --plate:#2d3532; --plate-edge:#56635d; --rocker:#3a4440; --screen:#0b1216; --glass:#0f1417; --cab:#28302d; color-scheme:dark}}
:root[data-theme="dark"]{
  --bg:#141917; --panel:#1c2220; --panel-2:#222a27; --line:#34403b; --fg:#e7ece9; --muted:#9aa7a1;
  --accent:#6ea6ea; --accent-ink:#0b1a2b; --accent-soft:#1d2d40; --pe:#6cc47b; --pe-soft:#1c3322; --warn:#f0b450; --warn-soft:#3a2d16; --danger:#ff8a80; --danger-soft:#3b1d1a; --brown:#c48a62;
  --plate:#2d3532; --plate-edge:#56635d; --rocker:#3a4440; --screen:#0b1216; --glass:#0f1417; --cab:#28302d; color-scheme:dark}
*{box-sizing:border-box}
html,body{margin:0}
body{background:var(--bg);color:var(--fg);font-family:var(--body);font-size:15px;line-height:1.45}
.wrap{max-width:1180px;margin:0 auto;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));padding-block:20px 120px}
h1,h2,h3{font-family:var(--display);font-weight:600;letter-spacing:.01em;text-wrap:balance;margin:0}
h1{font-size:2rem;line-height:1.05} h2{font-size:1.45rem} h3{font-size:1.15rem}
a{color:var(--accent)}
.eyebrow{font-family:var(--mono);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.muted{color:var(--muted)} .mono{font-family:var(--mono);font-variant-numeric:tabular-nums}
.head{display:flex;flex-wrap:wrap;gap:12px 24px;align-items:flex-end;justify-content:space-between;margin-bottom:16px}
.cables{display:flex;gap:3px;margin-bottom:8px} .cables i{display:block;width:26px;height:4px;border-radius:2px}
.tabs{display:flex;gap:4px;flex-wrap:wrap;border-bottom:1px solid var(--line);margin-bottom:18px}
.tab{font:600 1rem var(--display);letter-spacing:.02em;background:none;border:0;border-bottom:3px solid transparent;color:var(--muted);padding:10px 12px;cursor:pointer}
.tab[aria-selected="true"]{color:var(--fg);border-bottom-color:var(--accent)}
.tab .n{font-family:var(--mono);font-size:.75rem;margin-right:6px;color:var(--accent)}
.grid{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:20px;align-items:start}
@media (max-width:900px){.grid{grid-template-columns:minmax(0,1fr)}.side{display:none}}
.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--r)}
.room{margin-bottom:16px}
.room-h{display:flex;flex-wrap:wrap;gap:10px;align-items:center;padding:12px 14px;border-bottom:1px solid var(--line)}
.room-b{padding:14px;display:grid;gap:16px}
.cols{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr) minmax(0,1fr);gap:14px}
@media (max-width:820px){.cols{grid-template-columns:minmax(0,1fr)}}
.cols2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;border-top:1px dashed var(--line);padding-top:14px}
@media (max-width:820px){.cols2{grid-template-columns:minmax(0,1fr)}}
.col h4{margin:0 0 8px;font:600 .8rem var(--mono);text-transform:uppercase;letter-spacing:.06em;color:var(--muted);display:flex;align-items:center;gap:6px}
.col h4 i{width:10px;height:10px;border-radius:2px;display:inline-block}
.item{display:flex;gap:6px;align-items:center;margin-bottom:6px;flex-wrap:wrap}
.item input[type=text]{flex:1 1 110px;min-width:0}
input[type=text],input[type=email],input[type=tel],input[type=number],input[type=password],input[type=date],input[type=search],select,textarea{font:inherit;color:var(--fg);background:var(--panel-2);border:1px solid var(--line);border-radius:4px;padding:6px 8px;max-width:100%}
input[type=number]{width:72px}
textarea{width:100%;min-height:80px;resize:vertical}
input:focus-visible,select:focus-visible,textarea:focus-visible,button:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
button{font:inherit;cursor:pointer}
button:disabled{opacity:.55;cursor:not-allowed}
.btn{background:var(--panel-2);color:var(--fg);border:1px solid var(--line);border-radius:4px;padding:6px 11px;font-weight:500;text-decoration:none;display:inline-block}
.btn:hover{border-color:var(--accent)}
.btn.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent);font-weight:600}
.btn.danger{color:var(--danger)}
.btn.ghost{background:none;border-color:transparent;color:var(--muted);padding:4px 7px}
.btn.ghost:hover{color:var(--danger)}
.btn.add{border-style:dashed;color:var(--accent);background:none;width:100%}
.btn.link{background:none;border:0;padding:0;color:var(--accent)}
.seg{display:inline-flex;border:1px solid var(--line);border-radius:4px;overflow:hidden}
.seg button{border:0;background:var(--panel-2);color:var(--muted);padding:6px 12px;font-weight:600}
.seg button[aria-pressed="true"]{background:var(--accent);color:var(--accent-ink)}
.pill{font:500 .74rem var(--mono);padding:2px 6px;border-radius:999px;border:1px solid var(--line);color:var(--muted);white-space:nowrap}
.pill.on{background:var(--accent-soft);color:var(--accent);border-color:transparent}
.st{font:600 .74rem var(--mono);padding:2px 8px;border-radius:999px;white-space:nowrap;background:var(--panel-2);color:var(--muted);border:1px solid var(--line)}
.st.neu{background:var(--accent-soft);color:var(--accent);border-color:transparent}
.st.angenommen,.st.erledigt{background:var(--pe-soft);color:var(--pe);border-color:transparent}
.st.abgelehnt{background:var(--danger-soft);color:var(--danger);border-color:transparent}
.st.versendet{background:var(--warn-soft);color:var(--warn);border-color:transparent}
.sp{border:1px solid var(--line);border-radius:4px;padding:6px;margin-bottom:8px;background:var(--panel-2)}
.sp-row{display:flex;gap:8px;align-items:center}
.sp-row input[type=text]{flex:1 1 auto;min-width:0}
.thumb{flex:0 0 auto;width:48px;height:48px;padding:2px;border:1px solid var(--line);border-radius:4px;background:var(--panel);display:grid;place-items:center}
.thumb:hover,.thumb[aria-expanded="true"]{border-color:var(--accent)}
.thumb svg{width:42px;height:42px}
.sp-sum{font-size:.8rem;color:var(--muted);margin-top:4px}
.picker{display:grid;grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:6px;margin-top:8px}
.opt{border:1px solid var(--line);border-radius:4px;background:var(--panel);padding:6px;text-align:center;color:var(--fg);display:grid;gap:2px;justify-items:center}
.opt svg{width:56px;height:56px}
.opt b{font-size:.8rem;line-height:1.2;font-weight:600}
.opt small{font:400 .7rem var(--mono);color:var(--muted)}
.opt[aria-pressed="true"]{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent);background:var(--accent-soft)}
.opt .top{font:600 .62rem var(--mono);text-transform:uppercase;letter-spacing:.05em;color:var(--accent)}
.matrix-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:4px}
table{border-collapse:collapse;width:100%;font-variant-numeric:tabular-nums}
.matrix th,.matrix td{padding:6px 8px;border-bottom:1px solid var(--line);text-align:center;font-size:.88rem}
.matrix th{font-weight:600;background:var(--panel-2);white-space:nowrap}
.matrix td:first-child,.matrix th:first-child{text-align:left}
.matrix input{width:18px;height:18px;accent-color:var(--accent)}
.warn{background:var(--warn-soft);color:var(--warn);border-radius:4px;padding:6px 9px;font-size:.86rem}
.okbox{background:var(--pe-soft);color:var(--pe);border-radius:4px;padding:6px 9px;font-size:.86rem}
.errbox{background:var(--danger-soft);color:var(--danger);border-radius:4px;padding:6px 9px;font-size:.86rem}
.side{position:sticky;top:calc(env(safe-area-inset-top,0px) + 12px)}
.side .card{padding:16px}
.total{font:700 2.1rem var(--display);line-height:1}
.kv{display:flex;justify-content:space-between;gap:10px;padding:4px 0;border-bottom:1px dashed var(--line);font-size:.92rem}
.kv:last-child{border-bottom:0}
.kv b{font-family:var(--mono);font-weight:500;text-align:right}
.kv.sum{font-weight:600;border-bottom:0;border-top:1px solid var(--fg);padding-top:6px}
.norm{font:400 .76rem var(--mono);color:var(--muted)}
.list th,.list td{padding:7px 8px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top;font-size:.9rem}
.list th{font:600 .74rem var(--mono);text-transform:uppercase;letter-spacing:.05em;color:var(--muted);background:var(--panel-2)}
.list td.r,.list th.r{text-align:right;white-space:nowrap}
.list tr.grp td{background:var(--panel-2);font:600 1rem var(--display);letter-spacing:.02em}
.list tr.click{cursor:pointer} .list tr.click:hover td{background:var(--accent-soft)}
.list input[type=text],.list input[type=number],.list select{padding:4px 6px}
.tbl{overflow-x:auto}
.section{padding:16px;margin-bottom:16px}
.row{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.spread{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between}
.brands{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}
.brand{border:1px solid var(--line);border-radius:4px;padding:10px;background:var(--panel-2);text-align:left;color:var(--fg)}
.brand[aria-pressed="true"]{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent);background:var(--accent-soft)}
.brand small{display:block;color:var(--muted);font-size:.8rem}
.brand.big{padding:14px} .brand.big b{font:600 1.15rem var(--display)}
.opts{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px 18px;margin-top:10px}
.opts label,.flabel{display:grid;gap:4px;font-size:.88rem;font-weight:500}
.chk{display:flex!important;gap:8px;align-items:flex-start;font-weight:400!important}
.chk input{margin-top:3px}
.din{display:flex;gap:2px;flex-wrap:wrap;padding:8px;background:var(--panel-2);border:1px solid var(--line);border-radius:4px}
.te{height:46px;border-radius:2px;display:flex;align-items:flex-end;justify-content:center;font:500 .6rem var(--mono);color:#fff;padding-bottom:3px;overflow:hidden}
.te.ls{background:#5b6b74}.te.fi{background:#2f6aa3}.te.knx{background:#2f8a3e}.te.spd{background:#9a5b2b}.te.res{background:transparent;border:1px dashed var(--line);color:var(--muted)}
.cab-wrap{overflow-x:auto;padding:4px 0}
.cab{display:inline-flex;gap:3px;padding:6px;background:var(--plate-edge);border-radius:4px}
.fld{width:86px;background:var(--cab);border-radius:2px;display:flex;flex-direction:column;gap:2px;padding:3px;font:500 .6rem/1.2 var(--mono);color:var(--muted)}
.fld .z{border:1px solid var(--plate-edge);border-radius:2px;display:grid;place-items:center;text-align:center;padding:2px}
.fld .z.m{background:var(--panel);color:var(--fg)}
.fld .z.apz{background:var(--accent-soft);color:var(--accent)}
.fld .z.sls{background:#5b6b74;color:#fff;border-color:transparent}
.fld .rail{height:9px;border-bottom:1px solid var(--plate-edge);background:var(--panel-2)}
.fld .rail.u{background:#2f6aa3}
.fld .cap{font-weight:600;color:var(--fg);text-align:center}
.form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.form label{display:grid;gap:4px;font-size:.88rem;font-weight:500}
.form .full{grid-column:1/-1}
@media (max-width:600px){.form{grid-template-columns:minmax(0,1fr)}}
.hp{position:absolute!important;left:-10000px;width:1px;height:1px;overflow:hidden}
.code{font:400 .78rem/1.5 var(--mono);background:var(--panel-2);border:1px solid var(--line);border-radius:4px;padding:10px;max-height:260px;overflow:auto;white-space:pre}
.bar{position:fixed;left:0;right:0;bottom:0;background:var(--panel);border-top:1px solid var(--line);padding-block:10px calc(10px + env(safe-area-inset-bottom,0px));padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));display:none;justify-content:space-between;align-items:center;gap:12px;z-index:5}
@media (max-width:900px){.bar{display:flex}}
.toast{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(80px + env(safe-area-inset-bottom,0px));background:var(--fg);color:var(--bg);padding:8px 14px;border-radius:4px;font-size:.9rem;z-index:20;max-width:calc(100vw - 32px)}
.note{font-size:.86rem;color:var(--muted);max-width:72ch}
.ok{color:var(--pe);font-weight:600}
.banner{background:var(--warn-soft);color:var(--warn);border-radius:var(--r);padding:10px 14px;margin-bottom:14px;display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between}
.foot{max-width:1180px;margin:0 auto;padding:24px max(16px,env(safe-area-inset-right,0px)) calc(24px + env(safe-area-inset-bottom,0px)) max(16px,env(safe-area-inset-left,0px));font-size:.85rem;color:var(--muted);display:flex;flex-wrap:wrap;gap:8px 18px}
.loading{padding:40px 0;text-align:center;color:var(--muted)}
@media (max-width:900px){.foot{padding-bottom:110px}}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}
.list td.mono{white-space:nowrap}
/* Betriebsseite */
.topnav{display:flex;flex-wrap:wrap;gap:4px 8px;align-items:center;border-bottom:1px solid var(--line);margin-bottom:18px}
.topnav a{font:600 1rem var(--display);letter-spacing:.02em;color:var(--muted);text-decoration:none;padding:10px 10px;border-bottom:3px solid transparent}
.topnav a[aria-current="page"]{color:var(--fg);border-bottom-color:var(--accent)}
.topnav .sp-auto{margin-left:auto;display:flex;gap:8px;align-items:center;padding:6px 0}
.cards2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
@media (max-width:900px){.cards2{grid-template-columns:minmax(0,1fr)}}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}
.kpi{background:var(--panel-2);border:1px solid var(--line);border-radius:4px;padding:10px}
.kpi b{display:block;font:700 1.35rem var(--display)}
.kpi span{font-size:.8rem;color:var(--muted)}
.ag td{vertical-align:middle}
.ag input.t{width:100%;min-width:320px}
.ag input.n{width:80px;text-align:right}
.ag input.e{width:56px}
.dirty{color:var(--warn);font-size:.85rem;font-weight:600}
.login{max-width:380px;margin:60px auto}
.login label{display:grid;gap:4px;margin-bottom:12px;font-weight:500}
.art input.t{width:100%;min-width:240px}
.art input.n{width:84px;text-align:right}
.art input.a{width:110px}
.art tr.chg td{background:var(--warn-soft)}
.filters{display:flex;flex-wrap:wrap;gap:10px;align-items:end;margin-bottom:12px}
.filters label{display:grid;gap:4px;font-size:.82rem;font-weight:500}
.opts input,.opts select,.opts textarea{width:100%;min-width:0}
.opts .chk input{width:auto}
