/* CodeCheck Colorado prototype shell: turns the device-framed mockups into a real mobile web page.
   Loaded after each page's own styles so it overrides the framed 470x950 capture layout. */
@font-face{font-family:Inter;src:url('fonts/Inter.woff2') format('woff2');font-weight:100 900;font-display:swap}
html,body{width:auto!important;height:auto!important;min-height:100%}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;background:#D9DFE9}
body{display:block!important;background:#D9DFE9!important;-webkit-tap-highlight-color:transparent;overscroll-behavior-y:none}
.device{width:auto!important;height:auto!important;padding:0!important;border-radius:0!important;background:none!important;box-shadow:none!important}
.device:before,.device:after,.island,.status,.home-ind{display:none!important}
.screen{width:100%!important;max-width:430px;margin:0 auto;height:auto!important;min-height:100vh;min-height:100dvh;border-radius:0!important;overflow:visible!important;overflow-x:clip!important;box-shadow:0 0 40px rgba(11,27,51,.14)}
.top{padding-top:calc(env(safe-area-inset-top,0px) + 8px)}
main{padding-bottom:calc(96px + env(safe-area-inset-bottom,0px))!important}
.tabbar{position:fixed!important;left:0;right:0;margin:0 auto;bottom:0;width:100%;max-width:430px;height:auto!important;padding:0 6px calc(env(safe-area-inset-bottom,0px) + 8px)!important;z-index:40}
.tab{padding-top:9px!important;padding-bottom:2px;cursor:pointer;text-decoration:none}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
[data-go],[data-toast],[data-explain],[data-back],[data-voice],.tap{cursor:pointer;-webkit-user-select:none;user-select:none;transition:transform .12s ease,filter .12s ease}
[data-go]:active,[data-toast]:active,[data-explain]:active,[data-voice]:active,.tap:active{transform:scale(.97);filter:brightness(.96)}
[data-back]:active{background:rgba(255,255,255,.14)}
:focus-visible{outline:3px solid #FFD700;outline-offset:2px}

/* ---------- toast ---------- */
.pt-toast{position:fixed;left:50%;bottom:calc(92px + env(safe-area-inset-bottom,0px));transform:translate(-50%,12px);max-width:min(360px,calc(100vw - 32px));background:#0B1B33;color:#fff;font:600 13px/1.35 Inter,system-ui,sans-serif;padding:10px 14px;border-radius:12px;box-shadow:0 10px 24px -8px rgba(0,0,0,.45);opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;z-index:300;text-align:center}
.pt-toast.on{opacity:1;transform:translate(-50%,0)}
.pt-toast b{color:#FFD700}

/* ---------- full-screen overlays (explainer + voice) ---------- */
.ov{position:fixed;inset:0;z-index:200;display:flex;justify-content:center;background:rgba(11,27,51,.55);opacity:0;visibility:hidden;transition:opacity .18s,visibility .18s}
.ov.on{opacity:1;visibility:visible}
.ov-panel{position:relative;width:100%;max-width:430px;height:100%;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;font-family:Inter,system-ui,sans-serif;transform:translateY(16px);transition:transform .22s ease}
.ov.on .ov-panel{transform:none}
.ov-x{position:absolute;top:calc(env(safe-area-inset-top,0px) + 12px);right:14px;width:56px;height:56px;border-radius:50%;background:#fff;border:3.5px solid #FFD700!important;display:flex;align-items:center;justify-content:center;box-shadow:0 6px 16px -4px rgba(0,0,0,.45);z-index:5}
.ov-x:active{transform:scale(.94)}

/* explainer (matches explainer-popup.png) */
.xp .ov-panel{background:#F3F5F9;color:#0B1B33}
.xp-top{background:#002868;padding:calc(env(safe-area-inset-top,0px) + 22px) 16px 20px;position:relative}
.xp-chip{display:inline-flex;align-items:center;gap:7px;max-width:calc(100% - 70px);background:rgba(255,255,255,.12);color:#DDE4F0;font-size:11.5px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;padding:6px 11px;border-radius:20px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.xp-chip i{flex:0 0 auto;width:7px;height:7px;border-radius:50%;background:#FFD700}
.xp-top h2{color:#fff;font-size:28px;font-weight:850;letter-spacing:-.8px;line-height:1.12;margin-top:24px;overflow-wrap:anywhere}
.xp-stripe{height:6px;background:linear-gradient(90deg,#BF0A30 0,#BF0A30 50%,#FFD700 50%)}
.xp-body{padding:16px 16px calc(28px + env(safe-area-inset-bottom,0px))}
.xp-card{background:#fff;border:1px solid #E1E5EC;border-radius:16px;box-shadow:0 1px 2px rgba(11,27,51,.06),0 4px 12px rgba(11,27,51,.06)}
.xp-plain{position:relative;overflow:hidden;padding:14px 16px 16px 20px}
.xp-plain:before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:#BF0A30}
.xp-plain small{display:block;font-size:11px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#BF0A30}
.xp-plain p{font-size:21px;font-weight:800;letter-spacing:-.4px;line-height:1.22;margin-top:6px;overflow-wrap:anywhere}
.xp-pts{margin-top:14px;padding:4px 16px}
.xp-pt{display:flex;gap:12px;align-items:flex-start;padding:13px 0;font-size:16px;font-weight:600;line-height:1.4;overflow-wrap:anywhere}
.xp-pt+.xp-pt{border-top:1px solid #E1E5EC}
.xp-pt b{flex:0 0 auto;width:28px;height:28px;border-radius:8px;background:#FFD700;color:#0B1B33;font-size:14px;font-weight:850;display:flex;align-items:center;justify-content:center;margin-top:-1px}
.xp-pt span{min-width:0}
.xp-bl{margin-top:14px;background:#002868;color:#fff;border-radius:16px;padding:14px 16px;display:flex;gap:14px;align-items:center}
.xp-bl small{display:block;font-size:11px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#FFD700}
.xp-bl p{font-size:19px;font-weight:800;letter-spacing:-.3px;line-height:1.25;margin-top:3px}
.xp-src{margin-top:12px;font-size:12px;font-weight:600;color:#5B6475;line-height:1.45;overflow-wrap:anywhere;padding:0 2px}
.xp-ok{margin-top:18px;width:100%;height:54px;border-radius:14px;background:#0B1B33!important;color:#fff!important;font-size:17px!important;font-weight:750!important}

/* voice listening overlay */
.vo .ov-panel{background:radial-gradient(120% 60% at 50% 42%,#0A3A8C 0%,#002868 55%,#001B4A 100%);color:#fff;display:flex;flex-direction:column;align-items:center;padding:calc(env(safe-area-inset-top,0px) + 96px) 24px calc(40px + env(safe-area-inset-bottom,0px))}
.vo-lbl{font-size:13px;font-weight:800;letter-spacing:.2em;text-transform:uppercase;color:#FFD700;display:flex;align-items:center;gap:8px}
.vo-lbl i{width:8px;height:8px;border-radius:50%;background:#BF0A30;box-shadow:0 0 0 0 rgba(191,10,48,.7);animation:vodot 1.2s infinite}
.vo-mic{position:relative;margin:40px 0 34px;width:128px;height:128px;border-radius:50%;background:#FFD700;display:flex;align-items:center;justify-content:center;box-shadow:0 12px 30px -8px rgba(0,0,0,.5)}
.vo-mic:before,.vo-mic:after{content:"";position:absolute;inset:0;border-radius:50%;border:3px solid rgba(255,215,0,.55);animation:vorng 1.8s ease-out infinite}
.vo-mic:after{animation-delay:.9s;border-color:rgba(255,255,255,.4)}
.vo-wave{display:flex;gap:5px;align-items:center;height:40px}
.vo-wave span{width:5px;border-radius:3px;background:#fff;opacity:.85;animation:vowave 1s ease-in-out infinite}
.vo-tx{margin-top:26px;min-height:92px;width:100%;text-align:center;font-size:30px;font-weight:800;letter-spacing:-.7px;line-height:1.2}
.vo-tx .q{color:rgba(255,255,255,.45);font-weight:700}
.vo-tx .cur{display:inline-block;width:3px;height:30px;background:#FFD700;vertical-align:-4px;margin-left:3px;animation:vocur .8s steps(1) infinite}
.vo-hint{font-size:14px;font-weight:600;color:#C9D3E6;text-align:center;line-height:1.4}
.vo-match{margin-top:20px;width:100%;background:#fff;color:#0B1B33;border-radius:16px;padding:12px 14px;display:flex;gap:12px;align-items:center;box-shadow:0 12px 26px -10px rgba(0,0,0,.5);opacity:0;transform:translateY(10px);transition:opacity .25s,transform .25s;position:relative;overflow:hidden}
.vo-match:before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:#BF0A30}
.vo-match.on{opacity:1;transform:none}
.vo-match .t{flex:1;min-width:0}
.vo-match small{display:block;font-size:10.5px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:#5B6475}
.vo-match b{display:block;font-size:17px;font-weight:850;letter-spacing:-.3px;margin-top:2px}
.vo-match .v{font-size:26px;font-weight:900;letter-spacing:-1px;white-space:nowrap}
.vo-match .v small{display:inline;font-size:13px;font-weight:800;letter-spacing:0;text-transform:none;color:#0B1B33}
.vo-go{margin-top:14px;font-size:13px;font-weight:650;color:#C9D3E6;opacity:0;transition:opacity .25s}
.vo-go.on{opacity:1}
@keyframes vorng{0%{transform:scale(1);opacity:1}100%{transform:scale(1.75);opacity:0}}
@keyframes vowave{0%,100%{height:8px}50%{height:36px}}
@keyframes vocur{50%{opacity:0}}
@keyframes vodot{0%{box-shadow:0 0 0 0 rgba(191,10,48,.7)}100%{box-shadow:0 0 0 10px rgba(191,10,48,0)}}
@media (prefers-reduced-motion:reduce){.vo-mic:before,.vo-mic:after,.vo-wave span{animation:none}}
