:root{font-family:Arial,sans-serif;color:#122b3d;background:#edf2f5;--red:#bb2337;--navy:#142e40;--muted:#617687}*{box-sizing:border-box}body{margin:0}header{background:var(--navy);color:white;display:flex;align-items:center;gap:24px;padding:18px 30px;position:sticky;top:0;z-index:2}.brand{font-weight:800;font-size:27px;letter-spacing:-1px}.brand span{display:block;font-size:10px;letter-spacing:3px;margin-top:3px}#connection{margin-left:auto;font-size:13px}main{max-width:1400px;margin:auto;padding:26px}h1{font-size:30px;margin:0 0 8px}h2{font-size:21px;margin:0 0 16px}p{line-height:1.5}.muted{color:var(--muted)}button,input,select,textarea{font:inherit}button{border:0;cursor:pointer;background:var(--navy);color:white;border-radius:9px;padding:14px 18px;min-height:48px}button:hover{filter:brightness(1.15)}button:disabled{opacity:.5;cursor:default}.primary{background:var(--red)}.secondary{background:#dfe7ec;color:var(--navy)}.small{min-height:38px;padding:8px 12px}.grid{display:grid;grid-template-columns:1.4fr 1fr;gap:22px}.card{background:white;border:1px solid #d8e2e8;border-radius:14px;padding:24px;margin-bottom:18px;box-shadow:0 4px 20px #142e4005}.row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.between{justify-content:space-between}.stack{display:grid;gap:12px}.banner{padding:14px 18px;border-radius:10px;background:#fff1d3;color:#725019;margin-bottom:18px;font-size:14px;line-height:1.5}.red{background:#fce8ec;color:#9b1a2c}.green{background:#e1f2e9;color:#1d6840}.pill{background:#edf2f5;border-radius:7px;padding:6px 9px;font-size:12px;display:inline-block}.pill.in_arbeit{background:#deefff;color:#1c598c}.pill.nachweis,.pill.pruefung{background:#ffe3b5;color:#815117}.pill.erledigt{background:#dff1e7;color:#236e49}label{display:grid;gap:7px;font-size:13px;font-weight:bold}input,select,textarea{border:1px solid #c6d4de;border-radius:8px;background:white;padding:13px;min-width:0;width:100%;color:#172f41}textarea{min-height:90px;resize:vertical}input[type=checkbox]{width:20px;height:20px}nav{display:flex;gap:8px;flex-wrap:wrap;margin:20px 0}nav button{background:transparent;color:var(--navy)}nav button.active{background:var(--navy);color:white}.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:24px}.kpi{background:white;border-radius:12px;border:1px solid #d8e2e8;padding:18px}.kpi strong{font-size:32px;display:block;margin-bottom:6px}.kpi span{font-size:13px;color:var(--muted)}table{border-collapse:collapse;width:100%;font-size:14px}th{text-align:left;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.8px}td,th{padding:14px 9px;border-bottom:1px solid #e5ebef;vertical-align:top}.scroll{overflow:auto}.object{padding:15px;border:1px solid #dce5ec;border-radius:9px;margin-bottom:9px;cursor:pointer}.object.selected{border:2px solid var(--red);padding:14px}.object strong{display:block;margin-bottom:5px}.hero{border-left:5px solid var(--red)}.login{max-width:480px;margin:8vh auto}.login h1{margin-top:18px}.login .primary{margin-top:8px}.status{font-size:12px;margin-top:8px}.map{width:100%;height:230px;border-radius:10px;background:#eef4f1;border:1px solid #d4e0da}dialog{border:0;border-radius:14px;width:min(900px,94vw);max-height:92vh;padding:24px;box-shadow:0 15px 80px #0005}dialog::backdrop{background:#132b3bb3}.fields{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:18px}.wide{grid-column:1/-1}.signature{width:100%;height:180px;border:2px dashed #9cabb7;border-radius:10px;touch-action:none;background:white}.photos{display:flex;gap:10px;flex-wrap:wrap}.photos img{height:100px;width:130px;object-fit:cover;border-radius:8px}a{color:#9f2133}#toast{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);background:var(--navy);color:white;padding:16px 22px;border-radius:10px;display:none;z-index:9;max-width:90vw}.check{display:flex;align-items:center;gap:8px;font-weight:normal}.timer{font-size:44px;font-weight:bold;letter-spacing:-2px;margin:16px 0}.warning{color:#a32231}.empty{padding:40px;text-align:center;color:var(--muted)}@media(max-width:800px){main{padding:16px}.grid{grid-template-columns:1fr}header{padding:14px;gap:12px}.fields{grid-template-columns:1fr}.kpis{grid-template-columns:1fr 1fr}.wide{grid-column:auto}h1{font-size:25px}.card{padding:18px}#connection{max-width:150px}}

/* Goldmann Kommunaldienste with the homepage winter-service symbol. */
header{background:#fff;color:#142e40;border-bottom:1px solid #d8e2e8;gap:20px;padding:14px 30px;flex-wrap:wrap}.brand-lockup{display:flex;align-items:center;gap:26px;flex-shrink:0}.goldmann-logo{display:block;width:310px;height:auto;max-width:100%;object-fit:contain}.winter-brand{display:flex;align-items:center;gap:12px;border-left:1px solid #cddbd3;padding-left:24px;color:#10543f;font-weight:800;font-size:17px;letter-spacing:1.2px}.winter-brand svg{width:52px;height:52px;flex-shrink:0}#connection{color:#617687}header #logout{background:#10543f;color:#fff}@media(max-width:700px){header{padding:12px 16px;gap:12px}.brand-lockup{gap:14px;width:100%}.goldmann-logo{width:clamp(175px,49vw,280px)}.winter-brand{padding-left:14px;gap:7px;font-size:12px;letter-spacing:.5px}.winter-brand svg{width:34px;height:34px}#connection{margin-left:0;flex:1}}@media(max-width:380px){.brand-lockup{gap:10px}.goldmann-logo{width:170px}.winter-brand{padding-left:10px;font-size:10px}.winter-brand svg{width:27px;height:27px}}

/* Direct tablet camera inside the evidence form. */
.camera-controls{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:10px 0}.camera-controls [role=status]{flex:1;min-width:220px;font-size:14px;line-height:1.5}.camera-live{border:1px solid #c6d4de;border-radius:12px;background:#edf2f5;padding:12px;margin:10px 0}.camera-live[hidden]{display:none}.camera-live video{display:block;width:100%;max-height:45vh;object-fit:contain;background:#142e40;border-radius:8px;margin-bottom:12px}.camera-live .row button{flex:1}.photos button{display:block;margin-top:5px}

/* Compact driver workspace: current object and queued orders stay visible. */
.driver-mode header{padding:10px 22px;gap:16px}.driver-mode .goldmann-logo{width:220px}.driver-mode .winter-brand{font-size:13px;gap:9px;padding-left:16px}.driver-mode .winter-brand svg{width:36px;height:36px}.driver-mode main{padding:16px 22px}.driver-mode h1{font-size:23px}.driver-heading{margin-bottom:12px}.driver-heading .muted{font-size:12px}.driver-nav{display:none}.driver-setup{padding:14px 18px;margin-bottom:14px}.driver-selects{display:grid;grid-template-columns:1fr 1fr 1.25fr;gap:12px}.driver-selects label{font-size:12px;gap:4px}.driver-selects select{padding:10px;min-height:44px}.driver-actions{margin-top:12px}.driver-actions button{padding:11px 16px}.driver-actions #gps{margin-left:auto;font-size:13px}.setup-warning{font-size:13px;line-height:1.5;padding:8px 12px;background:#fff1d3;border-radius:8px;margin-top:10px}.gps-note{font-size:12px;line-height:1.4;margin:8px 0 0;color:#617687}.driver-workspace{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:14px;align-items:start}.driver-current,.driver-upcoming{padding:18px;margin-bottom:0}.eyebrow{font-size:12px;font-weight:bold;letter-spacing:.6px;color:#617687}.driver-current h2{font-size:25px;margin:12px 0 5px}.current-address{margin:0 0 10px;font-size:16px}.compact-time{font-size:22px;font-weight:bold;margin:12px 0}.compact-time span{display:block;font-size:12px;font-weight:normal;color:#617687;margin-top:4px}.object-instructions{border-top:1px solid #e5ebef;padding-top:7px;margin-top:12px;font-size:14px}.object-instructions p{margin:5px 0}.full-width{width:100%;margin-top:12px}.proof-warning{margin:10px 0;font-size:13px;padding:10px}.driver-upcoming h2{margin:0;font-size:20px}.route-item{display:flex;gap:10px;align-items:center;border:1px solid #d8e2e8;border-radius:9px;padding:11px;margin-top:10px;cursor:pointer}.route-item.selected{border-color:#bb2337}.route-number{display:grid;place-items:center;width:29px;height:29px;flex-shrink:0;border-radius:50%;background:#edf2f5;font-size:13px;font-weight:bold}.route-item>div{min-width:0;flex:1}.route-item strong{display:block;font-size:15px}.route-address{display:block;font-size:12px;line-height:1.4;color:#617687;margin-top:4px}.route-item>.pill{flex-shrink:0}.driver-details{margin-top:12px;border-top:1px solid #e5ebef;padding-top:10px;font-size:13px}.driver-details summary{cursor:pointer;font-weight:bold;min-height:36px;padding:7px 0}.driver-details .card{padding:12px;margin:8px 0 0;box-shadow:none}.driver-details .card h2{font-size:16px}.upcoming-empty{font-size:14px;margin:14px 0}.driver-mode dialog{padding:18px}.driver-mode dialog .fields{gap:12px}.driver-mode dialog textarea{min-height:60px}.driver-mode dialog .signature{height:130px}.driver-mode dialog label{font-size:12px}.driver-mode dialog input,.driver-mode dialog select,.driver-mode dialog textarea{padding:10px}@media(max-width:700px){.driver-workspace{grid-template-columns:1fr}.driver-selects{grid-template-columns:1fr 1fr}.driver-selects label:last-child{grid-column:1/-1}.driver-mode main{padding:12px}.driver-mode header{padding:9px 12px}.driver-mode .brand-lockup{width:auto}.driver-mode .goldmann-logo{width:170px}.driver-mode .winter-brand{font-size:10px;padding-left:10px}.driver-mode .winter-brand svg{width:28px;height:28px}.driver-mode #connection{font-size:11px}.driver-mode .driver-heading{gap:6px}.driver-mode #gps{margin-left:0}.route-item>.pill{font-size:11px}}

/* Locally served Leaflet; only visible street tiles come from the map provider. */
.street-map{height:270px;width:100%;background:#edf2f5;border:1px solid #c6d4de;border-radius:9px;z-index:0}.map-card h2{font-size:18px}.map-status{font-size:12px;line-height:1.4;margin:8px 0}.map-external{display:block;font-size:12px;margin-top:9px}.street-map .leaflet-control-zoom a{min-width:40px;min-height:40px;line-height:40px;color:#142e40}.street-map .leaflet-control-attribution{font-size:10px;line-height:1.4;max-width:90%;background:#fffffff0}.street-map .leaflet-control-attribution a{color:#1b526b}.street-map .leaflet-tooltip,.street-map .leaflet-popup-content{font:13px Arial,sans-serif}.driver-details .map-card{border:0;padding:0;margin:5px 0 0}.driver-details .map-card h2{display:none}@media(max-width:700px){.street-map{height:245px}}

.journal-document{margin:10px 0;padding:10px;border:1px solid #d4dedd;border-radius:8px}.journal-document summary{cursor:pointer;font-weight:600}.journal-preview{display:block;width:100%;height:60vh;min-height:320px;border:0;margin:12px 0;object-fit:contain;background:#f1f4f3}

.delivery-line{display:grid;gap:10px;padding:12px;margin:12px 0;background:#f1f5f3;border-radius:8px}.delivery-line label{min-width:0}.delivery-line select{max-width:100%}

[hidden]{display:none!important}

.office-message-popup{max-width:620px;width:calc(100% - 40px);padding:28px;border:0;border-radius:16px}.office-message-popup::backdrop{background:#132f3dcc}.message-body{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.6}.office-message-row{border-top:1px solid #d6e0db;margin-top:22px;padding-top:18px}.office-message-row h3{margin:0}.message-recipients p{margin:5px 0}.message-tick{color:#10543f;font-weight:700}.message-confirmed{background:#e0f1e6;color:#10543f}#office-message-form textarea{min-height:100px}.office-message-popup h2{margin:10px 0 14px}

/* Phone ergonomics: content must fit, rather than hide horizontal overflow. */
header,main,#view,.card,.scroll,.grid>*,.fields>*,.driver-selects>*{min-width:0}
.card,.banner,.pill,.object,.route-item,dialog{overflow-wrap:anywhere}
button{white-space:normal;overflow-wrap:anywhere;max-width:100%}
.grid{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr)}
.fields{grid-template-columns:repeat(2,minmax(0,1fr))}
.driver-selects{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1.25fr)}
.kpis{grid-template-columns:repeat(4,minmax(0,1fr))}
.scroll{max-width:100%}
@media(max-width:800px){.grid,.fields{grid-template-columns:minmax(0,1fr)}.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){
  header,.driver-mode header{position:static;padding:10px 12px;gap:8px}
  .brand-lockup,.driver-mode .brand-lockup{display:grid;grid-template-columns:minmax(0,1fr) auto;width:100%;min-width:0;gap:12px;flex-shrink:1}
  .goldmann-logo,.driver-mode .goldmann-logo{width:100%;max-width:220px;min-width:0}
  .winter-brand,.driver-mode .winter-brand{padding-left:10px;gap:6px;font-size:10px;letter-spacing:.4px}
  .winter-brand svg,.driver-mode .winter-brand svg{width:27px;height:27px}
  #connection,.driver-mode #connection{flex:1;max-width:none;min-width:0;font-size:11px;margin:0}
  header #logout{min-height:44px;padding:10px 12px;font-size:13px}
  main,.driver-mode main{padding:12px}
  .card,.driver-current,.driver-upcoming,.driver-setup{padding:14px;border-radius:11px}
  h1,.driver-mode h1{font-size:23px}h2{font-size:19px}
  .driver-current h2{font-size:22px}
  .driver-heading{align-items:flex-start;gap:8px}
  .driver-heading>div{min-width:0;flex:1 1 100%}
  nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin:14px 0}
  nav button{padding:10px 8px;font-size:13px;min-height:44px;border:1px solid #d8e2e8;background:white;text-align:left}
  .driver-workspace,.driver-selects{grid-template-columns:minmax(0,1fr)}
  .driver-selects label:last-child{grid-column:auto}
  input,select,textarea,.driver-mode dialog input,.driver-mode dialog select,.driver-mode dialog textarea{font-size:16px;max-width:100%;min-height:44px}
  .row>*,.camera-controls>*{min-width:0}
  .driver-actions button,.camera-controls>button{flex:1 1 100%}
  .camera-controls [role=status]{min-width:0;flex-basis:100%}
  .route-item{flex-wrap:wrap}.route-item>div{flex-basis:calc(100% - 45px)}
  .route-item>.pill{margin-left:39px;max-width:calc(100% - 39px)}
  dialog,.driver-mode dialog{width:calc(100% - 20px);max-width:calc(100% - 20px);padding:14px;max-height:90dvh}
  .office-message-popup{padding:18px}
  .mobile-table,.mobile-table tbody,.mobile-table tr,.mobile-table td{display:block;width:100%;min-width:0}
  .mobile-table thead{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
  .mobile-table tbody tr{padding:12px;margin:12px 0;border:1px solid #d8e2e8;border-radius:10px;background:#fff}
  .mobile-table td{padding:7px 0;border:0;font-size:14px}
  .mobile-table td[data-label]::before{content:attr(data-label);display:block;color:var(--muted);font-size:11px;font-weight:bold;margin-bottom:4px}
  .mobile-table td:first-child{font-weight:bold;font-size:16px}
  .mobile-table td button{min-height:44px;margin:4px 0}
  .empty{padding:24px 12px}
}

.proof-summary{margin:16px 0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 18px}
.proof-summary>div{min-width:0;border-bottom:1px solid #e5ebef;padding:8px 0}
.proof-summary dt{font-size:12px;color:var(--muted);font-weight:bold}
.proof-summary dd{margin:5px 0 0;white-space:pre-wrap;overflow-wrap:anywhere}
.proof-signature-preview{display:block;max-width:100%;width:400px;max-height:150px;object-fit:contain;border:1px solid #d8e2e8;border-radius:8px;background:white;margin:14px 0}
.proof-confirm{margin:20px 0;line-height:1.5}
.proof-confirm input{flex-shrink:0}
@media(max-width:600px){.proof-summary{grid-template-columns:minmax(0,1fr)}.proof-review .row button{width:100%}}
