.source-viewer-layer-v68{position:fixed;inset:0;z-index:10080;display:grid;background:rgba(6,22,34,.52);backdrop-filter:blur(5px)}.source-viewer-v68{display:grid;grid-template-rows:auto minmax(0,1fr) auto;width:100%;height:100dvh;background:var(--card,#fff)}.source-viewer-v68>header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:14px 16px;border-bottom:1px solid var(--line,#dce6ea)}.source-viewer-v68>header h2{margin:2px 0 0;font-size:1.05rem}.source-viewer-v68>header small{color:var(--muted,#68798b)}.source-viewer-v68>header button{width:40px;height:40px;border:0;border-radius:50%;font-size:26px;background:var(--accent-soft,#e7f7f5);color:var(--text,#102a43)}.source-pdf-frame-v68{width:100%;height:100%;border:0;background:#eef2f4}.source-viewer-v68>footer{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:12px 16px calc(12px + env(safe-area-inset-bottom));border-top:1px solid var(--line,#dce6ea);background:var(--card,#fff)}.source-viewer-v68>footer a{display:grid;place-items:center;text-decoration:none}.source-viewer-loading-v68,.source-viewer-error-v68{align-self:center;justify-self:center;max-width:420px;padding:24px;text-align:center}.source-viewer-error-v68{display:grid;gap:10px}.source-viewer-error-v68 p{margin:0;color:var(--muted,#68798b)}@media(min-width:820px){.source-viewer-layer-v68{padding:24px}.source-viewer-v68{width:min(920px,92vw);height:min(92vh,980px);align-self:center;justify-self:center;border-radius:22px;overflow:hidden;box-shadow:0 24px 80px rgba(0,0,0,.28)}}
/* V69: true fullscreen AI workspace inside Telegram Mini App viewport. */
body.ai-fullscreen{overflow:hidden}
body.ai-fullscreen .topbar,
body.ai-fullscreen .bottom-nav,
body.ai-fullscreen .content[data-page="ai"]>.page-head,
body.ai-fullscreen .content[data-page="ai"]>.ai-context-select,
body.ai-fullscreen .content[data-page="ai"]>.ai-about,
body.ai-fullscreen .content[data-page="ai"]>.ai-presets-fold{display:none!important}
body.ai-fullscreen .phone{height:100dvh;min-height:100dvh;overflow:hidden}
body.ai-fullscreen .content[data-page="ai"]{
  position:fixed;inset:0;z-index:10060;
  display:block;width:100%;height:100dvh;max-width:none;
  padding:0!important;margin:0;background:var(--bg,#f4f8f9);overflow:hidden
}
body.ai-fullscreen .content[data-page="ai"] .ai-dialog-shell.is-expanded{
  position:absolute;inset:0;
  display:grid;grid-template-rows:auto minmax(0,1fr) auto auto;
  width:100%;height:100dvh;min-height:0;max-height:none;
  margin:0;border:0;border-radius:0;background:var(--card,#fff);overflow:hidden
}
body.ai-fullscreen .content[data-page="ai"] .ai-dialog-toolbar{
  min-height:56px;padding:max(10px,env(safe-area-inset-top)) 14px 10px;
  border-bottom:1px solid var(--line,#dce6ea);background:var(--card,#fff);z-index:2
}
body.ai-fullscreen .content[data-page="ai"] .ai-chat-window{min-height:0;height:auto;overflow:hidden}
body.ai-fullscreen .content[data-page="ai"] .chat-list{height:100%;min-height:0;overflow-y:auto;padding:14px 14px 20px}
body.ai-fullscreen .content[data-page="ai"] .ai-compose{
  position:relative;bottom:auto;left:auto;right:auto;
  padding:10px 12px max(10px,env(safe-area-inset-bottom));
  border-top:1px solid var(--line,#dce6ea);background:var(--card,#fff);z-index:3
}
body.ai-fullscreen .content[data-page="ai"] .ai-suggestions{display:none}
@media(min-width:820px){
  body.ai-fullscreen .content[data-page="ai"]{display:grid;place-items:center;background:rgba(4,16,24,.28)}
  body.ai-fullscreen .content[data-page="ai"] .ai-dialog-shell.is-expanded{
    position:relative;width:min(820px,96vw);height:min(94dvh,1000px);
    border-radius:22px;box-shadow:0 24px 80px rgba(0,0,0,.25)
  }
}

/* V70: immersive AI reading mode + Assistant response preferences. */
body.ai-fullscreen .content[data-page="ai"] .ai-dialog-toolbar{
  min-height:46px;padding:max(6px,env(safe-area-inset-top)) 10px 6px
}
body.ai-fullscreen .content[data-page="ai"] .ai-dialog-toolbar>strong{font-size:.9rem;opacity:.72}
body.ai-fullscreen .content[data-page="ai"] .ai-dialog-toolbar button{
  min-height:36px;padding:6px 10px;border-radius:999px
}
body.ai-fullscreen .content[data-page="ai"] .chat-list{
  padding:8px 8px 14px;font-size:16px;line-height:1.58;align-content:start
}
body.ai-fullscreen .content[data-page="ai"] .chat-user,
body.ai-fullscreen .content[data-page="ai"] .chat-assistant{
  margin-left:0;margin-right:0;border-radius:14px;padding:12px 12px
}
body.ai-fullscreen .content[data-page="ai"] .ai-compose{
  padding:7px 8px max(7px,env(safe-area-inset-bottom));gap:6px
}
body.ai-fullscreen .content[data-page="ai"] .ai-compose textarea{
  min-height:44px;max-height:90px;padding:9px 10px
}
.assistant-response-settings{margin-top:14px}
.assistant-response-choice{display:grid;gap:8px;margin-top:10px}
.assistant-response-choice button{
  width:100%;display:grid;gap:3px;text-align:left;padding:12px 14px;
  border:1px solid var(--line,#cbdde4);border-radius:14px;
  background:var(--card,#fff);color:inherit
}
.assistant-response-choice button.active{
  border-color:#159b98;box-shadow:inset 0 0 0 1px #159b98;background:var(--accent-soft,#e8f8f6)
}
.assistant-response-choice small{color:var(--muted,#60758a)}

.assistant-voice-settings{margin-top:14px}
.assistant-voice-settings .field{display:grid;gap:6px;margin-top:10px}
.assistant-voice-settings select{width:100%;min-height:44px;border:1px solid var(--line,#cbdde4);border-radius:12px;background:var(--card,#fff);color:inherit;padding:0 12px}

/* V71: Free AI inline voice, Pro Jarvis Voice, speech player, settings shortcut. */
.topbar-actions{display:flex;align-items:center;gap:8px;min-width:0}
.top-settings-button{width:42px;min-width:42px;height:42px;border:1px solid var(--line,#cbdde4);border-radius:13px;background:var(--card,#fff);color:var(--text,#102a43);font-size:19px;padding:0}
.ai-inline-listening{display:flex;align-items:center;gap:10px;margin:0 12px 8px;padding:10px 12px;border:1px solid #9fd8d4;border-radius:14px;background:#eaf8f6;color:#123b4d}
.ai-inline-listening>div{display:grid;gap:2px;flex:1;min-width:0}.ai-inline-listening small{color:#5d7482}.ai-inline-listening button{min-height:36px;padding:6px 10px;border:0;border-radius:10px;background:#123b4d;color:#fff}
.voice-pulse{width:13px;height:13px;border-radius:50%;background:#18aaa3;box-shadow:0 0 0 7px rgba(24,170,163,.12);animation:voicePulse 1.1s ease-in-out infinite}
@keyframes voicePulse{50%{transform:scale(.72);opacity:.6}}
.ai-compose .inline-voice.listening{background:#d9f5f1!important;box-shadow:0 0 0 4px rgba(24,170,163,.12)}
.ai-compose .inline-voice.processing{opacity:.65;pointer-events:none}

.jarvis-voice-layer{position:fixed;inset:0;z-index:10150;background:#07131b}
.jarvis-voice-screen{height:100dvh;display:grid;grid-template-rows:auto minmax(0,1fr) auto;background:radial-gradient(circle at 50% 38%,#173946 0,#091923 38%,#050b10 78%);color:#f7fbfc}
.jarvis-voice-screen>header{display:flex;align-items:center;justify-content:space-between;padding:max(14px,env(safe-area-inset-top)) 18px 10px}.jarvis-voice-screen>header h2{margin:3px 0 0}.jarvis-voice-screen>header button{border:0;border-radius:999px;padding:9px 14px;background:rgba(255,255,255,.1);color:#fff}
.jarvis-voice-stage{display:grid;place-items:center;align-content:center;text-align:center;padding:24px}.jarvis-voice-stage>strong{font-size:1.55rem;margin-top:26px}.jarvis-voice-stage>p{max-width:360px;color:#adc4cd;line-height:1.5}
.jarvis-orb{position:relative;width:160px;height:160px;border-radius:50%;background:radial-gradient(circle,#70e5dd 0,#1e9e9c 35%,rgba(24,170,163,.2) 70%,transparent 72%);box-shadow:0 0 70px rgba(65,220,207,.25)}
.jarvis-orb span,.jarvis-orb i,.jarvis-orb b{position:absolute;inset:18px;border:1px solid rgba(255,255,255,.35);border-radius:50%;animation:jarvisRing 2.2s ease-in-out infinite}.jarvis-orb i{inset:32px;animation-delay:.3s}.jarvis-orb b{inset:46px;animation-delay:.6s}
@keyframes jarvisRing{50%{transform:scale(1.13);opacity:.25}}
.jarvis-voice-screen>footer{display:grid;grid-template-columns:1fr auto;gap:10px;padding:10px 16px max(14px,env(safe-area-inset-bottom))}
body.jarvis-voice-open{overflow:hidden}

.speech-player{position:fixed;left:50%;bottom:calc(88px + env(safe-area-inset-bottom));transform:translateX(-50%);z-index:10200;width:min(94vw,520px);display:grid;grid-template-columns:44px 1fr auto 40px;gap:8px;align-items:center;padding:10px 12px;border:1px solid rgba(18,59,77,.15);border-radius:18px;background:rgba(255,255,255,.96);box-shadow:0 16px 50px rgba(9,35,49,.2);backdrop-filter:blur(18px);color:#123b4d}
.speech-player>div{display:grid;gap:2px}.speech-player small{color:#607887}.speech-player button{min-height:40px;border:0;border-radius:12px;background:#e7f6f4;color:#123b4d}.speech-player select{min-height:40px;border:1px solid #c8dde1;border-radius:11px;background:#fff;color:#123b4d;padding:0 8px}
@media(max-width:430px){.role-switch{max-width:124px}.top-settings-button{width:38px;min-width:38px;height:38px}.speech-player{grid-template-columns:40px 1fr auto 36px;padding:8px}}

/* V72: live Jarvis mic level + dedicated Settings surface. */
.jarvis-orb{
  --voice-level:0;
  transform:scale(calc(1 + var(--voice-level)*.16));
  filter:brightness(calc(1 + var(--voice-level)*.5));
  transition:transform .09s linear,filter .09s linear,box-shadow .09s linear;
  box-shadow:
    0 0 calc(45px + var(--voice-level)*95px) rgba(65,220,207,calc(.16 + var(--voice-level)*.48)),
    inset 0 0 calc(16px + var(--voice-level)*24px) rgba(255,255,255,calc(.08 + var(--voice-level)*.28));
}
.jarvis-orb.hearing span,.jarvis-orb.hearing i,.jarvis-orb.hearing b{animation-duration:.72s}
#jarvis-mic-status{display:block;margin-top:14px;font-size:.82rem;letter-spacing:.02em;color:#7fb9be;opacity:.95;min-height:1.2em}
.settings-layer{position:fixed;inset:0;z-index:10240;background:rgba(7,19,27,.42);backdrop-filter:blur(12px)}
.settings-screen{position:absolute;inset:0;background:var(--bg,#f4f8f9);display:grid;grid-template-rows:auto minmax(0,1fr);overflow:hidden}
.settings-screen>header{display:flex;align-items:center;justify-content:space-between;padding:max(14px,env(safe-area-inset-top)) 18px 12px;background:var(--card,#fff);border-bottom:1px solid var(--line,#dce6ea)}
.settings-screen>header h2{margin:3px 0 0;font-size:1.55rem}
.settings-screen>header button{width:42px;height:42px;border:1px solid var(--line,#dce6ea);border-radius:50%;background:var(--card,#fff);font-size:24px;color:inherit}
.settings-scroll{overflow:auto;padding:14px 14px max(24px,env(safe-area-inset-bottom))}
body.settings-open{overflow:hidden}
.free-ai-settings,.assistant-response-settings,.assistant-voice-settings{margin-top:0;margin-bottom:12px}
.settings-toggle{display:flex;gap:10px;align-items:flex-start;padding:12px 0;border-top:1px solid var(--line,#e2eaed)}
.settings-toggle:first-of-type{border-top:0}.settings-toggle input{margin-top:4px}.settings-toggle span{display:grid;gap:3px}.settings-toggle small{color:var(--muted,#607887)}

/* V73: explicit Free/Pro capability summary. */
.plan-settings-card{margin-bottom:12px}
.plan-feature-grid{display:grid;gap:8px;margin-top:12px}
.plan-feature-grid>div{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:10px;row-gap:2px;align-items:center;padding:10px 0;border-top:1px solid var(--line,#e2eaed)}
.plan-feature-grid>div:first-child{border-top:0}
.plan-feature-grid strong{grid-column:1}.plan-feature-grid span{grid-column:1;color:var(--muted,#607887);font-size:.9rem}.plan-feature-grid b{grid-column:2;grid-row:1/3;align-self:center;color:#147d77}
.badge.neutral{background:#eef3f5;color:#536a78}

.ai-inline-listening .voice-pulse{
  --voice-level:0;
  transform:scale(calc(1 + var(--voice-level)*.75));
  box-shadow:0 0 calc(8px + var(--voice-level)*28px) rgba(24,170,163,calc(.16 + var(--voice-level)*.52));
  transition:transform .08s linear,box-shadow .08s linear,opacity .08s linear;
}
.ai-inline-listening .voice-pulse.hearing{opacity:1}


/* V74: mobile calendar appointment form must scroll to the confirmation action. */
.sheet-backdrop:has(.appointment-sheet){
  align-items:flex-end;
  padding:0;
  overflow:hidden;
  overscroll-behavior:none;
}
.appointment-sheet{
  position:relative;
  box-sizing:border-box;
  width:min(430px,100%);
  max-height:calc(var(--app-visible-height,100dvh) - 56px);
  min-height:0;
  overflow-y:auto;
  overflow-x:hidden;
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
  touch-action:pan-y;
  padding:18px 18px max(32px,calc(env(safe-area-inset-bottom) + 16px));
  background:var(--card,#fff);
  border-radius:24px 24px 0 0;
  box-shadow:0 -12px 40px rgba(16,42,67,.18);
}
.appointment-sheet>header{
  position:sticky;
  top:-18px;
  z-index:2;
  margin:0 -2px 4px;
  padding:4px 2px 10px;
  background:var(--card,#fff);
}
.appointment-sheet form{min-width:0;padding-bottom:8px}
.appointment-sheet .sticky-save{margin-bottom:4px}
@media(min-width:821px){
  .sheet-backdrop:has(.appointment-sheet){padding:16px}
  .appointment-sheet{border-radius:24px;max-height:min(860px,calc(100dvh - 32px))}
}
