:root{
  --pink:#F472A0;--pink-dark:#C94F7C;--pink-light:#FDE8F1;--pink-mid:#FACDE0;
  --lilac:#9B8FE8;--lilac-dark:#5B4FCC;--lilac-light:#EDE9FE;
  --dark:#1A1825;--mid:#6B6B8A;--border:#E8E4F8;--bg:#F8F7FF;
  --green:#22C55E;--amber:#F59E0B;--red:#EF4444;--white:#FFFFFF;
}
*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}
html,body{height:100%;overflow:hidden;font-family:'Nunito',sans-serif;background:#0A0A0F}
.shell{width:100%;max-width:430px;height:100vh;margin:0 auto;background:var(--bg);position:relative;overflow:hidden;display:flex;flex-direction:column}
@media(min-width:500px){body{display:flex;align-items:center;justify-content:center}.shell{height:820px;border-radius:36px;box-shadow:0 32px 80px rgba(0,0,0,.7),0 0 0 1px rgba(255,255,255,.06)}}
.screen{position:absolute;inset:0;display:flex;flex-direction:column;transition:transform .32s cubic-bezier(.4,0,.2,1),opacity .32s;will-change:transform,opacity;background:var(--bg)}
.screen.hidden{transform:translateX(100%);opacity:0;pointer-events:none}
.screen.slide-left{transform:translateX(-28%);opacity:0;pointer-events:none}
.screen.active{transform:translateX(0);opacity:1}
.topbar{display:flex;align-items:center;justify-content:space-between;padding:.875rem 1.25rem .75rem;background:var(--white);border-bottom:1px solid var(--border);flex-shrink:0}
.tb-logo{font-size:1.25rem;font-weight:900;color:var(--dark)}
.tb-logo span{color:var(--pink)}
.tb-back{font-size:.8rem;font-weight:700;color:var(--mid);border:none;background:none;cursor:pointer;font-family:'Nunito',sans-serif}
.tb-back:hover{color:var(--pink)}
.tb-action{font-size:.78rem;font-weight:800;color:var(--pink);border:none;background:none;cursor:pointer;font-family:'Nunito',sans-serif}
.scroll{flex:1;overflow-y:auto;overflow-x:hidden}.scroll::-webkit-scrollbar{display:none}
.bottom-nav{
  display:flex;
  width:100%;
  max-width:100%;
  background:var(--white);
  border-top:1px solid var(--border);
  flex-shrink:0;
  padding-bottom:env(safe-area-inset-bottom);
  position:relative;
  z-index:10;
  box-sizing:border-box;
  overflow:hidden;
}
.bn{
  flex:1 1 0;
  min-width:0;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  padding:.55rem .25rem .45rem;
  cursor:pointer;
  border:none;
  background:none;
  gap:2px;
  font-family:'Nunito',sans-serif;
  box-sizing:border-box;
  overflow:hidden;
}
.bn .bi{font-size:1.15rem}.bn .bl{font-size:.58rem;font-weight:800;color:var(--mid);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.bn.on .bl{color:var(--pink)}
.toast{position:absolute;bottom:80px;left:50%;transform:translateX(-50%) translateY(12px);background:var(--dark);color:white;padding:.55rem 1.25rem;border-radius:50px;font-size:.75rem;font-weight:700;opacity:0;transition:all .28s;pointer-events:none;z-index:999;white-space:nowrap}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
.modal-ov{position:absolute;inset:0;background:rgba(0,0,0,.5);z-index:500;display:flex;align-items:flex-end;opacity:0;pointer-events:none;transition:opacity .25s;border-radius:inherit;overflow:hidden}
.modal-ov.show{opacity:1;pointer-events:all}
.modal-box{background:var(--white);border-radius:22px 22px 0 0;padding:1.25rem 1.25rem 2rem;width:100%;transform:translateY(100%);transition:transform .3s cubic-bezier(.4,0,.2,1);max-height:80%;overflow-y:auto}
.modal-box::-webkit-scrollbar{display:none}
.modal-ov.show .modal-box{transform:translateY(0)}
.modal-handle{width:32px;height:4px;background:var(--border);border-radius:2px;margin:0 auto 1rem}
.modal-title{font-size:1rem;font-weight:900;color:var(--dark);margin-bottom:.25rem}
.modal-sub{font-size:.78rem;color:var(--mid);font-weight:600;margin-bottom:1rem}

/* BOTÕES */
.btn-rosa{display:block;width:100%;padding:.85rem 1rem;text-align:center;background:var(--pink);color:#ffffff;-webkit-text-fill-color:#ffffff;font-family:'Nunito',sans-serif;font-size:.9rem;font-weight:900;border:none;border-radius:50px;cursor:pointer;box-shadow:0 4px 16px rgba(244,114,160,.38);transition:transform .15s,box-shadow .15s,background .15s}
.btn-rosa:hover{background:var(--pink-dark);box-shadow:0 6px 22px rgba(244,114,160,.5);transform:translateY(-1px)}
.btn-rosa:active{transform:scale(.97)}
.btn-rosa-sm{padding:.62rem 1.25rem;width:auto;font-size:.82rem}
.btn-lilas{display:block;width:100%;padding:.85rem 1rem;text-align:center;background:var(--lilac);color:#ffffff;-webkit-text-fill-color:#ffffff;font-family:'Nunito',sans-serif;font-size:.88rem;font-weight:900;border:none;border-radius:50px;cursor:pointer;box-shadow:0 4px 16px rgba(155,143,232,.35);transition:transform .15s,box-shadow .15s}
.btn-lilas:hover{background:var(--lilac-dark);transform:translateY(-1px)}
.btn-lilas:active{transform:scale(.97)}
.btn-outline{display:block;padding:.78rem 1.1rem;text-align:center;background:var(--white);color:var(--mid);-webkit-text-fill-color:var(--mid);font-family:'Nunito',sans-serif;font-size:.82rem;font-weight:800;border:2px solid var(--border);border-radius:50px;cursor:pointer;transition:all .15s}
.btn-outline:hover{border-color:var(--pink);color:var(--pink-dark);-webkit-text-fill-color:var(--pink-dark)}
.btn-borda-rosa{display:block;padding:.65rem 1rem;text-align:center;flex:1;background:var(--white);color:var(--pink-dark);-webkit-text-fill-color:var(--pink-dark);font-family:'Nunito',sans-serif;font-size:.78rem;font-weight:900;border:2px solid var(--pink);border-radius:50px;cursor:pointer;transition:background .15s}
.btn-borda-rosa:hover{background:var(--pink-light)}

/* BADGES */
.badge{display:inline-flex;align-items:center;font-size:.6rem;font-weight:800;padding:2px 7px;border-radius:50px;white-space:nowrap}
.badge-pink{background:var(--pink-light);color:var(--pink-dark)}
.badge-lilac{background:var(--lilac-light);color:var(--lilac-dark)}
.badge-green{background:#DCFCE7;color:#166534}
.badge-teal{background:#E1F5EE;color:#085041}
.badge-amber{background:#FEF3C7;color:#92400E}
.badge-red{background:#FEE2E2;color:#991B1B}

/* MISC */
.av{border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:900;color:white;flex-shrink:0}
.av-sm{width:34px;height:34px;font-size:.72rem}
.av-md{width:44px;height:44px;font-size:.88rem}
.av-lg{width:60px;height:60px;font-size:1.2rem}
.card{background:var(--white);border-radius:16px;border:1px solid var(--border);overflow:hidden}
.div{height:1px;background:var(--border)}
.inp-lbl{font-size:.62rem;font-weight:800;color:var(--mid);text-transform:uppercase;letter-spacing:.4px;margin-bottom:4px;display:block}
.inp{width:100%;padding:.75rem 1rem;border:1.5px solid var(--border);border-radius:12px;font-family:'Nunito',sans-serif;font-size:.88rem;font-weight:700;color:var(--dark);background:var(--white);outline:none;transition:border-color .15s}
.inp:focus{border-color:var(--pink)}.inp::placeholder{color:#C0C0D8;font-weight:500}
.chips{display:flex;flex-wrap:wrap;gap:7px}
.chip{padding:6px 13px;border-radius:50px;border:1.5px solid var(--border);background:var(--white);color:var(--mid);font-size:.75rem;font-weight:700;cursor:pointer;font-family:'Nunito',sans-serif;transition:all .15s}
.chip.on{background:var(--pink-light);border-color:var(--pink);color:var(--pink-dark)}
.opt-grid{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}
.opt{padding:.65rem;border-radius:11px;border:1.5px solid var(--border);background:var(--white);color:var(--mid);font-size:.75rem;font-weight:800;cursor:pointer;text-align:center;font-family:'Nunito',sans-serif;transition:all .15s}
.opt.on{background:var(--pink-light);border-color:var(--pink);color:var(--pink-dark)}
.step-dots{display:flex;justify-content:center;gap:6px;margin-bottom:1.5rem}
.sdot{width:7px;height:7px;border-radius:50%;background:var(--border);transition:all .25s}
.sdot.on{background:var(--pink);width:22px;border-radius:4px}
.prog-wrap{background:var(--border);border-radius:50px;height:5px;overflow:hidden}
.prog-fill{height:100%;border-radius:50px;transition:width .4s,background .3s}
.sec-hd{padding:.75rem 1.25rem .4rem;display:flex;align-items:center;justify-content:space-between}
.sec-hd h3{font-size:.88rem;font-weight:900;color:var(--dark)}
.sec-hd span{font-size:.72rem;font-weight:700;color:var(--pink);cursor:pointer}

/* ===== SPLASH ===== */
@keyframes fadeUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
@keyframes float2{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
#sc-splash{background:linear-gradient(170deg,#FFFFFF 0%,#FDE8F1 45%,#EDE9FE 100%);padding:2.5rem 1.75rem 2rem;align-items:center;overflow:hidden}
.splash-circle1{position:absolute;width:300px;height:300px;border-radius:50%;background:radial-gradient(circle,rgba(244,114,160,.12),transparent 70%);top:-80px;right:-80px;pointer-events:none}
.splash-circle2{position:absolute;width:250px;height:250px;border-radius:50%;background:radial-gradient(circle,rgba(155,143,232,.1),transparent 70%);bottom:-60px;left:-60px;pointer-events:none}
.splash-top{width:100%;display:flex;align-items:center;justify-content:space-between;margin-bottom:2rem;animation:fadeUp .5s ease both}
.splash-logo{font-size:1.6rem;font-weight:900;color:var(--dark);letter-spacing:-.5px}
.splash-logo span{color:var(--pink)}
.splash-badge-top{background:var(--pink-light);color:var(--pink-dark);font-size:.65rem;font-weight:800;padding:.3rem .75rem;border-radius:50px;border:1px solid var(--pink-mid)}
.splash-hero{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;margin-bottom:1.75rem;animation:fadeUp .5s .1s ease both}
.splash-icon-wrap{position:relative;margin-bottom:1.5rem}
.main-icon{width:88px;height:88px;border-radius:28px;background:linear-gradient(135deg,var(--pink),var(--pink-dark));display:flex;align-items:center;justify-content:center;font-size:2.2rem;box-shadow:0 12px 32px rgba(244,114,160,.35);animation:float 3s ease-in-out infinite}
.float-badge1{position:absolute;top:-8px;right:-22px;background:white;border-radius:12px;padding:.35rem .65rem;box-shadow:0 4px 12px rgba(0,0,0,.1);display:flex;align-items:center;gap:.35rem;animation:float2 3s .5s ease-in-out infinite}
.float-badge2{position:absolute;bottom:-8px;left:-22px;background:white;border-radius:12px;padding:.35rem .65rem;box-shadow:0 4px 12px rgba(0,0,0,.1);display:flex;align-items:center;gap:.35rem;animation:float2 3s 1s ease-in-out infinite}
.fb-icon{font-size:.9rem}.fb-text{font-size:.62rem;font-weight:800;color:var(--dark)}.fb-text span{color:var(--pink)}
.splash-title{font-size:1.55rem;font-weight:900;color:var(--dark);line-height:1.2;margin-bottom:.5rem;letter-spacing:-.5px}
.splash-title em{color:var(--pink);font-style:normal}
.splash-sub-txt{font-size:.78rem;color:var(--mid);font-weight:600;line-height:1.65;max-width:260px;margin-top:.4rem}
.splash-cards{width:100%;display:flex;flex-direction:column;gap:.75rem;margin-bottom:1.25rem;animation:fadeUp .5s .2s ease both}
.scard{border-radius:20px;padding:1.1rem 1.25rem;display:flex;align-items:center;gap:.875rem;cursor:pointer;transition:all .2s;position:relative;overflow:hidden}
.scard:active{transform:scale(.97)!important}
.scard.pink{background:linear-gradient(135deg,var(--pink),var(--pink-dark));box-shadow:0 8px 24px rgba(244,114,160,.35)}
.scard.pink:hover{box-shadow:0 12px 32px rgba(244,114,160,.5);transform:translateY(-2px)}
.scard.lilac{background:linear-gradient(135deg,var(--lilac),var(--lilac-dark));box-shadow:0 8px 24px rgba(155,143,232,.35)}
.scard.lilac:hover{box-shadow:0 12px 32px rgba(155,143,232,.5);transform:translateY(-2px)}
.scard::after{content:'';position:absolute;top:-20px;right:-20px;width:80px;height:80px;border-radius:50%;background:rgba(255,255,255,.08)}
.scard-icon-wrap{width:46px;height:46px;border-radius:14px;background:rgba(255,255,255,.2);display:flex;align-items:center;justify-content:center;font-size:1.3rem;flex-shrink:0}
.scard-body{flex:1}.sc-title{font-size:.92rem;font-weight:900;color:white;margin-bottom:.2rem}
.sc-desc{font-size:.7rem;color:rgba(255,255,255,.75);font-weight:600;line-height:1.4}
.scard-arrow{font-size:1.1rem;color:rgba(255,255,255,.7);flex-shrink:0}
.splash-stats{display:flex;align-items:center;justify-content:center;gap:1.5rem;animation:fadeUp .5s .3s ease both}
.stat-item{text-align:center}.stat-val{font-size:.88rem;font-weight:900;color:var(--dark)}.stat-val span{color:var(--pink)}
.stat-lbl{font-size:.6rem;color:var(--mid);font-weight:600;margin-top:1px}.stat-div{width:1px;height:24px;background:var(--border)}

/* ===== PERMISSÃO ===== */
#sc-perm{background:linear-gradient(160deg,#FDE8F1 0%,#EDE9FE 100%)}
@keyframes pulse-loc{0%,100%{box-shadow:0 0 0 0 rgba(244,114,160,.3)}50%{box-shadow:0 0 0 18px rgba(244,114,160,0)}}
.perm-body{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem 1.75rem 1rem;text-align:center}
.perm-icon{width:82px;height:82px;border-radius:50%;background:white;display:flex;align-items:center;justify-content:center;font-size:2rem;margin:0 auto 1.25rem;animation:pulse-loc 2s infinite;box-shadow:0 8px 24px rgba(244,114,160,.2)}
.perm-title{font-size:1.15rem;font-weight:900;color:var(--dark);margin-bottom:.4rem;line-height:1.25}
.perm-title em{color:var(--pink);font-style:normal}
.perm-sub{font-size:.73rem;color:var(--mid);font-weight:600;line-height:1.65;margin-bottom:1.25rem;max-width:240px}
.perm-card{background:white;border-radius:16px;padding:.875rem 1.1rem;width:100%;text-align:left;box-shadow:0 2px 16px rgba(155,143,232,.15)}
.pb-row{display:flex;align-items:flex-start;gap:.65rem;padding:.3rem 0}
.pb-i{font-size:.9rem;flex-shrink:0;margin-top:1px}
.pb-t{font-size:.72rem;color:var(--mid);font-weight:600;line-height:1.45}.pb-t b{color:var(--dark)}
.perm-footer{padding:1rem 1.75rem 1.5rem;display:flex;flex-direction:column;gap:.625rem}
.perm-note{font-size:.62rem;color:var(--mid);text-align:center;font-weight:600;opacity:.7}

/* ===== LOADING ===== */
#sc-load{background:linear-gradient(160deg,#FDE8F1,#EDE9FE);align-items:center;justify-content:center;text-align:center}
@keyframes spin{to{transform:rotate(360deg)}}
.spinner{width:64px;height:64px;border-radius:50%;border:3px solid rgba(244,114,160,.2);border-top-color:var(--pink);margin:0 auto 1.25rem;animation:spin 1s linear infinite}
.ldots{display:flex;justify-content:center;gap:5px;margin-top:1rem}
.ldot{width:5px;height:5px;border-radius:50%}
@keyframes dp{0%,100%{opacity:.25;transform:scale(.8)}50%{opacity:1;transform:scale(1.2)}}
.ldot:nth-child(1){background:var(--pink);animation:dp 1.2s 0s infinite}
.ldot:nth-child(2){background:var(--lilac);animation:dp 1.2s .2s infinite}
.ldot:nth-child(3){background:var(--pink);animation:dp 1.2s .4s infinite}

/* ===== MAPA ===== */
#sc-mapa{flex-direction:column}
.search-bar{padding:.625rem 1rem;background:white;border-bottom:1px solid var(--border);display:flex;gap:.5rem;align-items:center;flex-shrink:0;position:relative}
.search-inner{flex:1;background:var(--bg);border-radius:50px;border:1.5px solid var(--border);display:flex;align-items:center;padding:.5rem .875rem;gap:.5rem}
.search-inp{border:none;outline:none;font-family:'Nunito',sans-serif;font-size:.82rem;font-weight:700;color:var(--dark);background:transparent;width:100%}
.search-inp::placeholder{color:#C0C0D8;font-weight:500}
.ac-list{display:none;position:absolute;top:100%;left:1rem;right:1rem;background:white;border:1.5px solid var(--border);border-radius:12px;z-index:200;box-shadow:0 8px 20px rgba(0,0,0,.1);overflow:hidden}
.ac-item{padding:.625rem 1rem;font-size:.82rem;font-weight:700;color:var(--dark);border-bottom:1px solid var(--border);cursor:pointer;display:flex;align-items:center;gap:.5rem}
.ac-item:last-child{border-bottom:none}.ac-item:hover{background:var(--pink-light)}
.map-wrap{height:200px;background:linear-gradient(135deg,#DDF0EA,#C8E6DD);position:relative;flex-shrink:0;overflow:hidden}
.road{position:absolute;background:rgba(255,255,255,.55)}.rh{height:1.5px;width:100%}.rv{width:1.5px;height:100%}
.radius-ring{position:absolute;border-radius:50%;border:1.5px dashed rgba(244,114,160,.4);background:rgba(244,114,160,.06);transform:translate(-50%,-50%)}
@keyframes me-p{0%,100%{box-shadow:0 0 0 0 rgba(26,24,37,.2)}50%{box-shadow:0 0 0 12px rgba(26,24,37,0)}}
.pin-me{position:absolute;transform:translate(-50%,-50%);z-index:10}
.pin-me-dot{width:14px;height:14px;border-radius:50%;background:var(--dark);border:3px solid white;box-shadow:0 2px 8px rgba(0,0,0,.3);animation:me-p 2s infinite}
.loc-badge{position:absolute;top:8px;left:8px;background:white;border-radius:50px;padding:.28rem .65rem;display:flex;align-items:center;gap:.35rem;box-shadow:0 2px 6px rgba(0,0,0,.1);font-size:.62rem;font-weight:800;color:var(--dark)}
.loc-dot{width:6px;height:6px;border-radius:50%;background:var(--green)}
.mf-row{position:absolute;bottom:8px;left:0;right:0;display:flex;gap:.4rem;padding:0 1rem;overflow-x:auto;scrollbar-width:none}
.mf-row::-webkit-scrollbar{display:none}
.mfc{background:white;border-radius:50px;padding:.25rem .65rem;font-size:.62rem;font-weight:800;color:var(--mid);border:1.5px solid var(--border);cursor:pointer;white-space:nowrap;transition:all .15s}
.mfc.on{background:var(--pink);color:white;border-color:var(--pink)}
.lista-hd{padding:.5rem 1.25rem .35rem;display:flex;align-items:center;justify-content:space-between;background:white;border-bottom:1px solid var(--border);flex-shrink:0}
.lh-t{font-size:.82rem;font-weight:900;color:var(--dark)}.lh-c{font-size:.65rem;font-weight:700;color:var(--mid)}
.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 2rem;text-align:center}
.empty-icon{font-size:2.5rem;margin-bottom:1rem}
.empty-title{font-size:.95rem;font-weight:900;color:var(--dark);margin-bottom:.4rem}
.empty-sub{font-size:.78rem;color:var(--mid);font-weight:600;line-height:1.6;max-width:240px}
.pi{display:flex;align-items:center;gap:.75rem;padding:.7rem 1.25rem;border-bottom:1px solid var(--border);cursor:pointer;background:white;transition:background .15s}
.pi:active,.pi.on{background:var(--pink-light)}
.pi-info{flex:1;min-width:0}.pi-nm{font-size:.83rem;font-weight:800;color:var(--dark);margin-bottom:1px}
.pi-sv{font-size:.68rem;color:var(--mid);font-weight:600;margin-bottom:3px}
.pi-row{display:flex;align-items:center;gap:.35rem;flex-wrap:wrap}
.pi-stars{font-size:.65rem;color:var(--pink);font-weight:700}
.pi-online{width:6px;height:6px;border-radius:50%;background:var(--green);flex-shrink:0}
.pi-r{text-align:right;flex-shrink:0}.pi-dist{font-size:.75rem;font-weight:900;color:var(--dark);margin-bottom:1px}
.pi-price{font-size:.65rem;color:var(--mid);font-weight:700}
.sel-card{background:white;border-top:1.5px solid var(--border);padding:.875rem 1.25rem;flex-shrink:0}
.sel-row{display:flex;align-items:center;gap:.75rem;margin-bottom:.65rem}
.sel-nm{font-size:.88rem;font-weight:900;color:var(--dark);margin-bottom:2px}
.sel-mt{font-size:.65rem;color:var(--mid);font-weight:600}
.sel-btns{display:flex;gap:.5rem}

/* ===== PERFIL ===== */
#sc-perfil{flex-direction:column}
.prof-cover{background:linear-gradient(135deg,var(--pink-light),var(--pink-mid));height:120px;position:relative;flex-shrink:0}
.prof-cover-av{position:absolute;bottom:-28px;left:1.25rem}
.prof-info{padding:2.5rem 1.25rem .875rem}
.prof-nm{font-size:1.2rem;font-weight:900;color:var(--dark);margin-bottom:2px}
.prof-sub{font-size:.78rem;color:var(--mid);font-weight:600;margin-bottom:.35rem}
.prof-stars{font-size:.78rem;color:var(--pink);font-weight:700;margin-bottom:.75rem}
.srv-row{display:flex;justify-content:space-between;align-items:center;padding:.82rem 1.1rem;border-bottom:1px solid var(--border);cursor:pointer;transition:background .15s}
.srv-row:hover{background:var(--pink-light)}
.srv-nm{font-size:.85rem;font-weight:800;color:var(--dark)}.srv-dur{font-size:.68rem;color:var(--mid);font-weight:600}
.srv-price{font-size:.88rem;font-weight:900;color:var(--dark)}
.slot-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;padding:0 1.25rem .875rem}
.slot{background:white;border:1.5px solid var(--border);border-radius:12px;padding:.55rem;text-align:center;cursor:pointer;transition:all .15s}
.slot.on,.slot:active{background:var(--pink-light);border-color:var(--pink)}
.slot-time{font-size:.85rem;font-weight:900;color:var(--dark)}.slot.on .slot-time{color:var(--pink-dark)}
.slot-date{font-size:.65rem;color:var(--mid);font-weight:600}

/* ===== CONFIRMAÇÃO ===== */
#sc-confirm{flex-direction:column}
.confirm-body{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;text-align:center}
@keyframes pop{0%{transform:scale(0)}100%{transform:scale(1)}}
.confirm-circle{width:80px;height:80px;border-radius:50%;background:var(--pink-light);display:flex;align-items:center;justify-content:center;font-size:2rem;margin:0 auto 1.25rem;animation:pop .4s cubic-bezier(.34,1.56,.64,1)}
.recap{background:var(--bg);border-radius:14px;padding:1rem 1.1rem;width:100%;text-align:left;margin-bottom:1.5rem}
.recap-row{display:flex;justify-content:space-between;font-size:.8rem;padding:5px 0;border-bottom:1px solid var(--border)}
.recap-row:last-child{border-bottom:none}
.recap-lbl{color:var(--mid);font-weight:600}.recap-val{font-weight:800;color:var(--dark)}

/* ===== LINK BLOQUEADO ===== */
#sc-bloqueado{flex-direction:column}
.lb-body{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;text-align:center;background:var(--bg)}
.lb-av{width:80px;height:80px;border-radius:50%;background:var(--pink-light);display:flex;align-items:center;justify-content:center;font-size:1.6rem;font-weight:900;color:var(--pink-dark);margin:0 auto 1rem}
.lb-nm{font-size:1.05rem;font-weight:900;color:var(--dark);margin-bottom:.25rem}
.lb-srv{font-size:.78rem;color:var(--mid);font-weight:600;margin-bottom:1.5rem}
.lb-card{background:var(--pink-light);border-radius:18px;padding:1.5rem;width:100%;margin-bottom:1.25rem}
.lb-emoji{font-size:2rem;margin-bottom:.75rem}
.lb-title{font-size:.95rem;font-weight:900;color:var(--dark);margin-bottom:.4rem}
.lb-msg{font-size:.8rem;color:var(--mid);font-weight:600;line-height:1.7}
.lb-msg strong{color:var(--pink-dark)}

/* ===== CHAT ===== */
#sc-chat{flex-direction:column}
.chat-top{background:white;border-bottom:1px solid var(--border);flex-shrink:0}
.chat-top-main{display:flex;align-items:center;gap:.75rem;padding:.75rem 1.1rem}
.chat-nm{font-size:.9rem;font-weight:900;color:var(--dark)}.chat-status{font-size:.68rem;font-weight:600;color:var(--green)}
.timer-bar{background:var(--pink-light);padding:.5rem 1rem;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--pink-mid)}
.timer-txt{font-size:.68rem;font-weight:700;color:var(--pink-dark);display:flex;align-items:center;gap:.5rem}
.timer-cd{font-size:.72rem;font-weight:900;color:var(--pink-dark);font-variant-numeric:tabular-nums}
.service-notice{background:var(--bg);margin:.75rem;border-radius:12px;padding:.75rem;text-align:center;border:1px solid var(--border)}
.sn-title{font-size:.78rem;font-weight:800;color:var(--dark);margin-bottom:.2rem}
.sn-sub{font-size:.68rem;color:var(--mid);font-weight:600;line-height:1.5}
.msgs{flex:1;overflow-y:auto;padding:.5rem .875rem;display:flex;flex-direction:column;gap:.5rem}
.msgs::-webkit-scrollbar{display:none}
.msg-wrap{display:flex;flex-direction:column}
.msg-wrap.sent{align-items:flex-end}.msg-wrap.recv{align-items:flex-start}
.msg-bubble{max-width:78%;padding:.625rem .875rem;border-radius:18px;font-size:.82rem;font-weight:600;line-height:1.55}
.msg-wrap.sent .msg-bubble{background:var(--pink);color:white;border-bottom-right-radius:4px}
.msg-wrap.recv .msg-bubble{background:white;color:var(--dark);border:1px solid var(--border);border-bottom-left-radius:4px}
.msg-time{font-size:.6rem;font-weight:700;margin-top:3px;padding:0 4px}
.msg-wrap.sent .msg-time{color:rgba(255,255,255,.6);text-align:right}
.msg-wrap.recv .msg-time{color:var(--mid)}
.date-sep{text-align:center;margin:.5rem 0}
.date-sep span{font-size:.65rem;font-weight:700;color:var(--mid);background:var(--bg);padding:.25rem .75rem;border-radius:50px;border:1px solid var(--border)}
.chat-input{background:white;border-top:1px solid var(--border);padding:.625rem .875rem;flex-shrink:0}
.input-row{display:flex;align-items:flex-end;gap:.5rem}
.input-actions{display:flex;gap:.375rem}
.act-btn{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1rem;border:none;cursor:pointer;transition:all .15s;flex-shrink:0;background:var(--pink-light)}
.act-btn:hover{transform:scale(1.08)}
@keyframes pulse-rec{0%,100%{box-shadow:0 0 0 0 rgba(244,114,160,.4)}50%{box-shadow:0 0 0 8px rgba(244,114,160,0)}}
.act-btn.recording{background:var(--pink);animation:pulse-rec 1s infinite}
.txt-wrap{flex:1;background:var(--bg);border-radius:20px;border:1px solid var(--border);display:flex;align-items:center;padding:.5rem .875rem}
.txt-inp{border:none;outline:none;font-family:'Nunito',sans-serif;font-size:.82rem;font-weight:600;color:var(--dark);background:transparent;flex:1;resize:none;max-height:80px}
.txt-inp::placeholder{color:#C0C0D8;font-weight:500}
.send-btn{width:36px;height:36px;border-radius:50%;background:var(--pink);color:white;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:.9rem;flex-shrink:0;transition:all .15s;box-shadow:0 2px 8px rgba(244,114,160,.4)}
.send-btn:hover{background:var(--pink-dark);transform:scale(1.05)}
.rec-bar{background:var(--pink-light);padding:.5rem .875rem;display:flex;align-items:center;gap:.75rem;border-top:1px solid var(--pink-mid)}
.rec-dot{width:8px;height:8px;border-radius:50%;background:var(--pink)}
@keyframes rdot{0%,100%{opacity:1}50%{opacity:.3}}
.rec-dot{animation:rdot 1s infinite}
.rec-time{font-size:.8rem;font-weight:800;color:var(--pink-dark);font-variant-numeric:tabular-nums}
.rec-cancel{font-size:.72rem;font-weight:700;color:var(--mid);border:none;background:none;cursor:pointer;font-family:'Nunito',sans-serif}
.rec-send{background:var(--pink);color:white;border:none;border-radius:50px;padding:.38rem .875rem;font-size:.72rem;font-weight:800;cursor:pointer;font-family:'Nunito',sans-serif;margin-left:auto}

/* ===== CADASTRO ===== */
#sc-cadastro{flex-direction:column}
.cad-body{flex:1;overflow-y:auto;padding:1.25rem 1.25rem .5rem}
.cad-body::-webkit-scrollbar{display:none}
.cad-step-lbl{font-size:.65rem;font-weight:800;color:var(--pink);text-transform:uppercase;letter-spacing:.5px;margin-bottom:.35rem}
.cad-title{font-size:1.15rem;font-weight:900;color:var(--dark);margin-bottom:.3rem;line-height:1.25}
.cad-sub{font-size:.78rem;color:var(--mid);font-weight:600;margin-bottom:1.5rem;line-height:1.5}
.photo-zone{border:2px dashed var(--border);border-radius:12px;padding:1.4rem;text-align:center;cursor:pointer;transition:border-color .15s;margin-bottom:1rem}
.photo-zone:hover{border-color:var(--pink)}
.cad-foot{flex-shrink:0;padding:.875rem 1.25rem 1.1rem;background:white;border-top:1.5px solid var(--border)}
.cad-foot-btns{display:flex;gap:.625rem;margin-bottom:.4rem;align-items:center}
.cad-foot-note{font-size:.62rem;color:var(--mid);text-align:center;font-weight:600}

/* ===== LOCALIZAÇÃO CADASTRO ===== */
.loc-box{background:white;border-radius:14px;border:1.5px solid var(--border);overflow:hidden;margin-bottom:.875rem}
.loc-map-mini{height:110px;background:linear-gradient(135deg,#DDF0EA,#C8E6DD);position:relative;display:flex;align-items:center;justify-content:center}
@keyframes rp{0%{transform:translate(-50%,-50%) scale(.5);opacity:1}100%{transform:translate(-50%,-50%) scale(1.8);opacity:0}}
.lring{position:absolute;width:42px;height:42px;border-radius:50%;border:2px solid rgba(244,114,160,.3);top:50%;left:50%;transform:translate(-50%,-50%);animation:rp 2s infinite}
.ldot-map{width:14px;height:14px;border-radius:50%;background:var(--pink);border:3px solid white;box-shadow:0 2px 8px rgba(244,114,160,.5);position:relative;z-index:2}
.loc-info-row{display:flex;align-items:center;gap:.75rem;padding:.65rem 1rem;border-top:1px solid var(--border)}
.loc-addr{font-size:.78rem;font-weight:800;color:var(--dark)}.loc-city{font-size:.65rem;color:var(--mid);font-weight:600}
.loc-upd{font-size:.65rem;font-weight:800;color:var(--pink);cursor:pointer;white-space:nowrap;border:none;background:none;font-family:'Nunito',sans-serif}
.raio-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.45rem}
.raio-lbl{font-size:.72rem;font-weight:800;color:var(--dark)}.raio-num{font-size:.85rem;font-weight:900;color:var(--pink)}
input[type=range]{width:100%;-webkit-appearance:none;height:4px;border-radius:2px;background:var(--border);outline:none;cursor:pointer;margin-bottom:.3rem}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:20px;height:20px;border-radius:50%;background:var(--pink);cursor:pointer;box-shadow:0 2px 8px rgba(244,114,160,.4);border:2.5px solid white}
.raio-marks{display:flex;justify-content:space-between;margin-bottom:.75rem}
.raio-mk{font-size:.6rem;color:var(--mid);font-weight:600}
.raio-tip{background:var(--pink-light);border-radius:10px;padding:.7rem .875rem;margin-bottom:.875rem;font-size:.7rem;color:var(--mid);font-weight:600;line-height:1.6}
.raio-tip b{color:var(--dark)}

/* ===== PAINEL ===== */
#sc-painel{flex-direction:column;overflow:hidden}
.painel-nav{background:white;height:62px;display:flex;align-items:center;justify-content:space-between;padding:0 1.25rem;border-bottom:1px solid var(--border);flex-shrink:0}
.painel-logo{font-size:1.2rem;font-weight:900;color:var(--dark)}.painel-logo span{color:var(--pink)}
.painel-av{width:34px;height:34px;border-radius:50%;background:var(--pink-light);display:flex;align-items:center;justify-content:center;font-size:.72rem;font-weight:900;color:var(--pink-dark)}
.banner{padding:.7rem 1.25rem;display:flex;align-items:center;gap:.75rem;flex-shrink:0}
.banner.warn{background:#FEF3C7;border-bottom:1px solid #FDE68A}
.banner.danger{background:#FEE2E2;border-bottom:1px solid #FECACA}
.banner.blocked{background:var(--dark);border-bottom:1px solid #333}
.banner-txt{flex:1;font-size:.72rem;font-weight:700;line-height:1.4}
.banner.warn .banner-txt{color:#92400E}.banner.danger .banner-txt{color:#991B1B}.banner.blocked .banner-txt{color:rgba(255,255,255,.8)}
.banner-btn{font-size:.68rem;font-weight:800;color:white;border:none;border-radius:50px;padding:.35rem .875rem;cursor:pointer;white-space:nowrap;font-family:'Nunito',sans-serif;flex-shrink:0}
.banner.warn .banner-btn{background:var(--amber)}.banner.danger .banner-btn{background:var(--red)}.banner.blocked .banner-btn{background:var(--pink)}
.metric-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem;padding:.875rem 1.25rem}
.metric-box{background:white;border-radius:14px;padding:.875rem 1rem;border:1px solid var(--border)}
.mb-val{font-size:1.6rem;font-weight:900;color:var(--dark);letter-spacing:-.5px;line-height:1}
.mb-lbl{font-size:.65rem;color:var(--mid);font-weight:700;margin-top:3px}
.mb-sub{font-size:.65rem;font-weight:600;margin-top:1px}
.mb-sub.green{color:var(--green)}.mb-sub.red{color:var(--red)}.mb-sub.amber{color:var(--amber)}
.link-box{background:var(--dark);border-radius:16px;padding:1rem 1.1rem;margin:0 1.25rem .875rem;cursor:pointer;transition:transform .15s,opacity .15s}
.link-box:active{transform:scale(.98)}
.lb-label{font-size:.62rem;font-weight:800;color:rgba(255,255,255,.4);text-transform:uppercase;letter-spacing:.4px;margin-bottom:3px}
.lb-url{font-size:.88rem;font-weight:800;color:var(--pink);margin-bottom:.75rem}
.lb-actions{display:flex;gap:.5rem}
.plan-bar{background:white;border-radius:14px;border:1px solid var(--border);padding:.875rem 1rem;margin:0 1.25rem .875rem}
.pb-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}
.pb-lbl{font-size:.75rem;font-weight:800;color:var(--dark)}.pb-cnt{font-size:.72rem;font-weight:800}
.agenda-item{display:flex;align-items:center;gap:.875rem;padding:.8rem 1.25rem;border-bottom:1px solid var(--border);background:white;cursor:pointer;transition:background .15s}
.agenda-item:active{background:var(--pink-light)}
.ai-time{font-size:.82rem;font-weight:900;color:var(--pink);min-width:44px}
.ai-nm{font-size:.85rem;font-weight:800;color:var(--dark)}.ai-sv{font-size:.68rem;color:var(--mid);font-weight:600}
.ai-pr{font-size:.82rem;font-weight:900;color:var(--dark)}
.cliente-row{display:flex;align-items:center;gap:.75rem;padding:.75rem 1.25rem;border-bottom:1px solid var(--border);background:white;cursor:pointer;transition:background .15s}
.cliente-row:active{background:var(--pink-light)}
.cr-nm{font-size:.85rem;font-weight:800;color:var(--dark);margin-bottom:1px}
.cr-mt{font-size:.68rem;color:var(--mid);font-weight:600}.cr-last{font-size:.68rem;font-weight:700;color:var(--pink-dark)}
.sim-wrap{display:flex;align-items:center;gap:.5rem}
.sim-lbl{font-size:.62rem;color:var(--mid);font-weight:700;white-space:nowrap}
select.sim-sel{border:1.5px solid var(--border);border-radius:8px;font-family:'Nunito',sans-serif;font-size:.72rem;font-weight:800;color:var(--dark);padding:.28rem .5rem;background:white;outline:none;cursor:pointer}

/* ===== VAIDOSA STARS GAMIFICATION ===== */
.stars-card-gradient {
  background: linear-gradient(135deg, #F3E8FF, #FCE7F3);
  border: 1.5px solid #E9D5FF;
  border-radius: 16px;
  padding: 1.1rem;
  margin: 0 1.25rem .875rem;
  transition: transform .15s, box-shadow .15s;
  cursor: pointer;
  box-shadow: 0 2px 10px rgba(168, 85, 247, 0.08);
}
.stars-card-gradient:active {
  transform: scale(.98);
}
.stars-modal-header {
  background: linear-gradient(135deg, #CC9CF4, #F472A0);
  padding: 1.5rem;
  text-align: center;
  color: white;
  border-radius: 18px 18px 0 0;
}
.stars-progress-bg {
  background: rgba(255, 255, 255, 0.25);
  border-radius: 10px;
  height: 8px;
  overflow: hidden;
  margin: .5rem 0;
}
.stars-progress-fill {
  background: white;
  height: 100%;
  border-radius: 10px;
  transition: width .4s ease;
}
.selos-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: .75rem;
  margin-top: .75rem;
}
.selo-item {
  background: #FDF4FF;
  border: 1.5px solid #F5D0FE;
  border-radius: 12px;
  padding: .75rem .5rem;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: background .15s, transform .1s, box-shadow .1s;
  box-shadow: 0 2px 6px rgba(15, 23, 42, 0.02);
}
.selo-item:active {
  transform: scale(0.95);
}
.selo-item.bloqueado {
  background: #F3F4F6;
  border-color: #E5E7EB;
  filter: grayscale(1);
  opacity: .55;
  box-shadow: none;
}
.selo-emoji {
  font-size: 1.8rem;
  margin-bottom: .25rem;
}
.selo-name {
  font-size: .65rem;
  font-weight: 800;
  color: #581C87;
  line-height: 1.2;
}
.selo-item.bloqueado .selo-name {
  color: #4B5563;
}
.stars-toast {
  position: fixed;
  bottom: 80px;
  left: 50%;
  transform: translateX(-50%) translateY(100px);
  background: #1E1B4B; /* Deep indigo */
  color: white;
  padding: .75rem 1.25rem;
  border-radius: 50px;
  font-size: .78rem;
  font-weight: 800;
  display: flex;
  align-items: center;
  gap: .5rem;
  box-shadow: 0 10px 25px rgba(244, 114, 160, 0.25);
  z-index: 10000;
  opacity: 0;
  pointer-events: none;
  transition: transform .35s cubic-bezier(0.175, 0.885, 0.32, 1.275), opacity .35s;
}
.stars-toast.show {
  transform: translateX(-50%) translateY(0);
  opacity: 1;
}

/* Confetti Pure CSS */
.confetti-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: 99999;
  overflow: hidden;
}
.confetti-piece {
  position: absolute;
  width: 10px;
  height: 10px;
  opacity: 0.8;
  border-radius: 4px; /* Squares / rects look like real confetti */
  animation: fall 2.5s linear forwards;
}
@keyframes fall {
  0% {
    transform: translateY(-20px) rotate(0deg) translateX(0);
    opacity: 1;
  }
  50% {
    translateX: 20px;
  }
  100% {
    transform: translateY(11vh) rotate(540deg) translateX(-20px);
    opacity: 0;
  }
}

