#vsmt-desktop-v19{--nav:#0b2941;--nav2:#103b5c;--green:#0f9d58;--green2:#e9f8ef;--red:#e53935;--orange:#f6a623;--purple:#7654ce;--cyan:#1aa4b4;--blue:#2b78e4;--bg:#f3f6f9;--card:#fff;--text:#172434;--muted:#6b7886;--line:#dfe6ed;--shadow:0 8px 28px rgba(25,51,73,.08);position:fixed;inset:0;z-index:40000;background:var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Arial;display:none}
#vsmt-desktop-v19 *{box-sizing:border-box}#vsmt-desktop-v19 button,#vsmt-desktop-v19 input,#vsmt-desktop-v19 select,#vsmt-desktop-v19 textarea{font:inherit}#vsmt-desktop-v19 button{cursor:pointer}
@media(min-width:900px){#vsmt-desktop-v19.v17-on{display:block}}
#vsmt-desktop-v19 .app{height:100vh;display:grid;grid-template-columns:270px 1fr}#vsmt-desktop-v19 .sidebar{background:linear-gradient(180deg,var(--nav),#071c2c);color:#fff;padding:16px 12px;overflow:auto;display:flex;flex-direction:column;gap:12px}#vsmt-desktop-v19 .brand{display:flex;gap:11px;align-items:center;padding:2px 8px 10px}#vsmt-desktop-v19 .logo{width:44px;height:44px;border-radius:13px;background:linear-gradient(135deg,#1dcc78,#07854a);display:grid;place-items:center;font-size:23px;box-shadow:0 7px 22px rgba(33,199,124,.25)}#vsmt-desktop-v19 .brand h1{font-size:16px;margin:0;color:#ffe95e;letter-spacing:.2px}#vsmt-desktop-v19 .brand p{font-size:10px;margin:4px 0 0;color:#cbdce8}#vsmt-desktop-v19 .nav-group-title{font-size:10px;text-transform:uppercase;letter-spacing:.12em;color:#83a2b9;padding:8px 10px 3px}#vsmt-desktop-v19 .nav{display:grid;gap:4px}#vsmt-desktop-v19 .nav button{border:0;background:transparent;color:#e8f2f8;padding:10px 12px;border-radius:10px;text-align:left;display:flex;align-items:center;gap:11px;font-size:12px}#vsmt-desktop-v19 .nav button span:first-child{width:18px;text-align:center}#vsmt-desktop-v19 .nav button:hover,#vsmt-desktop-v19 .nav button.active{background:linear-gradient(90deg,#0f7e4b,#116941);color:#fff}#vsmt-desktop-v19 .nav .lock{opacity:.58}#vsmt-desktop-v19 .side-card{border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.045);border-radius:12px;padding:11px}#vsmt-desktop-v19 .side-card h4{font-size:12px;margin:0 0 8px}#vsmt-desktop-v19 .side-card p{font-size:10px;color:#c8d7e1;margin:5px 0}#vsmt-desktop-v19 .progress{height:6px;background:rgba(255,255,255,.12);border-radius:10px;overflow:hidden;margin:5px 0 8px}#vsmt-desktop-v19 .progress i{height:100%;display:block;background:#22c77c}#vsmt-desktop-v19 .sidebar-spacer{flex:1}#vsmt-desktop-v19 .profile-mini{display:flex;gap:9px;align-items:center}#vsmt-desktop-v19 .avatar{width:37px;height:37px;border-radius:10px;background:#1aab67;display:grid;place-items:center;font-weight:800}#vsmt-desktop-v19 .profile-mini b{font-size:11px}#vsmt-desktop-v19 .profile-mini span{display:block;font-size:9px;color:#bdced9;margin-top:2px}
#vsmt-desktop-v19 .main{min-width:0;display:grid;grid-template-rows:64px 1fr}#vsmt-desktop-v19 .topbar{background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:10px;padding:0 17px}#vsmt-desktop-v19 .topbar h2{font-size:19px;margin:0}#vsmt-desktop-v19 .topbar .push{margin-left:auto}#vsmt-desktop-v19 .control,#vsmt-desktop-v19 .btn{border:1px solid var(--line);background:#fff;border-radius:9px;padding:8px 10px;min-height:38px}#vsmt-desktop-v19 .btn{font-weight:650}#vsmt-desktop-v19 .btn:hover{background:#f7fafc}#vsmt-desktop-v19 .btn.primary{background:var(--green);border-color:var(--green);color:#fff}#vsmt-desktop-v19 .btn.danger{background:var(--red);border-color:var(--red);color:#fff}#vsmt-desktop-v19 .btn.soft{background:var(--green2);border-color:#bfe5ce;color:#08733f}#vsmt-desktop-v19 .btn.warn{background:#fff6e4;border-color:#f1d394;color:#8a5a00}#vsmt-desktop-v19 .btn.locked{background:#f0f3f6;color:#86929e}
#vsmt-desktop-v19 .content{overflow:auto;padding:16px 18px 32px}#vsmt-desktop-v19 .notice{padding:10px 12px;border-radius:10px;background:#eef7ff;border:1px solid #cee5fb;color:#2e5a7b;font-size:11px;margin-bottom:12px}#vsmt-desktop-v19 .notice.good{background:#edf9f2;border-color:#c8ead7;color:#116b3d}#vsmt-desktop-v19 .card{background:#fff;border:1px solid #e7edf3;border-radius:13px;box-shadow:var(--shadow)}#vsmt-desktop-v19 .card-h{padding:12px 14px;border-bottom:1px solid #edf1f4;display:flex;align-items:center;gap:8px}#vsmt-desktop-v19 .card-h h3{margin:0;font-size:13px}#vsmt-desktop-v19 .card-b{padding:14px}
#vsmt-desktop-v19 .kpis{display:grid;grid-template-columns:repeat(6,minmax(130px,1fr));gap:11px}#vsmt-desktop-v19 .kpi{padding:13px;display:flex;gap:11px;align-items:center}#vsmt-desktop-v19 .kpi .ico{width:41px;height:41px;border-radius:11px;color:#fff;display:grid;place-items:center;font-size:18px}#vsmt-desktop-v19 .kpi b{font-size:21px}#vsmt-desktop-v19 .kpi span{display:block;color:var(--muted);font-size:10px;margin-top:2px}#vsmt-desktop-v19 .blue{background:#2879e9}#vsmt-desktop-v19 .green{background:#21a45d}#vsmt-desktop-v19 .orange{background:#f5a816}#vsmt-desktop-v19 .red{background:#e43836}#vsmt-desktop-v19 .purple{background:#7750d0}#vsmt-desktop-v19 .cyan{background:#22a4b4}
#vsmt-desktop-v19 .overview-grid{display:grid;grid-template-columns:215px minmax(520px,1fr) 315px;gap:12px;margin-top:12px}#vsmt-desktop-v19 .filter label{font-size:10px;color:#536272;display:block;margin:8px 0 4px}#vsmt-desktop-v19 .filter input,#vsmt-desktop-v19 .filter select{width:100%;border:1px solid var(--line);border-radius:8px;padding:8px;background:#fff}#vsmt-desktop-v19 .legend{display:grid;gap:7px;font-size:10px;margin:12px 0}#vsmt-desktop-v19 .dot{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px}
#vsmt-desktop-v19 .fake-map{position:relative;height:500px;background:linear-gradient(180deg,#eaf4fb,#edf3f7);overflow:hidden;border-radius:13px}#vsmt-desktop-v19 .fake-map svg{width:100%;height:100%;position:absolute;inset:0}#vsmt-desktop-v19 .map-tools{position:absolute;left:12px;top:12px;display:grid;gap:4px}#vsmt-desktop-v19 .map-tools button{width:34px;height:34px;background:#fff;border:1px solid #ced7df;border-radius:7px}#vsmt-desktop-v19 .map-legend{position:absolute;left:12px;bottom:12px;background:rgba(255,255,255,.96);border:1px solid #dbe4eb;border-radius:10px;padding:9px;font-size:10px;box-shadow:var(--shadow)}
#vsmt-desktop-v19 .incident-list{display:grid}#vsmt-desktop-v19 .incident{padding:11px 13px;border-bottom:1px solid #eef2f5;display:grid;grid-template-columns:34px 1fr auto;gap:9px;align-items:center}#vsmt-desktop-v19 .incident:last-child{border:0}#vsmt-desktop-v19 .incident .ii{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#fff3e8}#vsmt-desktop-v19 .incident b{font-size:11px}#vsmt-desktop-v19 .incident p{font-size:10px;color:var(--muted);margin:3px 0 0}#vsmt-desktop-v19 .incident .time{font-size:10px;font-weight:750;text-align:right}
#vsmt-desktop-v19 .table-card{margin-top:12px}#vsmt-desktop-v19 .table-wrap{overflow:auto;max-height:560px}#vsmt-desktop-v19 .table-count{font-size:10px;color:#6b7886;font-weight:700;margin-left:4px}#vsmt-desktop-v19 .table{width:100%;border-collapse:collapse;font-size:11px}#vsmt-desktop-v19 .table th,#vsmt-desktop-v19 .table td{padding:10px 11px;border-bottom:1px solid #edf1f4;text-align:left;white-space:nowrap}#vsmt-desktop-v19 .table th{position:sticky;top:0;background:#fbfcfd;color:#65717e;font-size:10px;z-index:1}#vsmt-desktop-v19 .badge{display:inline-block;padding:4px 8px;border-radius:999px;font-size:9px;font-weight:750}#vsmt-desktop-v19 .badge.ok{background:#e5f6eb;color:#126e3d}#vsmt-desktop-v19 .badge.bad{background:#fde8e8;color:#b62020}#vsmt-desktop-v19 .badge.warn{background:#fff2d9;color:#9a6400}#vsmt-desktop-v19 .badge.idle{background:#edf1f4;color:#65717c}#vsmt-desktop-v19 .right-note{font-size:9px;color:#71808d;margin-left:auto}#vsmt-desktop-v19 .role-chip{font-size:9px;padding:4px 7px;border-radius:999px;background:#eaf6ef;color:#08733f;font-weight:800}
#vsmt-desktop-v19 .toast{position:fixed;right:22px;bottom:22px;background:#142c3e;color:#fff;padding:11px 14px;border-radius:10px;box-shadow:0 12px 32px rgba(0,0,0,.24);display:none;z-index:40010;font-size:11px}#vsmt-desktop-v19 .toast.show{display:block}
#vsmt-desktop-v19 .v17-back{position:fixed;left:282px;bottom:14px;z-index:39999;border:1px solid #d7e1e8;background:#fff;color:#12324b;border-radius:10px;padding:9px 12px;font:700 12px/1 system-ui;box-shadow:0 6px 18px rgba(25,51,73,.12);display:none}
@media(max-width:1280px) and (min-width:900px){#vsmt-desktop-v19 .kpis{grid-template-columns:repeat(3,1fr)}#vsmt-desktop-v19 .overview-grid{grid-template-columns:200px 1fr}#vsmt-desktop-v19 .overview-grid>.card:last-child{grid-column:1/-1}}

/* P19 Stable Balanced: desktop overview + persistent native workspace. */
@media(min-width:900px){
  :root{--v18-sidebar:270px}
  #vsmt-desktop-v19 .real-map{position:relative;height:500px;overflow:hidden;border-radius:13px;background:#eaf2f6}
  #vsmt-desktop-v19 #v17MapCanvas{position:absolute;inset:0;z-index:1}
  #vsmt-desktop-v19 .real-map-loading{position:absolute;inset:0;display:grid;place-items:center;z-index:3;background:#eaf2f6;color:#587080;font-size:12px;font-weight:800;pointer-events:none}
  #vsmt-desktop-v19 .real-map .map-legend{z-index:500}
  #vsmt-desktop-v19 .leaflet-container{height:100%;width:100%;font-family:inherit;background:#eaf2f6}
  #vsmt-desktop-v19 .leaflet-popup-content button{margin-top:7px;border:0;border-radius:7px;background:#0f9d58;color:#fff;padding:7px 10px;font-weight:800;cursor:pointer}
  .v18-incident-icon{background:transparent!important;border:0!important}.v18-incident-icon span{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#fff;border:3px solid #f0a11b;box-shadow:0 3px 12px #0002;font-size:15px}
  #vsmt-desktop-v19.v17-native{display:block!important;right:auto!important;width:var(--v18-sidebar)!important;background:transparent!important;pointer-events:none!important}
  #vsmt-desktop-v19.v17-native .app{display:block!important;width:var(--v18-sidebar)!important;height:100vh!important}
  #vsmt-desktop-v19.v17-native .sidebar{width:var(--v18-sidebar)!important;height:100vh!important;pointer-events:auto!important}
  #vsmt-desktop-v19.v17-native .main{display:none!important}
  body.v17-native-mode{background:#f3f6f9!important;overflow-x:hidden!important}
  body.v17-native-mode #root .app-shell{width:calc(100% - var(--v18-sidebar))!important;max-width:none!important;min-height:100vh!important;margin:0 0 0 var(--v18-sidebar)!important;padding-bottom:0!important;border-radius:0!important;box-shadow:none!important;overflow:visible!important;background:#f3f6f9!important}
  body.v17-native-mode #root .app-main,body.v17-native-mode #root .screen-page,body.v17-native-mode #root .home-page{width:100%!important;max-width:none!important;min-height:100vh!important;background:#f3f6f9!important}
  body.v17-native-mode #root .bottom-nav{display:none!important}
  body.v17-native-mode #root .screen-content{width:100%!important;max-width:1560px!important;margin:0 auto!important;padding:22px 28px 38px!important}
  body.v17-native-mode #root .topbar{height:64px!important;background:#fff!important;color:#17324a!important;border-bottom:1px solid #dfe7ed!important;box-shadow:0 2px 12px rgba(12,43,67,.05)!important;padding:0 26px!important;grid-template-columns:52px minmax(0,1fr) minmax(70px,auto)!important}
  body.v17-native-mode #root .topbar strong{text-align:left!important;font-size:19px!important;padding-left:6px!important;color:#142f47!important}
  body.v17-native-mode #root .topbar button{background:#eef5f8!important;color:#173f5f!important;border:1px solid #d8e4eb!important}
  body.v17-native-mode #root .home-hero{height:150px!important;padding:28px 34px!important}
  body.v17-native-mode #root .home-body{width:100%!important;max-width:1560px!important;margin:-22px auto 0!important;padding:0 28px 38px!important}
  body.v17-native-mode #root .home-stats{grid-template-columns:repeat(3,minmax(180px,1fr))!important;gap:14px!important}
  body.v17-native-mode #root .ward-list,body.v17-native-mode #root .ward-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:12px!important}
  body.v17-native-mode #root .cards.route-list{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:12px!important}
  body.v17-native-mode #root .toolbox-grid{grid-template-columns:repeat(4,minmax(190px,1fr))!important;gap:13px!important}
  body.v17-native-mode #root .tool-card,body.v17-native-mode #root .tool-card.full{grid-column:auto!important;min-height:120px!important}
  body.v17-native-mode #root .form-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:14px!important}
  body.v17-native-mode #root .stat-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:12px!important}
  body.v17-native-mode #root .pick-route-list,body.v17-native-mode #root .violation-route-list{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important}
  body.v17-native-mode #root .grid-gallery{grid-template-columns:repeat(5,minmax(0,1fr))!important;gap:10px!important}
  body.v17-native-mode #root .account-menu{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:11px!important}
  body.v17-native-mode #root .record-content{max-width:1460px!important;margin:0 auto!important}
  body.v17-native-mode #root .route-summary-card{padding:19px 21px!important}
  body.v17-native-mode #root .detail-tabs{margin-left:0!important;margin-right:0!important;border:1px solid #dce6ed!important;border-radius:14px!important;overflow:hidden!important;background:#fff!important}
  body.v17-native-mode #root .route-leaflet-map,body.v17-native-mode #root .leaflet-map{height:520px!important;min-height:520px!important;width:100%!important}
  body.v17-native-mode #root .management-map{height:70vh!important;min-height:620px!important;width:100%!important}
  body.v17-native-mode #root .wide-map-overlay{left:var(--v18-sidebar)!important}
  body.v17-native-mode #root .modal-overlay{align-items:center!important;padding:24px!important}
  body.v17-native-mode #root .modal-card{width:min(920px,88vw)!important;max-width:920px!important;max-height:88vh!important;border-radius:18px!important;padding:22px!important;box-shadow:0 24px 80px rgba(7,31,58,.25)!important}
  body.v17-native-mode #root .burst-camera-overlay{left:var(--v18-sidebar)!important}
}
@media(max-width:1280px) and (min-width:900px){#vsmt-desktop-v19 .real-map{height:430px}:root{--v18-sidebar:215px}#vsmt-desktop-v19.v17-native,#vsmt-desktop-v19.v17-native .app,#vsmt-desktop-v19.v17-native .sidebar{width:var(--v18-sidebar)!important}}

/* P20 overview usability: accurate Pro storage, expandable map, complete route table. */
#vsmt-desktop-v19 .storage-note{font-size:9px!important;color:#93aec0!important;line-height:1.35;margin-top:-2px!important}
#vsmt-desktop-v19 .real-map .map-expand-btn{position:absolute;right:12px;top:12px;z-index:650;border:1px solid #d3dfe7;background:rgba(255,255,255,.96);color:#153c58;border-radius:9px;padding:8px 11px;font-size:10px;font-weight:850;box-shadow:0 5px 18px rgba(22,55,77,.12)}
#vsmt-desktop-v19 .real-map .map-expand-btn:hover{background:#f4faf7;color:#08733f;border-color:#b9ddc8}
body.v20-map-open{overflow:hidden!important}
#vsmt-desktop-v19 .real-map.v20-map-expanded{position:fixed!important;inset:14px!important;height:auto!important;z-index:50060!important;border-radius:16px!important;border:1px solid #d8e3ea!important;box-shadow:0 26px 90px rgba(4,27,45,.35)!important;background:#eaf2f6!important}
#vsmt-desktop-v19 .real-map.v20-map-expanded .map-expand-btn{right:16px;top:16px;font-size:12px;padding:10px 14px}
#vsmt-desktop-v19 .real-map.v20-map-expanded .map-legend{left:16px;bottom:16px;font-size:11px}
#vsmt-desktop-v19 .table-wrap::-webkit-scrollbar{height:10px;width:10px}#vsmt-desktop-v19 .table-wrap::-webkit-scrollbar-thumb{background:#b9c7d1;border-radius:10px}#vsmt-desktop-v19 .table-wrap::-webkit-scrollbar-track{background:#eef3f6}

/* P21: cleaner header, merged navigation, route table like Desktop Demo V2. */
#vsmt-desktop-v19 .topbar .top-date-label{font-size:10px;color:#6d7a87;font-weight:700;margin-right:-4px}
#vsmt-desktop-v19 .topbar .compact-date{min-width:150px}
#vsmt-desktop-v19 .topbar .bell-btn{min-width:64px}
#vsmt-desktop-v19 .route-table-head{justify-content:space-between;align-items:center}
#vsmt-desktop-v19 .route-table-tools{margin-left:auto;display:flex;align-items:center;gap:8px}
#vsmt-desktop-v19 .route-search{width:230px;min-height:36px}
#vsmt-desktop-v19 .table-wrap{max-height:520px}
#vsmt-desktop-v19 .route-pager{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;padding:10px 14px;border-top:1px solid #edf1f4;font-size:10px;color:#6b7886}
#vsmt-desktop-v19 .route-pager>div{display:flex;align-items:center;gap:8px;justify-content:center}
#vsmt-desktop-v19 .route-pager .page-size{justify-self:end;min-height:34px;padding:6px 8px}
#vsmt-desktop-v19 .pager-btn{min-height:32px;min-width:34px;padding:4px 9px}
#vsmt-desktop-v19 .pager-btn:disabled{opacity:.4;cursor:not-allowed}
@media(max-width:1280px) and (min-width:900px){#vsmt-desktop-v19 .route-search{width:170px}#vsmt-desktop-v19 .topbar .compact-date{min-width:135px}}


/* P22 OVERVIEW LOCK — only the desktop Overview is visually frozen to Demo V2 proportions. */
@media(min-width:900px){
  #vsmt-desktop-v19:not(.v17-native) .app{grid-template-columns:270px minmax(0,1fr)!important}
  #vsmt-desktop-v19:not(.v17-native) .main{grid-template-rows:64px minmax(0,1fr)!important;min-width:0!important}
  #vsmt-desktop-v19:not(.v17-native) .topbar{height:64px!important;padding:0 17px!important;gap:10px!important;background:#fff!important;border-bottom:1px solid #dfe6ed!important}
  #vsmt-desktop-v19:not(.v17-native) .topbar h2{font-size:19px!important;line-height:1.2!important;margin:0!important}
  #vsmt-desktop-v19:not(.v17-native) .content{padding:16px 18px 32px!important;overflow:auto!important;background:#f3f6f9!important}
  #vsmt-desktop-v19:not(.v17-native) .content>section{width:100%!important;max-width:none!important;margin:0!important}
  #vsmt-desktop-v19:not(.v17-native) .notice.good{padding:10px 12px!important;border-radius:10px!important;font-size:11px!important;margin:0 0 12px!important}
  #vsmt-desktop-v19:not(.v17-native) .kpis{display:grid!important;grid-template-columns:repeat(6,minmax(130px,1fr))!important;gap:11px!important;margin:0!important}
  #vsmt-desktop-v19:not(.v17-native) .kpi{padding:13px!important;min-height:68px!important;gap:11px!important;border-radius:13px!important}
  #vsmt-desktop-v19:not(.v17-native) .kpi .ico{width:41px!important;height:41px!important;border-radius:11px!important;font-size:18px!important}
  #vsmt-desktop-v19:not(.v17-native) .kpi b{font-size:21px!important}
  #vsmt-desktop-v19:not(.v17-native) .kpi span{font-size:10px!important;margin-top:2px!important}
  #vsmt-desktop-v19:not(.v17-native) .overview-grid{display:grid!important;grid-template-columns:215px minmax(520px,1fr) 315px!important;gap:12px!important;margin-top:12px!important;align-items:stretch!important}
  #vsmt-desktop-v19:not(.v17-native) .overview-grid>.card{min-width:0!important;height:500px!important;overflow:hidden!important}
  #vsmt-desktop-v19:not(.v17-native) .overview-grid>.card.filter{height:500px!important}
  #vsmt-desktop-v19:not(.v17-native) .overview-grid>.card.filter .card-b{height:calc(100% - 45px)!important;overflow:auto!important}
  #vsmt-desktop-v19:not(.v17-native) .overview-grid>.card:last-child{height:500px!important;display:flex!important;flex-direction:column!important}
  #vsmt-desktop-v19:not(.v17-native) #v17Incidents{overflow:auto!important;flex:1 1 auto!important}
  #vsmt-desktop-v19:not(.v17-native) .real-map{height:500px!important;border-radius:13px!important}
  #vsmt-desktop-v19:not(.v17-native) .real-map .map-legend{left:12px!important;bottom:12px!important;padding:9px!important;font-size:10px!important;border-radius:10px!important}
  #vsmt-desktop-v19:not(.v17-native) .table-card{margin-top:12px!important;border-radius:13px!important}
  #vsmt-desktop-v19:not(.v17-native) .table-card>.card-h{min-height:50px!important;padding:12px 14px!important}
  #vsmt-desktop-v19:not(.v17-native) .table-wrap{max-height:520px!important;overflow:auto!important}
  #vsmt-desktop-v19:not(.v17-native) .table{font-size:11px!important}
  #vsmt-desktop-v19:not(.v17-native) .table th,#vsmt-desktop-v19:not(.v17-native) .table td{padding:10px 11px!important}
  #vsmt-desktop-v19:not(.v17-native) .table th{font-size:10px!important}
  #vsmt-desktop-v19:not(.v17-native) .route-table-head{min-height:50px!important;align-items:center!important}
  #vsmt-desktop-v19:not(.v17-native) .route-table-tools{gap:8px!important}
  #vsmt-desktop-v19:not(.v17-native) .route-search{width:230px!important;min-height:38px!important}
  #vsmt-desktop-v19:not(.v17-native) .route-pager{min-height:52px!important;padding:10px 14px!important}
}
@media(min-width:1281px){
  #vsmt-desktop-v19:not(.v17-native) .overview-grid>.card:last-child{grid-column:auto!important}
}
@media(max-width:1280px) and (min-width:900px){
  #vsmt-desktop-v19:not(.v17-native) .kpis{grid-template-columns:repeat(3,1fr)!important}
  #vsmt-desktop-v19:not(.v17-native) .overview-grid{grid-template-columns:200px minmax(0,1fr)!important}
  #vsmt-desktop-v19:not(.v17-native) .overview-grid>.card:last-child{grid-column:1/-1!important;height:auto!important;min-height:220px!important}
  #vsmt-desktop-v19:not(.v17-native) .route-search{width:170px!important}
}

/* P23 COMPACT OVERVIEW HEADER — reclaim vertical space for operations. */
@media(min-width:900px){
  #vsmt-desktop-v19:not(.v17-native) .main{grid-template-rows:50px minmax(0,1fr)!important}
  #vsmt-desktop-v19:not(.v17-native) .topbar{
    height:50px!important;min-height:50px!important;padding:0 12px!important;gap:8px!important;
    background:#fff!important;border-bottom:1px solid #dfe6ed!important
  }
  #vsmt-desktop-v19:not(.v17-native) .topbar h2{font-size:18px!important;line-height:1!important;margin:0!important}
  #vsmt-desktop-v19:not(.v17-native) .topbar .menu-btn{width:34px!important;min-width:34px!important;height:34px!important;min-height:34px!important;padding:0!important;border-radius:8px!important}
  #vsmt-desktop-v19:not(.v17-native) .topbar .role-chip{padding:3px 7px!important;font-size:9px!important;line-height:1.1!important}
  #vsmt-desktop-v19:not(.v17-native) .topbar .top-date-label{font-size:10px!important;margin-right:-2px!important}
  #vsmt-desktop-v19:not(.v17-native) .topbar .compact-date{min-width:142px!important;height:34px!important;min-height:34px!important;padding:5px 9px!important}
  #vsmt-desktop-v19:not(.v17-native) .topbar .bell-btn{min-width:48px!important;height:34px!important;min-height:34px!important;padding:5px 8px!important}
  #vsmt-desktop-v19:not(.v17-native) .content{padding:10px 14px 24px!important}
  #vsmt-desktop-v19:not(.v17-native) .notice.good{display:none!important;margin:0!important;padding:0!important;height:0!important;border:0!important}
  #vsmt-desktop-v19:not(.v17-native) .kpis{gap:10px!important}
  #vsmt-desktop-v19:not(.v17-native) .kpi{min-height:64px!important;padding:11px 12px!important}
  #vsmt-desktop-v19:not(.v17-native) .overview-grid{margin-top:10px!important}
}


/* P26 SINGLE-SHELL STABILITY — one fixed shell, one scroll owner. */
@media(min-width:900px){
  #vsmt-desktop-v19 .app{
    height:100vh!important;min-height:0!important;overflow:hidden!important;
    grid-template-rows:minmax(0,1fr)!important;
  }
  #vsmt-desktop-v19 .main{
    height:100vh!important;min-height:0!important;overflow:hidden!important;
    grid-template-rows:50px minmax(0,1fr)!important;
  }
  #vsmt-desktop-v19 .content{
    min-height:0!important;height:auto!important;overflow-y:auto!important;overflow-x:hidden!important;
    overscroll-behavior:contain!important;-webkit-overflow-scrolling:touch!important;
    scrollbar-gutter:stable!important;
  }
  #vsmt-desktop-v19 .content>section{min-height:0!important}
  body:not(.v20-map-open){overflow:hidden!important}
}


/* P29 TRUE FULLSCREEN MAP — must come after P22/P23 lock rules. */
html.v29-map-open,body.v29-map-open{overflow:hidden!important;overscroll-behavior:none!important}
@media(min-width:900px){
  #vsmt-desktop-v19:not(.v17-native) .real-map.v20-map-expanded{
    position:fixed!important;
    inset:0!important;
    top:0!important;right:0!important;bottom:0!important;left:0!important;
    width:100vw!important;
    max-width:none!important;
    height:100vh!important;
    height:100dvh!important;
    max-height:none!important;
    min-height:0!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
    border-radius:0!important;
    overflow:hidden!important;
    z-index:50150!important;
    box-shadow:none!important;
    background:#eaf2f6!important;
  }
  #vsmt-desktop-v19:not(.v17-native) .real-map.v20-map-expanded #v17MapCanvas,
  #vsmt-desktop-v19:not(.v17-native) .real-map.v20-map-expanded .leaflet-container{
    position:absolute!important;inset:0!important;width:100%!important;height:100%!important;max-height:none!important;
  }
  #vsmt-desktop-v19:not(.v17-native) .real-map.v20-map-expanded .map-expand-btn{
    position:absolute!important;right:18px!important;top:18px!important;z-index:50250!important;
    font-size:12px!important;padding:10px 14px!important;
  }
  #vsmt-desktop-v19:not(.v17-native) .real-map.v20-map-expanded .map-legend{
    left:18px!important;bottom:18px!important;z-index:50240!important;font-size:11px!important;
  }
}
