@charset "UTF-8";
:root{font-family:Inter,"Segoe UI",Arial,sans-serif;font-size:16px;color:#1b3447;background:#f3f6f8;font-synthesis:none;--navy:#112d42;--muted:#63788a;--orange:#d76425;--line:#dce5eb;--green:#147866;--shadow:0 12px 35px #12324912}
*{box-sizing:border-box}body{margin:0}button,input,textarea,select{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:wait;opacity:.55}a{color:inherit}h1,h2,h3,p{margin:0}h1{font-size:1.75rem;letter-spacing:-.055rem;font-weight:650}h2{font-size:1.35rem;letter-spacing:-.025rem}h3{font-size:1rem}button:focus-visible,a:focus-visible{outline:3px solid #ea8e4d;outline-offset:3px}input:focus,textarea:focus,select:focus{outline:2px solid #3c8198;outline-offset:1px}.icon{width:20px;height:20px;flex-shrink:0;vertical-align:middle}.muted{color:var(--muted)}.small{font-size:.875rem}.mono{font-variant-numeric:tabular-nums}.hidden{display:none!important}.skip-link{position:fixed;top:-100px;left:16px;z-index:10000;padding:12px;background:#fff}.skip-link:focus{top:10px}.boot{min-height:100dvh;display:grid;align-content:center;justify-content:center;gap:16px;text-align:center}.boot strong{letter-spacing:.12em;color:var(--navy);font-size:2rem}
.login{display:grid;grid-template-columns:minmax(360px,45%) 1fr;min-height:100dvh;background:#fff}.login-brand{background:var(--navy);color:#fff;padding:clamp(32px,5vw,80px);display:flex;flex-direction:column;justify-content:space-between;gap:80px;position:relative;overflow:hidden}.wordmark{font-size:1.5rem;letter-spacing:.055em;font-weight:750}.wordmark span{color:#f39b60}.brand-caption{color:#8ba7ba;font-size:.875rem;margin-top:8px}.login-brand h1{font-size:clamp(2.25rem,4vw,3.9rem);line-height:1.08;font-weight:600;max-width:500px;letter-spacing:-.08rem}.login-brand p{color:#b9cedd;line-height:1.7;margin-top:25px;max-width:410px}.login-benefits{display:flex;gap:24px;border-top:1px solid #ffffff26;padding-top:24px;font-size:.875rem;color:#cfdeea;flex-wrap:wrap}.login-benefits span{display:flex;gap:8px;align-items:center}.login-form-area{display:flex;align-items:center;justify-content:center;padding:35px}.login-form{width:100%;max-width:410px}.eyebrow{text-transform:uppercase;letter-spacing:.12em;color:var(--muted);font-size:.75rem;font-weight:650;margin-bottom:18px}.login-form h2{font-size:1.8rem;margin-bottom:12px}.login-form>p{color:var(--muted);line-height:1.6;margin-bottom:30px}.login-form .field{margin-bottom:18px}.login-form .button{width:100%;margin-top:6px;justify-content:space-between;padding:15px 18px}.login-note{border-top:1px solid var(--line);margin-top:32px;padding-top:20px;font-size:.875rem;line-height:1.6;color:var(--muted)}.login-note a{color:#326e88}
.shell{display:grid;grid-template-columns:224px minmax(0,1fr);min-height:100dvh}.sidebar{position:sticky;top:0;height:100dvh;background:var(--navy);color:#c7d8e5;padding:31px 18px 20px;display:flex;flex-direction:column;z-index:100}.sidebar .brand{padding:0 13px 39px;color:#fff}.sidebar .wordmark{font-size:1.4rem}.sidebar-label{padding:0 13px;color:#6e94ae;letter-spacing:.12em;text-transform:uppercase;font-size:.75rem;margin-bottom:12px}.nav-item{display:flex;align-items:center;gap:13px;min-height:49px;padding:12px 13px;margin:3px 0;border-radius:7px;text-decoration:none;font-size:.9375rem;color:#bad0df;position:relative}.nav-item:hover{background:#ffffff0a;color:#fff}.nav-item.active{background:#24485f;color:#fff}.nav-item.active::before{content:"";position:absolute;left:-18px;top:11px;bottom:11px;background:#ef8c49;width:3px}.nav-count{margin-left:auto;background:#ef8c4929;color:#ffc9a7;border-radius:5px;font-size:.75rem;padding:2px 6px}.sidebar-bottom{margin-top:auto;padding-top:28px}.connection-box{border:1px solid #385569;padding:13px;border-radius:7px;margin-bottom:18px;font-size:.875rem;line-height:1.5}.connection-box small{display:block;color:#91aec1;margin-top:5px;font-size:.75rem}.online-dot{height:7px;width:7px;border-radius:50%;background:#55bc9e;display:inline-block;margin-right:8px}.online-dot.offline{background:#f2ab57}.user-chip{display:flex;gap:10px;align-items:center;padding:5px}.avatar{display:grid;place-items:center;background:#325569;color:#d3e8f2;width:35px;height:35px;border-radius:8px;flex-shrink:0;font-weight:650}.user-chip strong{font-size:.875rem;display:block;color:#f1f6fa;word-break:break-word}.user-chip small{display:block;color:#91aec1;font-size:.75rem;margin-top:4px}.user-actions{display:flex;justify-content:space-between;margin-top:13px}.user-actions button{color:#a7c1d2;background:none;border:0;padding:8px;font-size:.8125rem}.user-actions button:hover{color:#fff}
.main{padding:28px 32px 22px;min-width:0}.topbar{display:flex;align-items:center;gap:18px;justify-content:space-between;margin-bottom:25px}.topbar .crumb{font-size:.8125rem;color:var(--muted);margin-bottom:8px}.topbar-actions{display:flex;gap:10px;align-items:center}.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;padding:10px 15px;border:1px solid var(--line);border-radius:7px;background:#fff;color:#294b61;font-size:.875rem;font-weight:550;line-height:1.3;white-space:nowrap;text-decoration:none}.button:hover{background:#f4f8fa;border-color:#bacdd9}.button.primary{background:var(--orange);color:#fff;border-color:var(--orange);box-shadow:0 2px 3px #b6571820}.button.primary:hover{background:#bd551e}.button.navy{background:var(--navy);color:#fff;border-color:var(--navy)}.button.danger{color:#b84232;background:#fff5f2;border-color:#f1c9bd}.button.icon-button{padding:9px;min-width:40px}.button.ghost{background:transparent;border-color:transparent;color:var(--muted)}.button .icon{width:17px;height:17px}.mobile-menu{display:none}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:22px}.stat{background:#fff;border:1px solid var(--line);padding:17px 19px;border-radius:9px;display:flex;justify-content:space-between;align-items:center}.stat-label{font-size:.8125rem;color:var(--muted)}.stat-value{font-size:1.8rem;font-weight:600;margin-top:8px;line-height:1.1;letter-spacing:-.07rem}.stat .icon{color:#7290a4;width:23px;height:23px}.stat.attention .stat-value{color:var(--orange)}
.panel{background:#fff;border:1px solid var(--line);border-radius:10px;overflow:hidden}.panel-head{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:19px 21px;border-bottom:1px solid #e8eef2}.panel-head h2{font-size:1rem}.panel-head p{font-size:.8125rem;color:var(--muted);margin-top:6px}.monitor{display:grid;grid-template-columns:320px minmax(0,1fr);height:calc(100dvh - 270px);min-height:440px;max-height:1000px;background:#fff;border:1px solid var(--line);border-radius:10px;overflow:hidden}.fleet-column{display:flex;flex-direction:column;border-right:1px solid var(--line);min-height:0}.fleet-head{padding:19px 18px 15px;border-bottom:1px solid var(--line)}.fleet-head>div:first-child{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.fleet-head h2{font-size:1rem}.search-field{position:relative;display:block}.search-field>.icon{position:absolute;left:12px;top:12px;color:#7890a1;width:17px;height:17px}.search-field input{width:100%;padding:11px 12px 11px 38px;border:1px solid var(--line);border-radius:6px;background:#fafcfd;min-height:41px;font-size:.875rem}.fleet-items{overflow:auto;flex:1;padding:7px}.vehicle-card{border:1px solid transparent;background:#fff;width:100%;text-align:left;padding:15px 13px;border-radius:7px;margin:3px 0;color:inherit}.vehicle-card:hover{background:#f4f8fa}.vehicle-card.selected{background:#eef5f9;border-color:#c5dbe7}.vehicle-top{display:flex;justify-content:space-between;align-items:center;gap:8px}.plate{font-weight:650;letter-spacing:.025em;font-size:1rem}.vehicle-card .driver-name{font-size:.875rem;color:#536e82;margin-top:10px}.vehicle-card .vehicle-trip{font-size:.8125rem;margin-top:8px;line-height:1.55;color:#718697}.vehicle-card .vehicle-bottom{display:flex;justify-content:space-between;margin-top:12px;font-size:.75rem;color:#7991a2}.signal{font-size:.75rem;color:#147866;display:flex;align-items:center;gap:5px}.signal::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.signal.stale{color:#8a96a1}.map-column{position:relative;min-height:0;display:flex;flex-direction:column}.map-area{min-height:280px;flex:1;background:#e4edf0;isolation:isolate}.map-caption{position:absolute;top:16px;left:16px;max-width:calc(100% - 32px);background:#ffffffed;border:1px solid #d9e4eb;padding:10px 13px;border-radius:6px;z-index:500;color:#3c5d71;font-size:.8125rem;box-shadow:var(--shadow);pointer-events:none}.map-caption strong{display:block;font-weight:600}.map-caption small{display:block;font-size:.75rem;margin-top:5px;color:var(--muted)}.map-detail{padding:15px 20px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:14px;font-size:.875rem;min-height:81px}.map-detail p{color:var(--muted);margin-top:6px;font-size:.8125rem;line-height:1.5}.map-detail strong{font-size:.9375rem}.stop-marker span{display:grid;place-items:center;background:#183d56;color:#fff;width:30px;height:30px;border:2px solid #fff;border-radius:50%;font-family:inherit;font-weight:bold;box-shadow:0 2px 7px #0003}.leaflet-container{font-family:inherit}.leaflet-control-attribution{font-size:12px!important}.leaflet-tooltip{font-family:inherit;font-size:13px;line-height:1.6;border-radius:5px;padding:8px 11px}
.toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:17px;flex-wrap:wrap}.filters{display:flex;align-items:center;gap:10px;flex-wrap:wrap;flex:1}.filters .search-field{min-width:180px;max-width:290px;flex:1}.filters select{min-height:41px;border:1px solid var(--line);border-radius:6px;background:#fff;padding:9px 29px 9px 12px;font-size:.875rem;color:#36566c;max-width:260px}.table-wrap{overflow:auto}.data-table{border-collapse:collapse;width:100%;min-width:720px;font-size:.875rem;text-align:left}.data-table thead{background:#f6f9fb;color:#6d8394}.data-table th{font-size:.75rem;letter-spacing:.015em;font-weight:550;padding:14px 18px;white-space:nowrap;border-bottom:1px solid var(--line)}.data-table td{padding:17px 18px;border-bottom:1px solid #eaf0f3;vertical-align:middle}.data-table tbody tr:last-child td{border:0}.data-table tr.clickable{cursor:pointer}.data-table tr.clickable:hover{background:#f6fafc}.data-table tr.selected{background:#edf5f9}.cell-title{font-weight:550;color:#203e53;line-height:1.5}.cell-sub{color:var(--muted);margin-top:5px;font-size:.8125rem;line-height:1.4}.row-link{border:0;background:none;text-align:left;padding:0;color:inherit;font-weight:inherit;font-size:inherit}.row-link:hover{text-decoration:underline}.badge{display:inline-flex;align-items:center;gap:6px;border-radius:5px;background:#ecf1f5;color:#5c7385;font-size:.75rem;font-weight:550;padding:6px 8px;white-space:nowrap}.badge>span{width:5px;height:5px;background:currentColor;border-radius:50%}.badge.started{background:#e7f3ee;color:#16715e}.badge.assigned,.badge.open{background:#edf3fb;color:#466c9b}.badge.accepted{background:#e9f1f8;color:#2d678d}.badge.completed,.badge.approved,.badge.done,.badge.received{background:#e8f3ed;color:#438068}.badge.needs_correction{background:#fff0e6;color:#b85c24}.badge.pending{background:#fff5df;color:#a67a1d}.badge.cancelled{background:#f7eaeb;color:#9d5c5c}.badge.arrived{background:#ecf0fb;color:#6177a6}.panel-foot{display:flex;justify-content:space-between;padding:13px 18px;border-top:1px solid var(--line);font-size:.8125rem;color:var(--muted)}.details{margin-top:20px;background:#fff;border:1px solid var(--line);border-radius:10px;overflow:hidden}.detail-heading{padding:21px 22px;display:flex;align-items:flex-start;justify-content:space-between;gap:18px;border-bottom:1px solid var(--line)}.detail-heading h2{margin-top:7px;font-size:1.3rem}.detail-heading p{margin-top:9px;color:var(--muted);line-height:1.6;font-size:.875rem}.actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.detail-content{padding:22px;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(250px,1fr);gap:32px}.section-label{font-size:.75rem;font-weight:650;text-transform:uppercase;letter-spacing:.09em;color:#7a90a1;margin-bottom:17px}.timeline{display:flex;flex-direction:column;gap:0}.stop{position:relative;display:flex;gap:16px;padding-bottom:25px}.stop:not(:last-child)::after{content:"";position:absolute;left:15px;top:37px;bottom:3px;border-left:1px dashed #c2d2dc}.stop-number{background:#edf4f8;width:32px;height:32px;display:grid;place-items:center;border-radius:50%;flex-shrink:0;font-size:.8125rem;font-weight:650;color:#3f667e}.stop-number.done{background:#e5f3eb;color:#227256}.stop h3{font-size:.9375rem;line-height:1.5}.stop .meta{font-size:.8125rem;color:var(--muted);margin-top:7px;line-height:1.7}.stop .badge{margin-top:9px}.facts{display:grid;grid-template-columns:1fr 1fr;gap:23px 18px}.facts dt{color:var(--muted);font-size:.8125rem;margin-bottom:7px}.facts dd{margin:0;font-size:.875rem;line-height:1.6}.note{background:#f5f8fa;border-left:3px solid #bfd1dd;padding:13px 15px;margin-top:22px;font-size:.875rem;line-height:1.6;color:#4a687d;white-space:pre-wrap;overflow-wrap:anywhere}.empty{padding:55px 22px;text-align:center;color:#698295}.empty>.icon{width:35px;height:35px;margin-bottom:16px;color:#91a9b9}.empty h3{color:#375b72;margin-bottom:8px}.empty p{font-size:.875rem;line-height:1.6;max-width:390px;margin:auto}.request-strip{display:flex;gap:10px;overflow:auto;margin-bottom:16px}.request-card{padding:14px 16px;border:1px solid #eedbb5;background:#fffaf0;border-radius:7px;min-width:230px;max-width:320px}.request-card strong{font-size:.875rem}.request-card p{font-size:.8125rem;color:#8f7753;margin-top:6px;line-height:1.5}.request-card button{margin-top:10px}.document-file{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid #eaf0f3}.file-glyph{width:35px;height:42px;display:grid;place-items:center;border-radius:5px;background:#ecf3f7;color:#52788f;flex-shrink:0}.document-file .name{flex:1;min-width:0}.document-file strong{display:block;font-size:.875rem;overflow-wrap:anywhere;font-weight:550}.document-file small{font-size:.75rem;color:var(--muted);display:block;margin-top:5px}.comment{padding:13px 0;border-bottom:1px solid #eaf0f3}.comment-header{display:flex;justify-content:space-between;gap:9px;font-size:.75rem;color:var(--muted);margin-bottom:8px}.comment p{font-size:.875rem;line-height:1.65;white-space:pre-wrap;overflow-wrap:anywhere}.queue-card{background:#f0f5f8;border:1px solid #d7e3eb;border-radius:8px;padding:16px 18px;margin-bottom:17px}.queue-card p{font-size:.875rem;line-height:1.6;margin-top:5px;color:var(--muted)}.queue-item{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:13px 0;border-top:1px solid #d7e3eb;font-size:.875rem}.queue-item:first-of-type{margin-top:12px}.queue-error{color:#b66640!important;max-width:700px}
dialog{padding:0;border:0;border-radius:12px;width:min(560px,calc(100vw - 32px));max-height:calc(100dvh - 36px);box-shadow:0 28px 100px #09273c40;color:inherit}dialog::backdrop{background:#0b253d7a;backdrop-filter:blur(3px)}dialog.wide-modal{width:min(890px,calc(100vw - 32px))}#modal-form{display:flex;flex-direction:column;max-height:calc(100dvh - 36px)}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:24px 27px 20px;gap:20px;border-bottom:1px solid var(--line);flex-shrink:0}.modal-header h2{font-size:1.25rem}.modal-header p{font-size:.8125rem;line-height:1.5;color:var(--muted);margin-top:8px}.modal-body{padding:25px 27px;overflow-y:auto;min-height:0}.modal-footer{padding:18px 27px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap;flex-shrink:0}.form-error{color:#b24837;font-size:.875rem;line-height:1.5}.modal-footer .form-error{flex:1;min-width:100%;empty-cells:hide}.form-error:empty{display:none}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.field{display:flex;flex-direction:column;gap:9px;min-width:0}.field.wide{grid-column:1/-1}.field>span{font-size:.875rem;font-weight:550;color:#3d5d72}.field b{color:#bc602f;font-weight:500}.field input,.field select,.field textarea{padding:11px 12px;border:1px solid #cbd9e3;border-radius:6px;background:#fff;color:#27495f;min-height:43px;max-width:100%;width:100%;font-size:.9375rem}.field textarea{resize:vertical}.field input::placeholder{color:#96a9b6}.field small{color:var(--muted);font-size:.75rem;line-height:1.5}.form-section{margin-top:28px}.form-section-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:15px}.stop-form{border:1px solid var(--line);padding:19px;border-radius:8px;margin-bottom:15px;background:#fafcfd}.stop-form-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.stop-form-head h3{font-size:.9375rem}.stop-form .form-grid{grid-template-columns:1fr 1fr;gap:14px}.upload-picker{display:block;text-align:center;border:1px dashed #a9c2d4;background:#f6fafc;border-radius:8px;padding:22px 15px;cursor:pointer;margin-top:20px}.upload-picker .icon{width:27px;height:27px;color:#567c94;margin-bottom:10px}.upload-picker span{display:block;font-size:.9375rem;font-weight:550}.upload-picker small{font-size:.8125rem;color:var(--muted);display:block;line-height:1.6;margin-top:7px}.upload-picker input{display:block;margin:15px auto 0;max-width:100%;font-size:.8125rem}.upload-file{display:flex;align-items:center;gap:9px;padding:11px 0;border-bottom:1px solid var(--line)}.upload-file .file-label{flex:1;min-width:0;font-size:.875rem;overflow-wrap:anywhere}.upload-file small{display:block;color:var(--muted);font-size:.75rem;margin-top:5px}.upload-file .button{min-width:32px;min-height:32px;padding:6px}.preview-image{max-width:100%;max-height:65dvh;object-fit:contain;display:block;margin:auto}.preview-pdf{width:100%;height:65dvh;border:0;background:#eaf0f4}.notifications{position:fixed;right:25px;bottom:25px;display:flex;flex-direction:column;align-items:flex-end;gap:10px;z-index:3000;pointer-events:none;max-width:calc(100vw - 50px)}.toast{background:#163d52;color:#fff;border:1px solid #ffffff2e;border-radius:8px;box-shadow:0 8px 30px #112d4230;padding:15px 20px;max-width:480px;font-size:.875rem;line-height:1.6;pointer-events:auto}.toast.error{background:#873c31}.page-note{font-size:.75rem;color:#8196a5;margin-top:15px;line-height:1.6}.history-list{max-height:450px;overflow:auto}.history-row{display:flex;justify-content:space-between;gap:14px;padding:13px 0;border-bottom:1px solid var(--line);font-size:.875rem}.history-row time{color:var(--muted);white-space:nowrap}
@media(min-width:1600px){.main{padding:35px 45px}.monitor{grid-template-columns:350px minmax(0,1fr)}}
@media(max-width:1200px){.shell{grid-template-columns:195px minmax(0,1fr)}.sidebar{padding-left:13px;padding-right:13px}.sidebar .brand{padding-left:8px}.nav-item.active::before{left:-13px}.main{padding:23px 22px}.monitor{grid-template-columns:275px minmax(0,1fr)}.stat{padding:15px}.stat .icon{display:none}.detail-content{gap:22px}.detail-heading{flex-wrap:wrap}}
@media(max-width:960px){.shell{grid-template-columns:1fr}.sidebar{display:none;position:fixed;width:240px;box-shadow:12px 0 50px #122e4350}.shell.menu-open .sidebar{display:flex}.mobile-menu{display:inline-flex}.topbar{gap:12px}.topbar .crumb{display:none}.topbar h1{font-size:1.5rem}.topbar-actions .refresh-label{display:none}.topbar-actions .button{padding:10px}.main{padding:21px 20px}.monitor{height:calc(100dvh - 230px)}.login-brand{padding:40px 30px}.login-brand h1{font-size:2.7rem}.login{grid-template-columns:40% 60%}}
@media(max-width:680px){.login{display:block}.login-brand{padding:27px;gap:28px}.login-brand h1{font-size:2rem}.login-brand p,.login-benefits,.brand-caption{display:none}.login-form-area{padding:35px 25px}.main{padding:17px 13px}.topbar{margin-bottom:17px;flex-wrap:wrap}.topbar>div:nth-child(2){flex:1}.topbar-actions{width:100%;justify-content:flex-end}.stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-bottom:14px}.stat{padding:13px 15px}.stat-label{font-size:.75rem}.stat-value{font-size:1.5rem;margin-top:7px}.monitor{display:flex;flex-direction:column;height:auto;max-height:none;min-height:0}.fleet-column{border-right:0;max-height:280px;min-height:180px}.fleet-head{padding:13px}.fleet-head>div:first-child{margin-bottom:10px}.fleet-items{padding:5px;min-height:90px}.vehicle-card{padding:10px}.vehicle-card .vehicle-trip{display:none}.vehicle-card .driver-name{margin-top:5px}.vehicle-card .vehicle-bottom{margin-top:6px}.map-column{min-height:400px}.map-area{min-height:330px}.map-detail{padding:13px;flex-wrap:wrap}.map-caption{top:10px;left:10px;font-size:.75rem;max-width:calc(100% - 20px)}.filters{width:100%}.filters .search-field{max-width:none;min-width:100%}.filters select{flex:1;min-width:0;max-width:100%}.toolbar>.actions{width:100%;justify-content:flex-end}.detail-content{grid-template-columns:1fr;padding:18px}.detail-heading{padding:18px}.detail-heading .actions{width:100%}.details .actions .button{white-space:normal}.modal-header{padding:19px}.modal-body{padding:19px}.modal-footer{padding:15px 19px}.form-grid,.stop-form .form-grid{grid-template-columns:1fr}.stop-form{padding:14px}.document-file{flex-wrap:wrap}.document-file .name{min-width:65%}.button{font-size:.8125rem}.panel-head{padding:16px}.panel-head .actions{flex-wrap:wrap}.page-note{padding:0 4px}}
@media(prefers-reduced-motion:no-preference){.button,.nav-item,.vehicle-card{transition:background .15s,border-color .15s}.toast{animation:enter .16s ease-out}@keyframes enter{from{transform:translateY(8px);opacity:0}to{transform:translateY(0);opacity:1}}}
@media(max-height:740px) and (min-width:961px){.stats{margin-bottom:15px;gap:12px}.stat{padding:10px 16px}.stat-value{font-size:1.45rem;margin-top:4px}.topbar{margin-bottom:17px}.monitor{height:calc(100dvh - 220px);min-height:360px}.main{padding-top:20px}.sidebar .brand{padding-bottom:28px}.sidebar{padding-top:25px}}

/* Essential operational labels stay readable on compact screens. */
.badge,.stat-label,.stop .meta{font-size:.875rem}@media(max-width:680px){.button,.stat-label{font-size:.875rem}}

dialog.route-modal{width:min(1440px,calc(100vw - 32px));height:calc(100dvh - 36px)}.route-modal #modal-form{height:100%}.route-modal .modal-header{padding:18px 24px}.route-modal .modal-body{padding:0;flex:1;overflow:hidden}.route-modal .modal-footer{padding:12px 24px}.route-modal .modal-footer .form-error{min-width:0;flex-basis:320px}.planner-layout{display:grid;grid-template-columns:390px minmax(0,1fr);height:100%;min-height:0}.planner-controls{overflow-y:auto;border-right:1px solid var(--line);background:#fafcfd}.planner-section{padding:20px;border-bottom:1px solid var(--line)}.planner-section h3,.planner-section summary{font-weight:650;margin-bottom:12px}.planner-section summary{cursor:pointer}.planner-section>p{line-height:1.6;margin-bottom:15px}.planner-section .form-grid{gap:12px}.planner-point{background:white;border:1px solid var(--line);border-radius:8px;padding:13px;margin-top:14px}.planner-point-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.planner-point-head>div{display:flex;gap:3px}.planner-point-head .button{padding:5px;min-width:30px;min-height:30px}.planner-point input,.planner-point select{padding:8px;font-size:.875rem}.point-empty{font-size:.875rem;color:var(--muted);padding:20px 0 0;line-height:1.6}.check-field{display:flex;align-items:center;gap:8px;font-size:.875rem}.check-field input{width:18px;height:18px}.planner-map-column{min-width:0;min-height:0;display:flex;flex-direction:column;position:relative}#route-builder-map{flex:1;min-height:250px;cursor:crosshair;background:#edf1f4}.planner-map-hint{position:absolute;top:15px;left:65px;right:15px;z-index:450;background:#fffef4eb;padding:10px 14px;border-radius:6px;box-shadow:0 3px 12px #112d4220;font-size:.875rem;line-height:1.5;pointer-events:none}.route-result{padding:18px 24px;display:flex;align-items:baseline;gap:10px 24px;flex-wrap:wrap;background:white;border-top:1px solid var(--line);font-size:.9375rem}.route-result strong{color:#245ab0;font-size:1.7rem;font-variant-numeric:tabular-nums}.route-result small{flex-basis:100%;color:var(--muted);font-size:.875rem}.route-note{font-size:.8125rem;padding:0 24px 16px;line-height:1.5;color:var(--muted);background:white}.via-marker span{background:#fff!important;color:#245ab0!important;border:2px solid #2467cf!important}.route-trip-summary{background:#edf4ff;border:1px solid #cddff9;border-radius:7px;padding:14px;margin:0 0 18px;font-size:.9375rem}.route-trip-summary p{margin:9px 0 13px;color:#486583;font-size:.875rem;line-height:1.5}.topbar-actions{flex-wrap:wrap}
@media(max-width:900px){.planner-layout{grid-template-columns:330px minmax(0,1fr)}.planner-section{padding:15px}.route-modal .modal-footer .form-error{min-width:100%}.planner-map-hint{font-size:.8125rem}.route-result{padding:14px}.route-note{padding:0 14px 12px}}
@media(max-width:680px){dialog.route-modal{width:calc(100vw - 12px);height:calc(100dvh - 12px);max-height:calc(100dvh - 12px)}.route-modal #modal-form{max-height:calc(100dvh - 12px)}.route-modal .modal-body{overflow-y:auto}.planner-layout{display:flex;flex-direction:column;height:auto}.planner-map-column{order:-1;height:390px;flex-shrink:0}.planner-controls{overflow:visible;border-right:0}.planner-section .form-grid{grid-template-columns:1fr 1fr}.route-modal .modal-header{padding:14px}.route-modal .modal-header p{display:none}.route-modal .modal-footer{padding:10px}.route-modal .modal-footer .button{flex:1;white-space:normal}.route-modal .modal-footer>[data-action="close-modal"]{display:none}.route-modal .modal-footer .form-error{font-size:.8125rem}.route-result strong{font-size:1.3rem}#route-builder-map{min-height:245px}}
