/* Disponio – Erweiterungen: Status-Einstellungen, Pop-ups, Kundenakte, Auftragsassistent, Plan & Abrechnung, Stundenzettel */

/* ---------- Schalter ---------- */
.switch{display:inline-flex;align-items:center;gap:8px;cursor:pointer;user-select:none;font-size:13px;color:var(--ink-2)}
.switch input{position:absolute;opacity:0;width:1px;height:1px}
.switch-ui{width:36px;height:20px;border-radius:999px;background:#CBD0CA;position:relative;transition:background .15s;flex-shrink:0}
.switch-ui::after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.25);transition:transform .15s}
.switch input:checked+.switch-ui{background:var(--brand)}
.switch input:checked+.switch-ui::after{transform:translateX(16px)}
.switch input:focus-visible+.switch-ui{outline:2px solid var(--brand);outline-offset:2px}

/* ---------- Einstellungen: Auftragsstatus ---------- */
.st-card .card-head{align-items:flex-start}
.st-card .card-head>div{display:flex;flex-direction:column;gap:2px}
.st-groups{display:flex;flex-direction:column}
.st-group{padding:14px 18px 6px}
.st-group+.st-group{border-top:1px solid var(--line-2)}
.st-group-head{margin-bottom:8px}
.st-list{display:flex;flex-direction:column;gap:8px}
.st-row{display:grid;grid-template-columns:4px minmax(0,1fr) auto auto;gap:14px;align-items:center;padding:10px 14px 10px 0;border:1px solid var(--line-2);border-radius:10px;background:var(--soft);overflow:hidden}
.st-bar{align-self:stretch;background:var(--c);margin:-10px 0}
.st-main{display:flex;flex-direction:column;gap:4px;min-width:0}
.st-top{display:flex;align-items:center;gap:10px}
.st-label{max-width:280px;height:34px;font-weight:500;background:#fff}
.st-preview{display:inline-flex}
.st-final{height:18px;font-size:11px;margin-left:4px}
.st-colors{display:flex;flex-wrap:wrap;gap:5px;max-width:340px;justify-content:flex-end}
.st-sw{width:20px;height:20px;border-radius:50%;border:2px solid #fff;box-shadow:0 0 0 1px var(--line);cursor:pointer;padding:0;position:relative}
.st-sw.on{box-shadow:0 0 0 2px var(--ink)}
.st-custom{background:conic-gradient(#e33,#ec3,#3c5,#3ae,#a3e,#e33);overflow:hidden;display:inline-block}
.st-custom input{opacity:0;position:absolute;inset:0;width:100%;height:100%;cursor:pointer;border:0;padding:0}
@media (max-width:900px){
  .st-row{grid-template-columns:4px minmax(0,1fr);row-gap:10px}
  .st-colors,.st-row .switch{grid-column:2;justify-content:flex-start}
}

/* ---------- Pop-ups (natives <dialog>) ---------- */
dialog.modal{border:0;padding:0;border-radius:14px;width:min(560px,calc(100vw - 24px));max-height:calc(100vh - 32px);box-shadow:0 24px 64px rgba(15,36,41,.32);color:var(--ink);background:#fff;overflow:hidden}
dialog.modal.wide{width:min(760px,calc(100vw - 24px))}
dialog.modal.xwide{width:min(980px,calc(100vw - 24px))}
dialog.modal::backdrop{background:rgba(15,36,41,.5)}
dialog.modal[open]{display:flex;flex-direction:column}
.modal-form{display:flex;flex-direction:column;min-height:0;max-height:calc(100vh - 32px);margin:0}
.modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:18px 22px 12px;border-bottom:1px solid var(--line-2)}
.modal-head h2{font-size:17px}
.modal-head .eyebrow{margin-bottom:2px}
.modal-x{width:34px;height:34px;border:0;border-radius:8px;background:transparent;color:var(--muted);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}
.modal-x:hover{background:var(--soft);color:var(--ink)}
.modal-body{padding:16px 22px;overflow:auto;display:flex;flex-direction:column;gap:14px;flex:1;min-height:0}
.modal-foot{display:flex;align-items:center;gap:8px;padding:12px 22px 16px;border-top:1px solid var(--line-2);background:var(--soft)}
.modal-foot .spacer{flex:1}
.confirm-box{padding:22px;display:flex;flex-direction:column;gap:10px}
.confirm-box h3{font-size:16px}
.confirm-actions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap;margin-top:6px}
dialog.modal.confirm{width:min(440px,calc(100vw - 24px))}

/* Auswahlkarten (Firma / Privat) */
.choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.choice{position:relative;display:flex;flex-direction:column;gap:6px;padding:18px;border:1.5px solid var(--line);border-radius:12px;cursor:pointer;background:#fff;transition:border-color .12s,box-shadow .12s}
.choice:hover{border-color:var(--brand-500)}
.choice input{position:absolute;opacity:0}
.choice:has(input:checked){border-color:var(--brand);box-shadow:0 0 0 1px var(--brand);background:var(--brand-50)}
.choice .ch-ic{width:40px;height:40px;border-radius:10px;background:var(--brand-100);color:var(--brand);display:flex;align-items:center;justify-content:center}
.choice b{font-size:15px}
.choice small{color:var(--muted);font-size:12.5px}
.seg-choice{display:inline-flex;padding:3px;background:#E6E8E3;border-radius:9px;gap:2px}
.seg-choice label{position:relative;cursor:pointer}
.seg-choice input{position:absolute;opacity:0}
.seg-choice span{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 14px;border-radius:7px;font:500 13px var(--font);color:var(--ink-2)}
.seg-choice input:checked+span{background:#fff;color:var(--ink);box-shadow:0 1px 2px rgba(0,0,0,.08)}

/* Schrittanzeige im Pop-up */
.mstep-nav{display:flex;gap:4px;padding:0 22px;border-bottom:1px solid var(--line-2);overflow-x:auto;scrollbar-width:none}
.mstep-nav button{display:inline-flex;align-items:center;gap:8px;padding:11px 10px;border:0;background:none;font:500 13px var(--font);color:var(--muted);border-bottom:2px solid transparent;cursor:pointer;white-space:nowrap}
.mstep-nav button .sn{width:20px;height:20px;border-radius:50%;background:#E6E8E3;color:var(--ink-2);font-size:11px;display:inline-flex;align-items:center;justify-content:center;font-weight:600}
.mstep-nav button.on{color:var(--ink);border-bottom-color:var(--brand)}
.mstep-nav button.on .sn{background:var(--brand);color:#fff}
.mstep-nav button.done .sn{background:var(--ok-bg);color:var(--ok)}
.mstep-nav button.opt{font-style:normal}
.mstep-nav button.opt small{font-weight:400;color:var(--faint)}
.mstep{display:none;flex-direction:column;gap:14px}
.mstep.on{display:flex}

/* Bearbeiten-Stift neben Feldern */
.fields{display:flex;flex-direction:column}
.frow{display:grid;grid-template-columns:130px minmax(0,1fr) 32px;gap:10px;align-items:start;padding:9px 0;border-bottom:1px solid var(--line-2)}
.frow:last-child{border-bottom:0}
.frow .k{font-size:12.5px;color:var(--muted);padding-top:2px}
.frow .v{font-size:14px;min-width:0;overflow-wrap:anywhere}
.frow .v.empty{color:var(--faint);font-style:italic}
.pen{width:30px;height:30px;border-radius:7px;border:1px solid transparent;background:transparent;color:var(--muted);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;margin-top:-4px}
.pen:hover{background:var(--brand-50);border-color:var(--brand-100);color:var(--brand)}
.frow:hover .pen{color:var(--brand)}
.maplink{display:inline-flex;align-items:flex-start;gap:6px}.maplink .ic{flex-shrink:0;margin-top:.2em}
.maplink .ic{color:var(--brand-500)}
.maplink:hover{text-decoration:underline}

/* ---------- Kundenakte ---------- */
.ck-head{display:flex;align-items:flex-start;gap:16px}
.ck-avatar{width:52px;height:52px;border-radius:14px;display:flex;align-items:center;justify-content:center;background:var(--brand-100);color:var(--brand);flex-shrink:0}
.ck-avatar.private{background:#F1E6EF;color:#7A2F6B}
.type-tag{display:inline-flex;align-items:center;gap:5px;height:22px;padding:0 8px;border-radius:6px;font-size:12px;font-weight:500;background:var(--brand-100);color:var(--brand)}
.type-tag.private{background:#F1E6EF;color:#7A2F6B}
.incomplete{display:flex;gap:14px;align-items:flex-start;padding:14px 16px;border-radius:12px;background:var(--warn-bg);border:1px solid var(--warn-line)}
.incomplete .ic-wrap{position:relative;color:var(--warn)}
.incomplete .dot-badge{position:absolute;top:-6px;right:-8px}
.incomplete b{color:#6E2B08}
.incomplete .todo{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.todo-chip{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 10px;border-radius:999px;background:#fff;border:1px solid var(--warn-line);color:#6E2B08;font:500 12.5px var(--font);cursor:pointer;text-decoration:none}
.todo-chip:hover{background:#FFF9F4;text-decoration:none;color:#6E2B08}
.dot-badge{min-width:18px;height:18px;border-radius:9px;background:#C2531A;color:#fff;font-size:11px;font-weight:600;display:inline-flex;align-items:center;justify-content:center;padding:0 5px}
.inc-mark{display:inline-flex;align-items:center;gap:4px;height:20px;padding:0 7px;border-radius:999px;background:var(--warn-bg);color:var(--warn);font-size:11.5px;font-weight:600}

.site-card{border:1px solid var(--line);border-radius:12px;background:#fff;overflow:hidden}
.site-head{display:flex;align-items:flex-start;gap:12px;padding:14px 16px}
.site-head .site-ic{width:36px;height:36px;border-radius:10px;background:var(--brand-50);color:var(--brand);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.site-head h3{font-size:15px}
.site-sec{padding:10px 16px 12px;border-top:1px solid var(--line-2)}
.site-sec-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px}
.site-sec-head .eyebrow{display:flex;align-items:center;gap:6px}
.tree{display:flex;flex-direction:column;gap:4px;padding-left:14px;border-left:2px solid var(--line-2);margin-left:6px}
.tree-item{display:flex;align-items:center;gap:8px;padding:5px 8px;border-radius:8px}
.tree-item:hover{background:var(--soft)}
.tree-item .grow small{display:block;color:var(--muted);font-size:12px}
.role-chip{display:inline-flex;align-items:center;gap:5px;height:22px;padding:0 8px;border-radius:999px;font-size:11.5px;font-weight:500;background:#EEF0EC;color:var(--ink-2);white-space:nowrap}
.role-chip.onsite{background:#E1EAF8;color:#1C4A92}
.role-chip.technical{background:#E4F0E7;color:#185F33}
.role-chip.admin{background:#F6E7D3;color:#734500}
.role-chip.implicit{background:transparent;border:1px dashed var(--field);color:var(--muted)}
.role-chip form{display:inline;margin:0}
.role-chip button{border:0;background:none;padding:0;margin-left:2px;cursor:pointer;color:inherit;opacity:.6;font-size:13px;line-height:1}
.role-chip button:hover{opacity:1}
.person{display:flex;gap:10px;align-items:flex-start;padding:12px 0;border-bottom:1px solid var(--line-2)}
.person:last-child{border-bottom:0}
.person .roles{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}
.equip{display:flex;align-items:center;gap:10px;padding:7px 8px;border-radius:8px}
.equip:hover{background:var(--soft)}
.equip .eq-ic{width:28px;height:28px;border-radius:8px;background:#F4F1E8;color:#6B5A2A;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.equip small{display:block;color:var(--muted);font-size:12px}
.mini-btn{display:inline-flex;align-items:center;gap:4px;height:26px;padding:0 9px;border-radius:7px;border:1px solid var(--line);background:#fff;font:500 12px var(--font);color:var(--ink-2);cursor:pointer;text-decoration:none;white-space:nowrap}
.mini-btn:hover{border-color:var(--brand-500);color:var(--brand);text-decoration:none}
.side-sticky{position:sticky;top:76px}

/* ---------- Auftragsassistent ---------- */
.wz-cust{display:flex;gap:12px;align-items:flex-start;padding:12px 14px;border:1px solid var(--brand-100);background:var(--brand-50);border-radius:12px}
.wz-cust .grow small{display:block;color:var(--muted);font-size:12.5px}
.wz-results{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:10px;overflow:hidden;max-height:260px;overflow-y:auto}
.wz-results button{display:flex;flex-direction:column;align-items:flex-start;gap:1px;padding:9px 12px;border:0;border-bottom:1px solid var(--line-2);background:#fff;text-align:left;font:inherit;cursor:pointer}
.wz-results button:last-child{border-bottom:0}
.wz-results button:hover,.wz-results button.active{background:var(--brand-50)}
.wz-results button small{color:var(--muted);font-size:12px}
.wz-results button.create{color:var(--brand);font-weight:500}
.wz-sites{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px}
.wz-site{position:relative;display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border:1.5px solid var(--line);border-radius:10px;cursor:pointer;background:#fff}
.wz-site input{position:absolute;opacity:0}
.wz-site:has(input:checked){border-color:var(--brand);background:var(--brand-50)}
.wz-site small{display:block;color:var(--muted);font-size:12px}
.wz-site .ic{color:var(--brand-500);margin-top:2px}
.wz-emps{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:6px}
.wz-emp{display:flex;align-items:center;gap:8px;padding:7px 10px;border:1px solid var(--line);border-radius:10px;cursor:pointer;background:#fff}
.wz-emp:has(input:checked){border-color:var(--brand);background:var(--brand-50)}
.wz-emp input{accent-color:var(--brand)}
.wz-emp small{display:block;font-size:11.5px;color:var(--muted)}
.wz-hint{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border-radius:10px;background:var(--info-bg);color:var(--info);font-size:13px}
.wz-hint.warn{background:var(--warn-bg);color:var(--warn)}
.wz-state{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;color:var(--muted)}
.wz-state .pill{height:20px}
.req{color:var(--warn)}
.grid-3f{display:grid;grid-template-columns:2fr 1fr 2fr;gap:10px}
.repeat-mini{display:flex;flex-direction:column;gap:6px}
.repeat-mini .rr{display:grid;grid-template-columns:minmax(0,1fr) 34px;gap:6px}
.repeat-mini .rr.mat{grid-template-columns:minmax(0,1fr) 80px 80px 34px}
.icon-ghost{width:34px;height:38px;border:0;border-radius:8px;background:transparent;color:var(--muted);cursor:pointer;display:inline-flex;align-items:center;justify-content:center}
.icon-ghost:hover{background:var(--soft);color:var(--err)}
@media (max-width:640px){
  .choice-grid{grid-template-columns:minmax(0,1fr)}
  .grid-3f{grid-template-columns:minmax(0,1fr)}
  .frow{grid-template-columns:minmax(0,1fr) 32px}
  .frow .k{grid-column:1/-1;padding:0}
  .modal-head,.modal-body,.modal-foot{padding-left:16px;padding-right:16px}
  .repeat-mini .rr.mat{grid-template-columns:minmax(0,1fr) 64px 64px 34px}
}

/* Aufträge: Termin bestätigen / Entwürfe */
.need-list{display:flex;flex-direction:column}
.need{display:flex;align-items:center;gap:12px;padding:12px 18px;border-bottom:1px solid var(--line-2)}
.need:last-child{border-bottom:0}
.need .grow small{display:block;color:var(--muted);font-size:12.5px}
.need-note{display:inline-flex;align-items:center;gap:6px;margin-top:4px;padding:2px 8px;border-radius:6px;background:#FFF6DD;color:#6B4E00;font-size:12px}
.draft-ic{width:34px;height:34px;border-radius:9px;background:#EEF0EC;color:var(--ink-2);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.need-ic{width:34px;height:34px;border-radius:9px;background:var(--warn-bg);color:var(--warn);display:flex;align-items:center;justify-content:center;flex-shrink:0}

/* ---------- Plan & Abrechnung ---------- */
.bill-hero{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:0;overflow:hidden}
.bill-plan{padding:22px 24px;background:linear-gradient(135deg,var(--brand-900),var(--brand-700));color:#fff;display:flex;flex-direction:column;gap:14px}
.bill-plan .eyebrow{color:rgba(255,255,255,.6)}
.bill-plan h2{font-size:26px;font-weight:600;color:#fff}
.bill-plan .price{font-family:var(--mono);font-size:15px;color:rgba(255,255,255,.85)}
.bill-plan .meta{display:flex;flex-wrap:wrap;gap:8px}
.bill-plan .meta span{display:inline-flex;align-items:center;gap:6px;height:26px;padding:0 10px;border-radius:999px;background:rgba(255,255,255,.12);font-size:12.5px}
.bill-usage{padding:20px 24px;display:flex;flex-direction:column;gap:18px;justify-content:center}
.usage-row .top{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:6px}
.usage-row .top b{font-size:14px}
.usage-row .num{font-family:var(--mono);font-size:13px}
.ubar{height:10px;border-radius:999px;background:#E6E8E3;overflow:hidden}
.ubar i{display:block;height:100%;border-radius:999px;background:var(--brand-500)}
.ubar.warn i{background:#D98A1E}.ubar.full i{background:#C2531A}
.plans2{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}
.plan2{position:relative;display:flex;flex-direction:column;gap:12px;padding:20px;border:1px solid var(--line);border-radius:14px;background:#fff}
.plan2.current{border-color:var(--brand);box-shadow:0 0 0 1px var(--brand)}
.plan2.rec{border-color:#D98A1E;box-shadow:0 0 0 1px #D98A1E}
.plan2 h3{font-size:17px}
.plan2 .p{display:flex;align-items:baseline;gap:6px}
.plan2 .p b{font-family:var(--mono);font-size:26px;font-weight:500}
.plan2 .p span{color:var(--muted);font-size:12.5px}
.plan2 ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;font-size:13.5px}
.plan2 li{display:flex;gap:8px;align-items:center}
.plan2 li .ic{color:var(--brand-500)}
.plan2 .act{margin-top:auto}
.plan2 .badge{position:absolute;top:-10px;left:18px;font-size:11px;font-weight:600;background:var(--brand);color:#fff;border-radius:999px;padding:3px 10px}
.plan2 .badge.rec{background:#D98A1E}
.inv-status{display:inline-flex;align-items:center;gap:6px}
@media (max-width:860px){.bill-hero{grid-template-columns:minmax(0,1fr)}}

/* ---------- Stundenzettel ---------- */
.ts-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.ts-kpi{padding:14px 16px;display:flex;flex-direction:column;gap:4px}
.ts-kpi .n{font-family:var(--mono);font-size:22px;font-weight:500}
.ts-kpi .l{font-size:12.5px;color:var(--muted)}
.ts-kpi.pos .n{color:var(--ok)}.ts-kpi.neg .n{color:var(--err)}
.ts-table td,.ts-table th{white-space:nowrap}
.ts-table tr.we td{background:#FAFAF8;color:var(--muted)}
.ts-table tr.hol td{background:#F4F8F8}
.ts-table .num{text-align:right;font-family:var(--mono)}
.ts-table .pos{color:var(--ok)}.ts-table .neg{color:var(--err)}
.ts-table tfoot td{font-weight:600;border-top:2px solid var(--line)}
@media (max-width:860px){.ts-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
dialog[data-ctype=""] [data-only],dialog:not([data-ctype]) [data-only]{display:none!important}
dialog[data-ctype="company"] [data-only="private"],dialog[data-ctype="private"] [data-only="company"]{display:none!important}
.btn-danger-text{color:var(--err)}.btn-danger-text:hover{background:var(--err-bg);color:var(--err)}
.frow .empty{color:var(--faint);font-style:italic}
.role-grid{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:6px 12px;align-items:center;font-size:12.5px}
.role-grid .role-chip{justify-self:start}
.seg-choice{align-self:flex-start}
@media print{
  .sidebar,.topbar,.m-nav,.m-head,.alert,.plan-banner,[data-print],.page-head .btn,form{display:none!important}
  .content{padding:0}.card{break-inside:avoid;border-color:#ccc}
  body{background:#fff}
}
@media (max-width:640px){
  dialog.modal,dialog.modal.wide,dialog.modal.xwide{width:100vw;max-width:100vw;max-height:100dvh;height:100dvh;border-radius:0;margin:0}
  dialog.modal.confirm{height:auto;border-radius:14px;width:calc(100vw - 24px);margin:auto}
  .modal-form{max-height:100dvh;height:100%}
  .modal-head{flex-wrap:wrap}
  .modal-foot{flex-wrap:wrap;gap:6px}
  .modal-foot .wz-state{order:-1;width:100%}
  .modal-foot .spacer{display:none}
  .modal-foot .btn{flex:1 1 auto;padding:0 10px}
  [data-ow] .form-grid[style*="repeat(4"],#m-schedule .form-grid[style*="repeat(4"]{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  [data-ow] .choice-grid[style*="repeat(4"]{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .ts-table td,.ts-table th{padding-left:6px;padding-right:6px}
}
.m-nav{grid-template-columns:repeat(6,minmax(0,1fr))}
.m-nav a{font-size:10.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media (max-width:640px){
  .ts-table td:nth-child(2){white-space:normal;max-width:96px}
  .ts-table{font-size:12px}
}
@media (max-width:640px){
  .table.ts-table td,.table.ts-table th{padding:7px 5px}
  .table.ts-table td:first-child,.table.ts-table th:first-child{padding-left:10px}
  .table.ts-table td:last-child,.table.ts-table th:last-child{padding-right:10px}
  .ts-table td .tag{height:18px;font-size:11px;padding:0 5px}
}

/* Verfügbarkeit nur über Farbe: rot = zur Uhrzeit verplant, grau = abwesend/nicht möglich */
.wz-emp{position:relative}
.wz-emp::after{content:"";position:absolute;top:8px;right:8px;width:8px;height:8px;border-radius:50%;background:transparent}
.wz-emp.lvl-ok::after{background:#2E8B57}
.wz-emp.lvl-warn{border-color:#E9A79A;background:#FDF0EE}
.wz-emp.lvl-warn::after{background:#C93A2B}
.wz-emp.lvl-warn b{color:#9B2C20}
.wz-emp.lvl-block{opacity:.42;filter:grayscale(1);cursor:not-allowed;background:#F2F3F1}
.wz-emp.lvl-block b{text-decoration:line-through}
.avail-legend{display:flex;gap:14px;flex-wrap:wrap;font-size:12px;color:var(--muted)}
.avail-legend span{display:inline-flex;align-items:center;gap:5px}
.avail-legend i{width:8px;height:8px;border-radius:50%;display:inline-block}
.avail.lvl-warn{background:#FDF0EE}
.avail.lvl-warn b{color:#9B2C20}
.avail.lvl-block{opacity:.42;filter:grayscale(1)}
.avail [data-avail-msg]{display:none}

/* ---- Auftragsansicht: Kopf, Eckdaten, Reiter ---- */
.od-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap;margin-bottom:16px}
.od-title{min-width:0;flex:1 1 380px}
.od-title h1{margin:4px 0 0;font-size:24px;line-height:1.25}
.od-no{font-family:var(--mono);font-weight:500;color:var(--muted);font-size:.78em;margin-right:4px}
.crumbs{font-size:13px;color:var(--muted)}.crumbs a{color:var(--muted)}.crumbs a:hover{color:var(--brand)}
.od-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.od-actions form{margin:0}
.status-switch select{min-width:170px;font-weight:600}
.facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:14px}
.fact{display:flex;gap:12px;align-items:flex-start;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:14px;min-width:0}
.fact-ic{flex:0 0 36px;height:36px;border-radius:9px;background:var(--brand-50);color:var(--brand);display:grid;place-items:center}
.fact-b{display:flex;flex-direction:column;gap:2px;min-width:0;font-size:13px;color:var(--ink-2)}
.fact-b b{font-size:15px;color:var(--ink);overflow-wrap:anywhere}
.fact-b b a{color:inherit}.fact-b b a:hover{color:var(--brand)}
.fact-b>span{overflow-wrap:anywhere}
.fact-k{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--faint);font-weight:600}
.fact .link-btn{align-self:flex-start;padding:0;margin-top:2px}
.warn-t{color:var(--warn)!important}
.av-stack{display:flex;margin:2px 0}.av-stack>*{margin-left:-3px;box-shadow:0 0 0 2px var(--surface);border-radius:50%}.av-stack>*:first-child{margin-left:0}
.od-flow{display:flex;gap:0;margin:4px 0 18px;background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:4px;overflow-x:auto}
.od-step{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:6px 12px;border-radius:999px;font-size:13px;color:var(--faint);white-space:nowrap}
.od-step.done{color:var(--brand)}
.od-step.cur{background:var(--brand);color:#fff;font-weight:600}
.tabs button{appearance:none;background:none;border:0;border-bottom:2px solid transparent;padding:10px 14px;color:var(--muted);font:inherit;font-weight:500;font-size:14px;white-space:nowrap;cursor:pointer}
.tabs button:hover{color:var(--ink)}
.tabs button.on{color:var(--brand);border-bottom-color:var(--brand)}
.tabs button:focus-visible{outline:2px solid var(--brand);outline-offset:-2px;border-radius:4px}
.od-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(0,1fr);gap:16px;align-items:start}
.od-desc{margin:0;white-space:pre-line;font-size:15px;line-height:1.6;color:var(--ink)}
.od-eq{display:flex;gap:10px;align-items:flex-start;margin-top:14px;padding:10px 12px;border-radius:var(--r);background:var(--soft);border:1px solid var(--line-2)}
.od-eq div{display:flex;flex-direction:column}.od-eq small{color:var(--muted)}
.od-note{border-left:3px solid var(--line);padding:2px 0 2px 12px}
.od-note .k{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--faint);font-weight:600}
.od-note p{margin:2px 0 0;white-space:pre-line;font-size:14px}
.od-note.safety{border-left-color:#C24A1A}.od-note.safety .k{color:var(--warn)}
.od-note.internal{border-left-color:var(--info)}
.timeline{list-style:none;margin:0;padding:0 0 0 14px;border-left:2px solid var(--line-2)}
.timeline li{position:relative;display:flex;justify-content:space-between;gap:12px;padding:8px 0 8px 10px}
.timeline li::before{content:"";position:absolute;left:-20px;top:14px;width:10px;height:10px;border-radius:50%;background:var(--surface);border:2px solid var(--brand-500)}
.timeline time{white-space:nowrap}
[data-panel][hidden]{display:none!important}
@media (max-width:1100px){.facts{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:820px){.od-grid{grid-template-columns:1fr}.od-title h1{font-size:20px}}
@media (max-width:520px){.facts{grid-template-columns:1fr}.fact{padding:12px}.od-step{padding:6px 10px;font-size:12px}.timeline li{flex-direction:column;gap:2px}}

/* ---- Kundenakte: Übersicht ---- */
.cv-facts{margin-top:2px}
.cv-tabs{margin-top:6px}
.cv-body{min-width:0;display:flex;flex-direction:column;gap:16px}
.cv-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(320px,1fr);gap:16px;align-items:start}
.cv-orders{display:flex;flex-direction:column}
.cv-order{display:flex;align-items:center;gap:12px;padding:10px 16px;border-top:1px solid var(--line-2);color:var(--ink);text-decoration:none}
.cv-order:first-child{border-top:0}
.cv-order:hover{background:var(--soft)}
.cv-order .grow{min-width:0;display:flex;flex-direction:column}
.cv-order .grow b{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cv-order small{color:var(--muted);font-size:12px}
.cv-date{flex:0 0 46px;height:46px;border-radius:9px;background:var(--brand-50);color:var(--brand);display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1.05}
.cv-date b{font-size:17px}.cv-date small{font-size:10px;color:inherit;text-transform:uppercase;letter-spacing:.03em}
.cv-date.open{background:#FFF6DD;color:#6B4E00}
.cv-sites{display:flex;flex-direction:column}
.cv-site{display:flex;align-items:center;gap:12px;padding:10px 16px;border-top:1px solid var(--line-2)}
.cv-site:first-child{border-top:0}
.cv-site .grow{min-width:0;display:flex;flex-direction:column}
.cv-site .grow a{color:var(--ink)}.cv-site .grow a:hover{color:var(--brand)}
.cv-site small{font-size:12px}
.nowrap{white-space:nowrap}
.site-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(440px,1fr));gap:16px;align-items:start}
.site-grid .site-card{margin:0}
@media (max-width:1100px){.cv-grid{grid-template-columns:minmax(0,1fr)}}
@media (max-width:560px){.site-grid{grid-template-columns:1fr}.cv-site{flex-wrap:wrap}.cv-site .nowrap{white-space:normal;flex-basis:100%;padding-left:44px}}
.cv-site .site-ic{width:32px;height:32px;border-radius:9px;background:var(--brand-50);color:var(--brand);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.cv-grid>.col{min-width:0}
.cv-body .card-head{flex-wrap:wrap;gap:8px}.cv-body .seg{max-width:100%;overflow-x:auto}

/* Auftragsansicht: alles auf einer Seite */
.od-jump{position:sticky;top:60px;z-index:5;display:flex;gap:6px;overflow-x:auto;margin:0 0 14px;padding:8px 0;background:var(--ground)}
.od-jump a{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 12px;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--ink-2);font-size:13px;font-weight:500;text-decoration:none;white-space:nowrap}
.od-jump a:hover{border-color:var(--brand);color:var(--brand)}
.od-jump .count{display:inline-block;min-width:18px;padding:0 6px;border-radius:9px;background:var(--brand-100);color:var(--brand);font-size:11px;text-align:center}
.od-main>.card,.od-side>.card{scroll-margin-top:124px}
.od-side .list-item{gap:10px}
.od-more{margin-top:6px}.od-more summary{cursor:pointer;color:var(--brand)}
.od-more .timeline{margin-top:6px}
.od-side .timeline li{flex-direction:column;gap:0}

/* ---- Auftragsassistent: Schritte links, Inhalt rechts, feste Größe ---- */
dialog.modal.ow-modal{width:min(1120px,calc(100vw - 32px));height:min(760px,calc(100vh - 32px));max-height:calc(100vh - 32px)}
.ow-shell{display:grid;grid-template-columns:270px minmax(0,1fr);height:100%;max-height:none}
.ow-rail{display:flex;flex-direction:column;gap:16px;padding:20px 16px 16px;background:var(--brand-900);color:rgba(255,255,255,.8);min-height:0;overflow-y:auto}
.ow-rail-head{padding:0 6px}
.ow-rail-head .eyebrow{color:#7FC9C6}
.ow-rail-head h2{color:#fff;font-size:18px;line-height:1.25;margin-top:4px;overflow-wrap:anywhere}
.ow-kind{display:flex;background:rgba(255,255,255,.07);border-radius:10px;padding:3px}
.ow-kind label{flex:1}
.ow-kind span{width:100%;justify-content:center;color:rgba(255,255,255,.75);background:transparent!important;border:0!important}
.ow-kind input:checked+span{background:#fff!important;color:var(--ink)}
.ow-steps{display:flex;flex-direction:column;gap:2px;position:relative}
.ow-steps button{display:flex;align-items:flex-start;gap:12px;padding:10px;border:0;border-radius:10px;background:transparent;color:inherit;text-align:left;font:inherit;cursor:pointer;position:relative}
.ow-steps button:hover{background:rgba(255,255,255,.06)}
.ow-steps button.on{background:rgba(255,255,255,.1)}
.ow-steps .sn{flex:0 0 26px;height:26px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font:600 12px var(--font);border:1.5px solid rgba(255,255,255,.3);color:rgba(255,255,255,.8)}
.ow-steps button.on .sn{background:#fff;border-color:#fff;color:var(--brand-900)}
.ow-steps button.done .sn{background:#2E8A8C;border-color:#2E8A8C;color:transparent;position:relative}
.ow-steps button.done .sn::after{content:"";position:absolute;left:8px;top:5px;width:6px;height:11px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg)}
.ow-st{display:flex;flex-direction:column;min-width:0;padding-top:3px}
.ow-st b{font-size:14px;font-weight:600;color:#fff}
.ow-st em{font-style:normal;font-weight:400;font-size:12px;color:rgba(255,255,255,.5)}
.ow-st small{font-size:12px;color:rgba(255,255,255,.62);margin-top:2px;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.ow-steps button.on small{color:rgba(255,255,255,.8)}
.ow-rail-foot{margin-top:auto;padding:12px 10px 4px;border-top:1px solid rgba(255,255,255,.1);font-size:12.5px;color:rgba(255,255,255,.7);display:block}
.ow-rail-foot .pill{height:20px;background:#fff}
.ow-rail-foot .small{display:block;margin-top:6px;color:#F3C9A8}
.ow-main{display:flex;flex-direction:column;min-width:0;min-height:0;background:#fff}
.ow-main-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:20px 26px 14px}
.ow-main-head h3{font-size:21px;margin-top:2px}
.ow-of{font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--faint)}
.ow-progress{height:3px;background:var(--line-2);margin:0 26px}
.ow-progress span{display:block;height:100%;width:25%;background:var(--brand);border-radius:2px;transition:width .3s ease}
.ow-main .modal-body{padding:18px 26px 22px;gap:16px}
.ow-main .modal-foot{padding:14px 26px;background:#fff}
.ow-main .mstep.on{animation:owIn .25s ease}
@keyframes owIn{from{opacity:0;transform:translateX(8px)}to{opacity:1;transform:none}}
.ow-main .wz-hint .btn{flex-shrink:0;align-self:center}
@media (max-width:820px){
  dialog.modal.ow-modal{width:100vw;height:100dvh;max-height:100dvh}
  .ow-shell{grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr)}
  .ow-rail{flex-direction:row;flex-wrap:wrap;align-items:center;gap:10px;padding:12px 14px;overflow:visible}
  .ow-rail-head{flex:1 1 auto;padding:0}
  .ow-rail-head h2{font-size:16px}
  .ow-kind{order:3;flex:1 1 100%}
  .ow-steps{order:4;flex:1 1 100%;flex-direction:row;overflow-x:auto;gap:4px}
  .ow-steps button{flex:0 0 auto;padding:6px 8px;align-items:center;gap:8px}
  .ow-st small,.ow-st em{display:none}
  .ow-st b{font-size:13px;white-space:nowrap}
  .ow-st{padding:0}
  .ow-steps button:not(.on) .ow-st{display:none}
  .ow-rail-foot{display:none}
  .ow-main-head{padding:14px 16px 10px}
  .ow-main-head h3{font-size:18px}
  .ow-progress{margin:0 16px}
  .ow-main .modal-body{padding:14px 16px}
  .ow-main .modal-foot{padding:10px 16px}
  .ow-main .wz-hint{flex-wrap:wrap}
}

/* ---- Bearbeiten direkt im Feld (Kundenakte) ---- */
.frow.ie .ie-form{display:none}
.frow.ie.editing{grid-template-columns:130px minmax(0,1fr);background:var(--brand-50);margin:0 -12px;padding:10px 12px;border-radius:10px;border-bottom-color:transparent;box-shadow:inset 0 0 0 1.5px var(--brand-500)}
.frow.ie.editing .ie-view,.frow.ie.editing .pen{display:none}
.frow.ie.editing .ie-form{display:flex;flex-direction:column;gap:8px;min-width:0}
.frow.ie.editing .k{color:var(--brand);font-weight:600;padding-top:9px}
.ie-inputs{display:flex;gap:6px;flex-wrap:wrap}
.ie-inputs .input{flex:1 1 160px;min-width:0;height:36px;background:#fff}
.ie-inputs textarea.input{height:auto;flex-basis:100%}
.ie-inputs .w-full{flex-basis:100%}
.ie-inputs .w-sm{flex:0 0 96px}
.ie-inputs .w-md{flex:0 1 170px}
.ie-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.ie-actions .small{margin-left:4px}
.frow.ie:not(.editing) .ie-view{cursor:default}
.cv-notes .frow{grid-template-columns:minmax(0,1fr) 32px}
.cv-notes .frow .k{display:none}
.cv-notes .frow.ie.editing{grid-template-columns:minmax(0,1fr)}
.frow.ie .field-error,.frow.ie .error{margin:0}
@media (max-width:560px){.frow.ie.editing{grid-template-columns:minmax(0,1fr)}.frow.ie.editing .k{padding-top:0}.ie-actions .small{display:none}}
@media (max-width:900px){.grid-2[style*="grid-template-columns"]{grid-template-columns:minmax(0,1fr)!important}}
@media (max-width:640px){.page-head{flex-wrap:wrap}.page-head>.row,.page-head>div:last-child{flex-wrap:wrap}.card>table.table,.card-body>table.table{display:block;overflow-x:auto}}

/* ======================================================================
   Einheitlicher Pop-up-Stil (wie der Auftragsassistent):
   links dunkle Leiste mit Titel (und ggf. Schritten), rechts Inhalt und Knöpfe.
   ====================================================================== */
dialog.modal:not(.ow-modal):not(.confirm){width:min(860px,calc(100vw - 32px));border-radius:16px}
dialog.modal.wide:not(.ow-modal){width:min(980px,calc(100vw - 32px))}
dialog.modal.xwide:not(.ow-modal){width:min(1120px,calc(100vw - 32px))}
dialog.modal:not(.ow-modal):not(.confirm) .modal-form{
  display:grid;grid-template-columns:250px minmax(0,1fr);grid-template-rows:auto minmax(0,1fr) auto;
  min-height:min(420px,calc(100vh - 32px));
  background:linear-gradient(90deg,var(--brand-900) 250px,#fff 250px)}
dialog.modal:not(.ow-modal):not(.confirm) .modal-head{grid-column:1;grid-row:1;flex-direction:column;align-items:stretch;gap:6px;padding:22px 20px 18px;border:0;color:#fff}
dialog.modal:not(.ow-modal):not(.confirm) .modal-head .eyebrow{color:#7FC9C6}
dialog.modal:not(.ow-modal):not(.confirm) .modal-head h2{color:#fff;font-size:19px;line-height:1.25;overflow-wrap:anywhere}
dialog.modal:not(.ow-modal):not(.confirm) .modal-head::after{content:"";display:block;width:36px;height:3px;border-radius:2px;margin-top:10px;background:linear-gradient(90deg,#7FC9C6,rgba(127,201,198,0))}
dialog.modal:not(.ow-modal):not(.confirm) .modal-x{position:absolute;top:14px;right:14px;z-index:2;background:#fff;color:var(--muted)}
dialog.modal:not(.ow-modal):not(.confirm) .modal-x:hover{background:var(--soft);color:var(--ink)}
dialog.modal:not(.ow-modal):not(.confirm) .modal-body{grid-column:2;grid-row:1 / span 2;padding:26px 28px 22px;padding-right:60px;overflow:auto}
dialog.modal:not(.ow-modal):not(.confirm) .modal-foot{grid-column:2;grid-row:3;background:#fff;padding:14px 28px;border-top:1px solid var(--line-2)}
/* Schritte (z. B. „Neuer Kunde“) senkrecht in der Leiste */
dialog.modal:not(.ow-modal) .mstep-nav{grid-column:1;grid-row:2;align-self:start;flex-direction:column;gap:2px;padding:4px 12px 16px;border:0;overflow:visible}
dialog.modal:not(.ow-modal) .mstep-nav button{justify-content:flex-start;gap:12px;padding:10px;border:0;border-radius:10px;color:rgba(255,255,255,.75);font-size:14px;font-weight:600;white-space:normal;text-align:left}
dialog.modal:not(.ow-modal) .mstep-nav button:hover{background:rgba(255,255,255,.06)}
dialog.modal:not(.ow-modal) .mstep-nav button.on{background:rgba(255,255,255,.1);color:#fff}
dialog.modal:not(.ow-modal) .mstep-nav button .sn{flex:0 0 26px;width:26px;height:26px;background:transparent;border:1.5px solid rgba(255,255,255,.3);color:rgba(255,255,255,.8);font-size:12px}
dialog.modal:not(.ow-modal) .mstep-nav button.on .sn{background:#fff;border-color:#fff;color:var(--brand-900)}
dialog.modal:not(.ow-modal) .mstep-nav button.done .sn{background:#2E8A8C;border-color:#2E8A8C;color:#fff}
/* Rückfragen: kompakt mit dunklem Kopf */
dialog.modal.confirm{border-radius:16px;overflow:hidden}
.confirm-box{padding:0;gap:0}
.confirm-box h3{background:var(--brand-900);color:#fff;font-size:17px;padding:18px 22px 16px;margin:0}
.confirm-box h3::after{content:"";display:block;width:36px;height:3px;border-radius:2px;margin-top:10px;background:linear-gradient(90deg,#7FC9C6,rgba(127,201,198,0))}
.confirm-box>p{padding:16px 22px 0;margin:0;white-space:pre-line}
.confirm-actions{padding:16px 22px 18px;margin:0}
/* ältere Dialoge (Plantafel) im selben Stil */
.dialog{border-radius:16px;overflow:hidden}
.dialog-head{background:var(--brand-900);color:#fff;padding:18px 22px 16px}
.dialog-head h2{color:#fff}.dialog-head .eyebrow{color:#7FC9C6}
.dialog-head .icon-btn{color:#fff;background:rgba(255,255,255,.08)}
.dialog-body{padding-top:18px}
@media (max-width:820px){
  dialog.modal:not(.ow-modal):not(.confirm){width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;border-radius:0;margin:0}
  dialog.modal:not(.ow-modal):not(.confirm) .modal-form{grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto minmax(0,1fr) auto;background:#fff;height:100%;min-height:0}
  dialog.modal:not(.ow-modal):not(.confirm) .modal-head{grid-column:1;grid-row:1;background:var(--brand-900);padding:16px 60px 14px 16px}
  dialog.modal:not(.ow-modal):not(.confirm) .modal-head::after{display:none}
  dialog.modal:not(.ow-modal) .mstep-nav{grid-column:1;grid-row:2;flex-direction:row;overflow-x:auto;background:var(--brand-900);padding:0 10px 10px}
  dialog.modal:not(.ow-modal) .mstep-nav button{flex:0 0 auto;padding:6px 8px;white-space:nowrap}
  dialog.modal:not(.ow-modal) .mstep-nav button:not(.on) > :not(.sn){display:none}
  dialog.modal:not(.ow-modal):not(.confirm) .modal-body{grid-column:1;grid-row:3;padding:16px}
  dialog.modal:not(.ow-modal):not(.confirm) .modal-foot{grid-column:1;grid-row:4;padding:10px 16px}
  dialog.modal:not(.ow-modal):not(.confirm) .modal-x{top:12px;right:12px}
}
dialog.modal:not(.ow-modal):not(.confirm){background:var(--brand-900)}@media (max-width:820px){dialog.modal:not(.ow-modal):not(.confirm){background:#fff}}

/* Anbieter-Konsole: neue Registrierungen */
.kpi-alert{border-color:#EDC7AE;background:#FDF6F0}.kpi-alert .n{color:var(--warn)}
.count-badge{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 7px;border-radius:11px;background:#C2531A;color:#fff;font-size:12px;margin-left:6px;vertical-align:2px}
.signups{border-color:#EDC7AE;box-shadow:0 0 0 3px rgba(194,83,26,.08)}
.signup-list{display:flex;flex-direction:column}
.signup-item{display:grid;grid-template-columns:minmax(0,1fr) 240px;gap:20px;padding:16px 18px;border-top:1px solid var(--line-2)}
.signup-item:first-child{border-top:0}
.si-title{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:10px}
.si-title b{font-size:16px}
.si-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.si-grid>div{display:flex;flex-direction:column;gap:1px;font-size:13.5px;min-width:0;overflow-wrap:anywhere}
.si-grid .k{font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--faint);margin-bottom:2px}
.si-msg{display:flex;gap:6px;align-items:flex-start;margin:10px 0 0;padding:8px 10px;border-radius:8px;background:var(--soft);font-size:13px;color:var(--ink-2)}
.si-actions{display:flex;flex-direction:column;gap:8px;justify-content:center}
.si-actions form{margin:0}
.signup-alert{align-items:center;flex-wrap:wrap}
.signup-alert form{margin:0}
@media (max-width:900px){.signup-item{grid-template-columns:minmax(0,1fr)}.si-grid{grid-template-columns:minmax(0,1fr)}}

/* ======================================================================
   Anbieter-Konsole: eigenes, ruhiges Erscheinungsbild
   ====================================================================== */
body.platform{--pl-accent:#E0702A;--pl-side:#121722;background:#F3F4F6}
body.platform .sidebar{background:linear-gradient(180deg,#151B27 0%,#10141D 100%);border-right:1px solid rgba(255,255,255,.04)}
body.platform .brand-mark{background:var(--pl-accent)!important;border-radius:10px}
body.platform .nav-link{position:relative;color:rgba(255,255,255,.66);height:40px;border-radius:10px}
body.platform .nav-link:hover{background:rgba(255,255,255,.06);color:#fff}
body.platform .nav-link.active{background:rgba(255,255,255,.09);color:#fff}
body.platform .nav-link.active::before{content:"";position:absolute;left:-12px;top:9px;bottom:9px;width:3px;border-radius:0 3px 3px 0;background:var(--pl-accent)}
body.platform .nav-badge{background:var(--pl-accent)}
body.platform .side-user{background:rgba(255,255,255,.05);border-radius:12px}
body.platform .topbar{background:transparent;border-bottom:0;height:64px}
body.platform .content{padding-top:4px}
body.platform .page-head{margin-bottom:18px}
body.platform .page-head h1{font-size:26px;letter-spacing:-.01em}
body.platform .page-head .sub{font-size:14px}
body.platform .card{border-radius:14px;border-color:#E6E8EC;box-shadow:0 1px 2px rgba(17,24,39,.04)}
body.platform .card-head{padding-top:16px;padding-bottom:14px}
body.platform .card-head h2{font-size:15.5px;display:flex;align-items:center;gap:8px}
body.platform .card-head h2 .ic{color:var(--faint)}
body.platform .kpi{position:relative;padding:18px 18px 16px;gap:6px;overflow:hidden}
body.platform .kpi::before{content:"";position:absolute;left:0;top:0;right:0;height:3px;background:linear-gradient(90deg,var(--brand),var(--brand-500))}
body.platform .kpi.kpi-alert::before{background:linear-gradient(90deg,var(--pl-accent),#F2A65A)}
body.platform .kpi .n{font-family:var(--font);font-weight:700;font-size:30px;letter-spacing:-.02em}
body.platform .kpi .l{font-size:13px}
body.platform .table th{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--faint);font-weight:600;background:#FAFAFB}
body.platform .table td{vertical-align:middle}
body.platform .table tbody tr:hover td{background:#FAFBFC}
body.platform .tenant-filter{border-bottom:1px solid var(--line-2)}
body.platform .muted-row td{opacity:.6}
/* Wartung & Mitteilungen */
.pl-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start;margin-bottom:16px}
.pl-wide{grid-column:1 / -1}
.pl-card.is-live{border-color:#E7A9A0;box-shadow:0 0 0 3px rgba(192,57,43,.08)}
.plan-box{display:flex;flex-direction:column;gap:10px;align-items:flex-start}
.plan-when{display:flex;flex-direction:column;gap:2px;padding:12px 14px;border-radius:10px;background:var(--brand-50);width:100%}
.plan-when b{font-size:16px}.plan-when span{font-size:13px;color:var(--muted)}
.mt-live{display:flex;align-items:center;gap:14px;padding:14px 18px;margin-bottom:16px;border-radius:14px;background:#7A1F16;color:#fff}
.mt-live .grow{display:flex;flex-direction:column}.mt-live span{font-size:13px;opacity:.85}
.mt-live form{margin:0}
.mt-dot{width:12px;height:12px;border-radius:50%;background:#FF8A7A;box-shadow:0 0 0 0 rgba(255,138,122,.7);animation:mtPulse 1.6s infinite}
@keyframes mtPulse{70%{box-shadow:0 0 0 10px rgba(255,138,122,0)}100%{box-shadow:0 0 0 0 rgba(255,138,122,0)}}
.btn-white{background:#fff;color:var(--ink);border-color:#fff}
.switch-row{display:flex;align-items:center;gap:10px;cursor:pointer}
.switch-row input{position:absolute;opacity:0;pointer-events:none}
.sw-ui{width:40px;height:22px;border-radius:11px;background:#CBD0CA;position:relative;transition:background .2s;flex-shrink:0}
.sw-ui::after{content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:#fff;transition:transform .2s;box-shadow:0 1px 2px rgba(0,0,0,.2)}
.switch-row input:checked+.sw-ui{background:#C0392B}
.switch-row input:checked+.sw-ui::after{transform:translateX(18px)}
.switch-row input:focus-visible+.sw-ui{outline:2px solid var(--brand);outline-offset:2px}
@media (max-width:900px){.pl-grid{grid-template-columns:minmax(0,1fr)}}
.todo-tags{display:flex;flex-wrap:wrap;gap:3px;margin-top:4px}
.all-done{display:flex;gap:12px;align-items:center;color:var(--ok)}.all-done div{display:flex;flex-direction:column;color:var(--ink)}
.ow-sep{border-top:1px solid var(--line-2);padding-top:14px;margin-top:4px}

/* Firmen-Detail (Anbieter-Konsole) */
.ob-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 16px}
.ob-row{display:flex;align-items:center;gap:8px;font-size:13.5px}
.ob-row.ok{color:var(--muted)}
.note-row{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border-radius:10px;background:var(--soft);font-size:14px}
.plan-pick{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}
.plan-choice{padding:14px!important}
.plan-choice .pp-price{font-size:20px;font-weight:700;color:var(--ink)}
.help-actions{gap:10px!important}
.help-actions form{margin:0}.help-actions .btn{width:100%;justify-content:flex-start}
.fact-b .meter{width:100%;margin-top:6px}
@media (max-width:560px){.ob-grid{grid-template-columns:1fr}}
.mt-plan-card{display:flex;align-items:center;gap:16px;padding:18px 20px}
.mt-plan-card form{margin:0}
.mt-plan-ic{width:48px;height:48px;border-radius:12px;background:var(--brand-50);color:var(--brand);display:grid;place-items:center;flex-shrink:0}
.mt-plan-when{font-size:18px}

/* ---- Änderungsprotokoll: lesbare Einträge, Einzelheiten im Pop-up ---- */
.audit-list{display:flex;flex-direction:column}
.audit-row{display:grid;grid-template-columns:32px minmax(0,1fr) minmax(120px,auto) 20px;align-items:center;gap:12px;width:100%;padding:12px 18px;border:0;border-bottom:1px solid var(--line-2);background:#fff;text-align:left;font:inherit;color:inherit;cursor:pointer}
.audit-row:hover{background:var(--soft)}
.audit-row:focus-visible{outline:2px solid var(--brand-600,#1f6f73);outline-offset:-2px}
.audit-ic{width:32px;height:32px;border-radius:9px;background:var(--soft);color:var(--muted);display:inline-flex;align-items:center;justify-content:center}
.audit-main{min-width:0;display:flex;flex-direction:column}
.audit-main b{font-size:14px}
.audit-main small{color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.audit-who{display:flex;flex-direction:column;text-align:right}
.audit-go{color:var(--muted)}
.audit-meta{display:grid;grid-template-columns:90px 1fr;gap:6px 12px;margin:0}
.audit-meta dt{color:var(--muted);font-size:13px}
.audit-meta dd{margin:0;font-size:14px}
.audit-diff td{vertical-align:top;overflow-wrap:anywhere}
@media (max-width:700px){
  .audit-row{grid-template-columns:28px minmax(0,1fr) 16px;padding:12px}
  .audit-who{grid-column:2;grid-row:2;text-align:left;flex-direction:row;gap:8px}
  .audit-go{grid-column:3;grid-row:1}
}

/* ---- Push-Mitteilungen ---- */
.push-banner{border:1px solid #CFE3E2;background:#F2F8F8}
.push-ic{width:38px;height:38px;border-radius:10px;background:var(--brand-900,#0F2429);color:#fff;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}
[data-push-card][data-state="denied"] [data-push-state]{color:#9A3412}

/* ---- Abwesenheit eintragen (Pop-up) ---- */
.abs-choice.sick .ch-ic{background:#FBE9E7;color:#B83A55}
.abs-more-h{margin:16px 0 8px;text-transform:uppercase;letter-spacing:.06em;font-size:11.5px;font-weight:600}
.abs-more{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.choice.abs-mini{padding:10px 12px;gap:2px}
.choice.abs-mini b{font-size:13.5px}
.choice.abs-mini small{font-size:11.5px}
.abs-picked{display:flex;align-items:center;gap:8px;margin-bottom:4px}
.abs-picked:empty{display:none}
.abs-tag{display:inline-flex;align-items:center;padding:4px 10px;border-radius:999px;background:var(--brand-50);color:var(--brand);font-weight:600;font-size:13px}
.abs-tag.abs-sick{background:#FBE9E7;color:#B83A55}
@media (max-width:860px){.abs-more{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* ---- Plantafel: Verschieben / Übergeben ---- */
.mv-route{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin:0 0 6px;font-weight:600;font-size:15px}
.mv-route span{padding:4px 10px;border-radius:8px;background:var(--soft)}
.mv-route span[aria-hidden]{background:none;padding:0;color:var(--muted)}
.mv-route small{font-weight:400;color:var(--muted);font-size:12.5px}
.mv-set{border:0;margin:12px 0 0;padding:0;display:flex;flex-direction:column;gap:6px}
.mv-set legend{margin-bottom:6px;padding:0}
.check.mv-opt{align-items:flex-start;padding:10px 12px;border:1.5px solid var(--line);border-radius:10px;cursor:pointer}
.check.mv-opt:has(input:checked){border-color:var(--brand);background:var(--brand-50)}
.check.mv-opt input{margin-top:3px}
.check.mv-opt span{display:flex;flex-direction:column;gap:1px}
.check.mv-opt small{color:var(--muted);font-size:12.5px}

/* ---- Anleitung ---- */
.help-wrap{display:grid;grid-template-columns:260px minmax(0,1fr);gap:16px;align-items:start}
.help-toc ol{list-style:none;margin:0;padding:6px 10px 12px}
.help-toc li a{display:flex;gap:10px;padding:6px 8px;font-size:13.5px;border-radius:8px;color:inherit;text-decoration:none}
.help-toc li a:hover{background:var(--soft)}
.help-toc li .mono{color:var(--muted);font-size:12px;min-width:20px}
.help-view{overflow:hidden}
.help-view iframe{display:block;width:100%;height:calc(100vh - 200px);min-height:560px;border:0;background:#525659}
.help-mobile{display:none;padding:12px 16px;margin:0}
@media (max-width:900px){.help-wrap{grid-template-columns:minmax(0,1fr)}.help-toc{order:2}.help-view iframe{height:70vh;min-height:420px}.help-mobile{display:block}}

/* ---- Projektfarbe: Auswahl mit Vorschau ---- */
.pc-pick{display:grid;grid-template-columns:minmax(0,1fr) 220px;gap:16px;align-items:stretch}
.pc-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.pc-opt{position:relative;display:flex;align-items:center;gap:8px;padding:8px 10px;border:1.5px solid var(--line);border-radius:10px;cursor:pointer;background:#fff;transition:border-color .12s,box-shadow .12s}
.pc-opt:hover{border-color:var(--bd)}
.pc-opt input{position:absolute;opacity:0;pointer-events:none}
.pc-sw{position:relative;flex:0 0 28px;height:28px;border-radius:8px;background:var(--bg);border:2px solid var(--bd);display:flex;align-items:center;justify-content:center;color:var(--tx)}
.pc-dot{width:8px;height:8px;border-radius:50%;background:var(--c)}
.pc-sw svg{position:absolute;opacity:0;transition:opacity .12s}
.pc-name{font-size:13px;font-weight:500}
.pc-opt:has(input:checked){border-color:var(--c);box-shadow:0 0 0 1px var(--c);background:var(--bg)}
.pc-opt:has(input:checked) .pc-dot{opacity:0}
.pc-opt:has(input:checked) .pc-sw svg{opacity:1}
.pc-opt:has(input:focus-visible){outline:2px solid var(--c);outline-offset:2px}
.pc-preview{border:1px dashed var(--line);border-radius:12px;padding:10px;background:var(--soft);display:flex;flex-direction:column;gap:6px}
.pc-prev-l{font-size:11px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}
.pc-day{background:#fff;border:1px solid var(--line-2);border-radius:8px;overflow:hidden;flex:1}
.pc-day-h{font-size:12px;padding:6px 8px;border-bottom:1px solid var(--line-2);color:var(--muted)}
.pc-day-h b{color:var(--ink)}
.pc-block{margin:8px;padding:6px 8px;border-radius:7px;background:var(--bg);border:1px solid var(--bd);color:var(--tx);display:flex;flex-direction:column;gap:1px;transition:background .15s,border-color .15s}
.pc-b-t{font-size:12.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pc-b-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:currentColor;margin-right:5px;vertical-align:middle}
.pc-b-s{font-size:11px;opacity:.8}
@media (max-width:760px){.pc-pick{grid-template-columns:minmax(0,1fr)}.pc-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* ---- Plantafel: Legende ---- */
.cal-legend{margin-top:14px;background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden}
.cal-legend>summary{display:flex;align-items:center;gap:8px;padding:12px 16px;cursor:pointer;font-weight:600;font-size:14px;list-style:none}
.cal-legend>summary::-webkit-details-marker{display:none}
.cal-legend>summary .muted{font-weight:400;margin-left:4px}
.cal-legend>summary::after{content:"";margin-left:auto;width:8px;height:8px;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);transform:rotate(45deg);transition:transform .15s}
.cal-legend[open]>summary::after{transform:rotate(-135deg)}
.lg-grid{display:grid;grid-template-columns:1.25fr 1fr 1fr;gap:20px;padding:4px 16px 16px;border-top:1px solid var(--line-2)}
.lg-grid h4{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:12px 0 8px;font-weight:600}
.lg-row{display:flex;align-items:center;gap:10px;font-size:12.5px;margin:6px 0;color:var(--ink-2)}
.lg-blk{flex:0 0 132px;display:inline-flex;align-items:center;gap:5px;height:26px;padding:0 8px;border-radius:7px;background:var(--bg);border:1px solid var(--bd);color:var(--tx);font-size:11.5px;white-space:nowrap;overflow:hidden}
.lg-blk .dot,.lg-status .dot{display:inline-block;width:7px;height:7px;border-radius:50%}
.lg-blk .pbadge{margin:0;height:16px;font-size:10px}
.lg-blk.demand{background:repeating-linear-gradient(135deg,#F7F5FD 0 6px,#EFEBFA 6px 12px);border:1.5px dashed var(--brand);color:var(--ink)}
.lg-blk.demand .tag{height:16px;font-size:10px;padding:0 5px}
.lg-blk.conflict{box-shadow:inset 0 0 0 2px #C2531A;border-color:#C2531A}
.lg-abs{flex:0 0 132px;height:26px;border-radius:7px;border:1px solid}
.lg-sym{flex:0 0 132px;display:inline-flex;align-items:center;justify-content:center;height:26px;border-radius:7px;background:var(--soft);font-size:13px}
.lg-plus{border:1.5px dashed var(--line);background:#fff;color:var(--muted)}
.lg-status{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 12px}
.lg-status span{display:flex;align-items:center;gap:7px;font-size:12.5px;color:var(--ink-2);padding:4px 8px;border-radius:7px;background:var(--soft)}
@media (max-width:1100px){.lg-grid{grid-template-columns:1fr 1fr}}
@media (max-width:700px){.lg-grid{grid-template-columns:minmax(0,1fr)}.lg-status{grid-template-columns:minmax(0,1fr)}}

/* ---- Gemeinsame Listen-Bausteine: Kennzahl-Kacheln, Filter-Chips, Suche ---- */
.kpi-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}
.kpi-tile{display:grid;grid-template-columns:40px minmax(0,1fr);grid-template-rows:auto auto;column-gap:12px;align-items:center;padding:14px 16px;background:#fff;border:1px solid var(--line);border-radius:14px;color:inherit;text-decoration:none;transition:border-color .12s,box-shadow .12s}
.kpi-tile:hover{border-color:var(--brand-500)}
.kpi-tile.on{border-color:var(--brand);box-shadow:0 0 0 1px var(--brand)}
.kt-ic{grid-row:span 2;width:40px;height:40px;border-radius:11px;display:flex;align-items:center;justify-content:center;background:var(--soft);color:var(--muted)}
.kt-ic.ok{background:var(--ok-bg);color:var(--ok)}.kt-ic.err{background:var(--err-bg);color:var(--err)}.kt-ic.warn{background:var(--warn-bg);color:var(--warn)}.kt-ic.info{background:var(--info-bg);color:var(--info)}.kt-ic.brand{background:var(--brand-50);color:var(--brand)}
.kt-n{font-family:var(--mono);font-size:21px;font-weight:500;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kt-l{font-size:12.5px;color:var(--muted)}
.chips{display:flex;gap:6px;flex-wrap:wrap}
.chip{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 12px;border-radius:999px;border:1px solid var(--line);background:#fff;color:var(--ink-2);font-size:13px;font-weight:500;text-decoration:none;white-space:nowrap}
.chip .chip-n{font-weight:500;font-family:var(--mono);font-size:11.5px;color:var(--muted);background:var(--soft);border-radius:999px;padding:0 6px;min-width:20px;text-align:center}
.chip:hover{border-color:var(--brand-500)}
.chip.on{background:var(--brand);border-color:var(--brand);color:#fff}
.chip.on .chip-n{background:rgba(255,255,255,.2);color:#fff}
.chip.warn:not(.on){border-color:var(--warn-line);color:var(--warn)}
.search-in{position:relative;display:flex;align-items:center;margin-left:auto}
.search-in>svg{position:absolute;left:11px;color:var(--muted);pointer-events:none}
.search-in .input{padding-left:34px;width:260px}
.card-head:has(.chips){flex-wrap:wrap;gap:10px}
.empty-state{display:flex;flex-direction:column;align-items:center;gap:6px;padding:40px 20px;text-align:center}
.es-ic{width:56px;height:56px;border-radius:16px;background:var(--ok-bg);color:var(--ok);display:flex;align-items:center;justify-content:center;margin-bottom:6px}
.btn-dark{background:var(--brand-900);color:#fff;border-color:var(--brand-900)}
.btn-dark:hover{filter:brightness(1.15)}
.btn-ok{background:var(--ok);color:#fff;border-color:var(--ok)}
.input.input-sm{height:34px;padding:0 8px;font-size:13.5px}
textarea.input.input-sm{height:auto;min-height:34px;padding:7px 8px;resize:vertical;line-height:1.35}
.input.num,td.num,th.num{text-align:right}
@media (max-width:900px){.kpi-row{grid-template-columns:repeat(2,minmax(0,1fr))}.search-in{margin-left:0;width:100%}.search-in .input{width:100%}}

/* ---- Rechnungen ---- */
.bill-cust{margin-bottom:14px;overflow:hidden}
.bill-head{display:flex;align-items:center;gap:12px;padding:14px 18px;border-bottom:1px solid var(--line-2);flex-wrap:wrap}
.bill-av{width:38px;height:38px;border-radius:10px;background:var(--brand-50);color:var(--brand);display:flex;align-items:center;justify-content:center}
.bill-name{font-weight:600;font-size:15.5px;color:inherit}
.bill-head small{display:block;color:var(--muted)}
.bill-grp{padding:6px 0}
.bill-grp+.bill-grp{border-top:1px dashed var(--line-2)}
.bill-grp-h{display:flex;align-items:center;gap:6px;padding:8px 18px 4px;font-size:13px}
.bill-row{display:flex;align-items:center;gap:12px;padding:8px 18px}
.bill-row:hover{background:var(--soft)}
.bill-row.locked{opacity:.65}
.bill-chk input{width:18px;height:18px;accent-color:var(--brand)}
.bill-t{font-weight:500;color:inherit}
.bill-row small{display:block;color:var(--muted);font-size:12.5px}
.bill-meta{display:inline-flex;align-items:center;gap:4px;font-size:12.5px;color:var(--muted);white-space:nowrap;font-family:var(--mono)}
.inv-st{display:inline-flex;align-items:center;height:22px;padding:0 9px;border-radius:999px;font-size:12px;font-weight:600;background:var(--soft);color:var(--ink-2);vertical-align:middle}
.inv-st.st-draft{background:#EEF0F3;color:#4B5563}.inv-st.st-open{background:var(--info-bg);color:var(--info)}.inv-st.st-overdue{background:var(--err-bg);color:var(--err)}
.inv-st.st-paid{background:var(--ok-bg);color:var(--ok)}.inv-st.st-cancelled{background:#F3F1EE;color:#8A8178;text-decoration:line-through}
.inv-table td small{display:block}
.inv-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:16px;align-items:start}
.inv-side{position:sticky;top:16px}
.inv-sum .is-row{display:flex;justify-content:space-between;gap:10px;padding:4px 0;font-size:14px}
.inv-sum .is-total{border-top:2px solid var(--ink);margin-top:6px;padding-top:10px;font-size:17px}
.inv-items td{vertical-align:top}
.inv-items .ir-heading td{background:var(--brand-50)}
.inv-items .ir-heading textarea{font-weight:600}
.inv-items .ir-text td{background:#FAFAF8}
.inv-items.editable .ir-heading [data-ir-qty],.inv-items.editable .ir-heading [data-ir-price],.inv-items.editable .ir-heading [data-ir-tax],.inv-items.editable .ir-heading input[name$="[unit]"],
.inv-items.editable .ir-text [data-ir-qty],.inv-items.editable .ir-text [data-ir-price],.inv-items.editable .ir-text [data-ir-tax],.inv-items.editable .ir-text input[name$="[unit]"]{visibility:hidden}
.inv-add{display:flex;gap:6px;flex-wrap:wrap;align-items:center;border-top:1px solid var(--line-2)}
.inv-facts{display:grid;grid-template-columns:auto 1fr;gap:4px 14px;margin:0;font-size:14px}
.inv-facts dt{color:var(--muted)}.inv-facts dd{margin:0}
.inv-settings{display:flex;flex-direction:column;gap:16px;max-width:1040px}
.mt-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px;padding:16px 18px 18px}
.mt-edit{display:flex;flex-direction:column;gap:12px}
.mt-ph{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.ph-chip{border:1px solid var(--line);background:var(--soft);border-radius:7px;padding:3px 7px;font:500 12px var(--mono);color:var(--brand);cursor:pointer}
.ph-chip:hover{border-color:var(--brand-500);background:#fff}
.mt-prev{display:flex;flex-direction:column;gap:8px}
.mt-prev-h{font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.mt-mail{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#fff;box-shadow:0 6px 20px rgba(15,36,41,.06)}
.mt-from{display:flex;justify-content:space-between;gap:8px;padding:10px 14px;background:var(--soft);font-size:12.5px;color:var(--muted)}
.mt-from b{color:var(--ink)}
.mt-subj{padding:12px 14px 6px;font-weight:600;font-size:15px}
.mt-body{padding:0 14px 14px;white-space:pre-line;font-size:13.5px;line-height:1.55;color:var(--ink-2)}
.mt-att{display:flex;align-items:center;gap:6px;margin:0 14px 14px;padding:8px 10px;border:1px dashed var(--line);border-radius:8px;font-size:12.5px;color:var(--muted)}
@media (max-width:1000px){.inv-layout,.mt-grid{grid-template-columns:minmax(0,1fr)}.inv-side{position:static}}
@media (max-width:700px){.bill-row{flex-wrap:wrap}.bill-meta{display:none}}
.inv-items{table-layout:fixed;width:100%;min-width:780px}
.inv-items td.num,.inv-items td[data-ir-total]{white-space:nowrap}
.inv-items.editable td{padding:6px 6px}
.inv-items.editable td:first-child{padding-left:14px}
.inv-items textarea{width:100%}

/* ---- Auftragsliste ---- */
.ol-card{overflow:hidden}
.ol-top{display:flex;flex-direction:column;gap:12px;padding:14px 18px;border-bottom:1px solid var(--line-2)}
.ol-filter{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.ol-filter .search-in{margin-left:0;flex:1 1 260px}
.ol-filter .search-in .input{width:100%}
.ol-filter select.input{width:auto;max-width:260px}
.chip-link{border-style:dashed}
.ol-list{display:flex;flex-direction:column}
.ol-row{display:grid;grid-template-columns:56px minmax(0,1fr) 190px 190px 18px;gap:14px;align-items:center;padding:12px 18px;border-bottom:1px solid var(--line-2);color:inherit;text-decoration:none}
.ol-row:hover{background:var(--soft)}
.ol-row:last-child{border-bottom:0}
.ol-date{display:flex;flex-direction:column;align-items:center;justify-content:center;height:56px;border-radius:12px;background:var(--soft);border:1px solid var(--line-2);line-height:1.05}
.ol-date b{font-family:var(--mono);font-size:20px;font-weight:500;color:var(--ink)}
.ol-date small{font-size:10.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.ol-date.today{background:var(--brand);border-color:var(--brand)}
.ol-date.today b,.ol-date.today small{color:#fff}
.ol-date.none{background:#fff;border-style:dashed;color:var(--warn)}
.ol-main{min-width:0;display:flex;flex-direction:column;gap:3px}
.ol-t{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:14.5px}
.ol-t .pbadge{margin:0}
.ol-s{font-size:12.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ol-s svg{vertical-align:-2px;opacity:.7}
.ol-team{display:flex;align-items:center;gap:8px}
.av-stack{display:inline-flex;align-items:center}
.av-stack .av{border:2px solid #fff;margin-left:-7px}
.av-stack .av:first-child{margin-left:0}
.av.more{background:var(--soft);color:var(--muted);font-size:10px}
.ol-staff{width:46px;height:5px;border-radius:3px;background:var(--line-2);overflow:hidden}
.ol-staff span{display:block;height:100%;background:var(--ok);border-radius:3px}
.ol-staff.short span{background:var(--warn)}
.warn-t{color:var(--warn);font-weight:600}
.ol-st{display:flex;justify-content:flex-start}
.ol-go{color:var(--muted)}
@media (max-width:1100px){.ol-row{grid-template-columns:56px minmax(0,1fr) 170px 18px}.ol-team{display:none}}
@media (max-width:640px){.ol-row{grid-template-columns:48px minmax(0,1fr);gap:10px;padding:12px}.ol-st{grid-column:2}.ol-go{display:none}.ol-date{height:48px}.ol-s{white-space:normal}}
.ol-row:hover,.ol-row:hover *{text-decoration:none}
.av-stack .av{width:28px;height:28px;font-size:10.5px;margin-left:-6px;box-sizing:border-box}
.av-stack .av:first-child{margin-left:0}

/* ---- Kundenliste ---- */
.kpi-row.kpi-5{grid-template-columns:repeat(5,minmax(0,1fr))}
.cl-row{display:grid;grid-template-columns:44px minmax(0,1fr) 190px 110px 130px 90px 18px;gap:14px;align-items:center;padding:12px 18px;border-bottom:1px solid var(--line-2);color:inherit;text-decoration:none}
.cl-row:hover{background:var(--soft)}
.cl-row:hover,.cl-row:hover *{text-decoration:none}
.cl-av{position:relative;width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px}
.cl-type{position:absolute;right:-4px;bottom:-4px;width:20px;height:20px;border-radius:50%;background:#fff;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;color:var(--muted)}
.cl-contact{display:flex;flex-direction:column;min-width:0;font-size:13px}
.cl-contact b{font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cl-contact small{color:var(--muted)}
.cl-nums{display:flex;gap:10px;font-family:var(--mono);font-size:12.5px;color:var(--muted)}
.cl-nums span{display:inline-flex;align-items:center;gap:4px}
.cl-nums .has{color:var(--brand);font-weight:600}
.cl-next{display:flex;flex-direction:column;font-size:13px}
.cl-next small{font-size:11px;color:var(--muted)}
@media (max-width:1200px){.kpi-row.kpi-5{grid-template-columns:repeat(3,minmax(0,1fr))}.cl-row{grid-template-columns:44px minmax(0,1fr) 170px 120px 90px 18px}.cl-nums{display:none}}
@media (max-width:760px){.kpi-row.kpi-5{grid-template-columns:repeat(2,minmax(0,1fr))}.cl-row{grid-template-columns:40px minmax(0,1fr) auto;gap:10px;padding:12px}.cl-contact,.cl-next,.cl-row .ol-go{display:none}}
.cl-row:hover,.ol-row:hover{color:inherit}

/* ---- Projektliste ---- */
.pj-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:14px}
.pj-card{position:relative;display:flex;flex-direction:column;gap:14px;padding:18px 18px 16px;background:#fff;border:1px solid var(--line);border-radius:16px;color:inherit;text-decoration:none;overflow:hidden;transition:border-color .12s,box-shadow .12s,transform .12s}
.pj-card::before{content:"";position:absolute;left:0;top:0;right:0;height:4px;background:var(--pc)}
.pj-card:hover{border-color:var(--pc);box-shadow:0 8px 24px rgba(15,36,41,.08);transform:translateY(-1px);color:inherit;text-decoration:none}
.pj-card:hover *{text-decoration:none}
.pj-top{display:flex;align-items:flex-start;gap:10px}
.pj-ic{flex:0 0 38px;height:38px;border-radius:10px;background:var(--pbg);color:var(--ptx);display:flex;align-items:center;justify-content:center}
.pj-h{flex:1;min-width:0;display:flex;flex-direction:column}
.pj-h b{font-size:15.5px;line-height:1.25}
.pj-h small{color:var(--muted);font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pj-prog{display:flex;flex-direction:column;gap:6px}
.pj-prog-l{display:flex;justify-content:space-between;font-size:12.5px;color:var(--muted)}
.pj-prog-l b{color:var(--ink);font-family:var(--mono)}
.pj-bar{height:8px;border-radius:5px;background:var(--line-2);overflow:hidden}
.pj-bar span{display:block;height:100%;border-radius:5px;background:var(--pc)}
.pj-prog small{font-size:12px;color:var(--muted)}
.pj-time{display:flex;flex-direction:column;gap:5px;font-size:12.5px;color:var(--ink-2)}
.pj-time svg{vertical-align:-2px;color:var(--muted)}
.pj-tl{height:3px;border-radius:2px;background:var(--line-2);overflow:hidden}
.pj-tl span{display:block;height:100%;background:var(--muted);opacity:.5}
.pj-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding-top:12px;border-top:1px solid var(--line-2)}
.pj-stats span{display:flex;flex-direction:column}
.pj-stats b{font-family:var(--mono);font-size:15px;font-weight:500}
.pj-stats small{font-size:11.5px;color:var(--muted)}
.pj-mgr{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted)}
.ol-top:not(:has(.ol-filter .input:not([type=hidden]) ~ *)) .ol-filter .search-in{max-width:420px}
@media (max-width:700px){
  .chips{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;padding-bottom:2px}
  .chips::-webkit-scrollbar{display:none}
  .chip{flex:0 0 auto}
  .bill-row .pill,.bill-row .btn-ghost{display:none}
  .bill-row>.grow{flex:1 1 calc(100% - 40px)}
  .bill-head .btn{width:100%;justify-content:center}
  .pj-grid{grid-template-columns:minmax(0,1fr)}
}

/* ---- Handy: Stempeluhr ---- */
.m-big.start{background:var(--ok);flex-direction:column;gap:2px;min-height:72px;font-size:19px}
.m-big.start small{font-size:12.5px;font-weight:500;opacity:.85}
.m-big.start:hover{background:var(--ok);filter:brightness(1.05)}
.m-big.stop{background:#B83A55}
.m-big.stop:hover{background:#A2324B}
.clock-card{align-items:center;text-align:center;background:linear-gradient(180deg,#F0F8F4,#fff);border-color:#BFE0CF}
.clock-card.paused{background:linear-gradient(180deg,#FFF6E8,#fff);border-color:#F0D3A4}
.clock-state{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:var(--ok)}
.clock-card.paused .clock-state{color:#9A6400}
.clock-dot{width:10px;height:10px;border-radius:50%;background:var(--ok);box-shadow:0 0 0 0 rgba(46,139,87,.5);animation:clockpulse 1.8s infinite}
.paused .clock-dot{background:#C98A1A;animation:none}
@keyframes clockpulse{0%{box-shadow:0 0 0 0 rgba(46,139,87,.45)}70%{box-shadow:0 0 0 10px rgba(46,139,87,0)}100%{box-shadow:0 0 0 0 rgba(46,139,87,0)}}
.clock-big{font-size:52px;font-weight:500;line-height:1.05;letter-spacing:-.02em}
.clock-actions{display:grid;grid-template-columns:1fr 1.4fr;gap:8px;width:100%}
.clock-actions form{display:contents}
.m-clockbar{display:flex;align-items:center;gap:10px;padding:10px 14px;background:#163D2B;color:#fff;font-size:13.5px;text-decoration:none;position:sticky;top:calc(64px + env(safe-area-inset-top));z-index:9}
.m-clockbar:hover{color:#fff;text-decoration:none}
.m-clockbar.paused{background:#6B4A12}
.m-clockbar .clock-dot{background:#7DDBA6}
.m-clockbar .grow{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.m-clockbar .cb-end{display:inline-flex;align-items:center;gap:2px;font-weight:600;background:rgba(255,255,255,.14);padding:4px 8px;border-radius:999px;white-space:nowrap}
@media (prefers-reduced-motion:reduce){.clock-dot{animation:none}}

/* ---- Handy: Übersicht ---- */
.m-sum{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:8px;text-decoration:none;color:inherit}
.m-sum:hover{text-decoration:none;color:inherit}
.ms-tile{display:flex;flex-direction:column;gap:2px;padding:12px;background:#fff;border:1px solid var(--line);border-radius:14px;min-width:0}
.ms-tile small{font-size:11.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ms-tile b{font-size:22px;font-weight:500;line-height:1.1}
.ms-tile.pos b{color:var(--ok)}.ms-tile.neg b{color:var(--err)}
.ms-bar{height:5px;border-radius:3px;background:var(--line-2);overflow:hidden;margin:4px 0 2px}
.ms-bar span{display:block;height:100%;background:var(--brand);border-radius:3px}
.m-quick{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.m-quick a{display:flex;flex-direction:column;align-items:center;gap:6px;padding:10px 4px;background:#fff;border:1px solid var(--line);border-radius:14px;font-size:12px;font-weight:600;color:var(--ink);text-decoration:none;text-align:center;line-height:1.15}
.m-quick a:hover{text-decoration:none;color:var(--ink)}
.mq-ic{width:40px;height:40px;border-radius:12px;display:flex;align-items:center;justify-content:center}
.mq-ic.vac{background:#E3ECF8;color:#173D73}.mq-ic.za{background:#E4F1F2;color:#0D4C55}.mq-ic.sick{background:#FAE6EA;color:#7F1D31}.mq-ic.hrs{background:#FAEFD8;color:#5E3D00}
.m-ov form{display:contents}

/* ---- Handy: Stunden (Woche) ---- */
.m-seg{display:flex;width:100%;margin-bottom:12px}.m-seg a{flex:1;justify-content:center;height:34px;font-size:14px}
.ts-wnav{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}
.ts-wnav .c{display:flex;flex-direction:column;align-items:center;line-height:1.2}
.ts-wnav .btn{width:40px;justify-content:center;padding:0}
.ms-tile .pos{color:var(--ok)}.ms-tile .neg{color:var(--err)}
.ts-days{display:flex;flex-direction:column;gap:6px;margin-top:12px}
.ts-day{display:grid;grid-template-columns:44px 1fr auto;gap:10px;align-items:center;padding:10px 12px;margin:0}
.ts-day .dt{display:flex;flex-direction:column;align-items:center;line-height:1.15;font-size:12px;color:var(--muted)}
.ts-day .dt b{font-size:15px;color:var(--ink)}
.ts-day .bd{min-width:0;display:flex;flex-direction:column;gap:3px;align-items:flex-start}
.ts-day .bd .o{font-weight:600;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}
.ts-day .nm{display:flex;flex-direction:column;align-items:flex-end;line-height:1.2;font-variant-numeric:tabular-nums}
.ts-day .nm b{font-size:17px;font-weight:600}
.ts-day .nm .pos{color:var(--ok);font-weight:600}.ts-day .nm .neg{color:var(--err);font-weight:600}
.ts-day.today{border-color:var(--brand);box-shadow:0 0 0 1px var(--brand) inset}
.ts-day.today .dt b{color:var(--brand)}
.ts-day.future{opacity:.72}
.ts-day.hol{background:#FAF8F2}
.tag.abs-vacation{background:#E3ECF8;color:#173D73}.tag.abs-comp_time{background:#E4F1F2;color:#0D4C55}.tag.abs-sick{background:#FAE6EA;color:#7F1D31}
.ts-pdf{display:flex;flex-direction:column;gap:10px;margin-top:14px;padding:14px}
.ts-pdf>div:first-child{display:flex;flex-direction:column;gap:2px}
.ts-pdf>div:first-child b{display:inline-flex;align-items:center;gap:6px}
.ts-pdf select{flex:1;min-width:0}

/* ---- Handy: Abwesenheit beantragen ---- */
.m-absreq{display:flex;flex-direction:column;gap:10px;margin-bottom:16px}
.ap-pick{display:grid;grid-template-columns:repeat(auto-fit,minmax(0,1fr));gap:8px}
.ap{position:relative;display:flex;flex-direction:column;align-items:center;gap:4px;padding:12px 4px 10px;background:#fff;border:1.5px solid var(--line);border-radius:14px;cursor:pointer;text-align:center;line-height:1.15}
.ap input{position:absolute;opacity:0;pointer-events:none}
.ap b{font-size:13.5px}.ap small{font-size:11.5px;color:var(--muted)}.ap small.neg{color:var(--err)}
.ap:has(input:focus-visible){outline:2px solid var(--brand);outline-offset:2px}
.ap.vac:has(input:checked){border-color:#173D73;background:#F3F7FD}
.ap.za:has(input:checked){border-color:#0D4C55;background:#F1F8F8}
.ap.sick:has(input:checked){border-color:#B83A55;background:#FDF4F6}
.ap-panel{display:none}
.m-absreq:has(input[name=abs_pick][value=vacation]:checked) .p-vacation,
.m-absreq:has(input[name=abs_pick][value=comp_time]:checked) .p-comp_time,
.m-absreq:has(input[name=abs_pick][value=sick]:checked) .p-sick{display:flex}
.ap-head{display:flex;gap:10px;align-items:flex-start}
.ap-head .mq-ic{width:34px;height:34px;flex:0 0 34px;border-radius:10px}
.ap-head>div{display:flex;flex-direction:column;gap:2px}
.ap-head small{font-size:12.5px;color:var(--muted)}
.ap-head .pos{color:var(--ok)}.ap-head .neg{color:var(--err)}

/* ---- Team-Mitteilungen & Termine ---- */
.c-ok{color:var(--ok)}.c-warn{color:var(--warn)}.c-err{color:var(--err)}
.notice{padding:10px 12px;border-radius:10px;background:var(--line-2);font-size:14px}
.notice.err{background:#FBEAEA;color:#8C2A2A}
.tp-list{display:flex;flex-direction:column;gap:8px}
.tp-row{display:grid;grid-template-columns:52px minmax(0,1fr) minmax(200px,280px);gap:14px;align-items:center;padding:12px 16px;margin:0;color:inherit;text-decoration:none;border-left:3px solid transparent}
.tp-row:hover{text-decoration:none;color:inherit;border-color:var(--brand-500)}
.tp-row.important{border-left-color:var(--err)}
.tp-row.past,.tp-row.cancelled{opacity:.62}
.tp-row.cancelled .tp-t b{text-decoration:line-through}
.tp-date{display:flex;flex-direction:column;align-items:center;justify-content:center;width:52px;height:56px;border-radius:12px;background:var(--brand-50);color:var(--brand);line-height:1.05}
.tp-date b{font-size:21px;font-weight:600}
.tp-date small{font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;font-weight:600}
.tp-date.info{background:#FAEFD8;color:#5E3D00}
.tp-date.lg{width:64px;height:68px;flex:0 0 64px}.tp-date.lg b{font-size:26px}
.tp-main{display:flex;flex-direction:column;gap:2px;min-width:0}
.tp-t{display:flex;align-items:center;gap:6px;min-width:0}
.tp-t b{font-size:15px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tp-stat{display:flex;flex-direction:column;gap:5px;align-items:stretch}
.tp-bar{display:flex;height:7px;border-radius:4px;background:var(--line-2);overflow:hidden}
.tp-bar i{display:block;height:100%}
.tp-bar .y{background:var(--ok)}.tp-bar .m{background:#E0A43A}.tp-bar .n{background:#D0605E}
.tp-when{display:flex;gap:14px;align-items:center}
.tp-body{font-size:15px;line-height:1.55;white-space:normal}
.tp-detail.important{border-left:3px solid var(--err)}
.tp-rsvp{border-top:1px solid var(--line);padding-top:12px;display:flex;flex-direction:column;gap:8px}
.tp-rbtns{display:grid;grid-template-columns:repeat(auto-fit,minmax(0,1fr));gap:8px}
.tp-r{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;padding:8px 10px;border-radius:10px;border:1.5px solid var(--field);background:#fff;font:600 14.5px var(--font);color:var(--ink);cursor:pointer}
.tp-r.yes:hover,.tp-r.yes.on{border-color:var(--ok);background:#E7F3EA;color:#185F33}
.tp-r.maybe:hover,.tp-r.maybe.on{border-color:#C98A1E;background:#FCF3E1;color:#6B4A12}
.tp-r.no:hover,.tp-r.no.on{border-color:#C4504E;background:#FBEAEA;color:#8C2A2A}
.tp-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(0,1fr));gap:8px}
.tp-kpis>div{display:flex;flex-direction:column;align-items:center;padding:10px 4px;border-radius:10px;background:var(--line-2)}
.tp-kpis b{font-size:22px;font-weight:600}.tp-kpis small{font-size:12px;color:var(--muted)}
.tp-kpis .ok{background:#E7F3EA;color:#185F33}.tp-kpis .warn{background:#FCF3E1;color:#6B4A12}.tp-kpis .err{background:#FBEAEA;color:#8C2A2A}
.tp-people-list{display:flex;flex-direction:column}
.tp-person{display:flex;gap:10px;align-items:center;padding:9px 0;border-top:1px solid var(--line-2)}
.tp-person:first-child{border-top:0}
.tp-form .tp-ev,.tp-form .tp-info,.tp-form .tp-people{display:none}
.tp-form:has(input[name=kind][value=event]:checked) .tp-ev{display:grid}
.tp-form:has(input[name=kind][value=info]:checked) .tp-info{display:flex}
.tp-form:has(input[name=all_day]:checked) .tp-time{opacity:.4;pointer-events:none}
.tp-form:has(input[name=audience][value=selected]:checked) .tp-people{display:grid}
.tp-h{font-size:14px;margin:18px 0 8px}
.tp-aud{flex-wrap:wrap}
.tp-people{grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:8px 14px;margin-top:10px;max-height:240px;overflow:auto;padding:12px;border:1px solid var(--line);border-radius:10px;flex-shrink:0;align-content:start}
.tp-people .check{align-items:center}
.tp-opts{display:flex;flex-direction:column;gap:8px;margin-top:16px}
@media (max-width:860px){.tp-row{grid-template-columns:52px minmax(0,1fr)}.tp-stat{grid-column:1 / -1}}
.cal-head>div{position:relative}
.cal-tev{position:absolute;bottom:4px;right:6px;display:inline-flex;align-items:center;gap:3px;max-width:62%;padding:1px 6px;border-radius:999px;background:#FCF3E1;color:#6B4A12;border:1px solid #EBCB8E;font-size:10.5px;font-weight:600;text-decoration:none;white-space:nowrap;overflow:hidden;z-index:2}
.cal-tev span{overflow:hidden;text-overflow:ellipsis}
.cal-tev:hover{text-decoration:none;background:#F8E6C2;color:#4D3405}
.cal-tev.dot{top:2px;bottom:auto;right:2px;padding:1px 3px;max-width:none}
/* Handy */
.tp-m{gap:10px}
.tp-m.important{border-left:3px solid var(--err)}
.tp-m.cancelled .tp-m-title{text-decoration:line-through;color:var(--muted)}
.tp-m-head{display:flex;gap:12px;align-items:center;color:inherit;text-decoration:none}
.tp-m-head:hover{color:inherit;text-decoration:none}
.tp-m-head>.grow{display:flex;flex-direction:column;gap:1px}
.tp-m-eyebrow{font-size:11px;font-weight:600;color:var(--brand);text-transform:uppercase;letter-spacing:.05em}
.tp-m.important .tp-m-eyebrow{color:var(--err)}
.tp-m-title{font-size:16px;line-height:1.25}
.tp-m-body{color:var(--ink-2)}
.tp-m-h{font-size:20px;margin:0;line-height:1.25}
.tp-m .tp-rbtns .tp-r{min-height:46px}
.gap-10{gap:10px}
.tag.err{background:#FBEAEA;color:#8C2A2A;border-color:#F0C9C9}

/* ---- Abnahmeprotokoll (Handy) ---- */
.acc-hero h2{margin:2px 0 4px;font-size:20px;line-height:1.25}
.acc-dl{display:grid;gap:8px;margin:4px 0}
.acc-dl>div{display:grid;grid-template-columns:110px 1fr;gap:8px}
.acc-dl dt{font-size:12.5px;color:var(--muted)}.acc-dl dd{margin:0;font-weight:500}
.acc-tasks{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.acc-tasks li{display:flex;gap:10px;align-items:flex-start;font-size:15px}
.acc-tasks .ck{flex:0 0 20px;height:20px;border-radius:6px;border:1.5px solid var(--field);display:flex;align-items:center;justify-content:center;margin-top:1px}
.acc-tasks .done .ck{background:var(--ok);border-color:var(--ok);color:#fff}
.acc-time{display:flex;gap:10px;align-items:baseline;padding:6px 0;border-top:1px solid var(--line-2);font-size:14px}
.acc-time:first-of-type{border-top:0}
.acc-photos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
.acc-ph{position:relative;display:block;aspect-ratio:1;border-radius:10px;overflow:hidden;cursor:pointer;border:2px solid transparent}
.acc-ph img{width:100%;height:100%;object-fit:cover;display:block;opacity:.55;transition:opacity .12s}
.acc-ph input{position:absolute;top:6px;left:6px;width:20px;height:20px;accent-color:var(--brand);z-index:1}
.acc-ph span{position:absolute;left:0;right:0;bottom:0;padding:3px 6px;font-size:10.5px;font-weight:600;color:#fff;background:linear-gradient(transparent,rgba(0,0,0,.6))}
.acc-ph:has(input:checked){border-color:var(--brand)}
.acc-ph:has(input:checked) img{opacity:1}
.acc-result{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.acc-result .ap.ok:has(input:checked){border-color:var(--ok);background:#F1F8F3}
.acc-result .ap.def:has(input:checked){border-color:#C98A1E;background:#FDF7EA}
.acc-defects{display:none;margin-top:6px}
.acc-form:has(input[name=result][value=defects]:checked) .acc-defects{display:flex}
.acc-mail{display:none}
.acc-form:has(input[name=send_email]:checked) .acc-mail{display:flex}
.sigpad{position:relative;height:190px;border:2px dashed var(--field);border-radius:14px;background:#fff;touch-action:none;overflow:hidden}
.sigpad canvas{position:absolute;inset:0;width:100%;height:100%;touch-action:none;cursor:crosshair}
.sigpad::after{content:"";position:absolute;left:18px;right:18px;bottom:42px;border-bottom:1px solid #C9CFCB;pointer-events:none}
.sig-hint{position:absolute;left:0;right:0;bottom:16px;text-align:center;font-size:12.5px;color:var(--muted);pointer-events:none}
.sigpad.signed .sig-hint{display:none}
.sigpad.signed{border-style:solid;border-color:var(--brand)}
.sigpad.need{border-color:var(--err);animation:sigshake .4s}
.sig-clear{position:absolute;top:6px;right:6px;z-index:1;background:rgba(255,255,255,.9)}
@keyframes sigshake{25%{transform:translateX(-6px)}75%{transform:translateX(6px)}}
@media (prefers-reduced-motion:reduce){.sigpad.need{animation:none}}
.acc-cta{flex-direction:column;gap:2px;min-height:68px}
.acc-cta small{font-size:12.5px;font-weight:500;opacity:.88}
.acc-done{display:flex;gap:10px;align-items:center;padding:10px 12px;border-radius:12px;background:#F1F8F3;border:1px solid #CFE6D6;color:#185F33;text-decoration:none}
.acc-done:hover{text-decoration:none;color:#185F33}
.acc-done .grow{display:flex;flex-direction:column;min-width:0}
.acc-done small{color:var(--muted);font-size:12px}
.acc-office{display:flex;flex-direction:column;gap:4px;padding-top:10px;border-top:1px solid var(--line-2)}.acc-office:first-child{border-top:0;padding-top:0}

/* ---- Offline-Modus (Handy) ---- */
.m-offline{position:sticky;top:0;z-index:9;background:#2B3640;color:#fff;font-size:13px;padding:8px 12px 8px;display:flex;flex-direction:column;gap:6px}
.m-offline[hidden]{display:none}
.off-row{display:flex;align-items:center;gap:8px}
.off-row .grow{opacity:.85;line-height:1.3}
.off-dot{width:9px;height:9px;border-radius:50%;background:#F0A43A;flex:0 0 9px}
.off-dot.on{background:#7DDBA6}
.off-btn{border:0;border-radius:999px;background:rgba(255,255,255,.16);color:#fff;font:600 12.5px var(--font);padding:5px 10px;cursor:pointer;white-space:nowrap}
.off-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:3px;max-height:140px;overflow:auto}
.off-list li{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;font-size:12px;opacity:.9;padding-left:17px;position:relative}
.off-list li::before{content:"";position:absolute;left:3px;top:6px;width:5px;height:5px;border-radius:50%;background:rgba(255,255,255,.6)}
.off-list li.err{color:#FFC9C9}
.off-list li.err small{flex-basis:100%}
.off-toast{position:fixed;left:12px;right:12px;bottom:calc(76px + env(safe-area-inset-bottom));z-index:60;background:#1F2A33;color:#fff;padding:12px 14px;border-radius:12px;font-size:14px;box-shadow:0 8px 24px rgba(0,0,0,.25);transition:opacity .3s,transform .3s}
.off-toast.ok{border-left:4px solid #7DDBA6}.off-toast.err{border-left:4px solid #F07A7A}
.off-toast.out{opacity:0;transform:translateY(8px)}

/* ---- Handy: Einsatz übersichtlich ---- */
.od-hero{gap:10px}
.od-when{display:inline-flex;align-items:center;gap:5px;font-size:14px;color:var(--ink-2)}
.od-when b{color:var(--ink)}
.od-addr{display:flex;gap:10px;align-items:flex-start;font-size:15px;line-height:1.35;color:var(--ink);text-decoration:none;padding:10px 12px;border-radius:12px;background:var(--brand-50)}
.od-addr:hover{text-decoration:none;color:var(--ink)}
.od-addr .ic{color:var(--brand);flex-shrink:0;margin-top:1px}


.od-safety{display:flex;gap:8px;align-items:flex-start;padding:9px 12px;border-radius:10px;background:#FFF4E5;color:#7A4B00;font-size:13.5px;line-height:1.4;border:1px solid #F3D6A4}
.od-safety .ic{flex-shrink:0;margin-top:1px}
.od-accept{display:flex;gap:12px;align-items:center;padding:12px 14px;border-radius:14px;background:#fff;border:1.5px solid var(--ok);color:var(--ink);text-decoration:none}
.od-accept:hover{text-decoration:none;color:var(--ink);background:#F4FAF6}
.od-accept .grow{display:flex;flex-direction:column;gap:1px}
.od-accept b{font-size:16px;color:#185F33}
.od-accept small{font-size:12.5px;color:var(--muted)}
.od-acc-ic{width:40px;height:40px;border-radius:12px;background:#E7F3EA;color:#185F33;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.od-qa{grid-template-columns:repeat(4,minmax(0,1fr))}
.od-qa a{min-height:66px;font-size:12px}
.od-tabs{display:flex;flex-direction:column;gap:10px}
.od-seg{display:flex;width:100%;position:sticky;top:0;z-index:5;box-shadow:0 0 0 6px var(--ground)}
.od-seg label{flex:1}
.od-seg label span{justify-content:center;width:100%;height:36px;font-size:14px;gap:6px}
.od-seg .chip-n{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--brand);color:#fff;font-size:11px;font-weight:700}
.od-pane{display:none;flex-direction:column;gap:10px}
.od-tabs:has(input[value=work]:checked) .p-work,
.od-tabs:has(input[value=info]:checked) .p-info,
.od-tabs:has(input[value=hist]:checked) .p-hist{display:flex}
.od-text{white-space:pre-line;margin:4px 0 0;font-size:15px;line-height:1.5}
.od-note{margin-top:10px;padding:10px 12px;border-radius:10px;background:#F4F6F3;border-left:3px solid var(--brand)}
.od-line{padding:7px 0;border-top:1px solid var(--line-2)}
.od-line:first-of-type{border-top:0}
.od-more summary{display:flex;align-items:center;gap:8px;cursor:pointer;font-weight:600;font-size:14.5px;color:var(--ink-2);list-style:none}
.od-more summary::-webkit-details-marker{display:none}
.od-more summary::after{content:"▾";margin-left:auto;color:var(--muted)}
.od-more[open] summary{margin-bottom:10px}
.od-contact{display:flex;gap:10px;align-items:center}
.od-contact .grow{display:flex;flex-direction:column;min-width:0;line-height:1.3}
.od-contact b{font-size:15px}.od-contact small{font-size:12.5px;color:var(--muted)}
.od-c-av{width:38px;height:38px;border-radius:50%;background:#EEF0EC;color:var(--ink-2);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.od-call{position:relative;width:46px;height:46px;border-radius:50%;background:var(--ok);color:#fff;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;text-decoration:none}
.od-call:hover{color:#fff;filter:brightness(1.06);text-decoration:none}
.od-call.alt{background:#fff;color:var(--brand);border:1.5px solid var(--field)}
.od-call.alt:hover{color:var(--brand)}
.od-call i{position:absolute;right:-2px;bottom:-2px;font:700 9px var(--font);background:var(--brand);color:#fff;border-radius:6px;padding:1px 3px;font-style:normal}
.od-person{display:flex;gap:10px;align-items:center;padding:10px 0;border-top:1px solid var(--line-2)}
.od-person:first-of-type{border-top:0}
.od-person .grow{display:flex;flex-direction:column;min-width:0;gap:1px}
.od-person b{font-size:15px}.od-person small{font-size:12.5px;color:var(--muted)}
.od-p-act{display:flex;gap:6px}
.od-p-act .od-call{width:42px;height:42px}
.od-top{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:6px 8px}.od-when{white-space:nowrap}

/* ---- Handy: Startseite ---- */
.hm-link{text-transform:none;letter-spacing:0;font-weight:600}
.hm-empty{flex-direction:row;align-items:center;gap:10px;color:var(--muted)}
.hm-holiday{flex-direction:row;align-items:center;gap:8px;background:#FAF8F2}
.hm-today{gap:9px;border-left:5px solid var(--pc,var(--brand));padding-top:12px}
.hm-today.running{box-shadow:0 0 0 2px var(--ok) inset}
.hm-top{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px}
.hm-title{display:flex;flex-direction:column;gap:1px;color:var(--ink);text-decoration:none}
.hm-title:hover{color:var(--ink);text-decoration:none}
.hm-title b{font-size:18px;line-height:1.25}
.hm-title span{font-size:13px;color:var(--muted)}
.hm-line{display:flex;gap:8px;align-items:flex-start;font-size:14px;line-height:1.35;color:var(--ink);text-decoration:none}
a.hm-line:hover{color:var(--ink);text-decoration:none}
.hm-line .ic{flex-shrink:0;margin-top:1px;color:var(--brand)}
.hm-line.warn{color:#7A4B00}.hm-line.warn .ic{color:#B7791F}
.hm-meta{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:12.5px;color:var(--muted)}
.hm-meta span{display:inline-flex;align-items:center;gap:4px}
.hm-acts{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:6px}
.hm-acts a{display:flex;flex-direction:column;align-items:center;gap:3px;padding:8px 2px;border-radius:12px;background:#F4F6F3;color:var(--ink);font-size:12px;font-weight:600;text-decoration:none}
.hm-acts a:hover{text-decoration:none;color:var(--ink);background:#ECEFEA}
.hm-acts a .ic{color:var(--brand)}
.hm-acts a.go{background:var(--brand-50)}
.hm-abs{gap:6px;color:inherit;text-decoration:none}
.hm-abs:hover{color:inherit;text-decoration:none}
.hm-abs-row{display:flex;align-items:center;gap:8px;font-size:14px}
.hm-abs-row small{margin-left:auto;font-weight:600}
.hm-day{font-size:12.5px;font-weight:600;color:var(--ink-2);margin:4px 2px -2px}
.hm-next{gap:12px}
.hm-bar{width:4px;align-self:stretch;border-radius:2px;flex-shrink:0}

/* ---- Handy: Woche ---- */
.wk-strip{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;margin-bottom:12px}
.wk-strip a{display:flex;flex-direction:column;align-items:center;gap:1px;padding:7px 0 6px;border-radius:12px;background:#fff;border:1px solid var(--line);color:var(--ink);text-decoration:none;line-height:1.1}
.wk-strip a:hover{text-decoration:none;color:var(--ink)}
.wk-strip small{font-size:11px;color:var(--muted);font-weight:600}
.wk-strip b{font-size:17px}
.wk-strip i{width:6px;height:6px;border-radius:50%;margin-top:3px;background:transparent}
.wk-strip i.busy{background:var(--brand)}.wk-strip i.abs{background:#6FA9A3}
.wk-strip a.today{background:var(--brand);border-color:var(--brand);color:#fff}
.wk-strip a.today small{color:rgba(255,255,255,.8)}.wk-strip a.today i.busy{background:#fff}
.wk-strip a.off{background:transparent}
.wk-list{display:flex;flex-direction:column;gap:8px}
.wk-day{display:grid;grid-template-columns:50px minmax(0,1fr);gap:10px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:10px 12px;scroll-margin-top:70px}
.wk-day.today{border-color:var(--brand);box-shadow:0 0 0 1px var(--brand) inset}
.wk-day.empty{padding:7px 12px;background:transparent;border-style:dashed}
.wk-day.past:not(.today){opacity:.75}
.wk-date{display:flex;flex-direction:column;align-items:center;line-height:1.15;padding-top:2px}
.wk-date b{font-size:15px}.wk-date span{font-size:12px;color:var(--muted)}
.wk-date em{font-style:normal;font-size:10px;font-weight:700;color:#fff;background:var(--brand);border-radius:6px;padding:1px 5px;margin-top:3px}
.wk-day.today .wk-date b{color:var(--brand)}
.wk-body{display:flex;flex-direction:column;gap:6px;align-items:flex-start;min-width:0}
.wk-entry{display:flex;flex-direction:column;gap:1px;width:100%;padding:6px 0 6px 10px;border-left:3px solid var(--pc,var(--brand));color:var(--ink);text-decoration:none;min-width:0}
.wk-entry:hover{text-decoration:none;color:var(--ink)}
.wk-entry+.wk-entry{border-top:1px solid var(--line-2)}
.wk-t{font:600 12.5px var(--mono,monospace);color:var(--ink-2);display:flex;gap:6px;align-items:center}
.wk-entry b{font-size:15px;line-height:1.25}
.wk-entry small{font-size:12.5px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}
.wk-free{font-size:13px;color:var(--muted);padding-top:3px}
.ts-day{position:relative;overflow:hidden}
.ts-day::after{content:"";position:absolute;left:0;bottom:0;height:3px;width:var(--p,0);background:var(--ok);opacity:.55}
.ts-day.future::after{display:none}

/* ---- Handy: Profil ---- */
.av.xl{width:64px;height:64px;font-size:22px;flex-shrink:0}
.pf-head{flex-direction:row;align-items:center;gap:14px}
.pf-head .grow{display:flex;flex-direction:column;gap:1px;min-width:0}
.pf-head b{font-size:19px}.pf-head span{font-size:14px;color:var(--ink-2)}
.pf-head small{font-size:12.5px;color:var(--muted);overflow-wrap:anywhere}
.pf-tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.pf-tiles a{display:flex;flex-direction:column;gap:1px;padding:12px;background:#fff;border:1px solid var(--line);border-radius:14px;color:var(--ink);text-decoration:none;min-width:0}
.pf-tiles a:hover{text-decoration:none;color:var(--ink)}
.pf-tiles small{font-size:11.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pf-tiles b{font-size:21px;font-weight:600;font-variant-numeric:tabular-nums}
.pf-tiles .pos b{color:var(--ok)}.pf-tiles .neg b{color:var(--err)}
.pf-list{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden}
.pf-item{border-top:1px solid var(--line-2)}
.pf-item:first-child{border-top:0}
.pf-item summary,.pf-sum,.pf-item.link{display:flex;align-items:center;gap:12px;padding:13px 14px;cursor:pointer;list-style:none;color:var(--ink);text-decoration:none}
.pf-item.link:hover{text-decoration:none;color:var(--ink);background:#FAFBF9}
.pf-item summary::-webkit-details-marker{display:none}
.pf-item summary::after{content:"";width:8px;height:8px;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);transform:rotate(45deg);margin:-4px 4px 0 0;transition:transform .15s}
.pf-item[open] summary::after{transform:rotate(-135deg);margin-top:4px}
.pf-item .grow{display:flex;flex-direction:column;min-width:0;gap:1px}
.pf-item b{font-size:15px}.pf-item small{font-size:12.5px;color:var(--muted);line-height:1.35}
.pf-ic{width:36px;height:36px;border-radius:10px;background:var(--brand-50);color:var(--brand);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.pf-body{padding:2px 14px 14px}
.pf-item.static .pf-sum{cursor:default}
.pf-item.static .pf-body:not(:has(.btn:not(.hidden),.m-big:not(.hidden))){display:none}
@media (display-mode:standalone){.install-row{display:none}}
.pf-logout{width:100%;margin-top:4px}

/* ---- Handy: Urlaub ---- */
.ab-year{gap:8px}
.ab-rest{font-size:22px;color:var(--brand)}.ab-rest small{font-size:12.5px;font-weight:500;color:var(--muted)}
.ab-bar{display:flex;height:9px;border-radius:5px;background:var(--line-2);overflow:hidden}
.ab-bar i{display:block;height:100%}
.ab-bar .u{background:var(--brand)}.ab-bar .r{background:#E0A43A}
.ab-legend{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:12.5px;color:var(--muted)}
.ab-legend span{display:inline-flex;align-items:center;gap:5px}
.ab-legend i{width:9px;height:9px;border-radius:3px;display:inline-block}
.ab-legend .u{background:var(--brand)}.ab-legend .r{background:#E0A43A}
.ab-legend span:last-child{margin-left:auto}
.ab-za{font-size:13.5px;color:var(--ink-2);padding-top:6px;border-top:1px solid var(--line-2)}
.ab-row{gap:10px}
.ab-type{width:34px;height:34px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0;background:#E3ECF8;color:#173D73}
.ab-row.t-comp_time .ab-type{background:#E4F1F2;color:#0D4C55}
.ab-row.t-training .ab-type,.ab-row.t-other .ab-type{background:#F1ECF9;color:#56309C}
.ab-done summary{cursor:pointer;list-style:none;margin:6px 0}
.ab-done summary::-webkit-details-marker{display:none}
.ab-done summary::after{content:" ▾"}
.ab-done[open]{display:flex;flex-direction:column;gap:8px}

/* ---- Handy: Startseite (ruhiger Aufbau) ---- */
.hx{position:relative;display:flex;flex-direction:column;gap:6px;padding:16px 16px 14px;border-radius:18px;background:var(--brand);color:#fff;overflow:hidden;box-shadow:0 6px 18px rgba(16,40,46,.18)}
.hx::before{content:"";position:absolute;left:0;top:0;bottom:0;width:6px;background:var(--pc,transparent)}
.hx a{color:#fff}
.hx-label{display:flex;align-items:center;gap:6px;font-size:12.5px;font-weight:600;letter-spacing:.03em;text-transform:uppercase;opacity:.85}
.hx-status{margin-left:auto;text-transform:none;letter-spacing:0;font-weight:600;font-size:11.5px;padding:2px 8px;border-radius:999px;background:rgba(255,255,255,.16)}
.hx-title{font-size:21px;font-weight:700;line-height:1.2;text-decoration:none;color:#fff}
a.hx-title:hover{text-decoration:none;color:#fff}
.hx-sub{font-size:13.5px;opacity:.8;margin-top:-2px}
.hx-addr,.hx-warn{display:flex;gap:6px;align-items:flex-start;font-size:14px;line-height:1.35}
.hx-addr .ic,.hx-warn .ic{flex-shrink:0;margin-top:2px;opacity:.85}
.hx-warn{color:#FFE2B0}
.hx-start{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;min-height:58px;margin-top:8px;border:0;border-radius:14px;background:#fff;color:var(--ok);font:700 18px var(--font);cursor:pointer;box-shadow:0 2px 6px rgba(0,0,0,.12)}
.hx-start:active{transform:scale(.99)}
.hx-icons{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:6px;margin-top:4px}
.hx-icons a{display:flex;flex-direction:column;align-items:center;gap:3px;padding:8px 2px;border-radius:12px;background:rgba(255,255,255,.12);font-size:11.5px;font-weight:600;text-decoration:none}
.hx-icons a:hover{background:rgba(255,255,255,.2);text-decoration:none}
.hx.running{background:#14532D}
.hx-timer{font-size:46px;font-weight:600;line-height:1.05;letter-spacing:.01em}
.hx.running .hx-title{font-size:16px;font-weight:600;opacity:.92}
.hx-btns{display:grid;grid-template-columns:1fr 1.4fr;gap:8px;margin-top:8px}
.hx-btns form{display:contents}
.hx-btn{display:flex;align-items:center;justify-content:center;gap:8px;min-height:52px;border-radius:14px;border:0;background:#fff;color:#14532D;font:700 16px var(--font);text-decoration:none;cursor:pointer}
.hx-btn:hover{text-decoration:none;color:#14532D}
.hx-btn.ghost{background:rgba(255,255,255,.14);color:#fff}
.hx.free{background:#fff;color:var(--ink);border:1px solid var(--line);box-shadow:none}
.hx.free .hx-title{color:var(--ink)}
.hx.free .hx-label{color:var(--muted)}
.hx-next{display:flex;align-items:center;gap:4px;flex-wrap:wrap;margin-top:6px;font-size:14px;color:var(--brand)!important;text-decoration:none}
.hl{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden}
.hl-h{padding:12px 14px 6px;font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.hl-h a{text-transform:none;letter-spacing:0;font-weight:600;font-size:13px}
.hl-h-out{padding:6px 4px 0}
.hl-row{display:flex;align-items:center;gap:12px;padding:11px 14px;border-top:1px solid var(--line-2);color:var(--ink);text-decoration:none;min-width:0}
.hl-h+.hl-row{border-top:0}
.hl-row:hover{text-decoration:none;color:var(--ink);background:#FAFBF9}
.hl-row .grow{display:flex;flex-direction:column;gap:1px;min-width:0}
.hl-row b{font-size:15px;line-height:1.25}
.hl-row small{font-size:12.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hl-row>small{flex-shrink:0;font-weight:600}
.hl-row>.ic{color:var(--muted);flex-shrink:0}
.hl-bar{width:4px;align-self:stretch;border-radius:2px;flex-shrink:0}
.hl-date{display:flex;flex-direction:column;align-items:center;justify-content:center;width:42px;height:46px;border-radius:12px;background:var(--brand-50);color:var(--brand);flex-shrink:0;line-height:1.05}
.hl-date small{font-size:10.5px!important;font-weight:700;text-transform:uppercase;color:var(--brand)!important}
.hl-date b{font-size:18px}
.hl-empty{padding:10px 14px 14px;color:var(--muted);font-size:14px}
.hl-note{display:flex;align-items:center;gap:10px;padding:11px 14px;border-radius:14px;background:var(--brand-50);color:var(--ink);text-decoration:none;font-size:14px;font-weight:600}
.hl-note:hover{text-decoration:none;color:var(--ink)}
.hl-note .ic{color:var(--brand)}
.hs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));background:#fff;border:1px solid var(--line);border-radius:16px}
.hs a{display:flex;flex-direction:column;gap:1px;padding:12px 12px;color:var(--ink);text-decoration:none;min-width:0}
.hs a+a{border-left:1px solid var(--line-2)}
.hs a:hover{text-decoration:none;color:var(--ink)}
.hs small{font-size:11.5px;color:var(--muted)}
.hs b{font-size:20px;font-weight:600;font-variant-numeric:tabular-nums}
.hs-bar{height:4px;border-radius:2px;background:var(--line-2);overflow:hidden;margin:3px 0 1px}
.hs-bar i{display:block;height:100%;background:var(--brand)}
.hq{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px}
.hq a{display:flex;flex-direction:column;align-items:center;gap:5px;padding:4px 0;font-size:12px;font-weight:600;color:var(--ink);text-decoration:none}
.hq a:hover{text-decoration:none;color:var(--ink)}
.hq .mq-ic{width:48px;height:48px;border-radius:16px}
.push-banner .push-ic{width:34px;height:34px}
.hl-row small.c-ok{color:var(--ok)}.hl-row small.c-warn{color:var(--warn)}
.hx a.hx-btn{color:#14532D}.hx a.hx-btn.ghost{color:#fff}.hx .clock-dot{background:#7DDBA6}

/* ---- Handy: Startseite schlicht ---- */
.sp-h{display:flex;align-items:center;justify-content:space-between;margin:10px 2px -2px;font-size:13px;font-weight:600;color:var(--muted)}
.sp-h:first-child{margin-top:0}
.sp-h a{font-weight:500;font-size:13px}
.sp-card{display:flex;flex-direction:column;gap:8px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px 16px}
.sp-plain{font-size:15px;color:var(--ink-2)}
.sp-when{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:14px;font-weight:600;color:var(--ink-2)}
.sp-status{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:500;color:var(--muted)}
.sp-status i{width:8px;height:8px;border-radius:50%}
.sp-title{font-size:19px;font-weight:700;line-height:1.25;color:var(--ink);text-decoration:none}
.sp-title:hover{color:var(--ink);text-decoration:none}
.sp-sub{font-size:13.5px;color:var(--muted);margin-top:-5px}
.sp-info{display:grid;grid-template-columns:18px 1fr;gap:7px 8px;margin:2px 0 0;font-size:14px;line-height:1.4}
.sp-info dt{color:var(--muted);padding-top:1px}
.sp-info dd{margin:0;min-width:0;overflow-wrap:anywhere}
.sp-info dd a{color:var(--ink);text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:3px}
.sp-info .warn{color:#8A5A00}
.sp-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:50px;border-radius:10px;border:1px solid var(--field);background:#fff;color:var(--ink);font:600 16px var(--font);text-decoration:none;cursor:pointer}
.sp-btn:hover{text-decoration:none;color:var(--ink)}
.sp-btn.primary{background:var(--ok);border-color:var(--ok);color:#fff}
.sp-btn.primary:hover{color:#fff;filter:brightness(1.05)}
.sp-btn.stop{background:#B83A55;border-color:#B83A55}
.sp-two{display:grid;grid-template-columns:1fr 1.5fr;gap:8px}
.sp-two form{display:contents}
.sp-run{display:flex;justify-content:space-between;align-items:baseline;padding:8px 0 2px;border-top:1px solid var(--line-2);font-size:14px;color:var(--ok);font-weight:600}
.sp-run b{font-size:28px;color:var(--ink)}
.sp-links{display:flex;justify-content:space-between;gap:4px;padding-top:8px;border-top:1px solid var(--line-2)}
.sp-links a{display:inline-flex;align-items:center;gap:5px;font-size:13.5px;font-weight:600;color:var(--brand);text-decoration:none;padding:4px 2px}
.sp-list{padding:0 16px;gap:0}
.sp-kv{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:12px 0;border-top:1px solid var(--line-2);color:var(--ink);text-decoration:none;font-size:14.5px}
.sp-kv:first-child{border-top:0}
.sp-kv:hover{text-decoration:none;color:var(--ink)}
.sp-kv b{font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}
.sp-kv b small{font-weight:400;color:var(--muted);font-size:12.5px}
.sp-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.sp-actions a{display:flex;align-items:center;justify-content:center;min-height:42px;border:1px solid var(--line);border-radius:10px;background:#fff;font-size:13.5px;font-weight:600;color:var(--ink);text-decoration:none;text-align:center;padding:4px}
.sp-actions a:hover{text-decoration:none;color:var(--ink);border-color:var(--field)}
.sp-row{flex-direction:row;align-items:center;gap:10px;color:var(--ink);text-decoration:none;font-size:14px;padding:12px 16px}
.sp-row:hover{text-decoration:none;color:var(--ink)}
.sp-row .ic{color:var(--muted)}
.sp-next{display:flex;align-items:center;gap:14px;padding:12px 0;border-top:1px solid var(--line-2);color:var(--ink);text-decoration:none}
.sp-next:first-child{border-top:0}
.sp-next:hover{text-decoration:none;color:var(--ink)}
.sp-next .grow{display:flex;flex-direction:column;gap:2px;min-width:0}
.sp-next b{font-size:15px}
.sp-next small{font-size:12.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sp-next>.ic{color:var(--muted);flex-shrink:0}
.sp-d{display:flex;flex-direction:column;width:46px;flex-shrink:0;font-size:12px;color:var(--muted);line-height:1.2}
.sp-d b{font-size:14px;color:var(--ink)}

/* ==== Handy-Startseite: „Dein Tag“ ==== */
.dx{--dx-ink:#17262A;--dx-soft:#5E6B6F;--dx-line:#E3E6E1;--dx-go:#1E7A46;--dx-amber:#8A5A00;display:flex;flex-direction:column;gap:22px;color:var(--dx-ink)}
.dx a{color:inherit;text-decoration:none}
.dx-hello{padding:4px 2px 0}
.dx-date{margin:0;font-size:14px;color:var(--dx-soft)}
.dx-hello h1{margin:2px 0 4px;font-size:30px;line-height:1.1;font-weight:700;letter-spacing:-.02em}
.dx-lead{margin:0;font-size:16px;color:var(--dx-ink);opacity:.85}
.dx-note{display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:12px;background:#fff;border:1px solid var(--dx-line);font-size:14.5px;font-weight:500}
.dx-note .ic{color:var(--brand);flex-shrink:0}

/* Tageslinie */
.dx-line{list-style:none;margin:0;padding:0;position:relative}
.dx-line::before{content:"";position:absolute;left:61px;top:10px;bottom:10px;width:2px;background:var(--dx-line);border-radius:1px}
.dx-line>li{position:relative;display:grid;grid-template-columns:52px 1fr;column-gap:24px;align-items:start}
.dx-t{font-size:17px;font-weight:600;font-variant-numeric:tabular-nums;letter-spacing:-.01em;text-align:right;padding-top:12px;line-height:1}
.dx-line>li::after{content:"";position:absolute;left:56px;top:11px;width:12px;height:12px;border-radius:50%;background:var(--bg-dot,#fff);border:2px solid var(--dot,var(--dx-line));box-sizing:border-box}
.dx-job{--dot:var(--pc,var(--brand));--bg-dot:var(--pc,var(--brand));padding-bottom:6px}
.dx-job.is-running{--dot:var(--dx-go);--bg-dot:var(--dx-go)}
.dx-job.is-past{opacity:.6}
.dx-end{--dot:#B9C0BC;min-height:34px}
.dx-end span:last-child{padding-top:11px;font-size:14px;color:var(--dx-soft)}
.dx-end .dx-t{color:var(--dx-soft);font-weight:500;font-size:15px}
.dx-now{--dot:var(--brand);--bg-dot:var(--brand);min-height:30px}
.dx-now::after{width:10px!important;height:10px!important;left:57px!important;top:12px!important;box-shadow:0 0 0 4px rgba(20,90,98,.15)}
.dx-now .dx-t{color:var(--brand);font-size:14px;padding-top:11px}
.dx-now-l{align-self:start;margin-top:9px;justify-self:start;padding:2px 9px;border-radius:999px;background:var(--brand);color:#fff;font-size:12px;font-weight:600}

.dx-card{background:#fff;border:1px solid var(--dx-line);border-radius:16px;padding:14px 16px 6px;display:flex;flex-direction:column;gap:6px;box-shadow:0 1px 0 rgba(23,38,42,.03);margin-bottom:8px}
.dx-job.is-running .dx-card{border-color:var(--dx-go);box-shadow:0 0 0 1px var(--dx-go) inset}
.dx-state{display:flex;align-items:center;gap:7px;margin:0;font-size:13px;color:var(--dx-soft)}
.dx-state i{width:8px;height:8px;border-radius:50%}
.dx-title{font-size:20px;font-weight:700;line-height:1.2;letter-spacing:-.01em}
.dx-cust{margin:-2px 0 2px;font-size:14px;color:var(--dx-soft)}
.dx-facts{list-style:none;margin:4px 0 2px;padding:0;display:flex;flex-direction:column;gap:9px}
.dx-facts li{display:grid;grid-template-columns:18px 1fr;gap:10px;font-size:14.5px;line-height:1.4}
.dx-facts .ic{color:var(--dx-soft);margin-top:2px}
.dx-facts a{text-decoration:underline!important;text-decoration-color:var(--dx-line)!important;text-underline-offset:4px}
.dx-facts small{display:block;font-size:12.5px;color:var(--dx-soft)}
.dx-tel{display:inline-block;margin-top:2px;font-weight:600;color:var(--brand)!important;text-decoration:none!important}
.dx-warn{color:var(--dx-amber)}.dx-warn .ic{color:#B7791F!important}
.dx-btn{display:flex;align-items:center;justify-content:center;gap:9px;width:100%;min-height:54px;margin-top:8px;border-radius:14px;border:1px solid var(--dx-line);background:#fff;color:var(--dx-ink);font:600 16px var(--font);cursor:pointer}
.dx-go{background:var(--dx-go);border-color:var(--dx-go);color:#fff;font-size:17px;box-shadow:0 6px 14px -6px rgba(30,122,70,.55)}
.dx-go:active,.dx-btn:active{transform:translateY(1px)}
.dx-stop{background:var(--dx-ink);border-color:var(--dx-ink);color:#fff!important}
.dx-pair{display:grid;grid-template-columns:1fr 1.6fr;gap:8px}
.dx-pair form{display:contents}
.dx-pair .dx-btn{margin-top:4px}
.dx-clock{display:flex;justify-content:space-between;align-items:baseline;margin-top:6px;padding-top:10px;border-top:1px solid var(--dx-line);font-size:14px;color:var(--dx-go);font-weight:600}
.dx-clock>span{display:inline-flex;align-items:center;gap:7px}
.dx-clock .clock-dot{background:var(--dx-go)}
.dx-clock b{font-size:34px;line-height:1;color:var(--dx-ink);font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.dx-hint{margin:6px 0 0;font-size:13px;color:var(--dx-soft)}
.dx-links{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:10px -8px 0;border-top:1px solid var(--dx-line)}
.dx-links a{display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 0 8px;font-size:12.5px;font-weight:600;color:var(--dx-ink)}
.dx-links a .ic{color:var(--brand)}
.dx-links a:active{background:#F4F6F3;border-radius:10px}

/* Woche */
.dx-week{background:#fff;border:1px solid var(--dx-line);border-radius:16px;padding:14px 16px 4px}
.dx-week-head{display:flex;justify-content:space-between;align-items:center;font-size:14.5px;color:var(--dx-soft)}
.dx-week-head b{font-size:22px;color:var(--dx-ink);font-variant-numeric:tabular-nums;letter-spacing:-.01em;margin-right:3px}
.dx-week-head .ic{color:var(--dx-soft)}
.dx-bars{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;height:84px;margin:14px 0 4px;align-items:end}
.dx-bar{display:flex;flex-direction:column;align-items:center;gap:6px;height:100%}
.dx-bar-col{position:relative;flex:1;width:100%;max-width:26px;display:flex;align-items:flex-end}
.dx-bar-col i{position:absolute;left:0;right:0;bottom:0;border-radius:6px}
.dx-bar-col .soll{background:#EEF0EC;border:1px dashed #D3D8D3}
.dx-bar-col .ist{background:#9DB6B9}
.dx-bar.is-today .ist{background:var(--brand)}
.dx-bar.is-future .ist{display:none}
.dx-bar small{font-size:11.5px;color:var(--dx-soft);font-weight:500}
.dx-bar.is-today small{color:var(--brand);font-weight:700}
.dx-figs{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--dx-line);margin:8px -16px 0}
.dx-figs a{display:flex;flex-direction:column;padding:11px 16px 12px}
.dx-figs a+a{border-left:1px solid var(--dx-line)}
.dx-figs span{font-size:12.5px;color:var(--dx-soft)}
.dx-figs b{font-size:18px;font-variant-numeric:tabular-nums}
.dx-figs .is-neg{color:#A3322C}.dx-figs .is-pos{color:var(--dx-go)}

.dx-ask{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;margin:-8px 0}
.dx-ask a{flex:0 0 auto;padding:9px 14px;border-radius:999px;border:1px solid var(--dx-line);background:#fff;font-size:14px;font-weight:500}

/* Listen */
.dx-sec{display:flex;flex-direction:column}
.dx-sec h2{display:flex;justify-content:space-between;align-items:baseline;margin:0 2px 8px;font-size:18px;font-weight:700;letter-spacing:-.01em}
.dx-sec h2 a{font-size:14px;font-weight:500;color:var(--brand)!important}
.dx-row{display:flex;align-items:center;gap:14px;padding:12px 2px;border-top:1px solid var(--dx-line)}
.dx-sec h2+.dx-row,.dx-sec .dx-empty+.dx-row{border-top:0}
.dx-row>.ic{color:#B9C0BC;flex-shrink:0}
.dx-day{display:flex;flex-direction:column;align-items:center;width:40px;flex-shrink:0;font-size:12px;color:var(--dx-soft);line-height:1.1}
.dx-day b{font-size:20px;color:var(--dx-ink);font-weight:600}
.dx-row-m{flex:1;display:flex;flex-direction:column;gap:1px;min-width:0}
.dx-row-m b{font-size:15.5px;font-weight:600}
.dx-row-m small{font-size:13px;color:var(--dx-soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dx-tag{font-size:12.5px;font-weight:600}
.dx-tag.ok{color:var(--dx-go)}.dx-tag.wait{color:#9A6A12}
.dx-empty{margin:0 2px;color:var(--dx-soft);font-size:14.5px}
.dx-team .tp-m{border-radius:16px;border-color:var(--dx-line)}
.dx-team .tp-m+.tp-m{margin-top:8px}
.dx-push{display:flex;align-items:center;gap:8px;padding:10px 12px;border-radius:12px;background:#fff;border:1px solid var(--dx-line);font-size:14px}
.dx-push span{flex:1}
.dx-push.hidden{display:none}
@media (prefers-reduced-motion:no-preference){.dx-now::after{animation:dxpulse 2.4s ease-out infinite}}
@keyframes dxpulse{0%{box-shadow:0 0 0 0 rgba(20,90,98,.35)}70%{box-shadow:0 0 0 8px rgba(20,90,98,0)}100%{box-shadow:0 0 0 0 rgba(20,90,98,0)}}
.dx-line::before{left:55px}
.dx-line>li{grid-template-columns:46px 1fr;column-gap:22px}
.dx-line>li::after{left:50px}
.dx-now::after{left:51px!important}
.dx-ask{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));overflow:visible}
.dx-ask a{text-align:center;padding:9px 6px;font-size:13.5px}
.dx-team .tp-date{background:#F4F6F3;color:var(--dx-ink)}
.dx-team .tp-m-eyebrow{text-transform:none;letter-spacing:0;font-size:12.5px;color:var(--dx-soft);font-weight:500}
.dx-team .tp-m.important .tp-m-eyebrow{color:#A3322C}
.ts-rule{display:flex;flex-direction:column;gap:3px;margin:10px 2px 16px;padding:12px 14px;border-radius:12px;background:#F4F6F3;font-size:13px;line-height:1.45;color:var(--ink-2)}.ts-rule b{font-size:13.5px;color:var(--ink)}

/* ---- Einsatz: Reiter Infos ---- */
.oi{gap:18px!important}
.oi-sec h3{margin:0 2px 8px;font-size:16px;font-weight:700;letter-spacing:-.01em;color:#17262A}
.oi-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:14px 16px}
.oi-list{padding-top:0;padding-bottom:0}
.oi-place{display:flex;gap:12px;align-items:flex-start}
.oi-place .grow{display:flex;flex-direction:column;gap:1px;font-size:15px;line-height:1.4}
.oi-place b{font-size:16px}
.oi-unit{margin-top:3px;font-size:13.5px;color:var(--muted)}
.oi-route{display:flex;flex-direction:column;align-items:center;gap:3px;width:64px;padding:10px 0;border-radius:14px;background:var(--brand);color:#fff!important;font-size:12px;font-weight:600;text-decoration:none!important;flex-shrink:0}
.oi-note{margin-top:12px;padding:10px 12px;border-radius:12px;background:#F4F6F3}
.oi-note b{font-size:13px}.oi-note p{margin:2px 0 0;font-size:14.5px;line-height:1.45;white-space:pre-line}
.oi-person{display:flex;align-items:center;gap:12px;padding:12px 0;border-top:1px solid var(--line-2)}
.oi-person:first-child{border-top:0}
.oi-person .grow{display:flex;flex-direction:column;gap:1px;min-width:0}
.oi-person b{font-size:15.5px}
.oi-person small{font-size:12.5px;color:var(--muted)}
.oi-av{width:40px;height:40px;border-radius:50%;background:#EEF0EC;color:#3E4B4F;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px;flex-shrink:0}
.oi-av.is-main{background:var(--brand);color:#fff}
.oi-person .av{width:40px;height:40px;font-size:14px;flex-shrink:0}
.oi-num{font-size:14px;font-weight:600;color:var(--brand);text-decoration:none;margin-top:2px;font-variant-numeric:tabular-nums}
.oi-num.mail{font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.oi-kv{display:flex;justify-content:space-between;align-items:baseline;gap:14px;padding:12px 0;border-top:1px solid var(--line-2);font-size:14.5px}
.oi-kv:first-child{border-top:0}
.oi-kv span{color:var(--muted);flex-shrink:0}
.oi-kv b{font-weight:600;text-align:right;display:flex;flex-direction:column;align-items:flex-end}
.oi-kv b small{font-weight:400;font-size:12.5px;color:var(--muted)}
.oi-doc{display:flex;align-items:center;gap:12px;padding:12px 0;border-top:1px solid var(--line-2);color:var(--ink);text-decoration:none;font-size:14.5px}
.oi-doc:first-child{border-top:0}
.oi-doc>.ic{color:var(--muted)}
.oi-doc-ic{width:36px;height:36px;border-radius:10px;background:var(--brand-50);color:var(--brand);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.dx-running{display:flex;align-items:center;gap:8px;margin:6px 0 0;padding-top:10px;border-top:1px solid var(--dx-line);font-size:14px;font-weight:600;color:var(--dx-go)}.dx-running .clock-dot{background:var(--dx-go)}

/* ---------- Face ID / Fingerabdruck (Passkeys) ---------- */
.pk-login{display:flex;flex-direction:column;gap:14px}
.pk-login[hidden],[data-passkey-only][hidden],[data-passkey-missing][hidden],[data-passkey-offer][hidden],.pk-msg[hidden]{display:none!important}
.pk-or{display:flex;align-items:center;gap:12px;color:var(--muted);font-size:13px}
.pk-or::before,.pk-or::after{content:"";flex:1;height:1px;background:var(--line)}
.pk-btn{width:100%;justify-content:center;gap:10px;font-weight:600}
.pk-btn svg{color:var(--brand)}
.is-busy{opacity:.65;pointer-events:none}
.pk-msg{margin:0}
.pk-dev{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.pk-dev b{display:block;font-size:14px}
.pk-dev small{display:block;color:var(--muted);font-size:12px}
.pk-dev-ic{width:32px;height:32px;border-radius:9px;display:grid;place-items:center;background:var(--brand-50);color:var(--brand);flex:none}
hr.sep{border:0;border-top:1px solid var(--line);margin:4px 0;width:100%}
.pk-offer{display:flex;gap:12px;align-items:center}
.pk-offer .pk-offer-ic{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;background:var(--brand-50);color:var(--brand);flex:none}
.pk-offer b{display:block}
.pk-offer small{display:block;color:var(--muted)}
.pk-offer-actions{display:flex;gap:8px;margin-top:10px}
.pk-auto{display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;padding:18px 0 6px;cursor:pointer}
.pk-auto[hidden],[data-login-password][hidden],[data-passkey-again][hidden]{display:none!important}
.pk-auto h2{margin:6px 0 0}
.pk-auto p{margin:0}
.pk-face{width:96px;height:96px;border-radius:28px;border:0;display:grid;place-items:center;background:var(--brand-50);color:var(--brand);cursor:pointer;animation:pk-pulse 2.2s ease-in-out infinite}
.pk-face:focus-visible{outline:3px solid var(--brand);outline-offset:3px}
.pk-auto [data-passkey-password]{margin-top:10px}
@keyframes pk-pulse{0%,100%{box-shadow:0 0 0 0 rgba(14,124,134,.25)}50%{box-shadow:0 0 0 14px rgba(14,124,134,0)}}
@media (prefers-reduced-motion:reduce){.pk-face{animation:none}}
[data-passkey-again]{display:inline-flex;align-items:center;justify-content:center;gap:6px}
.pk-msg-wrap:empty{display:none}
/* Anmeldung wie in einer App: Logo, Face ID, drin */
.pk-auto{gap:8px;padding:40px 0 10px;min-height:46vh;justify-content:center}
.pk-logo{width:88px;height:88px;border-radius:22px;box-shadow:0 10px 30px rgba(11,85,102,.22);animation:pk-breathe 2.4s ease-in-out infinite}
.pk-name{font-size:20px;letter-spacing:-.01em;margin-top:8px}
.pk-state{min-height:1.4em;margin:0}
.pk-pw{margin-top:18px}
.pk-auto.is-done .pk-logo{animation:none;transform:scale(1.04);transition:transform .2s}
[data-passkey-here][hidden]{display:none!important}
@keyframes pk-breathe{0%,100%{transform:scale(1)}50%{transform:scale(1.035)}}
@media (prefers-reduced-motion:reduce){.pk-logo{animation:none}}
.auth-main:has([data-passkey-auto]:not([hidden])) .auth-foot{display:none}
body:has([data-passkey-auto]:not([hidden])) [data-cookie-banner]{display:none!important}
