
    :root{--green:#0d6130;--deep:#083c20;--mint:#eef7ef;--line:#d6e4d8;--text:#17231a;--muted:#5e7062;--amber:#fff3cc;--radius:14px}
    *{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font:16px/1.5 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--text);background:#fff}button,input,select{font:inherit}button{cursor:pointer}.wrap{width:min(1120px,calc(100% - 2.5rem));margin:auto}.top{position:sticky;top:0;z-index:8;background:#fffefdf2;backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}.bar{min-height:68px;display:flex;align-items:center;justify-content:space-between;gap:1rem}.brand{font-weight:850;font-size:1.35rem;color:var(--deep);text-decoration:none;letter-spacing:-.03em}.brand i{font-style:normal;color:#48a85d}.nav{display:flex;align-items:center;gap:.8rem;flex-wrap:wrap}.nav a{color:var(--muted);text-decoration:none;font-weight:650}.btn{border:1px solid var(--green);border-radius:9px;padding:.62rem .9rem;background:var(--green);color:#fff;font-weight:750;text-decoration:none;display:inline-block}.btn:hover{filter:brightness(.94)}.btn.outline{background:#fff;color:var(--green)}.btn.small{padding:.38rem .65rem;font-size:.9rem}.hero{background:linear-gradient(120deg,#eaf6ec 0%,#fff 62%,#d9efdc);padding:6rem 0}.eyebrow{font-size:.84rem;font-weight:850;letter-spacing:.1em;text-transform:uppercase;color:var(--green)}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(2.35rem,6vw,4.5rem);line-height:1;letter-spacing:-.055em;max-width:11ch;margin:.45rem 0 1.25rem}h2{font-size:clamp(1.8rem,4vw,2.65rem);letter-spacing:-.04em;margin-bottom:.65rem}h3{margin-bottom:.35rem}.hero p{max-width:38rem;color:var(--muted);font-size:1.15rem}.row{display:flex;gap:.7rem;flex-wrap:wrap}.section{padding:4.75rem 0}.soft{background:var(--mint)}.sub{color:var(--muted);max-width:45rem}.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-top:1.8rem}.step,.product,.card,.order{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:1.25rem}.step .number{display:grid;place-items:center;width:2rem;height:2rem;border-radius:50%;background:var(--green);color:#fff;font-weight:850;margin-bottom:.75rem}.step p{margin:0;color:var(--muted);font-size:.95rem}.products{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;margin-top:1.6rem}.product{display:flex;flex-direction:column;align-items:flex-start}.product p{color:var(--muted);margin-bottom:.75rem}.price{color:var(--green);font-weight:900;font-size:1.55rem;margin-top:auto}.contact{display:flex;gap:.7rem;flex-wrap:wrap}.notice{background:#fff9e8;border-bottom:1px solid #ead79e;padding:.55rem;text-align:center;font-size:.9rem}.panel{display:grid;grid-template-columns:210px minmax(0,1fr);gap:1.5rem;padding:2.5rem 0 4rem}.menu{display:grid;gap:.45rem;align-content:start;position:sticky;top:92px}.menu button{border:1px solid var(--line);border-radius:9px;text-align:left;background:#fff;padding:.7rem .85rem;color:var(--muted);font-weight:750}.menu button.active{background:var(--green);color:#fff;border-color:var(--green)}.card{padding:1.5rem}.card + .card{margin-top:1rem}label{display:block;font-size:.9rem;font-weight:800;margin:.85rem 0 .25rem}input,select{display:block;width:100%;padding:.62rem .7rem;border:1px solid #b9cabd;border-radius:8px;background:#fff}input[type=checkbox]{display:inline-block;width:auto;margin-right:.4rem}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:0 1rem}.muted,.hint{color:var(--muted)}.hint{font-size:.9rem}.chips{display:flex;flex-wrap:wrap;gap:.5rem;margin:.65rem 0}.chips button{background:#fff;border:1px solid var(--line);color:var(--green);padding:.45rem .65rem;border-radius:999px;font-weight:750}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:10px}table{width:100%;border-collapse:collapse;min-width:570px}th,td{padding:.65rem .75rem;text-align:left;border-bottom:1px solid var(--line)}th{background:var(--deep);color:#fff;font-size:.87rem}td input{min-width:130px}.qty{max-width:86px}.tag{display:inline-block;border-radius:999px;padding:.18rem .58rem;font-size:.8rem;font-weight:800;background:var(--amber);color:#765900}.tag.ok{background:#ddf3e1;color:#155b2d}.total{font-size:1.35rem;font-weight:900;color:var(--deep)}.order{margin-bottom:1rem}.order-head{display:flex;gap:.55rem;flex-wrap:wrap;align-items:center}.order ul{padding-left:1.2rem;margin:.6rem 0}.hidden{display:none!important}dialog{border:0;border-radius:var(--radius);width:min(430px,92vw);padding:1.4rem;box-shadow:0 18px 55px #0004}dialog::backdrop{background:#06221192}.tabs{display:flex;gap:.5rem}.tabs button{flex:1;border:0;border-radius:8px;padding:.55rem;background:var(--mint);font-weight:800}.tabs button.active{background:var(--green);color:#fff}.error{color:#a61d24;min-height:1.35rem;font-size:.9rem}#toast{position:fixed;z-index:20;left:50%;bottom:1.3rem;transform:translateX(-50%);background:var(--deep);color:#fff;border-radius:10px;padding:.7rem 1rem;box-shadow:0 5px 24px #0003;max-width:90vw}footer{padding:2rem 0;background:var(--deep);color:#fff}footer a{color:#fff}@media(max-width:780px){.steps{grid-template-columns:1fr 1fr}.panel{grid-template-columns:1fr}.menu{position:static;grid-template-columns:1fr 1fr}.bar{padding:.7rem 0}.nav a{display:none}}@media(max-width:500px){.steps,.grid2{grid-template-columns:1fr}.hero{padding:4.5rem 0}}
  
    /* Ajustes de app/iOS: controles cómodos, áreas seguras y panel sin acceso al sitio público. */
    .pwa-mode .top{top:0;padding-top:env(safe-area-inset-top)}.pwa-mode .bar{min-height:58px}.pwa-mode .wrap{width:min(1120px,calc(100% - 1.25rem))}.pwa-mode #private-site .panel{padding:1rem 0 max(2rem,env(safe-area-inset-bottom));gap:1rem}.pwa-mode .menu{top:calc(58px + env(safe-area-inset-top));grid-template-columns:repeat(2,minmax(0,1fr))}.pwa-mode .menu button{min-height:46px}.pwa-mode input,.pwa-mode select{font-size:16px;min-height:46px}.pwa-mode .btn{min-height:44px;display:inline-flex;align-items:center;justify-content:center}.pwa-mode .card{padding:1.1rem}.pwa-mode .nearby-map{min-height:42dvh}.pwa-mode #order-tab .row{display:grid;grid-template-columns:1fr}.pwa-mode #order-tab .btn{width:100%}.pwa-mode .track-steps{margin-left:-.4rem;margin-right:-.4rem;padding-left:.4rem;padding-right:.4rem}.pwa-mode #admin-tab .table-wrap{-webkit-overflow-scrolling:touch}.pwa-mode #admin-tab .admin-state{min-height:44px}.pwa-mode #admin-tab .flow-lane details>summary{min-height:44px}.pwa-mode #admin-tab .flow-lane .order{overflow-wrap:anywhere}@media(max-width:600px){.pwa-mode .menu{grid-template-columns:1fr 1fr;gap:.35rem}.pwa-mode .menu button{padding:.6rem .65rem;font-size:.9rem}.pwa-mode .steps{grid-template-columns:1fr 1fr}.pwa-mode .order-head select{width:100%}.pwa-mode .admin-flow .order{padding:.85rem}.pwa-mode .nearby-layout{gap:.75rem}.pwa-mode .nearby-side{padding:.55rem}.pwa-mode #admin-tab .card{padding:1rem}.pwa-mode #admin-tab .card>.row{align-items:stretch!important}.pwa-mode #admin-tab .card>.row>.btn{width:100%}.pwa-mode #admin-tab .steps{gap:.6rem}.pwa-mode #admin-tab .step{padding:.85rem}.pwa-mode #admin-tab .step h3{font-size:1.25rem;overflow-wrap:anywhere}.pwa-mode #admin-tab .flow-lane{padding:.65rem}.pwa-mode #admin-tab .flow-lane .order{padding:.8rem}.pwa-mode #admin-tab .order-head{display:grid;grid-template-columns:1fr;gap:.5rem}.pwa-mode #admin-tab .order-head .admin-state{width:100%}.pwa-mode #admin-tab .order ul{padding-left:1rem}.pwa-mode #admin-tab .order .btn{width:100%;margin-top:.1rem}.pwa-mode #admin-tab #affiliate-form .btn,.pwa-mode #admin-tab #product-form .btn{width:100%;margin:.25rem 0}.pwa-mode #admin-tab #admin-affiliates .btn,.pwa-mode #admin-tab #admin-products .btn{min-height:40px}.pwa-mode #admin-tab details>summary{width:100%;text-align:center}.pwa-mode #admin-tab .table-wrap{margin-left:-.15rem;margin-right:-.15rem;border-radius:9px}}
  
    .nearby-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,.68fr);gap:1rem;align-items:stretch}.nearby-map{height:300px;min-height:300px;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#eef7ef}.nearby-side{border:1px solid var(--line);border-radius:14px;padding:.75rem;max-height:300px;overflow:auto;background:#fff}.nearby-place{border-bottom:1px solid var(--line);padding:.8rem .2rem}.nearby-place:last-child{border-bottom:0}.nearby-place h3{font-size:1rem;margin:0 0 .12rem}.nearby-place p{font-size:.86rem;color:var(--muted);margin:.15rem 0}.nearby-actions{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.55rem}.nearby-status{min-height:1.35rem;margin:.65rem 0;color:var(--muted);font-size:.88rem}.affiliation-status{display:flex;align-items:center;gap:.7rem;flex-wrap:wrap;margin:.3rem 0 1rem}.status-dot{width:.75rem;height:.75rem;border-radius:50%;background:#55a969;box-shadow:0 0 0 5px #e1f2e4}.status-dot.suspended{background:#bd7a35;box-shadow:0 0 0 5px #fff0df}.guest-mode .top,.guest-mode footer,.guest-mode #public-site>.hero,.guest-mode #public-site>#quienes,.guest-mode #public-site>#servicios,.guest-mode #public-site>#bestsellers,.guest-mode #public-site>#contacto{display:none}.guest-mode #public-site{padding:max(1rem,env(safe-area-inset-top)) 0 max(1rem,env(safe-area-inset-bottom))}.guest-mode #cerca{display:block;padding-top:0}.guest-mode .nearby-map{height:50dvh;min-height:50dvh}@media(max-width:780px){.nearby-layout{grid-template-columns:1fr}.nearby-map{height:270px;min-height:270px}.nearby-side{max-height:none}.guest-mode .nearby-map{height:45dvh;min-height:45dvh}}
  
    #toast.warning{background:#fff4c8;color:#705400;border:1px solid #ead48a}#toast.success{background:#16733a;color:#fff}#toast.center{top:50%;bottom:auto;transform:translate(-50%,-50%);text-align:center;max-width:min(430px,88vw);font-weight:750}.confetti-piece{position:fixed;z-index:30;top:-16px;width:9px;height:14px;border-radius:2px;pointer-events:none;animation:cv-confetti var(--duration) linear forwards}@keyframes cv-confetti{to{transform:translate3d(var(--drift),110vh,0) rotate(760deg);opacity:0}}
  
    /* Administración compacta y táctil en celulares, aun fuera de la PWA. */
    @media(max-width:680px){#admin-tab .card{padding:1rem}#admin-tab .card>.row{align-items:stretch!important}#admin-tab .card>.row>.btn{width:100%}#admin-tab .steps{gap:.6rem;grid-template-columns:1fr 1fr}#admin-tab .step{padding:.85rem}#admin-tab .step h3{font-size:1.25rem;overflow-wrap:anywhere}#admin-tab .flow-lane{padding:.65rem;min-height:auto}#admin-tab .flow-lane .order{padding:.8rem;overflow-wrap:anywhere}#admin-tab .order-head{display:grid;grid-template-columns:1fr;gap:.5rem}#admin-tab .order-head .admin-state{width:100%;min-height:44px}#admin-tab .order ul{padding-left:1rem}#admin-tab .order .btn{width:100%;margin-top:.1rem}#admin-tab #affiliate-form .btn,#admin-tab #product-form .btn{width:100%;margin:.25rem 0}#admin-tab #admin-affiliates .btn,#admin-tab #admin-products .btn{min-height:40px}#admin-tab details>summary{width:100%;text-align:center;min-height:44px}#admin-tab .table-wrap{overflow:visible;margin:0;border:0}#admin-tab .table-wrap table,#admin-tab .table-wrap tbody,#admin-tab .table-wrap tr,#admin-tab .table-wrap td{display:block;width:100%;min-width:0}#admin-tab .table-wrap thead{display:none}#admin-tab .table-wrap tr{margin:.7rem 0;border:1px solid var(--line);border-radius:10px;padding:.7rem;background:#fff}#admin-tab .table-wrap td{border:0;padding:.35rem 0}#admin-tab .table-wrap td[data-label]::before{content:attr(data-label);display:block;color:var(--muted);font-size:.76rem;font-weight:800;margin-bottom:.15rem}#admin-tab #admin-affiliates td:last-child,#admin-tab #admin-products td:last-child{display:grid;grid-template-columns:1fr 1fr;gap:.45rem}#admin-tab #admin-products td:last-child{grid-template-columns:1fr}}
  
    /* Secciones plegables de Administración: interfaz más limpia y cómoda al tacto. */
    .admin-fold{margin-top:1rem;border:1px solid var(--line);border-radius:var(--radius);background:#fff;overflow:hidden}.admin-fold>summary{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.2rem;cursor:pointer;color:var(--deep);font-weight:850;list-style:none}.admin-fold>summary::-webkit-details-marker{display:none}.admin-fold>summary::after{content:"⌄";font-size:1.25rem;line-height:1;color:var(--green);transition:transform .18s ease}.admin-fold[open]>summary{border-bottom:1px solid var(--line)}.admin-fold[open]>summary::after{transform:rotate(180deg)}.admin-fold .card{border:0;border-radius:0;margin:0;padding:1.25rem}.admin-fold .card+.card{margin-top:0;border-top:1px solid var(--line)}.admin-fold-note{display:block;color:var(--muted);font-size:.82rem;font-weight:600;margin-top:.1rem}@media(max-width:680px){#admin-tab .admin-fold>summary{min-height:58px;padding:.85rem 1rem;text-align:left}#admin-tab .admin-fold-note{font-size:.76rem}#admin-tab .admin-fold .card{padding:1rem}}
  
    /* Administración: navegación lateral para separar tareas y conservar un panel despejado. */
    .admin-workspace{margin-top:1rem}.admin-section{display:none}.admin-section.active{display:block}.admin-section>.card{margin:0}.menu .admin-section-menu{font-size:.9rem;padding:.62rem .78rem;color:var(--muted)}.menu .admin-section-menu.active{background:#e5f3e7;color:var(--deep);border-color:#9ecda8;box-shadow:inset 4px 0 0 var(--green)}@media(max-width:780px){.menu .admin-section-menu{font-size:.82rem;padding:.55rem .6rem}}
  
    .loyalty{background:linear-gradient(135deg,#eef7ef,#fff);border:1px solid #b6d9bd}.loyalty-meter{height:.65rem;background:#dceadf;border-radius:999px;overflow:hidden;margin:.8rem 0}.loyalty-meter span{display:block;height:100%;background:var(--green);border-radius:inherit;transition:width .25s}.curi-card{display:flex;align-items:center;gap:1rem;background:linear-gradient(135deg,#eef7ef,#fff);border:1px solid #b6d9bd;border-radius:var(--radius);padding:1rem 1.25rem;margin-bottom:1rem}.curi-card img{width:92px;height:92px;object-fit:contain;flex:0 0 auto}.curi-card h3{margin:.15rem 0}.curi-card p{margin:0}.admin-flow{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;align-items:start}.flow-lane{border:1px solid var(--line);border-radius:12px;background:#f9fcf9;padding:.75rem;min-height:220px}.flow-lane h3{font-size:1.05rem;margin:0}.flow-lane .order{background:#fff;margin-top:.75rem;margin-bottom:0;padding:1rem}.flow-lane.pending{border-top:4px solid #d8a300}.flow-lane.progress{border-top:4px solid #2873a8}.flow-lane.done{border-top:4px solid var(--green)}.flow-count{font-size:.84rem;color:var(--muted);margin:.2rem 0 0}@media(max-width:780px){.admin-flow{grid-template-columns:1fr}}@media(max-width:600px){.panel{padding:1.25rem 0 2.5rem;gap:1rem}.menu{grid-template-columns:1fr 1fr}.curi-card{align-items:flex-start;padding:.9rem}.curi-card img{width:68px;height:68px}.curi-card .eyebrow{font-size:.7rem}.curi-card h3{font-size:1.05rem}#order-tab .table-wrap{border:0;overflow:visible}#order-tab table,#order-tab tbody,#order-tab tr,#order-tab td{display:block;width:100%;min-width:0}#order-tab thead{display:none}#order-tab tr{border:1px solid var(--line);border-radius:10px;padding:.55rem;margin-bottom:.7rem;background:#fff}#order-tab td{border:0;padding:.3rem 0}#order-tab td:before{content:attr(data-label);display:block;color:var(--muted);font-size:.78rem;font-weight:800;margin-bottom:.2rem}#order-tab .qty{max-width:none}#order-tab .btn{width:100%}#order-tab .row{display:grid;grid-template-columns:1fr;gap:.6rem}}
    .loyalty{background:linear-gradient(135deg,#eef7ef,#fff);border:1px solid #b6d9bd}.loyalty-meter{height:.65rem;background:#dceadf;border-radius:999px;overflow:hidden;margin:.8rem 0}.loyalty-meter span{display:block;height:.65rem;background:var(--green);border-radius:inherit;transition:width .25s}.curi-card{display:flex;align-items:center;gap:1rem;background:linear-gradient(135deg,#eef7ef,#fff);border:1px solid #b6d9bd;border-radius:var(--radius);padding:1rem 1.25rem;margin-bottom:1rem}.curi-card img{width:92px;height:92px;object-fit:contain;flex:0 0 auto}.curi-card h3{margin:.15rem 0}.curi-card p{margin:0}.suspension-alert{margin-bottom:1rem;padding:1rem 1.1rem;border:1px solid #e8a6a6;border-left:5px solid #bd3131;border-radius:var(--radius);background:#fff1f1;color:#711a1a}.suspension-alert h3{margin:0 0 .2rem;color:#8d1919}.suspension-alert p{margin:0}.admin-flow{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;align-items:start}.flow-lane{border:1px solid var(--line);border-radius:12px;background:#f9fcf9;padding:.75rem;min-height:220px}.flow-lane h3{font-size:1.05rem;margin:0}.flow-lane .order{background:#fff;margin-top:.75rem;margin-bottom:0;padding:1rem}.flow-lane.pending{border-top:4px solid #d8a300}.flow-lane.progress{border-top:4px solid #2873a8}.flow-lane.done{border-top:4px solid var(--green)}.flow-count{font-size:.84rem;color:var(--muted);margin:.2rem 0 0}.collaborator-page{min-height:calc(100vh - 68px);padding:3rem 0 5rem;background:linear-gradient(135deg,#eef7ef,#fff)}.collaborator-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1rem;margin-top:1.5rem}.badge-card{border:1px solid #b6d9bd;border-radius:18px;background:#fff;padding:1.15rem;box-shadow:0 12px 32px #083c2010}.badge-top{display:flex;gap:.85rem;align-items:center}.badge-avatar{width:58px;height:58px;border-radius:50%;display:grid;place-items:center;background:var(--mint);color:var(--green);font-size:1.55rem;font-weight:900;overflow:hidden}.badge-avatar img{width:100%;height:100%;object-fit:cover}.badge-card h3{margin:0}.badge-card p{margin:.15rem 0;color:var(--muted)}.qr-box{display:grid;grid-template-columns:150px minmax(0,1fr);gap:1rem;align-items:center;margin-top:1rem;padding:1rem;border:1px solid var(--line);border-radius:14px;background:#fff}.qr-box canvas,.qr-box img{width:132px!important;height:132px!important}.seller-alert{margin-bottom:1rem;padding:1rem 1.1rem;border:1px solid #e8a6a6;border-left:5px solid #bd3131;border-radius:var(--radius);background:#fff1f1;color:#711a1a}.seller-panel .card{margin-bottom:1rem}.admin-controls{display:flex;gap:.5rem;flex-wrap:wrap;margin:.7rem 0}.admin-controls .btn.active{background:var(--deep);color:#fff}.status-hidden{display:none!important}.seller-catalog{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:.65rem;margin:.85rem 0}.seller-product{border:1px solid var(--line);background:#fff;border-radius:12px;padding:.75rem;text-align:left}.seller-product b,.seller-product span{display:block}.seller-product span{font-size:.86rem;color:var(--muted);margin:.2rem 0 .6rem}.seller-product button{width:100%}.seller-order-summary{background:#f7fbf7;border:1px solid #b6d9bd;border-radius:12px;padding:.85rem;margin-top:.85rem}@media(max-width:780px){.admin-flow{grid-template-columns:1fr}.qr-box{grid-template-columns:1fr;justify-items:center;text-align:center}}@media(max-width:600px){.panel{padding:1.25rem 0 2.5rem;gap:1rem}.menu{grid-template-columns:1fr 1fr}.curi-card{align-items:flex-start;padding:.9rem}.curi-card img{width:68px;height:68px}.curi-card .eyebrow{font-size:.7rem}.curi-card h3{font-size:1.05rem}.suspension-alert{padding:.9rem}#order-tab .table-wrap,#seller-order-form .table-wrap{border:0;overflow:visible}#order-tab table,#order-tab tbody,#order-tab tr,#order-tab td,#seller-order-form table,#seller-order-form tbody,#seller-order-form tr,#seller-order-form td{display:block;width:100%;min-width:0}#order-tab thead,#seller-order-form thead{display:none}#order-tab tr,#seller-order-form tr{border:1px solid var(--line);border-radius:10px;padding:.55rem;margin-bottom:.7rem;background:#fff}#order-tab td,#seller-order-form td{border:0;padding:.3rem 0}#order-tab td:before,#seller-order-form td:before{content:attr(data-label);display:block;color:var(--muted);font-size:.78rem;font-weight:800;margin-bottom:.2rem}#order-tab .qty,#seller-order-form .qty{max-width:none}#order-tab .btn,#seller-order-form .btn{width:100%}#order-tab .row{display:grid;grid-template-columns:1fr;gap:.6rem}.collaborator-page{padding:1.25rem 0 3rem}.qr-box{padding:.9rem}.seller-catalog{grid-template-columns:1fr 1fr}.seller-product{padding:.65rem}}
    .app-splash{position:fixed;z-index:80;inset:0;display:grid;place-content:center;justify-items:center;gap:.9rem;padding:max(2rem,env(safe-area-inset-top)) 2rem max(2rem,env(safe-area-inset-bottom));background:var(--green);color:#fff;text-align:center;overflow:hidden}.app-splash::before{content:"";position:absolute;width:min(88vw,540px);aspect-ratio:1;border-radius:50%;background:#083c20;opacity:.3;transform:scale(.55)}.app-splash>*{position:relative}.splash-mark{width:108px;height:108px;filter:drop-shadow(0 12px 22px #062a155c)}.splash-mark img{width:100%;height:100%;object-fit:contain}.splash-name{display:flex;align-items:baseline;font-size:clamp(3rem,14vw,5.4rem);line-height:.9;font-weight:900;letter-spacing:-.075em}.splash-cura{display:inline-block}.splash-vita{display:inline-block;color:#bfe9c8}.splash-copy{margin:0;color:#eaf6ec;font-weight:700;opacity:.9}.splash-enter{margin-top:.35rem;border:1px solid #dff5e3;border-radius:999px;padding:.72rem 1.2rem;background:#fff;color:var(--deep);font-weight:900;opacity:0;transform:translateY(9px);pointer-events:none;transition:opacity .25s ease,transform .25s ease}.app-splash.ready .splash-enter{opacity:1;transform:none;pointer-events:auto}.app-splash.play .splash-mark{animation:cv-vita-arrival 1.32s cubic-bezier(.2,.9,.22,1.22) both}.app-splash.play .splash-cura{animation:cv-cura 1.05s cubic-bezier(.2,.9,.22,1.18) both}.app-splash.play .splash-vita{animation:cv-vita 1.05s cubic-bezier(.2,.9,.22,1.18) both}@keyframes cv-vita-arrival{0%{transform:translateX(-115vw) translateY(38px) rotate(-28deg);opacity:0}38%{transform:translateX(-26px) translateY(-20px) rotate(8deg);opacity:1}60%{transform:translateX(18px) translateY(7px) rotate(-5deg)}78%{transform:translateX(-8px) translateY(-7px) rotate(2deg)}100%{transform:translateX(0) translateY(0) rotate(0)}}@keyframes cv-cura{0%{transform:translateX(-150px);opacity:0}62%{transform:translateX(9px);opacity:1}80%{transform:translateX(-4px)}100%{transform:translateX(0)}}@keyframes cv-vita{0%{transform:translateX(150px);opacity:0}62%{transform:translateX(-9px);opacity:1}80%{transform:translateX(4px)}100%{transform:translateX(0)}}@media(prefers-reduced-motion:reduce){.app-splash.play .splash-mark,.app-splash.play .splash-cura,.app-splash.play .splash-vita{animation:none}.splash-enter{transition:none}}
  
    .field-help{color:var(--muted);font-size:.84rem;margin:.22rem 0 .5rem}.app-splash .splash-mark{display:grid;place-items:center;width:126px;height:126px;padding:0;border-radius:0;background:transparent;filter:drop-shadow(0 12px 22px #062a155c)}.auth-vita{display:none}.app-auth-intro{display:none}.pwa-mode #auth-dialog{border:0;border-radius:0;box-shadow:none;width:100%;max-width:none;height:100dvh;max-height:none;margin:0;padding:max(2rem,env(safe-area-inset-top)) 1.5rem max(2rem,env(safe-area-inset-bottom));background:#fff}.pwa-mode #auth-dialog[open]{display:flex;flex-direction:column;justify-content:center}.pwa-mode #auth-dialog>*{width:min(100%,390px);margin-left:auto;margin-right:auto}.pwa-mode #auth-dialog::backdrop{background:#fff}.pwa-mode .auth-panel{position:relative;border:1px solid var(--line);border-radius:24px;padding:1.45rem 1.25rem 5.8rem;background:#fff;box-shadow:0 14px 38px #083c2010}.pwa-mode .auth-vita{display:block;position:absolute;z-index:2;width:116px;height:auto;right:-13px;bottom:-38px;filter:drop-shadow(0 10px 16px #083c2033);animation:vita-holds-panel 1.1s cubic-bezier(.2,.9,.22,1.18) both}.pwa-mode .app-auth-intro{display:block;text-align:center;margin-bottom:1.5rem}.pwa-mode .app-auth-intro img{width:76px;height:76px;object-fit:contain}.pwa-mode .app-auth-intro h1{font-size:2rem;line-height:1.1;letter-spacing:-.045em;max-width:none;margin:.55rem 0}.pwa-mode .app-auth-intro p{color:var(--muted);margin:0}.pwa-mode #auth-dialog .tabs{margin-top:.6rem}.pwa-mode #auth-dialog [data-action="close-auth"]{display:none}@keyframes vita-holds-panel{0%{transform:translateX(125%) translateY(30px) rotate(10deg);opacity:0}65%{transform:translateX(-9px) translateY(-5px) rotate(-3deg);opacity:1}82%{transform:translateX(4px) translateY(2px) rotate(1deg)}100%{transform:translateX(0) translateY(0) rotate(0)}}@media(max-width:390px){.pwa-mode #auth-dialog{padding-left:1rem;padding-right:1rem}.pwa-mode .auth-panel{padding-left:1rem;padding-right:1rem}.pwa-mode .auth-vita{width:96px;right:-8px;bottom:-33px}}
  
    /* Seguimiento y beneficios: panel privado + presencia discreta de Vita en el sitio. */
    .hero-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(190px,280px);align-items:center;gap:2rem}.public-vita{justify-self:center;position:relative;width:min(100%,245px);padding:1rem .9rem .7rem;background:#ffffffad;border:1px solid #cbe2cf;border-radius:28px;box-shadow:0 14px 32px #0d61301a;text-align:center}.public-vita img{width:148px;height:148px;object-fit:contain;filter:drop-shadow(0 10px 11px #083c2030);animation:vita-web-wave 3.8s ease-in-out infinite}.public-vita p{margin:.1rem 0 0;font-size:.9rem;font-weight:750;color:var(--green)}@keyframes vita-web-wave{0%,100%{transform:translateY(0) rotate(0)}45%{transform:translateY(-7px) rotate(-3deg)}70%{transform:translateY(-2px) rotate(2deg)}}
    .tracker-card{background:linear-gradient(145deg,#f4fbf5,#fff);border:1px solid #b6d9bd}.tracker-head{display:flex;gap:1rem;align-items:flex-start;justify-content:space-between;flex-wrap:wrap}.tracker-head h2{font-size:clamp(1.45rem,3vw,2rem);margin:0}.tracker-folio{font-weight:850;color:var(--green);background:#e1f2e4;border-radius:999px;padding:.32rem .65rem;font-size:.86rem}.track-steps{display:grid;grid-template-columns:repeat(6,minmax(84px,1fr));gap:0;margin:1.5rem 0 1rem;overflow-x:auto;padding-bottom:.25rem}.track-step{position:relative;min-width:84px;text-align:center;color:#8b9b8e;font-size:.78rem;font-weight:750;padding:0 .2rem}.track-step:not(:last-child)::after{content:"";position:absolute;top:14px;left:calc(50% + 16px);width:calc(100% - 30px);height:3px;background:#dceadf;border-radius:99px}.track-dot{position:relative;z-index:1;display:grid;place-items:center;width:31px;height:31px;margin:0 auto .45rem;border-radius:50%;border:2px solid #c7d7ca;background:#fff;color:#8b9b8e;font-size:.82rem}.track-step.complete,.track-step.current{color:var(--green)}.track-step.complete .track-dot{background:var(--green);border-color:var(--green);color:#fff}.track-step.current .track-dot{border-color:var(--green);color:var(--green);box-shadow:0 0 0 5px #dff1e2}.track-step.complete:not(:last-child)::after{background:var(--green)}.tracker-status{margin:1rem 0 0;color:var(--muted)}.tracker-status b{color:var(--text)}.tracker-empty{display:flex;align-items:center;gap:1rem}.tracker-empty img{width:90px;height:90px;object-fit:contain}.reward-grid{display:grid;grid-template-columns:1fr 1fr;gap:.7rem;margin-top:1rem}.reward{padding:.75rem;border:1px solid #cde3d1;background:#fff;border-radius:10px}.reward b{display:block;color:var(--deep);font-size:.92rem}.reward span{display:block;margin-top:.18rem;color:var(--muted);font-size:.84rem}.reward.ready{background:#f1fbf3;border-color:#7bc58c}.reward.ready b{color:#0d6130}@media(max-width:780px){.hero-layout{grid-template-columns:1fr}.public-vita{display:flex;align-items:center;gap:.75rem;width:min(100%,390px);padding:.65rem 1rem;text-align:left;justify-self:start}.public-vita img{width:70px;height:70px}.public-vita p{font-size:.86rem}.track-steps{grid-template-columns:repeat(6,92px);justify-content:start}.track-step{font-size:.75rem}}@media(max-width:500px){.reward-grid{grid-template-columns:1fr}.tracker-empty{align-items:flex-start}.tracker-empty img{width:70px;height:70px}}
  
    /* Navegación de regreso y seguimiento táctil para iPhone. */
    .guest-back{display:none}.guest-mode .guest-back{display:inline-flex;align-items:center;gap:.35rem;margin-bottom:1rem}.guest-mode #cerca .wrap{position:relative}.tracker-refresh{display:none}@media(max-width:600px){.tracker-card{padding:.95rem}.tracker-head{gap:.6rem}.tracker-folio{font-size:.78rem;max-width:100%;overflow-wrap:anywhere}.track-steps{display:grid;grid-template-columns:1fr;gap:.35rem;margin:1.05rem 0;overflow:visible;padding:0}.track-step{display:grid;grid-template-columns:34px minmax(0,1fr);align-items:center;gap:.55rem;min-width:0;padding:.12rem 0;text-align:left;font-size:.87rem}.track-dot{width:30px;height:30px;margin:0}.track-step:not(:last-child)::after{top:31px;left:14px;width:3px;height:calc(100% - 5px)}.tracker-status{font-size:.92rem}.tracker-card .reward-grid{gap:.6rem}.tracker-card .reward{padding:.75rem}.pwa-mode .tracker-card{padding:1rem}.pwa-mode .track-steps{margin:1rem 0}.pwa-mode .track-step{min-height:38px}.pwa-mode .reward{min-height:70px}}
  
    /* Fichas de cuentas: control táctil explícito para Safari/iOS. */
    #admin-customers details.order>summary{cursor:pointer;list-style:none;position:relative;padding-right:8.6rem;min-height:52px}#admin-customers details.order>summary::-webkit-details-marker{display:none}#admin-customers details.order>summary::after{content:"Ver y administrar ▾";position:absolute;right:0;top:.1rem;border:1px solid var(--green);border-radius:8px;padding:.3rem .45rem;color:var(--green);font-size:.72rem;font-weight:850}#admin-customers details.order[open]>summary::after{content:"Ocultar ▴"}@media(max-width:600px){#admin-customers details.order>summary{padding-right:0;padding-bottom:2.4rem}#admin-customers details.order>summary::after{left:0;right:auto;top:auto;bottom:.1rem;font-size:.76rem}}
  
    .email-verification-alert{margin-bottom:1rem;padding:1rem 1.1rem;border:1px solid #ead48d;border-left:5px solid #c58b17;border-radius:var(--radius);background:#fff9e8;color:#5f460b}.email-verification-alert h3{margin:0 0 .3rem;color:#6e4d06}.email-verification-alert p{margin:.2rem 0 .75rem}
  
    /* Pulido del pedido: deja claro el siguiente paso sin modificar el flujo comercial. */
    .order-journey{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.65rem;margin:0 0 1rem}.order-stage{position:relative;min-height:76px;padding:.8rem .8rem .75rem 3rem;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--muted)}.order-stage-number{position:absolute;left:.75rem;top:.82rem;display:grid;place-items:center;width:1.55rem;height:1.55rem;border-radius:50%;background:#e5eee6;color:var(--muted);font-size:.78rem;font-weight:900}.order-stage strong,.order-stage small{display:block}.order-stage strong{color:var(--text);font-size:.86rem;line-height:1.15}.order-stage small{margin-top:.18rem;font-size:.76rem;line-height:1.2}.order-stage.active{border-color:#8ec79b;background:#f5fbf6}.order-stage.active .order-stage-number{background:var(--green);color:#fff}.order-stage.done .order-stage-number{background:#237b3d;color:#fff}.order-stage.done .order-stage-number::after{content:"✓"}.order-stage.done .order-stage-number{font-size:0}.order-stage.done .order-stage-number::after{font-size:.86rem}.order-summary-card{border-color:#bddcc3;background:linear-gradient(145deg,#f7fcf8,#fff)}.order-summary-heading{display:flex;align-items:center;justify-content:space-between;gap:1rem}.order-summary-heading p{margin:0;color:var(--muted);font-size:.87rem}.order-ready-message{display:flex;gap:.55rem;align-items:flex-start;margin:.9rem 0;padding:.7rem .8rem;border-radius:10px;background:#fff;border:1px solid #d7e9da;color:var(--muted);font-size:.88rem}.order-ready-message b{color:var(--deep)}.order-mobile-bar{display:none}input:focus-visible,select:focus-visible,button:focus-visible,a:focus-visible{outline:3px solid #79bd88;outline-offset:2px}.card .hint{line-height:1.45}@media(max-width:700px){.order-journey{grid-template-columns:1fr;gap:.45rem}.order-stage{min-height:0;padding:.68rem .75rem .68rem 2.85rem}.order-stage-number{left:.72rem;top:.68rem}.order-stage small{display:none}.order-summary-heading{align-items:flex-start}.order-mobile-bar{position:fixed;z-index:24;left:.65rem;right:.65rem;bottom:calc(.65rem + env(safe-area-inset-bottom));display:flex;align-items:center;justify-content:space-between;gap:.65rem;padding:.65rem .7rem;border:1px solid #8dbf96;border-radius:14px;background:#fff;box-shadow:0 12px 32px #083c2033}.order-mobile-bar.hidden{display:none}.order-mobile-bar small{display:block;color:var(--muted);font-size:.72rem}.order-mobile-bar strong{display:block;color:var(--deep);font-size:1rem}.order-mobile-bar .btn{flex:0 0 auto;min-height:42px;padding:.55rem .7rem;font-size:.84rem}#order-tab:not(.hidden){padding-bottom:6.5rem}.pwa-mode .order-mobile-bar{bottom:calc(.65rem + env(safe-area-inset-bottom))}.pwa-mode #order-tab:not(.hidden){padding-bottom:7rem}}
  
    /* Sistema visual inspirado en iOS: superficies agrupadas, jerarquía amplia y tacto cómodo. */
    :root{--ios-bg:#f2f2f7;--ios-card:#fff;--ios-fill:#e9edf0;--ios-separator:#d7d9df;--ios-blue:#0d6130;--ios-shadow:0 10px 28px #1422180d}.wrap{width:min(1140px,calc(100% - 2rem))}body{background:var(--ios-bg);letter-spacing:-.012em}.top{background:#fffffff0;border-bottom:1px solid #d9ddd9;box-shadow:0 1px 0 #fff;backdrop-filter:blur(18px) saturate(1.35)}.bar{min-height:72px}.brand{font-size:1.45rem;letter-spacing:-.05em}.nav{gap:.45rem}.nav a{padding:.38rem .48rem;border-radius:8px;font-size:.92rem}.nav a:hover{background:#eef5ef;color:var(--deep)}.btn{border-radius:13px;padding:.68rem .98rem;box-shadow:0 1px 1px #083c2026;transition:transform .16s ease,filter .16s ease,box-shadow .16s ease}.btn:hover{transform:translateY(-1px);box-shadow:0 5px 12px #083c2020}.btn.outline{border-color:#a8c5ae;box-shadow:none}.btn.small{border-radius:10px}.hero{padding:clamp(4.8rem,9vw,7.2rem) 0;background:radial-gradient(circle at 87% 8%,#d4edda 0,transparent 28%),linear-gradient(145deg,#eff8f0 0%,#fff 52%,#e8f5ea 100%)}.hero h1{max-width:12ch;letter-spacing:-.064em}.hero p{font-size:1.18rem;line-height:1.55}.public-vita{border-radius:30px;background:#ffffffd9;box-shadow:0 16px 36px #0d613017}.section{padding:clamp(3.5rem,7vw,5.5rem) 0}.soft{background:transparent}.section>.wrap>h2,.section .wrap>h2{letter-spacing:-.055em}.products{gap:1rem}.product,.card,.order,.step,.badge-card,.nearby-side,.nearby-map,.flow-lane{border-color:transparent;box-shadow:var(--ios-shadow)}.product,.card,.order,.step{border-radius:20px}.product{padding:1.35rem}.product:hover{transform:translateY(-2px);transition:transform .18s ease,box-shadow .18s ease;box-shadow:0 16px 34px #083c2017}.price{font-size:1.7rem}.eyebrow{letter-spacing:.12em}.notice{background:#fff8df;border-color:#e8d9a4}.panel{align-items:start;gap:1.25rem;padding:2rem 0 4.5rem}.menu{gap:.28rem;padding:.45rem;border:1px solid #e0e4e0;border-radius:18px;background:#ffffffbf;box-shadow:var(--ios-shadow);top:94px}.menu button{min-height:43px;border:0;border-radius:12px;background:transparent;color:#55685a;padding:.65rem .75rem}.menu button:hover{background:#edf6ee}.menu button.active{box-shadow:0 3px 10px #0d613024}.menu .admin-section-menu.active{background:#e7f3e9;box-shadow:inset 4px 0 0 var(--green)}.card{padding:1.4rem;background:var(--ios-card)}.card+.card{margin-top:1rem}.card h2{letter-spacing:-.05em}.card h3{letter-spacing:-.025em}input,select{min-height:46px;border:1px solid transparent;border-radius:12px;background:var(--ios-fill);padding:.7rem .8rem;color:var(--text);transition:box-shadow .16s ease,background .16s ease,border-color .16s ease}input:hover,select:hover{background:#e4e9ec}input:focus,select:focus{border-color:#77ae82;background:#fff;box-shadow:0 0 0 4px #86bd9130;outline:0}input[type=file]{padding:.52rem;background:#f5f7f6}.table-wrap{border:0;border-radius:15px;background:#f8faf8;box-shadow:inset 0 0 0 1px #e4e9e5}th{background:#e9f2ea;color:var(--deep);font-size:.77rem;letter-spacing:.04em;text-transform:uppercase}td{border-color:#e5eae6}.tag{border-radius:999px}.order{padding:1.1rem;background:#fff}.order-head{gap:.7rem}.nearby-layout{gap:1rem}.nearby-map,.nearby-side{border-radius:20px}.nearby-place{padding:.95rem .35rem}.nearby-place h3{font-size:1.02rem}.nearby-actions .btn{border-radius:10px}.loyalty,.tracker-card{border-color:transparent;box-shadow:var(--ios-shadow)}.tracker-folio{background:#e6f2e8}.reward{border-radius:14px;background:#fbfdfb}.admin-fold{border:0;border-radius:18px;box-shadow:var(--ios-shadow)}.admin-fold>summary{padding:1.05rem 1.2rem;background:#fff}.admin-flow{gap:1rem}.flow-lane{border-radius:18px;background:#f7faf7;padding:.85rem}.flow-lane .order{border-radius:14px;box-shadow:0 2px 9px #083c2010}.collaborator-page{background:radial-gradient(circle at 88% 5%,#d8eddb 0,transparent 28%),var(--ios-bg)}.badge-card{border:0;border-radius:22px;background:#fff}.auth-panel{box-shadow:0 20px 46px #083c2020}dialog{border-radius:24px;background:#fff}dialog::backdrop{backdrop-filter:blur(4px)}footer{background:linear-gradient(135deg,#073b20,#0d6130);padding:2.5rem 0}#toast{border-radius:14px;box-shadow:0 10px 32px #0004}.order-journey{gap:.75rem}.order-stage{border:0;border-radius:17px;box-shadow:var(--ios-shadow)}.order-mobile-bar{border:0;box-shadow:0 14px 34px #083c2033}.suspension-alert,.seller-alert,.email-verification-alert{border-radius:17px}@media(max-width:780px){.wrap{width:min(100% - 1.25rem,1140px)}.bar{min-height:64px}.nav{gap:.35rem}.nav button{min-height:40px}.hero{padding:4.2rem 0}.panel{padding-top:1.1rem}.menu{position:static;grid-template-columns:1fr 1fr;border-radius:16px}.menu button{font-size:.86rem}.card{padding:1.05rem;border-radius:18px}.product{border-radius:18px}.nearby-map,.nearby-side{border-radius:18px}.steps{gap:.7rem}.step{border-radius:16px}.admin-fold{border-radius:16px}.collaborator-page{padding-top:1.5rem}}@media(prefers-reduced-motion:reduce){.btn,.product{transition:none}.btn:hover,.product:hover{transform:none}}
  
    /* Capas por rol: el menú de Administración sólo existe en la sesión administradora. */
    .role-menu-slot{min-width:0}.admin-menu-shell{background:linear-gradient(180deg,#f6fbf7,#ffffffbf)}.admin-menu-title{margin:.25rem .7rem .45rem;color:var(--deep);font-size:.78rem;font-weight:900;letter-spacing:.12em;text-transform:uppercase}.cv-admin-session #user-menu{display:none!important}.cv-admin-session #admin-menu-shell{display:grid!important}

    /* Acceso más limpio: una sola profundidad visual de sombra y sin borde flotante extraño. */
    #auth-dialog{width:min(430px,92vw);padding:0;border:0;background:transparent;box-shadow:none;overflow:visible}#auth-dialog::backdrop{background:#06221180;backdrop-filter:blur(7px)}#auth-dialog .auth-panel{width:100%;border:1px solid #dce7de;border-radius:24px;background:#fff;box-shadow:0 14px 34px #083c201c}.pwa-mode #auth-dialog{box-shadow:none}.pwa-mode #auth-dialog .auth-panel{border:0;box-shadow:none}.pwa-mode #auth-dialog::backdrop{background:#fff;backdrop-filter:none}

    @media(max-width:780px){.role-menu-slot{width:100%}.admin-menu-title{grid-column:1/-1;margin:.15rem .35rem}.admin-menu-shell{grid-template-columns:1fr 1fr}}
  
    /* Bienvenida web de Vita: usa el personaje 3D existente sin añadir peso a la PWA. */
    .app-splash{background:radial-gradient(circle at 50% 38%,#3eb264 0%,#14733a 31%,#083c20 100%)}.app-splash::before{width:min(92vw,620px);background:radial-gradient(circle,#c7f4d1 0%,#6dc984 35%,transparent 70%);opacity:.22;transform:scale(1)}.app-splash::after{content:"";position:absolute;inset:0;pointer-events:none;background-image:radial-gradient(#d5f8dc 1px,transparent 1.5px);background-size:32px 32px;opacity:.14;mask-image:linear-gradient(to bottom,transparent,black 20%,black 75%,transparent)}.splash-vita-stage{position:relative;width:min(74vw,270px);height:min(54vw,235px);min-height:175px;display:grid;place-items:end center;filter:drop-shadow(0 25px 24px #031c0d78)}.splash-vita-stage::before{content:"";position:absolute;bottom:6px;width:72%;height:18px;border-radius:50%;background:#032a1588;filter:blur(9px);transform:scaleX(.9);animation:vita-shadow 2.1s ease-in-out infinite}.splash-vita-stage img{position:relative;z-index:1;width:min(62vw,220px);height:100%;object-fit:contain;transform-origin:50% 100%}.app-splash.play .splash-vita-stage img{animation:vita-web-arrival 1.15s cubic-bezier(.18,.92,.2,1.2) both, vita-web-breathe 2.35s 1.2s ease-in-out infinite}.app-splash.play .splash-vita-stage::before{animation:vita-shadow 2.35s 1.2s ease-in-out infinite}.splash-copy{max-width:27ch;font-size:1.03rem;line-height:1.45}.splash-enter{box-shadow:0 9px 22px #032a1559}.app-splash.leaving{animation:cv-welcome-exit .58s ease forwards}.vita-fab{position:fixed;z-index:25;right:max(1rem,env(safe-area-inset-right));bottom:max(5.25rem,calc(1rem + env(safe-area-inset-bottom)));display:flex;align-items:center;gap:.45rem;border:1px solid #bde9c8;border-radius:999px;padding:.42rem .78rem .42rem .42rem;background:#fff;color:var(--deep);font-weight:850;box-shadow:0 10px 28px #083c2038;transition:transform .18s ease,box-shadow .18s ease}.vita-fab:hover{transform:translateY(-2px);box-shadow:0 15px 32px #083c2045}.vita-fab img{width:42px;height:42px;object-fit:contain;animation:vita-fab-float 2.8s ease-in-out infinite}.vita-guide{position:fixed;z-index:26;right:max(1rem,env(safe-area-inset-right));bottom:max(9.8rem,calc(5.75rem + env(safe-area-inset-bottom)));width:min(342px,calc(100vw - 2rem));padding:1rem 1rem 1rem 5.4rem;border:1px solid #d3ead8;border-radius:22px;background:#fff;color:var(--text);box-shadow:0 18px 45px #083c2030;animation:vita-guide-in .28s cubic-bezier(.2,.85,.28,1.18) both}.vita-guide img{position:absolute;left:.65rem;bottom:.65rem;width:72px;height:92px;object-fit:contain;filter:drop-shadow(0 8px 9px #083c2028)}.vita-guide h3{margin:.1rem 1.7rem .22rem 0;color:var(--deep);font-size:1.04rem}.vita-guide p{margin:0;color:var(--muted);font-size:.9rem;line-height:1.4}.vita-guide-actions{display:flex;gap:.45rem;flex-wrap:wrap;margin-top:.8rem}.vita-guide-actions .btn{padding:.5rem .65rem;font-size:.83rem}.vita-guide-close{position:absolute;top:.55rem;right:.58rem;width:28px;height:28px;border:0;border-radius:50%;background:#eef5ef;color:var(--deep);font-size:1.12rem;line-height:1}.vita-guide-note{display:block;margin-top:.65rem;color:#738077;font-size:.73rem}.app-splash.play .splash-name{animation:cv-name-in .9s .18s both}@keyframes vita-web-arrival{0%{transform:translateX(-120vw) translateY(42px) rotate(-30deg);opacity:0}56%{transform:translateX(12px) translateY(-13px) rotate(4deg);opacity:1}76%{transform:translateX(-5px) translateY(3px) rotate(-2deg)}100%{transform:none}}@keyframes vita-web-breathe{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-8px) rotate(1.2deg)}}@keyframes vita-shadow{0%,100%{transform:scaleX(.92);opacity:.7}50%{transform:scaleX(.72);opacity:.45}}@keyframes vita-fab-float{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-3px) rotate(2deg)}}@keyframes vita-guide-in{from{opacity:0;transform:translateY(12px) scale(.96)}to{opacity:1;transform:none}}@keyframes cv-welcome-exit{to{opacity:0;transform:scale(1.035);visibility:hidden}}@keyframes cv-name-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@media(max-width:520px){.splash-vita-stage{width:min(84vw,260px)}.vita-fab{bottom:max(5.1rem,calc(1rem + env(safe-area-inset-bottom))}.vita-fab span{display:none}.vita-guide{padding-left:5.1rem;bottom:max(9.35rem,calc(5.55rem + env(safe-area-inset-bottom))}.vita-guide img{left:.35rem;width:70px}}@media(prefers-reduced-motion:reduce){.app-splash.play .splash-vita-stage img,.app-splash.play .splash-vita-stage::before,.vita-fab img,.app-splash.play .splash-name,.app-splash.leaving,.vita-guide{animation:none}}
    button.public-vita{font:inherit;cursor:pointer;text-align:center;transition:transform .18s ease,box-shadow .18s ease}button.public-vita:hover{transform:translateY(-3px);box-shadow:0 19px 38px #0d61302b}button.public-vita:focus-visible,.curi-card:focus-visible,.vita-chat-option:focus-visible{outline:3px solid #79bc88;outline-offset:3px}.vita-chat{padding:.9rem;bottom:max(1rem,env(safe-area-inset-bottom))}.vita-chat .vita-chat-head{display:flex;align-items:center;gap:.55rem;padding-right:2rem}.vita-chat .vita-chat-avatar{position:static;width:44px;height:52px;object-fit:contain;filter:drop-shadow(0 5px 6px #083c2024)}.vita-chat-name{display:grid;gap:0;line-height:1.15}.vita-chat-name b{color:var(--deep)}.vita-chat-name small{color:var(--muted);font-size:.74rem}.vita-chat-messages{display:grid;gap:.55rem;max-height:260px;margin:.85rem 0 .7rem;overflow:auto;padding-right:.15rem}.vita-chat-bubble{max-width:92%;padding:.62rem .72rem;border-radius:14px;background:#eef7ef;color:var(--deep);font-size:.88rem;line-height:1.4}.vita-chat-bubble.vita-chat-user{justify-self:end;background:var(--green);color:#fff}.vita-chat-options{display:flex;flex-wrap:wrap;gap:.42rem}.vita-chat-option{border:1px solid #b6d9bd;border-radius:999px;padding:.47rem .65rem;background:#fff;color:var(--deep);font:inherit;font-size:.8rem;font-weight:800;cursor:pointer}.vita-chat-option:hover{background:#edf8ef}.vita-chat .vita-guide-note{margin-top:.65rem}.vita-chat .vita-guide-close{z-index:2}
    /* La bienvenida es una pantalla propia: bloquea el sitio hasta que Vita la cierre. */
    body.cv-welcome-active{overflow:hidden}body.cv-welcome-active>*:not(#app-splash){pointer-events:none;user-select:none}.app-splash{z-index:1000;width:100vw;height:100dvh;min-height:100dvh;isolation:isolate;opacity:1}.app-splash.leaving{animation:none}.app-splash.leaving>*{opacity:0;transition:opacity .16s ease}.app-splash.leaving::before,.app-splash.leaving::after{opacity:0;transition:opacity .16s ease}
    /* El acceso conserva todas las acciones visibles y se desplaza en pantallas pequeñas. */
    #auth-dialog{max-height:calc(100dvh - 2rem);overflow:auto;-webkit-overflow-scrolling:touch}#auth-dialog .auth-panel{padding:1.2rem}#auth-dialog .tabs{position:sticky;top:0;z-index:2;padding:.15rem 0 .7rem;background:#fff}#auth-dialog form{padding-bottom:.4rem}#auth-dialog .field-help{line-height:1.35}#auth-dialog [data-action="close-auth"]{margin-top:.35rem}.pwa-mode #auth-dialog{overflow-y:auto}.pwa-mode #auth-dialog .auth-panel{min-height:0;margin:auto;padding:1.4rem 1.25rem 5.8rem}.pwa-mode #auth-dialog .tabs{top:-.1rem}.pwa-mode #auth-dialog [data-action="close-auth"]{display:inline-flex}
    /* En el panel el mensaje superior es la entrada a Vita; no duplicamos un botón flotante. */
    .vita-fab{display:none!important}.curi-card{width:100%;font:inherit;text-align:left;cursor:pointer;transition:transform .18s ease,box-shadow .18s ease}.curi-card:hover{transform:translateY(-2px);box-shadow:0 13px 28px #083c2018}.curi-card::after{content:"Hablar con Vita →";margin-left:auto;color:var(--green);font-weight:850;white-space:nowrap}.curi-card img{pointer-events:none}@media(max-width:520px){.vita-chat{padding:.82rem;bottom:max(.75rem,env(safe-area-inset-bottom))}.vita-chat .vita-chat-avatar{width:40px;height:48px}.vita-chat-messages{max-height:210px}button.public-vita{text-align:left}.curi-card::after{font-size:.82rem}.curi-card{gap:.65rem}}
    /* Vita en sesión es una sección del panel, no una ventana flotante. */
    .vita-panel{max-width:760px}.vita-panel-hero{display:flex;align-items:center;gap:1.2rem;padding:1rem;border:1px solid #b6d9bd;border-radius:18px;background:linear-gradient(135deg,#eef7ef,#fff)}.vita-panel-hero img{width:130px;height:130px;object-fit:contain;filter:drop-shadow(0 12px 14px #083c2029)}.vita-panel-hero h2{margin:.15rem 0 .35rem}.vita-panel-hero p{margin:0}.vita-panel-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:.7rem;margin-top:1rem}.vita-panel-action{display:flex;align-items:center;gap:.65rem;min-height:76px;border:1px solid #b6d9bd;border-radius:14px;padding:.8rem;background:#fff;color:var(--deep);font:inherit;font-weight:850;text-align:left}.vita-panel-action:hover{background:#eef7ef;border-color:#77b987}.vita-panel-action span{display:grid;place-items:center;width:2.2rem;height:2.2rem;border-radius:50%;background:var(--mint);font-size:1.15rem;flex:0 0 auto}.vita-panel-note{margin:1rem 0 0;color:var(--muted);font-size:.82rem}.curi-card::after{content:"Abrir Vita →"}@media(max-width:560px){.vita-panel{padding:1rem}.vita-panel-hero{align-items:flex-start;gap:.7rem;padding:.85rem}.vita-panel-hero img{width:78px;height:78px}.vita-panel-hero h2{font-size:1.35rem}.vita-panel-actions{grid-template-columns:1fr}.vita-panel-action{min-height:58px}}

  
    /* ==========================================================================
       CuraVita · NÚCLEO UI (única fuente de verdad)
       Reemplaza las capas de parches duplicadas con !important.
       Contenido: 1) Entrada de Vita  2) Menús  3) Vita en panel  4) Login  5) iOS
       Modo app = html.pwa-mode / body.pwa-mode (sólo display-mode: standalone).
       ========================================================================== */

    /* 1) ENTRADA DE VITA: capa verde sólida, completa e independiente ------------ */
    html.cv-splash,html.cv-splash body,body.cv-welcome-active{background:#0d6130;overflow:hidden;overscroll-behavior:none}
    html.cv-splash body>*:not(#app-splash),body.cv-welcome-active>*:not(#app-splash){visibility:hidden!important}
    #app-splash.app-splash{position:fixed;inset:0;z-index:2147483647;width:100vw;height:100dvh;min-height:100dvh;place-content:center;justify-items:center;overflow:hidden;background:#0d6130;isolation:isolate}
    #app-splash.app-splash.hidden{display:none!important}
    #app-splash.app-splash::before{background:radial-gradient(circle,#49ae67 0%,#14733a 44%,transparent 72%);opacity:.52}
    #app-splash.app-splash::after{opacity:.12}
    @media(max-width:560px){
      #app-splash.app-splash{padding:max(1.2rem,env(safe-area-inset-top)) 1.2rem max(1.4rem,env(safe-area-inset-bottom))}
      #app-splash .splash-vita-stage{width:min(70vw,230px);height:min(50vw,205px);min-height:145px}
      #app-splash .splash-vita-stage img{width:min(58vw,185px)}
      #app-splash .splash-name{font-size:clamp(2.7rem,15vw,4.25rem)}
      #app-splash .splash-copy{font-size:.98rem;max-width:25ch}
    }

    /* 2) MENÚS: activo = verde oscuro + texto blanco; inactivo = blanco ----------- */
    #user-menu.menu button,#admin-menu-shell.menu button{background:#fff;color:#4d6152;border:1px solid var(--line);box-shadow:none}
    #user-menu.menu button:hover:not(.active),#admin-menu-shell.menu button:hover:not(.active){background:#edf6ee;color:var(--deep)}
    #user-menu.menu button.active,#admin-menu-shell.menu button.active{background:#0a4a26;color:#fff;border-color:#0a4a26;box-shadow:0 3px 10px #0a4a2638}
    #user-menu.menu button:focus-visible,#admin-menu-shell.menu button:focus-visible{outline:3px solid #79bc88;outline-offset:2px}

    /* 3) VITA EN PANEL: nunca crece, se corta ni sale de su tarjeta ---------------- */
    #private-site .curi-card{max-width:100%;min-width:0;overflow:hidden}
    #private-site .curi-card>span{min-width:0}
    #private-site .curi-card img{flex:0 0 auto;width:clamp(56px,16vw,76px);height:clamp(56px,16vw,76px);max-width:76px;max-height:76px;object-fit:contain}
    #private-site .vita-panel{width:100%;max-width:760px;min-width:0;overflow:hidden}
    #private-site .vita-panel-hero{min-width:0;overflow:hidden}
    #private-site .vita-panel-hero>div{min-width:0}
    #private-site .vita-panel-hero img{flex:0 0 auto;width:clamp(72px,20vw,116px);height:clamp(72px,20vw,116px);max-width:116px;max-height:116px;object-fit:contain}
    #private-site .vita-panel-actions{grid-template-columns:repeat(auto-fit,minmax(min(190px,100%),1fr))}
    @media(max-width:600px){
      #private-site .curi-card{padding:.85rem;gap:.7rem}
      #private-site .curi-card::after{display:none}
      #private-site .vita-panel{padding:.9rem}
      #private-site .vita-panel-hero{gap:.7rem;padding:.8rem}
      #private-site .vita-panel-hero h2{font-size:1.25rem}
      #private-site .vita-panel-action{min-height:56px}
      #user-menu.menu{grid-template-columns:1fr 1fr;padding:.45rem}
      #user-menu.menu button{min-height:48px;font-size:.9rem}
    }

    /* 4) LOGIN / REGISTRO ---------------------------------------------------------- */
    /* El dialog con display:flex + justify-content:center recortaba el inicio al desplazar: se usa block. */
    #auth-dialog[open]{display:block}
    #auth-dialog .auth-vita{display:none}
    #auth-dialog .tabs{position:sticky;top:0;z-index:3;background:#fff;padding:.15rem 0 .7rem}
    #auth-dialog form{padding-bottom:.4rem}
    /* Web (incluye celular en navegador): tarjeta centrada, desplazable, pestañas siempre visibles */
    html:not(.pwa-mode) #auth-dialog{width:min(520px,calc(100vw - 1rem));max-height:calc(100dvh - 1rem);margin:auto;padding:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;background:#fff;border:1px solid #dce7de;border-radius:24px;box-shadow:0 22px 54px #083c2038}
    html:not(.pwa-mode) #auth-dialog .auth-panel{width:100%;padding:1.2rem;border:0;border-radius:0;background:#fff;box-shadow:none}
    html:not(.pwa-mode) #auth-dialog .app-auth-intro{display:none}
    html:not(.pwa-mode) #auth-dialog::backdrop{background:#0622118a;backdrop-filter:blur(5px)}
    /* App instalada (PWA): pantalla completa */
    .pwa-mode #auth-dialog,.pwa-mode #auth-dialog[open]{width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;margin:0;padding:0;display:block;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;background:#fff;border:0;border-radius:0;box-shadow:none}
    .pwa-mode #auth-dialog .auth-panel{max-width:460px;margin:0 auto;border:0;border-radius:0;box-shadow:none;padding:max(1.4rem,env(safe-area-inset-top)) 1.25rem max(5.8rem,calc(env(safe-area-inset-bottom) + 3rem))}
    .pwa-mode #auth-dialog::backdrop{background:#fff;backdrop-filter:none}
    @media(max-width:560px){
      html:not(.pwa-mode) #auth-dialog{width:calc(100vw - 1rem);border-radius:20px}
      html:not(.pwa-mode) #auth-dialog .auth-panel{padding:1rem}
    }

    /* PWA: una pantalla por vez. El dialog cerrado no forma parte del documento. */
    html.pwa-mode #auth-dialog:not([open]){display:none!important}
    html.pwa-mode #auth-dialog [data-action="close-auth"]{display:none!important}
    html:not(.pwa-mode) #pwa-continue-session{display:none!important}
    html.pwa-mode #pwa-continue-session:not(.hidden){display:block;width:100%;margin:.65rem 0}
    html.pwa-mode body[data-pwa-screen="auth"] .top,
    html.pwa-mode body[data-pwa-screen="auth"] #public-site,
    html.pwa-mode body[data-pwa-screen="auth"] #private-site,
    html.pwa-mode body[data-pwa-screen="auth"] #collaborators-site,
    html.pwa-mode body[data-pwa-screen="auth"] footer,
    html.pwa-mode body[data-pwa-screen="map"] .top,
    html.pwa-mode body[data-pwa-screen="map"] #private-site,
    html.pwa-mode body[data-pwa-screen="map"] #collaborators-site,
    html.pwa-mode body[data-pwa-screen="map"] footer,
    html.pwa-mode body[data-pwa-screen="panel"] #public-site,
    html.pwa-mode body[data-pwa-screen="panel"] #collaborators-site,
    html.pwa-mode body[data-pwa-screen="panel"] footer{display:none!important}
    html.pwa-mode body[data-pwa-screen="auth"] #order-mobile-bar,
    html.pwa-mode body[data-pwa-screen="map"] #order-mobile-bar,
    html.pwa-mode body[data-pwa-screen="auth"] #vita-guide,
    html.pwa-mode body[data-pwa-screen="map"] #vita-guide{display:none!important}
    html.pwa-mode body[data-pwa-screen="map"] #public-site > :not(#cerca){display:none!important}
    html.pwa-mode body[data-pwa-screen="map"] #cerca{padding-top:max(1rem,env(safe-area-inset-top))}
    /* 5) iOS / móvil: las rejillas no deben ensancharse por su contenido ----------- */
    @media(max-width:780px){.panel{grid-template-columns:minmax(0,1fr)}.panel>section{min-width:0}}
  