@layer theme, app, base, components, utilities;
@layer app {
:root{
  --navy:oklch(0.21 0.045 245);--navy2:oklch(0.32 0.065 245);--gold:oklch(0.84 0.17 85);--gold2:oklch(0.89 0.16 95);--bg:oklch(0.975 0.004 250);--card:#fff;--tx:oklch(0.24 0.02 250);--mut:oklch(0.55 0.02 260);--bd:oklch(0.91 0.008 250);
  --ok:oklch(0.62 0.15 150);--err:oklch(0.6 0.22 25);--amber:#c98900;--blue:#2563eb;--r:14px;
  --sh:0 6px 24px -12px color-mix(in oklab,var(--navy) 35%,transparent);--lift:0 18px 40px -18px color-mix(in oklab,var(--navy) 45%,transparent);
  --fd:"Outfit",system-ui,sans-serif;--fb:"Figtree",system-ui,-apple-system,"Segoe UI",sans-serif;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--tx);font:15px/1.5 var(--fb);-webkit-font-smoothing:antialiased}
h1,h2,h3,h4{font-family:var(--fd);line-height:1.2;margin:0 0 .4em;letter-spacing:-.01em}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:3px solid color-mix(in srgb,var(--gold) 70%,#fff);outline-offset:2px}
.ic{width:1.15em;height:1.15em;flex:none;vertical-align:-.2em}
.ic.fill{fill:var(--gold);stroke:var(--gold)}
.muted{color:var(--mut)}.small{font-size:.85rem}.center{text-align:center}.right{text-align:right}
.row{display:flex;align-items:center}.row.gap{gap:10px}.row.gap-lg{gap:18px}.row.wrap{flex-wrap:wrap}.row.between{justify-content:space-between}.row.end{justify-content:flex-end}.grow{flex:1;min-width:0}
.grid{display:grid;gap:18px}.g2{grid-template-columns:repeat(2,minmax(0,1fr))}.g3{grid-template-columns:repeat(3,minmax(0,1fr))}.g4{grid-template-columns:repeat(4,minmax(0,1fr))}
.noscroll{overflow:hidden}
.wrap-x{max-width:1200px;margin:0 auto;padding:0 16px}
.trunc{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hide{display:none!important}

/* botões */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:999px;padding:10px 20px;font-weight:700;font-size:.92rem;cursor:pointer;transition:filter .15s,transform .05s,background .15s;white-space:nowrap}
.btn:active{transform:translateY(1px)}
.btn[disabled]{opacity:.6;cursor:not-allowed}
.btn.loading{position:relative;color:transparent!important}
.btn.loading::after{content:"";position:absolute;width:16px;height:16px;border:2px solid var(--navy);border-right-color:transparent;border-radius:50%;animation:spin .7s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.btn.primary{background:linear-gradient(135deg,var(--gold),var(--gold2));color:var(--navy)}
.btn.primary:hover{filter:brightness(1.05)}
.btn.navy{background:var(--navy);color:#fff}.btn.navy:hover{background:var(--navy2)}
.btn.ghost{background:transparent;border:1.5px solid var(--bd);color:var(--tx)}.btn.ghost:hover{background:var(--bg)}
.btn.danger{background:var(--err);color:#fff}
.btn.ok{background:var(--ok);color:#fff}
.btn.sm{padding:6px 14px;font-size:.82rem}.btn.wfull{width:100%}
.iconbtn{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:50%;border:1px solid var(--bd);background:#fff;cursor:pointer;color:var(--navy2)}
.iconbtn:hover{background:var(--bg)}.iconbtn.danger:hover{color:var(--err);border-color:var(--err)}

/* formulários */
.fld{display:block;margin-bottom:14px}.fld>span{display:block;font-weight:600;font-size:.85rem;margin-bottom:5px}
.fld small{display:block;color:var(--mut);margin-top:4px;font-size:.78rem}
input:not([type]),input[type=text],input[type=email],input[type=password],input[type=tel],input[type=url],input[type=number],input[type=datetime-local],input[type=time],input[type=search],select,textarea{width:100%;border:1px solid var(--bd);background:#fff;border-radius:12px;padding:10px 13px;outline:none;min-height:44px}
textarea{resize:vertical}
input:disabled,input[readonly]{background:oklch(0.95 0.006 250);color:var(--mut);cursor:not-allowed}
input:focus,select:focus,textarea:focus{border-color:var(--gold);box-shadow:0 0 0 3px color-mix(in srgb,var(--gold) 28%,transparent)}
input[type=checkbox],input[type=radio]{accent-color:var(--gold);width:18px;height:18px}
.chk{display:flex;align-items:center;gap:10px;cursor:pointer;font-weight:500;margin-bottom:10px}
.err-msg{background:#fdecea;color:#9b1c1c;border-radius:12px;padding:10px 14px;margin-bottom:14px;font-size:.9rem}
.ok-msg{background:#e7f6ed;color:#146c2e;border-radius:12px;padding:10px 14px;margin-bottom:14px;font-size:.9rem}
.hint{background:#fff8e1;border:1px solid #ffe08a;color:#6b5200;border-radius:12px;padding:10px 14px;font-size:.88rem;margin-bottom:14px}

/* cards e etiquetas */
.card{background:var(--card);border-radius:var(--r);box-shadow:var(--sh);padding:20px}
.card.flat{box-shadow:none;border:1px solid var(--bd)}
.pill{display:inline-block;padding:2px 10px;border-radius:999px;font-size:.74rem;font-weight:700}
.pill.green{background:#e0f5e9;color:#136c36}.pill.red{background:#fde4e1;color:#a3281d}.pill.amber{background:#fff1cc;color:#7a5600}.pill.gray{background:#e9edf3;color:#4a566a}.pill.blue{background:#dfeafe;color:#1c4fbd}
.badge{display:inline-block;border-radius:8px;padding:2px 9px;font-size:.7rem;font-weight:800;text-transform:uppercase;letter-spacing:.03em;background:var(--gold);color:var(--navy)}
.badge.red{background:var(--err);color:#fff}.badge.green{background:var(--ok);color:#fff}.badge.navy{background:var(--navy);color:var(--gold)}
.rate{display:inline-flex;align-items:center;gap:4px;font-weight:700;font-size:.9rem}.rate small{font-weight:400;color:var(--mut)}
.empty{text-align:center;padding:48px 16px}.empty .ic{width:42px;height:42px;color:var(--gold);margin-bottom:8px}
.skel{background:linear-gradient(90deg,#e8edf4,#f4f7fb,#e8edf4);background-size:200% 100%;animation:sk 1.2s infinite;border-radius:12px}
@keyframes sk{to{background-position:-200% 0}}
.loading-page{display:grid;place-items:center;min-height:50vh}
.spinner{width:34px;height:34px;border:3px solid var(--bd);border-top-color:var(--gold);border-radius:50%;animation:spin .8s linear infinite}

/* toast e modal */
#toasts{position:fixed;right:16px;bottom:84px;z-index:200;display:grid;gap:8px;max-width:calc(100vw - 32px)}
@media(min-width:900px){#toasts{bottom:20px}}
.toast{background:var(--navy);color:#fff;border-left:5px solid var(--ok);padding:12px 16px;border-radius:12px;box-shadow:var(--lift);font-weight:600;transition:.3s}
.toast.err{border-color:var(--err)}.toast.out{opacity:0;transform:translateY(8px)}
.modal-back{position:fixed;inset:0;background:rgba(13,34,64,.55);z-index:150;display:grid;place-items:center;padding:16px;overflow:auto}
.modal{background:#fff;border-radius:18px;padding:24px;width:100%;max-width:440px;box-shadow:var(--lift);max-height:92vh;overflow:auto}
.modal.wide{max-width:720px}.modal h3{font-size:1.2rem}

/* tabelas */
.tbl-wrap{overflow-x:auto;border:1px solid var(--bd);border-radius:12px;background:#fff}
table.tbl{width:100%;border-collapse:collapse;font-size:.88rem}
.tbl th{text-align:left;padding:11px 14px;background:#f7f9fc;font-size:.76rem;color:var(--mut);font-weight:700;white-space:nowrap}
.tbl td{padding:11px 14px;border-top:1px solid var(--bd);vertical-align:middle}
.tbl tr:hover td{background:#fafcff}
.tbl .acts{display:flex;gap:6px;justify-content:flex-end;flex-wrap:wrap}
.thumb{width:40px;height:40px;border-radius:10px;object-fit:cover;background:var(--navy);color:var(--gold);display:grid;place-items:center;font-family:var(--fd);font-weight:700;flex:none;overflow:hidden}
.tabs{display:flex;gap:4px;overflow-x:auto;border-bottom:1px solid var(--bd);margin-bottom:16px}
.tabs a,.tabs button{border:0;background:none;padding:10px 14px;font-weight:700;color:var(--mut);border-bottom:3px solid transparent;cursor:pointer;white-space:nowrap}
.tabs .on{color:var(--tx);border-color:var(--gold)}
.pager{display:flex;gap:6px;justify-content:center;margin-top:18px;align-items:center}

/* gráficos */
.chart{width:100%;height:auto}.chart .gl{stroke:#e8edf4;stroke-width:1}.chart .gt{fill:var(--mut);font-size:11px}
.donut{width:100%;max-width:210px;height:auto}.donut .dn{font:700 22px var(--fd);fill:var(--navy)}.donut .ds{font-size:11px;fill:var(--mut)}
.legend{display:flex;gap:16px;font-size:.82rem;color:var(--mut);flex-wrap:wrap}.legend i{display:inline-block;width:12px;height:6px;border-radius:3px;margin-right:6px;vertical-align:middle}

/* ===== Site público ===== */
.site-head{position:sticky;top:0;z-index:60;background:rgba(13,34,64,.94);backdrop-filter:blur(14px);color:#fff}
.site-head .in{display:flex;align-items:center;justify-content:space-between;gap:14px;height:64px}
.logo{display:flex;align-items:center;gap:10px}
.logo .dot{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,var(--gold),var(--gold2));color:var(--navy);display:grid;place-items:center;box-shadow:var(--sh)}
.logo b{display:block;font:700 1.1rem var(--fd);line-height:1.1}.logo small{display:block;font-size:.72rem;opacity:.7}
.site-nav{display:none;gap:26px}.site-nav a{font-weight:600;font-size:.9rem;color:rgba(255,255,255,.82)}.site-nav a:hover,.site-nav a.on{color:var(--gold)}
@media(min-width:1000px){.site-nav{display:flex}}
.head-r{display:flex;align-items:center;gap:8px}.head-city{display:none;align-items:center;gap:4px;font-size:.88rem;opacity:.85}
@media(min-width:760px){.head-city{display:flex}}
.avatar{width:38px;height:38px;border-radius:50%;background:var(--gold);color:var(--navy);display:grid;place-items:center;font-weight:800;border:0;cursor:pointer}
.menu-pop{position:absolute;right:16px;top:60px;background:#fff;color:var(--tx);border-radius:14px;box-shadow:var(--lift);padding:8px;min-width:210px;z-index:70}
.menu-pop a,.menu-pop button{display:flex;align-items:center;gap:10px;width:100%;text-align:left;padding:10px 12px;border:0;background:none;border-radius:10px;cursor:pointer;font-weight:600}
.menu-pop a:hover,.menu-pop button:hover{background:var(--bg)}
.bottom-nav{position:fixed;inset:auto 0 0 0;z-index:60;background:var(--navy);display:grid;grid-template-columns:repeat(5,1fr);padding-bottom:env(safe-area-inset-bottom)}
.bottom-nav a{display:flex;flex-direction:column;align-items:center;gap:3px;padding:9px 0;font-size:.68rem;color:rgba(255,255,255,.7)}.bottom-nav a.on{color:var(--gold)}.bottom-nav .ic{width:22px;height:22px}
@media(min-width:1000px){.bottom-nav{display:none}}
main.site{padding-bottom:78px;min-height:70vh}@media(min-width:1000px){main.site{padding-bottom:0}}
.hero{position:relative;margin-top:-64px;padding-top:64px;color:#fff;background:var(--navy) center/cover}
.hero::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(13,34,64,.86),rgba(13,34,64,.58) 55%,rgba(13,34,64,.93))}
.hero .in{position:relative;padding:56px 16px 36px}
@media(min-width:760px){.hero .in{padding-top:92px}}
.hero h1{font-size:clamp(2rem,6vw,3.6rem);font-weight:800;max-width:15em}.hero h1 em{font-style:normal;color:var(--gold)}
.hero p.lead{font-size:1.1rem;opacity:.85;max-width:34em}
.searchbar{margin-top:26px;background:#fff;color:var(--tx);border-radius:18px;padding:8px;box-shadow:var(--lift);display:grid;gap:6px;grid-template-columns:1fr}
@media(min-width:760px){.searchbar{grid-template-columns:minmax(0,1fr) 200px auto}}
.searchbar label{display:flex;align-items:center;gap:10px;padding:0 12px}.searchbar input{border:0;box-shadow:none!important;min-height:48px;padding:0}
.searchbar .loc{display:flex;align-items:center;gap:6px;padding:0 14px;font-size:.88rem;border-top:1px solid var(--bd)}
@media(min-width:760px){.searchbar .loc{border-top:0;border-left:1px solid var(--bd)}}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.chip{border:1px solid rgba(255,255,255,.28);color:rgba(255,255,255,.85);border-radius:999px;padding:4px 14px;font-size:.84rem}.chip:hover{border-color:var(--gold);color:var(--gold)}
.cat-row{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:30px}
@media(min-width:760px){.cat-row{grid-template-columns:repeat(9,1fr)}}
.cat-ic{display:flex;flex-direction:column;align-items:center;gap:7px;text-align:center;font-size:.76rem;font-weight:600}
.cat-ic i{font-style:normal;width:56px;height:56px;border-radius:18px;background:rgba(27,59,102,.8);border:1px solid rgba(255,255,255,.15);display:grid;place-items:center;font-size:1.5rem;transition:.15s}
.cat-ic:hover i{background:var(--gold)}
.sec{padding:44px 0}.sec.white{background:#fff}
.sec-t{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:18px}.sec-t h2{font-size:clamp(1.4rem,3vw,1.9rem);margin:0}.sec-t a{font-weight:700;font-size:.88rem;color:var(--navy3)}.sec-t a:hover{color:var(--amber)}
.pagehead{background:var(--navy);color:#fff}.pagehead .wrap-x{padding-top:30px;padding-bottom:30px}.pagehead h1{font-size:clamp(1.7rem,4vw,2.4rem);margin:0}.pagehead p{margin:6px 0 0;opacity:.75}
.bcard{display:block;background:#fff;border-radius:18px;box-shadow:var(--sh);overflow:hidden;transition:.2s}.bcard:hover{transform:translateY(-4px);box-shadow:var(--lift)}
.media{position:relative;aspect-ratio:4/3;overflow:hidden;background:linear-gradient(135deg,var(--navy2),var(--navy3));display:grid;place-items:center;font-size:2.6rem}
.media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .5s}.bcard:hover .media img{transform:scale(1.05)}
.media .tl{position:absolute;left:10px;top:10px;display:flex;gap:6px;flex-wrap:wrap;z-index:2}.media .fav{position:absolute;right:10px;top:10px;z-index:2}
.favbtn{width:36px;height:36px;border-radius:50%;border:0;background:rgba(255,255,255,.92);display:grid;place-items:center;cursor:pointer;box-shadow:var(--sh);color:var(--navy)}.favbtn:hover{transform:scale(1.1)}.favbtn.on .ic{fill:var(--gold);stroke:var(--gold)}
.bcard .bd{padding:14px 16px 16px}.bcard h3{font-size:1.08rem;margin:0}.bcard .sub{color:var(--mut);font-size:.86rem}
.bcard .meta{display:flex;justify-content:space-between;align-items:center;margin:8px 0 10px;font-size:.84rem;color:var(--mut)}
.bcard .cta{display:block;text-align:center;border-radius:999px;background:var(--navy);color:#fff;padding:8px;font-weight:700;font-size:.88rem}.bcard:hover .cta{background:var(--gold);color:var(--navy)}
.brow{display:grid;grid-template-columns:96px minmax(0,1fr);gap:14px;background:#fff;border-radius:16px;box-shadow:var(--sh);padding:12px;transition:.2s}.brow:hover{box-shadow:var(--lift)}
@media(min-width:640px){.brow{grid-template-columns:176px minmax(0,1fr)}}
.brow .pic{border-radius:12px;overflow:hidden;background:linear-gradient(135deg,var(--navy2),var(--navy3));aspect-ratio:1;display:grid;place-items:center;font-size:2rem;position:relative}
@media(min-width:640px){.brow .pic{aspect-ratio:4/3}}.brow .pic img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.brow h3{font-size:1.05rem;margin:0}.brow .line{display:flex;gap:12px;flex-wrap:wrap;align-items:center;font-size:.85rem;color:var(--mut);margin-top:3px}
.ocard{background:#fff;border-radius:18px;box-shadow:var(--sh);overflow:hidden;transition:.2s;display:flex;flex-direction:column}.ocard:hover{transform:translateY(-4px);box-shadow:var(--lift)}
.ocard .media{aspect-ratio:16/10}.ocard .bd{padding:14px 16px 16px;display:flex;flex-direction:column;gap:6px;flex:1}
.disc{position:absolute;left:10px;top:10px;background:var(--err);color:#fff;border-radius:10px;padding:3px 10px;font:700 .9rem var(--fd);z-index:2}
.price-old{text-decoration:line-through;color:var(--mut);font-size:.88rem}.price-new{font:700 1.3rem var(--fd);color:var(--err)}
.filters{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px;margin-bottom:18px}
.fchip{border:0;border-radius:999px;padding:8px 16px;font-weight:700;font-size:.86rem;background:#fff;box-shadow:var(--sh);cursor:pointer;white-space:nowrap}.fchip.on{background:var(--gold);color:var(--navy)}
.banner-slot{display:block;border-radius:16px;overflow:hidden;box-shadow:var(--sh);position:relative;background:var(--navy)}.banner-slot img{width:100%;height:auto;aspect-ratio:4/1;object-fit:cover}
.banner-slot .ad{position:absolute;right:8px;top:8px;background:rgba(13,34,64,.75);color:#fff;font-size:.65rem;padding:2px 8px;border-radius:6px;letter-spacing:.04em}
.two{display:grid;gap:22px}@media(min-width:900px){.two{grid-template-columns:1fr 1fr}}
.top-list li{list-style:none}.top-list a{display:flex;align-items:center;gap:14px;padding:11px;border-radius:12px}.top-list a:hover{background:var(--bg)}.top-list ol{padding:0;margin:0}
.top-list .n{width:34px;height:34px;border-radius:50%;background:var(--navy);color:var(--gold);display:grid;place-items:center;font:700 1rem var(--fd)}
.cta-box{background:var(--navy);color:#fff;border-radius:24px;padding:30px;position:relative;overflow:hidden}.cta-box h2{font-size:1.9rem}.cta-box h2 em{font-style:normal;color:var(--gold)}
.cta-box li{list-style:none;display:flex;gap:8px;align-items:center;margin:8px 0;font-size:.92rem}.cta-box li .ic{color:var(--gold)}.cta-box ul{padding:0}
.layout-l{display:grid;gap:24px;padding:24px 16px}@media(min-width:1000px){.layout-l{grid-template-columns:260px minmax(0,1fr)}}
.aside{background:#fff;border-radius:16px;box-shadow:var(--sh);padding:20px;height:fit-content}.aside h2{font-size:1.1rem}
.sheet-back{position:fixed;inset:0;background:rgba(13,34,64,.55);z-index:100}.sheet{position:absolute;inset:auto 0 0 0;background:#fff;border-radius:22px 22px 0 0;padding:22px;max-height:86vh;overflow:auto}
.bizhead{height:240px;position:relative;background:var(--navy) center/cover}@media(min-width:760px){.bizhead{height:320px}}
.bizhead::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(13,34,64,.35),rgba(13,34,64,.7))}
.bizhead .top{position:absolute;inset:14px 16px auto;z-index:2;display:flex;justify-content:space-between}
.bizcard{max-width:960px;margin:-64px auto 0;padding:0 16px;position:relative;z-index:3}
.bizcard .box{background:#fff;border-radius:24px;box-shadow:var(--lift);padding:24px}
.logo-sq{width:64px;height:64px;border-radius:18px;background:var(--navy);color:var(--gold);display:grid;place-items:center;font:700 1.7rem var(--fd);overflow:hidden;flex:none}.logo-sq img{width:100%;height:100%;object-fit:cover}
.actions3{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:18px}
.amen{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}@media(min-width:640px){.amen{grid-template-columns:repeat(4,1fr)}}
.amen div{background:#fff;border-radius:14px;box-shadow:var(--sh);padding:14px 6px;text-align:center;font-size:.8rem;display:grid;gap:6px;justify-items:center}.amen .ic{width:24px;height:24px;color:var(--navy3)}.amen .off{opacity:.38}
.gal{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}@media(min-width:640px){.gal{grid-template-columns:repeat(3,1fr)}}.gal img{aspect-ratio:1;object-fit:cover;border-radius:14px;width:100%}
.rv{background:#fff;border-radius:14px;box-shadow:var(--sh);padding:14px 16px;margin-bottom:10px}
.starpick{display:flex;gap:4px}.starpick button{border:0;background:none;cursor:pointer;padding:2px;color:#cbd5e1}.starpick button.on{color:var(--gold)}.starpick .ic{width:30px;height:30px;fill:currentColor}
.bars{display:grid;gap:5px}.bars div{display:grid;grid-template-columns:14px 1fr 28px;gap:8px;align-items:center;font-size:.78rem}.bars i{display:block;height:7px;border-radius:4px;background:#e8edf4;position:relative;overflow:hidden}.bars i b{position:absolute;inset:0 auto 0 0;background:var(--gold)}
#map,.mapbox{height:60vh;min-height:360px;border-radius:16px;overflow:hidden;box-shadow:var(--sh)}
.pin{background:var(--navy);color:#fff;width:34px;height:34px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);display:grid;place-items:center;border:2px solid var(--gold);box-shadow:var(--sh)}.pin span{transform:rotate(45deg);font-size:15px}.pin.feat{background:var(--gold);border-color:var(--navy)}
.foot{background:var(--navy);color:#fff;margin-top:50px;padding-bottom:78px}@media(min-width:1000px){.foot{padding-bottom:0}}
.foot .cols{display:grid;gap:28px;padding:44px 16px}@media(min-width:760px){.foot .cols{grid-template-columns:1.4fr 1fr 1fr 1.2fr}}
.foot h4{color:var(--gold)}.foot li{list-style:none;margin:7px 0;font-size:.88rem;color:rgba(255,255,255,.72)}.foot li a:hover{color:var(--gold)}.foot ul{padding:0;margin:0}
.foot .copy{border-top:1px solid rgba(255,255,255,.1);padding:18px;text-align:center;font-size:.78rem;color:rgba(255,255,255,.5)}
.auth{max-width:440px;margin:36px auto;padding:0 16px}.auth .card{padding:28px}.seg{display:grid;grid-template-columns:1fr 1fr;background:var(--bg);border-radius:999px;padding:4px;margin-bottom:18px}.seg button{border:0;background:none;border-radius:999px;padding:9px;font-weight:700;cursor:pointer;color:var(--mut)}.seg .on{background:var(--navy);color:var(--gold)}

/* ===== Painéis (empresa e admin) ===== */
.panel{display:grid;min-height:100vh}
@media(min-width:1000px){.panel{grid-template-columns:244px minmax(0,1fr)}}
.side{background:var(--navy);color:#fff;display:flex;flex-direction:column;padding:18px 12px;position:fixed;inset:0 auto 0 0;width:260px;transform:translateX(-100%);transition:.25s;z-index:90;overflow-y:auto}
.side.open{transform:none}
@media(min-width:1000px){.side{position:sticky;top:0;height:100vh;transform:none;width:auto}}
.side .logo{padding:6px 10px 18px}
.side nav a{display:flex;align-items:center;gap:12px;padding:11px 14px;border-radius:10px;font-weight:600;font-size:.92rem;color:rgba(255,255,255,.82);margin-bottom:2px;position:relative}
.side nav a:hover{background:rgba(255,255,255,.07)}.side nav a.on{background:var(--gold);color:var(--navy)}
.side nav .cnt{margin-left:auto;background:var(--err);color:#fff;border-radius:999px;font-size:.7rem;padding:1px 8px}
.side .promo{margin-top:auto;border-radius:14px;background:linear-gradient(160deg,var(--navy2),#10294c);padding:16px;font-size:.84rem;border:1px solid rgba(255,255,255,.08)}.side .promo b{display:block;font:700 1.05rem var(--fd);margin-bottom:6px}
.side .foot-s{font-size:.72rem;opacity:.55;padding:14px 10px 0}
.topbar{background:#fff;border-bottom:1px solid var(--bd);padding:12px 18px;display:flex;align-items:center;gap:14px;position:sticky;top:0;z-index:40}
.topbar .sb{flex:1;max-width:520px;position:relative}.topbar .sb input{padding-left:40px;border-radius:12px;background:#f7f9fc}.topbar .sb .ic{position:absolute;left:13px;top:13px;color:var(--mut)}
.burger{display:inline-grid}@media(min-width:1000px){.burger{display:none}}
.userbox{display:flex;align-items:center;gap:10px;margin-left:auto}.userbox .nm{line-height:1.15;text-align:right;display:none}@media(min-width:640px){.userbox .nm{display:block}}.userbox small{color:var(--mut);display:block;font-size:.74rem}
.pmain{padding:22px 18px 40px;max-width:1500px;width:100%}
.scrim{position:fixed;inset:0;background:rgba(13,34,64,.5);z-index:80}
.hello{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;flex-wrap:wrap;margin-bottom:18px}.hello h1{font-size:1.9rem;margin:0}
.kpis{display:grid;gap:14px;grid-template-columns:repeat(2,1fr)}@media(min-width:760px){.kpis{grid-template-columns:repeat(3,1fr)}}@media(min-width:1300px){.kpis{grid-template-columns:repeat(5,1fr)}}
.kpi{background:#fff;border-radius:16px;box-shadow:var(--sh);padding:16px;text-align:center}
.kpi .ico{width:46px;height:46px;border-radius:14px;display:grid;place-items:center;margin:0 auto 8px}.kpi .lb{font-size:.78rem;color:var(--mut)}.kpi .v{font:700 1.9rem var(--fd);line-height:1.15}.kpi .v small{font:600 .72rem var(--fb);color:var(--ok);margin-left:6px}.kpi .w{font-size:.76rem;color:var(--blue);margin-top:6px}
.dash{display:grid;gap:18px;margin-top:18px}@media(min-width:1300px){.dash{grid-template-columns:minmax(0,1fr) 330px}}
.dash .l{display:grid;gap:18px;min-width:0;align-content:start}.dash .r{display:grid;gap:18px;align-content:start}
.cardh{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.cardh h3{margin:0;font-size:1.05rem}.cardh a,.cardh button.lnk{font-size:.8rem;font-weight:700;color:var(--blue);border:0;background:none;cursor:pointer}
.act{display:flex;gap:12px;padding:10px 0;border-bottom:1px solid var(--bd)}.act:last-child{border:0}.act .i{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;flex:none;background:#e8f0ff;color:var(--blue)}.act .i.g{background:#e0f5e9;color:var(--ok)}.act .i.y{background:#fff1cc;color:var(--amber)}
.qa{display:grid;gap:8px}.qa a,.qa button{display:flex;align-items:center;gap:10px;border:0;border-radius:10px;padding:11px 14px;font-weight:700;color:#fff;cursor:pointer;font-size:.9rem}
.qa .b{background:var(--blue)}.qa .y{background:#ffd75e;color:var(--navy)}.qa .g{background:#2fb35f}.qa .p{background:#6a3fd1}
.donut-wrap{display:grid;grid-template-columns:150px 1fr;gap:12px;align-items:center}
.lgd{display:grid;gap:7px;font-size:.84rem}.lgd div{display:flex;align-items:center;gap:8px}.lgd i{width:10px;height:10px;border-radius:50%}.lgd b{margin-left:auto}
.offer-row{display:flex;gap:12px;align-items:center;padding:8px 0;border-bottom:1px solid var(--bd)}.offer-row:last-child{border:0}.offer-row img,.offer-row .ph{width:80px;height:56px;border-radius:10px;object-fit:cover;background:var(--navy2);flex:none}
.plan{border:1.5px solid var(--bd);border-radius:16px;padding:18px;background:#fff;display:flex;flex-direction:column;gap:6px}.plan.hot{border-color:var(--gold);box-shadow:0 0 0 3px color-mix(in srgb,var(--gold) 25%,transparent)}
.plan .pr{font:800 1.7rem var(--fd)}.plan .pr small{font:500 .8rem var(--fb);color:var(--mut)}
.drop{border:2px dashed var(--bd);border-radius:14px;padding:16px;text-align:center;color:var(--mut);cursor:pointer;display:block}.drop:hover{border-color:var(--gold)}
.drop img{max-height:140px;margin:0 auto 8px;border-radius:10px}
.photos{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:10px}.photos .ph{position:relative}.photos img{aspect-ratio:1;object-fit:cover;border-radius:12px;width:100%}.photos button{position:absolute;right:6px;top:6px}
.hours-row{display:grid;grid-template-columns:90px 1fr 1fr auto;gap:8px;align-items:center;margin-bottom:6px}@media(max-width:560px){.hours-row{grid-template-columns:70px 1fr 1fr}.hours-row .chk{grid-column:1/-1;margin:0}}
.steps{display:grid;gap:10px;margin:0;padding:0;list-style:none}.steps li{display:flex;gap:10px;align-items:center;padding:10px 14px;border-radius:12px;background:#fff;border:1px solid var(--bd)}.steps .done{background:#e7f6ed;border-color:#b5e3c4}
@media(max-width:900px){.g3,.g4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.g2,.g3,.g4{grid-template-columns:1fr}.donut-wrap{grid-template-columns:1fr;justify-items:center}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* seletor de ícones de categoria (admin) */
.icopick{display:grid;grid-template-columns:repeat(auto-fill,minmax(44px,1fr));gap:6px;max-height:210px;overflow:auto;padding:4px}
.icopick label{cursor:pointer}.icopick input{position:absolute;opacity:0;pointer-events:none}
.icopick span{display:grid;place-items:center;height:44px;border-radius:12px;border:1px solid var(--bd);background:#fff;color:var(--navy2)}
.icopick span .ic{width:22px;height:22px}
.icopick input:checked+span{background:var(--gold);color:var(--navy);border-color:var(--gold)}
.icopick input:focus-visible+span{outline:3px solid color-mix(in oklab,var(--gold) 70%,#fff);outline-offset:1px}

}

/* =====================================================================
   MOBILE COMPACTO (até 767px) — site público
   Fica por último de propósito: sobrepõe o tw.css (que está em @layer).
   ===================================================================== */
.bn-img{aspect-ratio:4/1}
@media (max-width:767px){
  input,select,textarea{font-size:16px} /* evita zoom automático no iPhone */

  /* Cabeçalho enxuto: sem slogan, logo menor */
  .site-head-in{height:56px!important}
  .logo-tag{display:none!important}
  .logo-ic{width:34px!important;height:34px!important}
  .logo-ic svg{width:18px!important;height:18px!important}

  /* Hero: menor, sem texto de apoio, busca em uma linha, atalhos rolando de lado */
  .hero-m{margin-top:-56px!important;padding-top:56px!important}
  .hero-in{padding-top:20px!important;padding-bottom:18px!important}
  .hero-h1{font-size:1.65rem!important;line-height:1.15!important}
  .hero-sub{display:none!important}
  .hero-search{margin-top:14px!important;grid-template-columns:minmax(0,1fr) auto!important;gap:6px!important;padding:6px!important}
  .hero-search .hero-city{display:none!important}
  .hero-search label{padding:0 8px!important}
  .hero-search input{height:42px!important}
  .hero-search button{height:42px!important;padding:0 18px!important}
  .hero-chips{flex-wrap:nowrap!important;overflow-x:auto;margin:10px -16px 0!important;padding:0 16px 2px;scrollbar-width:none}
  .hero-chips::-webkit-scrollbar,.cat-scroll::-webkit-scrollbar,.m-scroll::-webkit-scrollbar,.chip-row::-webkit-scrollbar{display:none}
  .hero-chips a{flex:0 0 auto;padding:4px 12px!important}
  .cat-scroll{display:flex!important;gap:4px!important;overflow-x:auto;margin:14px -16px 0!important;padding:0 16px 2px;scroll-snap-type:x proximity;scrollbar-width:none}
  .cat-scroll>a{flex:0 0 68px;width:68px;gap:4px!important;scroll-snap-align:start;font-size:11px!important}
  .cat-scroll>a>span:first-child{width:46px!important;height:46px!important;border-radius:14px!important}
  .cat-scroll>a>span:first-child svg{width:22px!important;height:22px!important}

  /* Espaçamentos e títulos menores */
  .sec{padding-top:24px!important;padding-bottom:24px!important}
  .sec-s{padding-top:14px!important;padding-bottom:20px!important}
  .sec-t{margin-bottom:12px!important}
  .sec-t h2{font-size:1.2rem!important}
  .bn-wrap{padding-top:14px!important}.bn-wrap-b{padding-bottom:20px!important}
  .ph{padding-top:16px!important;padding-bottom:16px!important}
  .ph h1{font-size:1.5rem!important}.ph p{margin-top:2px!important;font-size:.9rem!important}
  .chip-row{margin-bottom:14px!important;margin-right:-16px;padding-right:16px;scrollbar-width:none}

  /* Banners de anúncio: 2:1 quando há imagem de celular */
  .bn-img.has-m{aspect-ratio:2/1}

  /* Carrosséis horizontais no lugar de listas longas na home */
  .m-scroll{display:flex!important;gap:12px!important;overflow-x:auto;margin:0 -16px!important;padding:2px 16px 8px;scroll-snap-type:x mandatory;scroll-padding-inline:16px;scrollbar-width:none}
  .m-scroll>*{flex:0 0 74%;max-width:300px;scroll-snap-align:start}

  /* Cards compactos */
  .bz-cta{display:none!important}
  .bz-info{padding:10px 12px!important;gap:6px}
  .bz-info h3{font-size:.95rem!important}
  .bz-info .text-sm{font-size:.8rem!important}
  .m-grid2{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important}
  .m-grid2 .bz-where{display:none!important}
  .oc-img{aspect-ratio:2/1!important}
  .oc-info{padding:12px!important}

  /* Página de categorias: 3 colunas, sem contagem */
  .cat-page{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:8px!important;padding-top:14px!important;padding-bottom:14px!important}
  .cat-page>a{padding:12px 2px!important;gap:6px!important;border-radius:16px!important}
  .cat-page>a>span:first-child{width:46px!important;height:46px!important}
  .cat-page>a>span:first-child svg{width:22px!important;height:22px!important}
  .cat-page>a .font-semibold{font-size:.68rem!important;line-height:1.2}
  .cat-page>a .text-xs{display:none!important}

  /* "Mais buscados" e chamada para anunciar: versão curta */
  .home-extra{gap:14px!important}
  .home-extra>div{padding:16px!important;border-radius:20px!important}
  .home-extra h2{font-size:1.15rem!important;margin-bottom:10px!important}
  .top-list li:nth-child(n+4){display:none}
  .top-list a{padding:8px!important;gap:12px!important}
  .cta-card>svg,.cta-list{display:none!important}
  .cta-card h2{font-size:1.3rem!important;margin-bottom:0!important}
  .cta-card p{font-size:.9rem;margin-top:6px!important}
  .cta-card a{margin-top:14px!important;padding:10px 20px!important;font-size:.9rem}

  /* Lista de empresas e perfil */
  .layout-l{padding:12px 16px!important;gap:12px!important}
  .bizhead{height:170px!important}

  /* Rodapé: só copyright */
  .foot-cols{display:none!important}
  .site-foot{margin-top:28px!important;padding-bottom:calc(56px + env(safe-area-inset-bottom))!important}
  .foot-copy{border-top:0!important;padding:14px 16px!important}

  /* Menu inferior mais baixo */
  #bnav a{padding:7px 0 5px!important;gap:2px!important}
  main.site,#view{padding-bottom:64px!important}
}

/* ===== Carrossel de banners (todas as telas) ===== */
.bn-car{position:relative}
.bn-track{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}
.bn-track::-webkit-scrollbar{display:none}
.bn-slide{flex:0 0 100%;min-width:0;scroll-snap-align:start}
.bn-slide>.bn-item{width:100%}
.bn-arw{display:none;position:absolute;top:calc(50% - 14px);transform:translateY(-50%);z-index:2;width:38px;height:38px;border-radius:50%;border:0;background:rgba(13,34,64,.78);color:#fff;place-items:center;cursor:pointer;transition:background .2s}
.bn-arw:hover{background:var(--navy)}
.bn-prev{left:10px}.bn-next{right:10px}
.bn-dots{display:flex;justify-content:center;gap:7px;margin-top:8px}
.bn-dot{width:8px;height:8px;padding:0;border:0;border-radius:99px;background:rgba(13,34,64,.25);cursor:pointer;transition:width .25s,background .25s}
.bn-dot.on{width:22px;background:var(--navy)}
@media (min-width:768px){.bn-arw{display:grid}}
@media (max-width:767px){.bn-slide{flex-basis:92%}.bn-slide:only-child{flex-basis:100%}.bn-dot{width:6px;height:6px}.bn-dot.on{width:18px}}

/* ===== Banners publicitários (criados só pelo admin) ===== */
.bn-item{position:relative;width:100%;border-radius:16px;overflow:hidden;box-shadow:var(--sh);background:var(--navy)}
.bn-media{position:relative}
.bn-item img.bn-img{display:block;width:100%;height:auto;object-fit:cover}
.bn-tag{position:absolute;right:8px;top:8px;background:rgba(13,34,64,.75);color:#fff;font-size:.65rem;padding:2px 8px;border-radius:6px;letter-spacing:.04em}
.bn-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:12px 18px;background:var(--navy);color:#fff}
.bn-price{font-size:1rem}
.bn-price b{font-size:1.25rem;color:var(--gold);font-weight:800}
.bn-cta{margin-left:auto;display:inline-block;padding:9px 22px;border-radius:999px;background:linear-gradient(135deg,var(--gold),var(--gold2));color:var(--navy);font-weight:700;text-decoration:none;white-space:nowrap}
.bn-cta:hover{filter:brightness(1.05)}
@media (max-width:767px){.bn-bar{padding:10px 14px}.bn-price b{font-size:1.1rem}}

/* ===== Cartão da empresa (v8): hierarquia clara, sem informação amontoada ===== */
[hidden]{display:none!important}
.bizcard .box{padding:20px}
.bp-head{display:flex;gap:14px;align-items:center}
.bp-head .logo-sq{width:60px;height:60px;border-radius:16px;font-size:1.6rem}
.bp-title{min-width:0;flex:1}
.bp-title h1{font-size:1.4rem;line-height:1.2;margin:0;overflow-wrap:anywhere}
.bp-cat{color:var(--mut);font-size:.9rem;margin-top:3px;line-height:1.35}
.bp-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin-top:14px}
.bp-open{display:inline-flex;align-items:center;gap:6px;font-size:.82rem;font-weight:700;padding:4px 11px;border-radius:999px}
.bp-open i{width:8px;height:8px;border-radius:50%;background:currentColor}
.bp-open.on{background:#e0f5e9;color:#136c36}.bp-open.off{background:#fde4e1;color:#a3281d}
.rate.new{font-weight:600;color:var(--mut)}.rate.new .ic{fill:none}
.bp-info{list-style:none;margin:16px 0 0;padding:14px 0 0;border-top:1px solid var(--bd);display:grid;gap:14px}
.bp-info li{display:flex;gap:12px;align-items:flex-start}
.bp-info .ic{width:20px;height:20px;flex:none;color:var(--navy3);margin-top:2px}
.bp-info b{display:block;font-weight:600;font-size:.95rem;line-height:1.35;overflow-wrap:anywhere}
.bp-info span{display:block;color:var(--mut);font-size:.88rem;line-height:1.35;margin-top:1px}
.actions3{gap:10px;margin-top:18px}
.actions3.two{grid-template-columns:repeat(2,1fr)}
.actions3 .btn{flex-direction:column;gap:4px;padding:10px 6px;border-radius:16px;font-size:.82rem;min-height:58px}
.actions3 .btn .ic{width:20px;height:20px}
.actions3 .btn.wa{background:#25a244;color:#fff}.actions3 .btn.wa:hover{filter:brightness(1.07)}
@media(min-width:640px){.bizcard .box{padding:26px}.bp-title h1{font-size:1.8rem}.bp-head .logo-sq{width:72px;height:72px}.actions3 .btn{flex-direction:row;gap:8px;min-height:0;padding:11px 20px;border-radius:999px;font-size:.92rem}
  .bp-info{grid-template-columns:1fr 1fr}}
/* Prestador de serviço */
.svc-chips{display:flex;flex-wrap:wrap;gap:8px}
.svc-chips span{display:inline-flex;align-items:center;gap:7px;background:#fff;border-radius:999px;box-shadow:var(--sh);padding:8px 14px;font-size:.85rem;font-weight:600}
.svc-chips .ic{width:16px;height:16px;color:var(--navy3)}
.seg3{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.seg3 label{cursor:pointer}.seg3 input{position:absolute;opacity:0;pointer-events:none}
.seg3 span{display:block;text-align:center;border:1.5px solid var(--bd);border-radius:14px;padding:12px 6px;font-size:.85rem;font-weight:700;line-height:1.25}
.seg3 input:checked+span{border-color:var(--gold);background:#fff8e1;color:var(--navy)}
.seg3 input:focus-visible+span{outline:2px solid var(--navy);outline-offset:2px}

.bp-rate{border:0;background:none;padding:0;font:inherit;font-size:.85rem;font-weight:700;color:var(--navy3);text-decoration:underline;text-underline-offset:3px;cursor:pointer}
