/* The voice surface shares Opax's public-record typography and palette. */
body.opax-voice-ready { padding-bottom: calc(76px + env(safe-area-inset-bottom, 0px)); }
.opax-voice { position:fixed; z-index:45; right:max(20px, env(safe-area-inset-right, 0px)); bottom:max(18px, env(safe-area-inset-bottom, 0px)); color:var(--ink, #23271f); font:400 14px/1.55 var(--sans, "Public Sans", sans-serif); }
.opax-voice *, .opax-voice *::before, .opax-voice *::after { box-sizing:border-box; }
.opax-voice [hidden] { display:none !important; }
.opax-voice button, .opax-voice a { -webkit-tap-highlight-color:transparent; }
.opax-voice button { cursor:pointer; font-family:inherit; }
.opax-voice button:disabled { cursor:default; opacity:.65; }
.opax-voice button:focus-visible, .opax-voice a:focus-visible, .opax-voice [tabindex]:focus-visible { outline:3px solid var(--bronze-ink, #8a5a12); outline-offset:3px; }
.opax-voice svg { width:22px; height:22px; flex:none; }
.opax-voice-launcher { display:flex; align-items:center; gap:10px; margin-left:auto; min-height:48px; padding:11px 19px 11px 16px; border:1px solid var(--navy, #142a43); border-radius:28px; color:#fff; background:var(--navy, #142a43); box-shadow:0 4px 18px #142a4329; font-size:14px; font-weight:600; }
.opax-voice-launcher svg { color:var(--bronze-bright, #d9a84a); width:19px; height:21px; }
.opax-voice-launcher:hover { background:var(--navy-raised, #1d3a5c); }
.opax-voice-panel { position:absolute; bottom:60px; right:0; display:flex; flex-direction:column; width:384px; max-width:calc(100vw - 40px); max-height:calc(100dvh - 112px - env(safe-area-inset-bottom, 0px)); overflow:hidden; border:1px solid var(--line, #dfdcd2); border-top:3px solid var(--bronze, #a0761b); border-radius:12px; background:var(--paper, #faf9f6); box-shadow:0 16px 64px #142a4333, 0 3px 12px #142a431a; }
.opax-voice-header { display:flex; align-items:flex-start; justify-content:space-between; gap:10px; padding:21px 17px 14px 23px; flex:none; }
.opax-voice-eyebrow { margin:0 0 8px; color:var(--bronze-ink, #8a5a12); font-size:9px; font-weight:700; letter-spacing:.09em; }
.opax-voice-header h2 { margin:0; font:400 24px/1.3 var(--serif, "Merriweather", Georgia, serif); color:var(--navy, #142a43); }
.opax-voice-close { display:grid; place-items:center; width:44px; height:44px; min-height:44px; margin:-8px -8px 0 0; padding:10px; border:0; border-radius:50%; background:transparent; color:var(--ink-soft, #575c52); }
.opax-voice-close:hover { background:var(--paper-sunken, #f1efe8); }
.opax-voice-body { overflow-y:auto; overscroll-behavior:contain; min-height:0; padding:0 23px 4px; scrollbar-width:thin; }
.opax-voice-intro p { margin:0 0 12px; color:var(--ink-soft, #575c52); font-size:13px; line-height:1.65; }
.opax-voice-intro .opax-voice-lede { color:var(--ink, #23271f); font-size:14px; line-height:1.55; }
.opax-voice-intro .opax-voice-example { border-left:2px solid var(--bronze-rule, #a0761b8c); padding-left:12px; font-size:12px; }
.opax-voice-activity { display:flex; align-items:center; gap:11px; min-height:43px; margin-top:5px; color:var(--navy, #142a43); font-weight:600; font-size:13px; }
.opax-voice-waves { display:flex; align-items:center; justify-content:center; gap:3px; width:28px; height:26px; flex:none; }
.opax-voice-waves i { width:3px; height:8px; background:var(--bronze, #a0761b); border-radius:2px; }
.opax-voice-waves i:nth-child(2), .opax-voice-waves i:nth-child(4) { height:15px; }
.opax-voice-waves i:nth-child(3) { height:22px; }
.opax-voice-spinner { width:17px; height:17px; margin:0 5px; border:2px solid var(--line, #dfdcd2); border-top-color:var(--navy, #142a43); border-radius:50%; display:inline-block; }
.opax-voice-allowance { margin:0 0 13px; color:var(--ink-soft, #575c52); font-size:12px; line-height:1.7; }
.opax-voice-allowance strong { font-size:14px; font-variant-numeric:tabular-nums; color:var(--navy, #142a43); margin-right:4px; }
.opax-voice-notice { margin:0 0 14px; padding:11px 12px; border-radius:4px; background:var(--paper-sunken, #f1efe8); color:var(--ink, #23271f); font-size:12px; line-height:1.55; }
.opax-voice-transcript { max-height:200px; overflow-y:auto; overscroll-behavior:contain; padding:2px 2px 0; margin:0 0 12px; scrollbar-width:thin; }
.opax-voice-turn { margin-bottom:13px; padding-left:10px; border-left:2px solid var(--line, #dfdcd2); }
.opax-voice-turn-agent { border-left-color:var(--bronze-rule, #a0761b8c); }
.opax-voice-turn strong { display:block; font-size:10px; color:var(--ink-soft, #575c52); margin-bottom:4px; }
.opax-voice-turn p { margin:0; white-space:pre-wrap; overflow-wrap:anywhere; font-size:13px; line-height:1.6; }
.opax-voice a { color:var(--bronze-ink, #8a5a12); text-decoration:underline; text-underline-offset:3px; }
.opax-voice-sources { padding:0 0 5px; margin:0; }
.opax-voice-sources h3 { margin:0 0 7px; font:600 12px/1.5 var(--sans, sans-serif); color:var(--navy, #142a43); }
.opax-voice-sources ol { margin:0 0 9px; padding-left:20px; }
.opax-voice-sources li { font-size:12px; line-height:1.6; padding-bottom:6px; overflow-wrap:anywhere; }
.opax-voice-controls { display:flex; align-items:center; gap:9px; padding:10px 23px 0; flex:none; }
.opax-voice-controls button, .opax-voice-controls .opax-voice-signin { min-height:44px; border-radius:5px; padding:10px 12px; font:600 13px/1.4 var(--sans, sans-serif); text-align:center; }
.opax-voice-start, .opax-voice-signin { flex:1; background:var(--navy, #142a43); border:1px solid var(--navy, #142a43); color:#fff !important; text-decoration:none !important; }
.opax-voice-start:hover, .opax-voice-signin:hover { background:var(--navy-raised, #1d3a5c); }
.opax-voice-mute { flex:1; border:1px solid var(--line-strong, #8d897b); color:var(--navy, #142a43); background:transparent; }
.opax-voice-mute[aria-pressed="true"] { background:var(--paper-sunken, #f1efe8); border-color:var(--navy, #142a43); }
.opax-voice-end { flex:1; border:1px solid var(--navy, #142a43); color:#fff; background:var(--navy, #142a43); }
.opax-voice-footer { flex:none; padding:14px 23px 19px; }
.opax-voice-footer p { font-size:12px; line-height:1.55; color:var(--ink-soft, #575c52); margin:0 0 7px; }
.opax-voice-footer p:last-child { margin-bottom:0; }
@media (prefers-reduced-motion:no-preference) {
  .opax-voice.is-speaking .opax-voice-waves i { animation:opax-voice-wave .9s ease-in-out infinite alternate; }
  .opax-voice.is-speaking .opax-voice-waves i:nth-child(2n) { animation-delay:-.5s; }
  .opax-voice-spinner { animation:opax-voice-spin .8s linear infinite; }
  @keyframes opax-voice-wave { to { transform:scaleY(.4); } }
  @keyframes opax-voice-spin { to { transform:rotate(360deg); } }
}
@media (max-width:480px) {
  .opax-voice { right:max(12px, env(safe-area-inset-right, 0px)); bottom:max(12px, env(safe-area-inset-bottom, 0px)); }
  .opax-voice-launcher { min-height:46px; padding:10px 16px; font-size:13px; }
  .opax-voice-panel { width:calc(100vw - 24px); max-width:calc(100vw - 24px); bottom:58px; max-height:calc(100dvh - 94px - env(safe-area-inset-bottom, 0px)); }
  .opax-voice-header { padding:17px 15px 12px 19px; }
  .opax-voice-body { padding-left:19px; padding-right:19px; }
  .opax-voice-controls { padding:8px 19px 0; }
  .opax-voice-footer { padding:12px 19px 16px; }
}
@media (max-height:560px) {
  .opax-voice-header { padding-top:10px; padding-bottom:7px; }
  .opax-voice-header h2 { font-size:21px; }
  .opax-voice-eyebrow { display:none; }
  .opax-voice-footer { padding-top:8px; padding-bottom:10px; }
}
