:root{--bg:#071823;--panel:#092331;--panel2:#0c2b3b;--border:#214555;--cyan:#4dc4d3;--cyan2:#8ce5e4;--light:#e9f4f7;--muted:#94adb9;--warn:#f1b86a;--green:#7cdec0;--blue:#075d90;--radius:16px;color-scheme:dark}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--light);font-family:Inter,system-ui,-apple-system,'Segoe UI',sans-serif;font-size:14px;line-height:1.5}body:before{content:"";position:fixed;inset:0;pointer-events:none;background:radial-gradient(ellipse at 90% 8%,#1b4d6044,transparent 45%),radial-gradient(ellipse at 2% 96%,#08476b45,transparent 42%);z-index:-1}button,select,input{font:inherit}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--cyan);outline-offset:3px}button:disabled{opacity:.5;cursor:not-allowed}.app{min-height:100dvh;display:flex;flex-direction:column}.topbar{min-height:74px;padding:13px 26px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #ffffff14;gap:18px;background:#071d29dd}.brand{color:var(--light);display:flex;align-items:center;text-decoration:none;font-size:16px;letter-spacing:.1em;font-weight:450;gap:9px;white-space:nowrap}.brand strong{font-weight:850;letter-spacing:.06em}.brand small{display:block;color:var(--muted);font-size:8px;letter-spacing:.17em;margin-top:1px}.brandmark{display:grid;place-items:center;background:#06466b;border:1px solid #4acde0;border-radius:8px;color:var(--cyan);width:37px;height:37px;font-size:22px}.brand-ar{color:var(--cyan);font-weight:900;letter-spacing:0;font-size:12px;align-self:flex-start}.topcenter{display:flex;gap:16px;align-items:center}.mini-badge{border:1px solid var(--border);border-radius:50px;padding:5px 12px;color:#bfd9df;font-size:11px}.live-dot,.dot-cyan{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--cyan);margin-right:4px}.desktop-help{color:var(--muted);font-size:12px}.topright{display:flex;align-items:center;gap:14px}.progress-top{width:150px;display:grid;gap:5px;font-size:11px;color:#c9dce2}.progress-track{height:5px;background:#1d3a49;border-radius:99px;overflow:hidden}.progress-track span{height:100%;width:0;display:block;background:linear-gradient(90deg,#1c9fd1,var(--cyan));transition:width .2s}.icon-btn,.viewer-control{background:#153647;color:#d8f9fd;border:1px solid #2a5f72;border-radius:9px;min-width:35px;min-height:35px}.layout{display:grid;grid-template-columns:minmax(230px,278px) minmax(350px,1fr) minmax(295px,340px);gap:0;flex:1;min-height:0;height:calc(100dvh - 105px)}.leftpanel,.rightpanel{background:#0a202df5;overflow-y:auto;scrollbar-color:#386375 transparent;scrollbar-width:thin}.leftpanel{border-right:1px solid #ffffff14;padding:26px 19px 16px}.eyebrow{font-size:10px;font-weight:800;letter-spacing:.2em;color:var(--cyan)}h1{font-size:39px;line-height:1.07;letter-spacing:-.035em;margin:9px 0 11px;font-weight:800}h1 em{color:var(--cyan);font-style:normal}.lead{color:#a8c1cc;font-size:12px;line-height:1.68;margin:0 0 18px}.mission-stats{display:grid;grid-template-columns:repeat(3,1fr);background:linear-gradient(130deg,#0c3144,#092634);border:1px solid #1b4b5c;border-radius:13px;padding:12px 8px;gap:3px}.mission-stats>div{text-align:center}.mission-stats strong{display:block;color:#d5f3f6;font-size:22px}.mission-stats small{font-size:9px;color:#9cb4c0}.sectiontitle{display:flex;justify-content:space-between;font-size:11px;text-transform:uppercase;letter-spacing:.1em;font-weight:750;margin:21px 0 10px;color:#d4e8ef}.sectiontitle.spaced{margin-top:24px}.area-list{display:grid;gap:7px}.area-btn{width:100%;background:#0b2b3a;border:1px solid #215064;color:var(--light);border-radius:10px;display:flex;align-items:center;padding:11px;gap:10px;text-align:left}.area-btn:hover,.area-btn.active{background:#0b4160;border-color:#389abb}.area-icon{width:32px;height:32px;display:grid;place-items:center;background:#14465a;border-radius:8px;font-size:16px}.area-name{display:block;font-size:12px;font-weight:700}.area-sub{display:block;font-size:10px;color:#94b0bd}.area-number{font-size:10px;color:var(--cyan);margin-left:auto}.counter{background:#174050;padding:3px 7px;color:var(--cyan);border-radius:20px;letter-spacing:0}.check-list{display:grid;gap:5px}.check-item{width:100%;border:1px solid #1a4051;background:#0c2736;color:#d0e4ea;display:flex;align-items:center;text-align:left;border-radius:9px;padding:7px 10px;gap:9px;font-size:11px}.check-item:hover{border-color:#488c9e}.check-item.checked{border-color:#266e6f;background:#0c363b}.check-square{flex:none;width:18px;height:18px;border-radius:5px;border:1px solid #39606e;display:grid;place-items:center;color:var(--green);font-size:12px}.check-item.checked .check-square{border-color:var(--green);background:#15493f}.check-id{color:#d6ecf0;font-weight:700}.check-area{margin-left:auto;color:#829ca8;font-size:9px}.left-footer{margin-top:18px}.btn{border-radius:11px;padding:11px 14px;border:1px solid transparent;font-weight:750;font-size:12px;transition:background .16s,border-color .16s}.btn:hover{filter:brightness(1.12)}.btn-primary{background:linear-gradient(100deg,#137caa,#43c7cc);color:#001d2d}.btn-outline{background:transparent;border-color:#326276;color:#d6ebf0}.btn-ghost{background:#0a2b3b;border-color:#3c839d;color:#dff9fc}.btn-wide{width:100%;display:flex;justify-content:space-between}.smallnote{font-size:10px;color:#738d9b;margin:9px 0}.viewer-area{position:relative;min-height:370px;overflow:hidden;background:radial-gradient(ellipse at 50% 50%,#16394d 0%,#0a2536 75%)}#scene{width:100%;height:100%;display:block;touch-action:none;outline:none;cursor:grab}#scene:active{cursor:grabbing}.viewer-topline{z-index:3;position:absolute;top:16px;left:20px;right:20px;pointer-events:none;display:flex;align-items:center;justify-content:space-between}.crumb{color:#c9e6ee;font-size:12px;font-weight:750}.viewer-chips{display:flex;gap:7px}.viewer-chips span{background:#082839b8;border:1px solid #28576b;padding:5px 8px;border-radius:30px;color:#98c7d6;font-size:10px}.viewer-instruction{z-index:3;position:absolute;top:52px;left:20px;right:20px;color:#9ab7c3;font-size:10px;pointer-events:none}.viewer-bottom{position:absolute;bottom:14px;left:17px;right:17px;z-index:3;display:flex;justify-content:space-between;align-items:end;pointer-events:none}.camera-controls{display:flex;gap:6px;pointer-events:auto}.viewer-control{font-size:20px;line-height:1;width:38px;height:38px;backdrop-filter:blur(10px)}.viewer-hint{color:#9db4bf;background:#082736a9;border-radius:8px;padding:7px 10px;font-size:10px}.loading-panel{position:absolute;inset:0;z-index:5;background:#082634ef;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:12px;color:#d6ecf1;text-align:center;padding:24px}.loading-panel[hidden]{display:none}.loading-panel span{font-size:12px;color:#95afba}.spinner{width:36px;height:36px;border:3px solid #2d6571;border-top-color:var(--cyan);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.compare-button{position:absolute;top:70px;left:20px;z-index:4}.rightpanel{border-left:1px solid #ffffff14;padding:23px 20px}.inspect-placeholder{text-align:center;padding:48px 9px}.scan-icon{margin:auto;width:72px;height:72px;border-radius:24px;border:1px solid #347c90;background:#0b384c;display:grid;place-items:center;color:var(--cyan);font-size:45px}.inspect-placeholder h2{font-size:18px;margin:20px 0 8px}.inspect-placeholder p{font-size:12px;color:#a9bfc9}.help-box{margin:25px 0;text-align:left;border-left:3px solid var(--cyan);background:#0d2c3a;padding:14px 15px;border-radius:0 10px 10px 0}.help-box strong{font-size:12px}.help-box p{margin:5px 0 0}.inspect-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.id-tag{display:inline-block;border:1px solid #2f8fa6;border-radius:7px;padding:3px 7px;background:#154053;color:#9be9ee;letter-spacing:.07em;font-size:11px;font-weight:800}.close-inspect{background:transparent;border:0;color:#a0b8c3;font-size:22px}.inspect-h2{font-size:19px;line-height:1.23;margin:10px 0 9px}.muted{color:#9ab1bc}.inspect-p{font-size:12px;color:#9db8c2;line-height:1.65}.evidence-box{background:#0d2f41;border:1px solid #28576a;border-radius:12px;padding:13px;margin:15px 0}.evidence-heading{font-size:11px;text-transform:uppercase;letter-spacing:.09em;font-weight:800;color:var(--cyan);margin-bottom:9px}.evidence-row{border-top:1px solid #ffffff16;padding:10px 0}.evidence-row:first-of-type{border-top:none}.evidence-row span{display:block;color:#8faebc;font-size:10px}.evidence-row strong{font-size:12px;line-height:1.5;font-weight:650}.choice-title{display:block;font-weight:800;font-size:12px;margin:18px 0 8px}.choice{display:flex;gap:10px;align-items:flex-start;margin:7px 0;border:1px solid #285366;background:#0c2c3b;border-radius:10px;padding:11px;font-size:12px;line-height:1.5;cursor:pointer}.choice input{accent-color:#3fc5d6;margin-top:3px}.choice:has(input:checked){border-color:#54b9cb;background:#104156}.choice:has(input:focus-visible){outline:2px solid #76ecf6}.read-only{margin-top:18px;background:#173b45;border:1px solid #328084;border-radius:10px;padding:13px;font-size:12px}.inspect-action{margin-top:17px}.inspect-confirm{color:var(--green);font-size:11px;margin:10px 0}.foot{height:31px;display:flex;align-items:center;justify-content:space-between;gap:20px;border-top:1px solid #ffffff14;padding:0 20px;font-size:10px;color:#7096a8}.modal-overlay{position:fixed;inset:0;background:#020e17d9;z-index:20;display:grid;place-items:center;padding:22px;backdrop-filter:blur(6px)}.modal-overlay[hidden]{display:none}.modal{background:#092533;border:1px solid #336075;box-shadow:0 18px 90px #0009;border-radius:19px;max-width:760px;max-height:min(90dvh,850px);width:100%;overflow-y:auto;position:relative;padding:28px}.modal-close{position:absolute;right:14px;top:12px;background:#153947;color:#cce5eb;border:1px solid #28566b;border-radius:10px;width:34px;height:34px}.modal h2{font-size:28px;line-height:1.17;margin:9px 42px 12px 0}.modal p{font-size:13px;color:#bad0d8}.result-score{font-size:55px;font-weight:850;color:var(--cyan);line-height:1.1}.result-score small{font-size:18px;color:#a3cad4}.result-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:20px 0}.result-grid>div{background:#103848;border:1px solid #235568;padding:15px;border-radius:12px}.result-grid strong{font-size:25px;display:block}.result-grid span{color:#9bb7c0;font-size:11px}.result-row{border-top:1px solid #315260;padding:13px 0}.result-row strong{display:block;font-size:13px}.result-row small{color:#90b6c4;font-size:11px}.result-pill{font-size:10px;padding:2px 6px;border-radius:5px;margin-right:7px;background:#225265;color:#d0f6f7}.result-pill.ok{background:#195343;color:#b1f5cd}.result-pill.bad{background:#573d37;color:#ffe0b8}.modal-actions{display:flex;gap:10px;margin-top:20px;flex-wrap:wrap}.modal-actions .btn{flex:1}.share-msg{font-size:11px;color:#86bec6;margin-top:8px}.noscript{padding:30px}.result-after-badge{background:#125344;color:#b9ffdf;padding:7px 10px;border-radius:9px;display:inline-block}.read-only .row-label{color:#8cb4c2}.kbd{display:inline-grid;place-items:center;border:1px solid #478293;border-radius:6px;padding:2px 7px;color:var(--cyan2)}@media(min-width:1460px){.layout{grid-template-columns:285px minmax(550px,1fr) 360px}.leftpanel{padding-left:25px;padding-right:25px}.rightpanel{padding-left:25px;padding-right:25px}}@media(max-width:1110px){.layout{grid-template-columns:238px minmax(290px,1fr)}.rightpanel{position:absolute;z-index:7;top:75px;right:0;bottom:31px;width:min(360px,94vw);box-shadow:-16px 0 42px #020b16bb;display:none}.rightpanel.open{display:block}.viewer-hint{display:none}.topcenter .desktop-help{display:none}}@media(max-width:750px){.topbar{min-height:60px;padding:9px 12px}.brand{font-size:12px}.brand small{font-size:7px}.brandmark{width:31px;height:31px}.topcenter{display:none}.topright{gap:8px}.progress-top{width:100px}.layout{display:flex;flex-direction:column;height:auto;min-height:calc(100dvh - 91px)}.leftpanel{order:2;padding:17px;border:0;overflow:visible}.leftpanel h1{font-size:26px;margin:6px 0}.lead{margin-bottom:10px}.mission-stats{padding:8px}.mission-stats strong{font-size:19px}.area-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}.area-btn{padding:8px 5px;gap:5px;display:flex;flex-direction:column;text-align:center}.area-icon{height:25px;width:25px;font-size:12px}.area-sub,.area-number{display:none}.area-name{font-size:10px}.check-list{display:grid;grid-template-columns:repeat(2,1fr)}.check-area{display:none}.viewer-area{order:1;height:49dvh;min-height:330px;flex:none}.viewer-topline{top:10px;left:11px;right:11px}.viewer-instruction{top:41px;left:11px;font-size:9px}.viewer-chips span:nth-child(2){display:none}.viewer-bottom{bottom:9px;left:11px}.rightpanel{position:fixed;z-index:15;top:auto;bottom:0;width:100%;height:min(80dvh,740px);border:1px solid #37758b;border-radius:20px 20px 0 0;box-shadow:0 -20px 60px #0009;padding:20px;display:none}.rightpanel.open{display:block}.foot{height:auto;min-height:31px;padding:7px 12px;display:block;text-align:center}.foot span+span{display:block}.modal{padding:20px}.modal h2{font-size:23px}.result-grid{gap:6px}.result-grid>div{padding:10px}.result-grid strong{font-size:20px}.modal-actions{flex-direction:column}}

/* Etapa 4 — capa de realidad aumentada, separada de la evaluación WebGL2 */
.ar-entry{position:absolute;z-index:4;bottom:68px;right:18px;box-shadow:0 8px 28px #061720cf;font-size:12px}
.ar-overlay{position:fixed;inset:0;z-index:40;padding:24px;background:#020d18e8;display:grid;place-items:center;backdrop-filter:blur(8px)}
.ar-overlay[hidden]{display:none}
body.ar-open{overflow:hidden}
.ar-dialog{width:min(1060px,100%);max-height:94dvh;overflow:auto;background:#092331;border:1px solid #2f6476;border-radius:18px;box-shadow:0 20px 75px #000a}
.ar-head{padding:23px 26px 17px;display:flex;align-items:flex-start;justify-content:space-between;gap:16px;border-bottom:1px solid #224657}
.ar-head h2{font-size:24px;margin:4px 0 2px}
.ar-head p{font-size:12px;margin:0;color:#9ebac7}
.ar-close{width:40px;height:40px;flex:none;border:1px solid #326476;border-radius:11px;background:#11374a;color:#def5fa;font-size:21px}
.ar-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(285px,1fr);gap:0}
.ar-display{min-width:0;padding:17px;background:radial-gradient(ellipse at center,#1a4557 0%,#071c2b 78%);display:flex;flex-direction:column;gap:10px}
.ar-viewer-host{position:relative;min-height:420px;border-radius:13px;overflow:hidden;background:#102a3a;border:1px solid #346276}
.ar-viewer-host img{display:block;width:100%;height:420px;object-fit:contain}
.ar-model{width:100%;height:420px;background:transparent;display:block;--poster-color:transparent}
.ar-activate{display:block;position:absolute;left:50%;bottom:20px;transform:translateX(-50%);border:none;border-radius:100px;padding:13px 18px;white-space:nowrap;background:#4cc9d5;color:#052331;font-size:13px;font-weight:800;box-shadow:0 6px 25px #0006}
.ar-source{font-size:11px;color:#9bbac5;text-align:center}
.ar-sidebar{padding:22px;overflow-y:auto}
.ar-section-title{font-size:11px;font-weight:850;letter-spacing:.08em;text-transform:uppercase;color:#c6ebef;margin:5px 0 10px}
.ar-section-title:not(:first-child){margin-top:24px}
.ar-segments{display:flex;gap:7px}
.ar-tab{flex:1;padding:10px 8px;border:1px solid #326073;background:#0d3447;border-radius:10px;font-size:11px;line-height:1.3;color:#d0e9ee;font-weight:750}
.ar-tab.active{background:#115c78;border-color:#54ccdf;color:white}
.ar-tab:disabled{opacity:.38}
.ar-note,.ar-steps{color:#a5c1cb;font-size:11px;line-height:1.55;margin:9px 0}
.ar-status{border:1px solid #286278;border-radius:10px;background:#0d3648;padding:12px;font-size:11px;color:#b5e2e9;line-height:1.55}
.ar-status[data-level=error]{border-color:#ae674e;color:#ffd3be}
.ar-status[data-level=warning]{border-color:#916f46;color:#f0cb9e}
.ar-status[data-level=success]{border-color:#277966;color:#aff6d6}
.ar-safety{font-size:10px;line-height:1.5;color:#90adb9;border-left:3px solid #b88946;padding:6px 8px;margin:12px 0}
.ar-back{margin-top:12px;text-align:center;justify-content:center}
@media(max-width:750px){.ar-entry{bottom:59px;right:11px;left:11px;font-size:12px;padding:11px}.ar-overlay{padding:0;align-items:stretch}.ar-dialog{width:100%;max-height:100dvh;height:100dvh;border:0;border-radius:0}.ar-head{padding:12px 14px}.ar-head h2{font-size:18px}.ar-layout{display:flex;flex-direction:column}.ar-display{padding:8px}.ar-viewer-host{min-height:40dvh}.ar-viewer-host img,.ar-model{height:40dvh;min-height:280px}.ar-sidebar{padding:12px 16px 26px}.ar-section-title:not(:first-child){margin-top:14px}.ar-close{width:36px;height:36px}.ar-head p{font-size:11px}}
.ar-viewer-host img[hidden]{display:none}

/* Etapas 5 y 6: bounded canvas, touch targets and safe-area support. */
.app{height:100dvh;min-height:0}
.layout{height:auto;grid-template-rows:minmax(0,1fr)}
.viewer-area{min-width:0}
#scene,#sceneFallback{position:absolute;inset:0;width:100%;height:100%}
#sceneFallback{object-fit:contain}
[hidden],#scene[hidden],#sceneFallback[hidden]{display:none!important}
body.dialog-open{overflow:hidden}
select:focus-visible,#scene:focus-visible{outline:2px solid var(--cyan);outline-offset:-3px}
.check-item{min-height:44px}
.viewer-control,.icon-btn,.close-inspect,.modal-close{min-width:44px;min-height:44px}
.modal-close{top:8px;right:8px}
.modal{overscroll-behavior:contain}
.rightpanel,.ar-dialog{overscroll-behavior:contain}
.ar-back{margin-bottom:env(safe-area-inset-bottom)}
@media(max-width:750px){
 .app{height:auto;min-height:100dvh}
 .topbar{gap:7px;flex-wrap:wrap;padding-top:max(9px,env(safe-area-inset-top))}
 .brand{min-width:0;gap:6px;font-size:11px;letter-spacing:.02em}
 .brand small{font-size:6px;letter-spacing:.08em}
 .topright{margin-left:auto;gap:5px}
 .progress-top{width:88px;font-size:10px}
 .layout{flex:none;width:100%;min-width:0}
 .viewer-area{width:100%;height:49dvh;min-height:330px}
 .leftpanel{min-width:0}
 .rightpanel{padding:16px 16px max(20px,env(safe-area-inset-bottom));height:min(85dvh,740px)}
 .inspect-head{position:sticky;top:-16px;z-index:2;background:var(--panel);padding:8px 0}
 .choice{padding:12px;font-size:14px;min-height:48px}
 .choice-title,.inspect-p,.evidence-row strong{font-size:14px}
 select{font-size:16px!important}
 .ar-tab{min-height:44px;font-size:12px}
 .ar-head{position:sticky;top:0;background:var(--panel);z-index:3;padding-top:max(12px,env(safe-area-inset-top))}
 .ar-viewer-host{min-height:280px}
 .ar-steps,.ar-note,.ar-status{font-size:13px}
 .foot{padding-bottom:max(10px,env(safe-area-inset-bottom))}
}
@media(max-width:350px){.topbar .brand-ar{display:none}.brandmark{width:25px;height:28px}.progress-top{width:74px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}.spinner{animation:none}}
