/* 30 Dias para Reconectar o Casal · identidade Katia Treitler (vinho, dourado, bege; Lora + Montserrat) */
:root{
  --vinho:#6E1F33; --vinho-esc:#4A1219; --ink:#2B1B20; --texto:#4A3A3E; --quieto:#7D6B6F;
  --ouro:#B28D54; --ouro-esc:#7A5C26; --ouro-claro:#E3C88F;
  --bege:#F4EEE6; --papel:#FBF8F3; --linha:#DCCFBF; --branco:#FFFDFA;
  --ok:#3F6B4E; --f1:#8E2F3A; --f2:#B07A2A; --f3:#5E7F5F; --f4:#3F6B4E;
  --serif:'Lora', Georgia, 'Times New Roman', serif; --sans:'Montserrat', 'Segoe UI', Arial, sans-serif;
  color-scheme:light;
}
*{box-sizing:border-box}
html,body{height:100%;margin:0}
body{background:var(--bege);color:var(--ink);font-family:var(--sans);font-size:15px;line-height:1.55;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}
.app{max-width:440px;margin:0 auto;min-height:100%;background:var(--papel);position:relative;padding-bottom:calc(92px + env(safe-area-inset-bottom,0px));box-shadow:0 0 0 1px var(--linha)}
.wrap{padding-left:max(18px, env(safe-area-inset-left, 0px));padding-right:max(18px, env(safe-area-inset-right, 0px));padding-block:20px}
h1,h2,h3{font-family:var(--serif);font-weight:500;color:var(--ink);text-wrap:balance;margin:0}
h1{font-size:30px;line-height:1.15}
h2{font-size:24px;line-height:1.2}
h3{font-size:19px;line-height:1.3}
p{margin:0}
em{font-style:italic;color:var(--vinho)}
a{color:var(--vinho)}
.eyebrow{font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;font-weight:600;color:var(--ouro-esc)}
.muted{color:var(--quieto);font-size:13.5px}
.stack{display:flex;flex-direction:column;gap:14px}
.row{display:flex;gap:10px;align-items:center}
.card{background:var(--branco);border:1px solid var(--linha);border-radius:16px;padding:18px}
.card.vinho{background:var(--vinho);border-color:var(--vinho);color:var(--bege)}
.card.vinho h2,.card.vinho h3{color:var(--bege)}
.card.vinho .eyebrow{color:var(--ouro-claro)}
.card.vinho .muted{color:#E8D9D3}
.card.ouro{border-color:var(--ouro);background:#FBF3E4}
.btn{appearance:none;border:0;border-radius:999px;padding:14px 20px;font:600 15px/1 var(--sans);cursor:pointer;background:var(--vinho);color:var(--bege);width:100%;text-align:center;text-decoration:none;display:inline-block}
.btn.ghost{background:transparent;color:var(--vinho);border:1.5px solid var(--vinho)}
.btn.light{background:var(--bege);color:var(--vinho)}
.btn.small{width:auto;padding:10px 16px;font-size:13.5px}
.btn.link{background:none;color:var(--vinho);padding:6px 0;width:auto;text-decoration:underline;font-weight:500}
.btn:disabled{opacity:.45;cursor:not-allowed}
.btn:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--ouro);outline-offset:2px}
label{font-size:13.5px;font-weight:600;color:var(--texto)}
input[type=text],input[type=email],input[type=time],input[type=date],input[inputmode=numeric],textarea,select{width:100%;font:16px/1.4 var(--sans);color:var(--ink);background:var(--papel);border:1px solid var(--linha);border-radius:12px;padding:12px 14px}
textarea{min-height:96px;resize:vertical}
.code{letter-spacing:.4em;text-align:center;font-size:24px!important;font-weight:600!important}
.topbar{position:sticky;top:0;padding-top:env(safe-area-inset-top,0px);z-index:5;background:var(--papel);border-bottom:1px solid var(--linha)}
.topbar .wrap{padding-block:12px;display:flex;align-items:center;gap:10px}
.back,.gear{appearance:none;background:none;border:0;color:var(--vinho);font:600 14px var(--sans);cursor:pointer;padding:6px 0}
.gear{margin-left:auto;display:flex;align-items:center}
.gear svg{width:22px;height:22px}
.brand{font-family:var(--serif);font-size:15px;color:var(--ink)}
.brand i{color:var(--vinho)}
.tabbar{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:440px;background:var(--branco);border-top:1px solid var(--linha);display:grid;grid-template-columns:repeat(4,1fr);padding-bottom:env(safe-area-inset-bottom, 0px);z-index:6}
.tabbar button{appearance:none;border:0;background:none;padding:10px 4px 12px;font:600 11.5px var(--sans);color:var(--quieto);cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:4px}
.tabbar button[aria-current="page"]{color:var(--vinho)}
.tabbar svg{width:22px;height:22px}
.prog{height:8px;background:var(--linha);border-radius:999px;overflow:hidden}
.prog>span{display:block;height:100%;background:var(--vinho);border-radius:999px}
.prog.ouro>span{background:var(--ouro)}
.days{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}
.day{aspect-ratio:1;border-radius:10px;border:1px solid var(--linha);background:var(--papel);display:flex;align-items:center;justify-content:center;font:600 13px var(--sans);color:var(--quieto);cursor:pointer;max-width:100%}
.day.feito{background:var(--vinho);color:var(--bege);border-color:var(--vinho)}
.day.hoje{border:2px solid var(--vinho);color:var(--vinho)}
.day.bloq{opacity:.45;cursor:default}
.chip{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;border-radius:999px;border:1px solid var(--linha);background:var(--papel);font:500 13.5px var(--sans);color:var(--texto);cursor:pointer}
.chip[aria-pressed="true"]{background:var(--vinho);border-color:var(--vinho);color:var(--bege)}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.scale{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}
.scale button{appearance:none;border:1px solid var(--linha);background:var(--papel);border-radius:10px;padding:10px 0;font:600 15px var(--sans);color:var(--texto);cursor:pointer}
.scale button[aria-pressed="true"]{background:var(--vinho);color:var(--bege);border-color:var(--vinho)}
.scale-legend{display:flex;justify-content:space-between;font-size:11.5px;color:var(--quieto)}
.q{font-family:var(--serif);font-size:18px;line-height:1.35;color:var(--ink)}
.step{display:grid;grid-template-columns:28px 1fr;gap:10px;align-items:start}
.step b{width:28px;height:28px;border-radius:50%;background:var(--bege);color:var(--vinho);display:flex;align-items:center;justify-content:center;font:700 13px var(--sans)}
.note{background:var(--bege);border-radius:12px;padding:12px 14px;font-size:13.5px;color:var(--texto)}
.note.alerta{background:#F6E6E3;color:var(--vinho-esc)}
.timer{font:600 44px/1 var(--serif);color:var(--vinho);font-variant-numeric:tabular-nums;text-align:center}
.bars{display:flex;flex-direction:column;gap:12px}
.bar-row{display:grid;grid-template-columns:110px 1fr 34px;gap:10px;align-items:center;font-size:13.5px}
.bar-row .prog{height:10px}
.bar-row span.v{font-variant-numeric:tabular-nums;text-align:right;font-weight:600;color:var(--ink)}
.big{font:500 56px/1 var(--serif);color:var(--vinho);font-variant-numeric:tabular-nums}
.toggle{display:flex;background:var(--bege);border-radius:999px;padding:4px;gap:4px}
.toggle button{flex:1;appearance:none;border:0;border-radius:999px;padding:9px 10px;background:none;font:600 13px var(--sans);color:var(--texto);cursor:pointer}
.toggle button[aria-pressed="true"]{background:var(--branco);color:var(--vinho);box-shadow:0 1px 2px rgba(43,27,32,.12)}
.week{border-top:1px solid var(--linha);padding-top:16px;display:flex;flex-direction:column;gap:10px}
.week-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px}
.list-day{display:grid;grid-template-columns:38px 1fr auto;gap:10px;align-items:center;padding:10px 0;border-bottom:1px dashed var(--linha);font-size:14px}
.list-day:last-child{border-bottom:0}
.list-day .n{font:600 13px var(--sans);color:var(--quieto)}
.list-day.feito .n{color:var(--ok)}
.lock{font-size:12px;color:var(--quieto)}
.test{border:1px dashed var(--ouro);background:#FBF3E4;border-radius:12px;padding:10px 12px;display:flex;gap:10px;align-items:center;justify-content:space-between;font-size:12.5px;color:var(--ouro-esc)}
.test select{width:auto;padding:6px 8px;font-size:13px}
.phone-tip{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.fade{animation:fade .25s ease}
@keyframes fade{from{opacity:.4;transform:translateY(4px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.fade{animation:none}}
.map-item{border:1px solid var(--linha);border-radius:12px;padding:12px;display:flex;flex-direction:column;gap:8px;background:var(--papel)}
.split{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.small{font-size:12.5px}
.audio-card audio{width:100%;margin-top:6px}
.audio{display:flex;align-items:center;gap:12px}
.audio .play{width:48px;height:48px;border-radius:50%;background:var(--bege);display:flex;align-items:center;justify-content:center;flex:none}
.audio .play svg{width:20px;height:20px;fill:var(--vinho)}
.faixa{display:inline-block;margin-top:6px;padding:4px 10px;border-radius:999px;font:600 12px var(--sans);color:var(--c);background:color-mix(in srgb, var(--c) 12%, transparent);border:1px solid color-mix(in srgb, var(--c) 35%, transparent)}
.interp{font-size:14px;color:var(--texto)}
.legenda{font-size:13.5px;color:var(--texto)}
.legenda summary{cursor:pointer;font-weight:600;color:var(--vinho)}
.legenda ul{list-style:none;padding:0;margin:10px 0;display:flex;flex-direction:column;gap:6px}
.legenda li .faixa{margin:0 6px 0 0}
.save-msg{font-size:12.5px;color:var(--ok);min-height:18px}
.field{display:flex;flex-direction:column;gap:6px}
.comb{border-left:3px solid var(--ouro);padding-left:12px;display:flex;flex-direction:column;gap:4px}
.comb b{font-family:var(--serif);font-weight:500;font-size:16px}
.status{display:inline-block;font:600 11.5px var(--sans);padding:3px 9px;border-radius:999px;background:var(--bege);color:var(--texto)}
.status.ok{background:#E3EEE5;color:var(--ok)}
.status.aj{background:#F6EBD9;color:var(--ouro-esc)}
.final-page{background:var(--branco);border:1px solid var(--ouro);border-radius:18px;padding:22px;display:flex;flex-direction:column;gap:16px}
.final-page h2{color:var(--vinho)}
.final-page .sec{display:flex;flex-direction:column;gap:6px}
.final-page .sec h3{font-size:16px;color:var(--ouro-esc);font-family:var(--sans);font-weight:600;letter-spacing:.06em;text-transform:uppercase}
.oracao{font-family:var(--serif);font-style:italic;font-size:17px;line-height:1.55;color:var(--ink)}
.diff{font:600 13px var(--sans)}
.diff.up{color:var(--ok)} .diff.down{color:var(--f1)}
.center{text-align:center}
.splash{min-height:100vh;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:12px;color:var(--quieto)}
@media print{
  .topbar,.tabbar,.no-print{display:none!important}
  .app{box-shadow:none;max-width:none;padding:0}
  body{background:#fff}
}
