:root{color-scheme:light;--background:#f7f8fa;--surface:#ffffff;--surface-muted:#eef2f5;--border:#d8dee5;--text:#18202a;--muted:#657180;--accent:#1b6f6a;--accent-strong:#13524e;--danger:#b42318;--shadow:0 16px 40px rgb(24 32 42/10%)}*{box-sizing:border-box}body,html{min-height:100%;margin:0}body{background:var(--background);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;letter-spacing:0}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.center-screen,.login-page{display:grid;min-height:100vh;place-items:center;padding:24px}.login-page{background:linear-gradient(180deg,rgb(255 255 255/78%),rgb(247 248 250/92%)),url(/yard-lines.svg)}.login-panel,.state-panel{width:min(100%,420px);border:1px solid var(--border);border-radius:8px;background:var(--surface);box-shadow:var(--shadow);padding:28px}.eyebrow{margin:0 0 8px;color:var(--accent);font-size:.78rem;font-weight:700;text-transform:uppercase}h1{margin:0;font-size:clamp(2rem,5vw,3rem);line-height:1.05}.login-form{display:grid;grid-gap:16px;gap:16px;margin-top:28px}.login-form label{display:grid;grid-gap:6px;gap:6px;color:var(--muted);font-size:.9rem;font-weight:700}.login-form input{min-height:44px;width:100%;border:1px solid var(--border);border-radius:8px;color:var(--text);padding:10px 12px}.login-form input:focus{border-color:var(--accent);outline:3px solid rgb(27 111 106/16%)}.form-error{margin:0;color:var(--danger);font-size:.92rem;font-weight:700}.primary-button,.secondary-button{border:0;cursor:pointer}.primary-button{min-height:44px;border-radius:8px;background:var(--accent);color:white;font-weight:800;padding:10px 16px}.primary-button:hover{background:var(--accent-strong)}.primary-button:disabled,.secondary-button:disabled{cursor:wait;opacity:.65}.app-shell{display:grid;min-height:100vh;grid-template-columns:248px 1fr}.sidebar{border-right:1px solid var(--border);background:#172126;color:white;padding:20px}.brand-lockup,.user-cluster{display:flex;align-items:center;gap:10px}.brand-lockup{font-weight:900}.avatar,.brand-mark{display:inline-grid;width:36px;height:36px;place-items:center;border-radius:8px;font-weight:900}.brand-mark{background:#f0c75e;color:#172126}.nav-list{display:grid;grid-gap:6px;gap:6px;margin-top:32px}.nav-item{border-radius:8px;color:rgb(255 255 255/88%);font-weight:750;padding:10px 12px}.nav-item:hover{background:rgb(255 255 255/10%)}.nav-item.disabled{color:rgb(255 255 255/44%);pointer-events:none}.workspace{min-width:0}.topbar{display:flex;min-height:72px;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border);background:var(--surface);padding:0 28px}.topbar span{display:block;color:var(--muted);font-size:.88rem}.avatar{color:var(--accent-strong)}.avatar,.secondary-button{background:var(--surface-muted)}.secondary-button{min-height:40px;border-radius:8px;color:var(--text);font-weight:800;padding:8px 12px}.secondary-button:hover{background:#dfe7ed}.content{padding:28px}.dashboard{display:grid;grid-gap:24px;gap:24px}.resource-page{display:grid;grid-gap:22px;gap:22px}.page-heading{display:grid;grid-gap:6px;gap:6px}.page-heading p:last-child{max-width:760px;margin:0;color:var(--muted)}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:16px;gap:16px}.metric-card{display:grid;grid-gap:12px;gap:12px;min-height:118px;border:1px solid var(--border);border-radius:8px;background:var(--surface);padding:18px}.metric-card span{color:var(--muted);font-size:.92rem;font-weight:750}.metric-card strong{font-size:2.4rem}.operations-panels,.resource-form{display:grid;grid-gap:12px;gap:12px}.resource-form{grid-template-columns:repeat(6,minmax(0,1fr)) auto;align-items:end;border:1px solid var(--border);border-radius:8px;background:var(--surface);padding:14px}.compact-form{grid-template-columns:1fr;align-items:stretch}.operations-panels{grid-template-columns:repeat(3,minmax(0,1fr))}.operations-panels.two-up{grid-template-columns:repeat(2,minmax(0,1fr))}.transport-form-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:12px;gap:12px}.filter-bar{display:grid;grid-template-columns:minmax(220px,1.4fr) repeat(3,minmax(140px,.7fr)) auto;grid-gap:10px;gap:10px;align-items:center;border:1px solid var(--border);border-radius:8px;background:var(--surface);padding:12px}.compact-filter{grid-template-columns:minmax(180px,320px)}.filter-bar input,.filter-bar select,.resource-form input,.resource-form select{min-height:40px;min-width:0;border:1px solid var(--border);border-radius:8px;background:white;color:var(--text);padding:8px 10px}.filter-bar input:focus,.filter-bar select:focus,.resource-form input:focus,.resource-form select:focus{border-color:var(--accent);outline:3px solid rgb(27 111 106/16%)}.inline-check{display:inline-flex;align-items:center;gap:8px;color:var(--muted);font-weight:800}.inline-check input{width:18px;height:18px}.success-message{margin:0;color:var(--accent-strong);font-weight:800}.data-table{display:grid;overflow:hidden;border:1px solid var(--border);border-radius:8px;background:var(--surface)}.data-row{display:grid;grid-template-columns:minmax(160px,1.2fr) minmax(120px,.7fr) minmax(110px,.7fr) minmax(180px,1fr);grid-gap:14px;gap:14px;align-items:center;min-height:58px;border-top:1px solid var(--border);padding:12px 14px}.data-row:first-child{border-top:0}.table-head{min-height:44px;background:var(--surface-muted);color:var(--muted);font-size:.82rem;font-weight:900;text-transform:uppercase}.row-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.jobs-table .data-row{grid-template-columns:minmax(120px,.7fr) minmax(120px,.7fr) minmax(90px,.4fr) minmax(320px,1.4fr)}.assets-table .data-row{grid-template-columns:minmax(120px,.9fr) minmax(120px,.7fr) minmax(90px,.45fr) minmax(160px,1fr) minmax(120px,.8fr) minmax(140px,.7fr)}.transport-section{display:grid;grid-gap:12px;gap:12px}.transport-section h2{margin:0;font-size:1.2rem}.transport-table .data-row{grid-template-columns:minmax(120px,.8fr) minmax(120px,.6fr) minmax(110px,.6fr) minmax(160px,1fr) minmax(260px,1.4fr)}.route-panel{display:grid;grid-gap:14px;gap:14px;border:1px solid var(--border);border-radius:8px;background:var(--surface);padding:16px}.route-meta,.route-panel-header{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between}.route-panel-header div{display:grid;grid-gap:4px;gap:4px}.route-meta span,.route-panel-header span{color:var(--muted)}.route-actions{justify-content:flex-start}.reference-list{border:1px solid var(--border);border-radius:8px;background:var(--surface-muted);padding:10px 12px}.reference-list summary{cursor:pointer;font-weight:900}.reference-list div{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.reference-list code{border-radius:8px;background:white;padding:6px 8px}.stops-table .data-row{grid-template-columns:minmax(52px,.25fr) minmax(110px,.55fr) minmax(160px,1fr) minmax(120px,.75fr) minmax(120px,.7fr) minmax(220px,1fr)}.status-badge{display:inline-flex;width:-moz-fit-content;width:fit-content;min-height:28px;align-items:center;border:1px solid var(--border);border-radius:999px;background:var(--surface-muted);color:var(--text);font-size:.78rem;font-weight:900;padding:4px 10px}.status-cancelled,.status-failed,.status-lost,.status-retired{border-color:#f2b8b5;background:#fff1f0;color:var(--danger)}.status-completed{border-color:#addfc8;background:#eefaf3;color:#146c43}.status-arrived,.status-assigned,.status-confirmed,.status-en-route,.status-in-transit,.status-on-hire{border-color:#b5d5ff;background:#eff6ff;color:#175cd3}.status-maintenance,.status-reserved{border-color:#f4d799;background:#fff8e6;color:#8a5a00}.empty-state,.inline-error,.table-loading{display:grid;grid-gap:8px;gap:8px;border:1px solid var(--border);border-radius:8px;background:var(--surface);padding:18px}.empty-state span,.inline-error span{color:var(--muted)}.inline-error{border-color:#f2b8b5;background:#fff7f6}.table-loading span{height:18px;border-radius:8px;background:linear-gradient(90deg,var(--surface-muted),#f9fbfc,var(--surface-muted));background-size:200% 100%;animation:shimmer 1.4s infinite}code{overflow-wrap:anywhere;color:var(--muted);font-size:.82rem}.loading-mark{width:40px;height:40px;border:4px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}@keyframes shimmer{to{background-position:-200% 0}}@media (max-width:820px){.app-shell{grid-template-columns:1fr}.sidebar{display:flex;align-items:center;gap:18px;overflow-x:auto;border-right:0;padding:14px 18px}.nav-list{display:flex;margin-top:0}.topbar{padding:0 18px}.content{padding:18px}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.assets-table .data-row,.data-row,.filter-bar,.jobs-table .data-row,.operations-panels,.operations-panels.two-up,.resource-form,.stops-table .data-row,.transport-form-grid,.transport-table .data-row{grid-template-columns:1fr}.row-actions{justify-content:flex-start}}@media (max-width:520px){.metric-grid{grid-template-columns:1fr}}.driver-app,.driver-login-page{min-height:100vh;background:#f7f8fa}.driver-login-page{display:grid;place-items:center;padding:18px}.driver-login-panel{display:grid;grid-gap:22px;gap:22px;width:min(100%,430px);border:1px solid var(--border);border-radius:8px;background:var(--surface);box-shadow:var(--shadow);padding:24px}.driver-content,.driver-login-form,.driver-proof-form,.driver-route-list,.driver-stop-list{display:grid;grid-gap:14px;gap:14px}.driver-login-form label,.driver-proof-form label{display:grid;grid-gap:6px;gap:6px;color:var(--muted);font-size:.9rem;font-weight:800}.driver-login-form input,.driver-proof-form input,.driver-proof-form textarea{min-height:46px;width:100%;border:1px solid var(--border);border-radius:8px;background:white;color:var(--text);padding:10px 12px}.driver-proof-form textarea{min-height:92px;resize:vertical}.driver-topbar{position:-webkit-sticky;position:sticky;top:0;z-index:10;display:flex;min-height:64px;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border);background:rgb(255 255 255/94%);padding:10px 14px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.driver-topbar div:first-child{display:grid;grid-gap:2px;gap:2px}.driver-connection span,.driver-queue-panel span,.driver-route-card span,.driver-route-summary span,.driver-stop-header span,.driver-topbar span{color:var(--muted);font-size:.84rem}.driver-topbar-actions{display:flex;align-items:center;gap:8px}.driver-content{width:min(100%,760px);margin:0 auto;padding:16px}.driver-page-heading{display:grid;grid-gap:4px;gap:4px}.driver-page-heading h1{font-size:clamp(2rem,9vw,3.2rem)}.driver-connection,.driver-queue-panel,.driver-route-card,.driver-route-summary,.driver-state-panel,.driver-stop-card{border:1px solid var(--border);border-radius:8px;background:var(--surface)}.driver-route-card{display:grid;grid-gap:8px;gap:8px;padding:18px}.driver-route-card strong{font-size:1.25rem}.driver-connection,.driver-queue-panel,.driver-state-panel{display:grid;grid-gap:8px;gap:8px;padding:16px}.driver-error{border-color:#f2b8b5;background:#fff7f6}.driver-queue-panel{grid-template-columns:1fr auto;align-items:center}.driver-connection{display:flex;align-items:center}.connection-dot{width:10px;height:10px;border-radius:999px}.connection-dot.online{background:#146c43}.connection-dot.offline{background:var(--danger)}.driver-install-button,.driver-primary-button,.driver-secondary-button{min-height:46px;border:0;border-radius:8px;cursor:pointer;font-weight:900;padding:10px 14px}.driver-primary-button{background:var(--accent);color:white}.driver-install-button,.driver-secondary-button{background:var(--surface-muted);color:var(--text)}.driver-secondary-button.danger{background:#fff1f0;color:var(--danger)}.driver-primary-button:disabled,.driver-secondary-button:disabled{cursor:not-allowed;opacity:.55}.driver-success{margin:0;color:var(--accent-strong);font-weight:900}.driver-loading{display:grid;grid-gap:8px;gap:8px}.driver-loading span{height:46px;border-radius:8px;background:linear-gradient(90deg,var(--surface-muted),#f9fbfc,var(--surface-muted));background-size:200% 100%;animation:shimmer 1.4s infinite}.driver-back-link{width:-moz-fit-content;width:fit-content;color:var(--accent-strong);font-weight:900}.driver-route-summary{display:grid;grid-template-columns:repeat(2,1fr) auto;grid-gap:12px;gap:12px;align-items:center;padding:14px}.driver-route-summary div{display:grid;grid-gap:4px;gap:4px}.driver-stop-card{display:grid;grid-gap:14px;gap:14px;padding:16px}.driver-stop-header{display:flex;align-items:center;justify-content:space-between}.driver-stop-detail{display:grid;grid-gap:4px;gap:4px}.driver-stop-detail small,.driver-stop-detail span{color:var(--muted)}.driver-action-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:8px;gap:8px}@media (max-width:520px){.driver-action-grid,.driver-queue-panel,.driver-route-summary{grid-template-columns:1fr}.driver-content{padding:12px}}.collection-table .data-row{grid-template-columns:minmax(110px,.6fr) minmax(160px,1fr) minmax(130px,.75fr) minmax(130px,.75fr) minmax(160px,1fr) minmax(260px,1.2fr)}.collection-create-form{grid-template-columns:repeat(5,minmax(0,1fr)) auto}.collection-link-box{display:grid;grid-gap:6px;gap:6px;border:1px solid var(--border);border-radius:8px;background:var(--surface);padding:14px}.collection-link-box a{overflow-wrap:anywhere;color:var(--accent-strong);font-weight:800}.public-collection-page{display:grid;min-height:100vh;place-items:center;background:linear-gradient(180deg,rgb(255 255 255/82%),rgb(247 248 250/94%)),url(/yard-lines.svg);padding:18px}.public-collection-panel{width:min(100%,560px);border:1px solid var(--border);border-radius:8px;background:var(--surface);box-shadow:var(--shadow);padding:24px}.public-collection-form,.public-heading,.public-terminal{display:grid;grid-gap:14px;gap:14px}.public-heading p:last-child,.public-terminal p{margin:0;color:var(--muted)}.public-customer-block{display:grid;grid-gap:4px;gap:4px;margin:18px 0;border:1px solid var(--border);border-radius:8px;background:var(--surface-muted);padding:14px}.public-customer-block span{color:var(--muted)}.public-collection-form label{display:grid;grid-gap:6px;gap:6px;color:var(--muted);font-size:.9rem;font-weight:800}.public-collection-form input,.public-collection-form textarea{min-height:44px;width:100%;border:1px solid var(--border);border-radius:8px;background:white;color:var(--text);padding:10px 12px}.public-collection-form textarea{min-height:110px;resize:vertical}.status-approved,.status-scheduled{border-color:#b5d5ff;background:#eff6ff;color:#175cd3}.status-pending{border-color:#f4d799;background:#fff8e6;color:#8a5a00}.status-expired,.status-rejected{border-color:#f2b8b5;background:#fff1f0;color:var(--danger)}@media (max-width:820px){.collection-create-form,.collection-table .data-row{grid-template-columns:1fr}}