/* Modelo aprovado: comando de rota, resumo à esquerda e mapa à direita. */
#routeDialog{width:min(1500px,98vw);height:min(900px,94dvh);max-width:none;max-height:none;padding:0;border:1px solid #d1d9e3;border-radius:12px;overflow:hidden;color:#24344b}
#routeDialog[open]{display:flex;flex-direction:column}
#routeDialog .route-dialog-head{background:#343c46;color:white;align-items:center;gap:18px;padding:12px 20px;min-height:64px;flex-shrink:0}
#routeDialog .route-dialog-head>div{min-width:0;flex:1;display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 15px}
#routeDialog .route-eyebrow{width:100%;font-size:9px;color:#c4ceda;letter-spacing:1.7px}
#routeDialog .route-dialog-head h2{font-size:21px;color:#fff;margin:0;line-height:1.2}
#routeDialog #routeDriver{font-size:12px;color:#dce3ec;margin:0;line-height:1.3}
#routeDialog #closeRoute{background:transparent;border:1px solid #a2aebb;color:white;min-height:32px;padding:6px 12px;font-size:11px;flex-shrink:0}
.route-view{display:grid;grid-template-columns:minmax(330px,45%) minmax(0,1fr);flex:1;min-height:0}
.route-info{position:relative;background:#edf1f6;padding:14px 16px;display:flex;flex-direction:column;gap:9px;min-height:0;min-width:0}
.route-info>h3{margin:0;font-size:18px;line-height:1.1}
#routeDialog .route-base{background:transparent;padding:0;margin:0;font-size:10px;line-height:1.35;color:#415670}
.route-hero{display:grid;grid-template-columns:1.1fr 1fr;min-height:76px;border-radius:8px;overflow:hidden;background:#1e558d;flex-shrink:0}
.route-trip-overview{display:flex;align-items:center;padding:12px;gap:11px;color:white;min-width:0}
.route-trip-overview>img{width:29px;height:29px;filter:brightness(0) invert(1);flex-shrink:0}
.route-trip-overview>div{min-width:0}.route-trip-overview strong{display:block;font-size:23px;line-height:1.1;font-weight:800;white-space:nowrap}
#routeTripMeta{display:block;font-size:11px;color:#e0ebfa;line-height:1.4;margin-top:5px}
#routeDialog #routeArrival{display:flex;flex-direction:column;justify-content:center;gap:3px;background:#23704f;border:0;border-radius:0;padding:10px 12px;margin:0;color:#fff;min-width:0}
#routeDialog #routeArrival:empty{display:flex}#routeArrival>small{font-size:10px;color:#e0eee8}#routeDialog #routeArrival>strong{font-size:19px;line-height:1.1;color:white}#routeDialog #routeArrival>span{font-size:11px;font-weight:400;line-height:1.3}
#routeDialog #routeDistance{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;margin:0;flex-shrink:0;border-bottom:1px solid #d6dfe9;padding:8px 0;font-size:11px;min-height:58px}
#routeDialog .route-metric{min-width:0;background:none!important;border:0;border-right:1px solid #cfd9e5;border-radius:0;padding:0 8px;display:flex;flex-direction:column;gap:4px;justify-content:flex-start}
#routeDialog .route-metric:first-child{padding-left:0}#routeDialog .route-metric:last-child{border:0;padding-right:0}
#routeDialog .route-metric span{font-size:9px;line-height:1.2;color:#526780;min-height:11px}#routeDialog .route-metric strong{font-size:16px;line-height:1.2;white-space:nowrap}#routeDialog .route-metric small{font-size:8px;line-height:1.2;color:#64758b}
#routeDialog #routeOptimization{margin:0;color:#486477;font-size:9px;line-height:1.4;flex-shrink:0}
.route-stop-section{display:flex;flex-direction:column;flex:1;min-height:75px;gap:6px}
.route-stop-section>h3,.route-control-heading{font-size:12px;font-weight:700;margin:0;line-height:1.2}
#routeDialog #routeStops{list-style:none;counter-reset:deliveries;margin:0;padding:0 0 0 25px;overflow:auto;min-height:0;flex:1}
#routeDialog #routeStops>li{position:relative;padding:0 4px 9px 11px;margin:0;border:0;border-left:1px dashed #92a6bc;line-height:1.2}
#routeDialog #routeStops>li:last-child{border-left-color:transparent;padding-bottom:0}
#routeDialog #routeStops>li:before{content:counter(deliveries);counter-increment:deliveries;position:absolute;left:-12px;top:0;display:grid;place-items:center;background:#24598f;color:white;width:23px;height:23px;border-radius:50%;font-size:11px;font-weight:700}
#routeDialog #routeStops>li.route-origin-stop:before,#routeDialog #routeStops>li.route-return-stop:before{content:'';background:#24598f url('route-pin-white.svg') center/15px no-repeat}
#routeDialog #routeStops>li.route-origin-stop{counter-reset:deliveries -1}#routeDialog #routeStops>li.route-return-stop:before{background-color:#23704f}
#routeDialog #routeStops>li strong{font-size:12px;display:block;line-height:1.25}#routeDialog #routeStops>li small{font-size:9px;line-height:1.3;margin-top:3px;color:#62758c}
#routeDialog #routeStops>li.route-return-stop strong,#routeDialog #routeStops>li.route-return-stop small{color:#23704f}
.route-control-section{flex-shrink:0;padding-top:8px;border-top:1px solid #d6dfe9}
#routeDialog .route-settings{display:grid;grid-template-columns:1.4fr .9fr .8fr;gap:8px;padding:0;margin:6px 0 0;border:0;background:none}
#routeDialog .route-settings label{font-size:9px;margin-bottom:4px;line-height:1.2;min-height:11px}#routeDialog .route-settings input,#routeDialog .route-settings select{min-height:31px;height:31px;padding:4px 6px;font-size:11px;background:white;border:1px solid #bfcddd;border-radius:5px}
.route-rules-overview{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:5px;flex-shrink:0;margin-top:0}
.route-rules-overview>span{display:block;border-right:1px solid #d3dce7;padding-right:3px;font-size:8px;line-height:1.3;color:#5b6d84}.route-rules-overview>span:last-child{border:0}.route-rules-overview b{display:block;color:#334b67;font-size:9px;line-height:1.3}
.route-bottom-actions{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-shrink:0}
#routeDialog .route-rests{padding:0;border:0;margin:0;font-size:10px;line-height:1.4}.route-rests>summary{font-size:10px;color:#315e9d;cursor:pointer}
.route-detail-panel{position:absolute;bottom:46px;left:12px;right:12px;max-height:65%;overflow:auto;z-index:1100;border:1px solid #b9c8d8;background:white;border-radius:9px;padding:15px;box-shadow:0 6px 30px #17304e30}
.route-detail-panel>h3{font-size:14px;margin:0}.route-detail-panel #routeBreaks{font-size:11px}.route-detail-panel .route-rules{font-size:11px;margin:8px 0 0}.route-detail-panel .route-rules summary{font-size:11px}
#routeDialog #routeExternal{font-size:10px;min-height:29px;padding:5px 7px;white-space:nowrap;border:1px solid #9eb5d0;border-radius:5px;color:#315e9d;background:#fff}
.route-map-pane{position:relative;min-width:0;min-height:0;border-left:1px solid #cbd6e2;background:#dbe8e8}
#routeDialog #routeMap{position:absolute;inset:0;width:100%;height:100%;margin:0;border-radius:0;background:#e7edf0}
#routeDialog .route-legend{position:absolute;bottom:26px;right:12px;z-index:600;display:grid;gap:6px;padding:9px 11px;background:#ffffffee;border-radius:6px;margin:0;font-size:10px;box-shadow:0 2px 8px #18355218;pointer-events:none}
#routeDialog .route-legend span{display:flex;align-items:center;gap:7px}.route-legend span:before{content:'';display:block;width:24px;border-top:3px solid #245c92}.route-legend span:last-child:before{border-top:3px dashed #2b8469}
@media(max-height:750px){.route-info{padding:11px 13px;gap:7px}.route-info>h3{font-size:16px}.route-hero{min-height:65px}.route-trip-overview strong{font-size:20px}#routeDialog #routeArrival>strong{font-size:17px}#routeDialog .route-dialog-head{min-height:55px;padding:9px 16px}}
@media(max-width:1000px){.route-view{grid-template-columns:minmax(330px,48%) minmax(0,1fr)}.route-trip-overview{padding:9px;gap:7px}.route-trip-overview>img{width:23px;height:23px}.route-trip-overview strong{font-size:18px}#routeDialog #routeArrival>strong{font-size:16px}#routeTripMeta{font-size:9px}#routeDialog .route-metric strong{font-size:14px}#routeDialog .route-metric{padding:0 5px}}
@media(max-width:620px){#routeDialog{height:96dvh;width:98vw}.route-view{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr) 28%}.route-map-pane{grid-row:2;border-left:0;border-top:1px solid #cbd6e2}.route-info{padding:9px 12px;gap:6px}.route-info>h3{display:none}#routeDialog .route-dialog-head{padding:9px 12px;min-height:52px}#routeDialog .route-dialog-head h2{font-size:17px}#routeDialog #routeDriver{font-size:9px}.route-hero{min-height:60px}#routeDialog #routeDistance{min-height:48px;padding:6px 0}.route-control-heading{display:none}#routeDialog .route-settings{margin:0}.route-legend{bottom:20px!important}.route-detail-panel{max-height:75%}}

@media(min-width:1100px){.route-info{padding:14px 17px;gap:8px}.route-info>h3{font-size:19px}#routeDialog .route-base{font-size:11px}.route-hero{min-height:76px}.route-trip-overview strong{font-size:25px}#routeDialog #routeArrival>strong{font-size:20px}#routeDialog .route-metric strong{font-size:19px}#routeDialog #routeStops>li strong{font-size:14px}#routeDialog #routeStops>li small{font-size:10px;line-height:1.35}#routeDialog #routeStops>li{padding-bottom:12px}.route-stop-section>h3,.route-control-heading{font-size:13px}}

#routeDialog #routeStops>li::marker{content:''}

/* Leitura ampliada, mantendo o painel dividido. */
#routeDialog #routeDriver{font-size:14px}#routeDialog .route-base{font-size:12px}#routeDialog .route-metric span{font-size:11px;min-height:25px}#routeDialog .route-metric small{font-size:10px}#routeDialog #routeOptimization{font-size:11px}#routeDialog #routeStops>li strong{font-size:15px}#routeDialog #routeStops>li small{font-size:12px;line-height:1.4}#routeDialog #routeStops>li{padding-bottom:14px}.route-stop-section>h3,.route-control-heading{font-size:14px}#routeDialog .route-settings label{font-size:11px;min-height:14px}#routeDialog .route-settings input,#routeDialog .route-settings select{font-size:13px;height:36px;min-height:36px}.route-rules-overview>span{font-size:10px}.route-rules-overview b{font-size:11px}#routeDialog .route-rests>summary,#routeDialog #routeExternal{font-size:12px}#routeDialog #routeExternal{min-height:33px}#routeDialog .route-legend{font-size:12px}#routeTripMeta{font-size:12px}#routeDialog #routeArrival>small{font-size:12px}#routeDialog #routeArrival>span{font-size:13px}
@media(min-width:1100px){.route-info{padding:16px 19px;gap:10px}.route-info>h3{font-size:22px}.route-hero{min-height:88px}.route-trip-overview strong{font-size:30px}#routeDialog #routeArrival>strong{font-size:24px}#routeDialog .route-metric strong{font-size:23px}#routeDialog #routeStops>li strong{font-size:17px}#routeDialog #routeStops>li small{font-size:13px}#routeDialog #routeStops>li{padding-bottom:17px}.route-stop-section>h3,.route-control-heading{font-size:16px}#routeDialog .route-settings input,#routeDialog .route-settings select{font-size:14px}#routeDialog .route-settings label{font-size:12px}}
@media(min-width:621px) and (max-width:1099px){.route-trip-overview strong{font-size:21px}#routeDialog #routeArrival>strong{font-size:19px}#routeTripMeta{font-size:10px}#routeDialog #routeArrival>span{font-size:11px}#routeDialog .route-bottom-actions{gap:5px}#routeDialog .route-rests>summary,#routeDialog #routeExternal{font-size:10px}}
@media(max-width:620px){#routeDialog #routeDriver{font-size:11px}#routeDialog .route-base{font-size:10px}#routeDialog .route-metric span{font-size:10px}#routeDialog #routeStops>li strong{font-size:13px}#routeDialog #routeStops>li small{font-size:11px}.route-rules-overview>span{font-size:9px}.route-rules-overview b{font-size:10px}#routeDialog .route-rests>summary,#routeDialog #routeExternal{font-size:10px}}

@media(min-width:621px) and (max-width:1099px){.route-info{gap:7px}.route-trip-overview{gap:5px;padding:9px}.route-trip-overview>img{width:19px;height:19px}.route-trip-overview strong{font-size:19px}#routeDialog .route-metric span{font-size:10px}#routeDialog .route-metric small{font-size:9px}#routeDialog #routeStops>li{padding-bottom:10px}}
@media(max-height:800px){#routeDialog #routeStops>.route-return-stop{display:none}}

#routeDialog .route-settings{grid-template-columns:minmax(0,1fr)}.route-rules-overview{grid-template-columns:repeat(6,minmax(0,1fr))}#routeDialog #routeOptimization:after{content:" Estimativa por dia; permanência nos clientes é variável."}#loadForm>.departure-date-field{grid-column:1/-1}
