
/* VITALIZA 1.1 — capa visual premium estable */
:root{
 --v-ivory:#fbf7f1;--v-surface:rgba(255,253,249,.94);--v-ink:#25272b;--v-muted:#746d64;
 --v-orange:#ff8a00;--v-orange-soft:#ffe2bd;--v-sage:#dce7cc;--v-green:#5c873f;
 --v-lilac:#ded7f2;--v-pink:#f5cee0;--v-line:#e9dfd3;--v-shadow:0 12px 34px rgba(85,63,38,.09);
 --v-serif:"Cormorant Garamond","Playfair Display",Georgia,serif;--v-sans:"DM Sans","Inter",system-ui,sans-serif;
}
html,body{background:var(--v-ivory)!important;color:var(--v-ink);font-family:var(--v-sans);}
body{margin:0;min-height:100dvh;background:radial-gradient(circle at 50% -10%,#fff 0,#fbf7f1 45%,#f7f0e7 100%)!important;}
#app{min-height:100dvh}.screen,.vcy,.vnt,.brz,.vsoul,.com,.journal-page{box-sizing:border-box;}
.v-premium-page{max-width:460px;margin:0 auto;padding:16px 18px 112px;min-height:100dvh;}
.v-premium-head{display:grid;grid-template-columns:44px 1fr 44px;align-items:center;margin:4px 0 22px;}
.v-premium-head h1{font-family:var(--v-serif);font-size:36px;font-weight:500;text-align:center;margin:0;letter-spacing:-.02em;}
.v-icon-btn{width:42px;height:42px;border:1px solid var(--v-line);border-radius:50%;background:rgba(255,255,255,.68);display:grid;place-items:center;color:var(--v-ink);font-size:23px;text-decoration:none;box-shadow:0 5px 16px rgba(80,60,40,.05);}
.v-card{background:var(--v-surface);border:1px solid rgba(231,219,205,.9);border-radius:24px;box-shadow:var(--v-shadow);padding:22px;margin:0 0 14px;backdrop-filter:blur(12px);}
.v-eyebrow{font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--v-muted);font-weight:700;margin:0 0 8px;}
/* Token editorial canónico (serif) — usar en títulos y momentos emocionales.
   Gana con !important a la regla global h1/h2/h3 (que fuerza sans en unify.css).
   Para contenido funcional (controles, formularios) NO usar esta clase: hereda sans. */
.v-title-serif,.v-editorial{font-family:var(--v-serif,"Cormorant Garamond","Playfair Display",Georgia,serif)!important;font-weight:500;letter-spacing:-.02em;}
.v-pill{display:inline-flex;align-items:center;padding:9px 14px;border-radius:999px;background:var(--v-sage);color:#43652f;font-size:14px;font-weight:650;}
.v-bottom-nav{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:min(100%,460px);height:76px;padding:7px 8px calc(7px + env(safe-area-inset-bottom));background:rgba(255,253,249,.94);border-top:1px solid var(--v-line);display:grid;grid-template-columns:repeat(5,1fr);z-index:99;backdrop-filter:blur(18px);box-sizing:border-box;}
.v-bottom-nav a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;text-decoration:none;color:#8a8176;font-size:11px}.v-bottom-nav a.active{color:var(--v-orange)}
.v-bottom-nav .v-main{width:58px;height:58px;border-radius:50%;justify-self:center;align-self:start;transform:translateY(-17px);background:#fff7ed;border:1px solid #ffd4a3;box-shadow:0 8px 24px rgba(255,138,0,.24);font-size:26px;color:var(--v-orange)}
/* Dashboard closer to the approved visual */
.home{max-width:460px!important;padding-top:12px!important;background:transparent!important}.home-word{font-family:var(--v-serif)!important;font-size:42px!important}.organism{max-width:365px!important;margin-top:14px!important}.vita-actions{display:none!important}.vita-card,.moment-card,.phrase-card{border:1px solid var(--v-line)!important;box-shadow:var(--v-shadow)!important;background:var(--v-surface)!important}.vita-msg{font-family:var(--v-serif);font-size:24px!important}.bottom-nav{background:rgba(255,253,249,.95)!important;backdrop-filter:blur(16px);}
/* Prevent raw-page failures from ever looking unstyled */
.vsoul,.com,.brz,.vnt,.vcy{max-width:460px;margin:0 auto;min-height:100dvh;background:transparent;color:var(--v-ink)}
@media(min-width:780px){.v-premium-page,.home,.vcy,.vnt,.brz,.vsoul,.com{border-left:1px solid rgba(230,220,208,.6);border-right:1px solid rgba(230,220,208,.6)}}

/* CIERRE VISUAL GLOBAL — evita páginas crudas y mantiene el lenguaje premium. */
:where(.ayu,.com,.hab-content,.jrn-content,.lib-content,.med,.pln-content,.kit-content,.vsoul,.oss,.vita-page,.legal,.recipes-screen,.recipe-detail,.authx,.ob){
  color:var(--vt-text-primary,#2B2E34);
}
:where(.ayu,.com,.hab-content,.jrn-content,.lib-content,.med,.pln-content,.kit-content,.vsoul,.oss,.vita-page,.legal,.recipes-screen,.recipe-detail) button,
:where(.ayu,.com,.hab-content,.jrn-content,.lib-content,.med,.pln-content,.kit-content,.vsoul,.oss,.vita-page,.legal,.recipes-screen,.recipe-detail) input,
:where(.ayu,.com,.hab-content,.jrn-content,.lib-content,.med,.pln-content,.kit-content,.vsoul,.oss,.vita-page,.legal,.recipes-screen,.recipe-detail) textarea,
:where(.ayu,.com,.hab-content,.jrn-content,.lib-content,.med,.pln-content,.kit-content,.vsoul,.oss,.vita-page,.legal,.recipes-screen,.recipe-detail) select{
  font:inherit;
}
:where(.ayu,.com,.hab-content,.jrn-content,.lib-content,.med,.pln-content,.kit-content,.vsoul,.oss,.vita-page,.legal,.recipes-screen,.recipe-detail) :is(button,a){-webkit-tap-highlight-color:transparent}
html[data-theme="dark"] body{background:#17140F;color:#F7F0E7}
html[data-theme="dark"] .global-app-nav{background:rgba(35,32,28,.94)!important}
