/* TimeBoosters AI demo. Every selector is prefixed tb-ai so the existing site styles stay untouched.
   Colours come from the site's tokens in styles.css; the call screen adds its own night palette. */
.tb-ai [hidden],.tb-ai-workspace [hidden]{display:none!important}
html.tb-ai-lock,html.tb-ai-lock body{overflow:hidden}
.tb-ai svg,.tb-ai-workspace svg{width:1em;height:1em;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:none}
.tb-ai button:focus-visible,.tb-ai-workspace button:focus-visible,.tb-ai-page-workspace button:focus-visible,.tb-ai-choice:focus-visible{outline:3px solid var(--blue2);outline-offset:3px}

/* Floating button */
.tb-ai-fabs{position:fixed;right:20px;bottom:20px;z-index:900;display:flex;flex-direction:column;align-items:flex-end;gap:10px}
.tb-ai-fab{display:inline-flex;align-items:center;gap:10px;padding:10px 18px 10px 10px;border:1px solid rgba(255,255,255,.14);border-radius:999px;background:linear-gradient(135deg,#0b2340,#061426);color:#fff;font:inherit;font-size:15px;font-weight:850;cursor:pointer;box-shadow:0 14px 34px rgba(6,20,38,.32),0 0 0 4px rgba(44,111,255,.14);transition:transform .18s,box-shadow .18s}
.tb-ai-fab:hover{transform:translateY(-2px);box-shadow:0 18px 40px rgba(6,20,38,.36),0 0 0 5px rgba(44,111,255,.22)}
/* Chat is the everyday question, so it is the brighter of the two and sits closest to the thumb. */
.tb-ai-fab-chat{background:linear-gradient(135deg,#3b82f6,#1d4ed8);box-shadow:0 14px 34px rgba(29,78,216,.34),0 0 0 4px rgba(44,111,255,.18)}
.tb-ai-fab-chat:hover{box-shadow:0 18px 40px rgba(29,78,216,.4),0 0 0 5px rgba(44,111,255,.26)}
.tb-ai-fab-chat .tb-ai-fab-icon{background:#fff;color:#1d4ed8;animation:none}
.tb-ai-fab-short{display:none}
.tb-ai-fab-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#22c55e;font-size:17px;animation:tb-ai-pulse 2.4s infinite}
@keyframes tb-ai-pulse{0%{box-shadow:0 0 0 0 rgba(34,197,94,.55)}70%{box-shadow:0 0 0 12px rgba(34,197,94,0)}100%{box-shadow:0 0 0 0 rgba(34,197,94,0)}}

/* Invitation: full-page dialog, bottom sheet on phones */
.tb-ai-invite-backdrop{position:fixed;inset:0;z-index:1001;display:flex;align-items:center;justify-content:center;padding:20px;background:rgba(4,16,30,.7);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);animation:tb-ai-fade .3s ease-out}
@keyframes tb-ai-fade{from{opacity:0}to{opacity:1}}
.tb-ai-invite{position:relative;width:min(440px,100%);background:#fff;color:var(--ink);border-radius:26px;overflow:hidden;box-shadow:0 30px 90px rgba(0,0,0,.45);text-align:center;animation:tb-ai-rise .38s cubic-bezier(.2,.8,.2,1)}
@keyframes tb-ai-rise{from{opacity:0;transform:translateY(24px) scale(.98)}to{opacity:1;transform:none}}
.tb-ai-invite .tb-ai-x{color:rgba(255,255,255,.8);z-index:2}
.tb-ai-invite .tb-ai-x:hover{background:rgba(255,255,255,.12);color:#fff}
.tb-ai-invite-call{padding:34px 24px 22px;background:radial-gradient(120% 90% at 50% 0%,#1d4f95 0%,#0b2340 55%,#061426 100%);color:#fff;display:grid;justify-items:center;gap:2px}
.tb-ai-invite-call .tb-ai-avatar-call{width:92px;height:92px;margin-bottom:12px}
.tb-ai-invite-title{margin:22px 24px 6px;font-size:23px;font-weight:950;line-height:1.2;letter-spacing:-.02em}
.tb-ai-invite-text{margin:0 26px 20px;font-size:15px;line-height:1.5;color:var(--muted)}
.tb-ai-invite-actions{display:grid;gap:10px;padding:0 24px}
.tb-ai-invite-actions button{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:54px;border-radius:14px;font:inherit;font-size:16px;font-weight:900;cursor:pointer;transition:transform .15s,box-shadow .15s}
.tb-ai-invite-actions button span{display:grid;place-items:center;font-size:19px}
.tb-ai-invite-primary{border:0;color:#fff;background:linear-gradient(135deg,#22c55e,#159a68);box-shadow:0 12px 26px rgba(21,154,104,.32)}
.tb-ai-invite-primary:hover{transform:translateY(-1px);box-shadow:0 16px 30px rgba(21,154,104,.38)}
.tb-ai-invite-secondary{border:1px solid var(--line);color:var(--ink);background:#fff}
.tb-ai-invite-secondary:hover{border-color:#bcd0f3}
.tb-ai-invite-decline{margin:12px auto 18px;padding:8px 14px;border:0;background:transparent;color:var(--muted);font:inherit;font-size:14px;font-weight:700;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.tb-ai-invite:focus,.tb-ai-modal:focus{outline:none}
.tb-ai-x{position:absolute;top:10px;right:10px;width:40px;height:40px;border:0;border-radius:12px;background:transparent;color:var(--muted);font-size:26px;line-height:1;cursor:pointer}
.tb-ai-x:hover{background:var(--soft);color:var(--ink)}

/* Call identity (shared by invitation and call screen) */
.tb-ai-avatar-call{position:relative;display:grid;place-items:center;width:118px;height:118px;border-radius:50%;background:linear-gradient(135deg,#4d8dff,#1d5ef2);box-shadow:0 18px 50px rgba(44,111,255,.45),inset 0 0 0 3px rgba(255,255,255,.18)}
.tb-ai-avatar-call b{position:relative;z-index:1;color:#fff;font-size:30px;font-weight:950;letter-spacing:.02em}
.tb-ai-avatar-call span{position:absolute;inset:0;border-radius:50%;border:2px solid rgba(125,184,255,.55);opacity:0}
.tb-ai-avatar-call.is-ringing span,[data-state="connecting"] .tb-ai-avatar-call span,[data-state="speaking"] .tb-ai-avatar-call span{animation:tb-ai-ring 2.1s cubic-bezier(.2,.6,.3,1) infinite}
.tb-ai-avatar-call span:nth-child(2){animation-delay:.7s!important}
.tb-ai-avatar-call span:nth-child(3){animation-delay:1.4s!important}
[data-state="listening"] .tb-ai-avatar-call{background:linear-gradient(135deg,#34d399,#159a68);box-shadow:0 18px 50px rgba(21,154,104,.45),inset 0 0 0 3px rgba(255,255,255,.18)}
[data-state="listening"] .tb-ai-avatar-call span{border-color:rgba(61,220,151,.6);animation:tb-ai-ring 1.6s cubic-bezier(.2,.6,.3,1) infinite}
[data-state="error"] .tb-ai-avatar-call{background:linear-gradient(135deg,#f87171,#b91c1c);box-shadow:0 18px 50px rgba(185,28,28,.35)}
@keyframes tb-ai-ring{0%{transform:scale(1);opacity:.75}100%{transform:scale(1.75);opacity:0}}
.tb-ai-call-name{margin:0;font-size:22px;font-weight:900;letter-spacing:-.01em;color:#fff}
.tb-ai-call-role{margin:0;font-size:13px;color:rgba(255,255,255,.62)}

/* Modal */
.tb-ai-overlay{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:20px;background:rgba(4,16,30,.66);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}
.tb-ai-modal{position:relative;display:flex;flex-direction:column;width:min(720px,100%);height:min(820px,calc(100vh - 40px));height:min(820px,calc(100dvh - 40px));background:#fff;color:var(--ink);border-radius:24px;box-shadow:0 30px 80px rgba(0,0,0,.35);overflow:hidden;animation:tb-ai-rise .26s ease-out}
.tb-ai-modal-head{position:relative;padding:16px 64px 12px 22px;background:#061426;color:#fff}
.tb-ai-modal-head h2{margin:0;font-size:21px;letter-spacing:-.02em}
.tb-ai-modal-head .tb-ai-x{top:12px;right:12px;color:rgba(255,255,255,.75)}
.tb-ai-modal-head .tb-ai-x:hover{background:rgba(255,255,255,.1);color:#fff}
.tb-ai-kicker{margin:0 0 2px;font-size:11px;font-weight:900;letter-spacing:.12em;text-transform:uppercase;color:#7db8ff}
.tb-ai-modal .tb-ai-workspace{flex:1;min-height:0;display:flex;flex-direction:column}
.tb-ai-modal .tb-ai-pane{flex:1;min-height:0;display:flex;flex-direction:column;overflow:auto}
.tb-ai-workspace[data-mode="choose"] .tb-ai-tabs,.tb-ai-workspace:not([data-mode="choose"]) .tb-ai-choose{display:none}
.tb-ai-choose{flex:1;display:grid;align-content:center;gap:12px;padding:24px;max-width:460px;width:100%;margin:0 auto}
.tb-ai-choose p{margin:0 0 4px;text-align:center;font-weight:850;font-size:18px}
.tb-ai-choose button{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:14px;align-items:center;text-align:left;padding:16px 18px;border-radius:16px;border:1px solid var(--line);background:#fff;color:var(--ink);font:inherit;cursor:pointer;transition:border-color .15s,box-shadow .15s}
.tb-ai-choose button:hover{border-color:#bcd0f3;box-shadow:var(--shadow2)}
.tb-ai-choose button span{grid-row:1/3;display:grid;place-items:center;width:48px;height:48px;border-radius:50%;background:#edf4ff;color:var(--blue);font-size:22px}
.tb-ai-choose button:first-of-type span{background:#22c55e;color:#fff}
.tb-ai-choose button b{font-size:17px}
.tb-ai-choose button small{color:var(--muted);font-size:14px}

/* Tabs */
.tb-ai-tabs{display:flex;gap:6px;padding:8px 12px;background:var(--soft);border-bottom:1px solid var(--line)}
.tb-ai-tabs button{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;border:1px solid transparent;border-radius:11px;background:transparent;color:var(--muted);font:inherit;font-size:15px;font-weight:850;cursor:pointer}
.tb-ai-tabs button svg{font-size:17px}
.tb-ai-tabs button[aria-selected="true"]{background:#fff;border-color:var(--line);color:var(--ink);box-shadow:0 4px 12px rgba(6,20,38,.06)}

/* Call screen */
.tb-ai-voice{display:flex;flex-direction:column;min-height:100%;background:#061426}
.tb-ai-call{position:relative;flex:1 0 auto;display:flex;flex-direction:column;align-items:center;gap:14px;padding:18px 22px 18px;color:#fff;background:radial-gradient(130% 70% at 50% 0%,#1d4f95 0%,#0b2340 48%,#061426 100%);overflow:hidden;text-align:center}
.tb-ai-call-top{width:100%;display:flex;justify-content:space-between;align-items:center;gap:10px}
.tb-ai-call-badge{display:inline-flex;align-items:center;gap:7px;padding:6px 11px;border-radius:999px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);font-size:12px;font-weight:850;letter-spacing:.04em}
.tb-ai-call-badge i{width:8px;height:8px;border-radius:50%;background:#f87171}
[data-state="active"] .tb-ai-call-badge i,[data-state="listening"] .tb-ai-call-badge i,[data-state="speaking"] .tb-ai-call-badge i{background:#22c55e;animation:tb-ai-pulse 2s infinite}
.tb-ai-mic{display:inline-flex;align-items:center;gap:7px;padding:6px 11px;border-radius:999px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);font-size:12px;font-weight:800;color:rgba(255,255,255,.7)}
.tb-ai-mic-dot{width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,.4);transform:scale(calc(1 + var(--level,0) * 1.2));transition:transform .08s}
.tb-ai-mic.is-on{color:#bbf7d0;border-color:rgba(34,197,94,.4)}
.tb-ai-mic.is-on .tb-ai-mic-dot{background:#22c55e}
.is-muted .tb-ai-mic{color:#fecaca;border-color:rgba(248,113,113,.45)}
.is-muted .tb-ai-mic .tb-ai-mic-dot{background:#f87171;transform:none}
.tb-ai-call-id{display:grid;justify-items:center;gap:2px;margin-top:10px}
.tb-ai-call-id .tb-ai-avatar-call{margin-bottom:16px}
.tb-ai-voice-status{margin:10px 0 0;font-size:16px;font-weight:800;color:#dbeafe}
.tb-ai-call-timer{margin:0;font-size:14px;font-variant-numeric:tabular-nums;color:rgba(255,255,255,.6);min-height:1.4em}
[data-state="idle"] .tb-ai-call-timer,[data-state="error"] .tb-ai-call-timer{visibility:hidden}
.tb-ai-call-timer.is-ending{color:#fca5a5}
.tb-ai-wave{display:flex;align-items:center;justify-content:center;gap:4px;width:min(360px,100%);height:58px}
.tb-ai-wave i{flex:1;max-width:6px;height:100%;border-radius:3px;background:rgba(255,255,255,.28);transform:scaleY(.08);transition:transform .07s linear,background .2s}
[data-state="speaking"] .tb-ai-wave i{background:#7db8ff}
[data-state="listening"] .tb-ai-wave i,[data-state="active"] .tb-ai-wave[data-source="user"] i{background:#4ade80}
.is-muted .tb-ai-wave i{background:rgba(255,255,255,.2)}
.tb-ai-caption{margin:0;min-height:4.6em;max-width:480px;font-size:16px;line-height:1.45;color:rgba(255,255,255,.88);display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.tb-ai-caption b{font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:#7db8ff;margin-right:4px}
.tb-ai-caption[data-role="user"] b{color:#4ade80}
.tb-ai-alert{width:100%;max-width:480px;margin:0;padding:12px 14px;border-radius:14px;background:rgba(239,68,68,.14);border:1px solid rgba(248,113,113,.4);color:#fee2e2;font-size:14px;line-height:1.45;text-align:left}
.tb-ai-call-controls{display:flex;align-items:flex-start;justify-content:center;gap:clamp(18px,6vw,40px);margin-top:auto;padding-top:8px}
.tb-ai-ctl{display:grid;grid-template-rows:76px auto;align-items:center;justify-items:center;gap:6px;padding:0;border:0;background:transparent;color:#fff;font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}
.tb-ai-ctl-icon{display:grid;place-items:center;width:62px;height:62px;border-radius:50%;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.14);font-size:25px;transition:transform .15s,background .15s}
.tb-ai-ctl:hover .tb-ai-ctl-icon{background:rgba(255,255,255,.2)}
.tb-ai-ctl:active .tb-ai-ctl-icon{transform:scale(.94)}
.tb-ai-ctl-label{font-size:12px;font-weight:800;color:rgba(255,255,255,.72)}
.tb-ai-ctl:disabled{cursor:default;opacity:.4}
.tb-ai-ctl:disabled:hover .tb-ai-ctl-icon{background:rgba(255,255,255,.12)}
.tb-ai-ctl[aria-pressed="true"] .tb-ai-ctl-icon,.tb-ai-ctl[aria-expanded="true"] .tb-ai-ctl-icon{background:#fff;color:#061426}
.tb-ai-ctl-call .tb-ai-ctl-icon,.tb-ai-ctl-end .tb-ai-ctl-icon{width:76px;height:76px;font-size:30px;border:0}
.tb-ai-ctl-call .tb-ai-ctl-icon{background:#22c55e;box-shadow:0 12px 30px rgba(34,197,94,.45)}
.tb-ai-ctl-call:hover .tb-ai-ctl-icon{background:#16a34a}
.tb-ai-ctl-call:disabled{opacity:.6}
[data-state="connecting"] .tb-ai-ctl-call .tb-ai-ctl-icon{animation:tb-ai-pulse 1.4s infinite}
.tb-ai-ctl-end .tb-ai-ctl-icon{background:#ef4444;box-shadow:0 12px 30px rgba(239,68,68,.45)}
.tb-ai-ctl-end .tb-ai-ctl-icon svg{transform:rotate(135deg)}
.tb-ai-ctl-end:hover .tb-ai-ctl-icon{background:#dc2626}
.tb-ai-call-fine{margin:4px 0 0;font-size:12px;color:rgba(255,255,255,.45)}
.tb-ai-transcript{flex:none;max-height:240px;overflow:auto;padding:14px 18px;background:#f4f7fb;border-top:1px solid var(--line);color:var(--ink);text-align:left}
.tb-ai-transcript-title{margin:0 0 6px;font-size:11px;font-weight:900;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.tb-ai-transcript-empty{margin:0;color:var(--muted);font-size:14px}
.tb-ai-line{display:grid;gap:1px;padding:6px 0;font-size:14px;line-height:1.45;overflow-wrap:anywhere}
.tb-ai-line b{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.tb-ai-line-assistant b{color:var(--blue)}
.tb-ai-line-user b{color:var(--green)}
.tb-ai-line.is-pending span{color:var(--muted)}
/* In the modal the call and the transcript share a fixed height: compact call, controls always visible. */
.tb-ai-modal .tb-ai-pane>.tb-ai-voice{flex:1;min-height:0}
.tb-ai-modal .is-transcript-open .tb-ai-call{flex:none;gap:8px;padding-bottom:12px}
.tb-ai-modal .is-transcript-open .tb-ai-avatar-call{width:72px;height:72px;margin-bottom:8px}
.tb-ai-modal .is-transcript-open .tb-ai-avatar-call b{font-size:21px}
.tb-ai-modal .is-transcript-open :is(.tb-ai-wave,.tb-ai-caption,.tb-ai-call-role,.tb-ai-call-fine){display:none}
.tb-ai-modal .is-transcript-open .tb-ai-call-id{margin-top:0}
.tb-ai-modal .is-transcript-open .tb-ai-voice-status{margin-top:6px}
.tb-ai-modal .is-transcript-open .tb-ai-call-controls{margin-top:4px;padding-top:0}
.tb-ai-modal .is-transcript-open .tb-ai-transcript{flex:1 1 auto;min-height:0;max-height:none}

/* Panel header (chat) */
.tb-ai-panel-head{display:flex;align-items:center;gap:11px;padding:14px 18px;border-bottom:1px solid var(--line)}
.tb-ai-panel-head strong{display:block;font-size:15px;line-height:1.25}
.tb-ai-panel-head small{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:13px}
.tb-ai-avatar{flex:0 0 auto;display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:linear-gradient(135deg,#367dff,#1d5ef2);color:#fff;font-size:13px;font-weight:950;letter-spacing:.02em}
.tb-ai-online{width:8px;height:8px;border-radius:50%;background:#3ddc97;display:inline-block}
.tb-ai-fine{display:block;margin:10px 0 0;font-size:12px;color:var(--muted);text-align:center}

/* Chat */
.tb-ai-chat{display:flex;flex-direction:column;height:100%;min-height:0}
.tb-ai-log{flex:1;min-height:220px;overflow-y:auto;overflow-x:hidden;padding:16px 18px;display:flex;flex-direction:column;gap:10px;background:var(--soft)}
.tb-ai-msg{display:flex}
.tb-ai-msg-user{justify-content:flex-end}
.tb-ai-bubble{max-width:82%;padding:10px 14px;border-radius:16px;font-size:15px;line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere}
.tb-ai-msg-assistant .tb-ai-bubble{background:#fff;border:1px solid var(--line);border-bottom-left-radius:5px}
.tb-ai-msg-user .tb-ai-bubble{background:linear-gradient(135deg,#367dff,#1d5ef2);color:#fff;border-bottom-right-radius:5px}
.tb-ai-msg-error .tb-ai-bubble{max-width:100%;background:#fdf0f1;border:1px solid #f3c6cb;color:#8e2330;font-size:14px}
.tb-ai-typing .tb-ai-bubble{display:flex;gap:4px;padding:14px 16px}
.tb-ai-typing i{width:7px;height:7px;border-radius:50%;background:#9aa7b8;animation:tb-ai-dot 1.2s infinite}
.tb-ai-typing i:nth-child(2){animation-delay:.15s}.tb-ai-typing i:nth-child(3){animation-delay:.3s}
@keyframes tb-ai-dot{0%,80%,100%{opacity:.3;transform:translateY(0)}40%{opacity:1;transform:translateY(-3px)}}
.tb-ai-form{display:flex;align-items:flex-end;gap:8px;padding:12px 14px 0;border-top:1px solid var(--line);background:#fff}
.tb-ai-form textarea{flex:1;min-width:0;min-height:48px;max-height:132px;padding:12px 14px;border:1px solid var(--line);border-radius:14px;font:inherit;font-size:16px;line-height:1.4;color:var(--ink);resize:none;background:#fff}
.tb-ai-form textarea:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px rgba(44,111,255,.15)}
.tb-ai-form button{flex:0 0 auto;width:48px;height:48px;border:0;border-radius:14px;background:linear-gradient(135deg,#367dff,#1d5ef2);color:#fff;font-size:18px;cursor:pointer}
.tb-ai-form button:disabled{opacity:.5;cursor:progress}
.tb-ai-chat-fine{margin:6px 0 10px;padding:0 14px}

/* ai-demo.html */
.tb-ai-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:30px;max-width:820px}
.tb-ai-choice{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:22px 22px 20px;border-radius:20px;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.06);color:#fff;font:inherit;text-align:left;cursor:pointer;transition:transform .18s,background .18s,border-color .18s}
.tb-ai-choice:hover{transform:translateY(-2px);background:rgba(255,255,255,.1);border-color:rgba(125,184,255,.5)}
.tb-ai-choice small{font-size:12px;font-weight:900;letter-spacing:.12em;color:#7db8ff}
.tb-ai-choice b{font-size:22px;letter-spacing:-.02em}
.tb-ai-choice span{font-size:14px;color:rgba(255,255,255,.7)}
.tb-ai-page-workspace{max-width:980px;margin:0 auto;background:#fff;border:1px solid var(--line);border-radius:24px;box-shadow:var(--shadow);overflow:hidden;scroll-margin-top:20px}
.tb-ai-page-workspace .tb-ai-chat{height:auto}
.tb-ai-page-workspace .tb-ai-log{height:420px;flex:none}
.tb-ai-page-workspace .tb-ai-call{min-height:600px}
@media(min-width:900px){
  .tb-ai-page-workspace .tb-ai-voice.is-transcript-open{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr)}
  .tb-ai-page-workspace .is-transcript-open .tb-ai-transcript{max-height:none;border-top:0;border-left:1px solid var(--line);padding:20px 22px}
}

@media(prefers-reduced-motion:reduce){
  .tb-ai-avatar-call span,.tb-ai-fab-icon,.tb-ai-call-badge i,.tb-ai-invite,.tb-ai-invite-backdrop,.tb-ai-modal{animation:none!important}
}

@media(max-width:760px){
  /* One row above .callbar. The voice button keeps a word: an icon alone would read as "bel ons". */
  .tb-ai-fabs{right:12px;bottom:calc(76px + env(safe-area-inset-bottom));flex-direction:row-reverse;align-items:center;gap:8px}
  .tb-ai-fab{padding:8px 14px 8px 8px;font-size:14px;gap:8px}
  .tb-ai-fab-long{display:none}
  .tb-ai-fab-short{display:inline}
  .tb-ai-fab-icon{width:30px;height:30px;font-size:15px}
  .tb-ai-invite-backdrop{align-items:flex-end;padding:0}
  .tb-ai-invite{width:100%;border-radius:24px 24px 0 0;padding-bottom:env(safe-area-inset-bottom)}
  .tb-ai-invite-call{padding:28px 20px 18px}
  .tb-ai-invite-call .tb-ai-avatar-call{width:80px;height:80px}
  .tb-ai-invite-title{font-size:21px;margin:18px 20px 6px}
  .tb-ai-invite-text{margin:0 20px 16px;font-size:14px}
  .tb-ai-invite-actions{padding:0 20px}
  .tb-ai-overlay{padding:0}
  .tb-ai-modal{width:100%;height:100vh;height:100dvh;border-radius:0}
  .tb-ai-modal-head{padding:12px 58px 10px 16px}
  .tb-ai-modal-head h2{font-size:18px}
  .tb-ai-choose{align-content:start;padding-top:32px}
  .tb-ai-call{padding:14px 16px 16px;gap:10px}
  .tb-ai-call-id{margin-top:18px}
  .tb-ai-caption{font-size:15px}
  .tb-ai-transcript{max-height:34vh}
  .tb-ai-bubble{max-width:88%}
  .tb-ai-choices{grid-template-columns:1fr}
  .tb-ai-page-workspace{border-radius:18px}
  .tb-ai-page-workspace .tb-ai-log{height:55vh}
  .tb-ai-page-workspace .tb-ai-call{min-height:calc(100svh - 120px)}
}

/* Short screens (iPhone SE, landscape laptops): keep the whole call, controls included, in view. */
@media(max-height:720px){
  .tb-ai-call{gap:8px;padding-top:10px}
  .tb-ai-call-id{margin-top:0!important}
  .tb-ai-call .tb-ai-avatar-call{width:80px;height:80px;margin-bottom:8px}
  .tb-ai-call .tb-ai-avatar-call b{font-size:22px}
  .tb-ai-call-name{font-size:19px}
  .tb-ai-call-role,.tb-ai-call-fine{display:none}
  .tb-ai-voice-status{margin-top:4px}
  .tb-ai-wave{height:40px}
  .tb-ai-caption{min-height:3em;-webkit-line-clamp:3;font-size:14px}
  .tb-ai-ctl{grid-template-rows:64px auto}
  .tb-ai-ctl-icon{width:54px;height:54px;font-size:22px}
  .tb-ai-ctl-call .tb-ai-ctl-icon,.tb-ai-ctl-end .tb-ai-ctl-icon{width:64px;height:64px;font-size:26px}
}