:root{--color-paper:#fbf3e6;--color-paper-deep:#f3e3cb;--color-ink:#4a3b37;--color-ink-soft:#7a675f;--color-rose:#e8a3ae;--color-rose-deep:#d97e8d;--color-gold:#c9a24c;--color-gold-light:#e9cf8f;--color-lilac:#b6a1d6;--color-lilac-deep:#9782bd;--bg:var(--color-paper);--surface:#fffaf1;--text:var(--color-ink);--text-soft:var(--color-ink-soft);--accent:var(--color-rose-deep);--accent-soft:var(--color-rose);--gold:var(--color-gold);--border:#4a3b3724;--shadow-soft:0 8px 24px #4a3b371f;--font-display:"Fraunces", "Georgia", serif;--font-body:"Quicksand", "Segoe UI", sans-serif;--font-accent:"Caveat", cursive;--radius-lg:28px;--radius-md:16px;--radius-sm:10px}:root[data-tema=dourado]{--accent:var(--color-gold);--accent-soft:var(--color-gold-light)}:root[data-tema=lavanda]{--accent:var(--color-lilac-deep);--accent-soft:var(--color-lilac)}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);min-height:100svh;color:var(--text);font-family:var(--font-body);-webkit-font-smoothing:antialiased;font-size:17px;line-height:1.5}#root{flex-direction:column;min-height:100svh;display:flex}h1,h2,h3{font-family:var(--font-display);color:var(--text);text-wrap:balance;margin:0 0 .5em;font-weight:600}p{margin:0 0 1em}button{font-family:inherit}a{color:var(--accent)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.page-shell{flex:1;justify-content:center;padding:32px 20px 64px;display:flex}.page-shell--center{align-items:center}.page-shell__inner{width:100%;max-width:420px}.card{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-soft);padding:28px 24px}.btn{font-family:var(--font-body);cursor:pointer;border:none;border-radius:999px;padding:14px 28px;font-size:16px;font-weight:600;transition:transform .15s,box-shadow .15s}.btn:hover{transform:translateY(-1px)}.btn--primary{background:linear-gradient(180deg, var(--color-gold-light), var(--gold));color:#4a3319;box-shadow:var(--shadow-soft)}.btn--secondary{background:var(--surface);color:var(--text);border:1px solid var(--border)}.btn--text{color:var(--text-soft);background:0 0;padding:8px 4px}.welcome{text-align:center}.welcome__eyebrow{font-family:var(--font-accent);color:var(--accent);margin-bottom:4px;font-size:22px}.welcome__title{margin-bottom:24px;font-size:28px}.welcome__form{text-align:left;flex-direction:column;gap:16px;display:flex}.welcome__form label{color:var(--text-soft);flex-direction:column;gap:6px;font-size:14px;font-weight:600;display:flex}.welcome__form input{font-family:var(--font-body);border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg);color:var(--text);padding:12px 14px;font-size:16px}.welcome__form input:focus-visible{border-color:var(--accent)}.welcome__form button{margin-top:8px}.welcome__form button:disabled{opacity:.6;cursor:not-allowed}.welcome__erro{color:var(--color-rose-deep);margin:0;font-size:14px}.welcome__aviso{color:var(--text-soft);background:var(--color-paper-deep);border-radius:var(--radius-sm);margin:0;padding:10px 12px;font-size:14px}.welcome__footer{color:var(--text-soft);margin-top:20px;font-size:14px}.create-pin{text-align:center}.create-pin h1{margin-bottom:8px;font-size:28px}.create-pin__subtitle{color:var(--text-soft);margin-bottom:24px;font-size:15px}.create-pin__form{text-align:left;flex-direction:column;gap:16px;display:flex}.create-pin__form label{color:var(--text-soft);flex-direction:column;gap:6px;font-size:14px;font-weight:600;display:flex}.create-pin__form input{font-family:var(--font-body);letter-spacing:12px;text-align:center;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg);color:var(--text);padding:12px 14px;font-size:24px}.create-pin__erro{color:var(--color-rose-deep);margin:0;font-size:14px}.lock{text-align:center;flex-direction:column;align-items:center;display:flex}.lock__cover{border-radius:var(--radius-lg);background:linear-gradient(160deg, var(--color-lilac), var(--accent-soft) 60%, var(--color-gold-light));width:220px;height:280px;box-shadow:var(--shadow-soft);color:#fff;flex-direction:column;justify-content:center;align-items:center;gap:8px;margin-bottom:28px;display:flex;position:relative}.lock__cover-label{font-family:var(--font-accent);font-size:24px}.lock__cover-owner{font-family:var(--font-display);opacity:.9;font-size:15px}.lock__clasp{background:radial-gradient(circle at 30% 30%, var(--color-gold-light), var(--gold));color:#fff;border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;font-size:18px;display:flex;position:absolute;bottom:-18px;box-shadow:0 4px 10px #00000026}.lock__prompt{color:var(--text-soft);margin-bottom:16px;font-size:15px}.lock__dots{gap:14px;margin-bottom:32px;display:flex}.lock__dots--tremer{animation:.4s tremer}.lock__dot{border:1.5px solid var(--accent);background:0 0;border-radius:50%;width:14px;height:14px;transition:background .15s}.lock__dot--filled{background:var(--accent)}.lock__keypad{grid-template-columns:repeat(3,64px);gap:14px;display:grid}.lock__key{border:1px solid var(--border);background:var(--surface);width:64px;height:64px;color:var(--text);font-family:var(--font-body);cursor:pointer;border-radius:50%;font-size:20px;font-weight:600;transition:background .15s}.lock__key:hover{background:var(--color-paper-deep)}.lock__key--wide{color:var(--text-soft);font-size:18px}.lock__sair{color:var(--text-soft);font-family:var(--font-body);cursor:pointer;background:0 0;border:none;margin-top:24px;font-size:13px;text-decoration:underline}@keyframes tremer{0%,to{transform:translate(0)}20%,60%{transform:translate(-6px)}40%,80%{transform:translate(6px)}}.navbar{padding:12px 16px calc(12px + env(safe-area-inset-bottom));border-top:1px solid var(--border);background:var(--surface);justify-content:center;gap:8px;display:flex}.navbar__item{border-radius:var(--radius-sm);color:var(--text-soft);flex-direction:column;align-items:center;gap:2px;padding:6px 18px;font-size:12px;text-decoration:none;display:flex}.navbar__icon{font-size:18px}.navbar__item--ativo{color:var(--accent);background:var(--color-paper-deep)}.timeline h1{text-align:center;margin-bottom:24px;font-size:24px}.timeline__vazio{color:var(--text-soft);margin-bottom:16px}.timeline__cta{color:var(--accent);font-weight:600;text-decoration:none}.timeline__lista{flex-direction:column;gap:12px;margin:0;padding:0;list-style:none;display:flex}.timeline__card{text-align:left;align-items:center;gap:14px;padding:16px 18px;display:flex}.timeline__humor{font-size:24px}.timeline__data{color:var(--text-soft);margin:0 0 4px;font-size:13px}.timeline__resumo{margin:0;font-size:15px}.timeline__conteudo{flex:1}.timeline__foto{border-radius:var(--radius-sm);max-width:120px;max-height:120px;margin-top:10px;display:block}.entry{text-align:center;flex-direction:column;align-items:center;display:flex}.entry__data{color:var(--text-soft);text-transform:capitalize;margin-bottom:16px;font-size:14px}.entry__humores{gap:10px;margin-bottom:20px;display:flex}.entry__humor{background:var(--surface);cursor:pointer;border:1.5px solid #0000;border-radius:50%;width:46px;height:46px;font-size:22px;transition:transform .15s,border-color .15s}.entry__humor:hover{transform:scale(1.08)}.entry__humor--ativo{border-color:var(--accent);background:var(--color-paper-deep)}.entry__prompt{font-family:var(--font-accent);color:var(--accent);max-width:320px;margin-bottom:20px;font-size:22px}.entry__paper{background:repeating-linear-gradient(var(--surface), var(--surface) 31px, var(--border) 32px);border-radius:var(--radius-md);width:100%;box-shadow:var(--shadow-soft);margin-bottom:24px;padding:4px 20px}.entry__paper textarea{resize:vertical;width:100%;font-family:var(--font-body);color:var(--text);background:0 0;border:none;outline:none;font-size:16px;line-height:32px}.entry__foto-label{cursor:pointer;margin-bottom:20px;display:block}.entry__foto-cta{color:var(--text-soft);border:1px dashed var(--border);border-radius:var(--radius-sm);padding:10px 16px;font-size:14px;display:inline-block}.entry__foto-preview{border-radius:var(--radius-md);max-width:160px;max-height:160px;box-shadow:var(--shadow-soft)}.entry__erro{color:var(--color-rose-deep);margin:0 0 16px;font-size:14px}.entry__selo{background:radial-gradient(circle at 35% 30%, var(--color-gold-light), var(--gold));color:#4a3319;width:84px;height:84px;font-family:var(--font-display);cursor:pointer;box-shadow:var(--shadow-soft);border:none;border-radius:50%;font-size:15px;font-weight:600;transition:transform .15s}.entry__selo:hover:not(:disabled){transform:scale(1.05)}.entry__selo:disabled{opacity:.5;cursor:not-allowed}.milestones{text-align:center}.milestones h1{margin-bottom:4px;font-size:24px}.milestones__subtitulo{color:var(--text-soft);margin-bottom:24px;font-size:14px}.milestones__grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.milestones__card{border:2px solid #0000;padding:0}.milestones__card--ativo{border-color:var(--accent)}.milestones__card-btn{cursor:pointer;background:0 0;border:none;width:100%;padding:22px 12px;font-family:inherit}.milestones__icone{margin-bottom:8px;font-size:26px;display:block}.milestones__card p{color:var(--text);margin:0;font-size:14px;font-weight:600}.milestones__form-card{text-align:left;margin-top:16px}.milestones__form{flex-direction:column;gap:12px;display:flex}.milestones__form-titulo{color:var(--text-soft);margin:0;font-size:14px;font-weight:600}.milestones__form textarea{font-family:var(--font-body);border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg);color:var(--text);resize:vertical;padding:10px 12px;font-size:15px}.milestones__salvar{background:var(--accent);color:#fff;font-family:var(--font-body);cursor:pointer;border:none;border-radius:999px;align-self:flex-start;padding:10px 20px;font-weight:600}.milestones__salvar:disabled{opacity:.6;cursor:not-allowed}.milestones__lista{flex-direction:column;gap:12px;margin:24px 0 0;padding:0;list-style:none;display:flex}.milestones__item{text-align:left;padding:16px 18px}.milestones__item-tipo{text-transform:uppercase;letter-spacing:.04em;color:var(--accent);margin:0 0 6px;font-size:12px;font-weight:600}.milestones__item-texto{margin:0;font-size:15px}.profile{text-align:center}.profile h1{margin-bottom:20px;font-size:24px}.profile__label{color:var(--text-soft);margin-bottom:12px;font-size:14px;font-weight:600}.profile__grid-temas{justify-content:center;gap:14px;display:flex}.profile__tema{cursor:pointer;border:2px solid #0000;border-radius:50%;width:48px;height:48px}.profile__tema--ativo{border-color:var(--text)}.profile__link{color:var(--accent);margin-top:20px;font-weight:600;text-decoration:none;display:block}.personal-data{flex-direction:column;gap:16px;display:flex}.personal-data__voltar{color:var(--text-soft);font-size:14px;text-decoration:none}.personal-data h1{margin-bottom:4px;font-size:24px}.personal-data__form{text-align:left;flex-direction:column;gap:14px;display:flex}.personal-data__form label{color:var(--text-soft);flex-direction:column;gap:6px;font-size:14px;font-weight:600;display:flex}.personal-data__form input{font-family:var(--font-body);border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg);color:var(--text);padding:12px 14px;font-size:16px}.personal-data__form input:disabled{opacity:.6}.personal-data__status{color:var(--accent);margin:0;font-size:13px}.personal-data__trocar-senha{flex-direction:column;gap:10px;display:flex}.personal-data__confirmar{text-align:left;flex-direction:column;gap:10px;display:flex}.personal-data__confirmar p{color:var(--text-soft);margin:0;font-size:14px}.personal-data__confirmar-botoes{gap:10px;display:flex}.personal-data__confirmar-botoes button:first-child{border:1px solid var(--border);font-family:var(--font-body);cursor:pointer;color:var(--text);background:0 0;border-radius:999px;padding:12px 20px;font-weight:600}.personal-data__zona-sensivel{flex-direction:column;gap:12px;display:flex}.personal-data__label{color:var(--text-soft);margin:0;font-size:13px;font-weight:600}.personal-data__apagar{border:1px solid var(--color-rose-deep);color:var(--color-rose-deep);font-family:var(--font-body);cursor:pointer;background:0 0;border-radius:999px;padding:12px 20px;font-weight:600}.personal-data__apagar:disabled{opacity:.6;cursor:not-allowed}
