/* AgendaBela — sistema visual
   Tinta: berinjela profunda. Papel: lavanda acinzentada fria. Uma cor de marca configurável. */
:root{
  --brand:#7B3F7E; --ink:#251C2B; --paper:#F5F4F8; --surface:#FFFFFF; --line:#E4DFEA; --muted:#6F6577;
  --ok:#2F7D6B; --warn:#A4721F; --err:#B23A48; --info:#3C5A9A;
  --brand-soft:color-mix(in srgb,var(--brand) 12%,var(--surface));
  --r:10px; --r-lg:16px; --shadow:0 1px 2px rgba(37,28,43,.06),0 4px 14px rgba(37,28,43,.05);
  --f-head:"Bricolage Grotesque",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;
  --f-body:"Figtree",ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  color-scheme:light;
}
@media (prefers-color-scheme:dark){
  :root{--ink:#EEE8F2;--paper:#17131B;--surface:#221C27;--line:#372E3E;--muted:#A79DAE;--shadow:0 1px 2px rgba(0,0,0,.4);color-scheme:dark;
    --brand-soft:color-mix(in srgb,var(--brand) 22%,var(--surface))}
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font:15px/1.55 var(--f-body);color:var(--ink);background:var(--paper)}
h1,h2,h3,h4{font-family:var(--f-head);line-height:1.2;margin:0 0 .5em;font-weight:700;letter-spacing:-.01em}
h1{font-size:1.6rem}h2{font-size:1.15rem}h3{font-size:1rem}h4{font-size:1rem}
p{margin:0 0 .8em}
a{color:var(--brand)}a:hover{text-decoration-thickness:2px}
img{max-width:100%}
code{background:var(--brand-soft);padding:1px 6px;border-radius:5px;font-size:.88em}
:focus-visible{outline:3px solid color-mix(in srgb,var(--brand) 55%,transparent);outline-offset:2px}
.muted{color:var(--muted)}.small,small{font-size:.84rem}.center{text-align:center}.nowrap{white-space:nowrap}.mt{margin-top:1rem}
.ok-t{color:var(--ok)}.danger-t{color:var(--err)}.big{font-family:var(--f-head);font-size:1.6rem;font-weight:700;margin:.2em 0}
.hp{position:absolute;left:-9999px;opacity:0}
[hidden]{display:none!important}

/* ---------- Botões ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4em;border:1px solid var(--brand);background:var(--brand);color:#fff;font:600 .95rem var(--f-body);padding:.62em 1.1em;border-radius:var(--r);cursor:pointer;text-decoration:none;white-space:nowrap;transition:filter .15s}
.btn:hover{filter:brightness(1.08)}.btn:disabled{opacity:.5;cursor:not-allowed}
.btn.ghost{background:transparent;color:var(--brand)}.btn.ghost:hover{background:var(--brand-soft)}
.btn.sm{padding:.4em .8em;font-size:.86rem}.btn.lg{padding:.85em 1.5em;font-size:1.05rem}
.btn.danger{background:var(--err);border-color:var(--err)}
.link{background:none;border:0;color:var(--brand);cursor:pointer;padding:0;font:inherit;text-decoration:underline}
form.inline{display:inline}

/* ---------- Formulários ---------- */
.field{display:flex;flex-direction:column;gap:.3em;min-width:0}
.field>span{font-weight:600;font-size:.86rem}
.field small{color:var(--muted)}
input,select,textarea{font:inherit;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:.58em .7em;width:100%;min-width:0}
input[type=checkbox],input[type=radio]{width:auto}
input[type=color]{padding:2px;height:42px}
input:focus,select:focus,textarea:focus{border-color:var(--brand);outline:0;box-shadow:0 0 0 3px color-mix(in srgb,var(--brand) 18%,transparent)}
input[readonly]{background:var(--paper)}
textarea.mono{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.85rem}
.check{display:flex;gap:.55em;align-items:flex-start;cursor:pointer;font-size:.92rem}.check input{margin-top:.25em;accent-color:var(--brand)}
.stack{display:flex;flex-direction:column;gap:.9rem}
.grid2,.grid3{display:grid;gap:1rem;align-items:start}
.grid2{grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr))}
.grid3{grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr))}
.checks-row{display:flex;flex-wrap:wrap;gap:.6rem 1.4rem}
.checks-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:.55rem 1rem}
.filters,.inline-form{display:flex;flex-wrap:wrap;gap:.7rem;align-items:flex-end;margin-bottom:1rem}
.filters .field{min-width:160px;flex:0 1 220px}
.row-actions{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}
.prefix{display:flex;align-items:center;border:1px solid var(--line);border-radius:8px;background:var(--surface);overflow:hidden}.prefix em{font-style:normal;color:var(--muted);padding:0 .2em 0 .7em;font-size:.86rem;white-space:nowrap}.prefix input{border:0;padding-left:0}

/* ---------- Mensagens ---------- */
.flash{padding:.75em 1em;border-radius:var(--r);margin-bottom:1rem;border:1px solid;font-size:.93rem}
.flash-ok{background:color-mix(in srgb,var(--ok) 10%,var(--surface));border-color:color-mix(in srgb,var(--ok) 35%,transparent)}
.flash-err{background:color-mix(in srgb,var(--err) 10%,var(--surface));border-color:color-mix(in srgb,var(--err) 35%,transparent)}
.flash-warn{background:color-mix(in srgb,var(--warn) 12%,var(--surface));border-color:color-mix(in srgb,var(--warn) 35%,transparent)}
.flash-info{background:color-mix(in srgb,var(--info) 9%,var(--surface));border-color:color-mix(in srgb,var(--info) 30%,transparent)}
.badge{display:inline-block;font-size:.75rem;font-weight:600;padding:.14em .55em;border-radius:99px;background:var(--line);color:var(--ink);vertical-align:middle;font-style:normal}
.badge.ok{background:color-mix(in srgb,var(--ok) 16%,transparent);color:var(--ok)}
.badge.warn{background:color-mix(in srgb,var(--warn) 18%,transparent);color:var(--warn)}
.badge.err{background:color-mix(in srgb,var(--err) 15%,transparent);color:var(--err)}
.badge.info{background:color-mix(in srgb,var(--info) 14%,transparent);color:var(--info)}
.badge.mute{opacity:.7}
#toasts{position:fixed;right:16px;bottom:16px;display:flex;flex-direction:column;gap:8px;z-index:99;max-width:min(380px,calc(100vw - 32px))}
.toast{background:var(--ink);color:var(--paper);padding:.85em 1em;border-radius:12px;box-shadow:0 10px 30px rgba(0,0,0,.25);display:flex;gap:.8em;align-items:flex-start;animation:tin .25s ease-out}
.toast.alert{background:var(--brand);color:#fff}.toast a{color:inherit;font-weight:700}.toast button{background:none;border:0;color:inherit;font-size:1.2rem;cursor:pointer;margin-left:auto;line-height:1}
@keyframes tin{from{transform:translateY(10px);opacity:0}}
@media (prefers-reduced-motion:reduce){.toast{animation:none}}

/* ---------- Estrutura do painel ---------- */
body.shell{display:grid;grid-template-columns:248px 1fr;min-height:100vh}
.side{background:var(--ink);color:#E9E3EE;display:flex;flex-direction:column;position:sticky;top:0;height:100vh;overflow-y:auto}
@media (prefers-color-scheme:dark){.side{background:#0F0C12}}
.side-top{padding:1.2rem 1.2rem .8rem}
.logo{font-family:var(--f-head);font-weight:700;font-size:1.18rem;color:inherit;text-decoration:none;display:block;line-height:1.2}
.role{font-size:.78rem;opacity:.65}
.side nav{display:flex;flex-direction:column;padding:.3rem .6rem;gap:1px;flex:1}
.side nav a{color:#D6CEDC;text-decoration:none;padding:.5em .75em;border-radius:8px;font-size:.92rem;display:flex;justify-content:space-between;align-items:center}
.side nav a:hover{background:rgba(255,255,255,.06);color:#fff}
.side nav a.on{background:color-mix(in srgb,var(--brand) 60%,transparent);color:#fff;font-weight:600}
.nbadge{font-size:.72rem;background:rgba(255,255,255,.14);border-radius:99px;padding:0 .5em}
.side-foot{padding:1rem 1.2rem;border-top:1px solid rgba(255,255,255,.08);display:flex;justify-content:space-between;align-items:center;font-size:.85rem}
.side-foot .link{color:#E9E3EE}
.main{min-width:0;display:flex;flex-direction:column}
.top{display:flex;align-items:center;gap:1rem;padding:1rem 1.6rem;border-bottom:1px solid var(--line);background:var(--surface);position:sticky;top:0;z-index:5}
.top h1{font-size:1.3rem;margin:0;flex:1}
.top-actions{display:flex;gap:.5rem;flex-wrap:wrap}
.menu-btn{display:none;background:none;border:1px solid var(--line);border-radius:8px;font-size:1.2rem;padding:.2em .55em;color:var(--ink);cursor:pointer}
.content{padding:1.5rem 1.6rem 3rem;max-width:1280px;width:100%}
.trialbar{background:var(--brand-soft);border-radius:var(--r);padding:.6em 1em;margin-bottom:1rem;font-size:.92rem}
@media (max-width:900px){
  body.shell{grid-template-columns:1fr}
  .side{position:fixed;inset:0 auto 0 0;width:260px;z-index:30;transform:translateX(-100%);transition:transform .2s}
  .side.open{transform:none;box-shadow:0 0 0 100vmax rgba(0,0,0,.4)}
  .menu-btn{display:block}.content{padding:1rem}.top{padding:.8rem 1rem}
}

/* ---------- Cartões e dados ---------- */
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:1.2rem 1.3rem;margin-bottom:1rem;min-width:0}
.card-head{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin-bottom:.6rem}.card-head h2,.card-head h3{margin:0;flex:1}
.callout{border-color:var(--brand);background:var(--brand-soft)}
details.card summary{cursor:pointer;font-weight:600;font-family:var(--f-head)}details.card[open] summary{margin-bottom:.8rem}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:.8rem;margin-bottom:1rem}
.stat{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:.9rem 1rem;display:flex;flex-direction:column}
.stat span{font-size:.8rem;color:var(--muted);font-weight:600}.stat strong{font-family:var(--f-head);font-size:1.45rem;line-height:1.25}.stat small{color:var(--muted)}
.tbl-wrap{overflow-x:auto}
.tbl{width:100%;border-collapse:collapse;font-size:.92rem}
.tbl th{text-align:left;font-size:.78rem;color:var(--muted);font-weight:600;padding:.5em .6em;border-bottom:1px solid var(--line)}
.tbl td{padding:.6em;border-bottom:1px solid var(--line);vertical-align:top}
.tbl tr:last-child td{border-bottom:0}.tbl tr.low td{background:color-mix(in srgb,var(--err) 6%,transparent)}
.empty{text-align:center;padding:2rem 1rem;color:var(--muted);border:1px dashed var(--line);border-radius:var(--r-lg)}
.empty p{margin-bottom:1rem}
.plain{list-style:none;margin:0;padding:0}.plain li{padding:.35em 0;border-bottom:1px solid var(--line)}.plain li:last-child{border:0}
ol.plain{list-style:decimal;padding-left:1.2em}
.dl{display:grid;grid-template-columns:auto 1fr;gap:.35rem 1rem;margin:0 0 1rem}.dl dt{color:var(--muted);font-size:.86rem}.dl dd{margin:0}
.bars{display:flex;align-items:flex-end;gap:3px;height:130px;padding-top:6px}
.bar{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;min-width:0}
.bar i{display:block;width:100%;background:var(--brand);border-radius:4px 4px 0 0;min-height:2px;opacity:.85}
.bar span{font-size:.64rem;color:var(--muted);margin-top:3px;white-space:nowrap;overflow:hidden}
.progress{height:10px;background:var(--line);border-radius:99px;overflow:hidden}.progress i{display:block;height:100%;background:var(--ok)}
.goal{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:1rem 1.2rem;margin-bottom:1rem}
.goal>div:first-child{display:flex;justify-content:space-between;margin-bottom:.4rem}.goal b{font-family:var(--f-head)}
.tabs{display:flex;gap:.3rem;border-bottom:1px solid var(--line);margin-bottom:1rem}.tabs a{padding:.6em 1em;text-decoration:none;color:var(--muted);border-bottom:2px solid transparent;font-weight:600}.tabs a.on{color:var(--brand);border-color:var(--brand)}
.dot{display:inline-block;width:10px;height:10px;border-radius:50%;background:var(--c)}
.avatar{width:72px;height:72px;border-radius:50%;object-fit:cover}.thumb{max-height:110px;border-radius:8px;object-fit:cover;align-self:flex-start}
.qr{background:#fff;padding:10px;border-radius:12px;display:inline-block;align-self:flex-start;line-height:0}.qr img,.qr canvas{width:200px;height:200px;image-rendering:pixelated}
.qr.lg img{width:280px;height:280px}
.linkbox{display:flex;gap:1.5rem;align-items:center;flex-wrap:wrap}.linkbox>div{flex:1;min-width:260px;display:flex;flex-direction:column;gap:.6rem}
.checks{list-style:none;padding:0;columns:2;font-size:.88rem}.checks li::before{content:"✓ ";color:var(--ok)}.checks li.bad::before{content:"✕ ";color:var(--err)}

/* ---------- Início / próximo atendimento ---------- */
.next-up{display:grid;grid-template-columns:1fr auto;gap:.1rem 1rem;background:var(--ink);color:var(--paper);border-radius:var(--r-lg);padding:1rem 1.3rem;margin-bottom:1rem}
@media (prefers-color-scheme:dark){.next-up{background:var(--brand);color:#fff}}
.next-up span{font-size:.8rem;opacity:.7;grid-column:1}.next-up b{font-family:var(--f-head);font-size:1.25rem;grid-column:1}.next-up em{font-style:normal;opacity:.8;grid-column:1}
.next-up .cd{grid-column:2;grid-row:1/4;align-self:center;font-family:var(--f-head);font-size:1.5rem}
.ap-list{list-style:none;margin:0;padding:0}
.ap-list a{display:grid;grid-template-columns:52px 1fr auto;gap:.7rem;align-items:center;padding:.55rem .4rem;text-decoration:none;color:inherit;border-left:3px solid var(--c);margin-bottom:4px;border-radius:0 8px 8px 0}
.ap-list a:hover{background:var(--brand-soft)}.ap-list span{display:flex;flex-direction:column}.ap-list small{color:var(--muted)}
.steps{counter-reset:s;list-style:none;padding:0}.steps li{counter-increment:s;display:flex;gap:.8rem;align-items:center;padding:.8rem 1rem;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);margin-bottom:.5rem}
.steps li::before{content:counter(s);font-family:var(--f-head);font-weight:700;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:var(--brand-soft);color:var(--brand);flex:none}
.steps li.done::before{content:"✓";background:var(--ok);color:#fff}.steps li a{flex:1}

/* ---------- Agenda ---------- */
.agenda-nav{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin-bottom:1rem}.agenda-nav input{width:auto}.agenda-nav b{font-family:var(--f-head);margin-left:.4rem}
.agenda{display:grid;grid-template-columns:52px repeat(var(--cols),minmax(170px,1fr));overflow-x:auto;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);margin-bottom:1rem}
.ag-times{position:relative;height:var(--h);margin-top:42px}
.ag-times span{position:absolute;right:6px;transform:translateY(-50%);font-size:.72rem;color:var(--muted)}
.ag-times span:first-child{transform:none}
.ag-col{border-left:1px solid var(--line);min-width:0}
.ag-head{height:42px;display:flex;align-items:center;padding:0 .7rem;font-weight:700;font-size:.9rem;border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--surface);box-shadow:inset 0 -3px 0 var(--c)}
.ag-body{position:relative;height:var(--h)}
.ag-line{position:absolute;left:0;right:0;border-top:1px dashed var(--line)}
.ag-now{position:absolute;left:0;right:0;border-top:2px solid var(--err);z-index:3}
.ag-now::before{content:"";position:absolute;left:-4px;top:-5px;width:8px;height:8px;border-radius:50%;background:var(--err)}
.ag-ap{position:absolute;left:4px;right:4px;background:color-mix(in srgb,var(--c) 16%,var(--surface));border-left:4px solid var(--c);border-radius:6px;padding:3px 7px;font-size:.8rem;overflow:hidden;color:var(--ink);text-decoration:none;z-index:2;display:flex;flex-direction:column;line-height:1.25}
.ag-ap:hover{filter:brightness(.97);z-index:4}.ag-ap span{color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ag-ap b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ag-ap.st-concluido{opacity:.6}.ag-ap.st-faltou{background:repeating-linear-gradient(45deg,transparent 0 6px,color-mix(in srgb,var(--err) 10%,transparent) 6px 12px);border-left-color:var(--err)}
.ag-ap.st-em_atendimento{box-shadow:0 0 0 2px var(--c)}
.ag-block{position:absolute;left:0;right:0;background:repeating-linear-gradient(135deg,var(--paper) 0 8px,var(--line) 8px 9px);font-size:.72rem;color:var(--muted);padding:3px 7px;z-index:1}
.slots{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.3rem}
.slots button{border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:8px;padding:.4em .75em;cursor:pointer;font:600 .88rem var(--f-body)}
.slots button.on,.slots button:hover{border-color:var(--brand);background:var(--brand);color:#fff}
.wait{padding:.4rem 0;border-bottom:1px solid var(--line);font-size:.9rem}
.hours{display:flex;flex-direction:column;gap:.4rem}.hrow{display:grid;grid-template-columns:80px 1fr 1fr;gap:.6rem;align-items:center}.hrow span{display:flex;align-items:center;gap:.3rem}.hrow input{padding:.4em}
@media (max-width:600px){.hrow{grid-template-columns:1fr 1fr}.hrow b{grid-column:1/-1}}
.timeline{list-style:none;padding:0;margin:0;border-left:2px solid var(--line)}
.timeline li{padding:.4rem 0 .8rem 1rem;position:relative}.timeline li::before{content:"";position:absolute;left:-6px;top:.75rem;width:10px;height:10px;border-radius:50%;background:var(--brand)}
.timeline small{display:block;color:var(--muted)}.timeline li.t-nota::before{background:var(--warn)}.timeline li.t-meta::before{background:var(--ok)}

/* ---------- Serviços ---------- */
.svc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1rem}
.svc{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;color:inherit;text-decoration:none}
.svc:hover{border-color:var(--brand)}.svc.off{opacity:.55}
.svc img,.svc-noimg{width:100%;aspect-ratio:16/9;object-fit:cover}
.svc-noimg{display:grid;place-items:center;background:var(--brand-soft);color:var(--brand);font:700 2.4rem var(--f-head)}
.svc>div:last-child{padding:.8rem 1rem}.svc h3{margin:.1em 0 .3em}.svc p{margin:0 0 .2em}.svc small{color:var(--muted)}
.photos{display:flex;flex-wrap:wrap;gap:.5rem}.photo{display:flex;flex-direction:column;gap:2px;font-size:.78rem}.photo img{width:110px;height:82px;object-fit:cover;border-radius:8px}
.item-row{display:grid;grid-template-columns:1fr 100px auto;gap:.5rem;margin-bottom:.4rem;align-items:center}
.cost-sum{background:var(--brand-soft);border-radius:var(--r);padding:.7rem 1rem;font-size:.92rem}.cost-sum:empty{display:none}
.rec{display:flex;align-items:center;gap:.8rem;flex-wrap:wrap}.rec .btn.recording{background:var(--err);border-color:var(--err);color:#fff}
.ai-item{display:grid;grid-template-columns:auto 1fr;gap:.2rem .8rem;padding:.8rem;border:1px solid var(--line);border-radius:var(--r);margin-bottom:.5rem}
.ai-item p{margin:0;grid-column:2;color:var(--muted);font-size:.9rem}
.spinner{display:inline-block;width:16px;height:16px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin .8s linear infinite;vertical-align:-3px}
@keyframes spin{to{transform:rotate(360deg)}}
.winner{background:var(--ink);color:var(--paper);border-radius:var(--r-lg);padding:1.2rem 1.4rem;margin-bottom:1rem;display:flex;flex-direction:column;gap:.3rem;align-items:flex-start}
.winner b{font-family:var(--f-head);font-size:1.8rem}.winner span{opacity:.7;font-size:.85rem}.winner small{opacity:.7}
.thread{display:flex;flex-direction:column;gap:.6rem;margin-bottom:1rem}
.msg{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:.7rem 1rem;max-width:80%}.msg.me{align-self:flex-end;background:var(--brand-soft)}.msg small{color:var(--muted)}.msg p{margin:.2em 0 0}
.pix-show .qr{margin:1rem auto}
.cycle-toggle{display:inline-flex;border:1px solid var(--line);border-radius:99px;padding:3px;margin-bottom:1rem;background:var(--surface)}
.cycle-toggle button{border:0;background:none;padding:.4em 1.1em;border-radius:99px;cursor:pointer;font:600 .9rem var(--f-body);color:var(--muted)}.cycle-toggle button.on{background:var(--brand);color:#fff}

/* ---------- Planos ---------- */
.pgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1rem;margin-bottom:1.5rem}
.plan{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:1.4rem;display:flex;flex-direction:column;gap:.6rem}
.plan.hl{border:2px solid var(--brand);box-shadow:var(--shadow)}
.plan .price{font-family:var(--f-head);font-size:2rem;font-weight:700;margin:0}.plan .price small{font-size:.9rem;color:var(--muted);font-weight:500}
.plan ul{padding-left:1.1em;margin:.2rem 0;font-size:.9rem;flex:1}.plan li{margin:.15em 0}
.gw-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,380px),1fr));gap:1rem}
.gw-grid .card{margin:0}

/* ---------- Autenticação ---------- */
body.auth{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at 20% 0%,var(--brand-soft),transparent 55%),var(--paper)}
.auth-wrap{width:100%;max-width:440px;padding:2rem 1rem}.auth-wrap.wide{max-width:760px}
.auth-logo{font-family:var(--f-head);font-weight:700;font-size:1.4rem;color:var(--brand);text-decoration:none;display:block;text-align:center;margin-bottom:1.2rem}
.auth-card{background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:2rem;box-shadow:var(--shadow)}
.auth-card h1{font-size:1.5rem}.prose{line-height:1.7}

/* ---------- Site institucional ---------- */
body.site{background:var(--surface)}
.site-nav{display:flex;justify-content:space-between;align-items:center;padding:1.2rem clamp(1rem,5vw,4rem);gap:1rem;flex-wrap:wrap}
.site-nav .logo{color:var(--brand);font-size:1.35rem}.site-nav nav{display:flex;gap:1.2rem;align-items:center;flex-wrap:wrap}.site-nav nav a:not(.btn){color:var(--ink);text-decoration:none;font-weight:500}
.hero{display:grid;grid-template-columns:1.1fr .9fr;gap:3rem;align-items:center;padding:3rem clamp(1rem,5vw,4rem) 4rem;max-width:1240px;margin:0 auto}
.hero h1{font-size:clamp(2.2rem,5vw,3.6rem);line-height:1.05;letter-spacing:-.025em;margin-bottom:.4em}
.hero p{font-size:1.15rem;color:var(--muted);max-width:52ch}.hero small{color:var(--muted)}
.hero-agenda{background:var(--ink);color:#EFE9F3;border-radius:24px;padding:1.4rem;box-shadow:0 30px 60px -20px color-mix(in srgb,var(--brand) 55%,transparent);transform:rotate(1.5deg)}
.ha-head{display:flex;justify-content:space-between;margin-bottom:1rem;font-size:.9rem;opacity:.8}.ha-head b{font-family:var(--f-head);font-size:1.3rem;opacity:1}
.ha-row{display:grid;grid-template-columns:6px 54px 1fr;gap:.2rem .8rem;padding:.7rem 0;border-top:1px solid rgba(255,255,255,.08);align-items:center}
.ha-row i{grid-row:1/3;align-self:stretch;background:var(--c);border-radius:4px}.ha-row span{font-weight:700;grid-row:1/3}.ha-row em{font-style:normal;opacity:.6;font-size:.85rem;grid-column:3}
.ha-row.now{background:rgba(255,255,255,.06);margin:0 -.6rem;padding:.7rem .6rem;border-radius:10px}.ha-row.now em{opacity:1;color:#FFC9DA}
.ha-foot{display:flex;justify-content:space-between;align-items:baseline;margin-top:1rem;padding-top:1rem;border-top:1px solid rgba(255,255,255,.15)}.ha-foot b{font-family:var(--f-head);font-size:1.5rem}
.segments{display:flex;flex-wrap:wrap;justify-content:center;gap:.5rem 1.6rem;padding:1.4rem 1rem;background:var(--brand-soft);font-family:var(--f-head);font-weight:500;color:var(--brand)}
.features,.plans{max-width:1180px;margin:0 auto;padding:4rem clamp(1rem,5vw,4rem)}
.features h2,.plans h2{font-size:clamp(1.6rem,3vw,2.3rem)}
.fgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:2rem 2.5rem;margin-top:2rem}
.fgrid h3{font-size:1.15rem;border-top:3px solid var(--brand);padding-top:.8rem}.fgrid p{color:var(--muted)}
.site-foot{display:flex;gap:1.5rem;flex-wrap:wrap;justify-content:center;padding:2rem;border-top:1px solid var(--line);color:var(--muted);font-size:.9rem}
@media (max-width:860px){.hero{grid-template-columns:1fr;gap:2rem}.hero-agenda{transform:none}}

/* ---------- Página pública do estabelecimento ---------- */
body.pub{background:var(--paper)}
body.pub.theme-suave{--paper:color-mix(in srgb,var(--brand) 7%,#fff)}
body.pub.theme-escuro{--ink:#F1ECF4;--paper:#141016;--surface:#1F1A23;--line:#352C3B;--muted:#ABA0B2;color-scheme:dark}
.pub-hero{background:var(--brand);color:#fff;padding:4rem 1.2rem 3.5rem;text-align:center;position:relative}
.pub-hero.has-cover{background:linear-gradient(rgba(20,12,24,.55),rgba(20,12,24,.7)),var(--cover) center/cover}
.pub-hero-in{max-width:760px;margin:0 auto}
.pub-hero h1{font-size:clamp(2rem,6vw,3.2rem);letter-spacing:-.02em}.pub-hero p{font-size:1.15rem;opacity:.92}
.pub-logo{width:96px;height:96px;object-fit:cover;border-radius:50%;border:3px solid rgba(255,255,255,.8);margin-bottom:1rem;background:#fff}
.pub-cta{display:flex;gap:.7rem;justify-content:center;flex-wrap:wrap;margin-top:1.4rem}
.pub-hero .btn{background:#fff;color:var(--brand);border-color:#fff}.pub-hero .btn.ghost{background:transparent;color:#fff}
.pub-main{max-width:1080px;margin:0 auto;padding:2.5rem 1.2rem}.pub-main.narrow{max-width:620px}
.pub-main>section{margin-bottom:3rem}.pub-main h2{font-size:1.6rem}
.pub-about{font-size:1.1rem;max-width:68ch;margin:0 auto 3rem;text-align:center}
.pub-cat{color:var(--brand);margin:1.6rem 0 .8rem;font-size:1.1rem}
.pub-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1rem}
.pub-svc{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;display:flex;flex-direction:column}
.pub-photos{display:flex;overflow-x:auto;scroll-snap-type:x mandatory}.pub-photos img{flex:0 0 100%;aspect-ratio:4/3;object-fit:cover;scroll-snap-align:start}
.pub-svc-body{padding:1rem 1.1rem;display:flex;flex-direction:column;flex:1}.pub-svc-body p{color:var(--muted);font-size:.93rem}
.pub-svc-foot{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;margin-top:auto}.pub-svc-foot span{flex:1}.pub-svc-foot b{font-family:var(--f-head);font-size:1.1rem}
.pub-book{background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:1.6rem;scroll-margin-top:1rem}
.days{display:flex;gap:.45rem;overflow-x:auto;padding:.3rem 0 .5rem}
.days button{flex:none;display:flex;flex-direction:column;align-items:center;border:1px solid var(--line);background:var(--surface);border-radius:12px;padding:.45em .7em;cursor:pointer;color:var(--ink);min-width:58px;font-family:var(--f-body)}
.days button b{font-family:var(--f-head);font-size:1.25rem}.days button small{font-size:.72rem;color:var(--muted)}
.days button.on{background:var(--brand);border-color:var(--brand);color:#fff}.days button.on small{color:#fff}
.wait-form{margin-top:1.2rem}.wait-form summary{cursor:pointer;color:var(--brand);font-weight:600}.wait-form form{margin-top:.8rem;align-items:end}
.gal{columns:3 220px;column-gap:.8rem}.gal img{width:100%;margin-bottom:.8rem;border-radius:12px;break-inside:avoid}
.team{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:1rem;text-align:center}
.team img,.avatar-l{width:96px;height:96px;border-radius:50%;object-fit:cover;display:grid;place-items:center;margin:0 auto .5rem;background:color-mix(in srgb,var(--c) 25%,var(--surface));font:700 2rem var(--f-head);color:var(--c)}
.team b{display:block}.team small{color:var(--muted)}
.pub-info{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:2rem;background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:1.6rem}
.hours-dl{display:grid;grid-template-columns:auto 1fr;gap:.3rem 1.2rem;margin:0}.hours-dl dd{margin:0}
.social{display:flex;gap:1rem}
.pub-foot{text-align:center;padding:2rem;color:var(--muted);font-size:.85rem}
.ticket{text-align:center}.ticket h1{font-size:1.8rem}
.back{display:inline-block;margin-bottom:1rem;text-decoration:none}

@media print{.side,.top,.menu-btn,#toasts{display:none!important}body.shell{display:block}}
