:root{--bg:#f4f6f9;--card:#fff;--text:#1a2230;--muted:#667085;--border:#d9dee7;--primary:#1d4ed8;--primary-text:#fff;--danger:#b42318;--info-bg:#eef4ff;--error-bg:#fef3f2;color:var(--text);background:var(--bg);-webkit-text-size-adjust:100%;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.45}@media (prefers-color-scheme:dark){:root{--bg:#0f141b;--card:#19202a;--text:#e6e9ef;--muted:#98a2b3;--border:#2c3541;--primary:#4f7cf0;--info-bg:#1b2740;--error-bg:#3a1d1b;--danger:#f97066}}*{box-sizing:border-box}body{background:var(--bg);margin:0}h1{margin:0 0 .75rem;font-size:1.4rem}h2{margin:0 0 .6rem;font-size:1.05rem}h3{color:var(--muted);text-transform:uppercase;letter-spacing:.03em;margin:.9rem 0 .25rem;font-size:.9rem}a{color:var(--primary)}input,select,textarea,button{font:inherit;color:var(--text);font-size:16px}input,select,textarea{border:1px solid var(--border);background:var(--card);border-radius:8px;width:100%;padding:.6rem .7rem}textarea{resize:vertical}button,.button{border:1px solid var(--border);background:var(--card);cursor:pointer;min-height:44px;color:var(--text);border-radius:8px;justify-content:center;align-items:center;padding:.55rem 1rem;text-decoration:none;display:inline-flex}button:disabled{opacity:.5;cursor:default}.primary{background:var(--primary);border-color:var(--primary);color:var(--primary-text)}.danger{color:var(--danger);border-color:var(--danger);background:0 0}button.link{color:var(--primary);background:0 0;border:none;min-height:0;padding:.3rem 0}.app{min-height:100vh}.topbar{z-index:10;padding:.6rem 1rem;padding-top:max(.6rem, env(safe-area-inset-top));background:var(--card);border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem 1rem;display:flex;position:sticky;top:0}.brand{color:var(--text);font-weight:700;text-decoration:none}.topbar nav{flex-wrap:wrap;align-items:center;gap:.25rem 1rem;display:flex}.topbar nav a{color:var(--muted);text-decoration:none}.topbar nav a.active{color:var(--primary);font-weight:600}.content{max-width:860px;margin:0 auto;padding:1rem 1rem 3rem}.center{text-align:center;margin-top:20vh;padding:0 1rem}.card{background:var(--card);border:1px solid var(--border);border-radius:12px;margin-bottom:.9rem;padding:1rem;display:block}.form{flex-direction:column;gap:.9rem;display:flex}.form label,.field{flex-direction:column;gap:.3rem;font-weight:500;display:flex}.actions{flex-wrap:wrap;justify-content:flex-end;gap:.6rem;margin-top:.6rem;display:flex}.muted{color:var(--muted)}.small{font-size:.85rem}.pre{white-space:pre-wrap;margin:.25rem 0}.error{background:var(--error-bg);color:var(--danger);border-radius:8px;margin:0;padding:.6rem .8rem}.info{background:var(--info-bg);border-radius:8px;margin:0 0 .6rem;padding:.6rem .8rem}.info-box{background:var(--info-bg)}.highlight{border-color:var(--primary)}.auth-page{justify-content:center;align-items:center;min-height:100vh;padding:1rem;display:flex}.auth-card{flex-direction:column;gap:.9rem;width:100%;max-width:380px;display:flex}.auth-card label{flex-direction:column;gap:.3rem;font-weight:500;display:flex}.page-head{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.75rem;display:flex}.page-head h1{margin:0}.filters{gap:.6rem;margin-bottom:.9rem;display:flex}.filters select{flex:none;width:auto}.ticket-list,.user-list,.history{margin:0;padding:0;list-style:none}.ticket-row{color:var(--text);text-decoration:none}.ticket-row:hover{border-color:var(--primary)}.ticket-row-top{justify-content:space-between;align-items:center;margin-bottom:.3rem;display:flex}.ticket-no{color:var(--muted);font-variant-numeric:tabular-nums;font-size:.85rem;font-weight:600}.ticket-title{font-weight:600}.ticket-heading{margin:.25rem 0}.back{margin-bottom:.75rem;text-decoration:none;display:inline-block}.badge{white-space:nowrap;border-radius:999px;padding:.15rem .55rem;font-size:.75rem;font-weight:600}.badge-neu{color:#93370d;background:#fef0c7}.badge-zugewiesen{color:#2d31a6;background:#e0eaff}.badge-termin-angemeldet{color:#93370d;background:#fef0c7}.badge-termin-bestaetigt{color:#05603a;background:#d1fadf}.badge-zur_berechnung{color:#b93815;background:#fdead7}.badge-berechnet{color:#067647;background:#dcfae6}.badge-in_bearbeitung{color:#175cd3;background:#d1e9ff}.badge-zur_pruefung{color:#6941c6;background:#f4ebff}.badge-abgeschlossen{color:#067647;background:#dcfae6}.thumbs{grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:.5rem;display:grid}.thumb{aspect-ratio:1;background:var(--bg);border:1px solid var(--border);border-radius:8px;position:relative;overflow:hidden}.thumb img{object-fit:cover;cursor:zoom-in;width:100%;height:100%;display:block}.thumb-loading{width:100%;height:100%}.thumb-remove{color:#fff;background:#0009;border:none;border-radius:50%;width:28px;height:28px;min-height:0;padding:0;font-size:1.1rem;position:absolute;top:4px;right:4px}.thumb-add{cursor:pointer;color:var(--primary);border-style:dashed;justify-content:center;align-items:center;font-weight:600;display:flex}.add-photos{flex-direction:column;align-items:flex-start;gap:.6rem;margin-top:.75rem;display:flex}.add-photos .photo-picker{width:100%}.lightbox{z-index:100;cursor:zoom-out;background:#000000e6;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.lightbox img{object-fit:contain;max-width:100%;max-height:100%}.history li{border-bottom:1px solid var(--border);flex-direction:column;padding:.4rem 0;display:flex}.history li:last-child{border-bottom:none}.user-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;display:flex}.user-row.inactive{opacity:.6}.user-controls{align-items:center;gap:.75rem;display:flex}.user-controls select{width:auto}.checkbox{align-items:center;gap:.35rem;display:flex}.checkbox input{width:auto}.danger-zone{justify-content:flex-start;margin-top:1.5rem}.actions .push-right{margin-left:auto}@media (width>=700px){.history li{flex-direction:row;gap:1rem}.history li>.muted{flex:0 0 9.5rem}}.row{grid-template-columns:1fr 1fr;gap:.75rem;display:grid}.row>*{min-width:0}.order-ref{margin:.1rem 0 .4rem;font-weight:600}.badges{flex-wrap:wrap;justify-content:flex-end;gap:.35rem;display:inline-flex}.badge-loeschung{color:#b42318;background:#fee4e2}.danger-card{border-color:var(--danger)}.danger-card h2{color:var(--danger)}.input-with-button{gap:.5rem;display:flex}.input-with-button input{flex:1}.segmented{grid-template-columns:repeat(2,1fr);gap:.4rem;display:grid}.segmented button{min-height:44px}.segmented button.active{background:var(--primary);border-color:var(--primary);color:var(--primary-text);font-weight:600}@media (width>=700px){.segmented{grid-template-columns:repeat(4,1fr)}}fieldset.plan{border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:.75rem;min-width:0;margin:0;padding:.75rem;display:flex}fieldset.plan legend{padding:0 .3rem;font-weight:600}fieldset.plan label{flex-direction:column;gap:.3rem;font-weight:500;display:flex}fieldset.plain-fieldset{border:0;min-width:0;margin:0;padding:0;display:contents}.type-tag{vertical-align:middle;border-radius:4px;padding:.05rem .4rem;font-size:.7rem;font-weight:600;display:inline-block}.type-qm{color:#2d31a6;background:#e0eaff}.type-montageauftrag{color:#5925dc;background:#ebe9fe}.type-restarbeit{color:#93370d;background:#fef0c7}.type-beanstandung{color:#b42318;background:#fee4e2}.type-reparatur{color:#067647;background:#dcfae6}.plan-line{color:var(--primary)}.site{margin:.25rem 0 .5rem}.filters{flex-wrap:wrap}.filters input[type=search]{flex:12rem}.week-nav{gap:.35rem;display:flex}.week-nav button{min-width:44px}.week-nav .today-btn{font-weight:600}.calendar-page .page-head{flex-wrap:wrap}.cal-scroll{-webkit-overflow-scrolling:touch;margin:0 -1rem 1rem;padding:0 1rem;overflow-x:auto}.cal{table-layout:fixed;border-collapse:separate;border-spacing:0;background:var(--card);border:1px solid var(--border);border-radius:12px;width:100%;min-width:760px;overflow:hidden}.cal th,.cal td{border-bottom:1px solid var(--border);border-left:1px solid var(--border);vertical-align:top;padding:.4rem}.cal thead th{background:var(--bg);text-align:left;font-size:.85rem;font-weight:600}.cal tr:last-child td,.cal tr:last-child th{border-bottom:none}.cal th:first-child{border-left:none}.cal-name{background:var(--card);z-index:1;text-align:left;width:7.5rem;font-size:.9rem;position:sticky;left:0}.cal-name a{color:var(--text);text-decoration:none}.cal td{height:6rem}.cal-corner{width:7.5rem}.cal-today{background:var(--info-bg)}.cal thead th.cal-today{color:var(--primary)}.cal-drop{outline:2px dashed var(--primary);outline-offset:-3px;background:var(--info-bg)}.cal-add{text-align:center;color:var(--muted);border-radius:6px;margin-top:.2rem;font-size:1rem;text-decoration:none;display:block}.cal-add:hover{background:var(--bg);color:var(--primary)}.job{color:var(--text);background:var(--card);border:1px solid var(--border);cursor:pointer;border-left-width:4px;border-radius:6px;margin-bottom:.3rem;padding:.3rem .4rem;font-size:.82rem;text-decoration:none;display:block}.job[draggable=true]{cursor:grab}.job:hover{border-color:var(--primary)}.job-montageauftrag{border-left-color:#7a5af8}.job-restarbeit{border-left-color:#f79009}.job-beanstandung{border-left-color:#d92d20}.job-reparatur{border-left-color:#12b76a}.job-done{opacity:.55}.job-top{justify-content:space-between;align-items:center;gap:.3rem;display:flex}.job-meta{white-space:nowrap;color:var(--muted);font-variant-numeric:tabular-nums;font-weight:600}.job-title{margin-top:.15rem;font-weight:600}.job-sub{color:var(--muted)}.job-place{font-weight:500}.job-termin{margin-top:.15rem;font-size:.75rem;font-weight:600}.job-termin-angemeldet{color:#93370d}.job-termin-bestaetigt{color:#05603a}.unplanned-list{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.5rem;display:grid}.agenda-day h2{align-items:center;gap:.5rem;display:flex}.agenda-today{border-color:var(--primary)}.today-tag{background:var(--primary);color:var(--primary-text);border-radius:999px;padding:.1rem .5rem;font-size:.75rem}.agenda-jobs{flex-direction:column;gap:.4rem;display:flex}.agenda-jobs .job{margin:0;padding:.6rem .7rem;font-size:.95rem}.content.wide{max-width:1240px}.content.full{max-width:none}@media (width>=900px){.calendar-layout{grid-template-columns:minmax(0,1fr) 280px}}.segmented.two{grid-template-columns:repeat(2,1fr)}.segmented.three{grid-template-columns:repeat(3,1fr)}@media (width>=700px){.segmented.two{grid-template-columns:repeat(2,minmax(0,12rem))}.segmented.three{grid-template-columns:repeat(3,minmax(0,10rem))}}.area-filter{margin-bottom:.75rem}.area-tag{vertical-align:middle;border-radius:4px;padding:.05rem .4rem;font-size:.7rem;font-weight:700;display:inline-block}.area-kundendienst{color:#175cd3;background:#d1e9ff}.area-montage{color:#5925dc;background:#ebe9fe}.segmented button.active.area-btn-kundendienst{background:#175cd3;border-color:#175cd3}.segmented button.active.area-btn-montage{background:#5925dc;border-color:#5925dc}.job-area-kundendienst{background:#f5faff}.job-area-montage{background:#f8f7ff}@media (prefers-color-scheme:dark){.job-area-kundendienst{background:#16243a}.job-area-montage{background:#221d3a}}.job-tags{flex-wrap:wrap;gap:.2rem;display:inline-flex}.signature-pad{position:relative}.signature-pad canvas{border:1px solid var(--border);touch-action:none;background:#fff;border-radius:8px;width:100%;height:200px;display:block}.signature-line{color:#98a2b3;pointer-events:none;border-top:1px solid #98a2b3;padding-top:.15rem;font-size:.7rem;position:absolute;top:150px;left:1rem;right:1rem}.signature-pad .link{margin-top:.3rem}.signature-img{border:1px solid var(--border);background:#fff;border-radius:8px;width:360px;max-width:100%;display:block}.signature-actions{align-items:center;gap:.75rem;display:flex}.signature-actions .signature-remove{margin-left:auto}.positions-editor{flex-direction:column;align-items:stretch;gap:.4rem;display:flex}.positions-editor .link{align-self:flex-start}.position-row{grid-template-columns:4.5rem 1fr 44px;gap:.4rem;display:grid}.pos-remove{color:var(--muted);padding:0;font-size:1.2rem}.position-list{margin:0 0 .5rem;padding:0;list-style:none}.position-list li{border-bottom:1px solid var(--border)}.position-list li:last-child{border-bottom:none}.position-item{flex-direction:column;gap:.3rem;display:flex}.position-item+.position-item{border-top:1px dashed var(--border);padding-top:.4rem}.position-photos,.positions-editor .position-photos{padding:0}.position-photos .thumbs{grid-template-columns:repeat(auto-fill,minmax(64px,1fr));gap:.4rem;margin-bottom:.3rem}.position-photos .thumb-add span{font-size:.8rem}.add-position-photo{cursor:pointer;display:inline-block}fieldset.plan input,fieldset.plan select{width:100%;min-width:0}.position-row{align-items:start}.position-row .pos-desc{resize:vertical;field-sizing:content;min-height:2.75rem}.position-list li{flex-direction:column;gap:.45rem;padding:.6rem 0;display:flex}.position-state{grid-template-columns:1fr 1fr;gap:.4rem;display:grid}.position-state button{min-height:44px;font-weight:600}.position-state button.active.state-ok{color:#166534;background:#dcfce7;border-color:#16a34a}.position-state button.active.state-no{color:#991b1b;background:#fee2e2;border-color:#dc2626}.position-result{font-size:.9rem;font-weight:600}.position-result.state-ok{color:#166534}.position-result.state-no{color:#991b1b}.position-reason{background:#fef2f2;border-left:3px solid #dc2626;border-radius:4px;margin:0;padding:.4rem .6rem}.position-list li.pos-erledigt .position-text{color:var(--muted)}@media (prefers-color-scheme:dark){.position-state button.active.state-ok{color:#86efac;background:#14361f;border-color:#22c55e}.position-state button.active.state-no{color:#fca5a5;background:#3a1d1b;border-color:#f97066}.position-result.state-ok{color:#86efac}.position-result.state-no{color:#fca5a5}.position-reason{background:#3a1d1b;border-left-color:#f97066}}.form label.checkbox-row,label.checkbox-row{flex-direction:row;align-items:center;gap:.6rem;min-height:44px;font-weight:500}.checkbox-row input{flex:none;width:22px;height:22px}.mail-ok{color:#166534;margin:.2rem 0}.mail-error{color:var(--danger,#b42318);margin:.2rem 0}@media (prefers-color-scheme:dark){.mail-ok{color:#86efac}}.app-version{text-align:center;color:var(--muted);padding:1rem 0 1.5rem;font-size:.75rem}.cal-group th{text-align:left;text-transform:uppercase;letter-spacing:.03em;background:var(--bg);padding:.35rem .5rem;font-size:.8rem;position:sticky;left:0}.cal-team-montage{border-left:4px solid #7a5af8!important}.cal-team-kundendienst{border-left:4px solid #2e90fa!important}.crew{flex-wrap:wrap;gap:.2rem;margin-bottom:.3rem;display:flex}.crew-chip{background:var(--bg);border:1px solid var(--border);border-radius:999px;align-items:center;gap:.1rem;padding:0 .15rem 0 .45rem;font-size:.75rem;display:inline-flex}.crew-chip a{color:var(--text);font-weight:600;text-decoration:none}.crew-chip button{min-height:0;color:var(--muted);cursor:pointer;background:0 0;border:none;padding:0 .25rem;font-size:.9rem}.crew-add{width:auto;max-width:100%;height:auto;min-height:0;color:var(--muted);border-style:dashed;padding:.1rem .3rem;font-size:.75rem}.crew-missing{color:var(--danger,#b42318);font-size:.72rem}.installer-links{flex-wrap:wrap;gap:.5rem 1rem;display:flex}.crew-line{margin:-.2rem 0 .6rem;font-size:.9rem}.calendar-layout{flex-direction:column;gap:1rem;display:flex}.calendar-layout .unplanned{margin:0}@media (width>=1200px){.calendar-layout{grid-template-columns:minmax(0,1fr) 260px;align-items:start;display:grid}.calendar-layout .unplanned{grid-area:1/2;max-height:calc(100vh - 6rem);position:sticky;top:4.5rem;overflow-y:auto}.calendar-layout .unplanned-list{flex-direction:column;display:flex}.calendar-layout .cal-scroll{grid-area:1/1;margin:0;padding:0}}.crew-lead{background:#fffaeb;border-color:#f79009}.crew-star{color:#f79009;font-size:.85rem;padding:0 .1rem 0 0!important}button.crew-star{color:var(--muted)}button.crew-star:hover{color:#f79009}@media (prefers-color-scheme:dark){.crew-lead{background:#3a2a10}}.lead-tag{color:#b54708;margin-left:.5rem;font-size:.8rem;font-weight:600;display:inline-block}@media (prefers-color-scheme:dark){.lead-tag{color:#fdb022}}.appointment-line{margin:.25rem 0}.appointment-warn{color:#93370d}.home-layout{flex-direction:column;gap:1rem;display:flex}.urgent-col h2{margin-top:0}.urgent-col.has-urgent{background:#fef3f2;border:2px solid #d92d20}.urgent-col.has-urgent h2{color:#b42318}.urgent-group+.urgent-group{margin-top:1rem}.urgent-empty h3{color:var(--muted)!important}.urgent-group h3{color:#b42318;margin:0 0 .2rem;font-size:.95rem}.urgent-group p{margin:0 0 .5rem}.urgent-list{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.urgent-item{color:inherit;background:#fff;border:1px solid #fecdca;border-radius:8px;flex-direction:column;gap:.15rem;padding:.6rem;text-decoration:none;display:flex}.urgent-item:hover{border-color:#d92d20}.urgent-dates{color:#b42318}@media (width>=1100px){.home-layout{grid-template-columns:minmax(0,1fr) 320px;align-items:start;display:grid}.home-layout .home-main{grid-area:1/1}.home-layout .urgent-col{grid-area:1/2;max-height:calc(100vh - 6rem);margin:0;position:sticky;top:4.5rem;overflow-y:auto}}.appointment-history-title{margin:1rem 0 .3rem;font-size:.95rem}.appointment-ev-termin_bestaetigt strong{color:#05603a}.appointment-ev-termin_zurueckgesetzt strong{color:#b42318}.billing-list{margin:0;padding:0;list-style:none}.billing-list li{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:.4rem .75rem;padding:.6rem 0;display:flex}.billing-list .billing-text{flex:14rem;align-self:center;min-width:0}.billing-inputs{flex:0 auto;align-items:flex-end;gap:.5rem;display:flex}.billing-inputs label{color:var(--muted);flex-direction:column;gap:.15rem;font-size:.75rem;display:flex}.billing-inputs input{text-align:right;width:4.5rem}.billing-inputs input[list]{text-align:left;width:5.5rem}.billing-inputs input.billing-price{width:6.5rem}.billing-inputs .billing-amount{text-align:right;min-width:5.5rem;padding-bottom:.55rem}.billing-readonly{flex-direction:column;align-self:center;align-items:flex-end;gap:.1rem;display:flex}.billing-amount{font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:600}.billing-total{justify-content:space-between;padding-top:.6rem;font-size:1.05rem;font-weight:700;display:flex}@media (width<=600px){.billing-inputs{flex-wrap:wrap;width:100%}.billing-inputs label{flex:1 1 0;min-width:0}.billing-inputs input,.billing-inputs input[list],.billing-inputs input.billing-price{width:100%}.billing-inputs .billing-amount{flex-basis:100%;padding-bottom:0}}.pos-desc-wrap{flex-direction:column;gap:.2rem;min-width:0;display:flex}.pos-desc-wrap .pos-desc{width:100%}.pos-article{color:#175cd3;flex-wrap:wrap;align-items:center;gap:.4rem;font-size:.8rem;display:flex}.positions-add{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.positions-add select{width:auto;max-width:100%}.article-list{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.article-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;display:flex}.article-row.inactive{opacity:.55}.article-price{font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:600}.positions-editor .pos-no{flex-direction:column;align-items:center;gap:.2rem;padding-top:.35rem;display:flex}.pos-no-label{white-space:nowrap;font-size:.9rem;font-weight:700}.pos-move{gap:.2rem;display:flex}.pos-move button{width:1.9rem;min-width:0;height:1.9rem;padding:0;font-size:.9rem}.time-controls{flex-direction:column;gap:.5rem;margin-bottom:.75rem;display:flex}.time-buttons{grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));gap:.5rem;display:grid}.time-buttons button{min-height:48px;font-weight:600}.time-running{color:#067647;margin:0;font-weight:600}.time-list{margin:0;padding:0;list-style:none}.time-list li{border-bottom:1px solid var(--border);grid-template-columns:4.5rem 1fr auto;align-items:center;gap:.15rem .6rem;padding:.45rem 0;display:grid}.time-list li.time-edit{flex-direction:column;display:flex}.time-kind{text-align:center;border-radius:6px;padding:.1rem .4rem;font-size:.75rem;font-weight:700}.time-kind-fahrt{color:#175cd3;background:#eff8ff}.time-kind-arbeit{color:#067647;background:#ecfdf3}.time-who{font-weight:600}.time-dur{font-variant-numeric:tabular-nums;text-align:right;font-weight:600}.time-span{grid-column:2/3}.time-actions{grid-column:2/4;gap:.75rem;display:flex}.time-totals{font-variant-numeric:tabular-nums;flex-wrap:wrap;justify-content:flex-end;gap:1rem;padding-top:.6rem;display:flex}button.link.danger{color:#b42318}.clock-bar{border:1px solid var(--border);border-radius:12px;flex-wrap:wrap;justify-content:center;align-items:center;gap:.5rem 1rem;margin-bottom:1rem;padding:.75rem 1rem;font-weight:600;display:flex}.clock-bar button{min-height:40px}.clock-on{color:#067647;background:#ecfdf3}.clock-off{color:#93370d;background:#fffaeb}.timesheet-days{flex-direction:column;gap:.75rem;display:flex}.timesheet-week{padding:.25rem .75rem}.ts-day{border-bottom:1px solid var(--border);flex-direction:column;gap:.2rem;padding:.5rem 0;display:flex}.ts-day.today .ts-day-head strong{color:#1d4ed8}.ts-day-head{font-variant-numeric:tabular-nums;justify-content:space-between;display:flex}.ts-work{font-weight:700}.ts-session{font-variant-numeric:tabular-nums;justify-content:space-between;gap:.5rem;display:flex}.ts-meta{flex-wrap:wrap;gap:.25rem .9rem;display:flex}.ts-week-sum{justify-content:space-between;padding:.55rem 0;font-weight:700;display:flex}.ts-month-sum{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.25rem 1rem;margin-top:.75rem;font-size:1.05rem;display:flex}.time-summary{font-variant-numeric:tabular-nums;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.5rem 1rem;margin:0 0 .75rem;display:grid}.time-summary dt{color:var(--muted,#667085);font-size:.8rem}.time-summary dd{margin:0;font-weight:600}.distance{flex-wrap:wrap;align-items:baseline;gap:.25rem .75rem;display:flex}.billing-address{border:1px solid var(--border);border-radius:10px;gap:.75rem;margin:0;padding:.5rem .75rem .75rem;display:grid}.billing-address legend{padding:0 .25rem;font-weight:600}.billing-address .street-row{grid-template-columns:1fr 7rem}.billing-address .zip-row{grid-template-columns:6rem 1fr}.customer-row{grid-template-columns:1fr 9rem}.customer-block{flex-direction:column;align-items:flex-start;gap:.1rem;display:flex}.distance-target{flex-basis:100%}.address-suggest{border:1px solid var(--border);background:var(--card,#fff);border-radius:10px;margin:-.4rem 0 0;padding:.25rem;list-style:none;box-shadow:0 6px 18px #1018281f}.address-suggest button{text-align:left;width:100%;font:inherit;color:inherit;background:0 0;border:0;border-radius:8px;min-height:0;padding:.55rem .6rem;display:block}.address-suggest button:hover{background:var(--bg)}.vacation-sum{font-variant-numeric:tabular-nums;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:.5rem 1rem;margin-bottom:.75rem;display:grid}.vacation-sum>div{flex-direction:column;display:flex}.vacation-list{margin:.75rem 0 0;padding:0;list-style:none}.vacation-list li{border-top:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;padding:.6rem 0;display:flex}.vacation-actions{flex-wrap:wrap;gap:.5rem;display:flex}.vacation-form{margin-top:.5rem}.badge-urlaub-beantragt{color:#93370d;background:#fef0c7}.badge-urlaub-genehmigt{color:#05603a;background:#d1fadf}.badge-urlaub-abgelehnt{color:#b42318;background:#fee4e2}.badge-urlaub-storniert{color:#475467;background:#f2f4f7}.ts-vacation{color:#05603a;font-weight:600}.chain-list{margin:0 0 .75rem;padding:0;list-style:none}.chain-list li{border-bottom:1px solid var(--border);padding:.35rem 0}.chain-list li:last-child{border-bottom:none}.chain-open{background:var(--highlight-bg,#ffc4001f);border-radius:8px;margin-bottom:.75rem;padding:.5rem .75rem}.chain-open p{margin:0 0 .25rem}.chain-open ul{margin:0;padding-left:1.2rem}.cal-transposed th.cal-name{width:7.5rem}.cal-transposed td{height:auto;min-height:5rem}.cal-transposed thead th[class*=cal-team-]{border-top:4px solid;border-left-width:1px!important}.cal-transposed thead th.cal-team-montage{border-top-color:#7a5af8}.cal-transposed thead th.cal-team-kundendienst{border-top-color:#2e90fa}.overtime-head{justify-content:space-between;align-items:baseline;gap:1rem;display:flex}.overtime-head h2{margin:0}.overtime-head strong{font-size:1.4rem}.overtime-plus{color:#067647}.overtime-minus{color:#b42318}.overtime p{margin:.35rem 0 0}.ts-request{background:var(--info-bg);border-radius:6px;justify-content:space-between;gap:.5rem;margin:.2rem 0;padding:.25rem .5rem;display:flex}.ts-request.abgelehnt{color:var(--muted);background:0 0;text-decoration:line-through}.holiday-name{color:#93370d;vertical-align:middle;background:#fef0c7;border-radius:999px;margin-left:.4rem;padding:0 .4rem;font-size:.72rem;font-weight:600;display:inline-block}.cal th .holiday-name{width:fit-content;margin:.15rem 0 0;display:block}.cal td.cal-holiday,.cal th.cal-holiday{background:repeating-linear-gradient(135deg,#0000 0 8px,#f7900912 8px 16px)}.team-overview .table-scroll{overflow-x:auto}.team-overview table{border-collapse:collapse;width:100%;font-size:.9rem}.team-overview th,.team-overview td{text-align:left;border-bottom:1px solid var(--border);white-space:nowrap;padding:.4rem .5rem}.team-overview th{color:var(--muted);font-size:.8rem;font-weight:600}.team-overview tbody tr{cursor:pointer}.team-overview tbody tr:hover,.team-overview tr.selected{background:var(--info-bg)}.viewing-other{background:var(--info-bg);border-radius:10px;flex-wrap:wrap;justify-content:space-between;gap:.5rem;margin-bottom:.75rem;padding:.6rem .9rem;display:flex}.staff-section{border-top:2px solid var(--border);margin-top:2rem;padding-top:1rem}.staff-section>h2{margin:0 0 .75rem}.cost-table{border-collapse:collapse;width:100%;margin-bottom:.5rem}.cost-table td{border-bottom:1px solid var(--border);padding:.35rem .25rem}.cost-table td:last-child{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.cost-total td{border-bottom:none;border-top:2px solid var(--text);font-weight:700}.card-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.5rem;display:flex}.card-head h2{margin:0}.chip-row{flex-wrap:wrap;gap:.4rem;margin-bottom:.75rem;display:flex}.chip{border-radius:999px;gap:.4rem;min-height:36px;padding:.3rem .8rem;font-size:.9rem}.chip.active{background:var(--primary);border-color:var(--primary);color:var(--primary-text)}.chip-count{opacity:.75;font-size:.75rem;font-weight:700}.group-tag{white-space:nowrap;border-radius:999px;padding:.15rem .5rem;font-size:.7rem;font-weight:700;display:inline-block}.group-tag.group-privat{color:#075985;background:#e0f2fe}.group-tag.group-bautraeger{color:#93370d;background:#fef0c7}.group-tag.group-generalunternehmer{color:#b42318;background:#fee4e2}.group-tag.group-architekt{color:#6941c6;background:#f4ebff}.group-tag.group-oeffentlich{color:#067647;background:#dcfae6}.ticket-row.inactive{opacity:.6}.customer-name2{margin:0 0 .4rem}.customer-notes{background:var(--bg);border-radius:8px;padding:.5rem .7rem}.customer-link{margin:0}.new-project{gap:.55rem;display:grid}.contact-line{flex-wrap:wrap;gap:.35rem 1rem;margin:.25rem 0;display:flex}.contact-row{justify-content:space-between;align-items:flex-start;gap:.75rem;flex-direction:row!important}.contact-form{padding:.75rem 0}button.link.danger-link{color:var(--danger)}.follow-ups{border-color:#f79009}.follow-up-row{justify-content:space-between;align-items:center;gap:.75rem;flex-direction:row!important}.follow-up-due{color:var(--danger);font-weight:600}.note-form{border-bottom:1px solid var(--border);margin-bottom:1rem;padding-bottom:1rem}.note-filter{margin:.5rem 0}.note-list{flex-direction:column;gap:.6rem;margin:0;padding:0;list-style:none;display:flex}.note{border:1px solid var(--border);border-left:4px solid var(--muted);border-radius:8px;padding:.6rem .75rem}.note-telefon{border-left-color:#1d4ed8}.note-email{border-left-color:#12b76a}.note-termin{border-left-color:#f79009}.note-brief{border-left-color:#7a5af8}.note-head{flex-wrap:wrap;justify-content:space-between;gap:.25rem .75rem;display:flex}.note-kind{font-size:.85rem;font-weight:700}.note-subject{margin-top:.2rem;font-weight:600}.note-follow{margin-top:.3rem}.customer-ticket{flex-wrap:wrap;align-items:center;gap:.35rem;display:inline-flex}.customer-box{gap:.55rem}.customer-box .cust-name-row{grid-template-columns:7.5rem 1fr}.customer-box .street-row{grid-template-columns:1fr 5rem}.customer-box .cust-place-row{grid-template-columns:5.5rem 1fr 9rem}@media (width<=520px){.customer-box .cust-place-row{grid-template-columns:5.5rem 1fr}.customer-box .cust-place-row>:last-child{grid-column:1/-1}}.customer-summary{justify-content:space-between;align-items:flex-start;gap:.75rem;display:flex}.customer-summary-name{font-weight:600;text-decoration:none}.customer-summary-actions{flex-direction:column;align-items:flex-end;display:flex}.project-group+.project-group{margin-top:.75rem}.project-name{border-bottom:2px solid var(--border);margin:.25rem 0 0;padding-bottom:.25rem;font-size:.95rem}.tel-link{margin-right:1rem}.history.stacked li{flex-direction:column;gap:.1rem}.card-head-actions{flex-wrap:wrap;gap:.5rem;display:flex}.project-head{justify-content:space-between;align-items:baseline;gap:.75rem;display:flex}.project-title{font-weight:700}.project-group{border-top:1px solid var(--border);padding:.6rem 0}.project-group.inactive{opacity:.65}.project-tickets{border-left:3px solid var(--border);flex-direction:column;gap:.45rem;margin:.4rem 0 0;padding:0 0 0 .9rem;list-style:none;display:flex}.project-tickets li{flex-direction:column;gap:.1rem;display:flex}.project-empty,.project-more{margin:.35rem 0 0 .9rem}.window-layout{gap:0 1rem;display:grid}@media (width>=900px){.window-layout{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);align-items:start}}.window-preview{position:sticky;top:4.5rem}.window-drawing{width:100%;max-height:60vh;display:block}.wd-frame{fill:var(--card);stroke:var(--text);stroke-width:6px}.wd-sash{fill:var(--card);stroke:var(--text);stroke-width:4px}.wd-glass{fill:#dbeafe;stroke:var(--text);stroke-width:3px}.wd-field.active .wd-glass{fill:#bfdbfe;stroke:var(--primary);stroke-width:8px}.wd-symbol{fill:none;stroke:var(--text);stroke-width:4px}.wd-handle{fill:var(--text)}.wd-label{fill:var(--muted);font-weight:700}.wd-dim line{stroke:var(--muted);stroke-width:3px}.wd-dim text{fill:var(--text)}.window-spec{border-collapse:collapse;width:100%;margin-top:.6rem;font-size:.9rem}.window-spec th{text-align:left;color:var(--muted);vertical-align:top;white-space:nowrap;padding:.25rem .75rem .25rem 0;font-weight:500}.window-spec td{padding:.25rem 0}.window-row{grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:.6rem;display:grid}.window-row input[readonly]{color:var(--muted)}.window-list{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:.5rem;margin:0 0 .5rem;padding:0;list-style:none;display:grid}.window-item{text-align:left;justify-content:flex-start;gap:.75rem;width:100%}.window-item.active{border-color:var(--primary)}.window-item .window-drawing{flex:0 0 64px;width:64px;height:64px}.print-only{display:none}@media (prefers-color-scheme:dark){.wd-glass{fill:#1e3a5f}.wd-field.active .wd-glass{fill:#24497a}}@media print{.topbar,.app-version,.no-print{display:none!important}.print-only{display:block}body,:root{color:#000;background:#fff}.window-layout{display:block}.window-preview{border:none;padding:0;position:static}.window-drawing{max-height:70vh}.wd-glass,.wd-field.active .wd-glass{fill:#fff;stroke:#000;stroke-width:3px}}.view-switch{margin-bottom:.75rem}@media (width>=700px){.segmented.three.view-switch{grid-template-columns:repeat(3,minmax(0,13rem))}}.cal-weeks{min-width:52rem}.cal-weeks td{min-width:8rem}.week-count{color:var(--muted);margin:.1rem 0 .3rem;font-size:.75rem;font-weight:600}.job-week{color:#b54708;font-size:.75rem;font-weight:600}@media (prefers-color-scheme:dark){.job-week{color:#fdb022}}.week-range{color:var(--muted);font-size:.72rem;font-weight:500;display:block}.cal-weeks .job-top{flex-wrap:wrap}.week-stack{flex-direction:column;order:-1;display:flex}.week-stack .card{margin-bottom:.6rem}.week-stack h3{text-transform:none;letter-spacing:0}.week-table{display:none}@media (width>=900px){.week-stack{display:none}.week-table{display:block}}.week-total{color:#5925dc;font-size:.75rem;font-weight:700;display:block}@media (prefers-color-scheme:dark){.week-total{color:#bdb4fe}}.capacity{color:#067647;margin-top:.3rem;font-size:.75rem;font-weight:700;display:block}.capacity.over{color:var(--danger)}.capacity-bar{background:var(--border);border-radius:3px;height:6px;margin-top:.15rem;display:block;overflow:hidden}.capacity-bar span{background:#12b76a;height:100%;display:block}.capacity.over .capacity-bar span{background:var(--danger)}@media (prefers-color-scheme:dark){.capacity{color:#75e0a7}}.offline-bar{position:relative}.offline-line{justify-content:space-between;align-items:flex-start;gap:.75rem;padding:.45rem 1rem;font-size:.9rem;display:flex}.offline-line ul{margin:.2rem 0;padding-left:1.2rem}.offline-off{color:#fff;background:#344054}.offline-wait{color:#93370d;background:#fef0c7}.offline-failed{background:var(--error-bg);color:var(--danger)}.offline-line button.link{color:inherit;white-space:nowrap;text-decoration:underline}.test-banner{z-index:1000;color:#1d2939;text-align:center;background:#fdb022;padding:.25rem 1rem;font-size:.85rem;font-weight:700;position:sticky;top:0}.terminal{color:#fff;-webkit-user-select:none;user-select:none;background:#10213f;flex-direction:column;display:flex;position:fixed;inset:0;overflow:auto}.terminal-head{opacity:.8;justify-content:space-between;padding:.75rem 1rem;font-size:.95rem;display:flex}.terminal-offline{opacity:1;background:#b45309;border-radius:999px;padding:.1rem .6rem}.terminal-center{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:.5rem;padding:1rem;display:flex}.terminal-center h1{margin:0;font-size:clamp(1.8rem,7vw,3rem)}.terminal-center p{margin:0;font-size:1.15rem}.terminal-hint a{color:#93c5fd}.terminal-clock{font-variant-numeric:tabular-nums;font-size:clamp(4rem,22vw,9rem);font-weight:700;line-height:1}.terminal-date{opacity:.8;font-size:1.2rem}.terminal-prompt{font-weight:600;margin-top:2rem!important;font-size:1.5rem!important}.terminal-pin-button{color:#fff;background:0 0;border-color:#fff6;margin-top:2rem}.terminal-shown{animation:.15s ease-out terminal-in}.terminal-kommen{background:#15803d}.terminal-gehen{background:#1d4ed8}.terminal-gespeichert{background:#0f766e}.terminal-fehler{background:#b91c1c}.terminal-icon{font-size:4.5rem;font-weight:700;line-height:1}@keyframes terminal-in{0%{opacity:0;transform:scale(.97)}to{opacity:1;transform:none}}.terminal-pick{flex-direction:column;flex:1;align-items:center;gap:1rem;padding:1rem;display:flex}.terminal-pick h2{margin:0}.terminal-names{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.6rem;width:100%;max-width:640px;display:grid}.terminal-names button{min-height:56px;font-size:1.05rem}.terminal-pin{letter-spacing:.4rem;min-height:2.5rem;font-size:2rem}.terminal-keys{grid-template-columns:repeat(3,1fr);gap:.6rem;width:100%;max-width:320px;display:grid}.terminal-keys button{min-height:64px;font-size:1.5rem}.terminal-back{color:#fff;background:0 0;border-color:#fff6}.terminal-foot{flex-direction:column;align-items:center;gap:.2rem;padding:.5rem 1rem 1rem;font-size:.9rem;display:flex}.terminal-foot .link{color:#93c5fd}.terminal-sync-error{color:#fecaca}.terminal-creds{border:1px solid var(--border);border-radius:8px;gap:.6rem;padding:.5rem .75rem .75rem;display:grid}.terminal-creds legend{padding:0 .3rem;font-weight:600}.terminal-list{margin:0 0 .75rem;padding:0;list-style:none}.terminal-list li{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:.75rem;padding:.5rem 0;display:flex}.import-map{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.6rem;display:grid}.import-table{border-collapse:collapse;width:100%;font-size:.9rem}.import-table th,.import-table td{text-align:left;border-bottom:1px solid var(--border);vertical-align:top;padding:.35rem .5rem}.import-table th.num,.import-table td.num{text-align:right}.import-table tr.import-error td{color:var(--danger)}.import-table tr.clickable{cursor:pointer}.import-table tr.clickable:hover td{background:var(--info-bg)}.emp-tabs{flex-wrap:wrap;gap:.3rem;margin-bottom:.75rem;display:flex}.emp-tabs button{border-radius:6px}.emp-tabs button.active{background:var(--text);color:var(--card);border-color:var(--text);font-weight:600}.emp-section+.emp-section{margin-top:1rem}.emp-heading{text-align:center;text-transform:none;letter-spacing:0;color:var(--text);border-bottom:3px dotted var(--text);margin:1.2rem 0 .75rem;padding-bottom:.3rem;font-size:1rem}.emp-grid{grid-template-columns:repeat(auto-fill,minmax(170px,1fr));align-items:end;gap:.6rem .9rem;display:grid}.emp-grid label{flex-direction:column;gap:.2rem;min-width:0;font-size:.85rem;display:flex}.emp-grid label.wide{grid-column:span 2}.emp-grid input[readonly]{background:var(--bg)}.choice-custom{align-items:center;gap:.4rem;display:flex}.choice-custom input{flex:1;min-width:0}.emp-sub{margin-top:.8rem}.emp-sub-title{color:var(--muted);margin-bottom:.25rem;font-size:.85rem}.emp-table{border:1px solid var(--border);border-radius:6px}.emp-edit-row>td{background:var(--info-bg);padding:.6rem!important}.emp-edit-row .card-head-actions{margin-top:.6rem}.emp-savebar{background:var(--card);border:1px solid var(--border);border-radius:8px;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.5rem;margin-top:.75rem;padding:.5rem .75rem;display:flex;position:sticky;bottom:.5rem;box-shadow:0 2px 10px #0000001f}.emp-savebar span{margin-right:auto;font-weight:600}.wage-top{align-items:end;margin-bottom:.5rem}.wage-head{color:#1a2230;text-align:center;text-transform:none;letter-spacing:0;background:#fdb44b;border-radius:2px;margin:1rem 0 .5rem;padding:.35rem;font-size:.95rem}.wage-items{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:.4rem 1rem;display:grid}.wage-or{border-bottom:1px solid var(--border);margin:.6rem 0 .3rem;padding-bottom:.3rem;font-size:.85rem;font-weight:600}@media (width<=600px){.emp-grid label.wide{grid-column:auto}}.wage-items .checkbox-row{align-items:flex-start;gap:.5rem;display:flex}.dupe-group+.dupe-group{border-top:1px solid var(--border);margin-top:1rem;padding-top:.75rem}.emp-history>ul{margin:0;padding:0;list-style:none}.emp-history>ul>li{border-bottom:1px solid var(--border);padding:.5rem 0}.emp-history-changes{overflow-wrap:anywhere;margin:.2rem 0 0;padding-left:1.1rem}.emp-missing{border:1px solid var(--danger);border-radius:8px;margin:0 0 .75rem;padding:.6rem .8rem}.key-figures{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.75rem;margin-bottom:1rem;display:grid}.key-figures .key-figure{margin:0}.key-figure-value{margin:.2rem 0;font-size:1.75rem;font-weight:700}.position-price{flex-wrap:wrap;align-items:flex-end;gap:.5rem;padding-left:4.9rem;display:flex}.position-price label{color:var(--muted);flex-direction:column;gap:.15rem;font-size:.75rem;display:flex}.position-price input{width:5rem}.position-price label:last-of-type input{text-align:right;width:7rem}.position-amount{font-variant-numeric:tabular-nums;white-space:nowrap;padding-bottom:.55rem;font-weight:600}@media (width<=600px){.position-price{padding-left:0}.position-price label{flex:1 1 0;min-width:0}.position-price input,.position-price label:last-of-type input{width:100%}.position-price .position-amount{text-align:right;flex-basis:100%;padding-bottom:0}}
