/* PERMANENTLY HIDDEN — no session controls, no turn view, no call panel */
#titlebar,#experienceHeader,
#captureSign,.captureSign,#sessionState,
#callHeader,#liveControlStrip,.liveControlStrip,
#turnHost,.turnHost,.turnPanel,
#liveFooter,.liveFooter,
#coachModeIndicator,.coachModeIndicator,
.sessionToggle,.sessionTruth,
.speakerControl,.speakerBtn,
.audioState,.audioMeter,.audioDetected,.overControl{display:none!important}

:root{--bg:#f6f3ed;--paper:#fff;--ink:#151515;--line:#d9d3ca;--blue:#1776c9;--bluebg:#edf5fb;--amber:#d47a00;--amberbg:#fff4e3;--you:#f5f0e7;--green:#12833b;--greenbg:#edf8f1;--orange:#c66d00;--red:#b42318}
*{box-sizing:border-box}html,body,#app{height:100%;margin:0}body{font:13px Arial,Helvetica,sans-serif;background:var(--bg);color:var(--ink);overflow:hidden}button,input,select{font:inherit}button{cursor:pointer}
#app{display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:8px}.brandLogo{width:192px;height:25px;object-fit:contain;object-position:left center}#productBadge{height:24px;min-width:56px;display:inline-flex;align-items:center;justify-content:center;border:1px solid #777;background:#fff;color:#111;font-size:11px;font-weight:900;letter-spacing:.04em}#modeBadge{padding:4px 7px;border:1px solid var(--line);border-radius:10px;font-size:10px}#releaseBadge{padding:3px 6px;border-radius:9px;background:#111217;color:#fff;font-size:9px;font-weight:900;letter-spacing:.06em}#sessionState{font-weight:800;font-size:11px}#closeApp{height:46px;border:0;border-left:1px solid var(--line);background:transparent;font-size:24px}.captureSign{height:28px;display:flex;align-items:center;gap:7px;padding:0 10px;border-radius:4px;border:1px solid #c9c4bb;background:#161616;color:#fff;font-weight:900;letter-spacing:.08em;font-size:10px;box-shadow:inset 0 0 12px rgba(255,255,255,.05)}.captureSign .lamp{width:9px;height:9px;border-radius:50%;background:#777}.captureSign.live{border-color:#db5a51;box-shadow:0 0 10px rgba(180,35,24,.28),inset 0 0 12px rgba(255,70,55,.12)}.captureSign.live .lamp{background:#ff3b30;box-shadow:0 0 9px #ff3b30}.captureSign.aar{border-color:#d9a24e}.captureSign.aar .lamp{background:#f3a51f;box-shadow:0 0 8px #f3a51f}.captureSign.muted{border-color:#d9a24e}.captureSign.muted .lamp{background:#f3a51f;box-shadow:0 0 7px #f3a51f}.captureSign.closed .lamp{background:#777}
#workspace{flex:1;min-height:0;display:flex}#nav{display:none!important}.navBtn{width:100%;text-align:left;padding:9px 8px;margin-bottom:4px;border:1px solid transparent;background:transparent;border-radius:4px}.navBtn.active{background:#fff;border-color:var(--line);font-weight:700}#main{flex:1;min-width:0;min-height:0}.view{display:none;height:100%}.view.active{display:flex;flex-direction:column}.view:not(#view-live){padding:18px;overflow:auto;background:#fff}#directCall{padding:0 16px;border:0;background:#2d6d43;color:#fff;font-weight:800;border-radius:3px}.sessionControl{display:grid;grid-template-columns:auto minmax(150px,.8fr) auto minmax(150px,.9fr) auto auto 1fr;gap:7px;align-items:center;padding:5px 7px;border-bottom:1px solid #d7d2ca;background:#25262b;color:#fff}.sessionEyebrow{font-size:9px;letter-spacing:.13em;font-weight:900;color:#aaa}.sessionControl select{height:28px;min-width:0;border:1px solid #555;background:#18191d;color:#fff;padding:3px 6px}.sessionControl button{height:28px;border:1px solid #62646b;background:#32343a;color:#fff;border-radius:4px;font-size:10px;font-weight:900;padding:0 10px}.sessionControl button:disabled{opacity:.4}
.audioConfidence{display:grid;grid-template-columns:auto auto auto minmax(150px,1fr) minmax(110px,1fr) auto auto auto auto;gap:7px;align-items:center;padding:6px 7px;border-bottom:1px solid #ded8cf;background:#111217;color:#fff}.audioEyebrow,.audioDeviceLabel{font-size:9px;letter-spacing:.13em;font-weight:900;color:#aaa}.audioConfidence select{height:30px;min-width:0;border:1px solid #444;background:#1c1d22;color:#fff;padding:3px 6px}.audioConfidence button{min-height:32px;border:1px solid #5b5d63;background:#27282e;color:#fff;border-radius:4px;font-size:10px;font-weight:900;padding:0 10px}.audioConfidence button:hover{background:#33353c}.audioConfidence button:disabled{opacity:.4;cursor:default}.manualCapture{display:flex;gap:5px;padding:5px 7px;border-bottom:1px solid #e7e2db;background:#fff}.manualCapture input{flex:1;min-width:0;border:1px solid #ddd7ce;padding:6px 8px}.manualCapture button{border:1px solid #ccc5bb;background:#fff;font-size:11px;font-weight:700}
.turnHost{flex:1;min-height:0;overflow:auto;padding:6px}.turnPanel,.conversationMode{width:100%;max-width:760px;margin:auto;background:#fff;border:1px solid #e2ddd5;padding:9px}.turnToolbar{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:6px 0}.turnToolbar button,.viewbar button{min-height:32px;border:1px solid #d3cec5;background:#fff;border-radius:6px;padding:5px 9px;font-size:12px}.next{text-align:right}.turnCounter{font-size:11px;font-weight:800}.card{padding:14px;margin-bottom:9px;border-left:4px solid}.label{font-size:11px;letter-spacing:.15em;font-weight:800;text-transform:uppercase;margin-bottom:6px}.copy{font-size:22px;line-height:1.42}.placeholder{opacity:.5}.other{background:var(--bluebg);border-color:var(--blue)}.other .label{color:var(--blue)}.feedback{background:var(--amberbg);border-color:var(--amber)}.feedback .label{color:#7a4a12;font-weight:900}.feedback .strategy{color:#6b4218;font-weight:700}.couldSay{margin-top:10px;color:var(--amber);font-size:16px;font-style:italic;font-weight:700;text-align:center}.suggested{margin-top:5px;color:#5d3815;font-size:17px;line-height:1.35}.me{background:var(--you);border-color:transparent;margin-left:10px}.coaching{border:1px solid #ddd8cf;padding:10px 11px;min-height:61px}.coaching.blank{background:#fff;border-style:dashed}.coaching.green{background:var(--greenbg);border-color:#8ecba4}.coaching.orange{background:#fff4e3;border-color:#e3b572}.coaching.red{background:#fff0ef;border-color:#e2a09b}.coach-title{font-size:12px;font-weight:900;margin-bottom:5px}.green .coach-title{color:var(--green)}.orange .coach-title{color:var(--orange)}.red .coach-title{color:var(--red)}.coach-copy{font-size:17px;line-height:1.42;font-weight:700}.viewbar{display:flex;gap:7px;justify-content:center;border-top:1px solid #e7e3dd;margin-top:9px;padding-top:9px}.viewbar .active{background:#171717;color:#fff;border-color:#171717}.conversationEvent{padding:10px;border-bottom:1px solid #eee;line-height:1.45}.conversationEvent b{display:block;font-size:10px;letter-spacing:.12em;margin-bottom:4px}.wideInput{height:36px;padding:7px 9px;border:1px solid var(--line);margin-bottom:10px}.conversationGrid{display:grid;grid-template-columns:340px 1fr;gap:12px;min-height:0;flex:1}.conversationRow{display:flex;flex-direction:column;width:100%;text-align:left;padding:10px;border:0;border-bottom:1px solid #eee;background:#fff}.conversationRow:hover{background:#faf8f1}.conversationRow span{font-size:11px;color:#777;margin-top:4px}#conversationList{overflow:auto;border:1px solid var(--line)}.aarDetail{overflow:auto;border:1px solid var(--line);padding:10px}.aarTurn{margin-bottom:12px;border:1px solid #ddd;padding:10px}.aarTurn .severity{font-weight:800}.settingsNote{color:#666}.practiceSetup{max-width:760px;display:grid;grid-template-columns:1fr 1fr;gap:14px}.practiceSetup label{display:flex;flex-direction:column;gap:6px;font-weight:700}.practiceSetup input,.practiceSetup select{height:38px;border:1px solid var(--line);padding:7px}.practiceActions{grid-column:1/-1;display:flex;gap:8px}
#appMenuBar{display:flex;align-items:stretch;align-self:stretch;min-width:0}
.appMenu{position:relative;height:100%}.appMenu>summary{list-style:none;height:100%;display:flex;align-items:center;padding:0 9px;cursor:pointer;font-size:12px;user-select:none}.appMenu>summary::-webkit-details-marker{display:none}.appMenu[open]>summary,.appMenu>summary:hover{background:#ece9e2}
.menuPanel{position:absolute;top:100%;left:0;z-index:50;min-width:190px;padding:4px;background:#fff;border:1px solid #aaa;box-shadow:0 4px 12px rgba(0,0,0,.18)}.menuPanel.wide{min-width:220px}.menuPanel button{display:block;width:100%;text-align:left;border:0;background:#fff;padding:7px 20px 7px 9px;white-space:nowrap}.menuPanel button:hover,.menuPanel button:focus{background:#e9f2fb;outline:none}.menuPanel button.checked:before{content:"✓";position:absolute;margin-left:-15px}.menuPanel button:disabled{opacity:.45}.menuLabel{padding:5px 8px 3px;font-size:9px;font-weight:900;letter-spacing:.12em;color:#777}.menuSep{height:1px;background:#ddd;margin:4px 2px}
.settingsGroup{max-width:760px;border:1px solid var(--line);padding:14px;margin-bottom:14px}.settingsGroup h3{margin:0 0 12px}.settingsGroup label{display:flex;flex-direction:column;gap:6px;font-weight:700}.settingsGroup input,.settingsGroup select{height:36px;border:1px solid var(--line);padding:6px;background:#fff}.settingsActions{display:flex;align-items:center;gap:10px;margin-top:10px}.settingsActions button{min-height:34px}
.other .copy.interim,.me .copy.interim{font-style:italic;opacity:.82}.other,.me{padding-top:10px;padding-bottom:10px}.other .label,.me .label{margin-bottom:4px}
#diagnosticsDialog{border:1px solid #777;padding:0;min-width:min(520px,90vw);box-shadow:0 12px 40px rgba(0,0,0,.25)}#diagnosticsDialog::backdrop{background:rgba(0,0,0,.2)}.diagnosticsPanel{margin:0}.dialogTitle{display:flex;justify-content:space-between;align-items:center;padding:9px 11px;border-bottom:1px solid #ddd;background:#f4f2ee}.dialogTitle button{border:0;background:transparent;font-size:20px}.diagnosticsPanel pre{margin:0;padding:14px;white-space:pre-wrap;font:12px/1.6 Consolas,monospace}.systemEvent{border-left:3px solid #999;background:#f5f5f5;color:#555}.systemEvent.error{border-left-color:#c63c32;background:#fff1ef}.missedSpeechPanel{min-width:min(520px,90vw)}.missedSpeechBody{display:grid;gap:10px;padding:14px}.missedSpeechBody label{display:grid;gap:5px;font-weight:700}.missedSpeechBody select,.missedSpeechBody textarea{font:inherit;border:1px solid #bbb;padding:7px}.dialogActions{display:flex;justify-content:flex-end}.dialogActions button{min-height:34px;font-weight:700}.aarHeader{display:flex;align-items:center;justify-content:space-between;gap:12px}.aarModeControl{display:flex;gap:5px}.aarModeControl button{border:1px solid #bbb;background:#fff;padding:6px 9px;font-size:10px;font-weight:900;border-radius:4px}.aarModeControl button.active{background:#25262b;color:#fff;border-color:#25262b}.aarSystemEvent{border-left:3px solid #9a9a9a;background:#f4f4f4;padding:8px 10px;margin:7px 0;font-size:11px}.aarSystemEvent.error{border-left-color:#c63c32;background:#fff1ef}.aarSystemEvent .meta{font-size:9px;color:#777;margin-bottom:3px}.aarSystemEvent p{margin:0}.aarSystemEvent .code{font-weight:900}

MOBILE-DISABLED */
/* Alpha4.2.8.4 field-pilot transcript/state stabilization */
.aarCleanEvent{border-bottom:1px solid #e5e1da;padding:10px 8px;line-height:1.45;background:#fff}
.aarCleanEvent .meta{font-size:9px;color:#777;margin-bottom:3px}.aarCleanEvent p{margin:0}

/* Alpha4.2.8.5 field-pilot live cockpit stabilization */
/* Pause/resume is deliberately amber: green is START, red is END. */
#muteMic,#muteMic.resume{border-color:#d8a34a!important;background:#f4c56f!important;color:#17120a!important;min-width:116px}
#muteMic:hover:not(:disabled){background:#efb94f!important}
/* CLOSE MIC is a neutral hardware control, not a session-state control. */
#closeMic{border-color:#a9a9a9!important;background:#dedede!important;color:#222!important}
#closeMic.closed{border-color:#666!important;background:#777!important;color:#fff!important}

/* Alpha4.3.5 authoritative speech viewport: exactly three visible lines, with wheel/trackpad/touch scrolling. */
.other .copy,.me .copy{font-size:14px!important;line-height:1.32!important;height:3.96em!important;min-height:3.96em!important;max-height:3.96em!important;overflow-y:auto!important;overflow-x:hidden!important;overflow-wrap:anywhere;scrollbar-width:thin;scrollbar-gutter:stable;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;touch-action:pan-y}
.other .copy::-webkit-scrollbar,.me .copy::-webkit-scrollbar{width:8px}
.other .copy::-webkit-scrollbar-thumb,.me .copy::-webkit-scrollbar-thumb{background:#b9b5ad;border-radius:6px}
.other .copy::-webkit-scrollbar-track,.me .copy::-webkit-scrollbar-track{background:transparent}
/* Alpha4.3.4 live-action emphasis */
.coach-recovery{color:#137a35;font-weight:900}

/* Every existing scroll region supports direct vertical touch panning as well as wheel/trackpad. */
#conversationList,.aarDetail,#conversationTimeline,.conversationMode,.view,.main,.content{touch-action:pan-y;-webkit-overflow-scrolling:touch}
[style*="overflow"],[class*="scroll"]{touch-action:pan-y;-webkit-overflow-scrolling:touch}

/* Menus are pointer/touch controls on every device; hover is optional enhancement only. */
.appMenu>summary,.menuPanel button{touch-action:manipulation;-webkit-tap-highlight-color:rgba(0,0,0,.08)}

MOBILE-DISABLED */
.viewIntro{max-width:900px;color:#555;line-height:1.5;margin:0 0 18px}.activePack{max-width:1100px;padding:10px 12px;margin-bottom:16px;border-left:4px solid var(--accent,#d28a18);background:#fff8e8;font-weight:800}.ipkCatalog{max-width:1180px}.catalogEdition{margin:0 0 28px}.catalogEdition>h3{font-size:18px;letter-spacing:.08em;border-bottom:2px solid #222;padding-bottom:7px;margin:0 0 12px}.catalogEdition>h4{font-size:13px;letter-spacing:.08em;margin:18px 0 8px;color:#555}.catalogGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.ipkCard{border:1px solid var(--line);background:#fff;padding:10px 12px}.ipkCardTop{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.ipkCardTop strong{overflow-wrap:anywhere}.versionBadge{flex:0 0 auto;border:1px solid #bbb;border-radius:999px;padding:2px 7px;font-size:11px;font-weight:800}.ipkCard p{margin:7px 0 0;color:#606060;font-size:12px;line-height:1.4}.catalogBoundary{border:1px solid #ddd;background:#faf8f1;padding:10px 12px;line-height:1.45;color:#555}.ipkCatalog,.view{overscroll-behavior:contain}.practiceSetup select{background:#fff}

/* Alpha4.5.0 demo/library/menu polish */
.ipkEditionTabs{position:sticky;top:0;z-index:8;display:flex;gap:6px;padding:7px 0 9px;background:#fff;border-bottom:1px solid var(--line);margin-bottom:10px}.ipkEditionTab{min-height:36px;padding:0 18px;border:1px solid #aaa;background:#f5f3ee;font-weight:900;letter-spacing:.05em}.ipkEditionTab.active{background:#202126;color:#fff;border-color:#202126}.aboutPanel{min-width:min(520px,90vw);margin:0}.aboutBody{padding:18px 22px}.aboutBody h2{margin:0 0 4px;letter-spacing:.08em}.aboutBody dl{display:grid;grid-template-columns:90px 1fr;gap:5px 12px;margin:18px 0}.aboutBody dt{font-weight:800}.aboutBody dd{margin:0}.aboutTagline{margin-top:18px;font-style:italic;color:#555}#aboutDialog{border:1px solid #777;padding:0;box-shadow:0 12px 40px rgba(0,0,0,.25)}#aboutDialog::backdrop{background:rgba(0,0,0,.2)}.dialogActions{gap:8px}

/* A4.5.3 Practice launch */
.practiceActions{align-items:center;margin-top:2px}.practiceActions #startPractice{min-height:40px;padding:0 20px;border:1px solid #174f2d;border-radius:4px;background:#1f6a3a;color:#fff;font-size:12px;font-weight:900;letter-spacing:.035em;cursor:pointer}.practiceActions #startPractice:hover,.practiceActions #startPractice:focus{background:#18572f;outline:2px solid #8bbd9b;outline-offset:2px}.practiceBlockedPanel{min-width:min(500px,90vw)}.practiceBlockedPanel .dialogActions{gap:8px;margin-top:18px}.practiceBlockedPanel .dialogActions button{min-height:36px;padding:0 12px;font-weight:800}

/* A4.5.4 Practice Skills geometry: selection text never resizes the form. */
.practiceSetup{max-width:1120px;grid-template-columns:minmax(0,3fr) minmax(260px,1fr);align-items:start}
.practiceSetup label{min-width:0}
.practiceSetup select{width:100%;min-width:0}
.scenarioPicker{position:relative;min-width:0;width:100%}
.scenarioButton{width:100%;height:52px;min-height:52px;display:grid;grid-template-columns:minmax(0,1fr) 24px;align-items:center;text-align:left;border:1px solid var(--line);background:#fff;padding:6px 9px;font:inherit;cursor:pointer}
#practiceScenarioText{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;white-space:normal;line-height:1.35;max-height:2.7em;overflow-wrap:anywhere}
.scenarioChevron{justify-self:end;font-size:16px}
.scenarioMenu{position:absolute;z-index:30;left:0;right:0;top:calc(100% + 2px);max-height:260px;overflow:auto;border:1px solid #777;background:#fff;box-shadow:0 4px 12px rgba(0,0,0,.16)}
.scenarioOption{display:block;width:100%;border:0;border-bottom:1px solid #eee;background:#fff;padding:9px 10px;text-align:left;line-height:1.35;white-space:normal;cursor:pointer}
.scenarioOption:hover,.scenarioOption:focus{background:#eef5fb;outline:none}
.practiceBlockedPanel .dialogActions{justify-content:flex-end}

MOBILE-DISABLED */

#directCall:disabled{opacity:.42;cursor:not-allowed}.directCallSetupPanel .aboutBody{display:grid;gap:12px}.directCallSetupPanel label{display:grid;gap:5px;font-weight:700}.directCallSetupPanel select{height:34px;border:1px solid var(--line);background:#fff;padding:5px 7px}
#directCall.disabledLook{opacity:.46;filter:saturate(.2);cursor:pointer}
.callListPanel{width:min(760px,92vw)}.callListRows{display:grid;gap:6px;max-height:420px;overflow:auto}.callListRow{display:flex;justify-content:space-between;gap:18px;text-align:left;padding:10px 12px}.callListRow span{opacity:.72;font-size:12px}

#crmInfo{padding:0 10px;border:1px solid #9c9c9c;background:#ece9e2;font-size:10px;font-weight:800;border-radius:3px;white-space:nowrap}.crmSearchRow{display:grid;grid-template-columns:1fr auto;gap:6px}.crmSearchRow input{height:34px;border:1px solid var(--line);padding:5px 7px}.crmInfoGrid{display:grid;grid-template-columns:minmax(120px,.35fr) 1fr;gap:6px 12px;font-size:12px}.crmInfoGrid dt{font-weight:800;color:#555}.crmInfoGrid dd{margin:0;overflow-wrap:anywhere}.crmInfoPanel{width:min(760px,92vw)}

/* Conversation Intelligence Platform v2.1.0: provider-independent adapter settings. */
.futureDeviceGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px;margin-top:10px}.futureDeviceGrid button{min-height:36px;text-align:left;padding:0 12px;font-weight:700}.futureDeviceGrid button:disabled{opacity:.48;cursor:not-allowed}

/* v2.1.0 unified adapter settings */
.adapterTabs{display:flex;flex-wrap:wrap;gap:0;max-width:1100px;border-bottom:1px solid var(--line);margin:0 0 16px}.adapterTab{min-height:38px;padding:0 18px;border:1px solid #bdb8ae;border-bottom:0;background:#f3f1ec;font-weight:800;cursor:pointer;margin-right:-1px}.adapterTab.active{background:#fff;border-top:3px solid #222;padding-top:0;position:relative;top:1px}.adapterTab:focus{outline:2px solid #7e9fc4;outline-offset:1px}.adapterPanels{max-width:1100px}.adapterPanel[hidden]{display:none}.adapterPanel .settingsGroup{max-width:100%;margin-bottom:0}.adapterPlaceholder{border:1px dashed #c6c1b8;background:#faf9f6;padding:14px;color:#666;margin-top:10px}

/* v2.1.4 Replay Retrieval & Annotation */
.replaySearchBar{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;max-width:980px}.replaySearchBar .wideInput{margin:0}.replaySearchBar button{min-width:94px;border:1px solid #aaa;background:#fff;font-weight:800}.searchStatus{margin:10px 0;color:#666;font-size:12px}.replaySearchResults{max-width:980px;border-top:1px solid var(--line)}.replaySearchResult{padding:12px 8px;border-bottom:1px solid var(--line)}.searchResultHead{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.searchResultHead>div{display:flex;flex-direction:column;gap:3px}.searchResultHead span{font-size:11px;color:#777}.searchResultHead button{border:1px solid #999;background:#fff;padding:6px 9px;font-size:10px;font-weight:900}.replaySearchResult p{margin:9px 0;line-height:1.45}

/* v2.3.7 guided tooltips + transactional call state */
.menuCheck{display:flex;align-items:center;gap:7px;padding:7px 10px;white-space:nowrap;font-size:12px;cursor:pointer}.menuCheck input{margin:0}
#directCall:disabled{opacity:.46;filter:saturate(.2);cursor:not-allowed}
.intelpakTooltip{position:fixed;z-index:10000;max-width:330px;padding:7px 9px;border:1px solid #777;background:#16171b;color:#fff;font-size:12px;line-height:1.35;box-shadow:0 5px 18px rgba(0,0,0,.24);pointer-events:none}
.tooltipsOff .intelpakTooltip{display:none!important}

/* v2.5.1 Intelligence Pack management and live composition */
.ipkManagerLegend{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 14px}.ipkManagerLegend button,.ipkStatus{font-size:10px;font-weight:900;letter-spacing:.06em;border:1px solid #bbb;border-radius:999px;padding:3px 7px}.ipkCard.activeIpk{border-left:4px solid #d28a18}.ipkCard.unavailable{opacity:.48;background:#f4f4f4}.ipkCardActions{display:flex;align-items:center;gap:8px;margin-top:9px}.ipkActivate{font-weight:800}.ipkActivate input{margin-right:5px}.ipkStatus.available{border-color:#777}.ipkStatus.development{border-style:dashed}.ipkPicker{position:relative;min-width:190px}.ipkPickerButton{width:100%;height:100%;min-height:34px;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background:#fff;border:1px solid var(--line);padding:0 28px 0 9px;position:relative}.ipkPickerButton:after{content:"⌄";position:absolute;right:9px}.ipkPickerMenu{position:absolute;z-index:60;top:calc(100% + 3px);left:0;min-width:330px;max-height:420px;overflow:auto;background:#fff;border:1px solid #aaa;box-shadow:0 8px 24px #0002;padding:7px}.ipkPickerGroup{font-size:10px;font-weight:900;letter-spacing:.08em;color:#666;padding:7px 5px 4px}.ipkChoice{display:grid;grid-template-columns:22px 1fr auto;align-items:center;gap:5px;width:100%;padding:6px 5px;border-radius:3px}.ipkChoice:hover{background:#f5f2e9}.ipkChoice label{overflow-wrap:anywhere}.ipkPrimary{font-size:10px;border:0;background:transparent;font-weight:900;cursor:pointer}.ipkPrimary.selected{color:#a96400}.ipkEmpty{padding:10px;color:#666;font-size:12px}.ipkManagerNote{font-size:11px;color:#666;margin-left:auto}.ipkCardTop{align-items:center}

.ipkManagerLegend button{background:#fff;cursor:pointer;color:#111}.ipkManagerLegend button:hover{background:#f5f2e9}.ipkManagerLegend button.active{background:#111217;color:#fff;border-color:#111217}.ipkManagerLegend button:focus-visible{outline:2px solid #d28a18;outline-offset:2px}

/* v2.6 Intelligence Pack metadata View */
.ipkViewAction{margin-left:auto;border:1px solid #8e8a82;background:#fff;padding:4px 10px;font-size:10px;font-weight:900;letter-spacing:.06em;cursor:pointer}.ipkViewAction:hover{background:#f5f2e9}.ipkViewPanel{width:min(820px,94vw)}.ipkViewGrid{display:grid;grid-template-columns:150px minmax(0,1fr);gap:8px 14px;margin:0}.ipkViewGrid dt{font-weight:900;color:#555}.ipkViewGrid dd{margin:0;overflow-wrap:anywhere;line-height:1.4}.ipkMetadataNote{margin-top:16px;padding:10px;border-left:4px solid #d28a18;background:#fff7e7;font-size:11px}.ipkViewLoading,.ipkViewError{font-size:12px}.ipkViewError{color:#9c2b20}

/* v2.6.1 customer IT provider configuration surfaces */
.configGrid{display:grid;grid-template-columns:repeat(2,minmax(220px,1fr));gap:8px 12px;margin:8px 0}.configGrid label{display:flex;flex-direction:column;gap:4px;font-size:11px;font-weight:800}.configGrid input{height:34px;padding:6px 8px;border:1px solid var(--line);background:#fafafa}.aiProviderGrid{display:grid;grid-template-columns:repeat(2,minmax(280px,1fr));gap:12px}.providerCard{border:1px solid var(--line);padding:12px;background:#fff}.providerCard h4{margin:0 0 8px}.providerCard p{font-size:11px;color:#666}.providerState{display:inline-block;padding:3px 6px;border:1px solid #bbb;border-radius:10px;font-size:9px;font-weight:900}.providerConfig{margin:10px 0;padding:10px;border:1px solid var(--line);background:#fff}

.providerCard>label{display:flex;flex-direction:column;gap:4px;font-size:11px;font-weight:800}.providerCard select,.configGrid select{height:34px;padding:6px 8px;border:1px solid var(--line);background:#fff}.configGrid input:not([readonly]){background:#fff}.optional{font-size:9px;font-weight:600;color:#777}.secureNote{margin-top:12px;padding:9px;border-left:3px solid #777;background:#f7f7f7}.providerCard .settingsActions{margin-top:9px;display:flex;gap:7px;align-items:center;flex-wrap:wrap}

/* v2.6.2 local video adapter */
.localCameraCard{border:1px solid var(--line);background:#fff;padding:12px;margin-top:10px}.localCameraCard h4{margin:0 0 10px}.localCameraCard .statusPill{display:inline-flex;align-items:center;min-height:28px;padding:0 9px;border:1px solid #aaa;border-radius:14px;font-size:11px;font-weight:800;background:#fff}.localCameraCard .providerActions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:10px}

/* v2.7.0 visual experience shell: mobile-first expert intelligence interface */
#experienceHeader{display:flex;background:#071015;color:#fff;border-bottom:1px solid #1b2630;padding:12px 18px;align-items:center;justify-content:space-between;gap:20px}.experienceBrand{display:none!important}.experienceHeaderTop{display:none!important}.experienceActions{display:grid;grid-template-columns:repeat(5,1fr);align-items:stretch;gap:6px}.experienceTab{min-width:0;width:100%;border:0;border-radius:12px;background:transparent;color:#d7dde2;padding:8px 12px;font-size:15px;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;box-sizing:border-box}.experienceTab:hover,.experienceTab.active{background:#13212b;color:#f5ae2a}.experienceIcon{display:block;font-size:22px;line-height:1.1;margin-bottom:4px}.settingsTab .experienceIcon{font-size:24px}.experienceSettingsGear{width:auto;height:auto;flex-basis:auto;font-size:inherit;background:transparent;border:0;border-radius:12px}
#coachSetupDialog{border:1px solid #777;padding:0;min-width:min(600px,92vw);box-shadow:0 12px 40px rgba(0,0,0,.25)}#coachSetupDialog::backdrop{background:rgba(0,0,0,.35)}.coachSetupPanel{margin:0}.coachSetupBody{padding:18px 22px}.coachSetupGrid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:4px}.coachSetupGrid label{display:flex;flex-direction:column;gap:6px;font-weight:700}.coachSetupGrid select{height:38px;border:1px solid var(--line);padding:7px;background:#fff;width:100%}.coachSetupActions{grid-column:1/-1}.coachModeDesc{margin:8px 0 0;font-size:12px;color:#666;line-height:1.5}#loadCoachIpk,#startPractice,#startReview{background:#1b6b3a;color:#fff;border:0;padding:10px 22px;font-size:13px;font-weight:800;letter-spacing:.08em;cursor:pointer;border-radius:4px}#loadCoachIpk:hover,#startPractice:hover,#startReview:hover{background:#155630}
.coachExperience{display:none;padding:0 14px 14px}.coachHero{max-width:834px;margin:0 auto;border-radius:16px;overflow:hidden;background:#111}.coachHero img{display:block;width:100%;height:auto}.coachChat{max-width:834px;margin:12px auto 0;display:grid;gap:6px}.chatBubble{max-width:75%;padding:10px 14px;border-radius:18px;font-size:16px;line-height:1.4;font-weight:400}.userBubble{justify-self:end;background:#007AFF;color:#ffffff;border-radius:18px;border-bottom-right-radius:4px}.coachBubble{justify-self:start;background:#e9e9eb;color:#000000;border-radius:18px;border-bottom-left-radius:4px;display:flex;gap:8px;align-items:flex-end}.coachAvatar{width:28px;height:28px;border-radius:50%;overflow:hidden;flex:0 0 28px}.coachAvatar img{width:100%;height:100%;object-fit:cover;object-position:55% 38%;transform:scale(2.5)}.coachComposer{display:grid;grid-template-columns:auto 1fr auto auto auto;gap:7px;align-items:center;border:1px solid #d9d3ca;border-radius:26px;padding:6px 8px;background:#ffffff}.coachComposer input{height:38px;border:0;background:transparent;color:#151515;font-size:17px;outline:0}.coachComposer input::placeholder{color:#aaa}.coachComposer button{width:38px;height:38px;border:0;border-radius:50%;background:transparent;color:#555;font-size:20px}.coachComposer .coachSend{background:#8b48f2;display:flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:50%;flex-shrink:0}
/* v3.0.4: mobile block: dark theme scoped to live experience only */

MOBILE-DISABLED */
@media(min-width:901px){#experienceHeader{display:flex;background:#111217}.experienceActions{width:100%;display:grid;grid-template-columns:repeat(5,1fr)}.coachExperience{display:grid;grid-template-columns:minmax(360px,834px);justify-content:center;padding-top:14px;background:#071015}#workspace{min-height:0}}

/* v2.7.2 production experience shell: the new Core UI is the product surface.
   Legacy live controls remain in the DOM for runtime compatibility, but never bleed
   into the Coaching experience. */
@media (min-width:901px){
  /* live view layout -- backgrounds stay beige/dark per element rules */
  body:has(#view-live.active) #app{width:min(100%,620px);min-height:100vh;margin:0 auto}
  
  body:has(#view-live.active) #experienceHeader{padding:10px 14px 8px;flex-direction:column;align-items:stretch;gap:6px}
  body:has(#view-live.active) .experienceActions{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}
  body:has(#view-live.active) .experienceTab{min-width:0;padding:10px 5px;font-size:15px}
  body:has(#view-live.active) .experienceIcon{font-size:25px}
  body:has(#view-live.active) #workspace{display:block}
  
  body:has(#view-live.active) #main{width:100%}
  body:has(#view-live.active) #view-live{display:block;height:auto;overflow:visible;background:#071015}
  body:has(#view-live.active) .coachExperience{display:block;width:100%;padding:0 18px 22px;background:#071015}
  body:has(#view-live.active) .coachHero{width:100%;max-width:none;margin:0;border-radius:18px}
  body:has(#view-live.active) .coachChat{width:100%;max-width:none;margin-top:14px}
  body:has(#view-live.active) .chatBubble{max-width:86%;font-size:16px}

}

MOBILE-DISABLED */

/* v2.7.3 unified phone surface: every primary Core view stays inside the same phone-width product shell. */
:root{--phone-width:620px;--phone-bg:#071015;--phone-panel:#0d171e;--phone-field:#111b22;--phone-line:#33414b;--phone-text:#eef2f5;--phone-muted:#aeb8bf;--phone-gold:#f5ae2a}
/* v3.0.8: desktop shell */
@media(min-width:901px){
  body{overflow:auto}
  #app{width:min(100%,var(--phone-width));min-height:100vh;margin:0 auto;background:#071015;border-left:1px solid #1b2a33;border-right:1px solid #1b2a33}
  
  #experienceHeader{display:flex!important;padding:10px 14px 8px;flex-direction:column;align-items:stretch;gap:6px}
  .experienceActions{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}
  .experienceTab{min-width:0;padding:10px 5px;font-size:15px}
  .experienceIcon{font-size:25px}
  #workspace{display:block}
  #nav{display:none!important}
  #main{width:100%}
}

/* REMOVED v3.0.3: was line 174, phone-shell override that broke settings panel */
/* REMOVED v3.0.3: was line 175, phone-shell override that broke settings panel */
/* REMOVED v3.0.3: was line 176, phone-shell override that broke settings panel */
.coachComposer{grid-template-columns:42px minmax(0,1fr) 42px 42px 42px}.coachComposer input{min-width:0;width:100%}.coachComposer .composerIcon{display:grid;place-items:center}.coachComposer .composerIcon svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.coachComposer .composerIcon.active{color:#f5ae2a;background:#14232d}.coachComposer .coachSend{display:flex;align-items:center;justify-content:center;width:42px;height:42px}.coachComposer:focus-within{border-color:#7d4bea;box-shadow:0 0 0 1px #7d4bea55}.coachAttachmentNote{font-size:11px;color:#9faab2;padding:0 8px}
/* REMOVED v3.0.3: was line 178, phone-shell override that broke settings panel */

/* v2.7.4 live phone experience */
.coachHero{position:relative;aspect-ratio:834/675}.coachHero>img,.coachHero>video{width:100%;height:100%;object-fit:cover;display:block}.coachHero>video[hidden],.coachHero>img[hidden]{display:none!important}.coachVideoStatus{position:absolute;left:12px;bottom:12px;padding:6px 9px;border-radius:8px;background:#071015cc;color:#fff;font-size:11px}.coachChat:has(.coachComposer:only-child){margin-top:12px}.coachBubble.pending{opacity:.72}.coachBubble.error{border:1px solid #7b3b3b}.coachComposer input{font-family:inherit}

/* v2.7.6 branding: logo row removed in v3.1.8: brand rules no longer needed */

/* ========================================================================== */
/* INTELPAK v2.7.6.3 MAIN INTERFACE                                           */
/* ========================================================================== */
/* OBJECT: Main Coaching experience surfaces.                                 */
.providerGrid.tavusGrid { grid-template-columns: 1fr 1fr; }

MOBILE-DISABLED */
/* Tavus configGrid 2-col: set via inline style in HTML: phone-shell overrides now removed in v3.0.3 */
[data-adapter-panel="tavus"] .configGrid label { font-size:11px; font-weight:800; display:flex; flex-direction:column; gap:3px; }
[data-adapter-panel="tavus"] .configGrid input,
[data-adapter-panel="tavus"] .configGrid select { height:32px; padding:4px 7px; }

MOBILE-DISABLED */
/* PURPOSE: Match images/interface/main_interface.png while keeping each       */
/*          surface live HTML so Tavus and dialogue remain interactive.        */
/* DEPENDENCY: This block intentionally overrides older coachHero/coachChat     */
/*             presentation rules without changing the existing Core engine.   */
.coachExperience {                                                              /* Main Coaching object: stack the three live surfaces vertically. */
    display: block;                                                              /* Surface layout: use normal vertical document flow. */
    width: 100%;                                                                 /* Surface width: consume the available Core experience width. */
    max-width: 903px;                                                            /* Template constraint: match the supplied 903px interface artwork. */
    margin: 0 auto;                                                              /* Interface placement: center the complete experience shell. */
    padding: 0 14px 18px;                                                       /* Interface breathing room: preserve dark frame around surfaces. */
    background: #071015;                                                        /* Interface background: dark coaching shell */
}
/* OBJECT: Tavus video surface.                                                */
/* PROPERTY: Video/splash viewport dimensions and clipping.                    */
/* PURPOSE: Reserve the top white template area for Tavus when video exists.   */
.coachHero {                                                                    /* Tavus viewport object: top surface in the Main Interface. */
    position: relative;                                                         /* Overlay anchor: contain splash and video status inside viewport. */
    width: 100%;                                                                /* Tavus viewport width: follow interface container. */
    aspect-ratio: 834 / 500;                                                    /* Tavus viewport proportion: approximate supplied top template area. */
    min-height: 280px;                                                          /* Desktop usability: retain meaningful video height on short windows. */
    margin: 0;                                                                  /* Surface spacing: top viewport starts immediately below navigation. */
    overflow: hidden;                                                           /* Video clipping: prevent stream/splash from escaping surface. */
    border-radius: 0;                                                           /* Template geometry: supplied surface has square corners. */
    background: #ffffff;                                                        /* No-stream fallback: preserve white Tavus surface under splash. */
}
.coachHero > video {                                                            /* Tavus stream object: live video fills reserved surface. */
    width: 100%;                                                                /* Video width: fill Tavus surface. */
    height: 100%;                                                               /* Video height: fill Tavus surface. */
    object-fit: cover;                                                          /* Video rendering: fill viewport without distorting source ratio. */
}
/* OBJECT: IntelPak no-video splash.                                           */
/* PROPERTY: Centered animated brand treatment inside Tavus surface.           */
/* PURPOSE: Give Core a deliberate ready state before Tavus/video connects.    */
.intelpakSplash {                                                               /* Splash object: visible whenever no live video stream is present. */
    position: absolute;                                                         /* Splash placement: occupy entire Tavus viewport. */
    inset: 0;                                                                   /* Splash bounds: pin to all four viewport edges. */
    display: flex;                                                              /* Splash layout: vertically organize logo and status text. */
    flex-direction: column;                                                     /* Splash flow: place status beneath IntelPak logo. */
    align-items: center;                                                        /* Splash alignment: center content horizontally. */
    justify-content: center;                                                    /* Splash alignment: center content vertically. */
    gap: 18px;                                                                  /* Splash spacing: separate logo from ready-state text. */
    background: radial-gradient(circle at center,#102936 0%,#071015 68%);      /* Splash appearance: subtle IntelPak dark luminous field. */
    overflow: hidden;                                                           /* Animation containment: keep pulse inside Tavus surface. */
}
.intelpakSplash::before {                                                       /* Splash pulse object: ambient loading/ready animation. */
    content: "";                                                               /* Pulse content: decorative only, no semantic text. */
    position: absolute;                                                         /* Pulse placement: center independently of logo flow. */
    width: 42%;                                                                 /* Pulse diameter: broad enough to frame the brand. */
    aspect-ratio: 1;                                                            /* Pulse geometry: keep animation perfectly circular. */
    border: 1px solid rgba(76,220,238,.34);                                    /* Pulse edge: use restrained IntelPak cyan accent. */
    border-radius: 50%;                                                         /* Pulse shape: convert square box to circle. */
    animation: intelpakPulse 2.4s ease-out infinite;                            /* Pulse behavior: continuous quiet ready-state motion. */
}
.intelpakSplash img {                                                           /* Splash logo object: Expert Intelligence brand supplied by user. */
    position: relative;                                                         /* Logo stacking: render above animated pulse. */
    z-index: 1;                                                                 /* Logo visibility: keep brand above decorative animation. */
    width: min(62%,335px);                                                      /* Logo size: preserve supplied artwork without oversized scaling. */
    height: auto;                                                               /* Logo height: derive from native aspect ratio. */
    object-fit: contain;                                                        /* Logo rendering: never crop supplied transparent artwork. */
}
.intelpakSplash span {                                                          /* Splash status object: ready-state caption. */
    position: relative;                                                         /* Caption stacking: render above animated pulse. */
    z-index: 1;                                                                 /* Caption visibility: keep text above decorative animation. */
    color: #b9d3df;                                                             /* Caption color: low-key cool gray-blue. */
    font-size: 12px;                                                            /* Caption size: status information, subordinate to logo. */
    letter-spacing: .22em;                                                      /* Caption tracking: reinforce technical brand treatment. */
}
.intelpakSplash[hidden] { display: none !important; }                           /* Splash state: Tavus stream must fully replace splash when active. */
@keyframes intelpakPulse {                                                      /* Splash animation contract: visual readiness only, no functional state. */
    0% { transform: scale(.72); opacity: .75; }                                 /* Pulse start: compact and visible behind brand. */
    100% { transform: scale(1.55); opacity: 0; }                                /* Pulse end: expand and fade before repeating. */
}
/* OBJECT: Coach comment surface.                                              */
/* PROPERTY: Dedicated second surface immediately below Tavus viewport.        */
/* PURPOSE: Reserve the supplied template's second white panel for live coach   */
/*          comments, separate from the chronological dialogue stream.          */
.coachCommentArea {                                                             /* Coach comment object: second Main Interface surface. */
    width: 100%;                                                                /* Comment width: align exactly with Tavus surface. */
    min-height: 190px;                                                          /* Comment capacity: preserve dedicated coaching space. */
    margin-top: 18px;                                                           /* Surface separation: reproduce dark divider in template. */
    padding: 20px;                                                              /* Comment inset: keep future coaching text away from edges. */
    box-sizing: border-box;                                                     /* Comment sizing: include padding inside declared dimensions. */
    background: #ffffff;                                                        /* Comment surface: white */
    color: #111111;                                                             /* Comment text: dark on white */
    font-size: 16px;                                                            /* Comment text size: matches bubbles and composer. */
    overflow-y: auto;                                                           /* Comment overflow: allow long coaching guidance to remain accessible. */
}
.coachCommentPlaceholder {                                                      /* Comment placeholder object: identifies reserved surface before content. */
    color: #aaaaaa;                                                             /* Placeholder color: muted on white */
    font-size: 16px;                                                            /* Placeholder size: matches bubble and composer text. */
}
/* OBJECT: Dynamic dialogue surface.                                           */
/* PROPERTY: Scrollable chronological conversation below coach comments.       */
/* PURPOSE: Keep user and coach turns available without growing the page.      */
.coachDialogue {                                                                /* Dialogue object: scroll container for conversation history. */
    width: 100%;                                                                /* Dialogue width: align with the two surfaces above. */
    height: clamp(330px,38vh,560px);                                            /* Dialogue height: stable viewport with responsive vertical capacity. */
    margin-top: 12px;                                                           /* Dialogue separation: preserve dark divider under comment surface. */
    overflow-y: auto;                                                           /* Browser behavior: provide vertical scrolling when history exceeds height. */
    overscroll-behavior: contain;                                               /* Scroll containment: prevent dialogue wheel/touch from moving whole app first. */
    scrollbar-gutter: stable;                                                   /* Desktop layout: reserve scrollbar space to avoid bubble-width jumping. */
    background: #ffffff;                                                        /* Dialogue background: white iMessage-style */
}
.coachChat {                                                                    /* Dialogue content object: bubbles plus fixed-order composer. */
    width: 100%;                                                                /* Dialogue content width: fill scroll surface. */
    max-width: none;                                                            /* Dialogue constraint: remove legacy 834px cap inside 903px shell. */
    margin: 0;                                                                  /* Dialogue alignment: start at top of scroll surface. */
    padding: 12px 6px 8px;                                                     /* Dialogue inset: protect bubbles from shell and scrollbar edges. */
    box-sizing: border-box;                                                     /* Dialogue sizing: keep padding within surface width. */
}
.coachAvatar {                                                                  /* Coach vignette object: portrait preceding every coach reply. */
    width: 44px;                                                                /* Vignette width: match compact dialogue identity treatment. */
    height: 44px;                                                               /* Vignette height: keep avatar circular and consistent. */
    border-radius: 50%;                                                         /* Vignette shape: display generated transparent portrait as circle. */
    overflow: hidden;                                                           /* Vignette clipping: prevent image pixels outside circular boundary. */
    flex: 0 0 44px;                                                             /* Vignette layout: never shrink when reply text is long. */
}
.coachAvatar img {                                                              /* Coach portrait object: already-cropped -vignette asset. */
    width: 100%;                                                                /* Portrait width: fill vignette frame. */
    height: 100%;                                                               /* Portrait height: fill vignette frame. */
    object-fit: contain;                                                        /* Portrait rendering: preserve prepared vignette without recropping. */
    object-position: center;                                                    /* Portrait alignment: center prepared coach face. */
    transform: none;                                                            /* Portrait protection: disable legacy 2.5x zoom used on iPhone screenshots. */
}
/* OBJECT: Desktop dialogue scrollbar.                                         */
/* PROPERTY: Visible browser scroll affordance.                                */
/* PURPOSE: Desktop users need an explicit vertical scroll indicator.          */
@media (hover:hover) and (pointer:fine) {                                       /* Device rule: apply only where mouse/trackpad-style pointer is detected. */
    .coachDialogue { scrollbar-width: auto; }                                  /* Firefox scrollbar: keep standard visible browser control. */
    .coachDialogue::-webkit-scrollbar { width: 12px; }                          /* Chromium scrollbar: allocate clear vertical scroll track. */
}
/* OBJECT: Mobile dialogue scrolling.                                          */
/* PROPERTY: Touch scrolling with hidden visual scrollbar.                     */
/* PURPOSE: Preserve finger-driven native scrolling without wasting phone width. */

MOBILE-DISABLED */

/* ========================================================================== */
/* IntelPak Core v2.8.0 - responsive experience/navigation/session controls. */
/* ========================================================================== */
/* OBJECT: Experience header top row.                                         */
/* PROPERTY: Settings gear is now the 5th experienceTab: inherits all tab styles. */
/* PURPOSE: Single-row nav: Coaching, Practice, Library, Insights, Settings.   */
.experienceHeaderTop { display:none !important; }
.experienceSettingsGear { flex:unset; width:auto; height:auto; border:0; background:transparent; color:inherit; font-size:inherit; line-height:inherit; border-radius:12px; }
.experienceSettingsGear:hover { background:#13212b; color:#f5ae2a; }
/* OBJECT: Coaching navigation symbol.                                        */
/* PROPERTY: Distinct compact conversation target, not the legacy dotted ring. */
/* PURPOSE: Visually separate Coaching from status/loading indicators.         */
.coachingIcon { font-size:20px; }
/* OBJECT: Tavus-surface microphone meter.                                    */
/* PROPERTY: Five live level bars anchored over lower-right of video surface.  */
/* PURPOSE: Confirm actual microphone energy without occupying dialogue space. */
.coachMicMeter { position:absolute; right:14px; bottom:14px; height:28px; min-width:48px; padding:5px 7px; display:flex; align-items:flex-end; gap:3px; border-radius:10px; background:#071015aa; z-index:4; opacity:.72; }
.coachMicMeter i { display:block; width:4px; height:5px; min-height:4px; max-height:18px; border-radius:3px; background:#b9d3df; transition:height .08s linear,background .12s linear; }
.coachMicMeter.live i { background:#f5ae2a; }
/* OBJECT: Dynamic dialogue surface.                                          */
/* PROPERTY: Flexible height inside the visible Core viewport.                 */
/* PURPOSE: Conversation scrolls internally instead of pushing controls away.  */
.coachExperience { min-height:0; }
.coachDialogue { height:auto; min-height:150px; max-height:none; flex:1 1 240px; overflow-y:auto; }
.coachChat { min-height:100%; display:flex; flex-direction:column; }
.coachComposer { position:sticky; bottom:0; z-index:5; margin-top:auto; }
.coachAttachmentNote { cursor:pointer; text-decoration:none; }
.coachAttachmentNote:hover { text-decoration:underline; }
/* OBJECT: Active-document privacy LED.                                       */
/* PROPERTY: Green/amber/red status light with hover/tap tooltip semantics.    */
/* PURPOSE: Communicate Privacy Wall disposition without interface clutter.    */
.documentRow { display:grid; grid-template-columns:auto minmax(0,1fr) auto; gap:10px; align-items:center; padding:10px 4px; border-bottom:1px solid #33414b; }
.privacyLed { width:11px; height:11px; border-radius:50%; border:0; padding:0; box-shadow:0 0 7px currentColor; }
.privacyLed.green { background:#38b66a; color:#38b66a; }.privacyLed.amber { background:#e7a82b; color:#e7a82b; }.privacyLed.red { background:#d94b45; color:#d94b45; }
.documentRemove { border:1px solid #56636c; background:transparent; color:#eef2f5; border-radius:7px; padding:5px 8px; }
.activeDocumentsPanel { color:#eef2f5; background:#0d171e; }
/* OBJECT: Bottom experience navigation.                                      */
/* PROPERTY: Persistent five-action mobile navigation below the dialogue.      */
/* PURPOSE: Keep Home/History/My IPKs/Profile/More reachable at all view sizes. */
.experienceBottomNav { display:none; grid-template-columns:repeat(5,1fr); gap:2px; width:100%; background:#071015; border-top:1px solid #24313a; padding:6px 8px max(6px,env(safe-area-inset-bottom)); }
.experienceBottomNav button { border:0; background:transparent; color:#c5cdd3; padding:8px 12px; font-size:13px; width:100%; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; box-sizing:border-box; }
.experienceBottomNav button span { display:block; font-size:22px; line-height:1.1; margin-bottom:3px; }
.experienceBottomNav button.active { color:#f5ae2a; }
/* OBJECT: Mobile Core viewport.                                              */
/* PROPERTY: Dynamic viewport-height layout with internal dialogue scrolling.  */
/* PURPOSE: Safari/Chrome browser chrome must not make lower controls unreachable. */

MOBILE-DISABLED */

/* ========================================================================== */
/* INTELPAK CORE v2.8.0 - TEST-CYCLE CORRECTIONS                              */
/* ========================================================================== */
/* OBJECT: Primary experience navigation icons.                               */
/* PROPERTY: Standard outlined coaching, practice and library pictograms.     */
/* PURPOSE: Restore the clearer icon family approved in the prior interface.  */
.experienceIcon svg { width:26px; height:26px; display:block; margin:0 auto 3px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.experienceIcon svg circle { fill:currentColor; stroke:none; }
/* OBJECT: Settings control. PROPERTY: Standard outlined gear symbol. PURPOSE: Use a conventional Settings affordance, not a stylized glyph. */
.experienceSettingsGear svg { width:30px; height:30px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
/* OBJECT: Camera detection status pill. PROPERTY: Explicit foreground/background contrast. PURPOSE: DETECTED/NO CAMERA must remain readable regardless of inherited theme colors. WARNING: Do not set this text to white on the white status background. */
#localCameraStatus.statusPill { background:#fff!important; color:#111!important; border:1px solid #d7d7d7!important; }
/* OBJECT: Camera action row. PROPERTY: Detect -> status -> save visual order. PURPOSE: Match the user's camera workflow. */
.localCameraCard .providerActions { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
/* OBJECT: Audio Adapter test meter. PROPERTY: Five live bars beside TEST MICROPHONE. PURPOSE: Verify actual selected microphone energy. */
.settingsMicMeter { height:30px; min-width:50px; padding:5px 7px; display:flex; align-items:flex-end; gap:3px; border-radius:9px; background:#071015; border:1px solid #33414b; }
.settingsMicMeter i { display:block; width:4px; height:5px; min-height:4px; max-height:18px; border-radius:3px; background:#f5ae2a; transition:height .08s linear; }
/* OBJECT: After Action Replay clean event cards. PROPERTY: Dark text on white event background. PURPOSE: Prevent inherited dark-theme white text from disappearing on white cards. WARNING: Keep foreground explicit when event background is white. */
#view-conversations .aarCleanEvent { background:#fff!important; color:#111!important; }
#view-conversations .aarCleanEvent p,#view-conversations .aarCleanEvent strong { color:#111!important; }
#view-conversations .aarCleanEvent .meta { color:#666!important; }
/* OBJECT: Dynamic dialogue. PROPERTY: Native wheel/touch scrolling inside dialogue surface. PURPOSE: Mouse wheel must scroll the conversation without moving or losing fixed controls. */
.coachDialogue { overscroll-behavior:contain; touch-action:pan-y; }
/* OBJECT: Narrow-browser/mobile application frame. PROPERTY: Bottom navigation is permanently reserved below the flexible dialogue. PURPOSE: Dialogue surrenders height before Home/History/My IPKs/Profile/More can disappear. */

MOBILE-DISABLED */

/* ========================================================================== */
/* IntelPak Core v2.9.0 - verified interface correction layer.                */
/* ========================================================================== */

/* OBJECT: Live coaching experience shell.
   PROPERTY: Finite viewport layout with a flexible dialogue row.
   PURPOSE: The dialogue must surrender height before the composer or bottom navigation can leave the viewport.
   WARNING: Do not restore page-level scrolling as a substitute for dialogue scrolling. */
#view-live.active {                                                           /* Live view: establish a bounded vertical application surface. */
    display: flex;                                                            /* Layout model: stack experience and persistent lower navigation vertically. */
    flex-direction: column;                                                   /* Flow direction: preserve Tavus, comments, dialogue, composer, then navigation. */
    min-height: 0;                                                            /* Flex dependency: allow descendants to shrink instead of overflowing the viewport. */
}
#coachExperience {                                                            /* Coaching shell: contain all runtime surfaces above bottom navigation. */
    display: flex;                                                            /* Layout model: make dialogue the only flexible vertical region. */
    flex-direction: column;                                                   /* Surface order: Tavus, comment, dialogue, composer. */
    min-height: 0;                                                            /* Overflow dependency: permit dialogue to become scrollable. */
    overflow: hidden;                                                         /* Boundary: prevent coach surfaces from pushing persistent navigation away. */
}
.coachDialogue {                                                              /* Dialogue pane: conversation bubbles only, never the composer. */
    flex: 1 1 120px !important;                                               /* Height policy: consume remaining room and yield space to fixed controls first. */
    min-height: 72px !important;                                              /* Usability floor: retain a small readable conversation area on short viewports. */
    overflow-y: auto !important;                                              /* Desktop behavior: native browser mouse-wheel scrolling over the dialogue pane. */
    overflow-x: hidden !important;                                            /* Horizontal behavior: prevent bubble width from creating sideways scroll. */
    overscroll-behavior: contain;                                             /* Scroll boundary: keep wheel/touch motion inside dialogue until its edge. */
    touch-action: pan-y;                                                      /* Mobile behavior: permit native one-finger vertical scrolling. */
    pointer-events: auto;                                                     /* Input dependency: dialogue itself must receive pointer and wheel targeting. */
}
.coachChat {                                                                  /* Dialogue content: bubbles only after v2.9 composer separation. */
    min-height: max-content;                                                  /* Scroll dependency: preserve full bubble height so the parent has real overflow. */
}
.coachComposer {                                                              /* Message composer: permanent runtime control below the scroll pane. */
    flex: 0 0 auto;                                                           /* Persistence: never allow dialogue growth to consume composer height. */
    position: relative;                                                       /* Layering: keep composer above dialogue without removing it from normal flow. */
    z-index: 15;                                                              /* Layer order: protect controls from any dialogue overlay. */
}
.experienceBottomNav {                                                        /* Persistent navigation: Home, History, My IPKs, Profile, More. */
    display: grid !important;                                                 /* Visibility: navigation is required on desktop and mobile, not mobile-only. */
    grid-template-columns: repeat(5, minmax(0, 1fr));                          /* Geometry: reserve equal permanent space for all five standard actions. */
    flex: 0 0 auto;                                                           /* Persistence: dialogue must shrink before navigation can move or disappear. */
    position: relative;                                                       /* Flow: remain immediately below the composer/experience shell. */
    z-index: 20;                                                              /* Layer order: keep navigation above flexible dialogue content. */
}

/* OBJECT: Active Session Documents modal.
   PROPERTY: Explicit foreground colors on white modal surfaces.
   PURPOSE: Prevent inherited dark-theme white text from becoming white-on-white.
   WARNING: Keep these colors explicit whenever global dialog/theme colors change. */
#activeDocumentsDialog .activeDocumentsPanel,
#activeDocumentsDialog .aboutBody,
#activeDocumentsDialog .documentRow { color: #111217 !important; }            /* Modal text: force readable dark foreground on white document surfaces. */
#activeDocumentsDialog .documentRow span { color: #111217 !important; }       /* Filename text: never inherit the application's light-on-dark foreground. */
#activeDocumentsDialog .documentRemove { color: #111217 !important; }         /* Remove action: preserve readable label against its light control surface. */

/* OBJECT: Intelligence Pack category tabs.
   PROPERTY: Left inset before the first ENTERPRISES tab.
   PURPOSE: Keep the category row from beginning flush against the library container edge. */
.ipkEditionTabs { padding-left: 14px !important; box-sizing: border-box; }      /* Category inset: provide deliberate breathing room before ENTERPRISES. */

/* ========================================================================== */
/* INTELPAK CORE v2.9.1 - DESKTOP CHROME 100% REFERENCE GEOMETRY              */
/* ========================================================================== */

/* OBJECT: Desktop Core application shell.
   PROPERTY: Browser-viewport bounded height at normal 100% Chrome zoom.
   PURPOSE: Keep the complete working surface visible without page scrolling.
   WARNING: Desktop is the reference surface for this release. Do not use browser zoom or transform scaling to make the interface fit. */
@media (min-width: 901px) {
    body:has(#view-live.active) {                                              /* Live desktop page: bind the product to the browser viewport. */
        height: 100dvh;                                                       /* Viewport height: follow the actual visible Chrome content area. */
        min-height: 0;                                                        /* Shrink policy: permit the application shell to fit short desktop windows. */
        overflow: hidden;                                                     /* Page scroll: forbidden during normal Coaching operation. */
    }
    body:has(#view-live.active) #app {                                        /* Desktop product frame: compact centered Core surface. */
        width: min(100%, 560px);                                              /* Desktop width: reduce the oversized phone-mockup presentation. */
        height: 100dvh;                                                       /* Frame height: never exceed the visible Chrome viewport. */
        min-height: 0;                                                        /* Flex dependency: allow internal dialogue to surrender height. */
        overflow: hidden;                                                     /* Boundary: no outer-page overflow may hide bottom controls. */
    }
    body:has(#view-live.active) #experienceHeader {                           /* Desktop header: five primary actions in one row. */
        flex: 0 0 auto;                                                       /* Header persistence: remain visible but never consume flexible dialogue room. */
        padding: 8px 16px 7px;                                               /* Header density: compact the previously oversized top area. */
        gap: 5px;                                                             /* Header spacing: keep navigation visually related. */
    }
    body:has(#view-live.active) .experienceActions {                          /* Primary desktop navigation: Coaching, Practice, Library, Insights, Settings. */
        display: grid;                                                        /* Layout: equal-width five-column row. */
        grid-template-columns: repeat(5, 1fr);                               /* Columns: one per tab including Settings. */
        gap: 4px;                                                             /* Navigation spacing: compact five actions into one shallow row. */
    }
    body:has(#view-live.active) .experienceTab {                              /* Primary action button: compact desktop height. */
        padding: 4px 3px;                                                     /* Button padding: reduce header height while preserving target width. */
        font-size: 12px;                                                      /* Label size: readable at 100% Chrome without phone-scale enlargement. */
        border-radius: 9px;                                                   /* Button shape: preserve existing visual language at smaller scale. */
    }
    body:has(#view-live.active) .experienceIcon svg {                         /* Navigation glyph: reduce legacy phone-scale icon. */
        width: 20px;                                                          /* Icon width: compact desktop toolbar scale. */
        height: 20px;                                                         /* Icon height: compact desktop toolbar scale. */
        margin-bottom: 1px;                                                   /* Icon-label gap: avoid unnecessary vertical expansion. */
    }
    body:has(#view-live.active) .experienceIcon {                             /* Text-based Insights glyph: match SVG navigation icons. */
        font-size: 20px;                                                      /* Glyph size: align Insights with the other compact icons. */
        margin-bottom: 1px;                                                   /* Glyph spacing: align labels across all four actions. */
    }
    body:has(#view-live.active) #workspace,                                   /* Workspace: consume only the viewport remaining below the header. */
    body:has(#view-live.active) #main,                                        /* Main region: pass finite height down to the live view. */
    body:has(#view-live.active) #view-live.active {                           /* Live view: reserve permanent bottom navigation inside viewport. */
        flex: 1 1 0;                                                         /* Height allocation: take remaining space and permit shrinking. */
        min-height: 0;                                                        /* Overflow dependency: required for internal dialogue scrolling. */
        height: auto !important;                                              /* Legacy override: remove auto-content page growth. */
        overflow: hidden !important;                                          /* View boundary: bottom controls may not be pushed outside viewport. */
    }
    body:has(#view-live.active) #workspace {                                  /* Workspace flow: restore flex sizing instead of legacy block growth. */
        display: flex;                                                        /* Layout model: propagate finite height into main/live descendants. */
    }
    body:has(#view-live.active) #main {                                       /* Main column: finite-height live experience host. */
        display: flex;                                                        /* Layout model: allow active view to consume remaining workspace height. */
        flex-direction: column;                                               /* Flow direction: active view fills vertically. */
    }
    body:has(#view-live.active) #view-live.active {                           /* Live desktop view: coaching shell plus permanent bottom navigation. */
        display: grid !important;                                             /* Layout model: protect navigation as a dedicated final row. */
        grid-template-rows: minmax(0, 1fr) auto !important;                   /* Rows: flexible coaching experience, then fixed bottom navigation. */
    }
    body:has(#view-live.active) #coachExperience {                            /* Coaching runtime: Tavus, comments, dialogue, composer. */
        display: flex !important;                                             /* Layout model: stack runtime surfaces with dialogue as flex region. */
        flex-direction: column;                                               /* Surface order: video, comment, dialogue, composer. */
        width: 100%;                                                          /* Runtime width: fill compact desktop product frame. */
        height: 100%;                                                         /* Runtime height: occupy only the protected live-view row. */
        min-height: 0;                                                        /* Shrink policy: dialogue yields before composer/navigation disappear. */
        padding: 0 14px 6px;                                                  /* Runtime inset: retain side breathing room with minimal bottom waste. */
        overflow: hidden;                                                     /* Runtime boundary: no surface may push controls out of the viewport. */
    }
    body:has(#view-live.active) .coachHero {                                  /* Tavus surface: compact desktop video window. */
        flex: 0 1 220px;                                                      /* Video height: target a useful but non-dominant talking-head surface. */
        width: 100%;                                                          /* Video width: align with comments, dialogue and composer. */
        min-height: 150px;                                                    /* Short-window floor: retain a usable Tavus image. */
        max-height: 220px;                                                    /* Desktop ceiling: prevent video from consuming the application. */
        aspect-ratio: auto;                                                   /* Height authority: desktop viewport budget controls geometry, not legacy phone ratio. */
        border-radius: 12px;                                                  /* Surface shape: preserve current visual language at compact scale. */
    }
    body:has(#view-live.active) .intelpakSplash {                             /* No-video state: fit branding to the reduced Tavus surface. */
        gap: 10px;                                                            /* Splash spacing: compact logo/status separation. */
    }
    body:has(#view-live.active) .intelpakSplash img {                         /* Splash brand: scale with smaller desktop video window. */
        width: min(56%, 250px);                                               /* Logo width: prominent but no longer oversized. */
    }
    body:has(#view-live.active) .intelpakSplash span {                        /* Splash ready caption: compact supporting status. */
        font-size: 10px;                                                      /* Caption size: subordinate to brand and conserve height. */
    }
    body:has(#view-live.active) .coachCommentArea {                           /* Coach Comment surface: concise live guidance panel. */
        flex: 0 1 96px;                                                       /* Comment height: reserve a shallow useful panel instead of 190px. */
        min-height: 72px;                                                     /* Comment floor: preserve readability on short desktop windows. */
        max-height: 110px;                                                    /* Comment ceiling: long coaching scrolls internally instead of growing page. */
        margin-top: 7px;                                                      /* Surface separation: retain dark divider without wasting space. */
        padding: 10px 12px;                                                   /* Comment inset: compact desktop reading space. */
        overflow-y: auto;                                                     /* Long guidance: scroll inside the comment surface. */
    }
    body:has(#view-live.active) .coachDialogue {                              /* Dialogue surface: only elastic vertical region. */
        flex: 1 1 76px !important;                                            /* Dialogue allocation: reduced basis to absorb taller bottom nav. */
        min-height: 44px !important;                                          /* Dialogue floor: reduced floor to give bottom nav room to grow. */
        margin-top: 6px;                                                      /* Surface separation: compact gap below Coach Comment. */
        overflow-y: auto !important;                                          /* Desktop interaction: native wheel scrolling over conversation history. */
    }
    body:has(#view-live.active) .coachChat {                                  /* Dialogue contents: remove inherited spacing that wastes viewport height. */
        margin-top: 0;                                                        /* Content start: dialogue owns its own external separation. */
        padding: 5px 3px;                                                     /* Content inset: compact bubbles while preserving readability. */
    }
    body:has(#view-live.active) .coachComposer {                              /* Composer: protected runtime input immediately above bottom navigation. */
        flex: 0 0 auto;                                                       /* Persistence: never surrender composer to video/comment growth. */
        margin-top: 6px;                                                      /* Separation: small gap after dialogue. */
        padding: 4px 6px;                                                     /* Composer density: fit desktop viewport at 100% Chrome. */
    }
    body:has(#view-live.active) .coachComposer input {                        /* Message field: compact desktop control. */
        height: 32px;                                                         /* Field height: standard desktop input scale. */
        font-size: 16px;                                                      /* Input text: readable at native browser zoom. */
    }
    body:has(#view-live.active) .coachComposer button {                       /* Composer icons: compact desktop runtime controls. */
        width: 32px;                                                          /* Control width: reduce legacy phone-sized circles. */
        height: 32px;                                                         /* Control height: align with message field. */
    }
    body:has(#view-live.active) .experienceBottomNav {                        /* Permanent bottom navigation: same height as top nav. */
        display: grid !important;                                             /* Visibility: Home, History, My IPKs, Profile and More always present. */
        padding: 4px 7px 5px;                                                 /* Navigation density: match top nav vertical footprint. */
    }
    body:has(#view-live.active) .experienceBottomNav button {                 /* Bottom action: identical scale to top experienceTab. */
        padding: 4px 3px;                                                     /* Button padding: match .experienceTab desktop padding exactly. */
        font-size: 12px;                                                      /* Label size: match top nav 12px label. */
    }
    body:has(#view-live.active) .experienceBottomNav button span {            /* Bottom action glyph: match top nav icon size. */
        font-size: 20px;                                                      /* Glyph size: match .experienceIcon desktop 20px exactly. */
        margin-bottom: 1px;                                                   /* Glyph-label spacing: match top nav. */
    }
}

/* IntelPak Core v3.7.1 navigation correction.
   Icons are always visible. Only the selected destination uses IntelPak orange. */
.experienceTab,
.experienceTab:link,
.experienceTab:visited {
  color:#d7dde2 !important;
}
.experienceTab:hover {
  background:#13212b;
  color:#ffffff !important;
}
.experienceTab.active,
.experienceTab.active:hover {
  background:#13212b;
  color:#f5ae2a !important;
}
.experienceIcon {
  display:flex !important;
  align-items:center;
  justify-content:center;
  min-height:26px;
  color:inherit;
}
.experienceIcon svg {
  display:block !important;
  width:24px !important;
  height:24px !important;
  margin:0 auto 3px !important;
  visibility:visible !important;
  opacity:1 !important;
  fill:none !important;
  stroke:currentColor !important;
  stroke-width:1.8 !important;
  stroke-linecap:round;
  stroke-linejoin:round;
}

/* IntelPak Core v3.7.2: force top-nav icon visibility on dark navigation. */
.experienceTab:not(.active) .experienceIcon,
.experienceTab:not(.active) .experienceIcon svg {
  color:#f4f7f9 !important;
  stroke:#f4f7f9 !important;
}
.experienceTab.active .experienceIcon,
.experienceTab.active .experienceIcon svg {
  color:#f5ae2a !important;
  stroke:#f5ae2a !important;
}
.experienceTab .experienceIcon svg path,
.experienceTab .experienceIcon svg line,
.experienceTab .experienceIcon svg polyline,
.experienceTab .experienceIcon svg circle {
  stroke:currentColor !important;
}

/* v3.7.3 restored text conversation bubble */
.restoredUserMessage{display:flex;justify-content:flex-end;margin:10px 12px;}
.restoredUserMessage .userBubble{max-width:78%;padding:10px 13px;border-radius:14px;background:#172a38;color:#fff;line-height:1.35;white-space:pre-wrap;}

/* IntelPak Core v3.7.5: conversation grows upward while composer remains fixed below. */
.coachChat{
  overflow-y:auto !important;
  scroll-behavior:smooth;
}
.coachChat .coachComposer{
  position:sticky;
  bottom:0;
  z-index:5;
}
.coachBubble.error{
  opacity:.82;
}

/* ========================================================================== */
/* IntelPak Core v3.7.14 - unified product width + profile correction          */
/* ========================================================================== */
/* Keep every primary workspace inside the same compact Core frame as Coaching. */
@media (min-width:901px){
  body:not(:has(#view-live.active)){overflow:hidden;background:#a8a7a4;}
  body:not(:has(#view-live.active)) #app{width:min(100%,560px)!important;height:100dvh!important;min-height:0!important;margin:0 auto!important;overflow:hidden!important;background:#071015;border-left:1px solid #1b2a33;border-right:1px solid #1b2a33;}
  body:not(:has(#view-live.active)) #workspace,body:not(:has(#view-live.active)) #main{min-height:0;height:100%;overflow:hidden;}
  body:not(:has(#view-live.active)) .view.active{height:100%;min-height:0;overflow:auto;}
  body:not(:has(#view-live.active)) .catalogGrid{grid-template-columns:1fr;}
  body:not(:has(#view-live.active)) .practiceSetup{grid-template-columns:minmax(0,1fr) minmax(150px,.42fr);}
  body:not(:has(#view-live.active)) .conversationGrid{grid-template-columns:165px minmax(0,1fr);}
}
/* Select Your Coach must never be wider than the Core product frame. */
#coachSetupDialog{width:min(540px,calc(100vw - 20px))!important;max-width:540px!important;min-width:0!important;}
#coachSetupDialog .coachSetupPanel{width:100%;min-width:0;}
/* Four unique bottom actions after removing duplicate My IPKs/Library. */
.experienceBottomNav{grid-template-columns:repeat(4,1fr)!important;}
/* Profile is a real local account surface, not an empty placeholder. */
.profileGrid{display:grid;grid-template-columns:1fr 1fr;gap:12px 14px;margin-top:14px;}
.profileGrid label{display:flex;flex-direction:column;gap:5px;font-weight:700;color:#222;}
.profileGrid input{width:100%;height:36px;border:1px solid #c9c4bb;background:#fff;color:#111;padding:7px 9px;}
.profileIntro{margin-top:0;color:#555;}
.profileSaved{min-height:16px;margin:10px 0 0;color:#1b6b3a;font-weight:700;font-size:12px;}

/* ========================================================================== */
/* IntelPak Core v3.7.15 - coaching proportions + persistent runtime chrome    */
/* ========================================================================== */
/* Primary workspaces now share the same persistent message composer and lower
   navigation. The active panel scrolls above them instead of replacing them. */
#main{
  display:flex;
  flex-direction:column;
  min-height:0;
  overflow:hidden;
}
#main > .view.active{
  flex:1 1 auto;
  min-height:0;
  overflow-y:auto;
  overflow-x:hidden;
}
#main > .coachComposer{
  flex:0 0 auto;
  width:calc(100% - 20px);
  margin:6px 10px 0;
  box-sizing:border-box;
}
#main > .experienceBottomNav{
  flex:0 0 auto;
  width:100%;
}
/* Coaching keeps its own inner surfaces bounded while the shared controls stay
   fixed below the live workspace. */
#view-live.active{
  flex:1 1 auto;
  min-height:0;
  overflow:hidden!important;
}
#view-live.active #coachExperience{
  height:100%!important;
  min-height:0!important;
}
/* Requested 30% rebalance: Coach Comments gains 30%; conversation gives up 30%.
   Both panes retain independent vertical scrollbars. */
@media (min-width:901px){
  body:has(#view-live.active) .coachCommentArea{
    flex:0 0 125px!important;
    min-height:94px!important;
    max-height:143px!important;
    overflow-y:scroll!important;
    scrollbar-gutter:stable;
  }
  body:has(#view-live.active) .coachDialogue{
    flex:1 1 53px!important;
    min-height:31px!important;
    overflow-y:scroll!important;
    scrollbar-gutter:stable;
  }
  body:not(:has(#view-live.active)) #main{
    display:flex!important;
    flex-direction:column!important;
    height:100%!important;
    min-height:0!important;
    overflow:hidden!important;
  }
  body:not(:has(#view-live.active)) #main > .view.active{
    flex:1 1 auto!important;
    height:auto!important;
    min-height:0!important;
    overflow-y:auto!important;
  }
  body:not(:has(#view-live.active)) #main > .coachComposer,
  body:not(:has(#view-live.active)) #main > .experienceBottomNav{
    display:grid!important;
    flex:0 0 auto!important;
  }
}

/* IntelPak Core v3.7.18 - Session Replay keeps its own vertical scrollbar. */
#view-conversations.active{
  overflow:hidden!important;
}
#view-conversations.active .conversationGrid{
  flex:1 1 auto;
  min-height:0;
  height:0;
  overflow:hidden;
}
#view-conversations.active #conversationList,
#view-conversations.active #conversationDetail{
  min-height:0;
  height:100%;
  overflow-y:scroll!important;
  overflow-x:hidden;
  scrollbar-gutter:stable;
}

/* IntelPak Core v3.7.18 - explicit IPK lifecycle and compact practice controls. */
.practiceActions{justify-content:center!important}.practiceActions button{min-height:40px;padding:0 18px;border:1px solid #8e8a82;background:#fff;font-size:11px;font-weight:900;letter-spacing:.035em;cursor:pointer}.practiceActions #startPractice{order:2}.practiceActions #resetPractice{order:1}.practiceActions #closePractice{order:3}.ipkStateAction{border:1px solid #8e8a82;background:#fff;padding:4px 10px;font-size:10px;font-weight:900;letter-spacing:.06em;cursor:pointer}.ipkStateAction:hover{background:#f5f2e9}.ipkViewPanel{width:min(560px,calc(100vw - 20px))!important;max-width:560px!important}.ipkCardActions .ipkViewAction{margin-left:0}.ipkCardActions .ipkStatus{margin-right:auto}

/* IntelPak Core v3.7.18 - IPK VIEW modal fits inside the Core shell. */
#ipkViewDialog{
  width:min(425px,calc(100vw - 20px))!important;
  max-width:425px!important;
  min-width:0!important;
  padding:0!important;
}
#ipkViewDialog .ipkViewPanel{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
}
#ipkViewDialog .aboutBody{padding:16px 18px!important;}
#ipkViewDialog .ipkViewGrid{grid-template-columns:82px minmax(0,1fr)!important;gap:6px 10px!important;}

/* v3.8.0 witness/PAL orchestration */
.witnessSetupPanel{width:min(560px,94vw)}.witnessSetupBody{display:grid;gap:12px}.witnessChoice{display:flex;gap:18px;flex-wrap:wrap}.witnessSetupBody label{display:grid;gap:5px}.witnessSetupBody input,.witnessSetupBody select{width:100%;box-sizing:border-box}.witnessPreflight{padding:10px;border:1px solid #d7d0c5;background:#faf7f1;font-size:12px;white-space:pre-line}.witnessSearchResults{max-height:130px;overflow:auto}.witnessSearchResult{display:block;width:100%;text-align:left;padding:8px;margin:3px 0}.coachPip{position:absolute;right:14px;bottom:14px;width:24%;min-width:110px;aspect-ratio:4/3;object-fit:cover;border:2px solid #fff;border-radius:10px;z-index:6;background:#111}.releaseWitness{position:absolute;left:14px;top:14px;z-index:7}.knowledgePreparePanel{width:min(620px,94vw)}
.resumeSessionPanel{max-width:440px}
.resumeSessionPanel .aboutBody p{line-height:1.45}

/* v3.8.2: Active Session Documents is always black text on a white surface. */
#activeDocumentsDialog .activeDocumentsPanel,
#activeDocumentsDialog .aboutBody,
#activeDocumentsDialog #activeDocumentsList,
#activeDocumentsDialog .documentRow { background:#fff !important; color:#111217 !important; }
#activeDocumentsDialog .documentRow { border-bottom-color:#d8d8d8 !important; }
#activeDocumentsDialog .documentRemove { background:#fff !important; color:#111217 !important; border-color:#9aa0a6 !important; }

/* v3.8.3 witness video geometry: Tavus is the main surface, local camera is lower-right PIP. */
body:has(#view-live.active) .coachHero{flex-basis:420px!important;min-height:320px!important;max-height:520px!important;aspect-ratio:auto!important;margin:0 auto;width:96%;}
body:has(#view-live.active) .coachPip{right:10px;bottom:10px;width:21%;min-width:92px;max-width:150px;z-index:20;border:2px solid #fff;border-radius:8px;box-shadow:0 2px 10px #0008;}
body:has(#view-live.active) .releaseWitness{left:10px;top:10px;z-index:21;}

/* IntelPak Core v3.8.6 test-session hardening */
.coachChat{scrollbar-gutter:stable;overflow-y:scroll!important;}
.settingsFooterActions{position:sticky;bottom:0;display:flex;justify-content:flex-end;gap:8px;padding:10px 0;background:#fff;border-top:1px solid #d7d0c5;z-index:5}.settingsFooterActions button{min-width:78px;padding:7px 12px;font-weight:700}
.privacyLed.loaded{background:#16843c!important;box-shadow:0 0 0 2px #dff3e5}

/* v3.9.0 independent interaction modes: Text, Mic, Webcam, Tavus Avatar. */
.tavusAvatarFrame{position:absolute;inset:0;width:100%;height:100%;border:0;border-radius:inherit;z-index:5;background:#111;}
.coachHero .coachPip{position:absolute!important;right:10px!important;bottom:10px!important;width:21%!important;height:auto!important;min-width:92px;max-width:150px;aspect-ratio:4/3;object-fit:cover;border:2px solid #fff;border-radius:8px;z-index:20!important;box-shadow:0 2px 10px #0008;}

/* v4.0.0 controlled UI contract */
.experienceActions{display:grid!important;grid-template-columns:repeat(5,1fr)!important;width:100%!important;gap:6px!important}.experienceTab{font:inherit!important;font-size:15px!important;font-weight:400!important;padding:8px 12px!important}.experienceTab .experienceIcon{width:30px!important;height:30px!important;font-size:22px!important;display:flex!important;align-items:center!important;justify-content:center!important;margin:0 auto 4px!important}.experienceTab .experienceIcon svg{width:24px!important;height:24px!important;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.coachComposer{display:grid!important;grid-template-columns:auto minmax(120px,1fr) repeat(5,40px)!important;align-items:center!important;gap:5px!important}.coachComposer>*{margin:0!important}.coachSend,.composerIcon{width:38px!important;height:38px!important}.practiceSetup,.coachSetupGrid{grid-template-columns:repeat(2,minmax(0,1fr))!important}.dialogActions,.practiceActions{justify-content:center!important}.multiCheck{border:1px solid var(--line);border-radius:4px;background:#fff;max-height:140px;overflow-y:auto;overflow-x:hidden;min-height:38px}.multiCheck>label{display:flex!important;flex-direction:row!important;align-items:center!important;gap:8px!important;font-size:13px!important;font-weight:400!important;padding:6px 8px!important;margin:0!important;border-bottom:1px solid #f0ece6;cursor:pointer;line-height:1.2}.multiCheck>label:last-child{border-bottom:0}.multiCheck>label:hover{background:#f5f2ec}.multiCheck input[type="checkbox"]{flex-shrink:0!important;width:15px!important;height:15px!important;margin:0!important;cursor:pointer}.multiCheck:empty::before{content:"Select a pack first";display:block;padding:8px;color:#aaa;font-size:12px;font-style:italic}.personPortraitPreview img{width:96px;height:96px;border-radius:50%;object-fit:cover}.palPortrait{position:absolute;left:14px;bottom:14px;width:88px;height:88px;border-radius:50%;object-fit:cover;border:3px solid white;box-shadow:0 2px 10px #0005;z-index:5}.tavusActive .intelpakSplash{display:none!important}.coachHero{position:relative}

/* IntelPak Core v4.2.0 authentication and account shell */
body.authLocked #app{visibility:hidden;pointer-events:none}
.authGate{position:fixed;inset:0;z-index:10000;display:grid;place-items:center;padding:24px;background:linear-gradient(180deg,#e9dfcf,#d8ccb9);font-family:Inter,Segoe UI,Arial,sans-serif;color:#181818}
body:not(.authLocked) .authGate{display:none}
.authCard{width:min(430px,calc(100vw - 32px));box-sizing:border-box;background:#f7f1e8;border:1px solid rgba(48,42,34,.18);border-radius:20px;padding:30px;box-shadow:0 18px 55px rgba(36,29,21,.18)}
.authLogo{display:block;max-width:210px;max-height:70px;object-fit:contain;margin:0 auto 18px}
.authCard h1{font-size:25px;line-height:1.15;margin:0 0 8px;text-align:center;font-weight:700;color:#171717}
.authLead{font-size:14px;line-height:1.45;text-align:center;margin:0 0 24px;color:#5c554d}
.authCard label{display:grid;gap:7px;font-size:12px;font-weight:700;letter-spacing:.02em;color:#48423b;margin:14px 0}
.authCard input{box-sizing:border-box;width:100%;min-height:46px;border:1px solid #bdb3a5;border-radius:9px;background:#fffdf9;padding:10px 12px;font:15px/1.2 inherit;color:#181818;outline:none}
.authCard input:focus{border-color:#6c6257;box-shadow:0 0 0 3px rgba(108,98,87,.12)}
.authActions{display:flex;justify-content:center;gap:10px;margin-top:18px}
.authActions button{min-height:42px;border:1px solid #171717;border-radius:9px;padding:0 18px;background:#171717;color:#fff;font-weight:700;letter-spacing:.03em;cursor:pointer}
.authActions button:disabled{opacity:.55;cursor:default}
.authStatus,.authDemoNote{min-height:18px;text-align:center;font-size:13px;line-height:1.4;margin:10px 0 0;color:#62594f}
.authStatus.error{color:#9d251d}
.authDemoNote{padding:8px 10px;border-radius:8px;background:#eee5d8;color:#4d463e}
.accountChip{max-width:185px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border:1px solid rgba(255,255,255,.2);border-radius:999px;background:rgba(255,255,255,.08);color:inherit;padding:5px 10px;font-size:11px;margin-left:auto;margin-right:8px;cursor:pointer}
.profileAccount{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0 0 16px}
.profileAccount .accountFact{border:1px solid rgba(100,90,75,.2);border-radius:8px;padding:9px 10px;background:rgba(255,255,255,.38)}
.profileAccount .accountFact small{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.06em;opacity:.65;margin-bottom:3px}
.profileAccount .accountFact strong{display:block;font-size:13px;overflow-wrap:anywhere}

/* ========================================================================== */
/* IntelPak Core v4.2.1 - unified modal geometry and visual language           */
/* ========================================================================== */
/* Every active Core dialog uses the same centered 540px surface. Native       */
/* showModal() keeps the surface centered over the persistent Core interface.  */
dialog:not([open]){display:none!important;}
dialog[open]{
  width:min(540px,calc(100vw - 20px))!important;
  max-width:540px!important;
  min-width:0!important;
  max-height:calc(100dvh - 24px)!important;
  margin:auto!important;
  padding:0!important;
  border:1px solid #777!important;
  background:#fff!important;
  color:#111217!important;
  box-shadow:0 12px 40px rgba(0,0,0,.25)!important;
  overflow:auto!important;
}
dialog::backdrop{background:rgba(0,0,0,.35)!important;}
dialog[open]>form,
dialog[open] .aboutPanel,
dialog[open] .diagnosticsPanel,
dialog[open] .coachSetupPanel{
  box-sizing:border-box!important;
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
  margin:0!important;
  background:#fff!important;
  color:#111217!important;
}
dialog[open] .dialogTitle{
  min-height:36px!important;
  box-sizing:border-box!important;
  padding:9px 11px!important;
  border-bottom:1px solid #ddd!important;
  background:#f4f2ee!important;
  color:#111217!important;
  font-size:12px!important;
  font-weight:800!important;
  letter-spacing:.08em!important;
}
dialog[open] .aboutBody,
dialog[open] .coachSetupBody,
dialog[open] .missedSpeechBody{
  box-sizing:border-box!important;
  padding:18px 22px!important;
  background:#fff!important;
  color:#111217!important;
}
dialog[open] .dialogActions{
  box-sizing:border-box!important;
  justify-content:center!important;
  align-items:center!important;
  gap:8px!important;
  padding:12px 18px 16px!important;
  background:#fff!important;
}
dialog[open] .aboutBody>.dialogActions,
dialog[open] .missedSpeechBody>.dialogActions{padding:12px 0 0!important;}
dialog[open] .dialogActions button{
  min-height:34px!important;
  padding:0 12px!important;
  border:1px solid #8e8a82;
  border-radius:2px;
  font-size:11px;
  font-weight:900!important;
  letter-spacing:.035em;
}
#coachSetupDialog{width:min(540px,calc(100vw - 20px))!important;max-width:540px!important;min-width:0!important;}

/* v4.2.9 - After Action Replay ends just above the Standard AI status strip. */
#replayDialog[open]{
  position:fixed!important;
  top:8px!important;
  bottom:132px!important;
  height:auto!important;
  max-height:none!important;
  margin:0 auto!important;
}

/* v4.3.0 - Keep After Action Replay actions visible while modal ends above status strip. */
#replayDialog[open] > .aboutPanel{
  height:100%!important;
  max-height:100%!important;
  display:flex!important;
  flex-direction:column!important;
  overflow:hidden!important;
}
#replayDialog[open] > .aboutPanel > .coachSetupBody{
  flex:1 1 auto!important;
  min-height:0!important;
  display:flex!important;
  flex-direction:column!important;
  overflow:hidden!important;
}
#replayDialog[open] .conversationGrid{
  flex:1 1 auto!important;
  min-height:0!important;
  height:0!important;
  overflow:hidden!important;
}
#replayDialog[open] #conversationList,
#replayDialog[open] #conversationDetail{
  min-height:0!important;
  height:100%!important;
  overflow-y:auto!important;
}
#replayDialog[open] > .aboutPanel > .dialogActions{
  flex:0 0 auto!important;
}

/* v4.3.0 - Replay results scroll independently above a fixed action row. */
#replayDialog[open]{
  overflow:hidden!important;
}
#replayDialog[open] > .aboutPanel{
  display:grid!important;
  grid-template-rows:auto minmax(0,1fr) auto!important;
  height:100%!important;
  min-height:0!important;
  overflow:hidden!important;
}
#replayDialog[open] > .aboutPanel > .coachSetupBody{
  min-height:0!important;
  overflow:hidden!important;
}
#replayDialog[open] .conversationGrid{
  min-height:0!important;
  height:auto!important;
  overflow:hidden!important;
}
#replayDialog[open] #conversationList,
#replayDialog[open] #conversationDetail{
  height:100%!important;
  min-height:0!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
  scrollbar-gutter:stable!important;
}
#replayDialog[open] > .aboutPanel > .dialogActions{
  position:relative!important;
  z-index:2!important;
  flex:none!important;
  margin:0!important;
  background:#fff!important;
  overflow:hidden!important;
}

/* v4.3.1 - AAR occupies only the workspace below the IntelPak hero.
   Header/search stay fixed, the two replay panes scroll independently,
   and the action row remains fixed above the Standard AI status strip. */
#replayDialog[open]{
  top:226px!important;
  bottom:132px!important;
  height:auto!important;
  overflow:hidden!important;
}
#replayDialog[open] > .aboutPanel{
  height:100%!important;
  display:grid!important;
  grid-template-rows:auto minmax(0,1fr) auto!important;
  overflow:hidden!important;
}
#replayDialog[open] > .aboutPanel > .coachSetupBody{
  min-height:0!important;
  display:flex!important;
  flex-direction:column!important;
  overflow:hidden!important;
  padding:14px 18px 0!important;
}
#replayDialog[open] .aarHeader,
#replayDialog[open] #conversationSearch{
  flex:0 0 auto!important;
}
#replayDialog[open] .conversationGrid{
  flex:1 1 auto!important;
  min-height:0!important;
  height:auto!important;
  grid-template-columns:minmax(0,2.55fr) minmax(0,1fr)!important;
  overflow:hidden!important;
}
#replayDialog[open] #conversationList,
#replayDialog[open] #conversationDetail{
  min-height:0!important;
  height:100%!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
}
#replayDialog[open] > .aboutPanel > .dialogActions{
  flex:0 0 auto!important;
  padding:12px 18px 14px!important;
  background:#fff!important;
}

/* IntelPak Core v4.4.0: Settings hub + two-line composer. Reuses existing modal language. */
#experienceBottomNav{display:none!important;}
.coachComposer{display:grid!important;grid-template-columns:38px minmax(0,1fr) 82px!important;align-items:center!important;gap:6px!important;padding:6px 8px!important;}
.coachComposer textarea{box-sizing:border-box!important;width:100%!important;height:76px!important;min-height:76px!important;max-height:76px!important;resize:none!important;border:0!important;outline:0!important;background:transparent!important;padding:8px 4px!important;font:16px/1.35 inherit!important;color:inherit!important;}
.composerActions{display:grid!important;grid-template-columns:38px 38px!important;grid-template-rows:38px 38px!important;gap:4px!important;align-items:center!important;justify-items:center!important;}
.composerActions .composerIcon,.composerActions .coachSend{width:38px!important;height:38px!important;margin:0!important;}
#adaptersDialog[open]{width:min(540px,calc(100vw - 20px))!important;}
#adaptersModalBody{padding:0!important;}
#adaptersModalBody #view-settings{display:block!important;padding:12px!important;box-sizing:border-box!important;}
#adaptersModalBody #view-settings>h2{display:none!important;}

/* v4.5.0 SETTINGS / IPK LICENSES
   PURPOSE: present the organization's real license ledger separately from Super_Admin authority. */
.settingsHubActions{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px!important}.settingsHubActions button{width:100%}.settingsHubActions #settingsCloseSession{grid-column:1/-1}
.licensePanel{width:min(860px,calc(100vw - 20px))!important;max-width:860px!important}.licenseSummary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:12px}.licenseSummary .accountFact{border:1px solid rgba(100,90,75,.2);border-radius:8px;padding:9px 10px;background:rgba(255,255,255,.38)}.licenseSummary small{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.06em;opacity:.65;margin-bottom:3px}.licenseSummary strong{display:block;font-size:14px;overflow-wrap:anywhere}.licenseFilters{display:grid;grid-template-columns:minmax(0,1fr) 190px;gap:8px;margin-bottom:10px}.licenseFilters input,.licenseFilters select{min-height:38px;border:1px solid #c9c4bb;background:#fff;padding:7px 9px;font:inherit}.licenseList{display:grid;gap:7px;max-height:56vh;overflow:auto;padding-right:2px}.licenseRow{display:grid;grid-template-columns:minmax(180px,1.35fr) minmax(110px,.7fr) minmax(130px,.8fr) minmax(130px,.8fr);gap:10px;align-items:center;border:1px solid #ddd7cc;background:#fff;padding:9px 10px}.licenseRow strong{display:block;overflow-wrap:anywhere}.licenseRow small{display:block;color:#666;margin-top:2px}.licenseState{font-size:10px;font-weight:900;letter-spacing:.05em;border:1px solid #aaa;border-radius:999px;padding:3px 7px;display:inline-block;margin-right:4px}.licenseState.available{border-style:dashed}.licenseMeta{font-size:11px;color:#555}.settingsMarketplaceLink{display:inline-flex;align-items:center;justify-content:center;min-height:34px;padding:0 12px;border:1px solid #8e8a82;background:#fff;color:#111;text-decoration:none;font-size:11px;font-weight:900;letter-spacing:.035em}.settingsMarketplaceLink:hover,.settingsMarketplaceLink:focus{background:#f5f2e9}.licenseEmpty{padding:20px 8px;color:#666;text-align:center}

/* ── IPK Library: ACTIVATE / ACTIVE state styles (v4.5.0) ── */
.ipkStateAction.ipkActive{border-color:#2e7d32;background:#2e7d32;color:#fff;cursor:default;}
.ipkStateAction.ipkActive:hover{background:#2e7d32;}
.ipkStateAction.ipkDeactivate{border-color:#b71c1c;background:#fff;color:#b71c1c;font-weight:700;}
.ipkStateAction.ipkDeactivate:hover{background:#ffebee;border-color:#b71c1c;}
.ipkStateAction.ipkActivate{border-color:#4caf50;color:#1b5e20;font-weight:900;}
.ipkStateAction.ipkActivate:hover{background:#e8f5e9;}
@keyframes ipkFlashPulse{0%,100%{background:#e8f5e9;border-color:#4caf50;}50%{background:#4caf50;color:#fff;border-color:#2e7d32;}}
.ipkStateAction.ipkFlash{animation:ipkFlashPulse 1s ease-in-out 10;}
.ipkStatus.ipkActiveStatus{background:#2e7d32;color:#fff;border-color:#2e7d32;}
.ipkStatus.ipkActivateStatus{border-color:#4caf50;color:#1b5e20;}

.catalogEdition h4{color:#e65100;font-size:.75rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;margin:1rem 0 .4rem;}
.viewHeader{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}.viewHeader h2{margin:0}.viewCloseBtn{width:36px;height:36px;border:0;border-radius:50%;background:#f0ece6;color:#333;font-size:22px;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;line-height:1}.viewCloseBtn:hover{background:#e0dbd3}
.tavusLoading{position:absolute;inset:0;z-index:10;background:#071015e6;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;border-radius:inherit}.tavusLoadingLabel{color:#fff;font-size:14px;font-weight:500;letter-spacing:.04em;opacity:.9}.tavusLoadingSpinner{width:36px;height:36px;border:3px solid #ffffff30;border-top-color:#8b48f2;border-radius:50%;animation:tavusSpin .8s linear infinite}@keyframes tavusSpin{to{transform:rotate(360deg)}}

/* TTS voice reply button */
#coachTts{opacity:0.45;transition:opacity .2s;}
#coachTts.active{opacity:1;}
#coachTts.active svg{stroke:#8b48f2;}

/* === v4.5.38 COMPOSER LAYOUT === */
.coachComposer{display:grid!important;grid-template-columns:auto minmax(0,1fr) auto!important;align-items:center!important;gap:6px!important;}
.composerLeft{display:flex!important;flex-direction:row!important;align-items:center!important;gap:4px!important;}
.composerLeft .coachSend{width:38px!important;height:38px!important;background:#8b48f2!important;border-radius:50%!important;display:flex!important;align-items:center!important;justify-content:center!important;flex-shrink:0!important;}
.composerLeft .composerIcon{width:38px!important;height:38px!important;}
.composerActions{display:grid!important;grid-template-columns:38px 38px!important;grid-template-rows:38px 38px!important;gap:4px!important;align-items:center!important;justify-items:center!important;}
.composerActionsRow{display:contents!important;}
.composerActions .composerIcon{width:38px!important;height:38px!important;margin:0!important;}
.composerActions .composerIcon.active{color:#000000!important;background:transparent!important;}

/* === v4.5.40 SPLASH LOGO SIZE === */
.intelpakSplash img{width:100px!important;max-width:100px!important;min-width:0!important;}

/* === v4.5.45 COMPOSER ICON ON/OFF STATE ICONS === */
/* Default: show "off" icon, hide "on" icon */
#coachMic .iconMicOn,#coachCamera .iconCamOn,#coachAvatar .iconAvaOn{display:none!important;}
#coachMic .iconMicOff,#coachCamera .iconCamOff,#coachAvatar .iconAvaOff{display:block!important;}
/* Active: show "on" icon, hide "off" icon */
#coachMic.active .iconMicOn,#coachCamera.active .iconCamOn,#coachAvatar.active .iconAvaOn{display:block!important;}
#coachMic.active .iconMicOff,#coachCamera.active .iconCamOff,#coachAvatar.active .iconAvaOff{display:none!important;}
/* Muted mic: show muted (off) icon even when active */
#coachMic.muted .iconMicOn{display:none!important;}
#coachMic.muted .iconMicOff{display:block!important;color:#e53935!important;}
/* Active color */
#coachMic.active:not(.muted),#coachCamera.active,#coachAvatar.active{color:#8b48f2!important;}

/* === v4.5.45 DOC ICON SIZE === */
#coachAttach svg{width:32px!important;height:32px!important;stroke-width:1.5!important;}

/* === v4.5.49 HANG UP BUTTON — red by default, faded only during practice === */
.hangUpBtn{position:absolute;left:14px;bottom:14px;z-index:5;width:38px;height:38px;border-radius:50%;border:none;background:#2a0d0dcc;color:#ef4444;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:color .15s,background .15s,opacity .15s;opacity:.88;padding:0;}
.hangUpBtn svg{width:18px;height:18px;pointer-events:none;}
.hangUpBtn:disabled{cursor:default;opacity:.22;color:#555;background:#1a1c22cc;}
.hangUpBtn.callActive{color:#ef4444;opacity:.92;background:#2a0d0dcc;}
.hangUpBtn.callActive:hover{background:#3d1111cc;color:#f87171;}
/* Confirm dialog */
.hangUpConfirmDialog{border:none;border-radius:10px;padding:0;background:#1c1e25;color:#e8e4de;box-shadow:0 8px 32px #000a;max-width:320px;width:90vw;}
.hangUpConfirmDialog::backdrop{background:#000000bb;}
.hangUpConfirmInner{padding:24px 22px 18px;}
.hangUpConfirmInner p{margin:0 0 18px;font-size:13px;font-weight:700;letter-spacing:.04em;text-align:center;color:#e8e4de;}
.hangUpConfirmActions{display:flex;gap:10px;justify-content:center;}
.hangUpYesBtn{background:#dc2626;color:#fff;border:none;border-radius:6px;padding:9px 22px;font-size:12px;font-weight:900;letter-spacing:.06em;cursor:pointer;}
.hangUpYesBtn:hover{background:#b91c1c;}
.hangUpNoBtn{background:#27282e;color:#ccc;border:1px solid #444;border-radius:6px;padding:9px 22px;font-size:12px;font-weight:900;letter-spacing:.06em;cursor:pointer;}
.hangUpNoBtn:hover{background:#32343b;}
/* === v4.5.48 AAR RESIZABLE PANELS === */
.conversationGrid{display:flex;gap:0;height:360px;overflow:hidden;}
#conversationList{flex:0 0 220px;min-width:120px;max-width:60%;overflow-y:auto;border-right:1px solid #2e2e36;}
#aarResizer{flex:0 0 6px;min-width:6px;cursor:col-resize;background:#22232a;display:flex;align-items:center;justify-content:center;}
#aarResizer::after{content:'';display:block;width:2px;height:32px;border-radius:2px;background:#444;}
#aarResizer:hover::after{background:#8b48f2;}
#conversationDetail{flex:1 1 0;min-width:80px;overflow-y:auto;padding-left:14px;}
