.cpi-app{--safe-t:env(safe-area-inset-top,0px);--safe-b:env(safe-area-inset-bottom,0px);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;box-sizing:border-box}.cpi-app *{box-sizing:border-box}.cpi-setup{max-width:760px;margin:28px auto;padding:24px;border-radius:18px;background:#101010;color:#fff}.cpi-logo{font-size:.78rem;font-weight:900;letter-spacing:.18em;color:#bbb}.cpi-logo span{color:#69d2ff}.cpi-setup h1{margin:8px 0 22px;font-size:clamp(1.7rem,6vw,2.5rem)}.cpi-setup label{display:grid;gap:7px;margin:12px 0;color:#ddd;font-size:.84rem;font-weight:700}.cpi-setup select,.cpi-setup input[type=range]{width:100%}.cpi-setup select{min-height:48px;padding:8px 12px;border:1px solid #444;border-radius:9px;background:#191919;color:#fff;font-size:1rem}.cpi-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}.cpi-check{display:flex!important;grid-template-columns:auto 1fr!important;align-items:center;gap:9px!important}.cpi-actions{display:flex;gap:10px;margin-top:20px}.cpi-actions button{min-height:50px;padding:10px 16px;border:0;border-radius:9px;background:#252525;color:#fff;font-weight:900}.cpi-start{flex:1;background:#9a1d2e!important}.cpi-start:disabled{opacity:.4}.cpi-support,.cpi-setup-msg{color:#aaa;font-size:.82rem;line-height:1.4}
html.cpi-active-root,html.cpi-active-root body,body.cpi-active-body{margin:0!important;padding:0!important;width:100%!important;height:100%!important;overflow:hidden!important;background:#000!important}.cpi-stage{position:fixed!important;z-index:2147483000!important;inset:0!important;width:100vw!important;height:100vh!important;height:100dvh!important;background:#000;color:#fff;overflow:hidden}.cpi-stage header{position:absolute;z-index:10;top:0;left:0;right:0;display:flex;align-items:center;gap:8px;min-height:58px;padding:calc(8px + var(--safe-t)) 10px 8px;background:rgba(0,0,0,.94);border-bottom:1px solid #2c2c2c}.cpi-title{min-width:0;display:grid}.cpi-title strong{max-width:34vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.8rem}.cpi-title small{color:#69d2ff;font-size:.58rem}.cpi-act-nav{display:flex;gap:5px;flex:1;overflow-x:auto;scrollbar-width:none}.cpi-act-nav::-webkit-scrollbar{display:none}.cpi-act-nav button,.cpi-head-actions button{border:1px solid #444;border-radius:7px;background:#1c1c1c;color:#fff;padding:7px 9px;font-size:.62rem;font-weight:800;white-space:nowrap}.cpi-head-actions{display:flex;gap:5px}.cpi-fullscreen{background:#164a70!important}.cpi-status{position:absolute;z-index:9;top:calc(58px + var(--safe-t));left:0;right:0;display:flex;align-items:center;gap:7px;min-height:28px;padding:4px 10px;background:rgba(14,14,14,.92);font-size:.6rem;color:#aaa}.cpi-dot{width:7px;height:7px;border-radius:50%;background:#555}.cpi-dot.on{background:#55e87a;box-shadow:0 0 9px rgba(85,232,122,.8)}.cpi-device{margin-left:auto;max-width:34vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cpi-meter{width:90px;height:5px;border-radius:5px;background:#333;overflow:hidden}.cpi-meter span{display:block;width:100%;height:100%;transform-origin:left center;transform:scaleX(0);background:#d5d5d5}.cpi-prompter{position:absolute;inset:calc(86px + var(--safe-t)) 0 0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:none;padding:28vh 5vw calc(300px + var(--safe-b));background:#000}.cpi-prompter::-webkit-scrollbar{display:none}.cpi-script{width:min(100%,1100px);margin:0 auto}.cpi-act{margin:8vh 0 26px;padding-bottom:8px;border-bottom:1px solid #555;color:#ffd166;font-size:1rem;font-weight:900;letter-spacing:.15em}.cpi-line{margin:0 0 clamp(24px,4.5vh,52px);padding:8px 3vw 12px;border-left:5px solid transparent;opacity:.24;transition:opacity .16s,transform .16s,background .16s}.cpi-line strong{display:block;margin-bottom:6px;color:#888;font-size:clamp(.72rem,2.6vw,1rem);letter-spacing:.13em}.cpi-line p{margin:0;color:#ededed;font-size:clamp(1.55rem,6vw,4rem);font-weight:750;line-height:1.2}.cpi-line.is-role p{color:#ffe08a}.cpi-line.is-complete{opacity:.08}.cpi-line.is-current{opacity:1;transform:scale(1.01);background:linear-gradient(90deg,rgba(255,255,255,.09),transparent);border-left-color:#69d2ff}.cpi-dock{position:absolute;z-index:12;left:0;right:0;bottom:0;padding:7px max(10px,env(safe-area-inset-right)) calc(7px + var(--safe-b)) max(10px,env(safe-area-inset-left));border-top:1px solid rgba(255,255,255,.17);background:rgba(6,6,6,.92);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}.cpi-now,.cpi-own{display:flex;align-items:center;gap:8px;min-height:30px;overflow:hidden}.cpi-now small,.cpi-own small{flex:0 0 auto;color:#69d2ff;font-size:.58rem;font-weight:900}.cpi-own small{color:#ffd166}.cpi-now p,.cpi-own p{margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.68rem;color:#bbb}.cpi-own p{color:#fff;font-weight:700}.cpi-heard{min-height:15px;color:#8ad9ff;font-size:.58rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cpi-controls{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;margin-top:4px}.cpi-controls button{min-width:0;min-height:44px;border:1px solid #3d3d3d;border-radius:8px;background:#202020;color:#fff;font-size:.66rem;font-weight:800}.cpi-primary{background:#9a1d2e!important}.cpi-live{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:5px}.cpi-live label{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:7px;color:#888;font-size:.56rem}.cpi-live input{width:100%}.cpi-install-tip{position:absolute;z-index:30;inset:0;display:grid;place-items:center;padding:24px;background:rgba(0,0,0,.72)}.cpi-install-tip[hidden]{display:none!important}.cpi-install-tip>div{max-width:420px;padding:22px;border:1px solid #444;border-radius:14px;background:#141414;color:#fff}.cpi-install-tip p{color:#ccc;line-height:1.45}.cpi-install-tip button{width:100%;min-height:44px;border:0;border-radius:8px;background:#164a70;color:#fff;font-weight:800}
@media(max-width:650px){.cpi-grid{grid-template-columns:1fr}.cpi-setup{margin:0;min-height:100vh;border-radius:0;padding:22px 16px calc(22px + env(safe-area-inset-bottom))}.cpi-actions{flex-direction:column}.cpi-prompter{padding-left:3vw;padding-right:3vw}.cpi-line{padding-left:3vw;padding-right:2vw}.cpi-line p{font-size:clamp(1.5rem,7vw,2.7rem)}}
@media(orientation:landscape){.cpi-stage header{min-height:45px;padding:calc(5px + var(--safe-t)) 9px 5px}.cpi-status{top:calc(45px + var(--safe-t));min-height:24px}.cpi-prompter{inset:calc(69px + var(--safe-t)) 0 0;padding:18vh 4vw calc(165px + var(--safe-b))}.cpi-line{margin-bottom:22px}.cpi-line p{font-size:clamp(1.35rem,4vw,3rem);line-height:1.15}.cpi-now,.cpi-own{min-height:21px}.cpi-controls button{min-height:38px;height:38px}.cpi-live{display:none}.cpi-device{display:none}.cpi-meter{width:70px}.cpi-title strong{max-width:25vw}}

/* 1.1.0: Standard Cue Partner and Line Learner are intentionally separate workflows. */
.cpi-practice-choice{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:18px 0}.cpi-practice-card{position:relative!important;display:block!important;margin:0!important;cursor:pointer}.cpi-practice-card input{position:absolute;opacity:0;pointer-events:none}.cpi-practice-card span{display:block;min-height:104px;padding:16px;border:2px solid #3a3a3a;border-radius:13px;background:#181818;transition:border-color .15s,background .15s,transform .15s}.cpi-practice-card strong{display:block;margin-bottom:7px;color:#fff;font-size:.9rem;letter-spacing:.04em}.cpi-practice-card small{display:block;color:#aaa;font-size:.76rem;line-height:1.45}.cpi-practice-card input:checked+span{border-color:#69d2ff;background:#142631;transform:translateY(-1px)}.cpi-practice-card.learner input:checked+span{border-color:#4ea8de;background:#112b40}.cpi-standard-options,.cpi-learner-options{margin:4px 0 10px;padding:12px 14px;border:1px solid #333;border-radius:10px;background:#0b0b0b}.cpi-learner-options{border-color:#264c69;background:#0d1d29}.cpi-learner-options[hidden],.cpi-standard-options[hidden]{display:none!important}
.cpi-app.is-line-learner .cpi-stage header{background:rgba(13,46,70,.97);border-bottom-color:#315f7e}.cpi-app.is-line-learner .cpi-status{background:rgba(12,31,45,.95);color:#b5d7ee}.cpi-app.is-line-learner .cpi-dot.on{background:#69d2ff;box-shadow:0 0 9px rgba(105,210,255,.8)}.cpi-app.is-line-learner .cpi-primary{background:#164a70!important}.cpi-app.is-line-learner .cpi-line.is-current{border-left-color:#4ea8de}.cpi-app.is-line-learner .cpi-own small{color:#69d2ff}
@media(max-width:650px){.cpi-practice-choice{grid-template-columns:1fr}.cpi-practice-card span{min-height:84px}}

/* Active cue/line states */
.cpi-line.is-active-cue{opacity:1;background:linear-gradient(90deg,rgba(105,210,255,.16),rgba(105,210,255,.03),transparent);border-left-color:#69d2ff}.cpi-line.is-active-cue strong{color:#8ad9ff}.cpi-line.is-active-cue p{color:#fff}.cpi-line.is-active-own{opacity:1;background:linear-gradient(90deg,rgba(255,209,102,.15),rgba(255,209,102,.03),transparent);border-left-color:#ffd166}.cpi-line.is-active-own strong{color:#ffd166}.cpi-line.is-speaking{box-shadow:inset 0 0 0 1px rgba(255,255,255,.12)}.cpi-line.is-waiting{animation:cpi-wait-pulse 1.35s ease-in-out infinite alternate}@keyframes cpi-wait-pulse{from{background-color:rgba(105,210,255,.025)}to{background-color:rgba(105,210,255,.11)}}

/* 1.3.0: tap any dialogue line to jump rehearsal position. */
.cpi-line{cursor:pointer;touch-action:pan-y;-webkit-tap-highlight-color:rgba(105,210,255,.14)}.cpi-line:focus-visible{outline:2px solid #69d2ff;outline-offset:3px}.cpi-line.is-tap-selected{opacity:1;box-shadow:inset 0 0 0 2px rgba(105,210,255,.72)}
