:root {
  --bg: #f3f6fa;
  --panel: #ffffff;
  --ink: #132033;
  --muted: #6b778c;
  --border: #dde4ed;
  --primary: #1457d9;
  --primary-dark: #0c43ad;
  --green: #1f9d66;
  --amber: #d79016;
  --red: #db3b4b;
  --slate: #78869a;
  --shadow: 0 16px 50px rgba(29, 48, 76, .10);
  --radius: 18px;
}
* { box-sizing: border-box; }
html, body { margin: 0; min-height: 100%; font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; color: var(--ink); background: var(--bg); }
button, input, select, textarea { font: inherit; }
button, select { cursor: pointer; }
.topbar { min-height: 76px; padding: 14px 22px; background: #0f172a; color: white; display:flex; align-items:center; justify-content:space-between; gap:16px; position:sticky; top:0; z-index:1200; }
.brand { display:flex; align-items:center; gap:12px; }
.brandmark { width:42px; height:42px; border-radius:13px; background:linear-gradient(145deg,#3f7fff,#1e4fc1); display:grid; place-items:center; font-weight:800; font-size:21px; box-shadow: inset 0 0 0 1px rgba(255,255,255,.18); }
.brand h1 { font-size:21px; margin:0; letter-spacing:-.02em; }
.brand p { margin:2px 0 0; color:#aeb9ca; font-size:12px; }
.top-actions { display:flex; gap:10px; align-items:center; }
.btn { border:0; border-radius:11px; padding:10px 14px; font-weight:700; text-decoration:none; display:inline-flex; align-items:center; justify-content:center; white-space:nowrap; transition:.15s ease; }
.btn:hover { transform:translateY(-1px); }
.btn-primary { color:white; background:var(--primary); box-shadow:0 7px 18px rgba(20,87,217,.22); }
.btn-primary:hover { background:var(--primary-dark); }
.btn-secondary { color:var(--ink); background:#fff; border:1px solid var(--border); }
.topbar .btn-secondary { background:#1e293b; color:#e9eef7; border-color:#364257; }
.btn-danger { background:#fff2f3; color:#b52435; border:1px solid #ffd8dd; }
.btn-sm { padding:8px 10px; font-size:12px; }
.stats { display:grid; grid-template-columns:repeat(7,minmax(115px,1fr)); gap:10px; padding:14px 18px 8px; }
.stat { border:1px solid var(--border); background:var(--panel); border-radius:14px; padding:12px 15px; text-align:left; box-shadow:0 4px 18px rgba(42,55,75,.04); }
.stat span { font-size:24px; line-height:1; font-weight:800; letter-spacing:-.04em; display:block; margin-bottom:6px; }
.stat small { font-size:12px; color:var(--muted); font-weight:700; }
.stat-red span { color:var(--red); } .stat-amber span { color:var(--amber); } .stat-green span { color:var(--green); } .stat-slate span { color:var(--slate); } .stat-blue span { color:var(--primary); }
.toolbar { padding:8px 18px 14px; display:grid; grid-template-columns:minmax(260px,1fr) 190px auto; gap:10px; }
.search-wrap { position:relative; }
.search-icon { position:absolute; left:13px; top:50%; transform:translateY(-50%); color:#748297; font-size:20px; }
.toolbar input, .toolbar select, .field input, .field select, .field textarea { width:100%; border:1px solid var(--border); border-radius:11px; background:white; color:var(--ink); padding:11px 12px; outline:none; }
.toolbar input { padding-left:40px; }
.toolbar input:focus, .toolbar select:focus, .field input:focus, .field select:focus, .field textarea:focus { border-color:#7da4f3; box-shadow:0 0 0 3px rgba(20,87,217,.10); }
.workspace { display:grid; grid-template-columns:minmax(0,1.65fr) minmax(350px,.7fr); gap:14px; padding:0 18px 18px; min-height:calc(100vh - 230px); }
.map-shell { position:relative; background:white; border:1px solid var(--border); border-radius:var(--radius); overflow:hidden; min-height:610px; box-shadow:var(--shadow); }
#map { width:100%; height:100%; min-height:610px; }
.legend { position:absolute; z-index:600; bottom:26px; left:14px; display:flex; gap:10px; flex-wrap:wrap; background:rgba(255,255,255,.94); backdrop-filter:blur(8px); border:1px solid #dbe2ec; border-radius:12px; padding:8px 10px; font-size:11px; font-weight:700; box-shadow:0 5px 18px rgba(37,51,72,.13); }
.legend span { display:flex; align-items:center; gap:5px; }
.dot { width:9px; height:9px; border-radius:50%; display:inline-block; } .dot.recent{background:var(--green)} .dot.soon{background:var(--amber)} .dot.due{background:var(--red)} .dot.never{background:var(--slate)}
.map-note { position:absolute; z-index:600; right:6px; bottom:4px; background:rgba(255,255,255,.78); color:#68778c; font-size:9px; padding:2px 5px; border-radius:5px; }
.sidebar { background:white; border:1px solid var(--border); border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow); display:flex; flex-direction:column; min-height:610px; max-height:calc(100vh - 242px); }
.detail { padding:18px; border-bottom:1px solid var(--border); }
.empty-state { text-align:center; padding:32px 24px; color:var(--muted); }
.empty-state h2 { color:var(--ink); margin:6px 0 7px; font-size:18px; }
.empty-state p { margin:0; font-size:13px; line-height:1.5; }
.empty-icon { width:40px; height:40px; border-radius:50%; margin:0 auto; display:grid; place-items:center; background:#eff4fb; color:var(--primary); font-weight:800; }
.detail-top { display:flex; align-items:flex-start; gap:12px; justify-content:space-between; }
.detail h2 { font-size:19px; margin:0 0 4px; letter-spacing:-.02em; }
.detail .sub { margin:0; color:var(--muted); font-size:12px; line-height:1.4; }
.status-pill { display:inline-flex; align-items:center; gap:6px; border-radius:999px; padding:5px 8px; font-size:11px; font-weight:800; white-space:nowrap; }
.status-pill.recent { color:#127446; background:#e8f8f0; } .status-pill.soon { color:#9b650c; background:#fff5df; } .status-pill.due { color:#b52838; background:#ffebee; } .status-pill.never { color:#5a697e; background:#edf1f6; }
.detail-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:8px; margin:14px 0; }
.mini-card { background:#f6f8fb; border:1px solid #e7ebf1; border-radius:10px; padding:9px 10px; }
.mini-card small { color:var(--muted); display:block; font-size:10px; font-weight:700; margin-bottom:4px; text-transform:uppercase; letter-spacing:.04em; }
.mini-card strong { font-size:13px; }
.detail-actions { display:flex; gap:8px; flex-wrap:wrap; }
.history { margin-top:16px; }
.history h3 { font-size:12px; text-transform:uppercase; letter-spacing:.06em; color:#617087; margin:0 0 8px; }
.history-list { display:flex; flex-direction:column; gap:7px; max-height:170px; overflow:auto; }
.history-item { display:grid; grid-template-columns:1fr auto; gap:8px; padding:8px 9px; border:1px solid #e9edf2; background:#fbfcfe; border-radius:9px; }
.history-item strong { font-size:12px; } .history-item p { font-size:11px; color:var(--muted); margin:2px 0 0; }
.delete-visit { border:0; background:transparent; color:#a8313e; font-size:16px; padding:3px; }
.interval-row { display:flex; align-items:center; gap:8px; margin-top:12px; font-size:12px; color:var(--muted); }
.interval-row select { border:1px solid var(--border); border-radius:8px; padding:6px 8px; background:white; color:var(--ink); }
.list-section { flex:1; min-height:0; display:flex; flex-direction:column; }
.list-head { padding:12px 14px 10px; display:flex; align-items:center; justify-content:space-between; }
.list-head h2 { margin:0; font-size:13px; text-transform:uppercase; letter-spacing:.06em; color:#59697e; }
.list-head span { font-size:11px; border-radius:999px; background:#edf2f8; padding:3px 7px; color:#66758a; font-weight:800; }
.road-list { overflow:auto; padding:0 8px 10px; }
.road-item { width:100%; border:0; background:white; border-radius:11px; padding:10px 9px; text-align:left; display:grid; grid-template-columns:auto 1fr auto; gap:9px; align-items:center; transition:.12s ease; }
.road-item:hover { background:#f6f8fc; } .road-item.active { background:#eef4ff; box-shadow:inset 0 0 0 1px #cdddfa; }
.road-status { width:9px; height:38px; border-radius:8px; } .road-status.recent{background:var(--green)} .road-status.soon{background:var(--amber)} .road-status.due{background:var(--red)} .road-status.never{background:var(--slate)}
.road-main strong { display:block; font-size:13px; } .road-main small { display:block; font-size:11px; color:var(--muted); margin-top:3px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; max-width:230px; }
.road-next { text-align:right; } .road-next strong { display:block; font-size:11px; } .road-next small { font-size:9px; color:var(--muted); }
.list-empty { padding:36px 20px; text-align:center; color:var(--muted); font-size:13px; }
.modal { border:0; padding:0; background:transparent; width:min(680px, calc(100vw - 24px)); max-width:680px; }
.modal::backdrop { background:rgba(11,19,33,.54); backdrop-filter:blur(3px); }
.modal-card { background:white; border-radius:20px; padding:20px; box-shadow:0 30px 90px rgba(11,21,38,.3); max-height:min(85vh,820px); overflow:auto; }
.modal-head { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; }
.modal-head h2 { margin:2px 0 0; font-size:21px; letter-spacing:-.025em; }
.eyebrow { margin:0; font-size:10px; color:var(--primary); text-transform:uppercase; font-weight:900; letter-spacing:.1em; }
.icon-btn { border:0; background:#eef2f7; color:#45546a; border-radius:10px; width:34px; height:34px; font-size:22px; display:grid; place-items:center; }
.muted { color:var(--muted); font-size:12px; line-height:1.5; }
.field { display:flex; flex-direction:column; gap:6px; margin-top:13px; }
.field span { color:#47576b; font-size:11px; font-weight:800; }
.field em { color:#8090a5; font-weight:500; }
.field-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.field-row { display:flex; gap:8px; align-items:end; } .field-row .grow { flex:1; } .search-btn { height:43px; margin-bottom:0; }
.search-status { min-height:18px; margin:10px 0 4px; color:var(--muted); font-size:11px; }
.osm-results { display:flex; flex-direction:column; gap:7px; max-height:240px; overflow:auto; }
.osm-result { border:1px solid var(--border); background:white; border-radius:11px; padding:10px 11px; text-align:left; }
.osm-result:hover { background:#f7f9fd; border-color:#cdd8e7; }
.osm-result strong { display:block; font-size:13px; margin-bottom:3px; } .osm-result small { display:block; color:var(--muted); font-size:10px; line-height:1.35; }
.selected-osm { border-radius:12px; background:#edf4ff; border:1px solid #cdddfa; padding:10px 11px; font-size:12px; margin-top:8px; }
.hidden { display:none!important; }
.modal-actions { display:flex; justify-content:flex-end; gap:8px; margin-top:18px; }
.toast { position:fixed; z-index:3000; left:50%; bottom:22px; transform:translate(-50%,20px); background:#111c2d; color:white; border-radius:11px; padding:10px 14px; font-size:12px; font-weight:700; box-shadow:0 14px 40px rgba(10,18,31,.27); opacity:0; pointer-events:none; transition:.2s ease; }
.toast.show { opacity:1; transform:translate(-50%,0); }
.leaflet-container { font-family:inherit; }
.leaflet-popup-content-wrapper { border-radius:12px; }
.leaflet-popup-content { font-size:12px; line-height:1.45; }

@media (max-width: 980px) {
  .stats { grid-template-columns:repeat(7, minmax(110px,1fr)); overflow-x:auto; }
  .workspace { grid-template-columns:1fr; }
  .map-shell, #map { min-height:54vh; }
  .sidebar { max-height:none; min-height:0; }
  .detail { order:0; } .list-section { max-height:42vh; }
}
@media (max-width: 680px) {
  .topbar { padding:10px 12px; min-height:65px; }
  .brandmark { width:38px; height:38px; }
  .brand h1 { font-size:18px; } .brand p { font-size:10px; }
  .top-actions .btn { padding:9px 10px; font-size:12px; }
  .desktop-only { display:none!important; }
  .stats { padding:9px 10px 5px; gap:7px; }
  .stat { min-width:108px; padding:10px 11px; } .stat span{font-size:21px} .stat small{font-size:10px}
  .toolbar { padding:6px 10px 10px; grid-template-columns:1fr 135px; }
  .toolbar #fitAllBtn { display:none; }
  .workspace { padding:0 10px 10px; gap:10px; }
  .map-shell, #map { min-height:51vh; border-radius:14px; }
  .legend { left:8px; bottom:20px; gap:7px; padding:7px 8px; max-width:calc(100% - 16px); }
  .legend span { font-size:9px; }
  .sidebar { border-radius:14px; }
  .field-grid { grid-template-columns:1fr; gap:0; }
  .field-row { align-items:stretch; flex-direction:column; gap:0; } .search-btn { width:100%; margin-top:8px; }
  .modal-card { border-radius:16px; padding:16px; }
  .modal-actions .btn { flex:1; }
}

/* v0.2.0 */
.result-place { color:#1d4ed8!important; font-weight:800; margin-bottom:2px; }
.update-current { margin-top:16px; display:flex; justify-content:space-between; align-items:center; gap:12px; padding:14px; background:#f6f8fb; border:1px solid #e5eaf0; border-radius:12px; }
.update-current small { display:block; color:var(--muted); font-size:10px; text-transform:uppercase; letter-spacing:.06em; font-weight:800; margin-bottom:3px; }
.update-current strong { font-size:18px; }
.update-section { margin-top:16px; padding-top:15px; border-top:1px solid var(--border); }
.update-section h3 { margin:0 0 6px; font-size:14px; }
.compact-actions { margin-top:12px; }
.update-progress { margin-top:12px; padding:10px 12px; border-radius:10px; background:#eef4ff; display:flex; align-items:center; gap:9px; color:#264e9d; font-size:12px; }
.update-progress span { width:14px; height:14px; border:2px solid #93b1ed; border-top-color:#1d5ed7; border-radius:50%; animation:spin .8s linear infinite; }
.release-list { display:flex; flex-direction:column; gap:7px; margin-top:10px; }
.release-row { display:flex; justify-content:space-between; align-items:center; gap:10px; border:1px solid #e6ebf1; border-radius:10px; padding:9px 10px; background:#fbfcfe; }
.release-row strong { display:block; font-size:13px; }.release-row small { display:block; margin-top:2px; color:var(--muted); font-size:10px; }
.update-note { border-top:1px solid var(--border); margin-top:16px; padding-top:12px; }
.update-note code { background:#eef1f5; border-radius:5px; padding:1px 4px; }
.restart-overlay { position:fixed; inset:0; z-index:5000; background:rgba(11,18,31,.84); color:white; display:grid; place-items:center; text-align:center; backdrop-filter:blur(5px); }
.restart-overlay h2 { margin:12px 0 5px; }.restart-overlay p { margin:0; color:#cad5e6; }
.spinner { width:34px; height:34px; border:4px solid rgba(255,255,255,.25); border-top-color:#fff; border-radius:50%; margin:0 auto; animation:spin .8s linear infinite; }
@keyframes spin { to { transform:rotate(360deg); } }

.update-diagnostic{margin:10px 0 0;padding:10px 12px;border-radius:10px;font-size:13px;line-height:1.4;background:#f3f6fa;color:#526173;border:1px solid #dfe6ef}.update-diagnostic.ok{background:#eefaf4;color:#176846;border-color:#c9ead9}.update-diagnostic.error{background:#fff3f4;color:#9e2634;border-color:#f3cbd0}

/* v1.1.0 */
.update-top-btn{white-space:nowrap;text-decoration:none}.version-warning{margin:8px 12px 0;padding:9px 12px;border:1px solid #f2b8bf;background:#fff0f2;color:#9f2432;border-radius:10px;font-size:12px;font-weight:700}.error-text{color:#b42336!important}.update-page{min-height:100vh;background:#f4f6f9}.update-shell{width:min(920px,calc(100% - 24px));margin:26px auto}.update-card{background:white;border:1px solid var(--border);border-radius:18px;padding:22px;box-shadow:0 12px 38px rgba(18,34,58,.08)}.update-page-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px}.update-page-head h1{margin:0;font-size:24px}.update-page-head p{margin:5px 0 0;color:var(--muted);font-size:12px}.back-link{text-decoration:none}.update-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.update-panel{border:1px solid #e5eaf0;border-radius:14px;padding:16px;background:#fbfcfe}.update-panel h2{font-size:15px;margin:0 0 7px}.version-big{font-size:28px;font-weight:900}.diagnostic-list{display:grid;gap:5px;margin-top:10px;font-size:12px}.diagnostic-list div{display:flex;justify-content:space-between;gap:8px}.diagnostic-list span{color:var(--muted)}@media(max-width:720px){.update-grid{grid-template-columns:1fr}.update-page-head{align-items:flex-start;flex-direction:column}}

/* v1.2.0 – husstande og flyeroptælling */
.household-panel{margin:14px 0;padding:12px;border:1px solid #dfe7f2;border-radius:12px;background:#f9fbfe}.household-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.household-head h3{margin:0;font-size:13px}.household-head p{margin:3px 0 0;color:var(--muted);font-size:10px;line-height:1.35}.household-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:10px}.mini-card.highlight{background:#edf4ff;border-color:#cadcfb}.mini-card.highlight strong{color:var(--primary);font-size:16px}.flyer-override{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:end;margin-top:10px}.flyer-override label{display:flex;flex-direction:column;gap:5px}.flyer-override label span{font-size:10px;color:#536278;font-weight:800}.flyer-override label em{font-weight:500;color:#8190a4}.flyer-override input{width:100%;border:1px solid var(--border);border-radius:9px;padding:8px 9px;background:white}.count-source{font-size:9px;line-height:1.4;color:#7a8799;margin:9px 0 0}.count-warning{margin-top:8px;padding:8px 9px;border-radius:8px;background:#fff5e7;border:1px solid #f3d8a6;color:#8b5d12;font-size:10px;line-height:1.4}@media(max-width:680px){.household-grid{grid-template-columns:1fr 1fr}.household-grid .highlight{grid-column:1/-1}.flyer-override{grid-template-columns:1fr}.household-head{flex-direction:column}.household-head .btn{width:100%}}

/* v1.4.0 – login, brugere, ruter og mobil/PWA */
.hidden{display:none!important}.btn-wide{width:100%}.signed-in{font-size:.86rem;color:#cbd5e1;white-space:nowrap}.auth-screen{min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(145deg,#e8eef8,#f8fafc)}.auth-card{width:min(440px,100%);background:#fff;border:1px solid #dbe3ee;border-radius:20px;padding:28px;box-shadow:0 20px 55px rgba(15,23,42,.14)}.auth-brand{margin-bottom:24px;color:#0f172a}.auth-card h2{margin:4px 0 10px;font-size:1.45rem}.auth-card .field{margin:14px 0}.auth-error{color:#b42318;min-height:22px;margin:12px 0 0}.eyebrow{font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:#2563eb;margin:0}.muted{color:#64748b}.wide-modal{width:min(860px,94vw)}
.route-bar{margin:0 8px 8px;padding:12px 16px;border-radius:14px;display:flex;align-items:center;gap:18px;flex-wrap:wrap;box-shadow:0 2px 8px rgba(15,23,42,.08)}.planner-bar{background:#f3e8ff;border:1px solid #c4b5fd}.runner-bar{background:#eef2ff;border:1px solid #c7d2fe}.route-bar-main{display:flex;flex-direction:column;min-width:210px}.route-bar-main span{font-size:.78rem;color:#64748b}.route-kicker{font-size:.68rem!important;text-transform:uppercase;font-weight:800;color:#6366f1!important}.route-metrics{display:flex;gap:20px;flex:1;flex-wrap:wrap}.route-metrics span{font-size:.82rem;color:#475569}.route-metrics strong{font-size:1.05rem;color:#0f172a}.route-bar-actions{display:flex;gap:8px;margin-left:auto}.btn-route{background:#7c3aed;color:white;border-color:#7c3aed}.btn-route:hover{background:#6d28d9}.dot.selected{background:#2563eb}.road-item.planned{background:#f5f3ff;outline:2px solid #8b5cf6}.route-save-summary{padding:12px 14px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;margin-bottom:12px}.task-tabs{display:flex;gap:8px;margin:6px 0 16px;border-bottom:1px solid #e2e8f0}.task-tab{border:0;background:transparent;padding:10px 14px;font-weight:700;color:#64748b;cursor:pointer;border-bottom:3px solid transparent}.task-tab.active{color:#2563eb;border-bottom-color:#2563eb}.saved-routes-list{display:grid;gap:12px;max-height:60vh;overflow:auto}.route-card{border:1px solid #e2e8f0;border-radius:14px;padding:14px;background:#fff}.route-card-head,.task-card-top{display:flex;justify-content:space-between;gap:12px}.route-card-head strong,.task-card-top h3{display:block;font-size:1rem;margin:0}.route-card-head small,.task-card-top p{display:block;color:#64748b;margin-top:4px}.route-card-stats,.task-metrics{display:flex;gap:16px;flex-wrap:wrap;margin:12px 0;font-size:.83rem;color:#475569}.route-admin-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:10px 0}.route-admin-row label{font-size:.75rem;color:#64748b;display:flex;flex-direction:column;gap:4px}.route-admin-row select{padding:8px;border:1px solid #cbd5e1;border-radius:8px;background:white}.route-card-actions{display:flex;gap:8px;flex-wrap:wrap}.user-create-grid{display:grid;grid-template-columns:1fr 1fr 1fr auto;gap:10px;align-items:end;margin:12px 0 18px}.users-list{display:grid;gap:10px;max-height:52vh;overflow:auto}.user-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;border:1px solid #e2e8f0;border-radius:12px}.user-row small{display:block;color:#64748b;margin-top:3px}.user-actions{display:flex;gap:7px;flex-wrap:wrap}.assign-road-list{display:grid;grid-template-columns:1fr 1fr;gap:8px;max-height:55vh;overflow:auto}.assign-road-item{display:flex;align-items:center;gap:10px;border:1px solid #e2e8f0;border-radius:10px;padding:10px;cursor:pointer}.assign-road-item small{display:block;color:#64748b;margin-top:2px}.assign-road-item input{width:18px;height:18px}.worker-view{max-width:1000px;margin:0 auto;padding:20px}.worker-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.worker-head h2{font-size:1.7rem;margin:2px 0 4px}.worker-head p{margin:0;color:#64748b}.worker-tasks{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:14px}.worker-task-card{background:#fff;border:1px solid #e2e8f0;border-radius:16px;padding:16px;box-shadow:0 3px 12px rgba(15,23,42,.04)}.task-kind{font-size:.68rem;text-transform:uppercase;font-weight:800;color:#6366f1}.task-next{font-size:.82rem;color:#475569;background:#f8fafc;padding:9px;border-radius:8px}.worker-empty{grid-column:1/-1;text-align:center;padding:60px 20px;color:#64748b}.worker-route-map{margin-top:14px}.worker-route-toolbar{display:flex;align-items:center;gap:14px;margin-bottom:10px}.worker-route-toolbar div{display:flex;flex-direction:column}.worker-route-toolbar small{color:#64748b}.worker-route-map #workerMap{height:52vh;min-height:340px;border-radius:14px;border:1px solid #cbd5e1}.worker-route-roads{display:grid;gap:8px;margin-top:12px}.worker-road{display:flex;justify-content:space-between;align-items:center;gap:12px;background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:12px}.worker-road small{display:block;color:#64748b;margin-top:3px}.worker-road.done{background:#f0fdf4;border-color:#bbf7d0}.done-check{color:#15803d;font-weight:800}.worker-route-hidden{display:none!important}
@media(max-width:900px){.topbar{align-items:flex-start}.top-actions{gap:6px;flex-wrap:wrap;justify-content:flex-end}.signed-in{width:100%;text-align:right}.worker-view{padding:12px}.worker-tasks{grid-template-columns:1fr}.user-create-grid{grid-template-columns:1fr}.assign-road-list{grid-template-columns:1fr}.route-admin-row{grid-template-columns:1fr}.route-bar{margin:0;border-radius:0}.route-bar-actions{width:100%;margin:0}.worker-route-map #workerMap{height:45vh}.desktop-only{display:none!important}.btn{min-height:42px}.worker-road .btn{min-width:96px}.auth-screen{padding:14px}.auth-card{padding:20px}}
@media(max-width:600px){.brand p{font-size:.67rem}.brand h1{font-size:1.05rem}.top-actions .btn{font-size:.76rem;padding:8px 10px}.worker-head{flex-direction:column}.worker-head .btn{align-self:flex-end}.task-tabs{position:sticky;top:0;background:#f8fafc;z-index:5}.worker-task-card{padding:14px}.worker-route-toolbar{position:sticky;top:0;background:#f8fafc;padding:6px 0;z-index:5}.worker-road{position:relative}.wide-modal{width:96vw}}

/* v1.5.0 – områder, deadlines, live-status, observationer og Ingen reklamer */
.route-progress-track{height:8px;background:#e7edf5;border-radius:999px;overflow:hidden;margin:10px 0}.route-progress-track i{display:block;height:100%;background:#2563eb;border-radius:999px;transition:width .25s ease}.worker-task-card.overdue{border-color:#fecaca;background:#fffafa}.worker-task-card.today{border-color:#fde68a}.worker-card-actions,.worker-road-actions{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.worker-road-actions .btn{min-width:auto}.address-list{display:grid;gap:7px;max-height:55vh;overflow:auto;margin-top:10px}.address-row{display:flex;justify-content:space-between;align-items:center;gap:10px;border:1px solid #e2e8f0;border-radius:10px;padding:10px 11px;background:#fff;font-size:.84rem}.address-actions{display:flex;gap:6px}.count-badge{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:#e0e7ff;color:#3730a3;font-size:.72rem}.pending-note{padding:9px 10px;border-radius:9px;background:#fff7ed;border:1px solid #fed7aa;color:#9a3412;font-size:.8rem}.resolve-observation{border:0;background:#dcfce7;color:#166534;width:28px;height:28px;border-radius:8px;font-weight:900;cursor:pointer}.history-item small{display:block;color:#64748b;margin-top:3px}.route-card .status-pill.due,.worker-task-card .status-pill.due{background:#fee2e2;color:#b91c1c}.route-card .status-pill.soon,.worker-task-card .status-pill.soon{background:#fef3c7;color:#92400e}
@media(max-width:680px){.worker-card-actions{display:grid;grid-template-columns:1fr 1fr}.worker-card-actions .complete-assignment{grid-column:1/-1}.worker-road-actions{width:100%;display:grid;grid-template-columns:auto auto 1fr}.worker-road{align-items:flex-start;flex-direction:column}.worker-road-actions .complete-route-road{width:100%}.address-row{align-items:flex-start;flex-direction:column}.address-actions{width:100%}.address-actions .btn{flex:1}}


/* v1.5.1 – PC modal-layout fix for Områder, Brugere og Ruter */
.modal,
.modal * { box-sizing:border-box; }
.modal { max-inline-size:calc(100vw - 24px); overflow:visible; }
.modal.modal-wide { width:min(920px, calc(100vw - 32px)); max-width:920px; }
.modal-card { width:100%; max-width:100%; min-width:0; overflow-x:hidden; }
.wide-modal { width:100%; max-width:none; min-width:0; }
.modal-card > *, .modal-head > *, .route-card-head > *, .user-row > * { min-width:0; }
.modal input, .modal select, .modal textarea { max-width:100%; min-width:0; }
.user-create-grid { grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1fr) auto; }
.saved-routes-list, .users-list, .assign-road-list, .address-list { width:100%; min-width:0; overflow-x:hidden; }
.route-card, .user-row, .assign-road-item, .address-row { min-width:0; max-width:100%; }
.route-card-head strong, .route-card-head small, .user-row strong, .user-row small { overflow-wrap:anywhere; }
.modal-actions { flex-wrap:wrap; }
@media (max-width:900px) {
  .modal.modal-wide { width:min(760px, calc(100vw - 20px)); }
  .user-create-grid { grid-template-columns:1fr 1fr; }
  .user-create-grid #createUserBtn { grid-column:1/-1; width:100%; }
}
@media (max-width:680px) {
  .modal, .modal.modal-wide { width:calc(100vw - 12px); max-width:calc(100vw - 12px); }
  .user-create-grid { grid-template-columns:1fr; }
  .user-create-grid #createUserBtn { grid-column:auto; }
  .modal-actions { display:grid; grid-template-columns:1fr; }
  .modal-actions .btn { width:100%; }
}
