/* REBT LAB V10.1 · Mejora progresiva: respetuosa con batería, tacto y accesibilidad. */
:root{--ease-polish:cubic-bezier(.22,1,.36,1);--glow-polish:0 15px 42px #0004}
body{background:radial-gradient(ellipse 80% 45% at 80% -10%,#17615a29,transparent 65%),var(--bg)}
.topbar{backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.sound-switch{min-width:39px;min-height:39px;font-size:18px;line-height:1;border-radius:12px}
.sound-switch[aria-pressed="false"]{opacity:.7;color:#b7cbd2}
#app.page-enter{animation:page-rise .36s var(--ease-polish) both}
@keyframes page-rise{from{opacity:.74;transform:translateY(9px)}to{opacity:1;transform:translateY(0)}}
@keyframes soft-shine{0%{box-shadow:0 0 0 0 #9df0d322}100%{box-shadow:0 0 0 9px transparent}}
.btn,.nav button,.small-btn,.answer,.future-tab,.graph-link,.unit-card,.device-chip{transition:background-color .2s ease,border-color .2s ease,color .2s ease,box-shadow .24s ease,transform .24s var(--ease-polish)}
@media(hover:hover) and (pointer:fine){.btn:hover:not(:disabled),.small-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 20px #0004}.answer:hover:not(:disabled),.unit-card:hover{box-shadow:0 8px 22px #0002}.nav button:hover,.future-tab:hover:not(:disabled){transform:translateX(2px)}}
.btn:active:not(:disabled),.small-btn:active:not(:disabled){transform:scale(.98)}
.btn.primary{background-image:linear-gradient(105deg,transparent 12%,#ffffff15 50%,transparent 84%);background-size:210% 100%;background-position:115% 0}
@media(hover:hover){.btn.primary:hover{background-position:-110% 0;transition:background-position .5s ease,transform .2s,box-shadow .2s}}
.answer.correct,.evidence.ok{animation:soft-shine .48s ease-out}.feedback:not(.wrong){border-color:#8cdca5}
.progress>span,.risk-track i{transition:width .6s var(--ease-polish)}
.pref-row{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:17px 0;border-top:1px solid var(--line)}
.pref-row:first-of-type{border-top:0}.pref-row strong,.pref-row small{display:block}.pref-row small{color:var(--muted);font-size:12px;margin-top:3px;max-width:450px}
.pref-row .select{width:auto;min-width:185px;max-width:100%}.polish-settings{margin-top:20px}
.auto-note{display:block;margin-top:9px;color:#b8e8cb}
#app h1:focus,#app h2:focus{outline:none}
@media(max-width:560px){.pref-row{align-items:stretch;flex-direction:column}.pref-row .select,.pref-row .btn{width:100%}.top-controls{gap:6px}.sound-switch{min-width:40px;min-height:40px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
html.motion-off *,html.motion-off *::before,html.motion-off *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}

/* Acceso redundante a todas las secciones desde móvil; la barra inferior sigue disponible. */
.menu-toggle{display:none}
.mobile-backdrop[hidden],.mobile-menu[hidden]{display:none!important}
.mobile-backdrop{position:fixed;inset:0;background:#02141dcc;z-index:19;backdrop-filter:blur(3px)}
.mobile-menu{position:fixed;top:65px;left:12px;right:12px;max-height:calc(100dvh - 92px);overflow-y:auto;z-index:20;border-radius:20px;border:1px solid #4e8b81;background:#102630;box-shadow:0 20px 80px #000b;padding:18px;overscroll-behavior:contain}
.mobile-menu-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;font-size:17px}
.mobile-menu-links{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.mobile-menu-links button{display:flex;gap:9px;align-items:center;text-align:left;padding:12px;border:1px solid #305360;border-radius:12px;background:#173440;color:#e1f7ed;font-weight:700;min-height:52px;cursor:pointer;font-size:12px}
.mobile-menu-links button:hover,.mobile-menu-links button.active{background:#285347;border-color:#a6edb8}
.mobile-menu-links .ni{font-size:20px;color:#b5f4a8;min-width:25px}
@media(max-width:930px){.menu-toggle{display:inline-flex;align-items:center;justify-content:center}.mobile-menu{top:72px}}
@media(max-width:420px){.mobile-menu-links{grid-template-columns:1fr}.mobile-menu{top:58px;max-height:calc(100dvh - 85px)}.mobile-menu-links button{min-height:48px}}
@media(prefers-reduced-motion:reduce){.mobile-backdrop{backdrop-filter:none}}
