:root{font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;color:#19323d;background:#f3f6f4;font-synthesis:none;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0}button,input,textarea,select{font:inherit}button{cursor:pointer}button:disabled{opacity:.55;cursor:wait}a{color:#14675b}header.top{height:70px;background:#112e39;color:white;display:flex;justify-content:space-between;align-items:center;padding:0 max(24px,calc((100vw - 950px)/2))}.brand{font-size:24px;letter-spacing:-1.1px;font-weight:830;display:flex;align-items:center;gap:9px}.brand-thin{font-weight:390}.brand-mark{background:#adf0c3;color:#16362e;display:inline-grid;place-items:center;width:33px;height:33px;border-radius:11px;font-size:26px;font-weight:700}.small-tag{font-size:11px;letter-spacing:.02em;padding:7px 11px;border:1px solid #48616b;border-radius:50px}.dot{display:inline-block;height:7px;width:7px;border-radius:50%;background:#a9efbd;margin-right:4px}main{max-width:950px;margin:auto;padding:0 22px 45px}.hero{padding:43px 0 33px}.eyebrow{font-size:11px;letter-spacing:2px;font-weight:800;color:#357c64}.hero h1{font-size:clamp(34px,6vw,58px);line-height:1.08;letter-spacing:-2.5px;margin:13px 0 17px;color:#142f3b;max-width:720px}.hero h1 em{font-style:normal;color:#3d9878}.hero p{font-size:15px;line-height:1.65;color:#667783;max-width:560px;margin:0}.panel{background:#fff;border:1px solid #e3ebe9;border-radius:18px;box-shadow:0 8px 25px #19383d08;padding:28px;margin-bottom:19px}.section-heading{display:flex;align-items:flex-start;gap:15px;margin-bottom:25px}.step{min-width:42px;height:42px;border-radius:12px;background:#e5f4eb;color:#20735d;display:grid;place-items:center;font-size:14px;font-weight:850}.section-heading h2{font-size:20px;letter-spacing:-.4px;margin:0 0 5px}.section-heading p{color:#7a8b93;font-size:13px;margin:0;line-height:1.4}.upload-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:22px}.upload-button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;padding:18px 12px;border:1.5px dashed #92c9b3;background:#f7fcf9;border-radius:14px;color:#244c40;min-height:114px;transition:background .15s}.upload-button:hover{background:#eaf8ef}.upload-icon{font-size:25px;color:#288366}.upload-button b{font-size:13px}.upload-button small{font-size:11px;color:#81918c}label{display:block;font-size:12px;font-weight:760;margin:12px 0 7px;color:#344f59}label small{font-weight:400;color:#83919b}textarea,input:not([type=checkbox]),select{display:block;width:100%;border:1px solid #d7e3e4;border-radius:10px;background:#fff;padding:12px 13px;color:#17323b;outline:none;font-size:14px}textarea:focus,input:focus,select:focus{border-color:#2f9273;box-shadow:0 0 0 3px #dff1e8}textarea{resize:vertical;min-height:113px;line-height:1.6}.under-input{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:8px;color:#8997a0;font-size:11px}.text-button{color:#247b60;background:none;border:0;padding:4px;font-size:12px;font-weight:750}.flex-actions{display:flex;flex-wrap:wrap;gap:9px;margin-top:20px}button.primary,button.secondary,button.quiet,button.locate{border-radius:11px;padding:12px 18px;font-size:13px;font-weight:760;min-height:44px}button.primary{background:#227f62;color:#fff;border:1px solid #227f62}button.primary:hover{background:#166b51}button.primary span{margin-left:6px}button.secondary{color:#20684f;background:#e5f4eb;border:1px solid #cde6d9}button.quiet{background:#fff;border:1px solid #d7e2e4;color:#53707b}button.locate{background:#fff;border:1px solid #d3e1df;align-self:end;color:#266a58;white-space:nowrap}.micro{font-size:12px;color:#657c85;margin-top:12px;min-height:10px;line-height:1.6}.start-grid{display:grid;grid-template-columns:1fr auto;gap:9px;align-items:end}.two-cols{display:grid;grid-template-columns:1.6fr 1fr;gap:13px;margin-top:14px}.hint{color:#8a979e;font-size:11px;line-height:1.5;margin:9px 0}.stops-title{display:flex;justify-content:space-between;align-items:center;margin:25px 0 10px}.stops-title strong{font-size:14px}.stops-title span{color:#7a8e92}.stop-list{display:flex;flex-direction:column;gap:9px}.empty{text-align:center;border:1px dashed #d1dcdd;border-radius:11px;padding:19px;color:#8b999d;font-size:13px;background:#fafbfb}.stop-row{border:1px solid #e1eae8;border-radius:12px;padding:11px;display:grid;grid-template-columns:28px 1fr auto;gap:10px;align-items:center}.stop-number{width:26px;height:26px;border-radius:8px;background:#e6f1ed;color:#2b8063;font-weight:800;display:grid;place-items:center;font-size:12px}.stop-row input{padding:9px 10px;font-size:13px}.stop-edit{min-width:0}.stop-meta{font-size:11px;color:#8a969b;margin:5px 0 0}.stop-meta.good{color:#288265}.stop-actions{display:flex;gap:3px}.icon-btn{border:0;background:#f3f6f5;color:#68828a;border-radius:9px;width:30px;height:34px;font-size:18px}.icon-btn:hover{background:#e4eee9}.settings{display:flex;gap:35px;align-items:center;justify-content:space-between;margin:20px 0}.settings>div{max-width:170px}.switch-row{display:flex;align-items:center;gap:9px;font-size:13px;color:#334b54;font-weight:650}.switch-row input{accent-color:#277f62;transform:scale(1.2)}.consent{background:#f5f9fa;border:1px solid #e4edef;border-radius:12px;padding:12px;display:flex;gap:10px}.consent p{font-size:11px;color:#667c84;line-height:1.65;margin:0}.privacy-icon{min-width:18px;height:18px;border-radius:50%;display:grid;place-items:center;background:#d6e8ed;color:#337184;font-size:11px;font-weight:800}.results h3{font-size:14px;margin:26px 0 12px}.results h3 small{font-size:11px;color:#84949a;font-weight:450}.metric-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:11px}.metric{background:#f4faf6;border-radius:13px;text-align:center;padding:18px 5px}.metric>div{font-size:26px;font-weight:820;color:#1d6d53;letter-spacing:-1px}.metric>span{font-size:11px;color:#758e82}.accuracy{font-size:11px;padding:10px 0 15px;line-height:1.6;color:#70838b}.map{height:325px;border-radius:13px;background:#e8efef;overflow:hidden}.route-list{display:flex;flex-direction:column;gap:7px}.route-item{display:flex;align-items:flex-start;gap:11px;padding:10px 11px;border:1px solid #e5eeeb;border-radius:10px}.route-circle{flex:0 0 auto;background:#207e61;color:#fff;border-radius:50%;width:26px;height:26px;display:grid;place-items:center;font-size:11px;font-weight:750}.route-main{flex:1;min-width:0}.route-main b{font-size:13px;font-weight:660;overflow-wrap:anywhere}.route-main small{display:block;color:#799098;font-size:11px;margin-top:3px}.route-actions{display:flex;gap:4px}.mini-link{border:1px solid #d8e5e1;background:#fff;color:#237759;border-radius:8px;padding:6px 9px;font-weight:750;text-decoration:none;font-size:11px;white-space:nowrap}.segment-grid{display:flex;gap:8px;flex-wrap:wrap}.segment-grid a{display:inline-flex;align-items:center;gap:7px;background:#e8f5ec;color:#1a7055;text-decoration:none;border-radius:10px;padding:11px 14px;font-size:12px;font-weight:760}.export-row{display:flex;gap:9px;margin-top:26px}.notice{background:#e8f3ea;border:1px solid #bce1ca;color:#285b48;border-radius:11px;padding:13px 17px;margin-top:16px;font-size:13px;line-height:1.5}.notice.error{background:#fff4ea;color:#8b491b;border-color:#f1d4af}.notice[hidden],[hidden]{display:none!important}footer{max-width:950px;margin:auto;padding:25px 22px 52px;border-top:1px solid #e0e8e4;font-size:11px;color:#859397;line-height:1.65}footer>div:first-child{font-weight:850;letter-spacing:1px;color:#476e63}footer span{font-weight:400;letter-spacing:0}footer p{margin:8px 0}button:focus-visible,a:focus-visible{outline:3px solid #8cc9b2;outline-offset:2px}@media(max-width:650px){header.top{height:60px;padding:0 16px}.brand{font-size:22px}main{padding:0 13px 28px}.hero{padding:32px 9px 24px}.hero h1{letter-spacing:-1.5px}.hero p{font-size:13px}.panel{padding:19px 14px;margin-bottom:12px;border-radius:15px}.section-heading{gap:10px}.section-heading h2{font-size:18px}.section-heading p{font-size:12px}.step{min-width:35px;height:35px}.upload-grid{gap:8px}.upload-button{padding:15px 5px}.start-grid{grid-template-columns:1fr}.start-grid .locate{justify-self:start}.two-cols{grid-template-columns:1fr}.stop-row{grid-template-columns:24px 1fr;gap:7px}.stop-row .stop-actions{grid-column:2;justify-content:end}.settings{gap:15px}.metric>div{font-size:22px}.metric{padding:15px 2px}.map{height:270px}.route-item{flex-wrap:wrap}.route-actions{margin-left:36px}.flex-actions button.primary{flex:1}footer{padding:20px 16px 45px}}@media print{header,.hero,#step1,#step2,.flex-actions,.segment-grid,.export-row,.route-actions,footer{display:none!important}main{padding:0}#step3{box-shadow:none;border:0}.map{height:280px}}

.advanced{border-top:1px solid #e3ece9;margin-top:17px;padding-top:14px}.advanced summary{cursor:pointer;font-weight:720;color:#537f73;font-size:12px}.advanced p{font-size:11px;line-height:1.5;color:#87969c;margin:10px 0}.advanced input{font-size:12px!important}

/* v2: acceso a destinos y registro de visitas */
.nav-menu{display:inline-block;max-width:100%;position:relative;margin-top:4px}
.nav-menu summary{list-style:none;cursor:pointer;display:inline;color:#1c7456;font-weight:720;font-size:12px;line-height:1.5;overflow-wrap:anywhere;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
.nav-menu summary::-webkit-details-marker{display:none}
.nav-menu summary:focus-visible{outline:2px solid #2b9470;outline-offset:2px}
.nav-choices{display:flex;flex-wrap:wrap;gap:5px;padding:7px 0}
.nav-choices a{border-radius:8px;background:#eaf4ed;color:#145b46;text-decoration:none;font-size:12px;padding:8px 10px;font-weight:740}
.nav-choices a:hover{background:#cde7d8}
.nav-route summary{font-size:13px}
.visited-btn{border-radius:9px;padding:8px 10px;min-height:35px;border:1px solid #b7dacc;background:#f1faf5;color:#176e4d;font-weight:760;font-size:12px;white-space:nowrap}
.visited-btn.is-done{background:#d1efdc;border-color:#97cba9}
.route-item.is-visited{border-color:#b3dfc5;background:#f7fcf8}
.stop-edit .nav-menu{margin:3px 0 0}
.history-top{display:flex;gap:18px;align-items:center;justify-content:space-between}
.history-top>div:first-child{flex:0 0 210px}
.history-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;flex:1}
.history-stat{background:#f1f8f3;border:1px solid #dfece3;border-radius:11px;padding:11px;text-align:center;display:flex;flex-direction:column;gap:3px}
.history-stat strong{font-size:23px;color:#1b6c52}.history-stat span{font-size:10px;color:#547968}
.history-toolbar{display:flex;gap:8px;flex-wrap:wrap;margin:16px 0 11px}
.history-list{display:flex;flex-direction:column;gap:7px;margin-top:15px;max-height:460px;overflow:auto}
.history-entry{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border:1px solid #e0e9e6;border-radius:11px}
.history-entry strong{font-size:12px;font-weight:740;display:block;overflow-wrap:anywhere}
.history-entry small{color:#748b90;font-size:11px;display:block;margin-top:3px}
.history-entry button{border:1px solid #e3d3ce;border-radius:7px;padding:8px 9px;background:#fff;color:#9b4d3d;font-size:11px;white-space:nowrap}
@media(max-width:650px){.history-top{flex-direction:column;align-items:stretch}.history-top>div:first-child{flex:auto}.history-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.history-stat{padding:12px 3px}.history-stat strong{font-size:20px}.history-toolbar button{flex:1 1 140px}.route-item .visited-btn{margin-left:auto}}
@media print{#step4{display:none!important}}

/* RutaLista v3: estados de entrega y enlace de dos dispositivos */
.history-metrics{grid-template-columns:repeat(3,minmax(0,1fr));max-width:520px}
.history-detail{flex:1;min-width:0}.history-entry{align-items:flex-start}
.history-entry .delete-visit{align-self:start}
.delivery-fields{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-top:10px}
.delivery-fields select{width:auto;max-width:100%;padding:9px 11px;font-size:12px;border-color:#b9d8ca;background:#f0f9f4;color:#1a6e4d}
.delivery-fields select[hidden]{display:none!important}
.delivery-extras{display:grid;grid-template-columns:1fr 1.3fr;gap:7px;flex:1 1 100%}
.delivery-extras input{font-size:12px!important;padding:9px!important;min-width:0}
.delivery-fields.compact{margin-top:8px}
.delivery-fields.compact select{max-width:100%}
.sync-panel{margin-top:21px;border-top:1px solid #dce9e2;padding-top:17px}
.sync-panel summary{font-size:13px;font-weight:760;color:#1b7054;cursor:pointer}
.sync-link{display:flex;gap:8px;margin-top:12px;align-items:center}
.sync-link input{font-size:12px!important;min-width:0}
.sync-link button{white-space:nowrap}
.sync-buttons{display:flex;flex-wrap:wrap;gap:8px;margin-top:13px}
.sync-panel p.hint{margin-top:14px}
@media(max-width:650px){.history-metrics{max-width:100%}.history-entry{flex-wrap:wrap}.history-entry .delete-visit{margin-left:auto}.delivery-extras{grid-template-columns:1fr}.sync-link{flex-direction:column;align-items:stretch}}
/* RutaChristeaud v4: mobile-first visual navigation, preserving v3 data contracts */
:root{--ink:#132d3a;--navy:#102d39;--mint:#4fc696;--green:#168264;--soft:#f5f8f7;--line:#e5ecea;--muted:#687d86;--red:#bf514d;--gold:#c28a2b;background:#f3f6f7;color:var(--ink);font-family:ui-sans-serif,-apple-system,BlinkMacSystemFont,"SF Pro Display","Segoe UI",Arial,sans-serif}
body{background:linear-gradient(180deg,#edf4f4 0,#f5f7f7 440px,#f5f7f7 100%);min-width:300px}
main{max-width:1160px;padding:0 28px 60px}
header.top{height:76px;padding:0 max(28px,calc((100vw - 1160px)/2 + 28px));background:#102a36;border-bottom:1px solid #ffffff17;position:sticky;top:0;z-index:150}
.brand{font-size:22px;letter-spacing:-1px;white-space:nowrap}.brand-mark{width:38px;height:38px;background:#51d3a5;color:#12392b;border-radius:12px}
.brand-thin{font-weight:370}.app-status{display:flex;align-items:center;gap:7px;color:#c3d8dc;font-size:12px;font-weight:600}.status-dot{height:8px;width:8px;border-radius:50%;background:#69e6af;box-shadow:0 0 0 4px #69e6af18}
.top-nav{display:flex;gap:5px;background:#ffffff12;padding:5px;border-radius:13px}.top-tab{background:none;border:0;padding:10px 18px;border-radius:9px;font-size:13px;color:#b5ccd2;font-weight:720;transition:.15s}.top-tab.active{background:#f1f8f5;color:#15533f;box-shadow:0 2px 8px #091f2720}.top-tab:hover:not(.active){background:#ffffff16;color:#fff}
.bottom-nav{display:none}
/* Screen tabs are progressive enhancement; only hide when navigation JS has initialized. */
body.ui-ready [data-screen]:not([data-screen="all"]){display:none}
body.ui-ready[data-view="plan"] [data-screen="plan"],body.ui-ready[data-view="route"] [data-screen="route"],body.ui-ready[data-view="history"] [data-screen="history"]{display:block}
body.ui-ready[data-view="plan"] .dashboard,body.ui-ready[data-view="plan"] .dashboard-kpis{display:grid}
body.ui-ready[data-view="plan"] .plan-steps{display:grid}
.dashboard{background:#122f3d;min-height:367px;border-radius:0 0 26px 26px;display:grid;grid-template-columns:1fr 1fr;overflow:hidden;position:relative;color:#fff;box-shadow:0 16px 30px #1c4d5620;margin:0 0 20px}
.dashboard::before{content:"";position:absolute;inset:auto -130px -200px auto;width:560px;height:560px;border-radius:50%;background:radial-gradient(circle,#33a88b2b,transparent 65%);pointer-events:none}
.dashboard-text{padding:48px 20px 44px 47px;z-index:1;align-self:center}.dashboard .eyebrow{display:flex;flex-wrap:wrap;gap:9px;align-items:center;color:#9fe7c9;font-size:10px;letter-spacing:1.4px;font-weight:840;margin:0 0 16px}.eyebrow-dot{width:7px;height:7px;background:#70e4b4;border-radius:100%}.dash-date{font-weight:550;color:#a6c1c8;letter-spacing:.1px;margin-left:4px}
.dashboard h1{font-size:clamp(35px,4.1vw,61px);line-height:1.02;letter-spacing:-2.7px;margin:0 0 18px;font-weight:860}.dashboard h1 em{font-style:normal;color:#74e6b7}.dashboard p{color:#acc7cb;max-width:430px;font-size:14px;line-height:1.65;margin:0 0 25px}
.dashboard-actions{display:flex;flex-wrap:wrap;gap:9px;align-items:center}.dashboard-actions button{min-height:46px;padding:12px 17px;border-radius:11px;font-size:13px;font-weight:760}.dashboard-actions .hero-primary{background:#66dfa9;border:1px solid #66dfa9;color:#11362c;box-shadow:0 8px 18px #102d3880}.hero-secondary{color:#eafaf7;background:#ffffff12;border:1px solid #ffffff35}.hero-secondary span{margin-left:10px}
.dashboard-visual{min-height:350px;position:relative;margin:15px 15px 15px 5px;border-radius:22px;background:radial-gradient(circle at 65% 35%,#254e5e,#153745 60%,#143541);overflow:hidden;border:1px solid #ffffff10}
.visual-grid{position:absolute;inset:-40px;background-image:linear-gradient(#a4d2d40f 1px,transparent 1px),linear-gradient(90deg,#a4d2d40f 1px,transparent 1px);background-size:30px 30px;transform:rotate(-15deg) scale(1.4)}
.visual-path{width:94%;height:92%;position:absolute;inset:0;margin:auto;filter:drop-shadow(0 5px 10px #041d2370)}.visual-pin{position:absolute;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;color:#12392d;background:#b4f3d6;font-size:14px;font-weight:850;box-shadow:0 3px 0 #092d2e,0 0 0 5px #a2ffcd22}
.pin-a{left:12%;top:75%}.pin-b{left:34%;top:49%}.pin-c{left:59%;top:40%}.pin-d{right:12%;top:15%;background:#73e6aa}
.visual-float{position:absolute;right:18px;bottom:30px;display:flex;align-items:center;gap:10px;background:#f8fffc;color:#184435;padding:10px 15px;border-radius:13px;box-shadow:0 10px 40px #061e258a}.float-icon{width:30px;height:30px;background:#e0f6e9;color:#16956d;display:grid;place-items:center;border-radius:9px;font-weight:900;font-size:19px}.visual-float strong,.visual-float small{display:block}.visual-float strong{font-size:12px}.visual-float small{font-size:10px;color:#7c9791;margin-top:2px}.schematic-caption{position:absolute;left:19px;bottom:15px;font-size:8px;letter-spacing:1px;color:#a5bdc4}
.dashboard-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:13px;margin:0 0 35px}.kpi{display:flex;align-items:center;gap:15px;background:#fff;border-radius:15px;border:1px solid var(--line);padding:16px 19px;box-shadow:0 6px 15px #1c4d5608}.kpi-icon{width:43px;height:43px;border-radius:12px;display:grid;place-items:center;font-size:23px;font-weight:820}.kpi-icon-blue{background:#e9f1fc;color:#2c7bc0}.kpi-icon-green{background:#e1f6eb;color:#1b946c}.kpi-icon-gold{background:#fff4da;color:#b3872c}.kpi strong{font-size:25px;letter-spacing:-1px;display:block;line-height:1.05}.kpi span:last-child{font-size:11px;color:#738791;margin-top:4px;display:block;font-weight:620}
.view-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;margin:25px 0 18px}.view-heading h2{font-size:27px;line-height:1.15;letter-spacing:-1px;margin:6px 0 0}.view-heading p{color:#748892;margin:6px 0 0;font-size:13px}.kicker{font-size:10px;color:#1e9877;font-weight:850;letter-spacing:1.2px}.view-help{font-size:11px;color:#7f939a}.view-action{border:1px solid #c8ded7;background:#e7f5ef;color:#157052;font-weight:760;border-radius:12px;padding:13px 16px;white-space:nowrap}.pill-live{font-size:11px;color:#236b53;background:#e8f6ee;border:1px solid #d1eadd;border-radius:20px;padding:8px 11px;white-space:nowrap}
.plan-steps{display:grid;grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);align-items:start;gap:16px}.plan-steps>.panel{margin:0 0 12px;min-width:0}
.panel{border:1px solid #e2ebea;border-radius:18px;box-shadow:0 8px 22px #18445008;padding:23px}.section-heading{gap:12px;margin-bottom:19px}.section-heading h2{font-size:19px;font-weight:780}.section-heading p{color:#7d8e97;font-size:12px}.step{background:#e4f3ee;color:#167f5d;width:38px;min-width:38px;height:38px;font-size:13px}
.upload-button{min-height:116px;background:#f6fbf9;border:1.5px dashed #abcfc1;border-radius:13px;transition:transform .15s,background .15s}.upload-button:hover{background:#eaf8f1;transform:translateY(-2px)}.upload-icon{font-size:26px;color:#288d70}.upload-button b{font-size:13px}.upload-button small{color:#84999c;font-size:11px}
button.primary{background:#178567;border-color:#178567;box-shadow:0 3px 8px #17856719}.dashboard-actions .hero-primary{background:#66dfa9;border-color:#66dfa9}button.primary:hover{background:#106d55}.dashboard-actions .hero-primary:hover{background:#8bf5c5}
button.secondary{background:#e8f6ee;color:#197455;border-color:#cae9d8}button.quiet{background:#fff}.flex-actions{gap:8px}.stop-row{background:#fbfdfc;border-color:#e0ece6}.stop-number{background:#dff3e9;color:#187c5b}.stop-meta.good{color:#1e9667}
.consent{background:#f5faf9}.consent p{font-size:11px}
/* Route dashboard */
#step3{padding:21px}#step3>.section-heading{display:none}
.results .metric-grid{gap:12px}.metric{background:#f5f9fa;padding:20px 12px;border-radius:14px;text-align:left;position:relative;border:1px solid #eef3f1}.metric>div{font-size:clamp(22px,3vw,31px);color:#193a49;line-height:1.05}.metric>span{font-size:11px;color:#758b95;font-weight:690;display:block;margin-top:6px}
.metric:first-child{background:#e7f8ef}.metric:first-child>div{color:#18835e}
.route-progress{margin:18px 0 10px;border:1px solid #e6eeeb;background:#fff;border-radius:13px;padding:15px 17px}.route-progress-top{display:flex;justify-content:space-between;align-items:center;color:#5e7480;font-size:13px}.route-progress-top strong{font-size:16px;color:#174a3a}.route-progress-top>span:last-child{font-weight:850;color:#238c69}.route-progress-track{height:9px;border-radius:30px;background:#e7f0ee;margin:12px 0 9px;overflow:hidden}.route-progress-fill{height:100%;background:linear-gradient(90deg,#24ae7b,#60dba3);border-radius:30px;transition:width .3s}.route-breakdown{display:flex;gap:14px;flex-wrap:wrap;font-size:11px;color:#798d93}.progress-label{display:inline-flex;align-items:center;gap:5px}.progress-label::before{content:"";width:7px;height:7px;border-radius:50%;background:#a1afb5}.progress-label.delivered::before{background:#1eab78}.progress-label.failed::before{background:#de726b}.progress-label.pending::before{background:#9daab0}
.accuracy{font-size:11px;border-left:3px solid #9fd4c4;padding:10px 12px;background:#f5faf8;color:#557b75;border-radius:0 8px 8px 0;margin:16px 0}
.map-frame{border:1px solid #dce7e6;border-radius:16px;overflow:hidden;background:#eef3f4;position:relative}.map-topbar{height:45px;display:flex;justify-content:space-between;align-items:center;background:#f7fbfa;border-bottom:1px solid #e5eded;padding:0 16px;gap:10px;font-size:10px;color:#6c818c;letter-spacing:.3px}.map-topbar>span:first-child{font-weight:850;color:#2c7562;letter-spacing:1px}.map-live-dot{display:inline-block;width:6px;height:6px;background:#41b589;border-radius:50%;margin-right:7px}.map{border-radius:0;height:430px;background:#e2eceb}.map .leaflet-container{background:#e8efed}
.map-pin{height:31px;min-width:31px;padding:0 5px;border:3px solid #fff;border-radius:50%;background:#156e91;box-shadow:0 4px 10px #0b3b5270;color:#fff;font:800 12px/25px ui-sans-serif,system-ui;display:flex;align-items:center;justify-content:center}.map-pin.start{background:#174759}.map-pin.delivered{background:#229369}.map-pin.not-delivered{background:#d06356}.map-pin.visited{background:#d69c3e}
.route-list-title{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin:21px 0 8px}.route-list-title h3{font-size:17px!important;margin:0!important}.route-list-title>span{font-size:11px;color:#84999e}.route-list{display:grid;grid-template-columns:1fr 1fr;gap:11px}
.route-item{min-width:0;display:grid;grid-template-columns:34px minmax(0,1fr);align-items:start;column-gap:12px;row-gap:8px;padding:15px;background:#fff;border:1px solid #e2eae8;border-radius:14px;position:relative;transition:border .12s,background .12s}.route-item:hover{border-color:#c9ddd5}.route-circle{width:34px;height:34px;background:#194458;font-size:13px;border-radius:11px}.route-main{min-width:0}.route-main small{color:#7e929b;font-size:11px}.nav-route summary{font-size:13px;text-decoration:none;color:#183947;font-weight:760;line-height:1.5}.nav-route summary:hover{text-decoration:underline}.nav-route summary::after{content:" ↗";color:#1c9b73}.nav-choices a{font-size:11px;border-radius:8px;padding:8px 10px}.route-actions{grid-column:2;display:flex;flex-wrap:wrap;align-items:center;gap:7px;margin:1px 0 0}.mini-link{background:#f4f7f8;color:#325d6e;border-color:#e4eeee;padding:8px 11px}.visited-btn{background:#e4f5ec;border-color:#c8e7d4;color:#127454;padding:8px 11px;font-size:11px}.visited-btn.is-done{background:#d7f1e3}.route-item.is-delivered{border-color:#99d9b8;background:#f6fcf8}.route-item.is-delivered .route-circle{background:#1b9c6a}.route-item.is-not-delivered{border-color:#efb4ae;background:#fffafa}.route-item.is-not-delivered .route-circle{background:#ca665e}.route-item.is-pending-delivery{border-color:#edd5a8;background:#fffdf6}.route-item.is-pending-delivery .route-circle{background:#c28a2b}.route-item .delivery-fields{grid-column:1/-1;margin-top:8px;padding:10px;border-radius:10px;background:#fff;border:1px solid #e8eeea}.route-item .delivery-select{font-size:12px}
.delivery-select[data-status="delivered"]{background:#e5f6ec!important;border-color:#9edab7!important;color:#126c49!important}.delivery-select[data-status="not_delivered"]{background:#ffefee!important;border-color:#efbab7!important;color:#a6443d!important}.delivery-select[data-status="pending"]{background:#fff6e4!important;border-color:#ebd4ab!important;color:#9b752b!important}
#step3 .segment-grid a{background:#e5f4ed;border-radius:10px}
.result-empty{padding:45px 18px 60px;display:flex;flex-direction:column;align-items:center;background:linear-gradient(180deg,#f4fbf8,#fff);border:1px dashed #bedccf}.result-empty>strong{display:block;font-size:24px;letter-spacing:-.7px;color:#194236;margin-top:4px}.result-empty p{font-size:13px;line-height:1.7;color:#6d8581;max-width:390px}.result-empty button{margin-top:13px}.empty-route-art{margin-bottom:10px}
/* History: clear monthly stats with a real data bar */
#step4>.section-heading{display:none}.history-top{align-items:start;gap:24px}.history-top>div:first-child{flex:0 0 205px}.history-metrics{flex:1;max-width:none;grid-template-columns:repeat(3,1fr);gap:9px}.history-stat{background:#f8faf9;border-color:#e7efec;min-height:77px;text-align:left;padding:13px}.history-stat strong{font-size:25px;line-height:1;color:#1b3c49}.history-stat span{font-size:11px;color:#71878a;font-weight:590}.history-stat:nth-child(2){background:#e7f7ee}.history-stat:nth-child(2) strong{color:#17835e}.history-stat:nth-child(3){background:#fff0ef}.history-stat:nth-child(3) strong{color:#bf5650}.history-stat:nth-child(4){background:#fff6e7}.history-stat:nth-child(4) strong{color:#a67e32}
.history-chart{margin-top:20px;border-radius:14px;background:#f8faf9;border:1px solid #e8eeeb;padding:17px 20px}.chart-title{display:flex;justify-content:space-between;align-items:center;gap:10px}.chart-title strong{font-size:13px}.chart-title span{color:#81979b;font-size:11px}.chart-stacked{height:16px;background:#e5ece9;display:flex;overflow:hidden;border-radius:12px;margin:15px 0 12px}.chart-stacked>span{display:block;height:100%;transition:width .25s ease}.bar-delivered{background:#36b884}.bar-failed{background:#df756b}.bar-pending{background:#d8ae5f}.chart-legend{display:flex;gap:18px;flex-wrap:wrap;font-size:11px;color:#72868f}.chart-legend span{display:flex;align-items:center;gap:7px}.legend-dot{width:8px;height:8px;border-radius:100%;display:inline-block}.legend-dot.green{background:#36b884}.legend-dot.red{background:#df756b}.legend-dot.gray{background:#d8ae5f}
.history-toolbar{margin-top:19px}.history-entry{border-radius:12px;background:#fff;padding:15px 16px}.history-entry.is-delivered{border-left:4px solid #39af7e}.history-entry.is-not-delivered{border-left:4px solid #df756b}.history-entry.is-pending-delivery{border-left:4px solid #d6ae5d}.history-entry strong{font-size:13px}.history-entry .delete-visit{border-color:#f2dfde;color:#a9625a}.history-list{max-height:none;overflow:visible}
.sync-panel{background:#f7faf9;border-radius:13px;padding:17px;border:1px solid #e4eee8;margin-top:20px}.sync-panel summary{font-size:13px}
.notice{position:relative;z-index:20;margin:14px 0;background:#e6f7ed;border-color:#bde6ce}.notice.error{background:#fff1ec}
footer{max-width:1160px;border:0;color:#849499;padding:24px 28px 35px}
/* Visible focus; moderate motion */
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #58c79b;outline-offset:3px}
@media (min-width:1020px){.results .metric-grid{grid-template-columns:repeat(3,1fr)}.history-metrics{grid-template-columns:repeat(3,1fr)}}
@media(max-width:930px){main{padding:0 20px 65px}.dashboard-text{padding-left:30px}.dashboard h1{font-size:47px}.plan-steps{grid-template-columns:1fr}.route-list{grid-template-columns:1fr}.history-top{flex-direction:column}.history-top>div:first-child{flex:initial}.history-metrics{width:100%}}
@media(max-width:660px){
 html{scroll-padding-top:80px}body{background:#f4f7f7}
 header.top{height:63px;padding:0 16px}.app-status{display:none}.top-nav{display:none}.brand{font-size:22px}.brand-mark{width:36px;height:36px}
 main{padding:0 12px 90px}.dashboard{grid-template-columns:1fr;border-radius:0 0 20px 20px;min-height:0;margin:0 -12px 11px}.dashboard-text{padding:32px 24px 0}.dashboard h1{font-size:45px;letter-spacing:-2px;margin:11px 0 15px}.dashboard p{font-size:13px;margin:0 0 21px;max-width:350px}.dashboard .eyebrow{font-size:9px;letter-spacing:1px}.dashboard-actions{gap:8px}.dashboard-actions button{min-height:43px;padding:10px 14px;font-size:12px}
 .dashboard-visual{min-height:180px;height:180px;margin:20px 14px 14px}.visual-path{width:83%;height:100%;transform:scaleY(.75)}.visual-pin{width:26px;height:26px;font-size:10px}.pin-a{left:16%;top:76%}.pin-b{left:38%;top:45%}.pin-c{left:60%;top:41%}.pin-d{right:14%;top:11%}.visual-float{right:11px;bottom:12px;padding:6px 9px}.float-icon{width:25px;height:25px}.visual-float strong{font-size:10px}.visual-float small{font-size:9px}.schematic-caption{left:10px;bottom:7px;font-size:7px}
 .dashboard-kpis{gap:7px;margin:0 0 23px}.kpi{padding:12px 8px;gap:6px;flex-direction:column;align-items:flex-start;border-radius:12px;box-shadow:none}.kpi-icon{width:29px;height:29px;font-size:16px;border-radius:8px}.kpi strong{font-size:23px}.kpi span:last-child{font-size:10px;line-height:1.25}
 .view-heading{align-items:flex-end;margin:22px 5px 13px}.view-heading h2{font-size:24px}.view-heading p{font-size:11px}.view-help{display:none}.view-action{font-size:11px;padding:10px 9px}.kicker{font-size:9px}.pill-live{display:none}
 .panel{padding:17px 14px;border-radius:15px;box-shadow:0 5px 20px #18445007}.section-heading h2{font-size:18px}.section-heading p{font-size:11px}.step{min-width:34px;width:34px;height:34px}.upload-button{min-height:109px}.upload-grid{gap:8px}.stop-row{grid-template-columns:26px 1fr}.settings{flex-wrap:wrap}.settings>div{max-width:160px}
 .map{height:min(49vh,370px)}.map-topbar{padding:0 10px}.map-topbar>span:last-child{font-size:9px}.results .metric-grid{gap:7px}.metric{padding:15px 10px}.metric>div{font-size:22px}.metric>span{font-size:10px}.route-progress{padding:13px}.route-list{grid-template-columns:1fr}.route-list-title>span{display:none}.route-item{padding:12px;grid-template-columns:31px minmax(0,1fr)}.route-circle{width:31px;height:31px}.route-actions{margin-left:0;gap:5px}.route-item .delivery-fields{padding:7px}.visited-btn{min-height:38px}.mini-link{min-height:37px;display:inline-flex;align-items:center}.results h3{font-size:15px}.accuracy{font-size:10px}.result-empty{padding:25px 8px 30px}
 .history-top{gap:12px}.history-metrics{grid-template-columns:repeat(3,1fr);gap:7px}.history-stat{padding:12px 9px;min-height:75px}.history-stat strong{font-size:22px}.history-stat span{font-size:10px}.history-chart{padding:13px}.chart-legend{gap:8px;font-size:10px}.history-entry{padding:12px}
 .bottom-nav{height:calc(63px + env(safe-area-inset-bottom,0px));padding-bottom:env(safe-area-inset-bottom,0px);display:flex;position:fixed;z-index:200;bottom:0;left:0;right:0;align-items:center;justify-content:space-around;background:#fff;border-top:1px solid #e2eae8;box-shadow:0 -6px 22px #17384213}
 .bottom-tab{border:0;background:none;color:#8a9ca2;flex:1;min-height:56px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;font-size:11px;font-weight:750}.bottom-icon{font-size:22px;line-height:27px;font-weight:500}.bottom-tab.active{color:#168263}.bottom-tab.active .bottom-icon{background:#e4f6eb;border-radius:9px;padding:0 10px}
 footer{padding:17px 14px 86px;font-size:10px}
}
@media print{header,.bottom-nav,.dashboard,.dashboard-kpis,.plan-steps,#step4,.view-heading,footer,.route-progress,.route-actions,.sync-panel{display:none!important}body.ui-ready #step3{display:block!important}main{padding:0}#step3{border:0;box-shadow:none}.map{height:310px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}

.map-fallback{min-height:310px;background:linear-gradient(145deg,#f5fbf8,#e7f0ee);padding:18px 24px 22px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#285b51;text-align:center}.map-fallback[hidden]{display:none!important}.offline-title{font-size:14px;font-weight:830;color:#28594b}.map-fallback p{font-size:11px;color:#7c9892;margin:6px 0 5px}.offline-svg{width:100%;height:auto;max-height:290px;display:block}.offline-action{font-size:12px;padding:12px 18px;border-radius:10px;font-weight:750;text-decoration:none;background:#177f64;color:#fff;margin-top:4px}.offline-action:hover{background:#11634f}.map-popup-links{display:flex;gap:10px;margin-top:8px}.map-popup-links a{font-size:12px;font-weight:750;color:#167b5e}.route-pin-container{background:transparent!important;border:0!important}.leaflet-div-icon{background:none!important;border:0!important}

.next-stop{display:flex;justify-content:space-between;gap:16px;align-items:center;border-radius:14px;border:1px solid #bce5d1;background:linear-gradient(110deg,#eaf8f1,#f9fffc);padding:15px 19px;margin:14px 0}.next-stop-info{min-width:0;flex:1}.next-kicker{display:block;font-weight:850;letter-spacing:1.1px;font-size:9px;color:#269070;margin-bottom:6px}.next-stop-info strong{display:block;color:#184537;font-size:15px;line-height:1.45;overflow-wrap:anywhere}.next-stop-info small{display:block;margin-top:5px;color:#699184;font-size:11px}.next-stop-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.next-stop-actions a{text-decoration:none;white-space:nowrap;font-size:12px;font-weight:790;border-radius:9px;padding:11px 13px;min-height:41px;display:inline-flex;align-items:center}.next-maps{background:#177f61;color:#fff}.next-waze{background:#fff;color:#237359;border:1px solid #cbe9d8}.next-stop.complete{background:#eef9ef;border-color:#a5dbb6}@media(max-width:660px){.next-stop{align-items:stretch;flex-direction:column;padding:14px}.next-stop-info strong{font-size:14px}.next-stop-actions a{flex:1;justify-content:center}}
