:root{--bg: #f3f5f8;--card: #ffffff;--text: #1b2430;--muted: #667085;--border: #dde2ea;--primary: #1f3a5f;--primary-hover: #2b4c78;--accent: #f2a900;--error-bg: #fdecec;--error: #b42318;--radius: 12px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Arial,sans-serif;color:var(--text);background:var(--bg)}*{box-sizing:border-box}body{margin:0;background:var(--bg)}h1{font-size:24px;margin:0 0 8px}a{color:inherit}.muted{color:var(--muted)}.small{font-size:13px}.center{display:grid;place-items:center;min-height:60vh}.center-text{text-align:center}.nowrap{white-space:nowrap}.on-dark-muted{color:#ffffffb3}.big-text{font-size:20px;font-weight:600;margin:2px 0 4px}.section-title{font-weight:600;margin-bottom:6px}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:16px}.btn{border:1px solid var(--border);background:var(--card);color:var(--text);border-radius:10px;padding:8px 14px;font-size:15px;cursor:pointer}.btn.primary{background:var(--primary);border-color:var(--primary);color:#fff}.btn.primary:hover:not(:disabled){background:var(--primary-hover)}.btn.big{width:100%;padding:14px;font-size:17px;font-weight:600}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.ghost-light{background:transparent;color:#fff;border-color:#fff6}.error{background:var(--error-bg);color:var(--error);border-radius:10px;padding:10px 12px;font-size:14px}.login-page{min-height:100vh;display:grid;place-items:center;padding:16px}.login-card{width:100%;max-width:380px;display:flex;flex-direction:column;gap:16px;padding:24px}.brand{display:flex;align-items:center;gap:12px}.brand-mark{width:44px;height:44px;border-radius:10px;flex-shrink:0;background:#fff;padding:3px;object-fit:contain;display:block}.login-card .brand-mark{width:64px;height:64px;box-shadow:0 0 0 1px var(--border)}.brand-name{font-weight:700;font-size:18px}.login-card .brand-name{color:var(--primary)}.field{display:flex;flex-direction:column;gap:6px;font-size:14px;color:var(--muted)}.field input{font-size:18px;padding:12px;border:1px solid var(--border);border-radius:10px;color:var(--text);background:#fff}.field input:focus{outline:2px solid var(--primary);outline-offset:-1px}.driver{max-width:560px;margin:0 auto;min-height:100vh}.driver-header{background:var(--primary);color:#fff;padding:calc(14px + env(safe-area-inset-top)) 16px 14px;display:flex;justify-content:space-between;align-items:center;gap:12px}.driver-name{font-weight:600}.driver-main{padding:16px;display:flex;flex-direction:column;gap:12px}.office{display:flex;min-height:100vh}.sidebar{width:240px;flex-shrink:0;background:var(--primary);color:#fff;display:flex;flex-direction:column;padding:16px;gap:20px}.sidebar nav{display:flex;flex-direction:column;gap:2px;flex:1}.sidebar nav a{text-decoration:none;padding:9px 12px;border-radius:8px;color:#ffffffd9}.sidebar nav a:hover{background:#ffffff14}.sidebar nav a.active{background:#ffffff29;color:#fff;font-weight:600}.sidebar-user{display:flex;flex-direction:column;gap:6px;font-size:14px}.sidebar-user .btn{margin-top:6px;align-self:flex-start}.office-main{flex:1;padding:28px;min-width:0}.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;margin-top:16px}.tile{text-decoration:none;transition:border-color .15s}.tile:hover{border-color:var(--primary)}.table-wrap{padding:0;overflow-x:auto;margin-top:12px}table{width:100%;border-collapse:collapse;font-size:14px}th,td{text-align:left;padding:10px 14px;border-bottom:1px solid var(--border)}th{color:var(--muted);font-weight:600;background:#fafbfc}tr:last-child td{border-bottom:none}@media(max-width:760px){.office{flex-direction:column}.sidebar{width:auto}.sidebar nav{flex-direction:row;flex-wrap:wrap}.office-main{padding:16px}}.toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:12px 0}.spacer{flex:1}.search{min-width:220px;flex:0 1 320px;padding:9px 12px;border:1px solid var(--border);border-radius:10px;font-size:15px;background:#fff}.check{display:inline-flex;align-items:center;gap:8px;font-size:15px;color:var(--text);cursor:pointer}.check input{width:18px;height:18px}.tabs{display:flex;flex-wrap:wrap;gap:4px;border-bottom:1px solid var(--border);margin:16px 0 4px}.tabs a{padding:9px 14px;text-decoration:none;color:var(--muted);border-bottom:2px solid transparent;margin-bottom:-1px}.tabs a.active{color:var(--primary);border-bottom-color:var(--primary);font-weight:600}tr.inactive td{color:var(--muted)}td.actions{text-align:right;width:1%;white-space:nowrap}.btn.small{padding:5px 10px;font-size:13px}.btn.link{border-color:transparent;background:transparent;color:var(--primary);text-decoration:underline;padding-left:0}.btn.danger{color:var(--error);border-color:#f1b8b3}.btn.icon{border:none;background:transparent;font-size:18px;padding:4px 8px}.badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:12px;font-weight:600;white-space:nowrap}.badge.ok{background:#e7f6ec;color:#18794e}.badge.off{background:#eef0f3;color:var(--muted)}.badge.warn{background:#fff4e0;color:#9a5b00}.badge.load{background:#e8f0fe;color:#1a56c4}.badge.unload{background:#fdf0e6;color:#a2460a}.badges{display:inline-flex;gap:4px;flex-wrap:wrap}.modal-backdrop{position:fixed;inset:0;background:#10182873;display:grid;place-items:center;padding:16px;z-index:10}.modal{width:100%;max-width:520px;max-height:calc(100vh - 32px);overflow-y:auto;padding:20px}.modal-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}.modal-head h2{font-size:19px;margin:0}.form{display:flex;flex-direction:column;gap:14px}.form .field input:not([type=checkbox]),.form .field select{font-size:16px;padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:#fff;color:var(--text);width:100%}.form-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:4px}.req{color:var(--error);font-weight:600}.input-with-suffix{position:relative;display:flex;align-items:center}.input-with-suffix .suffix{position:absolute;right:12px;color:var(--muted);pointer-events:none}fieldset.roles{border:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}.pin-box{font-size:44px;font-weight:800;letter-spacing:12px;text-align:center;padding:16px;background:#f6f8fb;border:2px dashed var(--border);border-radius:12px;font-variant-numeric:tabular-nums}.history{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}.history li{padding:8px 10px;border:1px solid var(--border);border-radius:8px}.driver-header .header-actions{display:flex;gap:6px}.driver-header a.btn{text-decoration:none}.driver-buttons{display:flex;flex-direction:column;gap:10px}a.btn.big{display:block;text-align:center;text-decoration:none}.btn.secondary{background:#fff;border:2px solid var(--primary);color:var(--primary)}.day-switch{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.day-title{text-align:center}.day-title .section-title{margin-bottom:0}.day-switch .btn.icon{font-size:28px;line-height:1;padding:4px 14px}.totals{display:flex;flex-wrap:wrap;gap:6px 18px;font-size:17px;margin-bottom:8px}table.summary td{padding:6px 0;border-bottom:1px solid var(--border);font-size:15px}table.summary td.num{text-align:right;font-weight:600;white-space:nowrap}table.summary td.muted{text-align:right;padding-right:12px;width:1%;white-space:nowrap}.trip-card{display:flex;flex-direction:column;gap:4px;text-decoration:none;padding:12px 14px}a.trip-card:active{background:#f6f8fb}.trip-top{display:flex;justify-content:space-between;align-items:center}.trip-route{font-weight:600}.badge.st-on_review{background:#fff4e0;color:#9a5b00}.badge.st-approved{background:#e7f6ec;color:#18794e}.badge.st-returned{background:var(--error-bg);color:var(--error)}.return-note{background:var(--error-bg);color:var(--error);border-radius:10px;padding:10px 12px;font-size:14px}.request-link{color:var(--primary);text-decoration:underline;display:block;padding:6px 0}.trip-form{gap:16px}.trip-form .field>span{font-size:15px;color:var(--text);font-weight:600}.trip-form select,.trip-form .volume-input{font-size:17px!important;padding:13px 12px!important}.volume-input{font-size:22px!important;font-weight:600}.chips{display:flex;flex-wrap:wrap;gap:6px}.chip{border:1px solid var(--border);background:#fff;border-radius:999px;padding:7px 12px;font-size:14px;color:var(--text);cursor:pointer}.chip.active{background:var(--primary);border-color:var(--primary);color:#fff}.photo-btn{border:2px dashed var(--primary);color:var(--primary);background:#f6f8fb;padding:22px}.photo-preview{display:flex;flex-direction:column;gap:8px}.photo-preview img{width:100%;max-height:360px;object-fit:contain;background:#000;border-radius:10px}.form textarea{font-size:16px;padding:10px 12px;border:1px solid var(--border);border-radius:10px;font-family:inherit;resize:vertical}.segmented{display:grid;grid-template-columns:1fr 1fr;gap:8px}.segmented button{display:flex;flex-direction:column;align-items:center;gap:2px;padding:12px;border:2px solid var(--border);background:#fff;border-radius:10px;font-size:16px;font-weight:600;color:var(--text);cursor:pointer}.segmented button small{font-weight:400;color:var(--muted);font-size:12px}.segmented button.active{border-color:var(--primary);background:#eef3fa;color:var(--primary)}.count{display:inline-block;min-width:20px;padding:1px 7px;margin-left:6px;border-radius:999px;background:var(--accent);color:var(--primary);font-size:12px;font-weight:700;text-align:center}.vehicle-card{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.vehicle-card a.btn{text-decoration:none;white-space:nowrap}.warn-note{background:#fff4e0;color:#7a4800;border-radius:10px;padding:10px 12px;font-size:14px;margin-top:6px}.warn-card{border-color:#f1d39b;background:#fffaf0}.ok-note{color:#18794e;font-weight:600}.empty{text-align:center;padding:32px 16px}.quote{background:#f6f8fb;border-left:3px solid var(--border);padding:6px 10px;font-size:14px}.review-layout{display:grid;grid-template-columns:minmax(260px,340px) 1fr;gap:14px;align-items:start}.queue{padding:0;max-height:calc(100vh - 180px);overflow-y:auto}.queue-item{display:flex;gap:10px;padding:10px 12px;border-bottom:1px solid var(--border);cursor:pointer;align-items:flex-start}.queue-item:hover{background:#f6f8fb}.queue-item.current{background:#eef3fa;box-shadow:inset 3px 0 0 var(--primary)}.queue-item input{margin-top:3px;width:18px;height:18px}.qi-body{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.qi-top{display:flex;justify-content:space-between;gap:8px;align-items:center}.detail{position:sticky;top:12px}.review-actions{border-top:1px solid var(--border);margin-top:14px;padding-top:14px;display:flex;flex-direction:column;gap:10px}.btn.big-inline{padding:11px 22px;font-size:16px;font-weight:600}.trip-details{display:grid;grid-template-columns:minmax(220px,1fr) minmax(220px,1fr);gap:16px}.trip-details>div:last-child{grid-column:1 / -1}.photo-frame{position:relative;border:none;padding:0;background:#111;border-radius:10px;overflow:hidden;cursor:zoom-in;min-height:200px}.photo-frame img{width:100%;height:100%;max-height:460px;object-fit:contain;display:block}.zoom-hint{position:absolute;right:8px;bottom:8px;background:#0009;color:#fff;font-size:12px;padding:3px 8px;border-radius:6px}.photo-full{width:100%;border-radius:8px}.modal:has(.photo-full),.modal:has(.trip-details){max-width:900px}dl.facts{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;margin:0;align-content:start;font-size:15px}dl.facts dt{color:var(--muted)}dl.facts dd{margin:0}ul.timeline{list-style:none;margin:6px 0 0;padding:0 0 0 14px;border-left:2px solid var(--border);display:flex;flex-direction:column;gap:8px}.request-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:12px}.request-card{display:flex;flex-direction:column;gap:6px}.filters{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;padding:12px;margin:12px 0}.filter{display:flex;flex-direction:column;gap:3px;font-size:12px;color:var(--muted)}.filter select,.filter input{padding:7px 8px;border:1px solid var(--border);border-radius:8px;font-size:14px;background:#fff;max-width:200px}table.clickable tbody tr{cursor:pointer}table.clickable tbody tr:hover td{background:#f6f8fb}th.num,td.num{text-align:right}.pager{display:flex;gap:12px;align-items:center;justify-content:center;margin:12px 0}@media(max-width:900px){.review-layout{grid-template-columns:1fr}.queue{max-height:300px}.detail{position:static}.trip-details{grid-template-columns:1fr}}.count.stale,.badge.stale{background:#d92d20;color:#fff}.stale-text{color:#b42318;font-weight:600}.queue-item.stale{box-shadow:inset 3px 0 #d92d20}.queue-item.stale.current{box-shadow:inset 3px 0 0 var(--primary)}.request-card.stale{border-color:#f1b8b3}.request-card .badge.stale{align-self:flex-start}.sync-bar{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 16px;font-size:14px;max-width:560px;margin:0 auto}.sync-bar.waiting{background:#e8f0fe;color:#1a3f7a}.sync-bar.offline{background:#fff4e0;color:#7a4800}.sync-bar.error{background:var(--error-bg);color:var(--error)}.sync-link{color:inherit;font-weight:700}.badge.local{background:#e8f0fe;color:#1a56c4}.cached-note{background:#fff8eb;border-radius:8px;padding:6px 10px;margin-bottom:8px}.trip-wrap{display:flex;flex-direction:column;gap:4px}.trip-delete{align-self:flex-end}.install-hint ol{margin:6px 0 0;padding-left:20px}.install-hint{background:#f6f8fb}.filters a.btn{text-decoration:none}.report-totals{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin-bottom:12px}.stat{padding:12px 14px}.stat-value{font-size:24px;font-weight:700;color:var(--primary)}table.report tr.group td{background:#eef3fa;font-weight:700;color:var(--primary)}table.report tr.subtotal td{font-weight:600}td.indent1{padding-left:28px!important}td.indent2{padding-left:48px!important}.report-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(380px,1fr));gap:12px;margin-top:12px}.report-grid .table-wrap{margin-top:0}.bars{display:flex;align-items:flex-end;gap:6px;overflow-x:auto;padding:8px 0 4px;min-height:160px}.bar-col{display:flex;flex-direction:column;align-items:center;gap:3px;min-width:34px}.bar{width:22px;background:var(--primary);border-radius:4px 4px 0 0}.tabs a .muted{font-weight:400}
