:root{
  --rose:#F6DDE5; --coral:#E88F9A; --coral-ink:#B4505E; --lav:#E9E3F5; --lav-ink:#5B4B8A;
  --sage:#D9E8DD; --sage-ink:#2F6B45; --cream:#FFF9F5; --white:#fff;
  --ink:#29313A; --ink2:#58636B; --line:#EBDDD9; --danger:#A3242F; --danger-bg:#FCE8EA;
  --shadow:0 6px 24px rgba(41,49,58,.07); --r:20px;
  --fh:"Plus Jakarta Sans",system-ui,sans-serif; --fb:"Nunito Sans",system-ui,sans-serif;
}
*{box-sizing:border-box}
html{font-size:17px;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--cream);color:var(--ink);font-family:var(--fb);line-height:1.55;min-height:100vh}
h1,h2,h3{font-family:var(--fh);line-height:1.25;margin:0 0 .5rem}
h1{font-size:1.75rem} h2{font-size:1.35rem} h3{font-size:1.12rem}
p{margin:.3rem 0 .8rem}
a{color:var(--coral-ink)}
.muted{color:var(--ink2)}
.small{font-size:.94rem}
main{max-width:760px;margin:0 auto;padding:20px 16px 120px}
.hero{background:linear-gradient(150deg,var(--rose),var(--lav) 60%,var(--sage));border-radius:28px;padding:28px 22px;margin-bottom:18px}
.card{background:var(--white);border-radius:var(--r);box-shadow:var(--shadow);padding:20px;margin-bottom:16px;border:1px solid #f3e8e4}
.card.tint-rose{background:linear-gradient(160deg,#fff,var(--rose))}
.card.tint-lav{background:linear-gradient(160deg,#fff,var(--lav))}
.card.tint-sage{background:linear-gradient(160deg,#fff,var(--sage))}
.grid{display:grid;gap:14px;grid-template-columns:1fr}
@media(min-width:560px){.grid.two{grid-template-columns:1fr 1fr}}
.tile{display:block;text-decoration:none;color:inherit}
.tile h3{display:flex;align-items:center;gap:10px}
.icon{width:26px;height:26px;flex:none;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:50px;padding:12px 22px;border-radius:999px;border:0;
  background:var(--coral-ink);color:#fff;font:700 1rem var(--fh);cursor:pointer;text-decoration:none}
.btn:hover{filter:brightness(1.06)} .btn:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,a:focus-visible{outline:3px solid var(--lav-ink);outline-offset:2px}
.btn.ghost{background:var(--white);color:var(--coral-ink);border:2px solid var(--coral)}
.btn.soft{background:var(--lav);color:var(--lav-ink)}
.btn.danger{background:var(--danger)}
.btn.block{width:100%}
.btn[disabled]{opacity:.55;cursor:not-allowed}
.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.spread{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
label{display:block;font-weight:700;margin:14px 0 6px}
.hint{display:block;font-weight:400;color:var(--ink2);font-size:.94rem}
input,select,textarea{width:100%;min-height:50px;padding:12px 14px;font:1rem var(--fb);color:var(--ink);background:#fff;border:1.5px solid #D9CBC6;border-radius:14px}
textarea{min-height:100px;resize:vertical}
.check{display:flex;gap:12px;align-items:flex-start;font-weight:400;margin:10px 0;cursor:pointer}
.check input{width:24px;height:24px;min-height:0;flex:none;margin-top:2px;accent-color:var(--coral-ink)}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0}
.chip{border:1.5px solid #D9CBC6;background:#fff;border-radius:999px;padding:10px 16px;min-height:46px;font:600 .98rem var(--fb);cursor:pointer;color:var(--ink)}
.chip[aria-pressed=true]{background:var(--coral-ink);border-color:var(--coral-ink);color:#fff}
.badge{display:inline-block;padding:4px 12px;border-radius:999px;font-weight:700;font-size:.9rem;background:var(--lav);color:var(--lav-ink)}
.badge.sage{background:var(--sage);color:var(--sage-ink)} .badge.rose{background:var(--rose);color:var(--coral-ink)}
.progress{height:14px;background:#F1E6E2;border-radius:99px;overflow:hidden}
.progress>span{display:block;height:100%;background:linear-gradient(90deg,var(--coral),var(--lav-ink));border-radius:99px}
.big{font:800 2.4rem var(--fh);line-height:1}
.alert{background:var(--danger-bg);border:2px solid var(--danger);color:#5a0f16;border-radius:16px;padding:16px;margin:12px 0}
.note{background:var(--lav);border-radius:16px;padding:14px 16px;margin:12px 0;color:#2f2950}
.list{list-style:none;margin:0;padding:0}
.list li{padding:14px 0;border-bottom:1px solid var(--line)}
.list li:last-child{border-bottom:0}
.saved{color:var(--sage-ink);font-weight:700}
.tabs{display:flex;gap:8px;overflow-x:auto;padding-bottom:6px;margin-bottom:12px;scrollbar-width:none}
.tabs a{white-space:nowrap;padding:10px 16px;border-radius:999px;background:#fff;border:1.5px solid var(--line);text-decoration:none;color:var(--ink);font-weight:700}
.tabs a[aria-current=page]{background:var(--ink);color:#fff;border-color:var(--ink)}
nav.bottom{position:fixed;bottom:0;left:0;right:0;background:rgba(255,255,255,.96);backdrop-filter:blur(10px);border-top:1px solid var(--line);
  display:flex;justify-content:space-around;padding:6px 4px calc(6px + env(safe-area-inset-bottom));z-index:10}
nav.bottom a{display:flex;flex-direction:column;align-items:center;gap:2px;text-decoration:none;color:var(--ink2);font:700 .92rem var(--fh);padding:6px 6px;min-width:62px;min-height:52px;border-radius:14px}
nav.bottom a[aria-current=page]{color:var(--coral-ink);background:var(--rose)}
.cal{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;text-align:center}
.cal .h{font-weight:800;color:var(--ink2);font-size:.9rem;padding:4px 0}
.cal button{min-height:48px;border-radius:12px;border:1px solid var(--line);background:#fff;font:600 1rem var(--fb);cursor:pointer;position:relative;color:var(--ink)}
.cal button.today{border:2px solid var(--coral-ink)}
.cal button.sel{background:var(--ink);color:#fff}
.cal button .dot{position:absolute;bottom:5px;left:50%;transform:translateX(-50%);width:7px;height:7px;border-radius:50%;background:var(--coral-ink)}
.cal button.out{opacity:.35}
.timer{font:800 3.6rem var(--fh);text-align:center;letter-spacing:1px;margin:10px 0}
.step{display:flex;gap:12px;align-items:flex-start}
.step b{flex:none;width:34px;height:34px;border-radius:50%;background:var(--rose);color:var(--coral-ink);display:grid;place-items:center;font-family:var(--fh)}
.step.on b{background:var(--coral-ink);color:#fff}
.src{font-size:.94rem;color:var(--ink2);border-top:1px dashed var(--line);margin-top:12px;padding-top:10px}
.toast{position:fixed;left:50%;bottom:96px;transform:translateX(-50%);background:var(--ink);color:#fff;padding:14px 22px;border-radius:999px;font-weight:700;z-index:20;box-shadow:var(--shadow)}
.chat .me{background:var(--rose);border-radius:18px 18px 4px 18px;padding:12px 16px;margin:10px 0 10px auto;max-width:85%}
.chat .bot{background:#fff;border:1px solid var(--line);border-radius:18px 18px 18px 4px;padding:14px 16px;margin:10px 0;max-width:92%}
.fade{animation:fade .25s ease}
@keyframes fade{from{opacity:0;transform:translateY(6px)}to{opacity:1}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
@media print{nav.bottom,.noprint{display:none!important}body{background:#fff}.card{box-shadow:none;border:1px solid #ccc;break-inside:avoid}main{padding:0}}

/* ---- ALUNA ---- */
.brand{font:800 2.6rem var(--fh);letter-spacing:.14em;margin:14px 0 6px;background:linear-gradient(90deg,var(--coral-ink),var(--lav-ink));-webkit-background-clip:text;background-clip:text;color:transparent}
.welcome{text-align:center;padding:34px 22px}
.list li .icon{vertical-align:-6px;margin-right:6px;color:var(--coral-ink)}
.mic-cta{background:linear-gradient(90deg,var(--coral-ink),var(--lav-ink));min-height:58px;font-size:1.08rem}
.mic-cta .icon{width:24px;height:24px}
.mic{width:96px;height:96px;border-radius:50%;border:0;margin:14px auto 0;display:grid;place-items:center;cursor:pointer;color:#fff;
  background:linear-gradient(145deg,var(--coral-ink),var(--lav-ink));box-shadow:0 10px 30px rgba(180,80,94,.35)}
.mic .icon{width:42px;height:42px}
.mic[disabled]{opacity:.5;cursor:not-allowed}
.mic.listening{animation:pulse 1.4s ease-in-out infinite}
@keyframes pulse{0%,100%{box-shadow:0 0 0 0 rgba(180,80,94,.45)}50%{box-shadow:0 0 0 18px rgba(180,80,94,0)}}
.reminder-banner{position:fixed;top:12px;left:12px;right:12px;max-width:560px;margin:0 auto;background:#fff;border:2px solid var(--lav-ink);border-radius:18px;padding:14px 16px;box-shadow:var(--shadow);z-index:30;display:grid;gap:10px;font-size:1.05rem}
a.chip{text-decoration:none;display:inline-flex;align-items:center}
