:root{--navy:#14283F;--navy-soft:#1b3a53;--teal:#28D2B2;--teal-dark:#087D6D;--teal-light:#e4faf7;--bg:#F5F8FB;--paper:#fff;--ink:#17283A;--muted:#64788A;--line:#E2EAF1;--blue:#2F74DA;--green:#16865F;--amber:#D89420;--red:#D44A56;--shadow:0 8px 32px rgba(16,44,65,.06);--round:19px;--font-body:'Inter',system-ui,-apple-system,sans-serif;--font-heading:'Nunito Sans',var(--font-body)}
*,*::before,*::after{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);font:14px/1.5 var(--font-body);color:var(--ink)}button,input,textarea,select{font:inherit}button{cursor:pointer}button:disabled{opacity:.45;cursor:not-allowed}svg.ico{width:20px;height:20px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.85;vertical-align:middle;flex:none}svg.ico.sm{width:16px;height:16px}svg.ico.xl{width:38px;height:38px}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:var(--font-heading);line-height:1.2}h1{font-size:clamp(25px,3vw,35px);font-weight:900;letter-spacing:-.75px;margin-bottom:7px}h2{font-size:19px;font-weight:900;margin-bottom:6px}h3{font-size:16px;font-weight:900;margin-bottom:6px}p{margin-bottom:12px}small,.small{font-size:12px;color:var(--muted)}a{color:var(--teal-dark);text-underline-offset:3px}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,a:focus-visible{outline:3px solid #9ff3de;outline-offset:2px}a,button{ -webkit-tap-highlight-color:transparent }
.app-layout{display:flex;min-height:100vh}.rail{background:var(--navy);color:white;width:250px;flex:0 0 250px;padding:30px 16px 22px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.rail-brand{display:flex;align-items:center;gap:10px;padding:0 13px 40px}.rail-brand strong,.mobile-brand strong{font-family:var(--font-heading);font-size:19px;line-height:1.1;font-weight:900;white-space:nowrap}.rail-brand strong span,.mobile-brand strong span{color:#38dccb}.rail-brand small{color:#95adbc;display:block;font-size:10px;margin-top:4px}.rail-nav{display:flex;flex-direction:column;gap:8px}.nav-link{width:100%;display:flex;align-items:center;gap:14px;border:0;background:transparent;color:#b3c5d1;text-align:left;padding:14px 18px;border-radius:14px;font-weight:700;transition:.15s}.nav-link .ico{width:21px;height:21px}.nav-link:hover{background:#183852;color:#fff}.nav-link.active{background:#1b4859;color:#7dffea;box-shadow:inset 3px 0 0 #2ce6cf}.rail-bottom{margin-top:auto;padding:20px 13px 10px;border-top:1px solid #294054}.rail-bottom p{font-family:var(--font-heading);color:#8fa9bb;font-weight:700;font-size:16px;line-height:1.5;margin:18px 0 0}.rail-bottom b{color:#57e2d5}.local-label{font-size:11px;color:#b4c3cc;display:flex;align-items:center;gap:7px}.online-dot{display:inline-block;width:7px;height:7px;background:#58d7bd;border-radius:50%;box-shadow:0 0 0 4px #58d7bd26}
.main-shell{min-width:0;flex:1}.topbar{min-height:74px;background:#fff;display:flex;align-items:center;justify-content:space-between;padding:14px clamp(20px,4vw,45px);border-bottom:1px solid var(--line);gap:12px}.crumb{font-size:13px;font-weight:800;color:#537084}.crumb span{color:#c0cdd5;padding:0 8px}.top-actions{margin-left:auto;display:flex;align-items:center;gap:9px}.today-pill{font-size:12px;color:#607589;font-weight:700;background:#f2f7f8;border-radius:9px;padding:9px 12px}.icon-button{display:inline-flex;justify-content:center;align-items:center;border:1px solid var(--line);border-radius:11px;background:white;color:#355369;min-width:38px;height:38px}.icon-button:hover{color:var(--teal-dark);border-color:#b4e6df}.mobile-brand{display:none;align-items:center;gap:8px}.main-content{max-width:1520px;margin:0 auto;padding:30px clamp(18px,3.6vw,46px) 60px}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin:0 0 24px}.eyebrow{color:var(--teal-dark);font-size:11px;letter-spacing:1.7px;text-transform:uppercase;font-weight:900;margin-bottom:5px}.page-head p{color:var(--muted);margin:0}.hero-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.btn{display:inline-flex;justify-content:center;align-items:center;gap:9px;border:1px solid transparent;border-radius:12px;padding:11px 16px;font-size:13px;font-weight:800;min-height:42px;white-space:nowrap;transition:transform .15s,background .15s,box-shadow .15s;text-decoration:none}.btn:hover:not(:disabled){transform:translateY(-1px)}.btn.primary{background:var(--teal);color:#063e3c;box-shadow:0 6px 16px #12b8ac23}.btn.primary:hover{background:#37d2c4}.btn.navy{background:var(--navy);color:white}.btn.secondary{background:white;color:var(--navy);border-color:var(--line)}.btn.secondary:hover{background:#faffff;border-color:#a8d7d1}.btn.ghost{background:#eaf4f6;color:#275d61}.btn.danger{background:#fff1f2;color:#c44c59;border-color:#f8d6d9}.btn.sm{padding:7px 10px;min-height:34px;font-size:12px}.btn.block{width:100%}.btn .ico{width:17px;height:17px}
.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin-bottom:20px}.metric{background:white;box-shadow:var(--shadow);border:1px solid #e9f0f4;border-radius:17px;padding:18px 19px;display:flex;align-items:center;gap:14px;min-height:102px}.metric-icon{width:45px;height:45px;border-radius:14px;display:grid;place-items:center;flex:none}.metric-icon.blue{background:#eaf3ff;color:var(--blue)}.metric-icon.green{background:#e5f9f0;color:var(--green)}.metric-icon.amber{background:#fff8e5;color:#c48a0a}.metric-icon.teal{background:var(--teal-light);color:var(--teal-dark)}.metric-icon.red{background:#ffedef;color:var(--red)}.metric .number{font-family:var(--font-heading);font-size:27px;font-weight:900;letter-spacing:-.3px;line-height:1}.metric .label{font-size:12px;color:var(--muted);margin-top:7px;font-weight:700}
.card{background:var(--paper);border:1px solid #e6edf2;border-radius:var(--round);box-shadow:var(--shadow);min-width:0}.card-head{padding:19px 20px 15px;display:flex;justify-content:space-between;align-items:center;gap:10px}.card-head h2,.card-head h3{margin:0}.card-body{padding:0 20px 20px}.subline{color:var(--muted);font-size:12px}.map-columns{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(305px,.92fr);gap:18px;align-items:start}.map-card{overflow:hidden}.map-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:16px 18px}.map-toolbar h2{margin:0}.map-tools{display:flex;gap:8px;align-items:center}.map-frame{position:relative;height:490px;min-height:490px;background:#d9ebeb;overflow:hidden}.map-host{display:none}.map-inner{height:100%;width:100%}.map-frame .map-host{display:block;height:490px}.map-unavailable{position:absolute;inset:0;height:100%;padding:40px;display:flex;flex-direction:column;gap:12px;text-align:center;align-items:center;justify-content:center;color:#527185;background:repeating-linear-gradient(120deg,#eaf1f3,#eaf1f3 20px,#e1edec 20px,#e1edec 40px)}.map-unavailable strong{font-size:17px;color:var(--navy)}.map-unavailable span{max-width:330px}.map-foot{display:flex;gap:12px;flex-wrap:wrap;padding:14px 18px;background:#fcfefe;border-top:1px solid #edf2f5;align-items:center}.legend{font-size:11px;color:#526b7f;font-weight:700;white-space:nowrap}.legend-dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:5px;background:var(--blue)}.legend-dot.entregado{background:var(--green)}.legend-dot.incidencia{background:var(--amber)}.legend-dot.no_encontrado{background:var(--red)}.map-hint{font-size:11px;color:#718999;margin-left:auto}.leaflet-container{font-family:var(--font-body)!important}.pt-marker{width:38px;height:38px;border-radius:50% 50% 50% 3px;background:var(--blue);border:3px solid white;transform:rotate(-45deg);box-shadow:0 4px 14px #08293b3e;display:flex;align-items:center;justify-content:center}.pt-marker span{transform:rotate(45deg);color:white;font-size:14px;font-weight:900}.pt-marker.entregado{background:var(--green)}.pt-marker.incidencia{background:var(--amber)}.pt-marker.no_encontrado{background:var(--red)}.pt-marker.mixed{background:var(--navy)}.leaflet-div-icon{background:transparent;border:none}
.side-card{overflow:hidden}.side-card .card-head{padding-bottom:10px}.compact-search{display:flex;align-items:center;gap:8px;background:#f6f9fb;border:1px solid var(--line);border-radius:10px;padding:0 12px;color:#90a2ad}.compact-search input{background:transparent;border:0;outline:0;width:100%;height:40px;font-size:12px;color:var(--ink)}.compact-search input:focus{outline:0}.compact-search:focus-within{border-color:#41d3c4;box-shadow:0 0 0 3px #bffaf15e}.filter-chips{display:flex;gap:6px;overflow-x:auto;padding:12px 0 16px;scrollbar-width:thin}.chip{border:1px solid #e0e9ef;background:#fff;padding:7px 11px;font-size:11px;border-radius:100px;color:#6b8092;white-space:nowrap;font-weight:800}.chip.active{border-color:#b3e7df;background:#e4faf7;color:#088e85}.stop-list{max-height:515px;overflow:auto;scrollbar-width:thin}.stop-row{width:100%;text-align:left;display:flex;align-items:center;gap:11px;background:white;border:0;border-top:1px solid #edf2f5;padding:14px 18px;transition:background .15s}.stop-row:hover{background:#f7fbfb}.stop-dot{width:11px;height:11px;flex:none;border-radius:50%;background:var(--blue)}.stop-dot.entregado{background:var(--green)}.stop-dot.incidencia{background:var(--amber)}.stop-dot.no_encontrado{background:var(--red)}.stop-dot.mixed{background:var(--navy)}.stop-info{min-width:0;flex:1}.stop-name{font-size:13px;color:var(--ink);font-weight:800;display:block;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.stop-meta{font-size:11px;color:#7b90a0;display:block;margin-top:2px}.count-bubble{min-width:27px;height:27px;border-radius:100px;background:#eef5f7;color:#426477;display:grid;place-items:center;font-size:12px;font-weight:900;padding:0 7px}.empty{display:flex;flex-direction:column;gap:13px;align-items:center;text-align:center;justify-content:center;color:#8397a6;padding:40px 20px}.empty .empty-icon{width:70px;height:70px;border-radius:19px;display:grid;place-items:center;background:#eafbfa;color:var(--teal-dark)}.empty h3{color:var(--navy);margin:0}.empty p{max-width:370px;margin:0;color:var(--muted);font-size:13px}.empty .btn{margin-top:5px}
.banner{border-radius:17px;padding:18px 21px;background:linear-gradient(105deg,#0b3445,#145c63);color:white;display:flex;align-items:center;gap:16px;justify-content:space-between;margin-top:18px}.banner h3{margin:0 0 4px}.banner p{font-size:12px;color:#c6e6e6;margin:0}.banner .btn{color:#063e3c;background:#53e1d1;border:0}.form-field{display:flex;flex-direction:column;gap:6px;margin:0 0 14px;min-width:0}.form-field label{font-size:12px;font-weight:800;color:#38536a}.field,.select,.text-area{background:#fff;border:1px solid #dbe6ec;border-radius:11px;width:100%;padding:12px 13px;outline:0;color:var(--ink);min-height:43px}.field:focus,.select:focus,.text-area:focus{border-color:#12b8ac;box-shadow:0 0 0 3px #2ae5cc23}.text-area{min-height:84px;resize:vertical}.field::placeholder{color:#9cabb6}.field-help{font-size:11px;color:#8093a1}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 12px}.form-grid .full{grid-column:1/-1}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin:0 0 18px}.toolbar-left,.toolbar-right{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.input-search{min-width:230px;max-width:370px;flex:1}.toolbar select{width:auto;min-width:155px}.stack{display:flex;flex-direction:column;gap:13px}.muted{color:var(--muted)}.pill{border-radius:999px;padding:5px 9px;font-size:11px;font-weight:800;white-space:nowrap;background:#eff6fa;color:#60798d}.pill.pendiente{background:#eaf3ff;color:#246ad0}.pill.entregado{background:#e5faf0;color:#12825d}.pill.incidencia{background:#fff5da;color:#a87400}.pill.no_encontrado{background:#ffeced;color:#cc4a53}.pill.mixed{background:#e9edf3;color:#34475f}.list-item-card{display:flex;align-items:center;gap:14px;border:1px solid #e4edf1;border-radius:14px;padding:16px;background:white}.list-item-card .item-main{min-width:0;flex:1}.list-item-card strong{display:block;font-weight:800;color:var(--navy);font-size:14px}.list-item-card p{font-size:12px;color:var(--muted);margin:3px 0 0}.list-item-card .actions{display:flex;gap:7px;flex-wrap:wrap}.small-divider{height:1px;background:var(--line);margin:17px 0}.section-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(285px,.85fr);gap:18px}.progress-track{height:9px;border-radius:20px;background:#e8f0f2;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,#11bcb2,#54d9b6);width:0;border-radius:20px;transition:.3s}.stat-line{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:10px 0;font-size:13px;border-bottom:1px solid #f0f4f7}.stat-line:last-child{border-bottom:0}.stat-line b{color:var(--navy)}.notice{border:1px solid #d8e9ed;background:#f2fafb;padding:12px 15px;border-radius:12px;color:#557282;font-size:12px;line-height:1.5}.notice.warn{background:#fff9eb;border-color:#fae9c8;color:#94680e}.notice.success{background:#ecfbf4;border-color:#b8f3d2;color:#227e5d}.tips{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:18px}.tip{display:flex;align-items:flex-start;gap:11px;border:1px solid #e7edf1;background:#fff;border-radius:14px;padding:16px}.tip .ico{color:var(--teal-dark)}.tip strong{display:block;font-size:12px}.tip p{font-size:11px;color:var(--muted);margin:2px 0 0}.route-step{display:flex;gap:12px;align-items:flex-start;padding:13px 0;border-bottom:1px solid #edf2f5}.route-num{width:27px;height:27px;border-radius:50%;background:#e8f9f6;color:#088c82;display:grid;place-items:center;font-weight:900;flex:none}.route-step .item-main{min-width:0;flex:1}.route-step b{font-size:13px}.route-step p{font-size:11px;color:var(--muted);margin:2px 0}.route-step .btn{padding:6px 10px}.route-flow{max-height:580px;overflow:auto}.route-controls{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.route-stats{display:flex;gap:16px;flex-wrap:wrap}.route-stats b{font-family:var(--font-heading);font-size:21px}.route-stats span{display:block;font-size:11px;color:#7d90a1}.overline{font-size:11px;text-transform:uppercase;letter-spacing:1px;color:#7b91a3;font-weight:900}.empty-table{font-size:12px;color:var(--muted);text-align:center;padding:28px}.table-scroll{overflow:auto}.data-table{border-collapse:collapse;width:100%;font-size:12px}.data-table th{font-size:11px;color:#748d9d;text-align:left;border-bottom:1px solid var(--line);padding:12px 10px;white-space:nowrap}.data-table td{border-bottom:1px solid #eef2f5;padding:13px 10px}.data-table tr:last-child td{border-bottom:0}.price{font-weight:900;color:var(--navy)}.kpi-large{font:900 32px var(--font-heading);letter-spacing:-1px;color:var(--navy)}.day-hero{display:flex;justify-content:space-between;align-items:center;gap:18px;background:linear-gradient(115deg,#0c2d44,#12535d);color:white;border-radius:19px;padding:26px;margin-bottom:18px;flex-wrap:wrap}.day-hero strong{font:900 25px var(--font-heading)}.day-hero p{color:#acd6d9;margin:6px 0 0}.day-hero .btn{background:#41dbcb;color:#073e3c}.gps-on{color:#14a978;font-weight:900}.gps-off{color:#8e9fac}.grid-two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.soft-card{padding:16px;border-radius:14px;background:#f6f9fa}.soft-card strong{display:block;margin:6px 0 4px}.soft-card p{font-size:12px;color:var(--muted);margin:0}.status-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.status-btn{border:1px solid var(--line);background:white;color:#6a8291;border-radius:11px;padding:9px 10px;font-size:11px;font-weight:900;display:flex;align-items:center;gap:7px;min-height:40px}.status-btn.selected{border-color:#0bb9ac;background:#e9fbf8;color:#065d57}.status-btn .stop-dot{width:8px;height:8px}.notification-row{padding:12px;border:1px solid var(--line);border-radius:12px;margin-bottom:8px;background:#fafcfd}.notification-row .row-line{display:flex;align-items:center;gap:9px}.notification-row .row-line .field{flex:1;min-width:0}.notification-row .status-grid{margin-top:9px}.photo-grid{display:flex;flex-wrap:wrap;gap:10px}.photo-thumb{position:relative;width:95px;height:95px;border-radius:12px;overflow:hidden;background:#e5edef}.photo-thumb img{width:100%;height:100%;object-fit:cover}.photo-thumb button{position:absolute;right:4px;top:4px;border:0;border-radius:50%;color:#fff;background:#0009;width:23px;height:23px}
.modal-overlay{position:fixed;inset:0;background:#082334a6;display:flex;align-items:center;justify-content:center;padding:17px;z-index:3000;backdrop-filter:blur(3px)}.modal-window{background:#fff;border-radius:20px;max-width:620px;width:100%;max-height:min(91vh,950px);box-shadow:0 20px 80px #001b3099;display:flex;flex-direction:column;overflow:hidden}.modal-window.wide{max-width:780px}.modal-head{padding:21px 23px 16px;border-bottom:1px solid #e9eff2;display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex:none}.modal-head h2{margin:0}.modal-body{padding:20px 23px;overflow-y:auto;overscroll-behavior:contain}.modal-foot{padding:14px 23px;border-top:1px solid var(--line);display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap;flex:none;background:#fff}.modal-close{border:0;background:#eef4f5;color:#476377;border-radius:11px;width:35px;height:35px;display:grid;place-items:center}.modal-close:hover{background:#ddeef0}.import-zone{border:2px dashed #b8e3df;background:#f5fcfb;border-radius:16px;padding:22px;text-align:center}.import-zone .ico{color:#0caaa1;width:30px;height:30px}.import-zone p{font-size:12px;color:var(--muted)}.import-zone input{max-width:100%}.toast{position:fixed;bottom:27px;right:27px;z-index:9000;background:#103348;color:#fff;box-shadow:0 12px 36px #09293c4a;border-radius:12px;padding:13px 18px;max-width:400px;font-size:13px;font-weight:700}.toast.error{background:#ab3c4c}.toast.success{background:#13695f}.bottom-nav{display:none}.map-host{position:absolute;left:-9000px;top:-9000px;width:900px;height:500px}.map-host.active{position:relative;left:auto;top:auto;width:100%;height:100%}#mapUnavailable[hidden],.toast[hidden],.hidden{display:none!important}
@media(max-width:1190px){.rail{width:215px;flex-basis:215px}.rail-brand{padding-left:7px}.metrics{gap:10px}.metric{padding:13px;gap:10px}.metric-icon{width:39px;height:39px}.map-columns{grid-template-columns:minmax(0,1.4fr) minmax(260px,1fr)}.main-content{padding:25px 22px 60px}}
@media(max-width:965px){.rail{display:none}.bottom-nav{display:flex;position:fixed;left:0;bottom:0;right:0;z-index:2000;justify-content:space-around;align-items:stretch;box-shadow:0 -5px 25px #092d4014;border-top:1px solid #e8eff3;background:#fff;padding:7px 4px max(9px,env(safe-area-inset-bottom))}.bottom-nav .nav-link{width:20%;gap:3px;flex-direction:column;padding:5px 2px;border-radius:11px;font-size:10px;text-align:center;align-items:center;min-height:50px}.bottom-nav .nav-link .ico{width:21px;height:21px}.bottom-nav .nav-link.active{background:#eaf9f6;color:#078d82;box-shadow:none}.bottom-nav .nav-link:not(.active){color:#7a90a1}.mobile-brand{display:flex}.crumb{display:none}.topbar{padding:12px 20px;min-height:64px}.main-content{padding-bottom:100px}.map-columns{grid-template-columns:1.5fr 1fr}}
@media(max-width:720px){h1{font-size:27px}.page-head{margin-bottom:16px}.page-head .hero-actions{justify-content:flex-start}.page-head{flex-direction:column;gap:15px}.metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.metric{min-height:89px}.metric .number{font-size:25px}.map-columns,.section-grid,.grid-two{grid-template-columns:1fr}.map-frame,.map-frame .map-host{height:390px;min-height:390px}.stop-list{max-height:380px}.tips{grid-template-columns:1fr}.today-pill{display:none}.main-content{padding:22px 15px 100px}.card-head{padding:17px 16px}.card-body{padding:0 16px 17px}.list-item-card{align-items:flex-start}.banner{flex-wrap:wrap}.modal-overlay{align-items:flex-end;padding:0}.modal-window,.modal-window.wide{max-width:none;max-height:95dvh;border-radius:23px 23px 0 0}.modal-body{padding:17px 18px}.modal-head{padding:19px 18px 14px}.modal-foot{padding:13px 18px max(18px,env(safe-area-inset-bottom))}.toast{bottom:87px;left:14px;right:14px;max-width:none}.toolbar .input-search{max-width:none;width:100%;flex:1 1 100%}.toolbar-right{width:100%}.toolbar .select{flex:1}.form-grid{gap:0 9px}}
@media(max-width:400px){.mobile-brand strong{font-size:16px}.topbar{padding:11px 13px}.top-actions{gap:5px}.icon-button{width:34px;min-width:34px;height:34px}.metric{padding:12px;gap:9px}.metric-icon{height:34px;width:34px}.metric .label{font-size:11px}.map-hint{display:none}.stop-row{padding:12px}.btn{padding:10px 12px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

/* POINT TUKI V5.1 — identidad y geocodificación manual */
.address-results{display:grid;gap:7px;margin-top:8px}.address-result{display:flex;align-items:flex-start;gap:10px;text-align:left;border:1px solid var(--line);background:#f9fcfd;color:var(--ink);border-radius:11px;padding:11px 12px;min-height:44px;width:100%;font-size:12px;line-height:1.4}.address-result:hover,.address-result:focus-visible{border-color:var(--teal-dark);background:#eafbf7}.address-result .ico{width:18px;height:18px;color:var(--teal-dark)}.address-result span{flex:1}.map-location-notice{margin-bottom:14px}.brand-reference{display:block;width:min(240px,100%);height:auto;margin:4px auto 12px;object-fit:contain}.rail-bottom p{font-size:14px}

/* Mapas offline de zona pequeña */
.offline-map-status{font-size:12px;color:var(--muted);padding:10px 15px;border-top:1px solid var(--line);background:#f5fafb}.offline-package{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}.offline-package strong{display:block;font-size:13px}.offline-package button{flex-shrink:0}.map-frame .leaflet-container{background:#eaf0f3}.map-tools{display:flex;gap:8px;flex-wrap:wrap}@media(max-width:550px){.offline-package{align-items:flex-start;flex-direction:column}}

/* POINT TUKI V5.1.1: logo oficial visible y estados claros del mapa */
[hidden]{display:none!important}
.rail-brand{display:flex;justify-content:center;align-items:center;margin:0 2px 26px;padding:11px 12px;background:#fff;border-radius:17px;min-height:82px;box-shadow:0 5px 20px rgba(0,0,0,.09)}
.rail-brand .official-brand-logo{display:block;width:100%;max-width:180px;height:auto;max-height:78px;object-fit:contain}
.mobile-brand .official-brand-logo{display:block;width:136px;max-height:52px;height:auto;object-fit:contain}
.offline-empty-overlay{position:absolute;inset:0;z-index:420;display:flex;align-items:center;justify-content:center;pointer-events:none;padding:22px;background:rgba(232,242,246,.84)}
.offline-empty-panel{pointer-events:auto;max-width:345px;padding:25px 23px;background:#fff;border:1px solid var(--line);border-radius:18px;text-align:center;box-shadow:var(--shadow)}
.offline-empty-panel strong{display:block;font:900 17px var(--font-heading);color:var(--navy);margin-bottom:8px}
.offline-empty-panel p{font-size:13px;color:var(--muted);line-height:1.5}
.offline-map-status{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;min-height:43px}
.offline-map-status .btn{font-size:12px}
@media(max-width:850px){.rail-brand{margin:0 0 20px}.mobile-brand{display:flex;align-items:center}}

/* CRITICAL: .map-host.active had height:100% against a parent with only min-height,
   resulting in a ZERO-HEIGHT Leaflet container on desktop. Keep an explicit frame height. */
.map-frame > .map-host.active{position:relative;display:block;left:auto;top:auto;width:100%;height:100%;min-height:100%}
.map-frame > .map-host.active > .map-inner{display:block;width:100%;height:100%}
@media(max-width:720px){.map-frame{height:390px;min-height:390px}}

/* Ruta por calles: planificador en el mapa y registro rápido de entregas. */
.route-planner{margin-bottom:18px;border-color:#b8e9e4}
.route-planner .card-body{padding-top:2px}
.route-planner .form-grid{align-items:end}
.route-dependent[hidden],.route-active-card[hidden]{display:none!important}
.route-search-row{display:flex;align-items:center;gap:8px}
.route-search-row .field{flex:1;min-width:0}
.route-geocode-results{display:flex;flex-direction:column;gap:5px;margin-top:7px}
.route-availability{min-height:43px;display:flex;align-items:center;padding:10px 13px;background:#f1f8f9;border-radius:10px;color:#356d74;font-weight:800;font-size:12px}
.route-plan-actions{display:flex;flex-wrap:wrap;gap:10px;margin:8px 0 12px}
.route-planner .small{line-height:1.6}
.map-side-stack{min-width:0}
.route-active-card{border-color:#a9e9df}
.route-summary{display:flex;flex-direction:column;gap:6px;margin-bottom:13px}
.route-summary strong{font-size:14px;color:var(--navy)}
.route-summary span{font-size:12px;color:var(--muted)}
.route-delivery{border-bottom:1px solid #e7eef2;padding:13px 0}
.route-delivery-heading{display:flex;align-items:center;gap:10px}
.route-delivery-heading .item-main{flex:1;min-width:0}
.route-delivery-heading b{display:block;font-size:12px;line-height:1.4}
.route-delivery-heading p{margin:3px 0;color:var(--muted);font-size:11px}
.route-notifications{padding:9px 0 0 37px;display:flex;flex-direction:column;gap:7px}
.route-notification{display:flex;gap:8px;align-items:center;justify-content:space-between;font-size:11px;color:var(--muted)}
.route-notification>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.route-notification .select{min-height:34px;padding:6px 7px;width:auto;max-width:155px;font-size:11px}
.route-active-card .route-flow{max-height:670px;overflow:auto}
@media(max-width:720px){.route-search-row{flex-wrap:wrap}.route-search-row .btn{width:100%}.route-plan-actions .btn{flex:1 1 160px}.route-notifications{padding-left:12px}}

.route-note-label{display:block;margin:10px 0 0 37px;color:#567387;font-size:11px;font-weight:800}
.route-note-input{display:block;margin-top:5px;min-height:58px;width:100%;padding:8px 10px;font-size:12px;font-weight:400;resize:vertical}
@media(max-width:720px){.route-note-label{margin-left:12px}}

/* Jornada: gastos por turno y acceso rápido desde Mapa. */
.jornada-card{margin:18px 0}
.jornada-head{display:flex;justify-content:space-between;align-items:center;gap:10px}
.jornada-head strong{display:block;margin-top:4px}
.jornada-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:15px}
.jornada-metrics .soft-card{min-width:0}
.jornada-metrics .kpi-large{overflow-wrap:anywhere;font-size:clamp(16px,2vw,25px)}
.jornada-actions{display:flex;gap:9px;flex-wrap:wrap;margin-bottom:16px}
.jornada-expenses{padding:15px;border:1px solid #dfe9ed;border-radius:12px;background:#fbfdfd}
.jornada-expenses-head{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;margin-bottom:6px}
.jornada-expenses-head h3{margin:0}
.jornada-expense-amount{display:flex;align-items:center;gap:6px;white-space:nowrap}
.jornada-expenses .stat-line{gap:12px}
.jornada-expenses .stat-line>span{min-width:0;overflow-wrap:anywhere}
.jornada-history{display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid #e9eef2;padding:11px 0}
.jornada-history>div{display:flex;flex-direction:column;gap:3px;min-width:0}
.jornada-history .small{line-height:1.5}
.expense-toolbar .form-field{display:flex;flex-direction:column;gap:5px}
.expense-toolbar #expenseSessionFilter{min-width:min(360px,85vw)}
.expense-row-actions{display:flex;align-items:center;gap:7px}
@media(max-width:720px){
 .jornada-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}
 .jornada-metrics .soft-card:last-child{grid-column:span 2}
 .jornada-actions .btn{flex:1 1 160px}
 .jornada-history{align-items:flex-start;flex-wrap:wrap}
 .jornada-expenses{padding:10px}
}

/* V5.3 — el reparto se maneja directamente dentro del mapa. */
.route-start-btn{font-weight:900;box-shadow:0 4px 14px rgba(40,210,178,.2)}
.route-driving-mode #main>.page-head,.route-driving-mode #main>.metrics,.route-driving-mode #main>.toolbar,.route-driving-mode #main>.map-location-notice{display:none!important}
.route-driving-mode .map-columns{display:block}
.route-driving-mode .map-side-stack{display:none}
.route-driving-mode .map-card{max-width:100%;overflow:hidden}
.route-driving-mode .map-toolbar{background:#effbf9;flex-wrap:wrap}
.route-driving-mode .map-frame,.route-driving-mode .map-frame>.map-host.active{height:min(82dvh,850px);min-height:540px}
.route-driving-mode .map-foot{padding:8px 12px}
.route-map-drawer{position:absolute;bottom:10px;left:10px;right:10px;z-index:1100;max-height:48%;overflow-y:auto;overscroll-behavior:contain;background:rgba(255,255,255,.97);border:1px solid #d6e9e9;border-radius:16px;padding:13px 15px;box-shadow:0 10px 35px rgba(13,45,65,.24);color:#14283f}
.route-map-topline,.route-map-heading,.route-map-actions{display:flex;justify-content:space-between;align-items:center;gap:8px}
.route-map-topline{margin-bottom:8px;flex-wrap:wrap}
.route-map-heading{padding:8px 0;border-bottom:1px solid #e4ecef}
.route-map-heading>div{display:flex;flex-direction:column;gap:4px;min-width:0}
.route-map-heading strong{font-size:14px;line-height:1.4;overflow-wrap:anywhere}
.route-map-notifications{display:flex;flex-direction:column;gap:8px;margin:10px 0}
.route-map-notification{display:flex;flex-direction:column;gap:5px;padding-bottom:7px;border-bottom:1px solid #eef2f5}
.route-map-notification-label{font-size:11px;font-weight:800;color:#456274}
.route-map-status-buttons{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}
.route-map-status{border:1px solid #d4e1e6;border-radius:8px;padding:9px 3px;background:#f8fbfc;font-size:10px;line-height:1.25;font-weight:800;cursor:pointer;color:#244258}
.route-map-status.selected{border-width:2px;background:#e8f7fb}
.route-map-status.entregado.selected{background:#ddf7eb;border-color:#0f9963;color:#086b48}
.route-map-status.pendiente.selected{background:#e4f2ff;border-color:#1780d3;color:#145a99}
.route-map-status.incidencia.selected{background:#fff4d9;border-color:#d99713;color:#8a5a00}
.route-map-status.no_encontrado.selected{background:#ffe7e7;border-color:#ce3f45;color:#9c242a}
.route-map-status:focus-visible{outline:3px solid #28d2b2;outline-offset:2px}
.route-map-note-label{font-size:11px;font-weight:800;display:block;margin:8px 0 4px}
.route-map-note{width:100%;min-height:54px;max-height:110px;padding:8px 10px;font-size:12px}
.route-map-actions{margin-top:10px}
.route-map-actions .btn{flex:1;min-width:0}
@media(max-width:720px){
 .route-driving-mode .map-toolbar{padding:10px 12px}
 .route-driving-mode .map-toolbar h2{font-size:15px}
 .route-driving-mode .map-tools{gap:5px;flex-wrap:wrap}
 .route-driving-mode .map-tools .btn{font-size:10px;padding:8px}
 .route-driving-mode .map-frame,.route-driving-mode .map-frame>.map-host.active{height:78dvh;min-height:500px}
 .route-map-drawer{left:7px;right:7px;bottom:8px;max-height:54%;padding:10px}
 .route-map-status{font-size:9px;padding:9px 1px}
 .route-driving-mode .leaflet-bottom.leaflet-right{bottom:53%}
}

/* Parada activa destacada sin cambiar el color que indica su estado. */
.route-driving-mode .pt-marker.route-current{outline:4px solid #28d2b2;outline-offset:3px;box-shadow:0 0 0 8px rgba(20,40,63,.23);z-index:3}

/* POINT TUKI V5.4 — visual de app, no dashboard administrativo.
   La navegación es un dock y el mapa tiene prioridad en el recorrido. */
:root{--bg:#f0f6f7;--line:#e2edef;--shadow:0 12px 40px rgba(20,40,63,.055);--round:24px}
body{background:radial-gradient(ellipse at 86% 4%,#e5f8f4 0,transparent 42%),linear-gradient(145deg,#f5f9fa,#edf4f6);color:#173247}
.rail{width:116px;flex-basis:116px;background:rgba(255,255,255,.96);color:#173247;border-right:1px solid #e2ecef;padding:20px 11px 17px;box-shadow:6px 0 36px rgba(18,52,68,.025)}
.rail-brand{margin:0 0 29px;padding:10px 7px;min-height:80px;background:#f0faf9;border:1px solid #e4f1ef;box-shadow:none;border-radius:22px}
.rail-brand .official-brand-logo{max-width:90px;max-height:66px}
.rail-nav{gap:9px}
.rail .nav-link{flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:12px 5px;border-radius:19px;color:#6a8090;text-align:center;font-size:11px;min-height:74px;transition:background .2s,transform .2s}
.rail .nav-link .ico{width:24px;height:24px}
.rail .nav-link:hover{background:#eaf7f5;color:#0b8278;transform:translateY(-1px)}
.rail .nav-link.active{background:var(--navy);color:#a5fff0;box-shadow:0 8px 20px rgba(20,40,63,.16)}
.rail-bottom{padding:16px 0 0;text-align:center;border-top:1px solid #e3edef}
.rail-bottom .local-label{justify-content:center;line-height:1.4;font-size:10px;color:#597788}
.rail-bottom p{display:none}
.topbar{min-height:72px;background:rgba(255,255,255,.68);backdrop-filter:blur(12px);border-bottom:1px solid rgba(221,235,237,.75);padding:12px clamp(20px,3vw,45px)}
.crumb{font-size:12px;color:#627c89}
.main-content{max-width:1440px;padding:28px clamp(18px,3vw,44px) 65px}
.page-head{margin-bottom:22px;align-items:center}
.page-head h1{font-size:clamp(29px,3vw,39px);letter-spacing:-1.25px}
.page-head .eyebrow{font-size:10px;letter-spacing:2.1px}
.page-head p{font-size:13px;line-height:1.65}
.btn{border-radius:14px;min-height:43px}
.btn.primary{background:linear-gradient(135deg,#24d6b6,#16bfa9);box-shadow:0 7px 18px rgba(24,192,164,.17)}
.btn.primary:hover{background:linear-gradient(135deg,#34dfc1,#22c9b5)}
.btn.secondary{border-color:#dbe9ed;box-shadow:0 2px 9px rgba(20,40,63,.025)}
.card{border-color:#e5eff1;border-radius:24px;box-shadow:0 10px 32px rgba(17,54,74,.05)}
.card-head{padding:22px 24px 14px}
.card-body{padding:0 24px 24px}
.card-head h2{font-size:17px;letter-spacing:-.35px}
.section-grid{gap:18px}
.section-grid>.stack{gap:18px}
.metrics{gap:11px}
.metric{border:1px solid #e7eff1;border-radius:20px;padding:13px 17px;min-height:86px;box-shadow:0 7px 22px rgba(18,52,68,.04)}
.metric .number{font-size:24px}
.metric-icon{border-radius:15px}
.toolbar{gap:12px}
.map-columns{grid-template-columns:minmax(0,1fr);gap:17px}
.map-card{position:relative;border-radius:27px;box-shadow:0 18px 50px rgba(22,64,83,.11)}
.map-toolbar{padding:14px 19px}
.map-toolbar h2{font-size:16px}
.map-frame,.map-frame>.map-host.active{height:min(68dvh,730px);min-height:480px}
.map-side-stack{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px;align-items:start}
.map-side-stack>.card{min-width:0}
.map-foot{padding:12px 20px}
.route-planner{box-shadow:0 12px 35px rgba(20,40,63,.07)}
.route-driving-mode{background:#e8f0f2}
.route-driving-mode .main-content{max-width:none;padding:12px clamp(12px,2vw,32px) 26px}
.route-driving-mode .map-card{border:0;background:transparent;box-shadow:0 18px 55px rgba(15,44,59,.16);border-radius:27px}
.route-driving-mode .map-toolbar{position:absolute;top:14px;left:14px;right:14px;z-index:1150;display:flex;flex-wrap:wrap;gap:9px;padding:11px 14px;border-radius:19px;background:rgba(255,255,255,.94);border:1px solid rgba(255,255,255,.85);box-shadow:0 9px 30px rgba(20,40,63,.12);backdrop-filter:blur(14px)}
.route-driving-mode .map-toolbar h2{font-size:15px;letter-spacing:-.25px}
.route-driving-mode .map-frame,.route-driving-mode .map-frame>.map-host.active{height:calc(100dvh - 128px);min-height:560px;max-height:1100px}
.route-driving-mode .map-foot{display:none}
.route-driving-mode .offline-map-status{padding:7px 16px;background:transparent}
.route-map-drawer{left:50%;right:auto;bottom:16px;transform:translateX(-50%);width:min(640px,calc(100% - 26px));max-height:73%;overflow:auto;border:1px solid rgba(255,255,255,.96);border-radius:25px;background:rgba(255,255,255,.97);padding:12px 18px 15px;box-shadow:0 15px 50px rgba(15,40,60,.26);backdrop-filter:blur(16px);scrollbar-width:thin}
.route-map-drawer:not(.is-expanded){max-height:none;overflow:visible}
.route-map-drawer.is-expanded{max-height:73%}
.route-sheet-handle{width:37px;height:4px;border-radius:99px;background:#d4e4e6;margin:0 auto 10px}
.route-map-topline{margin:0 0 6px}
.route-step-pill{background:#e1f9f2;color:#087c70;border-radius:999px;padding:5px 10px;font-size:10px;letter-spacing:.6px;font-weight:900}
.route-step-pill span{opacity:.65}
.route-progress-summary{font-size:11px;font-weight:750;color:#6b8291}
.route-map-heading{padding:5px 0 8px;border:0}
.route-map-heading strong{font-size:clamp(14px,1.7vw,18px);font-weight:900;color:#173247}
.route-map-subtitle{font-size:11px;color:#728899;font-weight:650}
.route-sheet-toggle{display:inline-flex;align-items:center;gap:5px;background:#eff7f7;border:1px solid #dce9ea;color:#226b70;border-radius:12px;padding:8px 11px;font-weight:800;font-size:11px;min-height:36px;flex:none}
.route-sheet-toggle:hover{background:#e1f6f2}
.route-map-compact{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:9px 0 4px;border-top:1px solid #e9eff1}
.route-map-compact>span{font-size:11px;color:#718795}
.route-register-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:38px;border:0;border-radius:11px;background:#e1faf2;color:#087b70;font-size:12px;font-weight:900;padding:8px 13px}
.route-map-actions{margin-top:9px;gap:8px}
.route-map-actions .btn{min-height:42px;border-radius:13px}
.route-map-actions .btn.primary{background:var(--navy);color:white;box-shadow:none}
.route-map-details{border-top:1px solid #e8eff1;margin-top:5px;padding-top:5px}
.route-map-notifications{gap:10px;margin:7px 0 11px}
.route-map-notification{padding:10px 12px 12px;border:1px solid #e6edef;border-radius:15px;background:#fafdfd;gap:9px}
.route-map-notification-label{display:flex;align-items:center;gap:7px;font-size:12px;color:#2e5367}
.route-notif-bullet{height:8px;width:8px;border-radius:50%;background:#2f74da}
.route-notif-current{margin-left:auto;font-size:10px;color:#678191;font-weight:750}
.route-map-status-buttons{gap:6px}
.route-map-status{min-height:41px;border-radius:10px;padding:8px 4px;font-size:11px;font-weight:850;background:white}
.route-map-status.selected{border-width:2px}
.route-map-evidence{padding:12px;border:1px solid #e4edef;border-radius:17px;background:#f8fbfc}
.route-map-evidence-title{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:9px}
.route-map-evidence-title strong{font-size:12px}
.route-map-evidence-title span{font-size:10px;color:#8296a3}
.route-map-evidence-actions{display:flex;flex-wrap:wrap;gap:7px}
.route-evidence-btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid #dce8eb;border-radius:11px;background:white;color:#2c5668;padding:9px 12px;min-height:39px;font-size:11px;font-weight:850;cursor:pointer}
.route-evidence-btn:hover{background:#f0fbf8}
.route-evidence-primary{background:#dcfaf2;border-color:#b4e9dc;color:#077e6d}
.route-photo-input{position:absolute;width:1px;height:1px;opacity:0;overflow:hidden;pointer-events:none}
.route-photo-empty{font-size:11px;color:#7d94a1}
.route-map-photos{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.route-photo-thumb{position:relative;width:74px;height:74px;border-radius:13px;overflow:hidden;background:#e9f1f2;border:1px solid #dce8e9}
.route-photo-thumb img{display:block;width:100%;height:100%;object-fit:cover}
.route-photo-thumb button{position:absolute;top:3px;right:3px;width:24px;height:24px;display:grid;place-items:center;border:0;border-radius:50%;background:rgba(20,40,63,.88);color:white}
.route-note-editor{display:grid;gap:7px;margin-top:12px}
.route-note-editor label{font-size:11px;font-weight:800;color:#34576a}
.route-map-note{font-size:13px;line-height:1.5;min-height:82px;max-height:170px;border-radius:11px}
.route-note-editor>.btn{justify-self:start}
.route-saved-note{display:flex;align-items:flex-start;gap:7px;padding:10px 11px;border-radius:11px;background:#ecf8f5;color:#305c60;font-size:12px;margin:10px 0 0;overflow-wrap:anywhere;white-space:pre-wrap}
.route-saved-note .ico{flex:none;color:#138b77}
.route-driving-mode .leaflet-bottom.leaflet-right{bottom:18px}
@media(max-width:1190px) and (min-width:966px){.rail{width:100px;flex-basis:100px}.main-content{padding:24px 20px 60px}}
@media(max-width:965px){.main-content{padding:20px 18px 100px}.map-side-stack{grid-template-columns:1fr}.route-driving-mode .main-content{padding:8px 8px 92px}.route-driving-mode .map-frame,.route-driving-mode .map-frame>.map-host.active{height:calc(100dvh - 168px);min-height:490px}.route-driving-mode .map-toolbar{top:8px;left:8px;right:8px}.route-driving-mode .map-card{border-radius:20px}.route-driving-mode .leaflet-bottom.leaflet-right{bottom:17px}}
@media(max-width:720px){
 .topbar{background:rgba(255,255,255,.93);padding:10px 14px;min-height:63px}
 .bottom-nav{border:1px solid #e0ecee;border-bottom:0;border-radius:19px 19px 0 0;background:rgba(255,255,255,.97);box-shadow:0 -10px 30px rgba(20,40,63,.08);padding:9px 6px max(8px,env(safe-area-inset-bottom))}
 .bottom-nav .nav-link.active{background:#e1f9f3;color:#087f72}
 .page-head h1{font-size:29px}
 .main-content{padding:18px 12px 100px}
 .card{border-radius:20px}
 .card-head{padding:17px 16px 12px}
 .card-body{padding:0 16px 17px}
 .metrics{gap:8px}
 .metric{padding:11px 12px;min-height:80px;border-radius:16px}
 .metric .number{font-size:23px}
 .metric-icon{width:36px;height:36px;border-radius:12px}
 .map-frame,.map-frame>.map-host.active{height:60dvh;min-height:420px}
 .map-card{border-radius:20px}
 .map-toolbar{flex-wrap:wrap}
 .route-driving-mode .main-content{padding:6px 6px 95px}
 .route-driving-mode .map-toolbar{top:7px;left:7px;right:7px;padding:9px 10px;border-radius:15px}
 .route-driving-mode .map-toolbar h2{font-size:13px}
 .route-driving-mode .map-tools{gap:5px}
 .route-driving-mode .map-tools .btn{min-height:31px;font-size:10px;padding:5px 8px}
 .route-driving-mode .map-frame,.route-driving-mode .map-frame>.map-host.active{height:calc(100dvh - 160px);min-height:490px}
 .route-map-drawer{width:calc(100% - 12px);bottom:7px;padding:10px 12px 11px;border-radius:19px;max-height:65%}
 .route-map-drawer.is-expanded{max-height:65%;overflow-y:auto}
 .route-map-heading strong{font-size:14px}
 .route-map-compact>span{font-size:10px}
 .route-register-btn{padding:8px 10px;font-size:11px}
 .route-map-status-buttons{grid-template-columns:repeat(2,minmax(0,1fr))}
 .route-map-status{min-height:43px;font-size:11px}
 .route-map-evidence{padding:10px}
 .route-evidence-btn{flex:1 1 125px;padding:9px 8px}
 .route-driving-mode .leaflet-bottom.leaflet-right{bottom:14px}
}
@media(max-width:390px){.route-map-compact{align-items:stretch;flex-wrap:wrap}.route-register-btn{flex:1}.route-map-topline{gap:4px}.route-progress-summary{font-size:10px}.route-map-actions .btn{font-size:11px;padding:8px 6px}}

/* Ajustes como espacio personal: una sola columna legible, sin grilla administrativa. */
.more-app-grid{display:flex;flex-direction:column;max-width:830px;margin:0 auto;gap:14px}
.more-app-grid>.stack{display:contents}
.more-app-grid .card{border-radius:22px;box-shadow:0 7px 25px rgba(20,40,63,.045)}
.more-app-grid .card-head{padding:19px 23px 12px}
.more-app-grid .card-head h2{font-size:16px}
.more-app-grid .card-head>.ico{color:#0eab98}
.more-app-grid .card-body{padding:0 23px 20px}
.more-app-grid .notice{border-radius:13px}
.more-app-grid .toolbar-left{flex-wrap:wrap}
.more-app-grid .toolbar-left .btn{white-space:normal}
@media(max-width:720px){.more-app-grid{gap:11px}.more-app-grid .card-head{padding:17px 16px 10px}.more-app-grid .card-body{padding:0 16px 17px}.more-app-grid .toolbar-left .btn{flex:1 1 140px}}

/* POINT TUKI V5.5 — memoria de direcciones, no un listado de puntos sin contexto. */
.history-intro{display:flex;align-items:flex-start;gap:9px;background:#eaf9f6;color:#275c64;border:1px solid #cdeee7;border-radius:17px;padding:14px 17px;font-size:12px;line-height:1.55;margin:0 0 16px}
.history-intro .ico{flex:none;width:18px;height:18px;color:#0d9d8c}
.history-main-card{overflow:hidden}
.history-list{display:grid;gap:11px}
.history-address{border:1px solid #e2edef;background:#fff;border-radius:18px;overflow:hidden;transition:box-shadow .2s,border-color .2s}
.history-address[open]{border-color:#c6e5df;box-shadow:0 9px 30px rgba(20,40,63,.06)}
.history-address-summary{display:flex;align-items:center;gap:13px;padding:17px 18px;cursor:pointer;list-style:none}
.history-address-summary::-webkit-details-marker{display:none}
.history-address-summary:hover{background:#f7fcfb}
.history-address-pin{display:grid;place-items:center;flex:none;width:42px;height:42px;border-radius:15px;background:#e5f9f4;color:#079a87}
.history-address-pin .ico{width:21px;height:21px}
.history-address-main{display:grid;gap:5px;min-width:0;flex:1}
.history-address-main>strong{font-size:14px;line-height:1.3;color:#173247;overflow-wrap:anywhere}
.history-address-main>span:nth-child(2){font-size:11px;color:#6e8696}
.history-address-tags{display:flex;align-items:center;flex-wrap:wrap;gap:6px}
.history-tag{font-size:10px;border-radius:99px;padding:5px 9px;background:#edf5f6;color:#597b83;font-weight:750}
.history-tag.repeat{background:#fff1d8;color:#94661b}
.history-address-chevron{color:#9ab0b9;transition:transform .2s}
.history-address[open] .history-address-chevron{transform:rotate(90deg)}
.history-visit-list{display:grid;gap:12px;background:#f6fafb;padding:14px;border-top:1px solid #e5eef0}
.history-visit{background:#fff;border:1px solid #e5edef;border-radius:15px;padding:13px 14px}
.history-visit-top{display:flex;align-items:center;justify-content:space-between;gap:9px;flex-wrap:wrap;margin-bottom:11px}
.history-visit-top>div{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.history-visit-date{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:850;color:#567789}
.history-visit-date .ico{width:14px;height:14px}
.history-visit-notifs{display:grid;gap:7px}
.history-notification{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:10px 11px;border-radius:12px;background:#f7fafb;border:1px solid #e8eff0}
.history-notification>div{display:grid;gap:3px}
.history-notification b{font-size:12px;color:#264457}
.history-notification>div span{font-size:10px;color:#7a8f9d}
.history-notif-note{width:100%;margin:1px 0 0;font-size:12px;color:#536d79;white-space:pre-wrap;overflow-wrap:anywhere}
.history-address-note{display:flex;gap:7px;align-items:flex-start;font-size:12px;color:#385e6b;background:#edf7f5;border-radius:11px;padding:10px 12px;margin:10px 0 0;white-space:pre-wrap;overflow-wrap:anywhere}
.history-address-note .ico{flex:none;width:15px;height:15px;color:#119b88}
.history-warning{background:#fff9ed;border:1px solid #f2d99d;color:#684b1b;border-radius:15px;padding:12px 14px;margin:11px 0 15px;font-size:12px;line-height:1.5}
.history-warning-head{display:flex;align-items:center;flex-wrap:wrap;gap:6px}
.history-warning-head .ico{flex:none;width:17px;height:17px;color:#b27a21}
.history-warning-head strong{font-size:12px}
.history-warning-head>span{margin-left:auto;font-size:10px;background:#fcebc9;padding:4px 8px;border-radius:99px;font-weight:800}
.history-warning p{margin:8px 0}
.history-warning .pill{display:inline-block;vertical-align:middle}
.history-warning .history-quote{padding:9px 11px;background:rgba(255,255,255,.65);border-left:3px solid #e3b85d;border-radius:7px;white-space:pre-wrap;overflow-wrap:anywhere}
.history-warning small{display:block;color:#937447;font-size:10px;line-height:1.5;margin-top:8px}
.history-person-match{display:flex;align-items:center;gap:5px;flex-wrap:wrap;margin-top:9px;background:#e7f7ed;border:1px solid #c7e7d2;border-radius:9px;padding:9px;color:#28604a;font-size:11px}
.history-person-match .ico{width:15px;height:15px}
.history-clean{padding:9px 11px;background:#f1f8f8;border:1px solid #e1eff0;border-radius:11px;color:#68828c;font-size:11px;margin:10px 0}
.stop-prior{display:inline-flex;align-items:center;gap:5px;margin-top:5px;color:#a16a1c;font-size:10px;font-weight:850}
.stop-prior .ico{width:13px;height:13px}
.notif-recipient{margin-top:10px}
.notif-recipient label{display:block;font-size:11px;color:#526e7d;font-weight:850;margin-bottom:5px}
.notif-recipient textarea{min-height:65px;font-size:12px}
.route-map-details>.history-warning{margin:8px 0 12px}
.route-map-details>.history-clean{display:none}
.route-map-notification-label{flex-wrap:wrap}
.route-notif-recipient{font-size:11px;color:#385c6a;font-weight:800}
.route-notif-note-label{display:grid;gap:5px;font-size:10px;font-weight:800;color:#607b8a;margin-top:8px}
.route-notif-note-input{min-height:52px;border-radius:10px;font-size:12px;line-height:1.4}
@media(max-width:720px){
 .history-intro{font-size:11px;padding:11px 12px}
 .history-address-summary{gap:10px;padding:13px 11px}
 .history-address-pin{width:35px;height:35px;border-radius:12px}
 .history-address-pin .ico{width:19px;height:19px}
 .history-address-main>strong{font-size:12px}
 .history-address-main>span:nth-child(2){font-size:10px}
 .history-address-chevron .ico{width:15px;height:15px}
 .history-visit-list{padding:9px}
 .history-visit{padding:11px}
 .history-visit-top .btn{font-size:10px}
 .history-warning{padding:10px 11px}
 .route-notif-recipient{flex:1 1 100%;order:3}
}

/* Señal visual discreta: esta dirección tiene registros de días anteriores. */
.pt-marker.has-history:after{content:"↺";position:absolute;right:-5px;top:-8px;display:grid;place-items:center;width:17px;height:17px;background:#fff5d9;border:1.5px solid #d59d36;color:#98651a;border-radius:50%;font:900 12px/1 var(--font-heading);box-shadow:0 2px 7px #132e4330;pointer-events:none}

.route-not-resident{display:inline-flex;align-items:center;gap:5px;min-height:32px;margin-top:8px;padding:6px 10px;border:1px solid #f0dfb8;border-radius:9px;background:#fff8ea;color:#946321;font-size:10px;font-weight:850;cursor:pointer}
.route-not-resident:hover{background:#ffefcf;border-color:#e6c47b}

/* V5.6 — domicilio recibido, corrección y trazabilidad. */
.address-change-summary{margin:9px 0 14px;padding:12px 13px;background:#eaf8f6;border:1px solid #c6e7df;border-radius:13px;color:#315c63}
.address-change-label{display:flex;align-items:center;gap:6px;color:#0a8d7e;font-size:11px;font-weight:850;margin-bottom:10px}
.address-change-label .ico{width:15px;height:15px}
.address-change-pair{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:9px;align-items:center}
.address-change-pair>span:not(.address-change-arrow){display:grid;gap:4px;background:#fff;border-radius:9px;padding:9px 10px;min-width:0}
.address-change-pair small{font-size:10px;color:#70858c}
.address-change-pair b{font-size:12px;overflow-wrap:anywhere}
.address-change-arrow{font-size:18px;color:#159f8d;font-weight:900}
.address-change-event{display:flex;flex-wrap:wrap;gap:3px 12px;margin-top:8px;padding:8px 9px;background:#f7fffd;border-radius:9px;border:1px solid #d9ede9;font-size:10px}
.address-change-event>span:first-child{font-weight:750;color:#2d5961}
.address-change-event>span:nth-child(2){color:#64878d}
.address-change-event em{font-style:normal;flex-basis:100%;color:#56747a;white-space:pre-wrap;overflow-wrap:anywhere}
.address-correction-form{padding:12px 13px;border:1px solid #e1e9e9;border-radius:12px;background:#fafdfd;margin:0 0 11px}
.address-correction-form .form-field{margin-bottom:8px}
.address-verified{display:flex;align-items:flex-start;gap:8px;color:#365e66;font-size:11px;font-weight:650;line-height:1.4;cursor:pointer}
.address-verified input{width:16px;height:16px;accent-color:#0eaa97;flex:none}
.address-source-note{font-size:11px;color:#516f78;margin:7px 0 10px;padding:8px 10px;border-left:3px solid #1bbaa5;background:#eaf9f6;border-radius:5px}
.address-suggestions{display:grid;gap:9px;padding:11px 0;margin-top:8px;border-top:1px solid #e8d4aa}
.address-suggestions>b{display:flex;align-items:center;gap:5px;color:#805d2b;font-size:11px}
.address-suggestions>b .ico{width:15px;height:15px}
.address-suggestion{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px;background:#fff;border:1px solid #f0ddba;border-radius:11px}
.address-suggestion>div{display:grid;gap:4px;min-width:0}
.address-suggestion>div>span{font-size:11px;color:#6e5631;overflow-wrap:anywhere}
.address-suggestion>div strong{color:#195c62;font-size:12px}
.address-suggestion small{font-size:10px;color:#947447;line-height:1.4}
.address-suggestion .btn{flex:none;font-size:10px}
.history-visit>.address-change-summary{margin:0 0 12px}
@media(max-width:720px){
 .address-suggestion{align-items:stretch;flex-direction:column}
 .address-suggestion .btn{align-self:flex-start}
 .address-change-pair{gap:5px}
 .address-change-pair>span:not(.address-change-arrow){padding:8px}
 .address-change-pair b{font-size:11px}
 .address-correction-form{padding:10px}
}

/* POINT TUKI V5.7 — KPIs interactivos y tarjetas plegables */
.metric-link{position:relative;width:100%;color:inherit;text-align:left;font:inherit;cursor:pointer;transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease}
.metric-link:hover{transform:translateY(-2px);border-color:#85d7cb;box-shadow:0 9px 23px #12334d16}
.metric-link:focus-visible,.map-accordion-summary:focus-visible{outline:3px solid #16bca5;outline-offset:3px}
.metric-link.is-selected{border-color:#20bca8;box-shadow:0 0 0 2px #20bca822,var(--shadow)}
.metric-link-arrow{position:absolute;right:10px;top:11px;display:grid;place-items:center;color:#7192a0}
.metric-link-arrow .ico{width:15px;height:15px}
.map-columns:not(.with-route-card){grid-template-columns:minmax(0,1fr)}
.map-quick-panels{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:18px 0;align-items:start}
.map-accordion{min-width:0;overflow:hidden}
.map-accordion-summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:11px;padding:15px 16px;min-height:78px}
.map-accordion-summary::-webkit-details-marker{display:none}
.map-accordion-summary::marker{content:''}
.map-accordion-icon{width:40px;height:40px;display:grid;place-items:center;border-radius:12px;background:#e8f8f5;color:#008f81;flex:none}
.map-accordion-icon.journey{background:#eaf3ff;color:#3e70ad}
.map-accordion-heading{display:grid;gap:4px;flex:1;min-width:0}
.map-accordion-heading strong{font-family:var(--font-heading);font-size:15px;font-weight:850;color:var(--navy)}
.map-accordion-heading small{font-size:11px;line-height:1.35;color:var(--muted)}
.map-accordion-chevron{color:#64818d;transition:transform .15s ease;flex:none}
.map-accordion-chevron .ico{width:17px;height:17px}
.map-accordion[open] .map-accordion-chevron{transform:rotate(90deg)}
.map-accordion[open] .map-accordion-summary{border-bottom:1px solid #e6eff2;background:#fbfdfd}
.map-accordion-badge{font-size:10px}
.map-accordion-content{padding:0 0 12px}
.map-points-actions{display:flex;justify-content:flex-end;padding:12px 15px 2px}
.map-points-filters{padding:0 15px}
.map-points-filters .compact-search{margin:6px 0 10px}
.map-filter-heading{font-size:11px;font-weight:800;color:#517681;padding:10px 15px 6px}
.map-accordion .stop-list{max-height:440px}
.map-accordion>.jornada-card{margin:0;border:0;box-shadow:none;border-radius:0}
.map-accordion>.jornada-card>.card-head{display:none}
.map-accordion>.jornada-card>.card-body{padding:15px}
.map-accordion .jornada-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}
.map-accordion .jornada-metrics .kpi-large{font-size:clamp(16px,1.8vw,22px)}
@media(max-width:760px){
 .map-quick-panels{gap:9px;grid-template-columns:repeat(2,minmax(0,1fr))}
 .map-accordion-summary{padding:11px 9px;gap:7px;min-height:73px}
 .map-accordion-icon{width:30px;height:30px;border-radius:9px}
 .map-accordion-icon .ico{width:17px;height:17px}
 .map-accordion-heading strong{font-size:12px}
 .map-accordion-heading small{font-size:9px}
 .map-accordion-badge{display:none}
 .map-accordion-chevron .ico{width:14px;height:14px}
 .map-quick-panels>.map-accordion[open]{grid-column:1/-1}
 .metric-link{padding-right:19px}
 .metric-link-arrow{top:8px;right:7px}
 .metric-link-arrow .ico{width:12px;height:12px}
}
@media(prefers-reduced-motion:reduce){
 .metric-link,.map-accordion-chevron{transition:none}
}
