:root{--blue:#0880f8;--blue2:#0068d9;--blue-soft:#eaf4ff;--ink:#102a43;--muted:#6b7f93;--bg:#f4f9ff;--card:#fff;--ok:#16a36a;--warn:#c87800;--danger:#d92d20;--line:#dce9f7;--shadow:0 16px 42px rgba(14,84,148,.10)}
*{box-sizing:border-box}html{background:var(--bg)}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;color:var(--ink);background:linear-gradient(180deg,#fff 0,#f4f9ff 34%,#eef6ff 100%);min-height:100vh}button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}.app-shell{min-height:100vh;padding-bottom:94px}.topbar{height:78px;display:flex;align-items:center;justify-content:space-between;padding:8px 18px;max-width:1100px;margin:auto}.brand{border:0;background:transparent;display:flex;align-items:center;gap:10px;cursor:pointer;color:var(--ink);padding:0}.brand img{width:54px;height:54px;object-fit:contain}.brand span{text-align:left}.brand strong{display:block;font-size:21px;line-height:1}.brand small{display:block;color:var(--blue);font-size:12px;margin-top:4px}.top-actions{display:flex;align-items:center;gap:10px}.top-actions a{color:var(--blue2);text-decoration:none;font-size:13px;font-weight:800}.verified-pill{font-size:12px;background:#e9fff5;color:#087c50;border:1px solid #b8efd8;padding:7px 10px;border-radius:999px}.content{max-width:1100px;margin:auto;padding:8px 18px 36px}.hero{background:linear-gradient(135deg,#057bea,#0880f8 55%,#56aaff);border-radius:30px;padding:30px;color:#fff;box-shadow:0 18px 46px rgba(8,128,248,.24);position:relative;overflow:hidden}.hero:before,.hero:after{content:"";position:absolute;border-radius:50%;background:rgba(255,255,255,.12)}.hero:before{width:220px;height:220px;right:-60px;top:-90px}.hero:after{width:120px;height:120px;right:130px;bottom:-90px}.hero h1{font-size:clamp(30px,6vw,54px);line-height:1.02;margin:0 0 12px;max-width:720px}.hero p{margin:0;color:#eaf5ff;max-width:700px;font-size:15px}.hero .row{margin-top:18px}.section-title{display:flex;align-items:end;justify-content:space-between;gap:12px;margin:26px 2px 12px}.section-title h2{margin:0;font-size:21px}.section-title small{color:var(--muted);text-align:right}.grid{display:grid;gap:12px}.category-grid{grid-template-columns:repeat(auto-fit,minmax(145px,1fr))}.category{background:var(--card);border:1px solid var(--line);padding:16px;border-radius:19px;text-align:left;cursor:pointer;box-shadow:0 5px 18px rgba(24,95,160,.04);transition:.16s transform,.16s border}.category:hover{transform:translateY(-2px)}.category.active{border-color:var(--blue);box-shadow:0 0 0 3px rgba(8,128,248,.11)}.category .emoji{font-size:29px;display:block;margin-bottom:11px}.category strong{display:block}.category small{display:block;color:var(--muted);margin-top:4px;font-size:11px}.panel{background:var(--card);border:1px solid var(--line);border-radius:24px;padding:19px;box-shadow:var(--shadow)}.panel.soft{background:#f9fcff;box-shadow:none}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px}.field{display:grid;gap:7px}.field.full{grid-column:1/-1}.field label{font-size:13px;font-weight:800;color:#2e4b66}.field input,.field select,.field textarea,.select{width:100%;border:1px solid #cbddeb;border-radius:13px;padding:12px 13px;background:#fff;outline:none;color:var(--ink)}.field textarea{min-height:105px;resize:vertical}.field input:focus,.field select:focus,.field textarea:focus,.select:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(8,128,248,.11)}.hint{font-size:11px;color:var(--muted)}.btn{border:0;border-radius:14px;padding:12px 16px;font-weight:850;cursor:pointer;background:#12344d;color:#fff;display:inline-flex;align-items:center;justify-content:center;gap:7px;text-decoration:none}.btn.primary,.btn.accent{background:linear-gradient(135deg,var(--blue),var(--blue2));color:#fff;box-shadow:0 9px 20px rgba(8,128,248,.19)}.btn.light{background:var(--blue-soft);color:var(--blue2)}.btn.white{background:#fff;color:var(--blue2)}.btn.danger{background:#fff0ef;color:#b42318}.btn.success{background:#e8fff5;color:#087c50}.btn:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}.btn.small{padding:8px 10px;border-radius:11px;font-size:12px}.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.space{justify-content:space-between}.account-strip{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#fff;border:1px solid var(--line);border-radius:18px;padding:11px 14px;margin-bottom:14px}.account-strip strong{display:block}.account-strip small{color:var(--muted)}.map-card{position:relative;border:1px solid var(--line);border-radius:24px;overflow:hidden;background:#dfefff;box-shadow:var(--shadow)}.map{height:330px;width:100%;z-index:1}.map.compact{height:270px}.map-overlay{position:absolute;z-index:450;left:12px;right:12px;bottom:12px;background:rgba(255,255,255,.94);backdrop-filter:blur(10px);padding:10px 12px;border-radius:15px;box-shadow:0 10px 30px rgba(16,42,67,.13);font-size:12px}.pro-card,.job-card,.ledger-row,.verification-card{border:1px solid var(--line);border-radius:18px;padding:14px;background:#fff}.pro-card{display:flex;justify-content:space-between;gap:14px;align-items:center}.avatar{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:var(--blue-soft);color:var(--blue2);font-size:19px;font-weight:900;flex:0 0 auto;overflow:hidden;border:2px solid #fff;box-shadow:0 0 0 1px var(--line)}.avatar img{width:100%;height:100%;object-fit:cover}.avatar.big{width:72px;height:72px}.pro-main{display:flex;gap:12px;align-items:center}.pro-main strong{display:block}.meta{font-size:12px;color:var(--muted);margin-top:3px}.rating{font-size:13px;font-weight:850}.status{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:6px 10px;font-size:12px;font-weight:850;background:#edf2f7}.status.open{background:#fff6dd;color:#9c6300}.status.accepted,.status.en_route,.status.arrived{background:#eaf4ff;color:#0068d9}.status.completed,.status.approved{background:#e8fff5;color:#087c50}.status.pending{background:#fff6dd;color:#9c6300}.status.rejected,.status.cancelled{background:#fff0ef;color:#b42318}.credit{background:#102f49;color:#fff;padding:10px 13px;border-radius:14px;font-weight:850}.credit b{color:#86c4ff}.notice{border-radius:15px;padding:12px 14px;background:#eef7ff;border:1px solid #b9ddff;color:#145d96;font-size:13px}.notice.warn{background:#fff8e7;border-color:#f6d589;color:#835400}.notice.danger{background:#fff0ef;border-color:#ffc9c4;color:#9f251d}.empty{padding:28px;text-align:center;color:var(--muted);border:1px dashed #bdd2e5;border-radius:18px;background:#fbfdff}.metrics{grid-template-columns:repeat(5,1fr)}.metric{background:#fff;border:1px solid var(--line);border-radius:19px;padding:16px}.metric b{font-size:28px;display:block;color:var(--blue2)}.metric span{font-size:12px;color:var(--muted)}.role-nav{position:fixed;z-index:700;bottom:max(14px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);display:flex;padding:6px;background:rgba(255,255,255,.94);backdrop-filter:blur(18px);border:1px solid var(--line);border-radius:21px;box-shadow:0 16px 42px rgba(16,64,104,.20)}.role-nav button{border:0;background:transparent;padding:11px 17px;border-radius:15px;color:#6b7f93;font-weight:800;cursor:pointer}.role-nav button.active{background:linear-gradient(135deg,var(--blue),var(--blue2));color:#fff}.role-nav button span{margin-right:4px}.toast{position:fixed;z-index:1200;top:84px;left:50%;transform:translateX(-50%);background:#102f49;color:#fff;padding:12px 16px;border-radius:13px;box-shadow:var(--shadow);max-width:min(92vw,560px);text-align:center}.tiny{font-size:11px;color:var(--muted)}.divider{height:1px;background:var(--line);margin:15px 0}.admin-table{display:grid;gap:8px}.admin-row{display:grid;grid-template-columns:1fr auto auto;gap:10px;align-items:center;padding:11px 0;border-bottom:1px solid var(--line)}.photo-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(105px,1fr));gap:9px;margin-top:10px}.photo-thumb{aspect-ratio:4/3;border-radius:13px;overflow:hidden;background:#edf5fc;border:1px solid var(--line)}.photo-thumb img{width:100%;height:100%;object-fit:cover}.file-preview{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}.file-chip{background:#eef7ff;border:1px solid #c9e4ff;color:#1268aa;padding:7px 9px;border-radius:10px;font-size:11px;text-decoration:none}.chat{border:1px solid var(--line);border-radius:18px;background:#f8fbfe;overflow:hidden}.chat-messages{height:260px;overflow:auto;padding:12px;display:flex;flex-direction:column;gap:8px}.bubble{max-width:82%;padding:9px 11px;border-radius:14px;background:#fff;border:1px solid var(--line);font-size:13px}.bubble.me{align-self:flex-end;background:#e6f3ff;border-color:#b9dcff}.bubble small{display:block;color:var(--muted);font-size:10px;margin-top:4px}.chat-form{display:flex;gap:8px;padding:10px;background:#fff;border-top:1px solid var(--line)}.chat-form input{flex:1;min-width:0;border:1px solid #cbddeb;border-radius:12px;padding:10px 12px}.stars{display:flex;gap:5px}.star-btn{border:0;background:transparent;font-size:29px;cursor:pointer;filter:grayscale(1);opacity:.45;padding:2px}.star-btn.active{filter:none;opacity:1}.modal-backdrop{position:fixed;inset:0;z-index:1000;background:rgba(10,35,55,.55);backdrop-filter:blur(4px);display:grid;place-items:center;padding:18px}.modal-backdrop[hidden]{display:none}.modal-card{position:relative;width:min(760px,100%);max-height:91vh;overflow:auto;background:#fff;border-radius:26px;padding:24px;box-shadow:0 28px 80px rgba(0,40,75,.28)}.modal-close{position:sticky;float:right;top:0;z-index:2;border:0;background:#edf5fc;color:#33556f;width:36px;height:36px;border-radius:50%;font-size:25px;cursor:pointer}.modal-card h2{margin:0 45px 6px 0}.modal-card .subtitle{color:var(--muted);margin:0 0 18px}.step-title{font-size:14px;font-weight:900;color:var(--blue2);margin:18px 0 8px}.verification-card{display:grid;grid-template-columns:auto 1fr;gap:14px}.verification-info{min-width:0}.doc-img{width:150px;max-width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:13px;border:1px solid var(--line);background:#eef6ff}.route-summary{display:flex;gap:18px;flex-wrap:wrap}.route-summary b{color:var(--blue2)}.safety-grid{grid-template-columns:repeat(3,1fr)}.safety{padding:15px;border:1px solid var(--line);border-radius:18px;background:#fff}.safety b{display:block;margin-bottom:4px}.leaflet-control-attribution{font-size:9px!important}.leaflet-popup-content{margin:10px 12px!important}.leaflet-container{font-family:inherit!important}
@media(max-width:760px){.metrics{grid-template-columns:repeat(2,1fr)}.safety-grid{grid-template-columns:1fr}.verification-card{grid-template-columns:1fr}.doc-img{width:100%;max-height:260px}.top-actions .verified-pill{display:none}.map{height:285px}.hero{padding:24px}.admin-row{grid-template-columns:1fr auto}.admin-row .credit-actions{grid-column:1/-1}.form-grid{grid-template-columns:1fr}.field.full{grid-column:auto}}
@media(max-width:520px){.content{padding-left:12px;padding-right:12px}.topbar{padding-left:12px;padding-right:12px;height:68px}.brand img{width:46px;height:46px}.brand strong{font-size:18px}.top-actions a{font-size:12px}.hero{border-radius:23px}.hero h1{font-size:34px}.category-grid{grid-template-columns:1fr 1fr}.role-nav{width:calc(100% - 18px);justify-content:space-between}.role-nav button{flex:1;padding:10px 4px;font-size:12px}.role-nav button span{display:block;margin:0 0 2px}.account-strip{align-items:flex-start}.map{height:260px}.modal-card{padding:18px;border-radius:22px}.chat-messages{height:230px}}

/* ===== Juiciosos v0.3 · experiencia mapa-first ===== */
:root{--blue:#0b7ff8;--blue2:#0069df;--blue3:#004fbd;--navy:#082a46;--ice:#f4f9ff;--success:#0ca46f;--soft-shadow:0 18px 50px rgba(6,73,133,.13);--deep-shadow:0 24px 70px rgba(4,54,102,.18)}
body{background:#f5f9fd}.content{max-width:1180px;padding-top:4px}.topbar{max-width:1180px}.topbar:after{content:"";position:absolute;left:0;right:0;top:77px;height:1px;background:linear-gradient(90deg,transparent,#dce9f7,transparent)}.topbar{position:relative}.brand img{filter:drop-shadow(0 4px 7px rgba(8,128,248,.12))}.verified-pill{background:#ecfff8;border-color:#c7f2df;color:#087a55}
.eyebrow{font-size:10px;letter-spacing:.14em;font-weight:950;color:var(--blue2)}.eyebrow.light{color:#d9eeff}.meta-inline{font-size:11px;color:var(--muted)}
.customer-map-stage{position:relative;min-height:720px;border-radius:32px;overflow:hidden;border:1px solid #d6e5f4;background:#dcecff;box-shadow:var(--deep-shadow)}
.map-hero{height:720px!important;min-height:720px}.customer-map-stage .leaflet-control-attribution{background:rgba(255,255,255,.7)!important}.map-top-ui{position:absolute;z-index:450;top:16px;left:16px;right:16px;display:grid;gap:12px;pointer-events:none}.map-top-ui>*{pointer-events:auto}
.location-pill{width:min(520px,100%);display:flex;align-items:center;gap:11px;background:rgba(255,255,255,.96);backdrop-filter:blur(15px);border:1px solid rgba(210,228,244,.95);border-radius:20px;padding:10px 11px 10px 14px;box-shadow:0 14px 38px rgba(7,50,91,.18)}.location-pill>div{min-width:0;flex:1}.location-pill small{display:block;color:var(--muted);font-size:10px;font-weight:750;text-transform:uppercase;letter-spacing:.08em}.location-pill strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:14px;margin-top:2px}.pin-dot{color:var(--blue);font-size:18px;text-shadow:0 0 0 5px rgba(11,127,248,.12)}.round-action{width:42px;height:42px;border:0;border-radius:14px;background:var(--blue-soft);color:var(--blue2);font-size:22px;font-weight:900;cursor:pointer}
.category-chips{display:flex;gap:8px;overflow:auto;padding:1px 1px 6px;scrollbar-width:none}.category-chips::-webkit-scrollbar{display:none}.category-chip{flex:0 0 auto;border:1px solid rgba(208,226,243,.95);background:rgba(255,255,255,.94);backdrop-filter:blur(14px);color:#264760;padding:9px 12px;border-radius:999px;font-size:12px;font-weight:850;box-shadow:0 8px 22px rgba(7,50,91,.10);cursor:pointer;display:flex;align-items:center;gap:6px}.category-chip span{font-size:16px}.category-chip.active{background:linear-gradient(135deg,var(--blue),var(--blue2));border-color:transparent;color:#fff;box-shadow:0 11px 28px rgba(8,128,248,.28)}
.map-live-pill{position:absolute;z-index:450;left:18px;top:142px;background:rgba(8,42,70,.88);backdrop-filter:blur(12px);color:#fff;border-radius:999px;padding:8px 12px;font-size:11px;font-weight:800;box-shadow:0 12px 25px rgba(0,35,70,.16)}.live-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#38e49d;margin-right:6px;box-shadow:0 0 0 5px rgba(56,228,157,.16);animation:livePulse 1.7s infinite}.live-dot.idle{background:#a9b6c2;box-shadow:none;animation:none}@keyframes livePulse{0%,100%{box-shadow:0 0 0 4px rgba(56,228,157,.13)}50%{box-shadow:0 0 0 9px rgba(56,228,157,0)}}
.request-sheet{position:absolute;z-index:460;left:18px;bottom:18px;width:min(480px,calc(100% - 36px));background:rgba(255,255,255,.97);backdrop-filter:blur(22px);border:1px solid rgba(213,229,244,.96);border-radius:27px;padding:17px 18px 16px;box-shadow:0 28px 70px rgba(7,49,91,.24)}.sheet-handle{display:none;width:46px;height:5px;border-radius:99px;background:#cedbe7;margin:0 auto 12px}.request-sheet-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}.request-sheet-head h1{font-size:25px;line-height:1.05;margin:4px 0 0}.selected-service{flex:0 0 auto;background:#eef6ff;color:var(--blue2);border:1px solid #d2e8ff;padding:8px 10px;border-radius:13px;font-size:11px;font-weight:850;max-width:150px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.request-form{display:grid;gap:11px}.problem-field textarea{min-height:82px}.request-mini-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:9px}.request-sheet .field label{font-size:11px}.request-sheet .field input,.request-sheet .field select,.request-sheet .field textarea{padding:10px 11px;border-radius:12px}.upload-strip{display:flex;align-items:center;gap:9px;min-height:46px}.photo-upload-btn{display:inline-flex;align-items:center;gap:6px;cursor:pointer;border:1px dashed #9fcaf1;background:#f3f9ff;color:#1267aa;padding:9px 11px;border-radius:12px;font-size:12px;font-weight:850}.photo-upload-btn small{color:#7396b4;font-weight:700}.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.compact-preview{display:flex!important;gap:6px!important;margin:0!important;flex:1}.compact-preview .photo-thumb{width:54px;min-width:54px;aspect-ratio:1;border-radius:10px}.location-details{border-top:1px solid var(--line);padding-top:8px}.location-details summary{cursor:pointer;color:#607b91;font-size:11px;font-weight:800}.location-details[open] summary{margin-bottom:9px}.request-now{width:100%;min-height:48px;font-size:14px;justify-content:space-between;padding-left:17px;padding-right:15px}.request-now span{font-size:20px}.request-legal{font-size:9.5px;line-height:1.35;color:#7b8f9f;text-align:center;margin-top:10px}
.juiciosos-marker-wrap{background:transparent!important;border:0!important}.user-map-pin{width:34px;height:34px;position:relative;display:grid;place-items:center}.user-map-pin i{position:absolute;width:32px;height:32px;border-radius:50%;background:rgba(11,127,248,.16);animation:userRadar 1.8s infinite}.user-map-pin span{width:16px;height:16px;border-radius:50%;background:var(--blue);border:4px solid #fff;box-shadow:0 4px 14px rgba(0,77,162,.35);z-index:2}@keyframes userRadar{0%{transform:scale(.6);opacity:1}100%{transform:scale(2.1);opacity:0}}.pro-map-pin{width:44px;height:44px;border-radius:16px;background:#fff;display:grid;place-items:center;border:2px solid #fff;box-shadow:0 8px 22px rgba(0,48,95,.23);position:relative}.pro-map-pin>span{font-size:21px}.pro-map-pin b{position:absolute;right:-3px;bottom:-2px;width:17px;height:17px;border-radius:50%;display:grid;place-items:center;background:#0bb57a;color:#fff;border:2px solid #fff;font-size:9px}.job-map-pin{width:42px;height:42px;border-radius:14px;background:var(--navy);display:grid;place-items:center;border:2px solid #fff;box-shadow:0 8px 22px rgba(0,48,95,.24)}.job-map-pin span{font-size:19px}.job-map-pin.urgent{background:#ff5a43;animation:urgentBounce 1.7s infinite}@keyframes urgentBounce{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}.map-popup-meta{font-size:10px;color:#6e8193;margin-top:3px}
.pro-carousel{display:flex;gap:11px;overflow:auto;padding:2px 2px 8px;scrollbar-width:none}.pro-carousel::-webkit-scrollbar{display:none}.premium-pro{min-width:300px;box-shadow:0 7px 25px rgba(17,74,126,.07);border-radius:20px}.pro-name-line{display:flex;align-items:center;gap:5px}.verified-check{width:17px;height:17px;border-radius:50%;background:var(--blue);color:#fff;font-size:10px;display:inline-grid;place-items:center;font-weight:900}.trust-row{display:flex;gap:5px;align-items:center;flex-wrap:wrap;margin-top:5px}.trust-badge,.rating-badge{font-size:9px;font-weight:900;border-radius:999px;padding:4px 6px}.trust-badge{color:#087a55;background:#e9fff5}.rating-badge{color:#8c6500;background:#fff8db}.pro-distance{text-align:right;display:grid;gap:0}.pro-distance b{font-size:17px;color:var(--navy)}.pro-distance small{font-size:9px;color:var(--muted)}.wide-empty{min-width:100%}
.safety-grid{grid-template-columns:repeat(4,1fr)}.safety.premium{box-shadow:0 8px 25px rgba(15,74,126,.06);padding:18px}.safety.premium>span:first-child{font-size:25px;display:block;margin-bottom:10px}.safety.premium b{font-size:14px}
.live-service-card{margin-top:22px;background:#fff;border:1px solid var(--line);border-radius:28px;padding:20px;box-shadow:var(--soft-shadow)}.live-service-card.waiting{border-color:#c5e1fb}.live-service-top{display:flex;justify-content:space-between;gap:18px;align-items:flex-start}.live-service-top h2{margin:3px 0 4px;font-size:24px}.live-service-top p{margin:0;color:#516d83;max-width:720px}.service-stepper{display:grid;grid-template-columns:repeat(5,1fr);margin:18px 0 16px;position:relative}.service-stepper:before{content:"";position:absolute;left:10%;right:10%;top:13px;height:2px;background:#d9e5ef}.service-step{position:relative;z-index:2;display:grid;justify-items:center;gap:5px}.service-step span{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#edf3f7;color:#8ba0b1;font-size:10px;font-weight:900;border:3px solid #fff;box-shadow:0 0 0 1px #d9e5ef}.service-step small{font-size:9px;color:#8496a5;font-weight:800;text-align:center}.service-step.done span{background:#dff9ef;color:#087a55;box-shadow:0 0 0 1px #b9ead6}.service-step.current span{background:var(--blue);color:#fff;box-shadow:0 0 0 5px rgba(11,127,248,.12)}.service-step.current small{color:var(--blue2)}
.searching-box{display:grid;grid-template-columns:120px 1fr;gap:18px;align-items:center;background:linear-gradient(135deg,#f2f8ff,#f9fcff);border:1px solid #d6e9fb;border-radius:21px;padding:17px}.searching-box p{margin:5px 0;color:#567188;font-size:13px}.searching-box small{color:#8195a5}.radar{width:105px;height:105px;position:relative;display:grid;place-items:center;margin:auto}.radar span{position:absolute;border:2px solid rgba(11,127,248,.25);border-radius:50%;animation:radarPulse 2.1s infinite}.radar span:nth-child(1){width:62px;height:62px}.radar span:nth-child(2){width:100px;height:100px;animation-delay:.55s}.radar i{width:48px;height:48px;border-radius:17px;display:grid;place-items:center;background:linear-gradient(135deg,var(--blue),var(--blue2));font-style:normal;font-size:23px;box-shadow:0 10px 24px rgba(8,128,248,.27);z-index:2}@keyframes radarPulse{0%{transform:scale(.55);opacity:.9}100%{transform:scale(1.2);opacity:0}}
.assigned-pro,.client-card{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#f9fcff;border:1px solid #dfebf5;padding:13px 14px;border-radius:19px;margin:13px 0}.contact-actions{display:flex;gap:7px;margin-left:auto}.circle-contact{border:0;text-decoration:none;width:40px;height:40px;border-radius:13px;background:#eaf4ff;color:var(--blue2);display:grid;place-items:center;font-size:18px;cursor:pointer}.client-avatar{background:#edf5fb;color:#41657f}.route-card{margin-top:14px;border-radius:22px}.tracking-map{height:340px!important}.tracking-status{position:absolute;left:12px;top:12px;z-index:450;background:rgba(8,42,70,.90);backdrop-filter:blur(12px);color:#fff;border-radius:15px;padding:9px 11px;display:flex;align-items:center;gap:9px;box-shadow:0 10px 28px rgba(0,40,80,.18)}.tracking-status small{display:block;font-size:8px;text-transform:uppercase;letter-spacing:.08em;color:#bdd6e9}.tracking-status strong{display:block;font-size:11px;margin-top:1px}.pulse-icon{width:9px;height:9px;border-radius:50%;background:#31e69a;box-shadow:0 0 0 5px rgba(49,230,154,.15);animation:livePulse 1.7s infinite}.eta-row{margin:11px 0}.eta-chip{display:flex;align-items:baseline;gap:7px;background:#f4f9ff;border:1px solid #dceaf6;border-radius:13px;padding:9px 11px}.eta-chip b{font-size:17px}.eta-chip span{font-size:10px;color:var(--muted)}.location-updated{font-size:10px;color:#7b8d9c;margin:-2px 0 14px}.service-footer-note{border-top:1px solid var(--line);padding-top:12px;margin-top:15px;color:#7a8e9f;font-size:10px;text-align:center}.service-photos{grid-template-columns:repeat(3,minmax(90px,160px));justify-content:flex-start}
.chat-head{display:flex;align-items:center;justify-content:space-between;margin:18px 0 8px}.chat-head>div{display:flex;align-items:center;gap:8px}.chat-head>div>span{width:36px;height:36px;border-radius:12px;background:#eaf4ff;display:grid;place-items:center}.chat-head strong,.chat-head small{display:block}.chat-head small{font-size:9px;color:var(--muted);margin-top:2px}.secure-chat{font-size:9px;background:#e9fff5;color:#087a55;padding:5px 7px;border-radius:999px;font-weight:850}.chat{border-radius:19px}.chat-messages{height:250px;background:linear-gradient(180deg,#f7fbff,#f2f7fb);padding:14px}.bubble{box-shadow:0 3px 10px rgba(0,50,90,.04);border-radius:16px}.bubble.me{background:linear-gradient(135deg,#e5f2ff,#dceeff)}.chat-form{padding:8px}.chat-form input{border:0;background:#f1f6fa;padding:11px 13px}.send-chat{width:40px;height:40px;border:0;border-radius:13px;background:linear-gradient(135deg,var(--blue),var(--blue2));color:#fff;font-size:17px;cursor:pointer}.chat-empty{margin:auto;color:#7e92a2;font-size:12px}
.pro-hero{border-radius:30px;padding:27px 29px;color:#fff;background:radial-gradient(circle at 85% -10%,#5cb3ff 0,transparent 30%),linear-gradient(135deg,#075fbd,#087ff5 58%,#1389fb);display:flex;align-items:end;justify-content:space-between;gap:20px;box-shadow:0 20px 55px rgba(8,128,248,.22)}.pro-hero h1{margin:4px 0 7px;font-size:clamp(29px,5vw,46px)}.pro-hero p{margin:0;max-width:690px;color:#e7f4ff}.btn.glass{background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.28);color:#fff}.pro-control{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:14px;padding:13px 15px}.pro-control-left{flex:1;min-width:0}.pro-control-left .select{max-width:600px}.pro-control-right{display:flex;align-items:center;gap:9px}.big-credit{display:grid;gap:0;min-width:105px;text-align:center;font-size:10px;text-transform:uppercase;letter-spacing:.05em}.big-credit b{display:block;font-size:18px}.availability-toggle{border:0;border-radius:15px;padding:11px 13px;font-weight:900;cursor:pointer;display:inline-flex;align-items:center;gap:7px}.availability-toggle span{width:9px;height:9px;border-radius:50%}.availability-toggle.on{background:#e5fbf1;color:#087a55}.availability-toggle.on span{background:#14bd7d;box-shadow:0 0 0 4px rgba(20,189,125,.12)}.availability-toggle.off{background:#eef3f7;color:#687f91}.availability-toggle.off span{background:#96a6b3}.availability-toggle:disabled{opacity:.65;cursor:not-allowed}.pro-map-card{border-radius:28px}.pro-jobs-map{height:410px!important}.pro-map-caption{top:auto;bottom:14px;left:14px}.jobs-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.premium-job{padding:16px;border-radius:22px;box-shadow:0 7px 25px rgba(17,74,126,.06)}.job-top,.job-actions,.job-title-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.distance-badge{width:55px;height:55px;border-radius:17px;background:#edf6ff;display:grid;place-items:center;align-content:center;color:var(--blue2)}.distance-badge b{font-size:18px;line-height:1}.distance-badge small{font-size:9px}.job-title-row{justify-content:flex-start;margin:12px 0}.job-emoji{width:45px;height:45px;border-radius:15px;background:#f3f8fc;display:grid;place-items:center;font-size:22px}.job-title-row h3{margin:0 0 3px;font-size:17px}.job-description{color:#415e74;min-height:43px}.job-photos{grid-template-columns:repeat(3,1fr)}.no-photo-note{background:#f7fafc;color:#8a9ba8;border-radius:11px;padding:10px;font-size:10px;text-align:center}.job-actions{border-top:1px solid var(--line);margin-top:12px;padding-top:12px}.job-actions>div small,.job-actions>div strong{display:block}.job-actions>div small{font-size:9px;color:var(--muted)}.job-actions>div strong{font-size:12px;color:var(--navy)}
.pro-active-card{margin-top:0}.professional-status-actions{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:14px 0}.status-action{border:1px solid #dce8f3;background:#f7fbfe;color:#385970;border-radius:15px;padding:10px 7px;display:grid;justify-items:center;gap:5px;cursor:pointer}.status-action span{font-size:20px}.status-action b{font-size:10px}.status-action.active{background:#eaf4ff;border-color:#a9d4ff;color:var(--blue2)}.status-action.finish{background:#e8fff5;border-color:#bcefd9;color:#087a55}
@media(max-width:900px){.safety-grid{grid-template-columns:repeat(2,1fr)}.jobs-grid{grid-template-columns:1fr}.pro-hero{align-items:flex-start;flex-direction:column}.customer-map-stage{min-height:770px}.map-hero{height:770px!important;min-height:770px}.request-sheet{width:min(470px,calc(100% - 36px))}.pro-control{align-items:flex-start;flex-direction:column}.pro-control-right{width:100%;justify-content:space-between}}
@media(max-width:620px){.content{padding-left:0;padding-right:0}.topbar{padding-left:13px;padding-right:13px}.customer-map-stage{border-radius:0;border-left:0;border-right:0;min-height:calc(100svh - 145px);box-shadow:none}.map-hero{height:calc(100svh - 145px)!important;min-height:720px}.map-top-ui{top:10px;left:10px;right:10px}.location-pill{border-radius:17px;padding:8px 9px 8px 12px}.category-chips{margin-right:-10px}.category-chip{padding:8px 10px}.map-live-pill{left:10px;top:130px;max-width:calc(100% - 20px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.request-sheet{left:8px;bottom:8px;width:calc(100% - 16px);border-radius:25px;padding:12px 13px 13px}.sheet-handle{display:block}.request-sheet-head h1{font-size:21px}.selected-service{font-size:10px;max-width:120px}.request-mini-grid{grid-template-columns:1fr}.problem-field textarea{min-height:68px}.request-sheet .field label{font-size:10px}.request-sheet .field input,.request-sheet .field select,.request-sheet .field textarea{padding:9px 10px}.upload-strip{min-height:38px}.photo-upload-btn{padding:7px 9px}.request-now{min-height:44px}.location-details{display:none}.request-legal{font-size:8.5px}.pro-carousel,.section-title,.safety-grid,.live-service-card,.pro-hero,.pro-control,.pro-map-card,.jobs-grid,#activeJob{margin-left:12px;margin-right:12px}.section-title{margin-top:22px}.premium-pro{min-width:275px}.live-service-card{padding:15px;border-radius:23px}.live-service-top{flex-direction:column;gap:8px}.live-service-top h2{font-size:21px}.searching-box{grid-template-columns:1fr;text-align:center}.radar{width:90px;height:90px}.assigned-pro,.client-card{align-items:flex-start}.tracking-map{height:300px!important}.service-step small{font-size:7.5px}.service-step span{width:26px;height:26px}.safety-grid{grid-template-columns:1fr 1fr;gap:8px}.safety.premium{padding:13px}.safety.premium>span:first-child{font-size:21px}.pro-hero{border-radius:24px;padding:22px}.pro-control-right{flex-wrap:wrap}.big-credit{min-width:92px}.pro-jobs-map{height:340px!important}.premium-job{padding:14px}.professional-status-actions{grid-template-columns:1fr 1fr}.tracking-status{max-width:75%}.eta-chip{flex:1}.role-nav{z-index:900}.topbar:after{top:67px}}
@media(max-width:390px){.request-sheet-head{display:block}.selected-service{display:inline-block;margin-top:7px}.request-sheet{padding-bottom:11px}.problem-field textarea{min-height:62px}.safety-grid{grid-template-columns:1fr}.service-stepper:before{left:8%;right:8%}.service-step small{display:none}.premium-pro{min-width:250px}}

/* ===== JUICIOSOS v0.4 · MAPA MODERNO VECTORIAL ===== */
.map,.map-card{background:#eaf1f5}
.customer-map-stage{isolation:isolate;background:#eaf1f5}
.customer-map-stage:after{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;background:linear-gradient(180deg,rgba(255,255,255,.12) 0,transparent 18%,transparent 72%,rgba(8,38,63,.05) 100%)}
.leaflet-map-pane .maplibregl-map,.leaflet-map-pane .maplibregl-canvas-container,.leaflet-map-pane .maplibregl-canvas{width:100%!important;height:100%!important}
.leaflet-control-zoom{border:0!important;box-shadow:0 10px 30px rgba(16,52,79,.16)!important;border-radius:16px!important;overflow:hidden;background:rgba(255,255,255,.92)!important;backdrop-filter:blur(14px)}
.leaflet-control-zoom a{width:38px!important;height:38px!important;line-height:36px!important;border:0!important;border-bottom:1px solid rgba(16,52,79,.08)!important;background:rgba(255,255,255,.92)!important;color:#173b55!important;font-weight:700!important}
.leaflet-control-zoom a:last-child{border-bottom:0!important}.leaflet-control-zoom a:hover{background:#edf6ff!important;color:var(--blue)!important}
.leaflet-control-attribution{margin:0 8px 8px 0!important;padding:3px 7px!important;border-radius:8px!important;background:rgba(255,255,255,.74)!important;backdrop-filter:blur(8px);color:#62788b!important;font-size:8px!important}
.leaflet-control-attribution a{color:#476b86!important}
.leaflet-popup-content-wrapper{border-radius:18px!important;border:1px solid rgba(8,128,248,.12);box-shadow:0 16px 42px rgba(19,57,84,.18)!important;background:rgba(255,255,255,.96)!important;backdrop-filter:blur(14px)}
.leaflet-popup-tip{box-shadow:none!important;background:rgba(255,255,255,.96)!important}.leaflet-popup-content{margin:10px 13px!important}.juiciosos-popup strong{font-size:12px;color:#102f49}.map-popup-meta{font-size:10px;color:#718597;margin-top:3px}
.juiciosos-marker-wrap{background:transparent!important;border:0!important;filter:drop-shadow(0 8px 12px rgba(9,52,91,.16))}
.user-map-pin{width:38px;height:38px;position:relative;display:grid;place-items:center}.user-map-pin i{position:absolute;width:31px;height:31px;border-radius:50%;background:rgba(8,128,248,.16);animation:userRadar 1.9s infinite}.user-map-pin span{width:17px;height:17px;border-radius:50%;background:linear-gradient(145deg,#168fff,#0069da);border:4px solid #fff;box-shadow:0 0 0 1px rgba(8,128,248,.22),0 7px 18px rgba(0,78,164,.28);z-index:2}
.pro-map-pin{width:48px;height:48px;border-radius:17px;background:linear-gradient(145deg,#fff,#f4faff);display:grid;place-items:center;border:1px solid rgba(10,108,212,.10);box-shadow:0 12px 30px rgba(10,64,108,.20);position:relative;transform:translateY(-2px)}.pro-map-pin>span{font-size:22px;line-height:1}.pro-map-pin b{position:absolute;right:-4px;bottom:-3px;width:18px;height:18px;border-radius:50%;display:grid;place-items:center;background:#12b981;color:#fff;border:3px solid #fff;font-size:8px;box-shadow:0 4px 10px rgba(18,185,129,.22)}.pro-map-pin i{position:absolute;left:50%;bottom:-7px;width:12px;height:12px;background:#fff;border-right:1px solid rgba(10,108,212,.10);border-bottom:1px solid rgba(10,108,212,.10);transform:translateX(-50%) rotate(45deg);border-radius:2px;z-index:-1}
.job-map-pin{width:46px;height:46px;border-radius:17px;background:linear-gradient(145deg,#173f5d,#102f49);display:grid;place-items:center;border:3px solid #fff;box-shadow:0 12px 28px rgba(7,42,70,.24)}.job-map-pin span{font-size:20px}.job-map-pin.urgent{background:linear-gradient(145deg,#ff6b54,#e93829);animation:urgentBounce 1.65s infinite;box-shadow:0 12px 28px rgba(222,55,41,.28)}
.map-live-pill,.location-pill,.category-chip,.request-sheet,.tracking-status{backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
.location-pill{background:rgba(255,255,255,.93)!important;border-color:rgba(255,255,255,.82)!important;box-shadow:0 12px 34px rgba(13,59,94,.14)!important}
.category-chip{background:rgba(255,255,255,.91)!important;border-color:rgba(218,231,241,.85)!important;box-shadow:0 9px 24px rgba(13,59,94,.09)}.category-chip.active{background:linear-gradient(135deg,#0d87ff,#006adf)!important;color:#fff!important;border-color:transparent!important;box-shadow:0 12px 26px rgba(8,128,248,.28)!important}
.map-live-pill{background:rgba(16,47,73,.88)!important;color:#fff!important;border:1px solid rgba(255,255,255,.14)!important;box-shadow:0 12px 30px rgba(12,48,76,.18)!important}
.route-card{border-color:rgba(8,128,248,.10)!important;box-shadow:0 16px 38px rgba(14,68,108,.12)!important}.tracking-status{background:rgba(12,43,67,.88)!important;border:1px solid rgba(255,255,255,.12)}
@media(max-width:620px){.leaflet-control-attribution{max-width:76%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.leaflet-control-zoom{margin-right:10px!important;margin-bottom:96px!important}}

/* ==========================================================
   JUICIOSOS v0.5 — MOBILE FIRST / APP-LIKE RESPONSIVE LAYER
   Pensado para Android/iPhone, pantallas angostas y safe areas.
   ========================================================== */
html,body{width:100%;max-width:100%;overflow-x:hidden}
body{-webkit-text-size-adjust:100%;text-size-adjust:100%;overscroll-behavior-y:auto;-webkit-overflow-scrolling:touch;touch-action:pan-y}
button,.btn,.category,.category-chip,.star-btn,.role-nav button{touch-action:manipulation}
img,video,canvas,svg{max-width:100%}
.maplibregl-map,.leaflet-container{touch-action:pan-x pan-y;outline:none}
.app-shell{min-height:100dvh;padding-bottom:calc(96px + env(safe-area-inset-bottom))}
.topbar{padding-top:max(8px,env(safe-area-inset-top));height:calc(78px + env(safe-area-inset-top))}
.role-nav{bottom:max(10px,env(safe-area-inset-bottom));max-width:680px}
.modal-card{padding-bottom:max(24px,calc(18px + env(safe-area-inset-bottom)))}
input,select,textarea{font-size:16px}

@media(max-width:620px){
  body{background:#f6f9fc}
  .app-shell{padding-bottom:calc(76px + env(safe-area-inset-bottom))}
  .topbar{
    height:calc(61px + env(safe-area-inset-top));
    padding:env(safe-area-inset-top) 12px 4px;
    background:rgba(255,255,255,.96);
    backdrop-filter:blur(18px);
    -webkit-backdrop-filter:blur(18px);
    position:relative;
    z-index:850;
  }
  .brand{gap:8px;min-width:0}
  .brand img{width:43px;height:43px}
  .brand strong{font-size:17px}
  .brand small{font-size:10px;margin-top:2px}
  .top-actions{gap:5px}
  .top-actions a{padding:9px 7px;border-radius:12px;background:#eef7ff;font-size:10px}

  .content{padding:0 0 calc(98px + env(safe-area-inset-bottom))}
  .customer-map-stage{
    min-height:calc(100dvh - 61px - env(safe-area-inset-top));
    height:calc(100dvh - 61px - env(safe-area-inset-top));
    max-height:none;
  }
  .map-hero{
    height:100%!important;
    min-height:100%!important;
  }
  .map-top-ui{top:10px;left:10px;right:10px}
  .location-pill{min-height:42px;box-shadow:0 9px 28px rgba(19,56,89,.13)}
  .category-chips{scroll-snap-type:x proximity;padding-bottom:4px;scrollbar-width:none}
  .category-chips::-webkit-scrollbar{display:none}
  .category-chip{scroll-snap-align:start;min-height:40px;white-space:nowrap}
  .map-live-pill{top:126px}
  .request-sheet{
    left:8px;
    width:calc(100% - 16px);
    bottom:calc(76px + env(safe-area-inset-bottom));
    max-height:min(55dvh,510px);
    overflow-y:auto;
    overflow-x:hidden;
    overscroll-behavior-y:auto;
    -webkit-overflow-scrolling:touch;
    touch-action:pan-y;
    scrollbar-width:none;
    -ms-overflow-style:none;
    border-radius:27px;
    padding:11px 13px calc(13px + env(safe-area-inset-bottom));
    box-shadow:0 18px 48px rgba(16,55,88,.22);
  }
  .request-sheet::-webkit-scrollbar{width:0;height:0}
  .request-sheet-head{position:sticky;top:-11px;background:rgba(255,255,255,.97);z-index:3;padding-top:11px;padding-bottom:5px}
  .request-sheet-head h1{font-size:20px;line-height:1.08}
  .problem-field textarea{min-height:66px;max-height:115px}
  .request-sheet .field input,.request-sheet .field select,.request-sheet .field textarea{min-height:43px;border-radius:13px}
  .request-now{min-height:48px;border-radius:15px;font-size:14px}
  .photo-upload-btn{min-height:42px}

  .role-nav{
    width:calc(100% - 14px);
    bottom:max(7px,env(safe-area-inset-bottom));
    padding:5px;
    border-radius:21px;
    box-shadow:0 12px 34px rgba(16,55,88,.24);
  }
  .role-nav button{min-height:52px;padding:7px 2px;font-size:11px;line-height:1.05}
  .role-nav button span{font-size:17px}

  .modal-backdrop{
    padding:0;
    align-items:end;
    place-items:end center;
    background:rgba(10,35,55,.48);
  }
  .modal-card{
    width:100%;
    max-width:none;
    max-height:92dvh;
    border-radius:28px 28px 0 0;
    padding:19px 15px calc(20px + env(safe-area-inset-bottom));
  }
  .modal-close{top:0;right:0;width:39px;height:39px}

  .pro-carousel{overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding-bottom:4px}
  .pro-carousel::-webkit-scrollbar{display:none}
  .premium-pro{scroll-snap-align:start}
  .pro-hero,.pro-control,.panel,.live-service-card,.pro-map-card,.premium-job{border-radius:22px}
  .pro-jobs-map,.tracking-map{min-height:300px}
  .professional-status-actions .btn{min-height:46px}
  .chat-messages{height:min(42dvh,320px)}
  .chat-form{position:sticky;bottom:0;padding-bottom:max(10px,env(safe-area-inset-bottom))}
  .chat-form input{min-height:44px;font-size:16px}
  .chat-form .btn{min-width:48px;min-height:44px}

  .toast{top:calc(68px + env(safe-area-inset-top));width:calc(100% - 24px);font-size:13px}
  .photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .verification-card{padding:12px}
  .admin-row{gap:7px}
  .btn{min-height:44px}
  .btn.small{min-height:38px}
}

@media(max-width:380px){
  .brand small{display:none}
  .top-actions a{font-size:9px;padding:8px 6px}
  .request-sheet{max-height:58dvh}
  .request-sheet-head h1{font-size:18px}
  .selected-service{max-width:108px}
  .role-nav button{font-size:10px}
  .premium-pro{min-width:238px}
}

@media(max-height:700px) and (max-width:620px){
  .request-sheet{max-height:62dvh}
  .map-live-pill{display:none}
  .request-legal{display:none}
  .problem-field textarea{min-height:54px}
}

@media(orientation:landscape) and (max-height:520px){
  .topbar{height:52px;padding-top:0}
  .brand img{width:38px;height:38px}
  .brand small{display:none}
  .customer-map-stage{height:calc(100dvh - 52px);min-height:calc(100dvh - 52px)}
  .request-sheet{left:auto;right:8px;top:8px;bottom:74px;width:min(410px,46vw);max-height:none}
  .role-nav{width:min(520px,70vw)}
}

/* v0.6 - foundation business UI */
.diagnostic-fee-card{display:flex;gap:12px;align-items:flex-start;background:linear-gradient(135deg,#eef7ff,#f8fbff);border:1px solid #cfe8ff;border-radius:18px;padding:13px 14px;margin:8px 0 12px}.diagnostic-fee-card>span{font-size:24px}.diagnostic-fee-card div{display:flex;flex-direction:column;gap:2px}.diagnostic-fee-card small{color:#52708d;font-weight:700}.diagnostic-fee-card strong{font-size:18px;color:#066dd3}.diagnostic-fee-card em{font-size:11px;color:#6f8295;font-style:normal;line-height:1.35}.diagnostic-job-line{margin:10px 0;background:#f4f9ff;border-radius:12px;padding:9px 11px;font-size:12px;color:#46647f}.level-badge{display:inline-flex;padding:5px 8px;border-radius:999px;font-size:11px;font-weight:900}.level-badge.bronce{background:#f4ece7;color:#8a5a38}.level-badge.plata{background:#eef2f6;color:#607184}.level-badge.oro{background:#fff5d5;color:#9a6d00}.level-badge.elite{background:#eaf2ff;color:#075bbb}.pro-stats-mini{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}.pro-stats-mini span{font-size:11px;background:#f4f7fa;padding:5px 8px;border-radius:9px;color:#5f7181}.credit.big-credit small{display:block;font-size:9px;font-weight:600;color:#6b7d8d}.outcome-confirm{margin-top:14px;border:1px solid #b8ddff;background:#f5faff;border-radius:20px;padding:16px}.outcome-confirm h3{margin:5px 0}.outcome-options{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:12px 0}.outcome-option{border:1px solid #d7e6f4;background:#fff;border-radius:18px;padding:15px;text-align:left;display:flex;flex-direction:column;gap:5px;cursor:pointer}.outcome-option:hover{border-color:#1689ff;box-shadow:0 8px 24px rgba(22,137,255,.12)}.outcome-option span{font-size:26px}.outcome-option small{color:#6e8092;line-height:1.4}.history-strip{display:flex;gap:10px;overflow:auto;padding:2px 2px 12px}.history-card{min-width:260px;background:#fff;border:1px solid #e7edf4;border-radius:18px;padding:14px;box-shadow:0 8px 25px rgba(25,64,97,.06);display:flex;justify-content:space-between;gap:12px;align-items:center}.history-card>div{display:flex;flex-direction:column;gap:3px}.history-card>div>span{font-size:22px}.history-card small{color:#788b9d;max-width:160px}.status.awaiting_confirmation{background:#fff4ce;color:#8b6500}.status.review{background:#ffe5e5;color:#a32727}
@media(max-width:600px){.outcome-options{grid-template-columns:1fr}.diagnostic-fee-card{border-radius:15px}.history-card{min-width:235px}.pro-stats-mini{overflow:auto;flex-wrap:nowrap}.pro-stats-mini span{white-space:nowrap}}

.contact-privacy{font-size:10px;color:#71869a;max-width:76px;line-height:1.15}


/* ==========================================================
   JUICIOSOS v0.7 — PILOT HOME / FRESH SERVICE PICKER
   ========================================================== */
.map-placeholder{position:absolute;inset:0;display:grid;place-items:center;align-content:center;gap:7px;background:linear-gradient(145deg,#eaf4fb,#f7fbfe);color:#52718a;text-align:center;padding:24px;z-index:0}.map-placeholder small{max-width:330px;font-size:10px;color:#7890a2}.map-loader{width:28px;height:28px;border:3px solid #c9e5ff;border-top-color:#087ff5;border-radius:50%;animation:mapSpin .85s linear infinite}@keyframes mapSpin{to{transform:rotate(360deg)}}.map-ready>.map-placeholder{display:none}.maplibregl-map,.leaflet-container{z-index:1}.maplibre-custom-marker{width:max-content;height:max-content}.maplibregl-popup-content{border-radius:14px!important;padding:10px 12px!important;box-shadow:0 12px 32px rgba(8,49,79,.18)!important}.maplibregl-popup-tip{border-top-color:#fff!important}.map-raster-fallback:after{content:'Mapa de respaldo';position:absolute;left:9px;bottom:9px;z-index:500;background:rgba(255,255,255,.88);padding:4px 7px;border-radius:9px;font-size:8px;color:#698094;box-shadow:0 4px 16px rgba(16,55,88,.1)}
.service-picker{display:grid;gap:9px}.service-picker-title{display:flex;align-items:end;justify-content:space-between;gap:10px}.service-picker-title strong{display:block;font-size:20px;color:var(--navy);line-height:1.05;margin-top:2px}.more-services-link{border:0;background:#eef7ff;color:#0873dd;padding:8px 10px;border-radius:11px;font-size:11px;font-weight:900;cursor:pointer;white-space:nowrap}.service-quick-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.service-quick-card{position:relative;min-height:69px;border:1px solid #e1ebf3;background:#fff;border-radius:18px;padding:10px 11px;display:flex;align-items:center;gap:9px;text-align:left;cursor:pointer;box-shadow:0 5px 18px rgba(17,67,104,.055);transition:.18s ease}.service-quick-card:hover{transform:translateY(-1px);border-color:#b9dcff}.service-quick-card.active{border-color:#72b7ff;background:linear-gradient(145deg,#f7fbff,#eaf5ff);box-shadow:0 9px 24px rgba(8,128,248,.13)}.service-icon{width:38px;height:38px;flex:0 0 38px;border-radius:13px;display:grid;place-items:center;background:#f1f7fc;font-size:20px}.service-quick-card.active .service-icon{background:#fff;box-shadow:0 5px 15px rgba(8,128,248,.10)}.service-copy{min-width:0;display:grid;gap:2px}.service-copy b{font-size:12px;color:#163d5b}.service-copy small{font-size:9.5px;color:#72889a;line-height:1.2}.service-check{position:absolute;right:8px;top:7px;width:17px;height:17px;border-radius:50%;display:none;place-items:center;background:#0f83f8;color:#fff;font-size:9px}.service-quick-card.active .service-check{display:grid}.selected-service-row{display:flex;align-items:center;justify-content:space-between;gap:9px;border-top:1px solid #edf2f6;padding-top:9px}.selected-service-label{text-transform:uppercase;letter-spacing:.08em;font-size:8px;font-weight:900;color:#8ba0b1}.selected-service{position:static!important;max-width:none!important;font-size:10px!important;padding:6px 9px!important}.fresh-sheet .request-form{gap:8px}.fresh-sheet .diagnostic-fee-card.compact{padding:9px 11px;margin:1px 0 4px;border-radius:15px}.fresh-sheet .diagnostic-fee-card.compact>span{font-size:19px}.fresh-sheet .diagnostic-fee-card.compact strong{font-size:15px}.fresh-sheet .diagnostic-fee-card.compact em{font-size:9.5px}.grua-box{border:1px solid #d7eaff;background:#f7fbff;border-radius:17px;padding:10px 11px}.grua-head{display:flex;align-items:center;gap:8px;margin-bottom:8px}.grua-head>span{width:34px;height:34px;border-radius:11px;background:#e7f3ff;display:grid;place-items:center}.grua-head div{display:grid}.grua-head b{font-size:12px;color:#173f5d}.grua-head small{font-size:9px;color:#748a9c}.service-detail-strip{display:flex;gap:7px;flex-wrap:wrap;margin:7px 0}.service-detail-strip span{background:#edf6ff;color:#1767ad;border-radius:999px;padding:6px 9px;font-size:10px;font-weight:800}.services-modal-head h2{margin:5px 0}.more-services-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:14px}.more-service-card{border:1px solid #e2ebf3;background:#fff;border-radius:17px;padding:12px;display:flex;align-items:center;gap:9px;text-align:left;cursor:pointer}.more-service-card>span{font-size:23px}.more-service-card>div{display:grid;gap:2px;flex:1}.more-service-card b{font-size:12px;color:#193f5c}.more-service-card small{font-size:9px;color:#7d90a0;line-height:1.25}.more-service-card i{font-style:normal;color:#0c7ef1;font-weight:900}.more-service-card.disabled{opacity:.62;cursor:default;background:#f7f9fb}.more-service-card em{font-style:normal;background:#edf1f4;color:#6f8291;border-radius:999px;padding:4px 7px;font-size:8px;font-weight:900}.coming-title{margin-top:20px;font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.09em;color:#869aaa}
.map-top-ui{pointer-events:none}.map-top-ui>*{pointer-events:auto}.map-live-pill{top:82px!important}.request-sheet{z-index:20}.map-top-ui{z-index:22}.map-live-pill{z-index:21}.role-nav{z-index:1000}.modal-backdrop{z-index:2000}.toast{z-index:3000}
@media(max-width:620px){.map-live-pill{top:62px!important;left:10px!important;max-width:calc(100% - 20px)}.fresh-sheet{max-height:min(66dvh,610px)!important}.service-picker-title strong{font-size:18px}.service-quick-card{min-height:64px;padding:9px}.service-icon{width:35px;height:35px;flex-basis:35px}.service-copy b{font-size:11.5px}.service-copy small{font-size:9px}.more-services-grid{grid-template-columns:1fr}.fresh-sheet .problem-field textarea{min-height:58px}.fresh-sheet .request-mini-grid{grid-template-columns:1fr 1fr}.fresh-sheet .diagnostic-fee-card.compact em{display:block}.location-details{display:none!important}}
@media(max-width:390px){.service-quick-grid{gap:7px}.service-quick-card{min-height:61px;border-radius:16px;padding:8px}.service-icon{width:32px;height:32px;flex-basis:32px;font-size:18px}.service-copy small{display:none}.fresh-sheet .request-mini-grid{grid-template-columns:1fr}.more-services-link{padding:7px 8px}}


/* ==========================================================
   JUICIOSOS v0.8 — CLEAN MAP / VISIBLE SERVICES
   ========================================================== */
.map-top-ui,.location-pill{display:none!important}
.map-compact-ui{position:absolute;z-index:24;top:14px;right:14px;display:flex;align-items:center;gap:7px;pointer-events:none}
.map-compact-ui>*{pointer-events:auto}
.map-locate-fab{width:46px;height:46px;border:1px solid rgba(210,228,244,.95);border-radius:16px;background:rgba(255,255,255,.96);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);color:#087ff5;font-size:23px;font-weight:900;cursor:pointer;box-shadow:0 10px 28px rgba(15,57,88,.17);display:grid;place-items:center}
.map-locate-fab:active{transform:scale(.97)}
.map-radius-badge{height:34px;padding:0 10px;border-radius:999px;background:rgba(255,255,255,.94);border:1px solid rgba(210,228,244,.95);box-shadow:0 8px 22px rgba(15,57,88,.12);display:flex;align-items:center;font-size:10px;font-weight:900;color:#506f87}
.map-live-pill.compact-status{top:16px!important;left:16px!important;max-width:calc(100% - 150px);padding:7px 11px;font-size:10px}
.service-picker-title{align-items:flex-start!important}
.service-picker-title>div{display:grid;gap:2px}
.service-picker-title small{font-size:9.5px;color:#7890a2;font-weight:650}
.more-services-link{display:none!important}
.more-services-button{width:100%;border:1px dashed #acd3f6;background:linear-gradient(145deg,#f8fbff,#eff7ff);color:#1768aa;border-radius:16px;padding:10px 12px;display:flex;align-items:center;gap:10px;text-align:left;cursor:pointer;margin-top:1px}
.more-services-button>span{width:34px;height:34px;border-radius:11px;background:#fff;color:#087ff5;display:grid;place-items:center;font-size:20px;font-weight:500;box-shadow:0 5px 14px rgba(8,128,248,.09)}
.more-services-button>div{display:grid;gap:1px;flex:1;min-width:0}
.more-services-button b{font-size:11.5px;color:#16517e}
.more-services-button small{font-size:9px;color:#7b91a3}
.more-services-button i{font-style:normal;color:#087ff5;font-size:18px;font-weight:900}
.more-services-button:hover{border-color:#65aff1;background:#eef7ff}
.selected-service-row{display:none!important}
.fresh-sheet{scrollbar-width:none}
.fresh-sheet::-webkit-scrollbar{display:none}
@media(max-width:620px){
  .map-compact-ui{top:9px;right:9px}
  .map-locate-fab{width:43px;height:43px;border-radius:15px}
  .map-radius-badge{height:31px;font-size:9px;padding:0 8px}
  .map-live-pill.compact-status{top:10px!important;left:10px!important;max-width:calc(100% - 132px);font-size:9px;padding:6px 9px}
  .service-picker{gap:8px}
  .service-picker-title strong{font-size:17px!important}
  .service-picker-title small{font-size:8.5px}
  .more-services-button{min-height:52px;padding:8px 10px;border-radius:15px}
  .more-services-button>span{width:32px;height:32px}
  .fresh-sheet{max-height:min(64dvh,590px)!important}
}
@media(max-width:390px){
  .map-radius-badge{display:none}
  .map-live-pill.compact-status{max-width:calc(100% - 70px)}
  .service-picker-title small{display:none}
  .more-services-button small{display:none}
}

/* v0.9 — mapa profesional limpio + soporte desde Juiciosos Admin */
.pro-map-toolbar{position:absolute;z-index:30;right:14px;top:14px;display:flex;gap:8px}
.pro-map-statusbar{position:absolute;z-index:29;left:14px;top:14px;max-width:calc(100% - 92px);display:inline-flex;align-items:center;gap:7px;background:rgba(255,255,255,.95);color:#27465e;border:1px solid rgba(210,228,244,.96);border-radius:999px;padding:8px 12px;font-size:11px;font-weight:850;box-shadow:0 10px 26px rgba(15,57,88,.12);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pro-map-statusbar .live-dot{flex:0 0 auto}.pro-map-statusbar span:last-child{overflow:hidden;text-overflow:ellipsis}
.pro-empty-state{grid-column:1/-1;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:14px;background:linear-gradient(145deg,#fff,#f7fbff);border:1px solid #dceaf5;border-radius:22px;padding:18px 20px;box-shadow:0 7px 24px rgba(17,74,126,.05)}
.pro-empty-icon{width:54px;height:54px;border-radius:17px;display:grid;place-items:center;background:#eaf5ff;font-size:26px}.pro-empty-state strong{display:block;color:#173a53;font-size:15px}.pro-empty-state p{margin:4px 0 0;color:#6e8496;font-size:11px;line-height:1.45;max-width:620px}
.pro-support-panel{margin-top:14px;padding:14px 16px;background:linear-gradient(145deg,#ffffff,#f5fbff);box-shadow:0 7px 25px rgba(17,74,126,.05)}.pro-support-panel[hidden]{display:none}.support-panel-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}.support-panel-head h3{margin:2px 0 0;font-size:16px}.support-unread{font-size:10px;font-weight:850;color:#6c8193;background:#edf4f9;border-radius:999px;padding:6px 9px}.support-unread.has-unread{background:#e6f3ff;color:#087ff5}.support-message-list{display:grid;gap:7px}.support-message{border:1px solid #e0ebf3;border-radius:14px;background:#fff;padding:10px 12px}.support-message.unread{border-color:#afd6ff;background:#f5faff}.support-message>div{display:flex;justify-content:space-between;gap:10px}.support-message b{font-size:11px;color:#087ff5}.support-message small{font-size:9px;color:#8798a5}.support-message p{margin:5px 0 0;font-size:12px;line-height:1.45;color:#314e64}
@media(max-width:620px){.pro-map-toolbar{right:10px;top:10px}.pro-map-statusbar{left:10px;top:10px;max-width:calc(100% - 70px);padding:7px 9px;font-size:9.5px}.pro-empty-state{grid-template-columns:auto 1fr;padding:14px}.pro-empty-state .row{grid-column:1/-1}.pro-support-panel{margin-left:12px;margin-right:12px}.support-message>div{align-items:flex-start;flex-direction:column;gap:2px}}


/* JUICIOSOS v0.11 — mensajería, avisos y UX no invasiva */
.availability-inline{display:flex;align-items:center;gap:7px;margin:8px 0 11px;padding:7px 10px;border-radius:12px;background:#f4f8fb;border:1px solid #e4edf4;color:#60798d;font-size:10px;font-weight:800;max-width:100%}.availability-inline .live-dot{flex:0 0 auto}.availability-inline:has(.live-dot:not(.idle)){background:#effaf6;color:#24755c;border-color:#d7f0e5}.map-live-pill.compact-status{display:none!important}
.support-toggle{width:100%;border:0;background:transparent;padding:0;cursor:pointer;text-align:left}.support-head-actions{display:flex;align-items:center;gap:8px}.support-chevron{width:29px;height:29px;border-radius:50%;background:#edf5fb;color:#496b84;display:grid;place-items:center;font-size:16px}.pro-support-panel.collapsed{padding-bottom:12px}.pro-support-panel.collapsed .support-panel-head{margin-bottom:0}.support-message-actions{display:flex!important;align-items:center!important;justify-content:space-between!important;margin-top:8px;padding-top:7px;border-top:1px solid #eef3f7}.support-message-actions span{font-size:9px;color:#8295a3}.archive-message{border:0;background:#eef6fc;color:#38627f;border-radius:9px;padding:6px 9px;font-size:9px;font-weight:850;cursor:pointer}.archive-message:hover{background:#e3f1fc;color:#087ff5}
.service-chat{margin-top:14px}.chat-shell{border:1px solid #dce8f1;border-radius:18px;background:#fff;overflow:hidden;box-shadow:0 7px 23px rgba(18,70,105,.05)}.chat-shell.collapsed{box-shadow:none}.chat-head{width:100%;border:0;background:#fff;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 12px;text-align:left}.chat-toggle{cursor:pointer}.chat-head>div:first-child{display:flex;align-items:center;gap:8px}.chat-head>div:first-child>span{width:35px;height:35px;border-radius:12px;background:#edf6ff;display:grid;place-items:center}.chat-head strong{display:block;font-size:12px;color:#173a54}.chat-head small{display:block;font-size:9px;color:#7e919f;margin-top:2px}.chat-head-right{display:flex;align-items:center;gap:6px}.chat-unread{min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:#ed3e4c;color:#fff;display:grid;place-items:center;font-size:9px;font-weight:900}.secure-chat{font-size:9px;color:#087a55;background:#e9fbf3;padding:5px 7px;border-radius:999px;font-weight:850}.chat-chevron{color:#5c7487;font-size:15px}.chat-body[hidden]{display:none}.chat-ticks{font-weight:900;color:#9aa9b4;margin-left:3px}.chat-ticks.read{color:#1688ff}.send-chat{width:42px;height:42px;border:0;border-radius:12px;background:#087ff5;color:#fff;font-size:18px;cursor:pointer}
@media(max-width:620px){.availability-inline{margin:7px 0 9px;font-size:9.5px}.chat-head{padding:10px}.secure-chat{display:none}.pro-support-panel{border-radius:19px!important}}

.top-alert-btn{width:34px;height:34px;border:1px solid #d9e7f2;border-radius:12px;background:#f5f9fc;color:#557188;display:grid;place-items:center;cursor:pointer}.top-alert-btn.active{background:#e8fff5;border-color:#bcebd7;color:#087a55;box-shadow:0 0 0 3px rgba(20,185,125,.08)}
@media(max-width:620px){.top-alert-btn{width:32px;height:32px;border-radius:11px}.verified-pill{display:none}}


/* v0.12 — panel de solicitud siempre visible + scroll invisible */
.customer-map-stage .request-sheet.fresh-sheet{
  top:18px;
  bottom:18px;
  max-height:none;
  overflow-y:auto;
  overflow-x:hidden;
  overscroll-behavior:contain;
  scrollbar-width:none;
  -ms-overflow-style:none;
  scroll-behavior:smooth;
}
.customer-map-stage .request-sheet.fresh-sheet::-webkit-scrollbar{width:0!important;height:0!important;display:none!important}
.customer-map-stage .request-sheet.fresh-sheet .request-now{position:sticky;bottom:-1px;z-index:5;box-shadow:0 -8px 22px rgba(255,255,255,.88),0 10px 20px rgba(8,128,248,.15)}
.customer-cancel-box{margin-top:14px;padding:13px 14px;border:1px solid #f1d4d1;background:#fffafa;border-radius:17px;display:flex;align-items:center;justify-content:space-between;gap:14px}
.customer-cancel-box>div{display:grid;gap:4px}.customer-cancel-box b{font-size:12px;color:#7e2f29}.customer-cancel-box small{font-size:10px;line-height:1.4;color:#8a6c69;max-width:560px}.customer-cancel-box .btn{flex:0 0 auto}
@media(max-width:620px){
  .customer-map-stage .request-sheet.fresh-sheet{top:auto;bottom:8px;max-height:min(66dvh,610px)!important}
  .customer-cancel-box{align-items:stretch;flex-direction:column}.customer-cancel-box .btn{width:100%}
}
@media(orientation:landscape) and (max-height:520px){.customer-map-stage .request-sheet.fresh-sheet{top:8px;bottom:74px;max-height:none!important}}

/* v0.13 — confianza visual, calificaciones y fotos optimizadas en chat */
.assigned-pro.identity-card{display:grid;grid-template-columns:auto 1fr auto;align-items:center;padding:16px;background:linear-gradient(145deg,#fff,#f4faff);border-color:#cfe4f6;box-shadow:0 10px 30px rgba(18,79,128,.07)}
.assigned-photo{width:86px;height:86px;border-radius:24px;overflow:hidden;position:relative;background:linear-gradient(145deg,#e8f4ff,#d8ecff);display:grid;place-items:center;border:3px solid #fff;box-shadow:0 0 0 1px #cde0ef,0 8px 22px rgba(10,75,130,.12)}
.assigned-photo img{width:100%;height:100%;object-fit:cover}.pro-photo-fallback{font-size:34px}.photo-verified{position:absolute;right:3px;bottom:3px;width:23px;height:23px;border-radius:50%;display:grid;place-items:center;background:#14b87a;color:#fff;border:2px solid #fff;font-size:11px;font-weight:950}
.assigned-pro-info{min-width:0}.assigned-pro-info .eyebrow{font-size:8px}.assigned-pro-info .pro-name-line strong{font-size:17px}.assigned-profession{font-size:11px;color:#5d7890;font-weight:750;margin:3px 0 7px}.identity-note{display:block;color:#7b8f9f;font-size:9px;line-height:1.4;margin-top:7px;max-width:430px}
.rating-card{margin-top:16px;padding:17px;border:1px solid #d6e7f5;border-radius:21px;background:linear-gradient(145deg,#fff,#f7fbff);box-shadow:0 9px 28px rgba(17,74,126,.06)}.rating-card.done{display:flex;gap:13px;align-items:flex-start}.rating-head{display:flex;gap:12px;align-items:flex-start}.rating-head h3{margin:2px 0 4px;font-size:18px}.rating-head p,.rating-card.done p{margin:0;color:#728798;font-size:11px;line-height:1.45}.rating-icon{width:43px;height:43px;border-radius:14px;background:#fff7d7;display:grid;place-items:center;font-size:22px;flex:0 0 auto}.rating-card.done strong{display:block;color:#ffad0b;letter-spacing:2px;font-size:20px;margin:3px 0}.rating-stars{justify-content:center;margin:13px 0 3px}.rating-stars .star-btn{font-size:38px;color:#cbd7e0;filter:none;opacity:1;transition:.15s transform,.15s color}.rating-stars .star-btn.active{color:#ffb20e;transform:translateY(-1px)}.rating-label{text-align:center;font-size:11px;font-weight:900;color:#805b00;margin-bottom:12px}.rating-submit{width:100%;margin-top:10px}.modal-rating{max-width:560px;margin:auto}
.history-card{align-items:stretch!important;flex-direction:column!important;min-width:285px}.history-main{display:flex!important;flex-direction:row!important;align-items:flex-start;gap:9px}.history-main>span{font-size:25px}.history-main>div{display:grid;gap:3px}.history-rating{color:#f1a600;font-size:12px;font-weight:900;display:flex;align-items:center;gap:6px;margin-top:5px}.history-rating span{color:#6f8393;font-size:9px;font-weight:650;max-width:150px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.history-rating.pending{color:#8598a7;font-size:9px;font-weight:750}.history-actions{display:flex!important;flex-direction:row!important;gap:7px;margin-top:auto;padding-top:8px}.history-actions .btn{flex:1}
.chat-form{align-items:center}.chat-attach{width:42px;height:42px;border-radius:12px;background:#edf6ff;color:#087ff5;display:grid;place-items:center;font-size:19px;cursor:pointer;flex:0 0 auto;border:1px solid #d8eaff}.chat-attach:hover{background:#e3f2ff}.chat-media{display:block;width:min(260px,100%);border:0;background:transparent;padding:0;margin:6px 0 7px;text-align:left;cursor:pointer}.chat-media img{display:block;width:100%;max-height:220px;object-fit:cover;border-radius:12px;border:1px solid rgba(0,0,0,.07)}.chat-media span{display:block;font-size:9px;color:#6c8192;margin-top:3px}.bubble.me .chat-media span{text-align:right}.bubble-text{white-space:pre-wrap;overflow-wrap:anywhere}.chat-image-preview{margin:0 10px 8px;padding:8px;background:#f3f9fe;border:1px solid #d7e9f7;border-radius:13px;display:grid;grid-template-columns:54px 1fr auto;gap:9px;align-items:center}.chat-image-preview[hidden]{display:none}.chat-image-preview img{width:54px;height:48px;border-radius:9px;object-fit:cover}.chat-image-preview div{display:grid;gap:2px}.chat-image-preview b{font-size:10px;color:#214a68}.chat-image-preview small{font-size:9px;color:#718798}.chat-image-preview button{width:27px;height:27px;border-radius:50%;border:0;background:#fff;color:#6b8192;font-size:18px;cursor:pointer}.chat-storage-note{padding:0 11px 9px;color:#8a9aa6;font-size:8.5px;text-align:center}.chat-photo-request{margin:0 10px 8px;border:1px dashed #b8d9f5;background:#f6fbff;color:#27688f;padding:8px 10px;border-radius:11px;font-size:9px;font-weight:850;cursor:pointer}.chat-image-view{text-align:center}.chat-image-view img{max-width:100%;max-height:72vh;border-radius:17px;object-fit:contain;background:#edf3f8}.chat-image-view p{font-size:10px;color:#738696}
@media(max-width:620px){.assigned-pro.identity-card{grid-template-columns:auto 1fr;padding:13px}.assigned-photo{width:70px;height:70px;border-radius:20px}.assigned-pro.identity-card .contact-actions{grid-column:1/-1;margin:4px 0 0;width:100%;justify-content:flex-start}.identity-note{font-size:8.5px}.rating-stars .star-btn{font-size:34px}.history-card{min-width:270px}.chat-messages{height:245px}.chat-form{gap:6px;padding:8px}.chat-attach,.send-chat{width:40px;height:40px}.chat-form input{padding:9px 10px}.chat-storage-note{font-size:8px}}

/* v0.14 — modo servicio con un solo mapa + adjuntos de chat más visibles */
#customerDiscovery[hidden],#customerDiscoveryExtras[hidden],#proDiscovery[hidden]{display:none!important}
.single-map-service{max-width:100%;scroll-margin-top:88px}.active-service-focus{scroll-margin-top:88px}.active-service-title{align-items:center}.active-service-title .eyebrow{display:block;margin-bottom:3px}.active-service-title h2{margin:0;font-size:20px}
.service-route-primary{margin-top:14px;border-color:#c9e2f5;box-shadow:0 14px 36px rgba(10,78,132,.12)}.tracking-map-primary{height:430px!important}.active-route-center{position:absolute;z-index:35;right:14px;top:14px;width:42px;height:42px;border:1px solid #d8e8f4;border-radius:14px;background:rgba(255,255,255,.96);color:#087ff5;box-shadow:0 8px 22px rgba(18,70,105,.13);font-size:19px;font-weight:900;cursor:pointer;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
body.service-tracking-customer #currentWrap,body.service-tracking-professional #activeJob{animation:serviceFocusIn .24s ease-out}@keyframes serviceFocusIn{from{opacity:.4;transform:translateY(8px)}to{opacity:1;transform:none}}
.chat-attach-guide{margin:0 10px 8px;padding:9px 10px;border:1px solid #d9eaf7;border-radius:13px;background:#f7fbff;display:flex;align-items:center;gap:9px}.chat-attach-guide>span{width:34px;height:34px;border-radius:11px;background:#e7f4ff;display:grid;place-items:center;flex:0 0 auto}.chat-attach-guide b{display:block;font-size:10px;color:#214a68}.chat-attach-guide small{display:block;margin-top:2px;font-size:8.5px;line-height:1.35;color:#748998}.chat-attach-wide{width:auto!important;min-width:122px;padding:0 11px;display:flex!important;align-items:center;justify-content:center;gap:6px}.chat-attach-wide b{font-size:10px;white-space:nowrap}.chat-attach-wide span{font-size:17px}.chat-storage-note{line-height:1.35}
@media(max-width:620px){.single-map-service,.active-service-focus{scroll-margin-top:68px}.tracking-map-primary{height:min(48dvh,390px)!important;min-height:310px}.active-route-center{right:10px;top:10px;width:40px;height:40px;border-radius:13px}.active-service-title{margin-left:0!important;margin-right:0!important}.active-service-title h2{font-size:18px}.chat-attach-guide{padding:8px;margin:0 8px 7px}.chat-attach-guide small{font-size:8px}.chat-attach-wide{min-width:108px!important;padding:0 9px}.chat-attach-wide b{font-size:9px}.chat-form input{min-width:0}}
@media(max-width:390px){.chat-attach-wide{min-width:44px!important;width:44px!important;padding:0}.chat-attach-wide b{display:none}.chat-attach-guide small strong{font-weight:900}}


/* v0.15 — reputación pública, tiempos de historial y cámara/galería */
.rating-badge small{font-size:9px;font-weight:850;opacity:.72}.rating-badge.new-rating{background:#f2f6f9;color:#617689}.history-times{display:grid;gap:3px;margin-top:6px;padding:7px 8px;border-radius:10px;background:#f6faff;border:1px solid #e0edf7}.history-times span{font-size:9px;color:#62798b;line-height:1.35}.history-times b{color:#274963;font-weight:850}.chat-photo-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px;padding:0 10px 8px}.chat-photo-action{min-height:48px;border:1px solid #d5e8f7;border-radius:13px;background:#f7fbff;color:#256487;display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:8px;align-items:center;padding:7px 10px;cursor:pointer}.chat-photo-action:hover{background:#edf7ff;border-color:#b8dcf8}.chat-photo-action>span{grid-row:1/3;font-size:21px}.chat-photo-action b{font-size:10px;color:#164c70}.chat-photo-action small{font-size:8px;color:#71899b}.chat-photo-action.camera{background:#eef8ff;color:#087ff5}.chat-form{padding-top:8px}.history-rating span{max-width:190px}
@media(max-width:420px){.chat-photo-actions{grid-template-columns:1fr 1fr;padding:0 8px 7px}.chat-photo-action{padding:7px 8px;column-gap:6px}.chat-photo-action>span{font-size:19px}.chat-photo-action b{font-size:9px}.chat-photo-action small{font-size:7.5px}.history-times span{font-size:8.5px}}

/* v0.16 — destino del servicio: dirección escrita o ubicación GPS */
.destination-card{display:grid;gap:10px;padding:12px;border:1px solid #dbe9f4;border-radius:18px;background:linear-gradient(145deg,#fff,#f8fbfe)}
.destination-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.destination-head strong{display:block;margin-top:2px;color:#173d59;font-size:14px}.destination-head small{display:block;margin-top:2px;color:#72889a;font-size:9px;line-height:1.35}.destination-status{flex:0 0 auto;padding:6px 9px;border-radius:999px;font-size:9px;font-weight:900;background:#eaf5ff;color:#087ff5}.destination-status.address{background:#eef8f2;color:#19855b}
.destination-tabs{display:grid;grid-template-columns:1fr 1fr;gap:7px}.destination-tab{min-height:56px;border:1px solid #dce8f1;background:#fff;border-radius:14px;padding:8px 9px;display:flex;align-items:center;gap:8px;text-align:left;cursor:pointer}.destination-tab>span{width:34px;height:34px;border-radius:11px;background:#f1f7fb;display:grid;place-items:center;font-size:18px;flex:0 0 auto}.destination-tab div{display:grid;gap:1px}.destination-tab b{font-size:10px;color:#244963}.destination-tab small{font-size:8px;color:#7d90a0}.destination-tab.active{border-color:#82c2ff;background:#f2f8ff;box-shadow:0 5px 17px rgba(8,128,248,.10)}.destination-tab.active>span{background:#fff;color:#087ff5}
.destination-pane[hidden]{display:none!important}.destination-pane{display:grid;gap:8px}.address-lookup-row{display:grid;grid-template-columns:1fr auto;gap:6px}.address-lookup-row .btn{min-width:80px}.field-help{display:block;margin-top:4px;color:#8294a2;font-size:8.5px;line-height:1.35}.optional{font-weight:600;color:#93a2ad;font-size:8px}.resolved-address{display:flex;align-items:flex-start;gap:8px;padding:9px 10px;border:1px dashed #bfd9ee;border-radius:12px;background:#f8fbfe;color:#6d8495}.resolved-address>span{width:27px;height:27px;border-radius:9px;background:#eef5fa;display:grid;place-items:center;flex:0 0 auto}.resolved-address div{display:grid;gap:2px}.resolved-address b{font-size:9.5px;color:#496b83}.resolved-address small{font-size:8px;line-height:1.35}.resolved-address.ready{border-style:solid;border-color:#bfe8d5;background:#f2fbf7;color:#16835a}.resolved-address.ready>span{background:#dcf6e9;color:#16835a}.resolved-address.ready b{color:#176d50}
.gps-destination-button{width:100%;border:1px solid #d6e8f7;background:#f5faff;border-radius:14px;padding:10px;display:grid;grid-template-columns:auto 1fr auto;gap:9px;align-items:center;text-align:left;cursor:pointer;color:#24516f}.gps-destination-button>span{width:36px;height:36px;border-radius:12px;background:#e5f3ff;display:grid;place-items:center;font-size:19px}.gps-destination-button div{display:grid;gap:2px}.gps-destination-button b{font-size:10.5px}.gps-destination-button small{font-size:8px;color:#74899a}.gps-destination-button i{font-style:normal;color:#087ff5;font-size:19px}
.geocode-results{display:grid;gap:8px;margin-top:14px}.geocode-result{width:100%;border:1px solid #dfeaf2;background:#fff;border-radius:15px;padding:10px 11px;display:grid;grid-template-columns:auto 1fr auto;gap:9px;align-items:center;text-align:left;cursor:pointer}.geocode-result:hover{border-color:#a8d4fb;background:#f6fbff}.geocode-result>span{width:36px;height:36px;border-radius:12px;background:#edf7ff;display:grid;place-items:center}.geocode-result div{min-width:0;display:grid;gap:2px}.geocode-result b{font-size:10.5px;color:#1e4967}.geocode-result small{font-size:8.5px;color:#74899a;line-height:1.35}.geocode-result i{font-style:normal;color:#087ff5;font-weight:900}.geocode-credit{margin-top:10px;color:#8c9ba6;font-size:8px;text-align:center}
@media(max-width:620px){.destination-card{padding:10px;border-radius:16px}.destination-head strong{font-size:12.5px}.destination-tabs{grid-template-columns:1fr 1fr}.destination-tab{min-height:52px;padding:7px}.destination-tab>span{width:31px;height:31px;font-size:17px}.destination-tab b{font-size:9.5px}.destination-tab small{font-size:7.5px}.address-lookup-row{grid-template-columns:1fr auto}.address-lookup-row .btn{min-width:72px;padding-left:8px;padding-right:8px}.destination-pane .request-mini-grid{grid-template-columns:1fr!important}.resolved-address small{font-size:7.8px}}
@media(max-width:390px){.destination-tabs{grid-template-columns:1fr}.destination-tab{min-height:48px}.destination-tab small{display:block}.address-lookup-row{grid-template-columns:1fr}.address-lookup-row .btn{width:100%}}
.manual-pin-button{width:100%;border:1px dashed #b8d8f2;background:#f7fbff;color:#2d668f;border-radius:12px;padding:8px 10px;font-size:9px;font-weight:850;cursor:pointer;text-align:center}.manual-pin-button:hover{background:#edf7ff;border-color:#86c2f3}
/* v0.17: una sola vista de mapa durante servicio + reputación y foto robusta */
.assigned-photo{position:relative;overflow:hidden}.assigned-photo .professional-photo-img{width:100%;height:100%;object-fit:cover;display:block}.assigned-photo .pro-photo-fallback{width:100%;height:100%;display:grid;place-items:center;background:linear-gradient(145deg,#eef7ff,#dfeeff);font-size:34px}.assigned-photo .pro-photo-fallback[hidden]{display:none!important}
.rating-professional-mini{display:flex;align-items:center;gap:10px;margin:10px 0 2px;padding:9px 10px;border:1px solid #e0ecf5;border-radius:14px;background:#f8fbfe}.rating-professional-photo{width:48px;height:48px;border-radius:14px;overflow:hidden;background:#edf6ff;flex:0 0 auto}.rating-professional-photo .professional-photo-img{width:100%;height:100%;object-fit:cover;display:block}.rating-professional-photo .pro-photo-fallback{width:100%;height:100%;display:grid;place-items:center;font-size:22px}.rating-professional-photo .pro-photo-fallback[hidden]{display:none!important}.rating-professional-mini>div:last-child{display:grid;gap:4px}.rating-professional-mini>div:last-child>b{font-size:12px;color:#173a54}.rating-professional-mini .trust-row{gap:5px}
body.service-tracking-customer #customerDiscovery,body.service-tracking-customer #customerDiscoveryExtras,body.service-tracking-professional #proDiscovery{display:none!important}


/* v0.20 — chat compacto tipo mensajería + cámara directa */
.chat-attach-guide,.chat-photo-actions{display:none!important}.chat-form-whatsapp{display:grid!important;grid-template-columns:40px 40px minmax(0,1fr) 42px;align-items:center;gap:6px;padding:8px 9px!important;border-top:1px solid #eef3f7;background:#fff}.chat-tool-button{width:40px;height:40px;border:0;border-radius:50%;display:grid;place-items:center;background:#f0f5f8;color:#315f7d;font-size:19px;cursor:pointer;padding:0;line-height:1}.chat-tool-button:hover{background:#e5f2fb;color:#087ff5}.chat-tool-button.camera{font-size:18px}.chat-form-whatsapp>input[type="text"],.chat-form-whatsapp>input:not([type]){min-width:0}.chat-form-whatsapp #chatInput{min-width:0}.chat-form-whatsapp input[id^="chatInput-"]{height:40px;border-radius:20px!important;background:#f5f8fa!important;border:1px solid #e0e9ef!important;padding:0 14px!important}.chat-form-whatsapp .send-chat{width:40px;height:40px;border-radius:50%}.chat-image-preview{margin:8px 9px!important}.chat-storage-note{padding:0 12px 8px!important;font-size:8px!important;color:#91a0aa!important}.camera-capture-overlay{position:fixed;inset:0;z-index:6000;background:rgba(4,20,31,.82);backdrop-filter:blur(8px);display:grid;place-items:center;padding:14px}.camera-capture-sheet{width:min(560px,100%);background:#0b1d29;border-radius:24px;overflow:hidden;box-shadow:0 28px 90px rgba(0,0,0,.45);color:#fff}.camera-capture-head{display:flex;align-items:center;justify-content:space-between;padding:14px 15px;background:#102736}.camera-capture-head>div{display:grid;gap:2px}.camera-capture-head b{font-size:13px}.camera-close{width:34px;height:34px;border:0;border-radius:50%;background:#ffffff18;color:#fff;font-size:24px;cursor:pointer}.camera-stage{position:relative;aspect-ratio:4/3;background:#02090e;display:grid;place-items:center;overflow:hidden}.camera-stage video{width:100%;height:100%;object-fit:cover;display:block}.camera-status{position:absolute;inset:auto 14px 14px;background:#071a27cc;border-radius:12px;padding:8px 10px;font-size:10px;text-align:center}.camera-actions{display:grid;grid-template-columns:1fr 76px 1fr;align-items:center;gap:10px;padding:14px;background:#102736}.camera-actions button{border:0;cursor:pointer}.camera-switch,.camera-cancel{background:#ffffff12;color:#e6f2f8;border-radius:12px!important;padding:10px 11px;font-size:10px;font-weight:800}.camera-shot{width:68px;height:68px;border-radius:50%;justify-self:center;background:#fff;color:#fff;border:6px solid #ffffff55!important;box-shadow:inset 0 0 0 4px #0b1d29;font-size:0}.camera-shot:disabled{opacity:.4}.camera-open{overflow:hidden!important}
@media(max-width:620px){.chat-form-whatsapp{grid-template-columns:38px 38px minmax(0,1fr) 40px;gap:5px;padding:7px 8px!important}.chat-tool-button{width:38px;height:38px}.chat-form-whatsapp .send-chat{width:38px;height:38px}.camera-capture-overlay{padding:0;place-items:end center}.camera-capture-sheet{border-radius:24px 24px 0 0;width:100%}.camera-stage{aspect-ratio:3/4;max-height:70dvh}.camera-actions{grid-template-columns:1fr 72px 1fr}.camera-shot{width:64px;height:64px}}


/* ==========================================================
   JUICIOSOS v0.25 — SCROLL MOVIL NATURAL, SIN BARRAS VISIBLES
   ========================================================== */
html,body,.app-shell,.content,.request-sheet,.modal-card,.chat-messages,.history-strip,.pro-stats-mini,.fresh-sheet{scrollbar-width:none;-ms-overflow-style:none}
html::-webkit-scrollbar,body::-webkit-scrollbar,.app-shell::-webkit-scrollbar,.content::-webkit-scrollbar,.request-sheet::-webkit-scrollbar,.modal-card::-webkit-scrollbar,.chat-messages::-webkit-scrollbar,.history-strip::-webkit-scrollbar,.pro-stats-mini::-webkit-scrollbar,.fresh-sheet::-webkit-scrollbar{width:0!important;height:0!important;display:none!important;background:transparent!important}
html,body{overflow-y:auto!important;overflow-x:hidden!important;-webkit-overflow-scrolling:touch}
@media(max-width:620px){
  body{overscroll-behavior-y:auto!important;touch-action:pan-y!important}
  .app-shell,.content{overflow:visible!important}
  .request-sheet,.fresh-sheet,.modal-card,.chat-messages{overscroll-behavior-y:auto!important;-webkit-overflow-scrolling:touch!important;touch-action:pan-y!important}
  .maplibregl-map,.leaflet-container{touch-action:pan-y pinch-zoom!important}
}

/* ==========================================================
   JUICIOSOS v0.21 — CIERRE DE SERVICIO + PRIVACIDAD
   ========================================================== */
.service-finished-modal{text-align:center;max-width:560px;margin:auto;padding:8px 6px}
.finished-check{width:72px;height:72px;border-radius:50%;display:grid;place-items:center;margin:0 auto 14px;background:linear-gradient(145deg,#e9fff4,#d8f8e8);border:1px solid #b8efd4;color:#0a9a58;font-size:34px;font-weight:1000;box-shadow:0 12px 34px rgba(10,154,88,.12)}
.service-finished-modal h2{margin:6px 0 10px;font-size:28px;color:#0d2f49}
.service-finished-modal>p{color:#60798e;line-height:1.55}
.finished-rating-summary{display:flex;align-items:center;gap:12px;text-align:left;margin:18px auto;padding:13px 15px;max-width:410px;border:1px solid #d9e9f7;background:#f7fbff;border-radius:18px}
.finished-rating-summary>span{width:42px;height:42px;border-radius:14px;display:grid;place-items:center;background:#fff4ce;font-size:22px}
.finished-rating-summary div{display:grid;gap:2px}.finished-rating-summary b{color:#173d59}.finished-rating-summary small{color:#70869a}
.finished-note{font-size:12px}.service-finished-modal .btn{min-width:240px;margin-top:5px}
.legal-page{max-width:980px;margin:30px auto;padding:0 18px 60px}.legal-hero{padding:24px;border-radius:24px;background:linear-gradient(145deg,#eef7ff,#fff);border:1px solid #d9e9f8;margin-bottom:16px}.legal-hero h1{margin:5px 0 8px;color:#0d304b}.legal-hero p{color:#5f778b;line-height:1.6}.legal-nav{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.legal-nav a{padding:8px 10px;border-radius:999px;background:#fff;border:1px solid #dbe9f5;color:#0877e7;font-size:12px;font-weight:850;text-decoration:none}.legal-section{background:#fff;border:1px solid #e2ebf3;border-radius:20px;padding:20px;margin:12px 0;box-shadow:0 8px 24px rgba(18,64,98,.05)}.legal-section h2{margin-top:0;color:#173d59}.legal-section h3{color:#285d84}.legal-section p,.legal-section li{color:#536e84;line-height:1.65}.legal-callout{border-left:4px solid #087ff5;background:#f3f9ff;padding:12px 14px;border-radius:12px;color:#3f617d}.legal-warning{border-left-color:#f0a100;background:#fff9e8}.privacy-table{display:grid;gap:8px}.privacy-row{display:grid;grid-template-columns:1.05fr 1.6fr 1.6fr;gap:10px;padding:11px;border:1px solid #e8eef4;border-radius:14px}.privacy-row b{color:#173d59}.privacy-row span{color:#60788d;font-size:12px}.privacy-form{display:grid;gap:12px}.privacy-form label{display:grid;gap:5px;font-weight:800;color:#234c6b}.privacy-form input,.privacy-form textarea,.privacy-form select{width:100%;padding:12px;border:1px solid #ccdfef;border-radius:12px;background:#fff}.privacy-form button{justify-self:start}
@media(max-width:650px){.privacy-row{grid-template-columns:1fr}.service-finished-modal h2{font-size:24px}}

/* v0.23 - diagnóstico visible de conectividad Android */
.app-connection-error{max-width:640px;margin:56px auto;text-align:center;padding:30px}.connection-error-icon{width:68px;height:68px;border-radius:22px;display:grid;place-items:center;margin:0 auto 14px;background:#eaf4ff;font-size:31px}.app-connection-error h2{font-size:clamp(24px,5vw,34px);margin:8px 0 10px}.app-connection-error p{color:var(--muted);line-height:1.6}.connection-server{display:grid;gap:5px;text-align:left;background:#f6faff;border:1px solid var(--line);padding:12px 14px;border-radius:14px;margin:18px 0}.connection-server small{color:var(--muted);font-weight:800}.connection-server code{white-space:normal;word-break:break-all;color:var(--blue2);font-weight:800}.connection-help{display:grid;gap:7px;text-align:left;margin-top:20px;padding:15px;border-radius:15px;background:#fff9e8;border:1px solid #ffe2a8;color:#6e5200;font-size:12px}.connection-help b{font-size:13px}.app-connection-error .row{justify-content:center}@media(max-width:650px){.app-connection-error{margin:24px auto;padding:22px 18px}.connection-error-icon{width:58px;height:58px;border-radius:18px}}


/* ==========================================================
   JUICIOSOS v0.26 — SCROLL MOVIL FLUIDO / UNA SOLA SUPERFICIE
   En teléfono eliminamos el scroll anidado del formulario.
   La página completa se desplaza con un solo dedo y las barras
   permanecen invisibles. El mapa sigue siendo informativo sin
   bloquear el gesto vertical del documento.
   ========================================================== */
@media (max-width:620px){
  html,
  body{
    height:auto!important;
    min-height:100%!important;
    overflow-x:hidden!important;
    overflow-y:auto!important;
    scroll-behavior:auto!important;
    overscroll-behavior-y:auto!important;
    touch-action:auto!important;
    -webkit-overflow-scrolling:touch!important;
  }

  body{
    position:relative!important;
    width:100%!important;
  }

  .app-shell,
  .content{
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    overflow:visible!important;
    overscroll-behavior:visible!important;
    touch-action:auto!important;
  }

  /* El descubrimiento deja de ser una pantalla cerrada de 100dvh.
     Mapa + solicitud forman parte del documento y se desplazan juntos. */
  .customer-map-stage{
    display:flex!important;
    flex-direction:column!important;
    position:relative!important;
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    overflow:visible!important;
    isolation:isolate;
    background:#eef6fc!important;
  }

  .customer-map-stage .map-hero{
    position:relative!important;
    order:1;
    flex:0 0 auto!important;
    height:clamp(300px,44dvh,410px)!important;
    min-height:300px!important;
    max-height:410px!important;
  }

  /* El formulario ya NO tiene scroll propio. Así desaparece la sensación
     de tener que arrastrar una barra lateral o acertar sobre un contenedor. */
  .customer-map-stage .request-sheet,
  .customer-map-stage .request-sheet.fresh-sheet{
    order:2;
    position:relative!important;
    inset:auto!important;
    top:auto!important;
    right:auto!important;
    bottom:auto!important;
    left:auto!important;
    width:calc(100% - 16px)!important;
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    margin:-24px 8px 14px!important;
    padding:14px 13px calc(16px + env(safe-area-inset-bottom))!important;
    overflow:visible!important;
    overscroll-behavior:auto!important;
    touch-action:auto!important;
    scroll-behavior:auto!important;
    -webkit-overflow-scrolling:auto!important;
    border-radius:25px!important;
    box-shadow:0 16px 42px rgba(16,55,88,.18)!important;
  }

  .customer-map-stage .request-sheet .sheet-handle{
    display:none!important;
  }

  .customer-map-stage .request-sheet-head{
    position:static!important;
    top:auto!important;
  }

  .customer-map-stage .request-sheet .request-now,
  .customer-map-stage .request-sheet.fresh-sheet .request-now{
    position:static!important;
    bottom:auto!important;
    box-shadow:0 9px 20px rgba(8,128,248,.15)!important;
  }

  /* Evita que el mapa robe el gesto vertical. MapLibre cooperativeGestures
     sigue permitiendo la interacción propia del mapa cuando corresponde. */
  .maplibregl-map,
  .maplibregl-canvas-container,
  .maplibregl-canvas,
  .leaflet-container{
    touch-action:pan-y pinch-zoom!important;
    overscroll-behavior:auto!important;
  }

  /* Solo los componentes que necesitan un historial interno conservan
     scroll propio (chat/modal). También sin barra visible. */
  .modal-card,
  .chat-messages{
    overflow-y:auto!important;
    -webkit-overflow-scrolling:touch!important;
    touch-action:pan-y!important;
    overscroll-behavior-y:contain!important;
  }

  .fresh-sheet{
    max-height:none!important;
  }
}

@media (max-width:390px){
  .customer-map-stage .map-hero{
    height:clamp(285px,42dvh,360px)!important;
    min-height:285px!important;
  }
  .customer-map-stage .request-sheet,
  .customer-map-stage .request-sheet.fresh-sheet{
    margin-top:-20px!important;
  }
}


/* ==========================================================
   JUICIOSOS v0.27 — MAPA LATAM + PRODUCCIÓN TEMPRANA
   ========================================================== */
/* El selector inferior Cliente/Profesional se elimina del flujo real:
   el rol se resuelve por la cuenta al iniciar sesión. */
.role-nav{display:none!important}
.app-shell{padding-bottom:18px!important}
@media(max-width:620px){.app-shell{padding-bottom:0!important}.content{padding-bottom:24px!important}}

/* Atribución del mapa: permanece accesible por licencia, pero deja de ser
   una franja sobre la interfaz. MapLibre la muestra como botón compacto. */
.maplibregl-ctrl-top-left .maplibregl-ctrl-attrib{margin:8px 0 0 8px!important}
.maplibregl-ctrl-attrib.maplibregl-compact{
  border:1px solid rgba(16,47,73,.10)!important;
  border-radius:11px!important;
  background:rgba(255,255,255,.92)!important;
  box-shadow:0 8px 22px rgba(16,47,73,.12)!important;
  backdrop-filter:blur(10px);
  max-width:30px!important;
  min-height:30px!important;
  overflow:visible!important;
}
.maplibregl-ctrl-attrib.maplibregl-compact.maplibregl-compact-show{max-width:min(86vw,460px)!important;padding:6px 32px 6px 8px!important}
.maplibregl-ctrl-attrib.maplibregl-compact:not(.maplibregl-compact-show) .maplibregl-ctrl-attrib-inner{display:none!important}
.maplibregl-ctrl-attrib-button{width:30px!important;height:30px!important;opacity:.82}
.maplibregl-ctrl-attrib-inner{font-size:9px!important;line-height:1.35!important;color:#526b7d!important;white-space:normal!important}
.maplibregl-ctrl-attrib-inner a{color:#2b658e!important}
/* Fallback Leaflet: pequeño y claro, nunca una barra de ancho completo. */
.leaflet-control-attribution{max-width:190px!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;background:rgba(255,255,255,.90)!important;border-radius:9px!important;font-size:7.5px!important;padding:3px 6px!important}

/* Alerta fuerte de trabajo para profesional */
.job-alert-backdrop{position:fixed;inset:0;z-index:4200;background:rgba(7,29,47,.48);backdrop-filter:blur(5px);padding:max(82px,calc(env(safe-area-inset-top) + 72px)) 14px 20px;display:flex;align-items:flex-start;justify-content:center}
.job-alert-backdrop[hidden]{display:none}
.job-alert-card{position:relative;width:min(520px,100%);background:#fff;border-radius:26px;padding:22px;box-shadow:0 28px 80px rgba(3,38,70,.34);border:1px solid rgba(8,128,248,.13);animation:jobAlertIn .22s ease-out}
.job-alert-close{position:absolute;right:12px;top:12px;width:36px;height:36px;border:0;border-radius:50%;background:#eef6fd;color:#385a72;font-size:24px;cursor:pointer}
.job-alert-pulse{width:62px;height:62px;border-radius:22px;display:grid;place-items:center;background:#eaf5ff;margin-bottom:10px;position:relative}
.job-alert-pulse:before{content:'';position:absolute;inset:-8px;border-radius:28px;border:2px solid rgba(8,128,248,.22);animation:jobPulse 1.45s infinite}
.job-alert-pulse span{font-size:30px}.job-alert-card h2{margin:3px 42px 6px 0;color:#102f49}.job-alert-card p{margin:0 0 13px;color:#5c7487;line-height:1.5}
.job-alert-facts{display:flex;gap:7px;flex-wrap:wrap;margin:10px 0 15px}.job-alert-facts span{padding:7px 10px;border-radius:999px;background:#eef7ff;color:#176aa9;font-size:11px;font-weight:800}.job-alert-facts b{font-size:14px}.job-alert-actions{display:grid;grid-template-columns:.85fr 1.15fr;gap:9px}.job-alert-card>small{display:block;margin-top:11px;color:#7890a2;line-height:1.4}
@keyframes jobAlertIn{from{opacity:0;transform:translateY(-16px) scale(.98)}to{opacity:1;transform:none}}@keyframes jobPulse{0%{opacity:.8;transform:scale(.84)}100%{opacity:0;transform:scale(1.18)}}

.gps-required-modal{text-align:center}.gps-required-icon{width:76px;height:76px;border-radius:26px;background:#eaf5ff;display:grid;place-items:center;font-size:38px;margin:2px auto 12px}.gps-required-modal .notice{text-align:left;margin:14px 0}.gps-required-modal .row{justify-content:center}

@media(max-width:620px){
  .job-alert-backdrop{padding-top:max(72px,calc(env(safe-area-inset-top) + 62px));align-items:flex-start}
  .job-alert-card{padding:18px;border-radius:24px}.job-alert-actions{grid-template-columns:1fr}.job-alert-card h2{font-size:22px}
  .maplibregl-ctrl-top-left .maplibregl-ctrl-attrib{margin:7px 0 0 7px!important}
}


/* v0.27.1 — cierre de tracking y confirmación bilateral obligatoria */
.tracking-ended-card{display:flex;align-items:center;gap:12px;margin:14px 0;padding:14px 15px;border-radius:18px;background:#effbf6;border:1px solid #bcebd6;color:#155f46}.tracking-ended-card>span{width:38px;height:38px;display:grid;place-items:center;border-radius:50%;background:#d9f7e9;font-size:20px;flex:0 0 auto}.tracking-ended-card div{display:grid;gap:3px}.tracking-ended-card b{font-size:14px}.tracking-ended-card small{color:#55766a;line-height:1.45}.tracking-ended-card.review{background:#fff7e8;border-color:#f0d28b;color:#76520a}.tracking-ended-card.review>span{background:#ffedc2}.tracking-ended-card.review small{color:#826c3c}
.mandatory-outcome-modal{display:grid;gap:14px}.mandatory-outcome-lock{width:58px;height:58px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,#0b83f8,#0068d9);color:#fff;font-size:28px;box-shadow:0 12px 28px rgba(8,128,248,.22)}.mandatory-outcome-modal h2{margin:0!important;font-size:26px}.mandatory-outcome-modal .subtitle{margin:0!important;line-height:1.55}.mandatory-outcome-summary{display:grid;grid-template-columns:auto 1fr;gap:13px;align-items:start;padding:15px;border-radius:18px;border:1px solid #cfe4f7;background:#f7fbff}.mandatory-outcome-summary.agreement{border-color:#bcebd6;background:#f2fcf7}.mandatory-outcome-summary.diagnostic{border-color:#f2d9a2;background:#fffaf0}.mandatory-outcome-icon{width:46px;height:46px;border-radius:14px;display:grid;place-items:center;background:#fff;font-size:24px;box-shadow:0 5px 14px rgba(30,70,100,.08)}.mandatory-outcome-summary h3{margin:3px 0 4px;color:#173d59}.mandatory-outcome-summary p{margin:0;color:#62798d;line-height:1.48;font-size:13px}.mandatory-outcome-question{display:grid;gap:4px;padding:13px 14px;border-radius:15px;background:#eef7ff;color:#174f7c}.mandatory-outcome-question small{color:#66839c}.mandatory-outcome-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.mandatory-outcome-actions .btn{min-height:50px}.outcome-dispute-box{padding:14px;border:1px solid #ffd0cc;border-radius:17px;background:#fff7f6}.outcome-dispute-box[hidden]{display:none}.mandatory-outcome-foot{margin:0;text-align:center;color:#75899a;font-size:11px}.outcome-wait-card{max-width:820px;margin:auto}.modal-backdrop:has(.mandatory-outcome-modal){background:rgba(7,28,45,.72);backdrop-filter:blur(8px)}
@media(max-width:600px){.mandatory-outcome-modal h2{font-size:23px}.mandatory-outcome-actions{grid-template-columns:1fr}.mandatory-outcome-summary{grid-template-columns:auto 1fr}.modal-card:has(.mandatory-outcome-modal){width:calc(100% - 12px);max-height:94dvh;padding:20px;border-radius:24px}.tracking-ended-card{align-items:flex-start}}


/* v0.27.2 — temporalidad real: ahora / hoy flexible / programado */
.timing-field{margin-top:2px}.timing-choice-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.timing-choice{border:1px solid #d9e7f3;background:#fff;border-radius:16px;padding:12px;text-align:left;display:flex;gap:9px;align-items:flex-start;color:var(--ink);cursor:pointer;min-height:82px}.timing-choice>span{font-size:22px}.timing-choice b,.timing-choice small{display:block}.timing-choice small{font-size:10px;color:var(--muted);margin-top:3px;line-height:1.35}.timing-choice.active{border-color:var(--blue);background:#f1f8ff;box-shadow:0 0 0 3px rgba(8,128,248,.09)}.scheduled-fields{margin-top:10px;padding:14px;border:1px solid #cfe4f6;border-radius:17px;background:#f8fcff}.schedule-head{display:flex;gap:10px;align-items:center;margin-bottom:11px}.schedule-head>span{font-size:25px}.schedule-head b,.schedule-head small{display:block}.schedule-head small,.schedule-hint{color:var(--muted);font-size:11px;line-height:1.45}.request-mini-grid.three{grid-template-columns:1.15fr .85fr .85fr}.schedule-banner,.reservation-confirmed-card{display:flex;gap:11px;align-items:center;border:1px solid #cfe4f6;background:#f5fbff;border-radius:16px;padding:12px 14px;margin:10px 0}.schedule-banner>span,.reservation-confirmed-card>span{font-size:25px}.schedule-banner b,.schedule-banner small,.reservation-confirmed-card b,.reservation-confirmed-card strong,.reservation-confirmed-card small{display:block}.schedule-banner small,.reservation-confirmed-card small{color:var(--muted);font-size:11px;margin-top:3px}.reservation-confirmed-card strong{color:#0b6fcf;margin-top:2px}.reservation-confirmed-card.today{background:#fffaf0;border-color:#f4ddb0}.scheduled-opportunity{border-style:dashed}.scheduled-reservations{margin-bottom:16px}.compact-title{margin-top:4px}.scheduled-reservation-card{background:linear-gradient(180deg,#fff,#f7fbff)}.schedule-chip{font-size:11px;font-weight:850;background:#eaf4ff;color:#096ebf;padding:7px 9px;border-radius:999px}.reservation-actions{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-top:12px}.reservation-actions small{color:var(--muted);max-width:60%;line-height:1.4}.status.reserved{background:#eaf4ff;color:#0a6bbd}.eta-choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:14px 0}.eta-choice-grid button{border:1px solid #d2e4f4;background:#f8fcff;border-radius:14px;padding:13px;font-weight:850;color:#16425f;cursor:pointer}.eta-choice-grid button:hover{border-color:var(--blue);background:#eef7ff}.pre-route-card .wide{width:100%;margin:12px 0}.scheduled-search .radar{opacity:.72}.job-alert-card.today-flex{border-top:5px solid #f2b13f}.job-alert-card.urgent-now{border-top:5px solid #f04438}
@media(max-width:650px){.timing-choice-grid{grid-template-columns:1fr}.timing-choice{min-height:auto;align-items:center}.request-mini-grid.three{grid-template-columns:1fr 1fr}.request-mini-grid.three .field:first-child{grid-column:1/-1}.reservation-actions{align-items:stretch;flex-direction:column}.reservation-actions small{max-width:none}.eta-choice-grid{grid-template-columns:1fr 1fr}}


/* v0.27.3 — acceso único por identidad y rol */
.access-gateway{max-width:820px;margin:18px auto 70px;text-align:center;background:linear-gradient(180deg,#fff,#f6fbff);border:1px solid #dcebf7;border-radius:32px;padding:32px;box-shadow:0 22px 64px rgba(14,84,148,.11)}.access-brand-mark{width:92px;height:92px;margin:0 auto 10px;border-radius:28px;background:#fff;display:grid;place-items:center;box-shadow:0 12px 34px rgba(8,128,248,.13)}.access-brand-mark img{width:78px;height:78px;object-fit:contain}.access-gateway h1{font-size:clamp(31px,7vw,48px);margin:7px 0 8px;color:#102f49}.access-lead{max-width:620px;margin:0 auto 21px;color:#5c7487;line-height:1.6}.access-main-actions{max-width:650px;margin:auto}.access-main{width:100%;min-height:52px;font-size:16px}.access-register-grid,.role-entry-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}.access-role-card,.role-entry-card{border:1px solid #d9e7f3;background:#fff;border-radius:18px;padding:15px;text-align:left;display:grid;grid-template-columns:auto 1fr auto;gap:11px;align-items:center;color:#173d59;cursor:pointer;box-shadow:0 5px 16px rgba(20,83,130,.04)}.access-role-card:hover,.role-entry-card:hover{border-color:#83bef1;background:#f8fcff}.access-role-card>span,.role-entry-card>span{width:44px;height:44px;border-radius:14px;background:#eaf5ff;display:grid;place-items:center;font-size:23px}.access-role-card.professional>span,.role-entry-card.professional>span{background:#eef9f5}.access-role-card b,.access-role-card small,.role-entry-card b,.role-entry-card small{display:block}.access-role-card small,.role-entry-card small{color:var(--muted);margin-top:3px;font-size:11px}.access-role-card i,.role-entry-card i{font-style:normal;color:var(--blue);font-size:20px}.access-rule{display:flex;gap:10px;text-align:left;max-width:650px;margin:16px auto 0;padding:13px 15px;border-radius:16px;background:#eef7ff;color:#45677f}.access-rule>span{width:28px;height:28px;flex:0 0 auto;border-radius:50%;background:#d8edff;color:#0873d5;display:grid;place-items:center;font-weight:900}.access-rule p{margin:0;font-size:12px;line-height:1.5}.access-test-card{max-width:650px;margin:18px auto 0;padding:15px;border:1px dashed #aacfeb;border-radius:18px;background:#f8fcff;text-align:left;display:flex;gap:16px;justify-content:space-between;align-items:center}.access-test-card h3{margin:2px 0 4px}.access-test-card p{margin:0;color:var(--muted);font-size:11px;line-height:1.4}.access-test-actions{display:flex;gap:7px;flex:0 0 auto}.session-strip{position:relative}.session-identity,.pro-session-identity{display:flex;align-items:center;gap:10px}.session-avatar{width:42px;height:42px;border-radius:14px;background:#eaf5ff;color:#0871cd;display:grid;place-items:center;font-weight:900;font-size:17px}.session-avatar.pro{background:#e9f8f2;color:#137653}.session-actions{flex-wrap:wrap}.pro-session-identity strong,.pro-session-identity small{display:block}.pro-session-identity small{color:var(--muted);margin-top:3px}.login-help-row{display:flex!important;justify-content:center;gap:16px;flex-wrap:wrap}.text-action{border:0;background:transparent;color:#0875d8;font-weight:800;font-size:12px;cursor:pointer;padding:5px}.role-entry-modal h2{margin:5px 0}.role-entry-grid{margin-top:16px}
@media(max-width:650px){.access-gateway{margin:5px auto 42px;padding:22px 14px;border-radius:26px}.access-brand-mark{width:78px;height:78px;border-radius:23px}.access-brand-mark img{width:66px;height:66px}.access-register-grid,.role-entry-grid{grid-template-columns:1fr}.access-test-card{display:block}.access-test-actions{margin-top:11px;display:grid;grid-template-columns:1fr 1fr}.session-strip{align-items:flex-start}.session-actions{justify-content:flex-end}.pro-hero .row{width:100%}.pro-hero .row .btn{flex:1}.pro-control{gap:12px}}


/* v0.28.1 — verificación profesional con cámara */
.professional-registration{display:grid;gap:2px}.identity-security-note{display:flex;gap:12px;align-items:flex-start;padding:14px;border:1px solid #bfe0fb;background:#f2f9ff;border-radius:18px}.identity-security-note>span{font-size:24px}.identity-security-note b,.identity-security-note small{display:block}.identity-security-note small{color:#587286;line-height:1.5;margin-top:3px}.identity-capture-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:11px}.identity-capture-card{border:1px solid #d7e6f2;border-radius:18px;padding:12px;background:#fbfdff;display:flex;flex-direction:column;gap:10px}.identity-capture-head{display:flex;justify-content:space-between;gap:8px;align-items:flex-start}.identity-capture-head b{font-size:13px;color:#173d59}.identity-capture-head b small{font-weight:700;color:#7c8e9d}.identity-capture-head span{display:block;font-size:10px;color:#718597;line-height:1.35;margin-top:2px}.identity-capture-state{font-size:9px!important;font-weight:900;color:#996400;background:#fff3d3;border-radius:999px;padding:5px 7px;white-space:nowrap}.identity-capture-state.ready{color:#087c50;background:#e5faef}.identity-capture-preview{aspect-ratio:4/3;border-radius:14px;overflow:hidden;background:#eef5fb;border:1px dashed #b8cede;position:relative;display:grid;place-items:center}.identity-capture-preview img{width:100%;height:100%;object-fit:cover}.identity-placeholder{text-align:center;padding:12px;color:#6c8294}.identity-placeholder>span{display:block;font-size:34px;margin-bottom:5px}.identity-placeholder small{font-size:10px;line-height:1.4}.identity-preview-ok{position:absolute;left:7px;right:7px;bottom:7px;padding:7px 9px;border-radius:10px;background:rgba(255,255,255,.92);backdrop-filter:blur(8px);box-shadow:0 4px 14px rgba(20,60,90,.12)}.identity-preview-ok b,.identity-preview-ok small{display:block}.identity-preview-ok b{font-size:11px;color:#087c50}.identity-preview-ok small{font-size:9px;color:#61798c;margin-top:2px}.identity-capture-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px}.identity-capture-actions .btn{font-size:11px;padding:9px}.identity-capture-actions .identity-repeat{grid-column:1/-1}.camera-guide{position:absolute;inset:0;pointer-events:none}.camera-guide.face{display:grid;place-items:center}.camera-guide.face:before{content:"";width:min(55vw,260px);height:min(72vw,340px);max-height:72%;border:3px solid rgba(255,255,255,.9);border-radius:48% 48% 43% 43%;box-shadow:0 0 0 9999px rgba(0,0,0,.18)}.camera-guide.document{display:grid;place-items:center;padding:18px}.camera-guide.document:before{content:"";width:min(82vw,520px);aspect-ratio:1.58;border:3px solid rgba(255,255,255,.95);border-radius:16px;box-shadow:0 0 0 9999px rgba(0,0,0,.17)}.camera-guide.document span{position:absolute;bottom:18px;background:rgba(10,35,55,.75);color:#fff;padding:7px 10px;border-radius:10px;font-size:11px}.camera-stage{position:relative;overflow:hidden}.camera-stage video{width:100%;height:100%;object-fit:cover}
@media(max-width:760px){.identity-capture-grid{grid-template-columns:1fr}.identity-capture-preview{aspect-ratio:16/10}.identity-capture-actions{grid-template-columns:1fr 1fr}.professional-registration .form-grid{grid-template-columns:1fr}.professional-registration .field{grid-column:1/-1}}

/* v0.28.2 · transparencia de portal y registro seguro */
.legal-request-note{margin-top:10px;padding:11px 12px;border-radius:13px;background:#f7fbff;border:1px solid #d9ebfb;color:#4f6a80;font-size:12px;line-height:1.55}
.legal-request-note a{color:#0b72d6;font-weight:700;text-decoration:none}
.intermediary-note strong{font-size:14px}
.professional-registration .row input[type="checkbox"]{flex:0 0 auto;margin-top:3px}

.status.fee_pending{background:#fff6dd;color:#9c6300}.fee-confirm-card strong{font-size:20px}.fee-confirm-card .row{align-items:stretch}.fee-confirm-card .btn{flex:1}


/* ==========================================================
   JUICIOSOS v0.28.5 — RESPONSIVE MOVIL REAL / SIN TEXTO CORTADO
   Capa final de seguridad visual para 320px–tablet.
   No modifica lógica de negocio.
   ========================================================== */
html,body{max-width:100%;overflow-x:hidden!important}
#app,.app-shell,.content,.panel,.notice,.account-strip,.pro-card,.job-card,.verification-card,.live-service-card,.pro-hero,.pro-control,.pro-map-card,.premium-job,.access-gateway,.access-role-card,.role-entry-card,.identity-capture-card,.diagnostic-fee-card,.reservation-confirmed-card,.schedule-banner,.tracking-ended-card{min-width:0;max-width:100%}
.topbar>*,.row>*,.account-strip>*,.pro-card>*,.job-card>*,.verification-card>*,.access-role-card>*,.role-entry-card>*,.identity-capture-head>*,.diagnostic-fee-card>*,.reservation-confirmed-card>*,.schedule-banner>*,.tracking-ended-card>*{min-width:0}
.field input,.field select,.field textarea,input,select,textarea{min-width:0;max-width:100%}
p,small,label,strong,b,span,a,.meta,.hint,.notice,.legal-request-note,.access-lead,.access-rule p,.identity-capture-head span,.schedule-hint,.reservation-actions small{overflow-wrap:anywhere;word-break:normal}
.hero h1,.section-title h2,.access-gateway h1,.modal-card h2{overflow-wrap:anywhere}
img,video,canvas,svg{max-width:100%;height:auto}

@media(max-width:760px){
  .topbar{
    width:100%!important;max-width:100%!important;height:auto!important;min-height:62px;
    display:grid!important;grid-template-columns:minmax(0,1fr) auto;align-items:center!important;
    gap:6px 8px;padding-top:max(6px,env(safe-area-inset-top))!important;padding-bottom:6px!important;
  }
  .topbar:after{top:auto!important;bottom:0!important}
  .brand{min-width:0!important;max-width:100%;overflow:hidden}
  .brand img{flex:0 0 auto}
  .brand span{min-width:0}
  .brand strong,.brand small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .top-actions{min-width:0;max-width:100%;justify-content:flex-end;flex-wrap:wrap;gap:4px!important}
  .top-actions a{white-space:nowrap;flex:0 0 auto}
  .verified-pill{display:none!important}

  .content{width:100%!important;max-width:100%!important;margin:0!important;padding-left:12px!important;padding-right:12px!important}
  .content>.customer-map-stage{margin-left:-12px!important;margin-right:-12px!important;width:calc(100% + 24px)!important;max-width:none!important}
  .hero{padding:22px 18px!important;border-radius:22px!important}
  .hero h1{font-size:clamp(28px,9vw,40px)!important;line-height:1.08!important}
  .hero p{font-size:13px;line-height:1.5}
  .panel{padding:15px!important;border-radius:20px!important}
  .section-title{align-items:flex-start!important;flex-direction:column;gap:5px!important;margin-left:0!important;margin-right:0!important}
  .section-title small{text-align:left!important;max-width:100%}

  .form-grid{grid-template-columns:minmax(0,1fr)!important}
  .field,.field.full{grid-column:1/-1!important;min-width:0}
  .field label.row{display:flex!important;align-items:flex-start!important;flex-wrap:nowrap!important;gap:9px!important;line-height:1.4}
  .field label.row input[type="checkbox"]{flex:0 0 auto!important;margin-top:3px!important}

  .access-gateway{width:100%!important;margin:8px 0 30px!important;padding:20px 14px!important;border-radius:24px!important}
  .access-gateway h1{font-size:clamp(29px,10vw,42px)!important;line-height:1.05}
  .access-lead{font-size:13px;line-height:1.5!important}
  .access-register-grid,.role-entry-grid{grid-template-columns:minmax(0,1fr)!important}
  .access-role-card,.role-entry-card{grid-template-columns:auto minmax(0,1fr) auto!important;width:100%;padding:13px!important}
  .access-role-card b,.role-entry-card b{font-size:13px}
  .access-role-card small,.role-entry-card small{line-height:1.35}
  .access-rule{width:100%;padding:12px!important}
  .access-test-card{width:100%}

  .account-strip{flex-direction:column!important;align-items:stretch!important}
  .account-strip>.row,.session-actions{justify-content:flex-start!important;width:100%}
  .session-identity,.pro-session-identity{max-width:100%}
  .session-identity>div,.pro-session-identity>div{min-width:0}
  .session-identity strong,.session-identity small,.pro-session-identity strong,.pro-session-identity small{overflow-wrap:anywhere}

  .pro-card,.assigned-pro,.client-card{flex-wrap:wrap!important;align-items:flex-start!important}
  .pro-main{min-width:0;max-width:100%}
  .pro-main>div{min-width:0}
  .contact-privacy{max-width:none!important}
  .professional-status-actions{grid-template-columns:minmax(0,1fr)!important}
  .pro-control-right{width:100%!important;justify-content:flex-start!important}

  .identity-capture-grid{grid-template-columns:minmax(0,1fr)!important}
  .identity-capture-head{gap:7px;flex-wrap:wrap}
  .identity-capture-state{white-space:normal!important;text-align:center}
  .identity-capture-actions{grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important}

  .timing-choice-grid{grid-template-columns:minmax(0,1fr)!important}
  .request-mini-grid,.request-mini-grid.three,.fresh-sheet .request-mini-grid{grid-template-columns:minmax(0,1fr)!important}
  .request-mini-grid.three .field:first-child{grid-column:auto!important}
  .reservation-actions{flex-direction:column!important;align-items:stretch!important}
  .reservation-actions small{max-width:100%!important}
  .eta-choice-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important}

  .diagnostic-fee-card,.reservation-confirmed-card,.schedule-banner,.tracking-ended-card{align-items:flex-start!important}
  .diagnostic-fee-card>div,.reservation-confirmed-card>div,.schedule-banner>div,.tracking-ended-card>div{min-width:0;flex:1}
  .fee-confirm-card .row{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;width:100%}
  .fee-confirm-card .btn{width:100%;white-space:normal}

  .modal-backdrop{padding:0!important;align-items:end!important}
  .modal-card{width:100%!important;max-width:100%!important;max-height:92dvh!important;border-radius:24px 24px 0 0!important;padding:18px 14px calc(20px + env(safe-area-inset-bottom))!important;overflow-x:hidden!important}
  .modal-card .form-grid{grid-template-columns:minmax(0,1fr)!important}
  .modal-card .row{max-width:100%}

  .job-alert-card{max-width:calc(100vw - 24px)!important;overflow:hidden}
  .job-alert-actions{grid-template-columns:minmax(0,1fr)!important}
  .job-alert-facts span{max-width:100%;white-space:normal}

  .legal-page{padding-left:12px!important;padding-right:12px!important;margin-top:14px!important}
  .legal-section{padding:15px!important}
  .privacy-row{grid-template-columns:minmax(0,1fr)!important}
  .terms-index,.privacy-index{max-width:100%;overflow:hidden}
}

@media(max-width:480px){
  .topbar{grid-template-columns:minmax(0,1fr) auto!important;padding-left:10px!important;padding-right:10px!important}
  .brand img{width:40px!important;height:40px!important}
  .brand strong{font-size:16px!important}
  .brand small{display:none!important}
  .top-actions a{font-size:9px!important;padding:7px 5px!important}
  .top-alert-btn{width:30px!important;height:30px!important}
  .content{padding-left:10px!important;padding-right:10px!important}
  .content>.customer-map-stage{margin-left:-10px!important;margin-right:-10px!important;width:calc(100% + 20px)!important}
  .category-grid,.safety-grid{grid-template-columns:minmax(0,1fr)!important}
  .service-quick-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important}
  .more-services-grid{grid-template-columns:minmax(0,1fr)!important}
  .fee-confirm-card .row,.eta-choice-grid{grid-template-columns:minmax(0,1fr)!important}
  .camera-actions{grid-template-columns:minmax(0,1fr) 68px minmax(0,1fr)!important;gap:6px!important}
  .camera-switch,.camera-cancel{padding:9px 6px!important;white-space:normal}
}

@media(max-width:360px){
  .top-actions a{display:none!important}
  .access-gateway{padding:17px 11px!important}
  .access-role-card,.role-entry-card{grid-template-columns:auto minmax(0,1fr)!important}
  .access-role-card i,.role-entry-card i{display:none}
  .service-quick-grid{grid-template-columns:minmax(0,1fr)!important}
  .identity-capture-actions{grid-template-columns:minmax(0,1fr)!important}
  .identity-capture-actions .identity-repeat{grid-column:auto!important}
  .hero h1{font-size:28px!important}
}


/* ==========================================================
   JUICIOSOS v0.28.6 — CAPTURA CENTRADA + LECTURA LEGAL SIN PERDER FORMULARIO
   ========================================================== */
.camera-stage video.camera-mirror{transform:scaleX(-1)}
.camera-guide{position:absolute;inset:0;pointer-events:none;display:grid;place-items:center}
.camera-guide-frame{position:relative;z-index:2;box-shadow:0 0 0 9999px rgba(0,0,0,.20)}
.camera-guide.face .camera-guide-frame{width:min(55vw,260px);height:min(72vw,340px);max-height:72%;border:3px solid rgba(255,255,255,.96);border-radius:48% 48% 43% 43%}
.camera-guide.document{padding:18px}
.camera-guide.document .camera-guide-frame{width:min(82vw,520px);aspect-ratio:1.58;border:3px solid rgba(255,255,255,.98);border-radius:16px}
.camera-guide>span{position:absolute;z-index:3;left:50%;transform:translateX(-50%);bottom:18px;max-width:calc(100% - 28px);background:rgba(10,35,55,.78);color:#fff;padding:7px 10px;border-radius:10px;font-size:11px;text-align:center;line-height:1.35}
.camera-guide.face:before,.camera-guide.document:before{content:none!important}
.identity-capture-preview{background:#f2f6f9!important}
.identity-capture-preview img{width:100%!important;height:100%!important;object-fit:contain!important;object-position:center center!important;background:#eef4f8}
.identity-capture-card[data-identity-card="selfie"] .identity-capture-preview{aspect-ratio:4/5!important}
.identity-capture-card[data-identity-card="idFront"] .identity-capture-preview,.identity-capture-card[data-identity-card="idBack"] .identity-capture-preview{aspect-ratio:1.58!important}
.registration-legal-overlay{position:fixed;inset:0;z-index:7200;background:rgba(4,20,31,.78);backdrop-filter:blur(7px);display:grid;place-items:center;padding:16px}
.registration-legal-sheet{width:min(920px,100%);height:min(90dvh,860px);background:#fff;border-radius:24px;overflow:hidden;display:grid;grid-template-rows:auto minmax(0,1fr) auto;box-shadow:0 30px 100px rgba(0,0,0,.4)}
.registration-legal-sheet header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border-bottom:1px solid #e3edf5;background:#f9fcff}
.registration-legal-sheet header>div{min-width:0;display:grid;gap:2px}.registration-legal-sheet header b{font-size:14px;color:#173d59}.registration-legal-sheet header small{font-size:10px;color:#718597}
.registration-legal-close{width:38px;height:38px;flex:0 0 auto;border:0;border-radius:50%;background:#edf5fb;color:#315e7e;font-size:24px;cursor:pointer}
.registration-legal-sheet iframe{width:100%;height:100%;border:0;background:#fff}
.registration-legal-sheet footer{display:flex;align-items:center;gap:12px;justify-content:space-between;padding:12px 16px calc(12px + env(safe-area-inset-bottom));border-top:1px solid #e3edf5;background:#fff}
.registration-legal-sheet footer small{color:#718597;font-size:10px;line-height:1.4;text-align:right}
body.legal-reader-open{overflow:hidden!important}
@media(max-width:620px){
  .registration-legal-overlay{padding:0;place-items:end center}
  .registration-legal-sheet{width:100%;height:96dvh;border-radius:24px 24px 0 0}
  .registration-legal-sheet header{padding:12px}
  .registration-legal-sheet footer{display:grid;grid-template-columns:1fr;padding:10px 12px calc(12px + env(safe-area-inset-bottom))}
  .registration-legal-sheet footer .btn{width:100%}.registration-legal-sheet footer small{text-align:center}
  .camera-guide.face .camera-guide-frame{width:min(64vw,270px);height:min(82vw,350px);max-height:68dvh}
  .camera-guide.document .camera-guide-frame{width:min(88vw,520px)}
}

/* =============================================================
   JUICIOSOS v0.28.7 — EXPEDIENTE + PERMISOS + GPS + RESPONSIVE PRO
   ============================================================= */
.professional-permission-gate{margin-top:14px;padding:15px 16px}.professional-permission-gate.ready{border-color:#bfe8d6;background:#f6fffb}.permission-gate-loading{color:var(--muted);font-size:12px}.permission-gate-head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px}.permission-gate-head h3{margin:3px 0 4px;font-size:18px}.permission-gate-head p{margin:0;color:var(--muted);font-size:11px;line-height:1.45;max-width:700px}.permission-gate-badge{flex:0 0 auto;padding:7px 10px;border-radius:999px;font-size:10px;font-weight:900}.permission-gate-badge.ok{background:#e4f9ee;color:#087956}.permission-gate-badge.pending{background:#fff1d8;color:#8b6100}.permission-gate-items{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:12px}.permission-gate-item{border:1px solid #dce7f0;background:#fff;border-radius:15px;padding:11px 12px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center;text-align:left;color:var(--ink);cursor:pointer}.permission-gate-item>span{font-size:22px}.permission-gate-item div{min-width:0}.permission-gate-item b,.permission-gate-item small{display:block}.permission-gate-item small{margin-top:2px;color:var(--muted);font-size:10px;line-height:1.35;overflow-wrap:anywhere}.permission-gate-item i{font-style:normal;font-weight:900}.permission-gate-item.ok{border-color:#cceadb;background:#f7fdfa}.permission-gate-item.pending{border-color:#f0dfb9;background:#fffcf6}.permission-help-backdrop{position:fixed;inset:0;z-index:4200;background:rgba(5,26,43,.7);backdrop-filter:blur(6px);display:grid;place-items:center;padding:16px}.permission-help-modal{position:relative;width:min(560px,100%);max-height:92dvh;overflow:auto;background:#fff;border-radius:26px;padding:24px;box-shadow:0 28px 80px rgba(0,32,60,.35)}.permission-help-close{position:absolute;top:13px;right:13px;width:34px;height:34px;border:0;border-radius:50%;background:#edf4f8;color:#34566f;font-size:22px}.permission-help-icon{width:54px;height:54px;border-radius:17px;display:grid;place-items:center;background:#edf7ff;font-size:28px;margin-bottom:10px}.permission-help-modal h2{margin:5px 36px 8px 0}.permission-help-modal p{color:var(--muted);line-height:1.5}.permission-help-steps{display:grid;gap:7px;padding:13px 14px;border-radius:16px;background:#f5f9fc;margin:13px 0;font-size:12px;color:#49657b}.permission-help-steps b{color:var(--navy)}
.pro-jobs-map.map-awaiting-gps{display:grid!important;place-items:center;background:linear-gradient(180deg,#edf6fd,#f9fcff);min-height:340px}.map-gps-required{max-width:330px;padding:22px;text-align:center;display:grid;justify-items:center;gap:7px}.map-gps-required>span{font-size:36px}.map-gps-required b{font-size:16px}.map-gps-required small{color:var(--muted);line-height:1.45}.map-gps-required .btn{margin-top:6px}.pro-verification-row{align-items:center}.verification-note{min-width:0;white-space:normal;overflow-wrap:anywhere}.pro-stats-mini span{min-width:0;overflow-wrap:anywhere}.pro-stats-mini b{white-space:normal}.reward-stat{flex:1 1 230px}
@media(max-width:620px){
 .professional-permission-gate{margin-left:12px;margin-right:12px;padding:13px;border-radius:20px}.permission-gate-head{flex-direction:column}.permission-gate-badge{align-self:flex-start}.permission-gate-items{grid-template-columns:minmax(0,1fr)}
 .permission-help-backdrop{padding:0;align-items:end}.permission-help-modal{width:100%;max-width:none;border-radius:24px 24px 0 0;padding:20px 17px;max-height:94dvh}
 .pro-control{overflow:hidden}.pro-control-left,.pro-control-right,#proStatus{width:100%;max-width:100%}.pro-session-identity{min-width:0}.pro-session-identity>div{min-width:0}
 #proStatus .pro-verification-row{display:grid!important;grid-template-columns:auto auto;justify-content:start;gap:7px 8px;width:100%}.pro-verification-row .verification-note{grid-column:1/-1;width:100%;font-size:10px;line-height:1.35;padding-top:1px}
 .pro-stats-mini{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px!important;overflow:visible!important;width:100%;max-width:100%}.pro-stats-mini span{white-space:normal!important;width:100%;padding:8px!important;display:grid;gap:2px;align-content:center;min-height:52px}.pro-stats-mini span b{display:block;font-size:12px;line-height:1.25}.pro-stats-mini .reward-stat{grid-column:1/-1;min-height:auto}
 .pro-control-right{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;align-items:stretch!important}.big-credit,.availability-toggle{width:100%!important;min-width:0!important;justify-content:center;text-align:center}.availability-toggle{white-space:normal;line-height:1.2}
}
@media(max-width:380px){.pro-stats-mini{grid-template-columns:minmax(0,1fr)!important}.pro-stats-mini .reward-stat{grid-column:auto}.pro-control-right{grid-template-columns:minmax(0,1fr)!important}}

/* v0.28.9 · confirmación de visita y continuidad cliente/profesional */
.visit-fee-customer-modal{display:grid;gap:14px}.visit-fee-found-icon{width:62px;height:62px;border-radius:20px;display:grid;place-items:center;font-size:30px;background:#eef7ff;border:1px solid #cfe6fb}.visit-fee-customer-modal h2{margin:0;font-size:26px;color:#123b59}.visit-fee-customer-modal .subtitle{margin:0;line-height:1.55}.visit-fee-amount{font-size:34px;font-weight:900;letter-spacing:-.03em;color:#075f9e;padding:14px 16px;border-radius:18px;background:linear-gradient(135deg,#edf8ff,#f7fbff);border:1px solid #cce7fb;text-align:center}.modal-card:has(.visit-fee-customer-modal){max-width:560px}.pending-route-preview{position:relative;overflow:hidden}.pending-route-preview .tracking-map{min-height:280px}.pending-route-preview .tracking-status.waiting{background:rgba(255,255,255,.94)}
@media(max-width:600px){.visit-fee-customer-modal h2{font-size:22px}.visit-fee-amount{font-size:30px}.modal-card:has(.visit-fee-customer-modal){width:calc(100% - 12px);max-height:95dvh;padding:19px;border-radius:24px}.pending-route-preview .tracking-map{min-height:240px}}
