:root{--verde:#0f4d2e;--verde2:#1f6b3f;--ouro:#b8901f;--ouro2:#e6c65a;--creme:#fffaf0;--texto:#23302a;--muted:#6b756f;--linha:#e7e1cf;--ok:#1f7a45;--err:#b3261e}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;font-family:Inter,system-ui,sans-serif;color:var(--texto);background:#fff;line-height:1.6}
img{max-width:100%;height:auto}
a{color:var(--verde2)}
h1,h2,h3{font-family:'Cormorant Garamond',Georgia,serif;color:var(--verde);line-height:1.15}
h2{font-size:clamp(1.8rem,4vw,2.5rem);margin:0 0 .6rem}
.wrap{max-width:1120px;margin:0 auto;padding:0 20px}
.topbar{position:sticky;top:0;z-index:50;background:rgba(255,250,240,.96);backdrop-filter:blur(6px);border-bottom:1px solid var(--linha)}
.bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:8px;padding-bottom:8px;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--verde);font-family:'Cormorant Garamond',serif;font-weight:700;font-size:1.15rem}
.brand img{border-radius:8px;object-fit:cover}.brand span{display:flex;flex-direction:column;line-height:1.2}
.brand small{font-family:Inter,sans-serif;font-weight:400;font-size:.72rem;color:var(--muted)}
.topbar nav{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.topbar nav a{text-decoration:none;color:var(--texto);font-size:.93rem}
.btn{display:inline-block;background:linear-gradient(135deg,var(--verde),var(--verde2));color:#fff!important;border:0;border-radius:999px;padding:12px 26px;font-weight:600;font-size:1rem;cursor:pointer;text-decoration:none;box-shadow:0 2px 0 var(--ouro);font-family:inherit}
.btn:hover{filter:brightness(1.1)}.btn.sm{padding:8px 18px;font-size:.9rem}
.btn.gold{background:linear-gradient(135deg,var(--ouro),var(--ouro2));color:#2a2200!important;box-shadow:none}
.btn.line{background:#fff;color:var(--verde)!important;border:1px solid var(--verde);box-shadow:none}
.btn.danger{background:var(--err);box-shadow:none}.btn.mini{padding:5px 12px;font-size:.8rem;box-shadow:none}
.hero{background:radial-gradient(circle at 80% 10%,#fff3cf,transparent 55%),var(--creme);padding:56px 0}
.hero .grid{display:grid;grid-template-columns:1.15fr .85fr;gap:40px;align-items:center}
.hero h1{font-size:clamp(2.1rem,5vw,3.4rem);margin:0 0 14px}
.hero .sub{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:1.5rem;color:var(--ouro);margin:0 0 10px}
.hero .photo{border-radius:24px;border:6px solid #fff;box-shadow:0 12px 40px rgba(15,77,46,.18);width:100%;max-height:560px;object-fit:cover}
.cta-row{display:flex;gap:12px;flex-wrap:wrap;margin-top:22px}
.pillars{background:var(--verde);color:#fff;padding:18px 0}
.pillars .wrap{display:flex;justify-content:space-around;gap:14px;flex-wrap:wrap;text-align:center;font-weight:500}
.pillars span:before{content:"✦ ";color:var(--ouro2)}
section.s{padding:64px 0}section.alt{background:var(--creme)}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:18px;margin-top:26px}
.card{background:#fff;border:1px solid var(--linha);border-top:3px solid var(--ouro);border-radius:14px;padding:22px;box-shadow:0 2px 10px rgba(0,0,0,.04)}
.card h3{margin:0 0 6px;font-size:1.4rem}.card p{margin:0;color:var(--muted);font-size:.95rem}
.about{display:grid;grid-template-columns:.8fr 1.2fr;gap:40px;align-items:center}
.about img{border-radius:20px;width:100%;box-shadow:0 10px 30px rgba(0,0,0,.12)}
.books{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:22px;margin-top:26px}
.book{display:flex;gap:16px;background:#fff;border:1px solid var(--linha);border-radius:14px;padding:16px}
.book img{width:100px;height:150px;object-fit:cover;border-radius:6px;box-shadow:0 4px 14px rgba(0,0,0,.2);flex:none}
.book h3{margin:0;font-size:1.25rem}.book .meta{font-size:.8rem;color:var(--muted);margin:2px 0 6px}.book p{font-size:.88rem;margin:0 0 8px}
.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;margin-top:20px}.gallery img{border-radius:12px;width:100%;height:200px;object-fit:cover}
details{background:#fff;border:1px solid var(--linha);border-radius:12px;padding:14px 18px;margin-bottom:10px}
summary{cursor:pointer;font-weight:600;color:var(--verde)}details p{margin:10px 0 0}
.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px;margin-top:22px}
.step b{display:inline-flex;width:44px;height:44px;border-radius:50%;background:var(--verde);color:#fff;align-items:center;justify-content:center;font-size:1.2rem;margin-bottom:8px}
.cta-final{background:linear-gradient(135deg,var(--verde),#0a3a22);color:#fff;text-align:center;padding:56px 0}.cta-final h2{color:#fff}
.footer{background:#0a3a22;color:#d9e6dd;padding:34px 0;font-size:.92rem}.footer a{color:var(--ouro2)}.fgrid{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap}
.small{font-size:.82rem;opacity:.85}.muted,.muted-link{color:var(--muted)!important;font-size:.82rem}
.wa-float{position:fixed;right:18px;bottom:18px;z-index:60;width:58px;height:58px;border-radius:50%;background:#25D366;color:#fff;display:flex;align-items:center;justify-content:center;font-size:.8rem;font-weight:700;text-decoration:none;box-shadow:0 4px 14px rgba(0,0,0,.3)}
/* forms */
.authbox{max-width:440px;margin:40px auto;background:#fff;border:1px solid var(--linha);border-top:4px solid var(--ouro);border-radius:16px;padding:30px;box-shadow:0 8px 30px rgba(0,0,0,.07)}
label{display:block;font-weight:500;font-size:.88rem;margin:12px 0 4px}
input[type=text],input[type=email],input[type=password],input[type=tel],input[type=number],input[type=date],input[type=time],input[type=url],select,textarea{width:100%;padding:10px 12px;border:1px solid #cfc8b3;border-radius:10px;font:inherit;background:#fff}
input:focus,select:focus,textarea:focus{outline:2px solid var(--ouro2);border-color:var(--ouro)}
.chk{display:flex;gap:8px;align-items:flex-start;font-weight:400}.chk input{margin-top:5px}
.alert{padding:11px 14px;border-radius:10px;margin:0 0 14px;font-size:.92rem}.alert.ok{background:#e6f4ea;color:#14532d}.alert.err{background:#fde8e6;color:#7a1710}
/* painel */
.panel{display:grid;grid-template-columns:230px 1fr;min-height:100vh;background:#f6f4ec}
.side{background:var(--verde);color:#fff;padding:18px 14px;position:sticky;top:0;height:100vh;overflow:auto}
.side .brand{color:#fff;margin-bottom:18px}.side .brand small{color:#bcd5c4}
.side nav{display:flex;flex-direction:column;gap:2px}.side nav a{color:#e5efe8;text-decoration:none;padding:9px 12px;border-radius:8px;font-size:.93rem}
.side nav a:hover{background:rgba(255,255,255,.1)}.side nav a.on{background:var(--ouro);color:#1d1600;font-weight:600}
.main{padding:26px 30px;min-width:0}.main h1{font-size:2rem;margin:0 0 18px}
.box{background:#fff;border:1px solid var(--linha);border-radius:14px;padding:20px;margin-bottom:20px}.box h2{font-size:1.4rem}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px;margin-bottom:20px}
.stat{background:#fff;border:1px solid var(--linha);border-left:4px solid var(--ouro);border-radius:12px;padding:14px}.stat b{display:block;font-size:1.5rem;color:var(--verde)}.stat span{font-size:.8rem;color:var(--muted)}
.tw{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:.9rem}th,td{padding:9px 10px;border-bottom:1px solid var(--linha);text-align:left;vertical-align:top}th{font-size:.75rem;text-transform:uppercase;color:var(--muted);letter-spacing:.04em}
td img.th{width:54px;height:54px;object-fit:cover;border-radius:6px}
.row{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}.actions{display:flex;gap:6px;flex-wrap:wrap}.actions form{display:inline}
.badge{padding:3px 10px;border-radius:999px;font-size:.75rem;font-weight:600;background:#eee}
.b-pendente{background:#fff0c9;color:#7a5a00}.b-confirmado{background:#dcf3e3;color:#14532d}.b-recusado,.b-cancelado{background:#fde8e6;color:#7a1710}.b-concluido{background:#dde9ff;color:#173a8a}.b-bloqueio{background:#e5e5e5;color:#444}
.slots{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0}.slots label{margin:0}.slots input{display:none}
.slots span{display:inline-block;padding:8px 16px;border:1px solid var(--verde);border-radius:999px;cursor:pointer;color:var(--verde);font-weight:500}
.slots input:checked+span{background:var(--verde);color:#fff}
.pix{display:flex;gap:18px;align-items:flex-start;flex-wrap:wrap}.pix textarea{font-size:.72rem;margin:6px 0}
@media(max-width:820px){.hero .grid,.about{grid-template-columns:1fr}.panel{grid-template-columns:1fr}.side{position:static;height:auto}.side nav{flex-direction:row;flex-wrap:wrap}.main{padding:18px 14px}}
/* ===== App (PWA) ===== */
body.app{background:#f6f4ec;padding-bottom:78px}
.app-head{position:sticky;top:0;z-index:20;background:var(--verde);color:#fff;display:flex;justify-content:space-between;align-items:center;padding:12px 16px;font-family:'Cormorant Garamond',serif;font-size:1.25rem;font-weight:700}
.app-head .sos{background:var(--ouro2);color:#2a2200;border-radius:999px;padding:5px 12px;font:600 .78rem Inter,sans-serif;text-decoration:none}
.app-main{max-width:560px;margin:0 auto;padding:16px}
.app-main h1{font-size:1.9rem;margin:6px 0 12px}
.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:30;background:#fff;border-top:1px solid var(--linha);display:flex;padding-bottom:env(safe-area-inset-bottom)}
.tabbar a{flex:1;text-align:center;padding:8px 2px;font-size:.7rem;color:var(--muted);text-decoration:none}.tabbar a span{display:block;font-size:1.25rem}.tabbar a.on{color:var(--verde);font-weight:600}
.scale{display:flex;gap:6px;flex-wrap:wrap}.scale label{margin:0;flex:1;min-width:34px}.scale input{display:none}
.scale span{display:block;text-align:center;padding:10px 0;border:1px solid #cfc8b3;border-radius:10px;cursor:pointer;background:#fff}
.scale input:checked+span{background:var(--verde);color:#fff;border-color:var(--verde)}
.chips{display:flex;flex-wrap:wrap;gap:8px}.chips label{margin:0}.chips input{display:none}
.chips span{display:inline-block;padding:8px 14px;border:1px solid #cfc8b3;border-radius:999px;background:#fff;font-size:.88rem;cursor:pointer}
.chips input:checked+span{background:var(--ouro2);border-color:var(--ouro)}
.chart{background:#fff;border:1px solid var(--linha);border-radius:14px;padding:12px;margin-bottom:14px}.chart h3{margin:0 0 4px;font-size:1.2rem}.chart svg{width:100%;height:auto;display:block}
.breath{width:200px;height:200px;border-radius:50%;margin:30px auto;background:radial-gradient(circle,var(--ouro2),var(--verde2));display:flex;align-items:center;justify-content:center;color:#fff;font-weight:600;font-size:1.2rem;transition:transform 4s ease-in-out;text-align:center}
.emerg{display:block;background:#fff;border:2px solid var(--err);border-radius:14px;padding:16px;margin-bottom:12px;text-decoration:none;color:var(--texto)}.emerg b{display:block;font-size:1.5rem;color:var(--err)}
.hide{display:none}
/* ===== Assistente virtual ===== */
#dra-assist{position:fixed;right:18px;bottom:88px;z-index:70;font-family:Inter,system-ui,sans-serif}
.as-fab{width:68px;height:68px;border-radius:50%;border:3px solid var(--ouro2);padding:0;background:#fff;cursor:pointer;box-shadow:0 6px 20px rgba(0,0,0,.28);overflow:hidden;animation:aspulse 3s infinite}
.as-fab img{width:100%;height:100%;object-fit:cover;display:block}
@keyframes aspulse{0%,100%{box-shadow:0 6px 20px rgba(0,0,0,.28),0 0 0 0 rgba(230,198,90,.6)}50%{box-shadow:0 6px 20px rgba(0,0,0,.28),0 0 0 12px rgba(230,198,90,0)}}
@media(prefers-reduced-motion:reduce){.as-fab{animation:none}}
.as-tip{position:absolute;right:76px;bottom:18px;background:#fff;border:1px solid var(--linha);border-radius:14px;padding:8px 12px;font-size:.85rem;white-space:nowrap;box-shadow:0 4px 14px rgba(0,0,0,.15)}
.as-box{width:350px;max-width:calc(100vw - 24px);height:min(560px,calc(100vh - 110px));background:#fffaf0;border-radius:18px;box-shadow:0 14px 44px rgba(0,0,0,.35);display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--linha)}
.as-box[hidden]{display:none}
.as-head{background:linear-gradient(135deg,var(--verde),var(--verde2));color:#fff;display:flex;align-items:center;gap:10px;padding:10px 12px}
.as-head img{width:42px;height:42px;border-radius:50%;object-fit:cover;border:2px solid var(--ouro2)}
.as-head div{flex:1;display:flex;flex-direction:column;line-height:1.2}.as-head small{opacity:.85;font-size:.72rem}
.as-x{background:none;border:0;color:#fff;font-size:1.7rem;cursor:pointer;line-height:1}
.as-log{flex:1;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:8px}
.as-msg{max-width:88%;padding:9px 12px;border-radius:14px;font-size:.9rem;line-height:1.45;white-space:pre-wrap}
.as-msg.bot{background:#fff;border:1px solid var(--linha);align-self:flex-start;border-bottom-left-radius:4px}
.as-msg.me{background:var(--verde);color:#fff;align-self:flex-end;border-bottom-right-radius:4px}
.as-link{display:inline-block;margin-top:6px;color:var(--verde2);font-weight:600}
.as-opts{display:flex;flex-wrap:wrap;gap:6px;padding:6px 10px;max-height:150px;overflow-y:auto}
.as-chip{background:#fff;border:1px solid var(--verde);color:var(--verde);border-radius:999px;padding:7px 12px;font:500 .8rem Inter,sans-serif;cursor:pointer}
.as-chip:hover{background:var(--verde);color:#fff}
.as-form{display:flex;gap:6px;padding:8px 10px;border-top:1px solid var(--linha);background:#fff}
.as-form input{flex:1;padding:9px 12px;border:1px solid #cfc8b3;border-radius:999px;font:inherit;font-size:.9rem}
.as-form button{background:var(--verde);color:#fff;border:0;border-radius:999px;padding:0 16px;font:600 .85rem Inter,sans-serif;cursor:pointer}
.as-foot{font-size:.66rem;color:var(--muted);text-align:center;padding:4px 10px 8px;background:#fff}
@media(max-width:560px){#dra-assist{right:12px;bottom:84px}.as-tip{display:none!important}}

/* ===== Voltar / cookies ===== */
.backrow{margin:0 0 10px}.backlink{display:inline-block;font-size:.92rem;font-weight:600;color:var(--verde2);text-decoration:none;padding:6px 0}.backlink:hover{text-decoration:underline}
.linkbtn{background:none;border:0;padding:0;font:inherit;color:var(--ouro2);cursor:pointer;text-decoration:underline}
.ck-banner{position:fixed;left:12px;right:12px;bottom:12px;z-index:10001;max-width:760px;margin:0 auto;background:#fff;border:1px solid var(--linha);border-top:4px solid var(--ouro);border-radius:14px;padding:16px 18px;box-shadow:0 10px 34px rgba(0,0,0,.22);font-size:.9rem}
.ck-banner p{margin:0 0 12px}.ck-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}
@media(max-width:560px){.ck-actions .btn{flex:1 1 100%;text-align:center}}

/* ===== Calendário de disponibilidade (livre = verde · pendente = amarelo · confirmado = vermelho) ===== */
.cal-wrap{max-width:560px}
.cal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.cal-head b{font-family:'Cormorant Garamond',Georgia,serif;font-size:1.5rem;color:var(--verde)}
.cal-head a,.cal-head .off{width:38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.5rem;text-decoration:none;border:1px solid var(--verde);color:var(--verde)}
.cal-head .off{opacity:.25}
.cal{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.cal .dw{text-align:center;font-size:.7rem;text-transform:uppercase;color:var(--muted);padding:4px 0}
.cal .dd{min-height:62px;border:1px solid var(--linha);border-radius:10px;padding:4px 5px;text-decoration:none;color:var(--texto);background:#fff;display:flex;flex-direction:column;gap:3px;font-size:.85rem}
.cal a.dd:hover{border-color:var(--verde2);background:#f6faf7}
.cal .dd.fora{visibility:hidden}
.cal .dd.vazio{background:#faf8f1;opacity:.6}
.cal .dd.passado{opacity:.5}
.cal .dd.hoje{border-color:var(--ouro);box-shadow:0 0 0 1px var(--ouro)}
.cal .dd.sel{outline:2px solid var(--verde);background:#f1f8f3;opacity:1}
.cal .dots{display:flex;gap:3px;flex-wrap:wrap;margin-top:auto}
.dot{font-size:.68rem;font-weight:700;border-radius:999px;padding:1px 6px;line-height:1.35;border:1px solid}
.dot.livre,.hs input:checked+span,.cs .c.livre{background:#dcf3e3;border-color:#1f9d55;color:#14532d}
.dot.pendente,.hs span.pendente,.cs .c.pendente{background:#fff0c9;border-color:#e0a800;color:#7a5a00}
.dot.confirmado,.hs span.confirmado,.cs .c.confirmado{background:#fde8e6;border-color:#d32f2f;color:#7a1710}
.cal-leg{display:flex;gap:16px;flex-wrap:wrap;margin-top:10px;font-size:.82rem}
.cal-leg i{display:inline-block;width:12px;height:12px;border-radius:3px;margin-right:5px;vertical-align:-1px;border:1px solid}
.cal-leg i.livre{background:#dcf3e3;border-color:#1f9d55}.cal-leg i.pendente{background:#fff0c9;border-color:#e0a800}.cal-leg i.confirmado{background:#fde8e6;border-color:#d32f2f}
.cal-cols{display:flex;gap:26px;flex-wrap:wrap;align-items:flex-start}.cal-cols>div{flex:1 1 320px;min-width:0}
/* horários do dia (admin: marcar/desmarcar) */
.hs{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0}
.hs label{margin:0}.hs input{display:none}
.hs span{display:inline-block;padding:8px 14px;border:1px dashed #b9b29b;border-radius:10px;color:var(--muted);cursor:pointer;min-width:88px;text-align:center;font-weight:500}
.hs input:checked+span{border-style:solid;font-weight:600}
.hs span.pendente,.hs span.confirmado{border-style:solid;cursor:default;font-weight:600}
.hs span.bloqueio{background:#e5e5e5;border:1px solid #999;color:#444;cursor:default}
.hs span small{display:block;font-weight:400;font-size:.68rem;max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin:0 auto}
.hs input:disabled+span{cursor:default}
/* horários do dia (cliente: clicar no verde para agendar) */
.cs{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0}
.cs .c{display:inline-block;padding:8px 14px;border-radius:10px;min-width:88px;text-align:center;text-decoration:none;font-weight:600;border:1px solid}
.cs a.c.livre:hover{background:#1f9d55;color:#fff}
.cs .c.indisp{background:#f0eee6;border-color:#ddd;color:#999;font-weight:500}
.cs .c.mine{box-shadow:0 0 0 2px var(--verde)}
.cs .c small{display:block;font-weight:400;font-size:.68rem}
@media(max-width:560px){.cal .dd{min-height:54px;padding:3px}.dot{padding:0 4px;font-size:.62rem}.cal{gap:3px}}
