
:root{--bg:#F7F2EC;--surface:#FFFDF9;--surface2:#F1E7DC;--brown:#6D442A;--brown2:#8A5A3A;--terra:#B96A46;--sage:#788B6B;--sageL:#E7EEE2;--text:#261F1A;--muted:#786F67;--border:#E7D8CA;--danger:#B84C4C;--shadow:0 16px 45px rgba(86,58,39,.10);--r:24px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;min-height:100vh}button,input,textarea,select{font:inherit}button{cursor:pointer}.hidden{display:none!important}.screen{min-height:100vh}
.auth-screen{display:grid;grid-template-columns:1.15fr .85fr;background:linear-gradient(135deg,#684027,#8c5937 55%,#9d6943)}
.auth-visual{color:#fff;padding:72px clamp(32px,8vw,110px);display:flex;flex-direction:column;justify-content:center;position:relative;overflow:hidden}.auth-visual:after{content:"";width:450px;height:450px;border:1px solid rgba(255,255,255,.11);border-radius:50%;position:absolute;right:-160px;bottom:-140px}.brand-chip{display:inline-flex;width:max-content;padding:9px 13px;border-radius:999px;letter-spacing:.16em;font-size:11px;font-weight:900;background:rgba(255,255,255,.14)}.hero-symbol{width:78px;height:78px;border-radius:26px;display:grid;place-items:center;margin:38px 0 20px;font-size:36px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.18)}.auth-visual h1{font-family:Georgia,serif;font-size:clamp(42px,5vw,68px);line-height:1.02;max-width:760px;margin:0}.auth-visual>p{font-size:18px;line-height:1.65;max-width:680px;color:#f3e8de}.value-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;max-width:720px;margin-top:26px}.value-card{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.14);border-radius:18px;padding:18px}.value-card span{display:block;font-size:26px;font-weight:900}.value-card small{color:#f4e9e0}.auth-note{margin-top:28px;max-width:720px;font-size:12px;color:#eedfd4;background:rgba(255,255,255,.08);border-radius:14px;padding:14px 16px}
.auth-panel{background:var(--bg);display:grid;place-items:center;padding:40px}.auth-card{width:min(100%,460px);background:var(--surface);border-radius:30px;padding:38px;box-shadow:var(--shadow);border:1px solid var(--border)}.mini-logo,.logo-mark{width:48px;height:48px;display:grid;place-items:center;border-radius:16px;color:#fff;background:linear-gradient(145deg,var(--brown),var(--terra));font-weight:900;letter-spacing:.06em}.auth-card h2{font-family:Georgia,serif;font-size:36px;margin:20px 0 6px}.muted{color:var(--muted)}
label{display:block;font-size:13px;font-weight:800;margin:18px 0 8px}input,textarea,select{width:100%;border:1px solid var(--border);background:#fff;color:var(--text);border-radius:14px;padding:14px 15px;outline:none}input:focus,textarea:focus,select:focus{border-color:#b98a6b;box-shadow:0 0 0 4px rgba(185,138,107,.12)}.password-wrap{position:relative}.password-wrap input{padding-right:50px}.icon-btn{border:0;background:transparent;min-width:40px;min-height:40px;border-radius:12px}.password-wrap .icon-btn{position:absolute;right:5px;top:4px}
.primary-btn,.secondary-btn,.ghost-btn,.light-btn,.danger-btn{border:0;border-radius:14px;padding:13px 17px;font-weight:900;transition:.2s}.primary-btn{background:linear-gradient(135deg,var(--brown),var(--brown2));color:#fff;box-shadow:0 9px 24px rgba(109,68,42,.18)}.secondary-btn{background:var(--surface2);color:var(--brown)}.ghost-btn{background:#f2ece6;color:var(--text)}.light-btn{background:#fff;color:var(--brown)}.danger-btn{background:#fbeaea;color:var(--danger)}.primary-btn:hover,.secondary-btn:hover,.light-btn:hover,.danger-btn:hover{transform:translateY(-1px)}.full{width:100%}.demo-box{margin-top:18px;padding:14px;background:var(--sageL);border-radius:14px}.demo-box p{margin:4px 0 0;color:#5f6e57;font-size:12px}
.app-screen{display:grid;grid-template-columns:250px 1fr}.sidebar{position:fixed;left:0;top:0;bottom:0;width:250px;background:#2c241f;color:#fff;padding:24px 18px;display:flex;flex-direction:column;z-index:30}.brand-block{display:flex;align-items:center;gap:12px}.brand-block strong{display:block}.brand-block small{display:block;color:#c9bab0;margin-top:3px}.logo-mark{width:42px;height:42px;border-radius:13px}.nav-list{margin-top:30px;display:grid;gap:6px}.nav-item{display:flex;align-items:center;gap:12px;border:0;background:transparent;color:#d7cbc4;padding:12px;border-radius:13px;text-align:left}.nav-item.active,.nav-item:hover{background:#44372f;color:#fff}.nav-item span{width:24px;text-align:center}.sidebar-bottom{margin-top:auto}.profile-mini{display:flex;gap:10px;align-items:center;padding:12px 0 18px}.profile-mini .avatar{width:38px;height:38px;border-radius:50%;background:#665247;display:grid;place-items:center;font-weight:900}.profile-mini strong,.profile-mini small{display:block}.profile-mini small{color:#bdaea5;font-size:11px}
.content{grid-column:2;padding:42px clamp(22px,4vw,56px) 100px;width:100%;max-width:1500px}.view{display:none;animation:fade .24s ease}.view.active{display:block}@keyframes fade{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}.eyebrow{font-size:11px;letter-spacing:.16em;font-weight:900;color:var(--terra)}.eyebrow.light{color:#f8ddcc}
.hero-dashboard{display:grid;grid-template-columns:1.4fr .6fr;gap:24px;background:linear-gradient(135deg,#fffdf9,#f1e4d5);border:1px solid var(--border);border-radius:30px;padding:40px;box-shadow:var(--shadow)}.hero-dashboard h2,.page-title h2{font-family:Georgia,serif;font-size:clamp(34px,4vw,48px);margin:9px 0}.hero-dashboard p,.page-title p{color:var(--muted);font-size:16px}.hero-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:24px}.stomach-card{position:relative;min-height:230px;border-radius:26px;background:linear-gradient(145deg,var(--brown),#9f6b49);color:#fff;padding:24px;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;overflow:hidden}.stomach-illustration{font-size:72px;z-index:2}.pulse-ring{position:absolute;width:180px;height:180px;border:1px solid rgba(255,255,255,.16);border-radius:50%;box-shadow:0 0 0 40px rgba(255,255,255,.04),0 0 0 80px rgba(255,255,255,.02)}.stomach-card p{color:#f5e9e1;z-index:2;font-size:13px;max-width:230px}
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:18px 0}.stat-card{display:flex;gap:14px;align-items:center;background:var(--surface);border:1px solid var(--border);border-radius:18px;padding:18px}.stat-icon{width:42px;height:42px;border-radius:13px;background:var(--surface2);display:grid;place-items:center;font-size:20px}.stat-card small,.stat-card strong{display:block}.stat-card small{font-size:12px;color:var(--muted)}.stat-card strong{font-size:22px;margin-top:3px}
.dashboard-grid,.two-column-layout{display:grid;grid-template-columns:1.3fr .7fr;gap:18px;margin-top:18px}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:24px;box-shadow:0 8px 25px rgba(75,53,38,.05)}.panel h3{margin:6px 0 10px;font-size:22px}.panel-head{display:flex;justify-content:space-between;gap:14px}.pill{display:inline-flex;padding:7px 10px;border-radius:999px;background:var(--sageL);color:#5e6f55;font-size:11px;font-weight:900}.pill.warm{background:#f3e0d2;color:#975a39}.steps-list{display:grid;gap:10px;margin-top:18px}.step-row{width:100%;display:grid;grid-template-columns:auto 1fr auto;gap:13px;align-items:center;border:1px solid var(--border);background:#fffefc;padding:14px;border-radius:16px;text-align:left}.step-row:hover{background:#faf5f0}.step-num{width:34px;height:34px;border-radius:12px;background:var(--surface2);display:grid;place-items:center;font-weight:900;color:var(--brown)}.step-row small{display:block;color:var(--muted);margin-top:3px}.accent-panel{color:#fff;background:linear-gradient(145deg,#70452d,#a06543);border-color:transparent}.accent-panel p{color:#f6e7dc;line-height:1.6}.insight-panel{margin-top:18px}.insight-empty,.empty-state{color:var(--muted);padding:16px 0;line-height:1.6}
.page-title{margin-bottom:18px}.slider-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.slider-card{border:1px solid var(--border);border-radius:16px;padding:16px;background:#fffefc}.slider-label{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:10px}.slider-label span:last-child{background:var(--surface2);min-width:32px;height:32px;border-radius:10px;display:grid;place-items:center}input[type=range]{padding:0;border:0;accent-color:var(--brown)}.scale{display:flex;justify-content:space-between;font-size:10px;color:var(--muted)}.form-grid{display:grid;gap:14px}.form-grid.two{grid-template-columns:1fr 1fr}.form-grid.three{grid-template-columns:repeat(3,1fr)}.response-box{margin:20px 0;padding:18px;border:1px dashed #d9c4b2;border-radius:18px;background:#fbf6f0}.symptom-mini-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.symptom-mini-grid label{display:flex;justify-content:space-between}.symptom-mini-grid label span{color:var(--brown)}
.timeline{display:grid;gap:10px}.timeline-item{border-left:3px solid #c69a7d;padding:10px 12px;background:#faf6f1;border-radius:0 12px 12px 0}.timeline-item strong{display:block}.timeline-item small{color:var(--muted)}.meal-symptoms{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}.meal-symptoms span{font-size:10px;background:#eee4da;padding:5px 7px;border-radius:999px}
.challenge-hero{display:grid;grid-template-columns:1fr auto;gap:20px;align-items:center;background:linear-gradient(135deg,#6e452d,#95603e);color:#fff;border-radius:26px;padding:26px;margin-bottom:18px}.challenge-hero h3{font-size:25px;margin:12px 0}.challenge-badge{width:86px;height:86px;border-radius:26px;background:rgba(255,255,255,.13);display:grid;place-items:center;font-size:34px;font-weight:900}.progress-bar{height:10px;background:rgba(255,255,255,.18);border-radius:999px;overflow:hidden}.progress-fill{height:100%;background:#fff;border-radius:999px}.today-challenge{margin-bottom:18px;background:#fff4e8;border-color:#e9cdb5}.today-challenge h3{font-family:Georgia,serif;font-size:28px}.challenge-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.challenge-card{background:var(--surface);border:1px solid var(--border);border-radius:18px;padding:18px;min-height:150px}.challenge-card.completed{background:var(--sageL);border-color:#cbd9c2}.challenge-card.current{outline:3px solid rgba(185,106,70,.18)}.challenge-day{font-size:11px;color:var(--terra);font-weight:900;letter-spacing:.12em}.challenge-card h4{margin:8px 0 6px}.challenge-card p{color:var(--muted);font-size:13px;line-height:1.45}.challenge-card button{margin-top:10px;border:0;border-radius:10px;padding:8px 10px;background:var(--surface2);color:var(--brown);font-weight:900}.challenge-card.completed button{background:#6f8066;color:#fff}
.recipe-tools{display:flex;gap:10px;margin-bottom:16px}.recipe-tools input{flex:1}.ingredient-finder{margin-bottom:16px}.check-chips{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.check-chip{border:1px solid var(--border);background:#fff;padding:8px 10px;border-radius:999px}.check-chip.active{background:var(--brown);color:#fff}.recipe-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.recipe-card{background:var(--surface);border:1px solid var(--border);border-radius:22px;overflow:hidden;box-shadow:0 8px 22px rgba(75,53,38,.05);display:flex;flex-direction:column}.recipe-cover{min-height:150px;background:linear-gradient(135deg,#e7d1be,#f6ece2);display:grid;place-items:center;font-size:56px}.recipe-body{padding:18px;display:flex;flex-direction:column;flex:1}.recipe-body h3{font-size:19px;margin:6px 0}.recipe-body p{color:var(--muted);font-size:13px;line-height:1.5;flex:1}.recipe-meta{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}.recipe-meta span{font-size:10px;padding:6px 8px;border-radius:999px;background:var(--surface2)}.recipe-body button{border:0;background:var(--brown);color:#fff;border-radius:12px;padding:10px;font-weight:900}
.library-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.library-card{display:grid;grid-template-columns:.72fr 1.28fr;background:var(--surface);border:1px solid var(--border);border-radius:24px;overflow:hidden}.library-cover{min-height:290px;display:flex;flex-direction:column;justify-content:center;align-items:center;color:#fff}.cover-a{background:linear-gradient(145deg,#c92f4d,#20314a)}.cover-b{background:linear-gradient(145deg,#81522f,#d6a42b)}.library-cover span{font-size:70px;font-weight:900}.library-cover small{font-weight:900}.library-body{padding:24px}.library-body p{color:var(--muted);line-height:1.6}.library-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:18px}.link-btn{text-decoration:none;display:inline-flex;align-items:center}.library-note{margin-top:18px;font-size:13px;color:var(--muted)}
.chart-area{height:250px;display:flex;align-items:flex-end;gap:9px;padding:20px 4px 0}.bar-wrap{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;gap:6px}.bar{width:100%;max-width:34px;border-radius:10px 10px 4px 4px;background:linear-gradient(#b76d49,#6e452d);min-height:3px}.bar-wrap small{font-size:9px;color:var(--muted)}.chart-message{width:100%;align-self:center;text-align:center;padding:24px;color:var(--muted);background:#faf6f1;border-radius:16px}.pattern-list{display:grid;gap:10px}.pattern-item{display:flex;justify-content:space-between;gap:14px;padding:12px;border-radius:14px;background:#faf6f1}.pattern-item small{display:block;color:var(--muted);margin-top:3px}
.report-card{background:linear-gradient(145deg,#fffdf9,#f1e6da);border:1px solid var(--border);border-radius:28px;padding:30px;box-shadow:var(--shadow)}.report-top{display:flex;justify-content:space-between;gap:20px}.report-top .brand-chip{background:var(--brown);color:#fff}.report-top h3{font-family:Georgia,serif;font-size:30px;margin:14px 0 5px}.report-score{width:120px;height:120px;border-radius:50%;background:#6e452d;color:#fff;display:grid;place-items:center;text-align:center;padding:20px}.report-score span{font-size:27px;font-weight:900}.report-score small{font-size:10px}.report-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:24px 0}.report-metrics>div{background:#fff;border:1px solid var(--border);padding:16px;border-radius:16px;text-align:center}.report-metrics span,.report-metrics small{display:block}.report-metrics span{font-size:25px;font-weight:900}.report-metrics small{color:var(--muted)}.report-section{padding:20px;background:#fff;border:1px solid var(--border);border-radius:16px}.report-disclaimer{font-size:11px;color:var(--muted);margin-top:18px}.report-actions{display:flex;gap:10px;margin-top:16px;flex-wrap:wrap}.print-tip{font-size:12px;color:var(--muted)}
.mobile-header,.bottom-nav{display:none}.toast{position:fixed;right:24px;bottom:24px;z-index:100;background:#2c241f;color:#fff;padding:13px 16px;border-radius:13px;opacity:0;transform:translateY(12px);pointer-events:none;transition:.25s;box-shadow:var(--shadow)}.toast.show{opacity:1;transform:none}
.modal{position:fixed;inset:0;z-index:90;display:grid;place-items:center;padding:20px}.modal-backdrop{position:absolute;inset:0;background:rgba(37,29,25,.55);backdrop-filter:blur(5px)}.modal-card,.doc-modal-card{position:relative;z-index:2;width:min(100%,680px);max-height:88vh;overflow:auto;background:var(--surface);border-radius:24px;padding:26px}.doc-modal-card{width:min(96vw,1050px);height:90vh;padding:12px}.doc-modal-card iframe{width:100%;height:100%;border:0;border-radius:16px}.modal-close{position:absolute;right:14px;top:14px;width:36px;height:36px;border:0;border-radius:50%;background:#f1e7dc;font-size:24px;z-index:3}.modal-card h2{font-family:Georgia,serif;font-size:30px}.modal-card li{margin-bottom:8px}.warning{padding:12px;background:#fff0e8;border-radius:12px;color:#8c5336;font-size:12px}
@media(max-width:1100px){.stats-grid{grid-template-columns:repeat(2,1fr)}.challenge-grid,.recipe-grid{grid-template-columns:repeat(2,1fr)}.dashboard-grid,.two-column-layout{grid-template-columns:1fr}.library-card{grid-template-columns:1fr}.library-cover{min-height:190px}}
@media(max-width:820px){.auth-screen{grid-template-columns:1fr}.auth-visual{padding:48px 24px}.auth-panel{padding:24px}.value-grid{grid-template-columns:1fr}.app-screen{display:block}.sidebar{transform:translateX(-100%);transition:.25s}.sidebar.open{transform:none}.content{padding:92px 18px 100px;max-width:none}.mobile-header{display:flex;position:fixed;top:0;left:0;right:0;z-index:25;justify-content:space-between;align-items:center;background:rgba(247,242,236,.92);backdrop-filter:blur(12px);padding:12px 16px;border-bottom:1px solid var(--border)}.brand-block.compact .logo-mark{width:36px;height:36px}.hero-dashboard{grid-template-columns:1fr;padding:26px}.stomach-card{min-height:190px}.bottom-nav{display:grid;grid-template-columns:repeat(5,1fr);position:fixed;left:0;right:0;bottom:0;z-index:25;background:rgba(255,253,249,.96);backdrop-filter:blur(12px);border-top:1px solid var(--border);padding:7px 6px calc(7px + env(safe-area-inset-bottom))}.bottom-item{border:0;background:transparent;color:#8b817a;display:grid;place-items:center;gap:2px}.bottom-item.active{color:var(--brown);font-weight:900}.bottom-item span{font-size:19px}.bottom-item small{font-size:9px}.report-metrics{grid-template-columns:repeat(2,1fr)}.library-grid{grid-template-columns:1fr}}
@media(max-width:560px){.auth-card{padding:26px 20px}.auth-visual h1{font-size:42px}.hero-dashboard h2,.page-title h2{font-size:34px}.stats-grid,.slider-grid,.form-grid.two,.form-grid.three,.challenge-grid,.recipe-grid,.symptom-mini-grid{grid-template-columns:1fr}.recipe-tools{flex-direction:column}.challenge-hero{grid-template-columns:1fr}.challenge-badge{display:none}.report-top{display:block}.report-score{width:100%;height:auto;border-radius:16px;margin-top:16px}.report-metrics{grid-template-columns:1fr 1fr}}
@media print{body{background:#fff}.sidebar,.mobile-header,.bottom-nav,.page-title,.report-actions,.print-tip{display:none!important}.content{padding:0!important}.view{display:none!important}#view-report{display:block!important}.report-card{box-shadow:none;border:0;padding:18px}.report-top h3{font-size:26px}.report-score{width:90px;height:90px}.report-metrics{grid-template-columns:repeat(4,1fr)}}


/* =========================================================
   VIDA CON VOZ - 3D BOOK READER
   ========================================================= */
.premium-book-card{
  grid-template-columns: 280px 1fr;
  min-height: 320px;
}
.library-cover-img{
  position:relative;
  min-height:320px;
  overflow:hidden;
  background:#2b221d;
}
.library-cover-img img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  transition:transform .35s ease;
}
.premium-book-card:hover .library-cover-img img{transform:scale(1.025)}
.book-badge{
  position:absolute;
  left:14px;
  top:14px;
  padding:7px 10px;
  border-radius:999px;
  background:rgba(34,27,22,.82);
  color:#fff;
  font-size:10px;
  letter-spacing:.14em;
  font-weight:900;
  backdrop-filter:blur(8px)
}

.book-modal{
  position:fixed;
  inset:0;
  z-index:150;
  background:rgba(20,15,12,.96);
  display:flex;
  align-items:stretch;
  justify-content:center;
  padding:0;
  color:#fff;
}
.book-modal-shell{
  width:100%;
  height:100%;
  display:grid;
  grid-template-rows:auto 1fr auto;
  background:
    radial-gradient(circle at 50% 43%, rgba(255,255,255,.06), transparent 30%),
    linear-gradient(145deg,#1f1814,#2d211a 50%,#17120f);
}
.book-reader-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:14px 18px;
  border-bottom:1px solid rgba(255,255,255,.10);
  background:rgba(22,17,14,.84);
  backdrop-filter:blur(14px);
}
.book-reader-title strong{
  display:block;
  font-family:Georgia,serif;
  font-size:21px;
  margin-top:4px;
}
.book-reader-actions{
  display:flex;
  align-items:center;
  gap:7px;
}
.book-tool-btn{
  width:40px;
  height:40px;
  display:grid;
  place-items:center;
  border:1px solid rgba(255,255,255,.14);
  border-radius:12px;
  background:rgba(255,255,255,.08);
  color:#fff;
  text-decoration:none;
  font-size:19px;
  font-weight:800;
  transition:.2s;
}
.book-tool-btn:hover{background:rgba(255,255,255,.16);transform:translateY(-1px)}
.close-tool{background:rgba(185,76,76,.24)}
.download-tool{font-size:16px}
.zoom-label{
  min-width:48px;
  text-align:center;
  font-size:11px;
  color:#d8c8bd
}

.book-reader-body{
  position:relative;
  display:grid;
  grid-template-columns:70px 1fr 70px;
  align-items:center;
  min-height:0;
  overflow:hidden;
  padding:18px 10px;
}
.book-stage{
  position:relative;
  width:100%;
  height:100%;
  min-height:420px;
  display:flex;
  justify-content:center;
  align-items:center;
  perspective:2400px;
  overflow:auto;
  touch-action:pan-y;
}
.book{
  --book-scale:1;
  position:relative;
  width:min(1120px,84vw);
  height:min(74vh,790px);
  transform:scale(var(--book-scale));
  transform-origin:center center;
  transition:transform .2s ease;
  perspective:2600px;
  filter:drop-shadow(0 26px 35px rgba(0,0,0,.42));
}
.book::after{
  content:"";
  position:absolute;
  left:50%;
  top:2%;
  bottom:2%;
  width:10px;
  transform:translateX(-50%);
  background:linear-gradient(90deg,rgba(0,0,0,.20),rgba(255,255,255,.08),rgba(0,0,0,.22));
  filter:blur(3px);
  z-index:20;
  pointer-events:none;
}
.book-page{
  position:absolute;
  top:0;
  width:50%;
  height:100%;
  transform-style:preserve-3d;
}
.book-page-left{left:0}
.book-page-right{right:0}
.page-paper{
  position:absolute;
  inset:0;
  overflow:hidden;
  background:#f5efe4;
  border:1px solid rgba(80,57,40,.25);
  backface-visibility:hidden;
}
.page-paper img{
  width:100%;
  height:100%;
  object-fit:contain;
  display:block;
  background:#f6f1e8;
  user-select:none;
  -webkit-user-drag:none;
}
.page-paper-left{
  border-radius:14px 2px 2px 14px;
  box-shadow:inset -22px 0 30px rgba(71,48,30,.12),inset 0 0 12px rgba(255,255,255,.4);
}
.page-paper-right{
  border-radius:2px 14px 14px 2px;
  box-shadow:inset 22px 0 30px rgba(71,48,30,.12),inset 0 0 12px rgba(255,255,255,.4);
}
.book-page-left.empty-page .page-paper{opacity:.13}
.book-flip-page{
  right:0;
  transform-origin:left center;
  z-index:40;
  width:50%;
}
.book-flip-page .page-paper-front{
  transform:rotateY(0deg);
  border-radius:2px 14px 14px 2px;
}
.book-flip-page .page-paper-back{
  transform:rotateY(180deg);
  border-radius:14px 2px 2px 14px;
}
.book-flip-page.turn-next{
  display:block!important;
  animation:turnPageNext .72s cubic-bezier(.55,.05,.24,.97) forwards;
}
.book-flip-page.turn-prev{
  display:block!important;
  left:0;
  right:auto;
  transform-origin:right center;
  animation:turnPagePrev .72s cubic-bezier(.55,.05,.24,.97) forwards;
}
@keyframes turnPageNext{
  0%{transform:rotateY(0deg)}
  45%{box-shadow:-15px 5px 28px rgba(0,0,0,.28)}
  100%{transform:rotateY(-180deg)}
}
@keyframes turnPagePrev{
  0%{transform:rotateY(-180deg)}
  55%{box-shadow:15px 5px 28px rgba(0,0,0,.28)}
  100%{transform:rotateY(0deg)}
}
.book-nav-btn{
  width:52px;height:82px;
  border:1px solid rgba(255,255,255,.13);
  border-radius:16px;
  background:rgba(255,255,255,.08);
  color:#fff;
  font-size:46px;
  line-height:1;
  display:grid;
  place-items:center;
  transition:.2s;
  z-index:5;
}
.book-nav-btn:hover:not(:disabled){background:rgba(255,255,255,.16);transform:scale(1.03)}
.book-nav-btn:disabled{opacity:.22;cursor:not-allowed}
.book-reader-footer{
  display:grid;
  grid-template-columns:1fr auto;
  align-items:center;
  gap:18px;
  padding:12px 18px 16px;
  border-top:1px solid rgba(255,255,255,.10);
  background:rgba(22,17,14,.82)
}
.book-progress{
  display:grid;
  grid-template-columns:auto 1fr;
  gap:14px;
  align-items:center;
  min-width:0;
}
.book-progress span{font-size:12px;font-weight:800;white-space:nowrap}
.book-progress input{
  accent-color:#d08a5b;
  padding:0;
  border:0;
  background:transparent;
}
.book-reader-help{
  color:#ad9d91;
  font-size:11px;
  white-space:nowrap
}
.book-page.loading .page-paper::after{
  content:"Cargando página...";
  position:absolute;
  inset:0;
  display:grid;
  place-items:center;
  color:#7b6d62;
  font-size:13px;
  background:#f6f1e8
}

/* Hide old PDF modal remnants if browser cached old markup */
#docModal{display:none!important}

@media(max-width:900px){
  .premium-book-card{grid-template-columns:210px 1fr}
  .book-reader-body{grid-template-columns:52px 1fr 52px}
  .book{width:min(950px,86vw);height:min(70vh,720px)}
  .book-nav-btn{width:42px;height:70px;font-size:38px}
  .book-reader-help{display:none}
  .book-reader-footer{grid-template-columns:1fr}
}
@media(max-width:680px){
  .premium-book-card{grid-template-columns:1fr}
  .library-cover-img{height:360px;min-height:0}
  .book-reader-header{padding:10px 12px}
  .book-reader-title .eyebrow{display:none}
  .book-reader-title strong{font-size:16px}
  .book-reader-actions{gap:4px}
  .book-tool-btn{width:34px;height:34px;border-radius:10px;font-size:16px}
  .zoom-label{display:none}
  .book-reader-body{grid-template-columns:40px 1fr 40px;padding:8px 3px}
  .book-stage{min-height:360px}
  .book{
    width:min(82vw,520px);
    height:min(72vh,690px);
  }
  .book-page{width:100%}
  .book-page-left{display:none}
  .book-page-right{right:0}
  .book::after{display:none}
  .page-paper-right,.book-flip-page .page-paper-front{
    border-radius:14px;
  }
  .book-flip-page{width:100%;right:0;transform-origin:left center}
  .book-flip-page.turn-prev{width:100%;left:0;transform-origin:right center}
  .book-nav-btn{width:34px;height:58px;font-size:32px;border-radius:12px}
  .book-reader-footer{padding:9px 12px 12px}
  .book-progress{grid-template-columns:1fr}
  .book-progress span{text-align:center}
}


/* ==================================================
   VIDA CON VOZ V4 - SUPABASE AUTH
   ================================================== */
.auth-status-box{
  margin-top:18px;padding:14px;background:var(--sageL);
  border-radius:14px
}
.auth-status-box p{margin:4px 0 8px;color:#5f6e57;font-size:12px}
.text-link-btn{
  border:0;background:transparent;color:var(--brown);
  font-weight:900;padding:4px 0;text-decoration:underline
}
.auth-message{
  margin:12px 0;padding:11px 12px;border-radius:12px;
  font-size:12px;line-height:1.45
}
.auth-message.error{background:#FCEAEA;color:#A33D3D;border:1px solid #F2C9C9}
.auth-message.success{background:#EAF4E6;color:#4D6D45;border:1px solid #CFE1C8}
.auth-message.info{background:#EEF2F8;color:#4C5E78;border:1px solid #D8E0EC}
.reset-card{width:min(100%,480px)}


/* =========================================================
   V5 CLOUD SYNC + PWA INSTALL
   ========================================================= */
.sync-status{display:flex;align-items:center;gap:8px;padding:9px 10px;margin:0 0 8px;border-radius:12px;font-size:11px;color:#d7cbc4;background:rgba(255,255,255,.06)}
.sync-dot{width:8px;height:8px;border-radius:50%;background:#a99b91;box-shadow:0 0 0 3px rgba(255,255,255,.04)}
.sync-status.synced .sync-dot{background:#8fbd79}.sync-status.syncing .sync-dot{background:#e4ae62;animation:syncPulse 1s infinite}.sync-status.offline .sync-dot{background:#c77d6d}.sync-status.error .sync-dot{background:#e26565}
@keyframes syncPulse{50%{opacity:.35}}
.install-app-btn{width:100%;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.08);color:#fff;border-radius:12px;padding:10px 12px;margin-bottom:10px;font-weight:800;text-align:left}
.install-app-btn:hover{background:rgba(255,255,255,.13)}
.mobile-header-actions{display:flex;align-items:center;gap:4px}.install-mobile{font-size:17px;color:var(--brown)}
.install-card{width:min(100%,480px);text-align:left}.install-logo{width:64px;height:64px;border-radius:20px;display:grid;place-items:center;color:#fff;background:linear-gradient(145deg,var(--brown),var(--terra));font-weight:900;font-size:20px;margin-bottom:18px}
.ios-install-steps{display:grid;gap:10px;margin:18px 0}.ios-install-steps>div{display:grid;grid-template-columns:34px 1fr;gap:10px;align-items:center;background:#faf6f1;border:1px solid var(--border);border-radius:14px;padding:11px}.ios-install-steps>div span{width:30px;height:30px;border-radius:10px;background:var(--brown);color:#fff;display:grid;place-items:center;font-weight:900}.ios-install-steps p{margin:0;font-size:13px}.ios-install-steps small{color:var(--muted);line-height:1.5}
.cloud-note{font-size:11px;color:var(--muted)}
@media(max-width:820px){.sidebar .install-app-btn,.sidebar .sync-status{display:none}.install-mobile{display:grid}}
@media(min-width:821px){.install-mobile{display:none}}
@media(display-mode:standalone){#installAppBtn,#mobileInstallBtn{display:none!important}}
