@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Newsreader:opsz,wght@6..72,500&display=swap');
:root{--navy:#172b3d;--blue:#2d6fa3;--line:#dfe5e9;--muted:#64748b;--paper:#f7f9fa;--amber:#f3b45a;--green:#3b8d68}*{box-sizing:border-box}body{margin:0;background:#e9eef1;color:#172b3d;font:14px/1.4 'DM Sans',Arial,sans-serif}.shell{min-height:100vh;background:#f7f9fa}.sidebar{display:none}main{max-width:1504px;margin:auto;background:#fff;box-shadow:0 0 30px #17304d12;min-height:100vh}.topbar{height:58px;display:flex;align-items:center;padding:0 18px;background:var(--navy);color:#fff;gap:28px}.topbrand{font-weight:700;color:#fff;text-decoration:none;font-size:15px;white-space:nowrap}.topbrand span{display:block;font-size:8px;letter-spacing:.1em;color:#a7bac7}.topnav{display:flex;gap:8px;height:100%}.topnav a{color:#d9e2e8;text-decoration:none;padding:19px 13px 16px;border-bottom:3px solid transparent}.topnav a.active,.topnav a:hover{color:#fff;border-bottom-color:#5e9bd0}.topdate{margin-left:auto;text-align:right}.topdate h1{font-size:13px;margin:0}.eyebrow{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:#8da0ad;margin:0}.profile{width:34px;height:34px;display:grid;place-items:center;border-radius:50%;background:#fff;color:var(--navy);font-weight:700}.menu{display:none}.content{padding:0;background:#fff}.command-head{display:flex;justify-content:space-between;align-items:center;padding:22px 28px 17px;border-bottom:1px solid var(--line)}.command-head h2{font:500 30px Newsreader,Georgia,serif;margin:2px 0;color:#1c3347}.command-head p{margin:0;color:var(--muted)}.command-head p b{margin:0 8px;color:#aab6be}.command-meta{display:flex;gap:24px;align-items:center}.command-meta>div{border-left:1px solid var(--line);padding-left:20px}.command-meta span,.command-meta b{display:block}.command-meta span{font-size:11px;color:var(--muted)}.command-meta b{font-size:16px}.attention-button{border:1px solid #f1d5a5;background:#fff3df;color:#824d14;padding:12px 15px;border-radius:5px}.attention-button strong{margin-left:25px}.filter-row{display:flex;gap:8px;padding:9px 28px;border-bottom:1px solid var(--line);align-items:center}.filter,.secondary{border:1px solid var(--line);background:#fff;border-radius:6px;padding:8px 13px;color:#29485f;font:13px 'DM Sans'}.filter b{margin-left:5px;padding:2px 6px;border-radius:10px;background:#e9eef2}.filter.active{background:var(--navy);color:#fff}.filter.active b{background:#3d566a}.filter-spacer{flex:1}.command-layout{display:grid;grid-template-columns:1fr 440px;height:620px}.map-panel{position:relative;overflow:hidden;border-right:1px solid var(--line);background:#d7e2e7}.map-panel .leaflet-container{height:100%;width:100%}.map-tools{position:absolute;z-index:1000;top:16px;left:16px}.map-label{display:block;background:#fff;padding:9px 12px;color:#234760}.map-legend{position:absolute;z-index:1000;bottom:14px;left:16px;background:#fff;padding:8px 12px;font-size:11px}.pin-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin:0 5px 0 10px}.pin-dot:first-child{margin-left:0}.live-dot{background:var(--green)}.planned-dot{background:#326e9d}.depot-dot{background:var(--navy)}.jobs-panel{overflow:auto;background:#fff}.jobs-tabs{display:flex;gap:20px;padding:16px 18px;border-bottom:1px solid var(--line)}.jobs-tabs b{padding-bottom:14px;border-bottom:3px solid var(--navy)}.jobs-tabs span{color:var(--muted)}.jobs-tabs i{font-style:normal;background:#eef2f4;border-radius:10px;padding:2px 6px}.sort-row{display:flex;justify-content:space-between;align-items:center;padding:10px 18px;color:var(--muted);font-size:12px;border-bottom:1px solid var(--line)}.job-row{display:grid;grid-template-columns:48px 1fr 78px 12px;gap:10px;padding:16px 15px;border-left:3px solid var(--amber);border-bottom:1px solid var(--line)}.job-time{font-weight:700}.job-time small{display:block;color:var(--muted);font-size:10px;font-weight:400}.job-info strong{display:block}.job-info small{display:block;color:var(--muted);font-size:11px;margin:3px 0 7px}.job-info span{display:inline-block;background:#e8f0f5;color:#325873;border-radius:4px;padding:3px 6px;font-size:10px;margin-right:4px}.job-person b{display:grid;place-items:center;background:#e1ebf1;color:#214762;border-radius:50%;width:30px;height:30px;font-size:10px}.job-person small{display:block;font-size:10px;margin-top:3px;color:#315976}.job-row>em{font-size:22px;color:#71808d;font-style:normal}.timeline{padding:14px 28px 18px;border-top:1px solid var(--line);background:#fff}.timeline-label{display:flex;gap:70px;font-size:11px;margin-bottom:6px}.timeline-row{display:grid;grid-template-columns:120px 1fr;min-height:33px;align-items:center}.timeline-row strong{font-size:11px}.timeline-row>div{height:23px;position:relative;background:repeating-linear-gradient(90deg,#fff 0,#fff calc(12.5% - 1px),#e2e8ec calc(12.5% - 1px),#e2e8ec 12.5%)}.bar-job{position:absolute;top:3px;height:17px;background:#b8d1e6;color:#234760;border-radius:3px;padding:2px 8px;font-size:10px}.bar-job.dark{background:#2e6590;color:#fff}.dispatch-head,.dispatch-foot,.map-footer{display:none}.primary{background:var(--navy);color:#fff;border:0;border-radius:5px;padding:10px 15px}.view-head{padding:28px}.view-head h2{font:500 30px Newsreader,Georgia,serif}@media(max-width:900px){.topbar{padding:0 14px;gap:12px}.topnav{display:none}.menu{display:block;background:none;color:white;border:0;font-size:20px}.topdate{display:none}.command-head{align-items:start;gap:15px;flex-direction:column}.command-meta{display:none}.filter-row{overflow:auto}.command-layout{grid-template-columns:1fr;height:auto}.map-panel{height:460px;border-right:0}.jobs-panel{max-height:none}.timeline{display:none}}
main{width:100%;max-width:none;margin:0;box-shadow:none}
.profile{width:auto;min-width:34px;height:34px;padding:0 11px;border:0;border-radius:18px;white-space:nowrap;cursor:pointer;font:600 12px 'DM Sans',Arial,sans-serif}.profile.signed-in{background:#dcecf5}
.onboarding{position:fixed;inset:0;z-index:3000;display:grid;place-items:center;padding:24px;background:#172b3dcc;backdrop-filter:blur(5px)}.onboarding[hidden]{display:none}.onboarding-card{position:relative;width:min(520px,100%);padding:38px;background:#fff;border-radius:10px;box-shadow:0 24px 80px #10233455}.onboarding-progress{display:flex;gap:7px;color:#6b8090;font-size:11px;letter-spacing:.08em;text-transform:uppercase}.onboarding-progress span:first-child{color:#2d6fa3;font-weight:700}.onboarding-close{position:absolute;right:24px;top:22px;border:0;background:none;color:#71808d;font:13px 'DM Sans';cursor:pointer}.onboarding-card h2{margin:22px 0 8px;color:#172b3d;font:500 34px/1.05 Newsreader,Georgia,serif}.onboarding-copy{color:#64748b;margin:0 0 28px}.onboarding-card label{display:block;margin-bottom:8px;font-size:12px;font-weight:700;color:#29485f}.onboarding-card input{width:100%;border:1px solid #bdccd6;border-radius:5px;padding:13px 14px;font:14px 'DM Sans';color:#172b3d}.onboarding-options{display:grid;gap:8px}.onboarding-options[hidden]{display:none}.onboarding-option{border:1px solid #cbd7df;background:#fff;border-radius:5px;text-align:left;padding:12px 14px;color:#29485f;font:14px 'DM Sans';cursor:pointer}.onboarding-option:hover,.onboarding-option.selected{border-color:#2d6fa3;background:#edf5fa;color:#173f5f}.onboarding-next{display:flex;justify-content:space-between;align-items:center;width:100%;margin-top:24px;font-size:14px}.onboarding-next span{font-size:18px}@media(max-width:600px){.onboarding-card{padding:28px 22px}.onboarding-card h2{font-size:30px}}
.view-head{display:flex;justify-content:space-between;align-items:end;border-bottom:1px solid var(--line);padding:30px 28px 24px}.view-head h2{margin:4px 0;font:500 34px Newsreader,Georgia,serif}.view-head>div>p:last-child{margin:0;color:var(--muted)}.toolbar{display:flex;gap:10px;align-items:center;padding:18px 28px;background:#f8fafb;border-bottom:1px solid var(--line)}.toolbar input{width:300px;border:1px solid #cbd7df;border-radius:5px;padding:10px 12px;font:13px 'DM Sans'}.toolbar select{border:1px solid #cbd7df;border-radius:5px;background:#fff;padding:10px 12px;color:#29485f}.table-panel{margin:0 28px 28px;border:1px solid var(--line);border-radius:6px;overflow:hidden}.table-row{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:18px;align-items:center;padding:16px 18px;border-top:1px solid var(--line);min-height:62px}.table-row:first-child{border-top:0}.table-row span{min-width:0}.table-row strong,.table-row small{display:block}.table-row small{color:var(--muted);font-size:11px;margin-top:3px}.table-head{background:#f5f8fa;color:#637789;text-transform:uppercase;letter-spacing:.08em;font-size:10px;min-height:42px;padding-top:10px;padding-bottom:10px}.status{display:inline-block;width:max-content;background:#eef4f7;color:#315873;border-radius:4px;padding:5px 8px;font-size:11px}.status.done{background:#e4f2eb;color:#26704f}.tag{color:#315873}.week{display:flex;gap:18px;align-items:center;margin:0 28px 18px;padding:14px 0}.week button{border:1px solid var(--line);background:#fff;border-radius:5px;padding:7px 12px}.diary-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin:0 28px}.day{min-height:180px;border:1px solid var(--line);border-radius:6px;padding:16px;background:#fff}.day b{display:block}.job-chip{display:inline-block;margin:14px 0;background:#e6f0f6;color:#315873;border-radius:4px;padding:5px 8px;font-size:11px}.day p{font-weight:600}.day small{color:var(--muted)}.report-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:0 28px}.report-card{border:1px solid var(--line);border-radius:6px;padding:20px}.report-card p,.report-card small{color:var(--muted)}.report-card strong{display:block;font-size:30px;margin:14px 0}.bar{height:7px;background:#e8eef2;border-radius:5px;overflow:hidden}.bar i{display:block;height:100%;background:#2d6fa3;border-radius:5px}@media(max-width:900px){.view-head{align-items:start;gap:18px;flex-direction:column}.table-panel{margin:0 14px 20px;overflow:auto}.table-row{min-width:720px}.toolbar{padding:14px}.diary-grid,.report-grid{grid-template-columns:1fr;margin:0 14px}.week{margin:0 14px}}
