:root{font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","Segoe UI",Roboto,Arial,sans-serif;color:#172448;background:#eef2fa;font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased;font-synthesis:none;--blue:#4266e9;--navy:#172448;--muted:#6f7e9b;--line:#e7ebf4;--white:#fff;--bg:#f6f8fd;--soft:#eef3ff;--green:#12a67e;--pink:#f25c81}*{box-sizing:border-box}body{padding:0;margin:0}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.47}a{color:var(--blue)}.app-shell{width:min(100%,520px);margin:auto;min-height:100dvh;background:var(--bg);box-shadow:0 12px 50px #28386910}#app{min-height:100dvh}.boot{min-height:100dvh;display:flex;justify-content:center;align-items:center;flex-direction:column;text-align:center}.boot h1{font-size:27px;margin:9px}.boot p{color:var(--muted)}.boot-icon{font-size:60px}.page{padding:calc(env(safe-area-inset-top) + 19px) 20px calc(env(safe-area-inset-bottom) + 104px);max-width:520px;min-height:100dvh}.top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:22px}.brand{display:flex;align-items:center;gap:10px;min-width:0}.logo{width:43px;height:43px;display:grid;place-items:center;border-radius:16px;background:linear-gradient(155deg,#3d65ee,#667deb);color:white;box-shadow:0 7px 20px #486aef3a;font-size:22px}.brand strong{display:block;font-size:16px;font-weight:800;letter-spacing:-.5px}.brand small{display:block;color:var(--muted);font-size:11px}.top-actions{display:flex;gap:7px}.round-btn{height:40px;width:40px;border-radius:14px;display:grid;place-items:center;background:white;border:1px solid var(--line);font-size:20px;color:var(--navy)}.eyebrow{font-size:10px;font-weight:800;letter-spacing:1.5px;color:var(--blue);text-transform:uppercase}.heading{font-size:27px;line-height:1.14;letter-spacing:-.95px;margin:4px 0 8px;font-weight:850}.subhead{color:var(--muted);margin:0 0 18px;font-size:13px}.section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:24px 0 12px}.section-head h2{font-size:17px;letter-spacing:-.45px;margin:0}.section-head small{font-size:11px;color:var(--muted)}.link-btn{border:0;background:none;color:var(--blue);font-weight:750;font-size:12px;padding:7px 0}.hero{background:linear-gradient(125deg,#233eac 2%,#496be7 57%,#6e8bfa 100%);border-radius:25px;color:white;padding:23px;position:relative;overflow:hidden;box-shadow:0 12px 30px #4463cf31}.hero::after{content:'🚗';opacity:.1;font-size:140px;position:absolute;right:-30px;top:-25px;transform:rotate(-12deg)}.hero>div{position:relative;z-index:1}.hero .small{font-size:12px;opacity:.82}.hero h2{font-size:25px;letter-spacing:-.8px;margin:5px 0 11px;line-height:1.18}.hero p{font-size:12px;line-height:1.55;max-width:255px;opacity:.92;margin:0 0 16px}.whitebtn{background:white;color:#304fb9;border:0;font-weight:800;border-radius:13px;padding:11px 16px;font-size:12px}.stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-top:13px}.stat{background:white;border:1px solid var(--line);border-radius:17px;padding:14px 10px;min-width:0}.stat strong{font-weight:850;display:block;font-size:23px;letter-spacing:-1px}.stat small{font-size:10px;color:var(--muted);display:block}.stat .symbol{font-size:14px;margin-bottom:4px}.card{background:white;border:1px solid var(--line);border-radius:19px;padding:17px;box-shadow:0 3px 12px #17244803}.card+.card{margin-top:10px}.tile-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.tile{border:1px solid var(--line);background:white;border-radius:19px;text-align:left;padding:17px;min-height:132px;display:flex;flex-direction:column;align-items:flex-start;transition:transform .15s}.tile:active{transform:scale(.98)}.tile .ico{font-size:26px;margin-bottom:11px}.tile strong{font-size:13px}.tile span:last-child{color:var(--muted);font-size:11px;margin-top:4px}.bar{height:8px;background:#edf1fa;border-radius:99px;overflow:hidden;margin-top:9px}.bar>b{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#5477e9,#67b2ff)}.muted{color:var(--muted)}.fine{font-size:11px}.pill{font-size:10px;font-weight:750;padding:5px 9px;border-radius:99px;background:var(--soft);color:var(--blue);white-space:nowrap}.pill.green{color:#078a66;background:#e6f9f3}.pill.amber{color:#a16c18;background:#fff5dc}.pill.red{color:#c44861;background:#fff0f4}.btn{display:flex;align-items:center;justify-content:center;gap:7px;text-align:center;min-height:47px;padding:12px 15px;background:var(--blue);color:white;font-weight:750;border:0;border-radius:14px;width:100%;box-shadow:0 6px 16px #4c6be52a}.btn.ghost{background:white;color:var(--navy);border:1px solid var(--line);box-shadow:none}.btn.soft{background:#eaf0ff;color:var(--blue);box-shadow:none}.btn.line{background:transparent;color:var(--blue);border:1px solid #cbd6ff;box-shadow:none}.btn.small{min-height:37px;font-size:12px;padding:9px 12px}.btn.danger{background:#fff1f3;color:#b62d4c;box-shadow:none}.button-stack{display:grid;gap:9px}.form-card{background:white;border:1px solid var(--line);border-radius:21px;padding:20px}.form-group{margin:17px 0}.form-group label,.group-label{display:block;color:#3c4969;font-weight:750;font-size:12px;margin-bottom:9px}.form-control{border:1px solid #dfe5f0;background:#fbfcff;padding:12px 13px;border-radius:13px;color:var(--navy);width:100%;min-width:0;outline:none}.form-control:focus{border-color:var(--blue);box-shadow:0 0 0 3px #4266e913}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:10px}.chipset{display:flex;gap:7px;flex-wrap:wrap}.chip{border:1px solid #e0e6f1;background:white;color:#6f7891;padding:9px 12px;border-radius:12px;font-size:12px;font-weight:730}.chip.selected{background:#eaf0ff;border-color:#7791f6;color:#3456d3}.radio-row{display:flex;gap:10px;align-items:center;padding:12px 3px;border-bottom:1px solid var(--line);font-size:13px;cursor:pointer}.radio-row input{accent-color:var(--blue);width:17px;height:17px}.callout{border-radius:14px;background:#f0f4ff;color:#435a98;padding:12px 14px;font-size:12px;line-height:1.55}.callout.warn{background:#fff7e7;color:#886526}.callout.good{background:#eaf9f2;color:#137f5d}.callout.bad{background:#fff0f2;color:#a63c52}.qtop{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:16px}.qcount{font-size:12px;color:var(--muted);font-weight:700}.progress-track{background:#e8ecf7;height:7px;border-radius:10px;overflow:hidden;margin:12px 0 24px}.progress-track div{background:var(--blue);height:100%;border-radius:10px;transition:width .3s}.question{font-size:20px;line-height:1.34;letter-spacing:-.46px;margin:11px 0 20px;font-weight:820;white-space:pre-wrap}.question-img{display:block;max-height:240px;max-width:100%;width:auto;margin:8px auto 20px;border-radius:14px;object-fit:contain;background:#fff}.option{display:flex;align-items:flex-start;gap:11px;width:100%;text-align:left;padding:14px 13px;margin:9px 0;border:1.4px solid #e0e6f1;border-radius:15px;background:white;color:#364562;font-size:13px;line-height:1.45}.option .letter{flex:0 0 27px;width:27px;height:27px;background:#f1f4fa;border-radius:9px;color:#7c88a3;display:grid;place-items:center;font-weight:900}.option.selected{border-color:#617dec;background:#edf2ff;color:#233b9b}.option.selected .letter{background:#5672e7;color:#fff}.option.correct{border-color:#45b89b;background:#edf9f4;color:#136d52}.option.wrong{border-color:#f0859b;background:#fff0f2;color:#a32948}.space16{height:16px}.space8{height:8px}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.panel-head strong{font-size:13px}.small-note{font-size:11px;color:var(--muted);line-height:1.5}.review-card{background:white;border:1px solid var(--line);padding:15px;border-radius:17px;margin-top:10px}.review-card h3{font-size:13px;line-height:1.5;white-space:pre-wrap;margin:10px 0}.review-meta{display:flex;justify-content:space-between;align-items:center;gap:7px}.review-answers{border-top:1px solid var(--line);padding-top:12px;margin-top:11px;color:#34446b;font-size:12px;line-height:1.55}.review-answers p{margin:8px 0}.search-wrap{position:relative}.search-wrap input{padding-left:36px}.search-icon{position:absolute;left:12px;top:12px;opacity:.55}.filter-row{display:flex;gap:7px;overflow-x:auto;scrollbar-width:none;padding:10px 0 8px}.filter-row::-webkit-scrollbar{display:none}.filter-row .chip{white-space:nowrap}.bottom-nav{position:fixed;z-index:50;bottom:0;width:min(100%,520px);height:calc(76px + env(safe-area-inset-bottom));padding:10px 10px calc(12px + env(safe-area-inset-bottom));display:flex;justify-content:space-around;gap:3px;align-items:flex-start;border-top:1px solid #e7eaf4;background:rgba(255,255,255,.97);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}.navitem{display:flex;flex-direction:column;align-items:center;gap:4px;border:0;background:none;color:#96a0b7;min-width:0;flex:1;padding:5px 0;font-size:10px;font-weight:760}.navitem .navicon{font-size:20px;line-height:25px}.navitem.active{color:var(--blue)}#toast{position:fixed;z-index:100;bottom:103px;left:50%;transform:translateX(-50%);max-width:calc(100vw - 38px);background:#18274e;color:white;padding:11px 16px;border-radius:14px;box-shadow:0 10px 35px #14265644;opacity:0;pointer-events:none;transition:opacity .2s;font-size:12px}#toast.show{opacity:1}.center{text-align:center}.confetti{font-size:53px}.result-number{font-size:59px;font-weight:850;line-height:1;letter-spacing:-2px}.auth-avatar{width:72px;height:72px;border-radius:23px;background:#eaf0ff;color:var(--blue);display:grid;place-items:center;font-size:34px;margin:10px auto}.battle-art{font-size:70px;display:block;text-align:center;margin:15px auto}.tagline{color:var(--muted);font-size:12px;line-height:1.55}.mini-progress{display:flex;gap:8px;align-items:center}.mini-progress .bar{flex:1;margin:0}.empty{display:grid;justify-items:center;text-align:center;padding:35px 15px;gap:10px}.empty .icon{font-size:45px}.empty h3{margin:0;font-size:18px}.empty p{max-width:300px;color:var(--muted);font-size:12px;margin:0 0 8px}.mini-select{border:1px solid var(--line);border-radius:9px;padding:6px 7px;background:white;color:var(--navy);font-size:11px;max-width:150px}details{font-size:12px;color:#52617e}summary{cursor:pointer}body.dark{--bg:#131b30;--white:#1c2640;--navy:#e9efff;--muted:#9ba9c2;--line:#303d58;--soft:#26385e;--blue:#83a0ff;background:#101827;color:var(--navy)}body.dark .card,body.dark .stat,body.dark .form-card,body.dark .tile,body.dark .option,body.dark .review-card,body.dark .round-btn,body.dark .chip,body.dark .bottom-nav{background:var(--white);color:var(--navy)}body.dark .form-control,body.dark .mini-select{background:#26314b;color:var(--navy);border-color:var(--line)}body.dark .option.selected{background:#263b6f}body.dark .callout{background:#263b6f;color:#cbd7ff}body.dark .navitem.active{color:var(--blue)}@media(min-width:521px){.app-shell{border-left:1px solid #dee6f5;border-right:1px solid #dee6f5}}@media(max-width:350px){.page{padding-left:15px;padding-right:15px}.hero h2{font-size:22px}.stat strong{font-size:19px}.option{padding:11px 9px}}

/* Mi Ruta B Beta 2: preferencias, acceso y metas individuales */
.auth-form{display:flex;flex-direction:column;gap:2px;margin-top:14px}
.auth-divider{text-align:center;color:var(--muted);font-size:12px;margin:14px 0}
.auth-divider::before,.auth-divider::after{content:" — ";color:var(--muted)}
.soft-divider{border:0;border-top:1px solid var(--line);margin:20px 0}
.goal-link{text-align:left;font-size:12px;line-height:1.35;padding:13px 4px;display:block}
.form-group input.form-control,.form-group select.form-control{width:100%}
#authForm .btn,#profileForm .btn{margin-top:16px}


/* MI RUTA B · Liquid Glass UI / legible iOS-inspired treatment */
:root{--glass-bg:rgba(255,255,255,.73);--glass-border:rgba(255,255,255,.88);--glass-shadow:0 10px 34px rgba(37,64,129,.09),inset 0 1px 0 rgba(255,255,255,.7)}
html{background:#dfe9fb}
body{background:radial-gradient(ellipse at 18% 6%,#d5e5ff 0%,transparent 43%),radial-gradient(ellipse at 82% 22%,#dde1fc 0%,transparent 44%),#e8effa}
.app-shell{background:linear-gradient(160deg,rgba(250,252,255,.94),rgba(234,242,255,.80));position:relative;isolation:isolate}
.app-shell:before{content:"";position:fixed;z-index:-1;pointer-events:none;width:230px;height:230px;border-radius:50%;background:#aec9ff;filter:blur(72px);opacity:.24;top:110px;left:calc(50% - 260px)}
.card,.stat,.form-card,.tile,.review-card,.round-btn,.option{background:var(--glass-bg);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);-webkit-backdrop-filter:blur(21px) saturate(135%);backdrop-filter:blur(21px) saturate(135%)}
.tile,.btn,.round-btn,.chip,.whitebtn,.navitem{transition:transform .22s cubic-bezier(.2,.7,.2,1),box-shadow .22s,background .22s,border-color .22s}
@media(hover:hover){.tile:hover{transform:translateY(-2px);box-shadow:0 17px 32px #2f57a71c}.round-btn:hover{transform:translateY(-2px)}}
.hero{background:linear-gradient(120deg,#203ea8 0%,#4c73e7 56%,#8ebeff 130%);box-shadow:0 22px 42px #355ed136,inset 0 1px 0 #d8e7ff65;border:1px solid rgba(255,255,255,.34)}
.hero:before{content:"";position:absolute;inset:-70% 25% auto -15%;height:170%;transform:rotate(36deg);background:linear-gradient(90deg,transparent,rgba(255,255,255,.13),transparent);pointer-events:none}
.bottom-nav{width:min(calc(100% - 24px),492px);left:50%;transform:translateX(-50%);bottom:calc(env(safe-area-inset-bottom) + 10px);height:67px;padding:8px 11px;border-radius:25px;border:1px solid rgba(255,255,255,.88);background:rgba(250,252,255,.77);box-shadow:0 12px 40px rgba(32,54,106,.20),inset 0 1px 0 rgba(255,255,255,.9);-webkit-backdrop-filter:blur(26px) saturate(170%);backdrop-filter:blur(26px) saturate(170%)}
.navitem{padding:5px 0;border-radius:18px}.navitem.active{background:rgba(81,113,239,.11)}
.page{padding-bottom:calc(env(safe-area-inset-bottom) + 110px)}
.btn{background:linear-gradient(140deg,#395be2,#6487f5);border:1px solid rgba(255,255,255,.18);box-shadow:0 8px 19px #3a61d439,inset 0 1px 0 #ffffff70}
.btn.ghost{background:var(--glass-bg)}
.form-control{background:rgba(248,251,255,.83);border:1px solid rgba(187,203,229,.78)}
.card,.form-card,.tile,.review-card,.stat{position:relative;overflow:hidden}
.card:before,.form-card:before,.tile:before,.review-card:before,.stat:before{content:"";height:1px;position:absolute;top:0;left:8%;right:8%;background:linear-gradient(90deg,transparent,#fff,transparent);opacity:.82;pointer-events:none}
.heading{font-weight:800;letter-spacing:-.9px}
.chip.selected{background:rgba(74,111,236,.14);border-color:#829df1;color:#2e50c5}
body.dark{--glass-bg:rgba(26,39,67,.79);--glass-border:rgba(131,153,203,.22);--glass-shadow:0 10px 36px rgba(3,7,25,.25),inset 0 1px 0 rgba(255,255,255,.08);background:#0e1529}
body.dark .app-shell{background:linear-gradient(160deg,rgba(16,26,48,.98),rgba(18,31,56,.93))}
body.dark .app-shell:before{background:#5376d8;opacity:.22}
body.dark .card,body.dark .stat,body.dark .form-card,body.dark .tile,body.dark .option,body.dark .review-card,body.dark .round-btn,body.dark .chip{background:var(--glass-bg);border-color:var(--glass-border);color:var(--navy)}
body.dark .bottom-nav{background:rgba(24,38,65,.82);border-color:rgba(145,165,216,.24);box-shadow:0 14px 40px #0005}
body.dark .navitem.active{background:rgba(130,160,255,.16)}
body.dark .form-group label,body.dark .group-label,body.dark .review-answers{color:#d3def5}
body.dark .btn.ghost{background:rgba(42,58,89,.75)}
body.dark .chip.selected{color:#d9e3ff;background:rgba(93,129,232,.35);border-color:#85a3fd}
body.dark .option .letter{color:#cbd7ef;background:#384b69}
body.dark .option.correct{background:#163b35;color:#e3fff4;border-color:#48b895}
body.dark .option.wrong{background:#4b2638;color:#ffe8ee;border-color:#ed7898}
body.dark .option.selected{background:#263b6f;color:#d9e5ff}
body.dark .callout.warn{color:#ffe7ae;background:#5c4928}
body.dark .callout.good{color:#dcfff1;background:#164439}
body.dark .callout.bad{color:#ffe0e8;background:#542738}
body.dark .chip,body.dark .mini-select{background:rgba(41,55,86,.9)}
body.dark .form-control{background:rgba(38,53,83,.93)}
body.dark .hero{box-shadow:0 18px 45px #080f2980}
@media(prefers-reduced-transparency:reduce){.card,.stat,.form-card,.tile,.review-card,.round-btn,.option,.bottom-nav{-webkit-backdrop-filter:none;backdrop-filter:none;background:var(--white)}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
