:root{color-scheme:light;--paper:#f7f2ea;--paper-strong:#fffaf3;--ink:#241f1c;--muted:#776d64;--line:#ddd2c3;--rose:#bf5b6a;--teal:#2f7d78;--amber:#c48a3b;--shadow:0 18px 50px rgba(49,38,30,0.14);--safe-bottom:env(safe-area-inset-bottom,0px)}*{box-sizing:border-box}[hidden]{display:none!important}body,html{width:100%;max-width:100%;min-height:100%;margin:0;overflow-x:hidden;background:var(--paper);color:var(--ink);font-family:Arial,Microsoft YaHei,sans-serif;letter-spacing:0}.pwaUpdateBanner{position:fixed;z-index:1000;top:calc(env(safe-area-inset-top) + 10px);left:50%;display:flex;align-items:center;gap:12px;max-width:calc(100vw - 24px);padding:10px 12px;border:1px solid rgba(255,255,255,.48);border-radius:999px;background:rgba(40,34,32,.88);color:#fff;box-shadow:0 12px 30px rgba(25,20,18,.24);transform:translateX(-50%);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.pwaUpdateBanner button{border:0;border-radius:999px;padding:7px 11px;background:#fff;color:#332b28;font:inherit}button,input,textarea{font:inherit;letter-spacing:0}button{cursor:pointer}.lockShell{display:grid;place-items:center;min-height:100dvh;padding:22px;background:linear-gradient(135deg,rgba(191,91,106,.08),transparent 34%),linear-gradient(315deg,rgba(47,125,120,.08),transparent 38%),var(--paper)}.lockPanel{display:grid;width:min(360px,100%);gap:14px;border:1px solid var(--line);border-radius:8px;padding:24px;background:rgba(255,250,243,.9);box-shadow:var(--shadow)}.lockPanel h1{font-size:24px}.lockMessage,.lockPanel p{color:var(--muted);font-size:14px;line-height:1.45}.lockMark{display:grid;place-items:center;width:46px;border:1px solid rgba(47,125,120,.24);border-radius:8px;color:var(--teal)}.lockInput,.lockMark{height:46px;background:var(--paper-strong)}.lockInput{width:100%;border:1px solid var(--line);border-radius:8px;padding:0 12px;color:var(--ink);outline:none}.lockInput:focus{border-color:var(--teal);box-shadow:0 0 0 3px rgba(47,125,120,.14)}.lockButton{height:42px;border:1px solid var(--ink);border-radius:8px;background:var(--ink);color:var(--paper-strong)}.lockButton:disabled{cursor:not-allowed;opacity:.45}.shell{display:grid;grid-template-columns:minmax(0,1fr);width:100%;max-width:100vw;height:100svh;height:100dvh;min-width:0;min-height:0;overflow:hidden;background:linear-gradient(135deg,rgba(191,91,106,.08),transparent 34%),linear-gradient(315deg,rgba(47,125,120,.08),transparent 38%),var(--paper)}.shell>.contextPanel,.shell>.rail{display:none}.shell.background-harbor{--paper:#edf4f3;--paper-strong:#f8fbfa;--muted:#61726f;--line:#c9dcda;--rose:#b45f75;--teal:#236f79;background:linear-gradient(140deg,rgba(35,111,121,.16),transparent 42%),linear-gradient(320deg,rgba(196,138,59,.08),transparent 40%),var(--paper)}.shell.background-night{--paper:#1e2426;--paper-strong:#283033;--ink:#f5eee7;--muted:#b9c2c0;--line:#3d494c;--rose:#d98190;--teal:#78c7c0;--amber:#e0b66d;--shadow:0 18px 50px rgba(0,0,0,0.26);background:linear-gradient(150deg,rgba(120,199,192,.11),transparent 38%),linear-gradient(320deg,rgba(217,129,144,.1),transparent 36%),var(--paper)}.shell.background-paper{background:linear-gradient(135deg,rgba(196,138,59,.07),transparent 34%),linear-gradient(315deg,rgba(47,125,120,.06),transparent 38%),#f8f6ef}.shell.background-custom{position:relative;isolation:isolate;background:var(--paper)}.customBackgroundLayer{display:none}.shell.background-custom>.customBackgroundLayer{position:fixed;inset:0;width:100dvw;height:100dvh;z-index:0;display:block;pointer-events:none;background:linear-gradient(180deg,rgba(14,16,16,.06),rgba(14,16,16,.12) 50%,rgba(247,242,234,.18) 100%),var(--custom-background-image),var(--paper);background-position:50%,var(--custom-background-focus-x,50%) var(--custom-background-focus-y,18%),50%;background-size:cover,cover,cover;background-repeat:no-repeat;transform:scale(calc(var(--custom-background-zoom, 1))) rotate(var(--custom-background-rotation,0deg));transform-origin:center}.shell.background-custom>.customBackgroundLayer[data-quarter-turn=true]{inset:auto;left:50%;top:50%;width:100dvh;height:100dvw;transform:translate(-50%,-50%) scale(calc(var(--custom-background-zoom, 1))) rotate(var(--custom-background-rotation,90deg))}.operationCancelButton{justify-self:center;display:inline-flex;align-items:center;gap:.35rem;margin:.35rem auto 0;padding:.5rem .85rem;border:1px solid rgba(92,119,109,.32);border-radius:999px;color:var(--ink-soft);background:rgba(250,248,242,.9)}.shell.background-custom>.conversation{z-index:1}.shell.chatOnly{display:grid!important;grid-template-columns:minmax(0,1fr);width:100vw;max-width:100vw;min-width:100vw;overflow:hidden}.shell.chatOnly[data-layout-rescue=true]{grid-template-columns:minmax(0,1fr)!important;width:var(--app-viewport-width,100vw)!important;max-width:var(--app-viewport-width,100vw)!important;min-width:var(--app-viewport-width,100vw)!important}.shell.chatOnly .contextPanel,.shell.chatOnly>.rail{display:none}.shell.chatOnly>*{min-width:0;max-width:100vw}.shell.chatOnly .chatDock,.shell.chatOnly .composer,.shell.chatOnly .conversation,.shell.chatOnly .messageList,.shell.chatOnly .topbar{width:100%;max-width:100vw;min-width:0}.shell.chatOnly.background-custom .chatDock,.shell.chatOnly.background-custom .composer,.shell.chatOnly.background-custom .rail,.shell.chatOnly.background-custom .topbar{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.shell.chatOnly.background-custom .topbar{background:linear-gradient(180deg,rgba(247,242,234,.46),rgba(247,242,234,0))}.shell.chatOnly.background-custom .chatDock{height:min(var(--face-safe-dock-height,48dvh),calc(100dvh - 84px));min-height:42dvh;max-height:52dvh;background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none}.shell.chatOnly.background-custom .composer{background:rgba(247,242,234,.5);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.shell.background-custom .message{max-width:min(720px,88%);border-color:rgba(255,250,243,.36);box-shadow:0 10px 26px rgba(38,31,25,.12);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.shell.background-custom .message.assistant{background:rgba(255,250,243,.6)}.shell.background-custom .message.user{background:rgba(39,51,49,.62)}.shell.background-custom .actionText{color:rgba(72,62,55,.82)}.shell.background-custom .messageList{padding-top:14px;background:transparent}.shell.text-large .message.user p,.shell.text-large .spokenText{font-size:17px}.shell.text-large .actionText{font-size:14px}.shell.density-compact .message{margin-bottom:7px}.shell.density-compact .message.assistant,.shell.density-compact .message.user{padding:9px 11px}.shell.reduceMotion *,.shell.reduceMotion :after,.shell.reduceMotion :before{scroll-behavior:auto!important;transition:none!important;animation:none!important}.rail{display:flex;flex-direction:column;align-items:center;gap:12px;padding:18px 12px;border-right:1px solid var(--line);background:rgba(255,250,243,.7)}.iconButton,.sendButton{display:inline-grid;place-items:center;width:44px;height:44px;border:1px solid var(--line);border-radius:8px;background:var(--paper-strong);color:var(--ink);text-decoration:none;transition:transform .16s ease,border-color .16s ease,background .16s ease}.iconButton:hover,.sendButton:hover{transform:translateY(-1px);border-color:var(--rose)}.iconButton.active,.sendButton{background:var(--ink);color:var(--paper-strong);border-color:var(--ink)}.sendButton:disabled{cursor:not-allowed;opacity:.45;transform:none}.conversation{position:relative;display:grid;grid-template-rows:auto minmax(0,1fr);min-width:0;min-height:0;height:100dvh;overflow:hidden}.topbar{position:absolute;top:0;left:0;right:0;z-index:3;justify-content:flex-start;gap:10px;padding:calc(10px + var(--safe-top)) clamp(14px,4vw,28px) 12px;border-bottom:0;background:linear-gradient(180deg,rgba(247,242,234,.5),rgba(247,242,234,0));-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);pointer-events:none}.identity,.topbar{display:flex;align-items:center}.identity{min-width:0;gap:12px;pointer-events:auto}.avatar{display:grid;place-items:center;width:46px;height:46px;border-radius:50%;background:linear-gradient(145deg,rgba(191,91,106,.92),rgba(36,31,28,.92)),var(--rose);color:#fffaf3;font-size:20px;font-weight:700;box-shadow:var(--shadow)}h1,h2,h3,p{margin:0}h1{font-size:20px;line-height:1.2}.identity p{margin-top:4px;color:var(--muted);font-size:13px;line-height:1.3}.topActions{display:flex;align-items:center;gap:10px;min-width:0;max-width:100%;overflow-x:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;scrollbar-width:none}.topActions .iconButton{flex:0 0 auto}.portraitFocus{position:absolute;inset:0 0 54dvh;min-height:0;pointer-events:none}.shell.background-custom .portraitFocus{inset:0 0 44dvh}.chatDock{position:absolute;z-index:2;left:0;right:0;bottom:0;display:grid;grid-template-rows:minmax(0,1fr) auto auto;align-self:end;justify-self:center;width:100%;height:min(62dvh,calc(100dvh - 72px));min-height:54dvh;max-height:66dvh;border-top:0;background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:none}.messageList{display:flex;flex-direction:column;gap:9px;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:16px clamp(13px,3vw,38px) 8px;mask-image:none;-webkit-mask-image:none}.messageList:before{content:"";margin-top:auto}.sessionStatus{padding:0 clamp(12px,3vw,36px) 5px;color:var(--muted);font-size:11px;line-height:1.3}.message{max-width:min(760px,88%);border:1px solid var(--line);border-radius:8px;padding:11px 13px;box-shadow:0 10px 28px rgba(49,38,30,.08)}.message.assistant{position:relative;align-self:flex-start;background:rgba(255,250,243,.72);touch-action:pan-y;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.message.assistant.menuOpen{border-color:rgba(47,125,120,.28)}.message.user{position:relative;align-self:flex-end;background:rgba(39,51,49,.72);color:#fffaf3;border-color:rgba(39,51,49,.72);touch-action:pan-y}.message.user p,.mixedReplyText,.spokenText{font-size:16px;line-height:1.55;word-break:break-word}.mixedReplyText{padding-right:24px;white-space:pre-wrap}.displayPartTrace{display:none}.actionText{padding-right:24px;margin-bottom:5px;color:var(--muted);font-size:13px;line-height:1.45;word-break:break-word}.messageMenuButton{position:absolute;top:6px;right:6px;display:inline-grid;place-items:center;width:26px;height:26px;border:1px solid rgba(104,90,78,.14);border-radius:8px;background:rgba(255,250,243,.74);color:var(--muted);opacity:.72;transition:opacity .16s ease,border-color .16s ease,background .16s ease}.message.user .userEditButton{opacity:.92;background:rgba(255,250,243,.9);color:var(--teal)}.message.user .userEditButton:disabled{opacity:.42}.message.menuOpen .messageMenuButton,.messageMenuButton:focus-visible,.messageMenuButton:hover{border-color:rgba(47,125,120,.28);background:rgba(255,250,243,.96);color:var(--teal);opacity:1}.messageActionMenu{position:absolute;top:34px;right:6px;z-index:4;display:flex;gap:5px;margin-top:0;padding:5px;border:1px solid rgba(104,90,78,.16);border-radius:8px;background:rgba(255,250,243,.94);box-shadow:0 8px 22px rgba(49,38,30,.12);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.messageActionButton{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:34px;border:1px solid rgba(47,125,120,.22);border-radius:8px;padding:7px 10px;background:rgba(255,255,255,.72);color:var(--teal);font-size:13px;line-height:1.2;white-space:nowrap}.messageActionIconButton{display:inline-grid;place-items:center;width:28px;height:28px;border:1px solid rgba(47,125,120,.2);border-radius:8px;padding:0;background:rgba(255,255,255,.76);color:var(--teal)}.messageActionIconButton:disabled{cursor:not-allowed;opacity:.42}.messageActionButton:disabled{cursor:not-allowed;opacity:.48}.messageEditedMark{display:block;margin-top:4px;font-size:11px;color:rgba(255,250,243,.68)}.messageRetryPanel{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:7px;margin-top:7px;color:rgba(255,250,243,.76);font-size:12px;line-height:1.35}.messageRetryPanel span{min-width:0;max-width:100%}.messageRetryPanel button{display:inline-flex;align-items:center;gap:4px;min-height:28px;border:1px solid rgba(255,250,243,.34);border-radius:8px;padding:4px 8px;background:rgba(255,250,243,.12);color:#fffaf3;font-size:12px;line-height:1;white-space:nowrap}.messageRetryPanel button:disabled{cursor:not-allowed;opacity:.54}.userMessageEditor{min-width:min(420px,74vw)}.userMessageEditor textarea{width:100%;min-height:82px;border:1px solid rgba(255,250,243,.34);border-radius:8px;padding:9px 10px;resize:vertical;background:rgba(255,250,243,.96);color:#14211f;-webkit-text-fill-color:#14211f;caret-color:#14211f;font:inherit}.userMessageEditActions{display:flex;justify-content:flex-end;gap:8px;margin-top:8px}.userMessageEditActions button{display:inline-flex;align-items:center;gap:5px;min-height:32px;border:1px solid rgba(255,250,243,.32);border-radius:8px;padding:6px 10px;background:rgba(255,250,243,.88);color:var(--teal)}.replyMeta{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.replyMeta span{border:1px solid rgba(47,125,120,.24);border-radius:999px;padding:3px 8px;color:var(--teal);font-size:12px;line-height:1.2}.typing{display:flex;align-items:center;gap:6px;height:28px}.typing span{width:7px;height:7px;border-radius:50%;background:var(--rose);animation:pulse 1s ease-in-out infinite}.typing span:nth-child(2){animation-delay:.12s}.typing span:nth-child(3){animation-delay:.24s}@keyframes pulse{0%,to{transform:translateY(0);opacity:.45}50%{transform:translateY(-4px);opacity:1}}.composer{position:sticky;bottom:0;z-index:3;border-top:0;padding:5px clamp(10px,3vw,32px) 7px;background:rgba(247,242,234,.58);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);min-width:0}.quickBar{display:flex;gap:5px;min-width:0;max-height:0;margin-bottom:0;overflow:hidden;opacity:0;pointer-events:none;transition:max-height .16s ease,opacity .12s ease,margin .12s ease;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding-bottom:2px}.quickBar.open{max-height:52px;margin-bottom:4px;padding-bottom:2px;overflow-x:auto;opacity:1;pointer-events:auto}.quickBar::-webkit-scrollbar,.topActions::-webkit-scrollbar{display:none}.voiceStatus{margin:-1px 0 4px;color:var(--muted);font-size:10.5px;line-height:1.25}.voiceContinuePlaybackButton{justify-content:center;gap:7px;min-height:44px;width:100%;margin:2px 0 7px;border:1px solid rgba(47,125,120,.34);border-radius:8px;padding:8px 14px;background:rgba(47,125,120,.16);font:inherit;font-weight:800}.replySpeakerLabel,.voiceContinuePlaybackButton{display:inline-flex;align-items:center;color:var(--accent-strong)}.replySpeakerLabel{min-height:22px;margin:0 0 6px;border-radius:999px;padding:0 9px;background:rgba(47,125,120,.14);font-size:12px;font-weight:750}.novelFragmentPanel{display:grid;gap:8px;position:fixed;inset:0;z-index:90;min-height:100dvh;max-height:none;margin:0;padding:max(18px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) max(24px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));overflow-y:auto;border:0;border-radius:0;background:rgba(255,250,243,.97);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.novelWorkspaceHeader{display:flex;align-items:center;justify-content:space-between;gap:12px}.novelWorkspaceHeader>div{display:grid;gap:3px}.novelWorkspaceHeader small{color:var(--muted)}.novelDraftHeader{display:grid;gap:4px;margin-bottom:10px}.novelDraftEditor{width:100%;min-height:54dvh;resize:vertical;box-sizing:border-box;padding:16px;border:1px solid rgba(125,92,72,.26);border-radius:16px;background:rgba(255,252,247,.92);color:var(--ink);font:16px/1.85 var(--font-serif);white-space:pre-wrap}.novelRevisionControls{display:grid;gap:10px;margin-top:12px}.novelRevisionInstruction{width:100%;box-sizing:border-box;resize:vertical;border:1px solid rgba(125,92,72,.2);border-radius:12px;padding:10px 12px;font:inherit;line-height:1.55}.novelRevisionHistory{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.novelViewTabs{display:flex;gap:8px}.novelReadingCanvas{min-height:54dvh;margin:0;border:1px solid rgba(125,92,72,.18);border-radius:16px;padding:18px;background:rgba(255,252,247,.96);font:17px/1.92 var(--font-serif);white-space:pre-wrap}.novelPromptInput,.novelReadingCanvas{color:var(--ink);overflow-wrap:anywhere}.novelPromptInput{width:100%;min-height:68px;resize:vertical;border:1px solid rgba(104,90,78,.18);border-radius:8px;padding:9px 10px;background:rgba(255,255,255,.7);font:inherit;line-height:1.45}.novelControls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.novelControls label{display:grid;gap:4px;min-width:0;color:var(--muted);font-size:11px;font-weight:750}.novelControls select{width:100%;min-height:34px;border:1px solid rgba(104,90,78,.18);border-radius:8px;padding:0 8px;background:rgba(255,255,255,.76);color:var(--ink);font:inherit}.novelSourceToggles{display:flex;gap:5px;overflow-x:auto;padding-bottom:2px;scrollbar-width:none}.novelSourceToggles::-webkit-scrollbar{display:none}.novelSourceToggle{display:inline-flex;align-items:center;gap:4px;min-height:30px;flex:0 0 auto;border:1px solid rgba(104,90,78,.16);border-radius:8px;padding:0 8px;background:rgba(255,255,255,.6);color:var(--muted);font-size:11px;font-weight:750}.novelSourceToggle.active{border-color:rgba(47,125,120,.34);background:rgba(47,125,120,.14);color:var(--accent-strong)}.novelActions{display:flex;flex-wrap:wrap;gap:7px}.novelStatus{margin:0;color:var(--muted);font-size:11.5px;line-height:1.4;overflow-wrap:anywhere}.novelFragmentResult{display:grid;gap:6px;max-height:none;overflow:visible;border-left:0;padding:0}.novelFragmentResult p{margin:0;color:var(--ink);font-size:13px;line-height:1.55;white-space:pre-wrap;overflow-wrap:anywhere}.novelFragmentResult small{color:var(--muted);font-size:10.5px;line-height:1.35;overflow-wrap:anywhere}.mainVoicePrimaryButton{display:grid;grid-template-columns:24px minmax(0,auto) minmax(0,1fr);align-items:center;justify-content:center;gap:8px;width:100%;min-height:56px;margin:0 0 6px;border:1px solid rgba(47,125,120,.34);border-radius:8px;padding:0 14px;background:rgba(47,125,120,.18);color:var(--accent-strong);touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;font-weight:800}.unifiedInputRow{display:grid;grid-template-columns:44px minmax(0,1fr) 44px 44px;gap:6px;align-items:center;min-width:0}.unifiedInputRow textarea{min-width:0;min-height:48px;height:48px;max-height:96px;resize:none;padding:12px 13px;border-radius:14px}.unifiedInputRow .mainVoicePrimaryButton{display:flex;width:100%;min-width:0;min-height:48px;height:48px;margin:0;padding:0 12px;border-radius:14px;touch-action:none}.unifiedInputRow .mainVoicePrimaryButton span{width:100%;text-align:center}.composerRoundButton{display:inline-flex;align-items:center;justify-content:center;width:44px;height:48px;min-width:44px;border:1px solid rgba(104,90,78,.22);border-radius:14px;background:rgba(255,250,243,.76);color:var(--ink)}.composerRoundButton.active{border-color:rgba(47,125,120,.4);background:rgba(47,125,120,.16);color:var(--accent-strong)}.unifiedInputRow .sendButton{width:44px;height:48px;min-width:44px}.mainVoicePrimaryButton small,.mainVoicePrimaryButton span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mainVoicePrimaryButton small{justify-self:end;color:var(--muted);font-size:12px;font-weight:650}.mainVoicePrimaryButton.active{border-color:rgba(191,91,106,.45);background:rgba(191,91,106,.16);color:var(--rose)}.mainVoicePrimaryButton:disabled{cursor:not-allowed;opacity:.45}.chatHistoryTray{display:grid;gap:8px;max-height:min(32dvh,240px);margin:0 0 7px;padding:9px;overflow-y:auto;border:1px solid rgba(104,90,78,.16);border-radius:8px;background:rgba(255,250,243,.72);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.chatHistoryHeader{display:flex;align-items:center;justify-content:space-between;gap:8px}.chatHistoryHeader strong{font-size:13px;line-height:1.2}.chatHistoryStatus{color:var(--muted);font-size:12px;line-height:1.4}.chatHistorySearch{display:grid;grid-template-columns:18px minmax(0,1fr);align-items:center;gap:6px;min-height:34px;border:1px solid rgba(104,90,78,.16);border-radius:8px;padding:0 9px;background:rgba(255,255,255,.64);color:var(--muted)}.chatHistorySearch input{min-width:0;border:0;outline:0;background:transparent;color:var(--ink);font:inherit}.historyChipButton{min-width:74px;padding-inline:10px}.chatHistoryList{display:grid;gap:7px}.chatHistoryItem{display:grid;gap:3px;width:100%;min-width:0;border:1px solid rgba(104,90,78,.14);border-radius:8px;padding:8px 9px;background:rgba(255,255,255,.58);color:var(--ink);text-align:left}.chatHistoryItem.active{border-color:rgba(47,125,120,.34);background:rgba(47,125,120,.1)}.chatHistoryItem em,.chatHistoryItem small,.chatHistoryItem span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chatHistoryItem span{font-size:13px;font-weight:700}.chatHistoryItem small{color:var(--muted);font-size:11px;font-style:normal}.chatHistoryItem em{color:var(--muted);font-size:12px;font-style:normal}.chipButton{display:inline-flex;align-items:center;justify-content:center;gap:6px;flex:0 0 auto;height:36px;border:1px solid var(--line);border-radius:8px;padding:0 10px;background:rgba(255,250,243,.74);color:var(--ink);text-decoration:none;white-space:nowrap}.chipButton.iconOnly{width:38px;padding:0}.exportChatButton{min-width:38px;border-color:rgba(47,125,120,.34);background:rgba(47,125,120,.14);color:var(--accent-strong);font-weight:650}.chipText,.exportChatButton span{display:none}.chipButton.active{border-color:rgba(42,122,92,.35);background:rgba(42,122,92,.12);color:var(--accent-strong)}.inputRow{display:grid;grid-template-columns:minmax(0,1fr) 46px;gap:7px;align-items:end}.inputRow .sendButton{width:46px;height:54px}.mainVoiceButton{display:inline-flex;align-items:center;justify-content:center;gap:3px;width:72px;height:54px;border:1px solid rgba(47,125,120,.34);border-radius:8px;background:rgba(47,125,120,.16);color:var(--teal);touch-action:none;font-size:12px;font-weight:700}.mainVoiceButton.active{border-color:rgba(191,91,106,.45);background:rgba(191,91,106,.16);color:var(--rose)}.mainVoiceButton:disabled{cursor:not-allowed;opacity:.45}.voiceButtonText{line-height:1;white-space:nowrap}textarea{width:100%;min-height:54px;max-height:150px;resize:vertical;border:1px solid var(--line);border-radius:8px;padding:10px 12px;background:rgba(255,250,243,.7);color:var(--ink);outline:none;line-height:1.45}textarea:focus{border-color:var(--teal);box-shadow:0 0 0 3px rgba(47,125,120,.14)}.contextPanel{overflow-y:auto;padding:18px;border-left:1px solid var(--line);background:rgba(255,250,243,.72)}.panelHeader{display:flex;align-items:center;gap:8px;margin-bottom:18px}.panelHeader h2{font-size:17px}.panelHeader.compact{margin-bottom:12px}.panelClose{display:none;margin-left:auto}.diagnosticDialogBackdrop{position:fixed;inset:0;z-index:120;display:grid;place-items:center;padding:max(18px,env(safe-area-inset-top)) 16px max(18px,env(safe-area-inset-bottom));background:rgba(31,35,34,.38);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.diagnosticDialog{width:min(560px,100%);max-height:min(760px,calc(100dvh - 36px));overflow-y:auto;border:1px solid rgba(47,125,120,.24);border-radius:20px;padding:18px;background:rgba(255,252,247,.98);box-shadow:0 24px 70px rgba(35,42,40,.24);color:var(--ink)}.diagnosticDialogHeader{display:flex;align-items:flex-start;gap:12px}.diagnosticDialogHeader h2{margin:0;font-size:19px}.diagnosticDialogHeader p,.diagnosticPrivacyNote,.diagnosticScopeSummary p{margin:6px 0 0;color:var(--muted);font-size:13px;line-height:1.55}.panelCloseButton{display:inline-grid;flex:0 0 auto;place-items:center;width:36px;height:36px;margin-left:auto;border:1px solid var(--line);border-radius:50%;background:rgba(255,255,255,.72);color:var(--ink)}.diagnosticScopeSummary,.diagnosticSubmissionReceipt{display:grid;gap:5px;margin-top:16px;padding:13px;border:1px solid rgba(47,125,120,.18);border-radius:14px;background:rgba(47,125,120,.07)}.diagnosticScopeSummary small,.diagnosticSubmissionReceipt span{overflow-wrap:anywhere;color:var(--muted);font-size:12px;line-height:1.45}.diagnosticConsentOptions{display:grid;gap:10px;margin-top:16px}.diagnosticConsentOptions label{display:grid;grid-template-columns:auto 1fr;align-items:start;gap:9px;font-size:13px;line-height:1.45}.diagnosticConsentOptions input{width:17px;height:17px;margin-top:1px;accent-color:var(--teal)}.diagnosticDialogActions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:16px}.diagnosticDialogActions .miniTextButton,.diagnosticSubmissionReceipt .miniTextButton{justify-content:center;min-height:42px}.miniTextButton.danger{margin-top:6px;border-color:rgba(191,91,106,.28);color:var(--rose)}@media (max-width:520px){.diagnosticDialogBackdrop{align-items:end;padding:0}.diagnosticDialog{width:100%;max-height:min(88dvh,760px);border-radius:22px 22px 0 0;padding:18px 16px calc(18px + env(safe-area-inset-bottom))}.diagnosticDialogActions{grid-template-columns:1fr}}dl{display:grid;gap:12px;margin:0}dt{color:var(--muted);font-size:12px;line-height:1.2}dd{margin:4px 0 0;font-size:14px;line-height:1.45}.memoryPanel,.settingsPanel{margin-top:24px;border-top:1px solid var(--line);padding-top:18px}.settingsForm{display:grid;gap:10px}.uploadForm{margin-top:12px;border-top:1px dashed var(--line);padding-top:12px}.settingsActions{display:flex;align-items:center;gap:8px}.settingsActions .memorySaveButton{flex:1 1}.fieldGroup{display:grid;gap:6px}.fieldGroup span{line-height:1.2}.fieldGroup span,.fieldHint{color:var(--muted);font-size:12px}.fieldHint{line-height:1.45}.checkRow{display:flex;align-items:center;gap:9px;min-height:32px;color:var(--muted);font-size:13px}.checkRow input{width:16px;height:16px;accent-color:var(--teal)}.compactInput,.compactTextarea{width:100%;border:1px solid var(--line);border-radius:8px;background:var(--paper-strong);color:var(--ink);outline:none}select.compactInput{appearance:auto}.compactInput{height:38px;padding:0 10px}.fileInput{max-width:100%;min-width:0;height:auto;min-height:38px;padding:7px 10px;font-size:12px}.fileInput::file-selector-button{margin-right:8px;border:1px solid var(--line);border-radius:8px;padding:5px 8px;background:var(--paper-strong);color:var(--ink)}.visuallyHiddenFileInput{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}.backgroundUploadButton{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:44px;border:1px solid var(--line);border-radius:8px;padding:0 12px;background:var(--paper-strong);color:var(--ink);font-size:14px}.backgroundUploadButton:disabled{cursor:not-allowed;opacity:.48}.backgroundSelectedFile{overflow-wrap:anywhere}.compactTextarea{min-height:74px;max-height:180px;padding:10px 11px;font-size:13px;line-height:1.45}.compactInput:focus,.compactTextarea:focus{border-color:var(--teal);box-shadow:0 0 0 3px rgba(47,125,120,.14)}.memoryHeader{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:12px}.memoryHeader h3{font-size:16px;line-height:1.2}.miniIconButton{display:inline-grid;place-items:center;width:32px;height:32px;border:1px solid var(--line);border-radius:8px;background:var(--paper-strong);color:var(--ink)}.activeMini,.miniIconButton:hover{border-color:var(--teal)}.activeMini{background:rgba(47,125,120,.1);color:var(--teal)}.miniTextButton{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:30px;border:1px solid var(--ink);border-radius:8px;padding:0 10px;background:var(--ink);color:var(--paper-strong);font-size:12px}.miniTextButton.secondary{border-color:var(--line);background:var(--paper-strong);color:var(--ink)}.miniTextButton:disabled{cursor:not-allowed;opacity:.45}.memoryForm{display:grid;gap:8px}.memoryInput{min-height:82px;max-height:128px;padding:10px 11px;font-size:13px;line-height:1.45}.memorySaveButton{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:34px;border:1px solid var(--ink);border-radius:8px;background:var(--ink);color:var(--paper-strong)}.memorySaveButton:disabled{cursor:not-allowed;opacity:.45}.memorySaveButton.danger{border-color:var(--rose);background:var(--rose)}.emptyMemory,.memoryStatus{margin-top:10px;color:var(--muted);font-size:12px;line-height:1.45}.embeddingStatus{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.embeddingStatus span{border:1px solid rgba(47,125,120,.2);border-radius:999px;padding:3px 7px;color:var(--teal);font-size:11px;line-height:1.25}.runtimeGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.runtimeItem{display:grid;min-height:58px;align-content:center;gap:5px;border:1px solid var(--line);border-radius:8px;padding:9px 10px;background:rgba(255,250,243,.72)}.runtimeItem span{color:var(--muted);font-size:11px;line-height:1.15}.runtimeItem strong{min-width:0;color:var(--ink);font-size:14px;font-weight:700;line-height:1.2;word-break:keep-all}.runtimeItem.ready{border-color:rgba(47,125,120,.32)}.runtimeItem.ready strong{color:var(--teal)}.runtimeItem.warning{border-color:rgba(196,138,59,.34)}.runtimeItem.warning strong{color:var(--amber)}.readinessBox{display:grid;gap:9px;margin-top:12px;border:1px solid var(--line);border-radius:8px;padding:10px;background:rgba(255,250,243,.62)}.readinessBox.ready{border-color:rgba(47,125,120,.28)}.readinessBox.attention_required,.readinessBox.needs_user_action{border-color:rgba(196,138,59,.34)}.readinessSummary{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:12px}.readinessSummary strong{color:var(--ink);font-size:13px}.readinessSummary span{color:var(--muted);font-size:11px}.readinessList{display:grid;gap:7px}.readinessCheck{display:grid;gap:5px;border-left:3px solid var(--line);padding-left:8px}.readinessCheck div{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.readinessCheck strong{min-width:0;font-size:12px;line-height:1.25}.readinessCheck span{color:var(--muted);font-size:11px;white-space:nowrap}.readinessCheck p{margin:0;color:var(--muted);font-size:11px;line-height:1.38}.readinessCheck.ready{border-color:var(--teal)}.readinessCheck.ready span{color:var(--teal)}.readinessCheck.manual_check,.readinessCheck.needs_user_action,.readinessCheck.warning{border-color:var(--amber)}.readinessCheck.manual_check span,.readinessCheck.needs_user_action span,.readinessCheck.warning span{color:var(--amber)}.voiceSetupChecklist{display:grid;gap:7px;margin-bottom:12px}.voiceSetupStep{display:grid;gap:5px;border-left:3px solid var(--line);padding-left:8px}.voiceSetupStep div{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.voiceSetupStep strong{min-width:0;font-size:12px;line-height:1.25}.voiceSetupStep span{color:var(--muted);font-size:11px;white-space:nowrap}.voiceSetupStep p{margin:0;color:var(--muted);font-size:11px;line-height:1.38}.voiceSetupStep.ready{border-color:var(--teal)}.voiceSetupStep.ready span{color:var(--teal)}.voiceSetupStep.warning{border-color:var(--amber)}.voiceSetupStep.warning span{color:var(--amber)}.memoryListMini{display:grid;gap:10px;margin-top:12px;max-height:min(34vh,330px);overflow-y:auto;padding-right:2px}.memoryItem{border:1px solid var(--line);border-radius:8px;padding:10px;background:rgba(255,250,243,.78)}.memoryItem p{font-size:13px;line-height:1.5;word-break:break-word}.knowledgeExcerpt{margin-top:5px;color:var(--muted)}.memoryActions,.memoryMeta{display:flex;align-items:center;gap:7px}.memoryMeta{flex-wrap:wrap;margin-top:9px}.memoryMeta span{border:1px solid rgba(47,125,120,.22);border-radius:999px;padding:2px 7px;color:var(--teal);font-size:11px;line-height:1.2}.memoryActions{justify-content:flex-end;margin-top:8px}.memoryEditBox{display:grid;gap:8px}.memoryEditActions{display:flex;justify-content:flex-end;gap:7px}.voiceShell{min-height:100dvh;background:linear-gradient(135deg,rgba(47,125,120,.11),transparent 35%),linear-gradient(315deg,rgba(191,91,106,.1),transparent 38%),var(--paper);color:var(--ink)}.voiceStage{display:grid;grid-template-rows:auto minmax(0,1fr) auto auto auto;gap:14px;width:min(760px,100%);min-height:100dvh;margin:0 auto;padding:16px 14px calc(18px + env(safe-area-inset-bottom))}.voiceIdentityBand,.voiceReplyPanel,.voiceTopbar,.voiceTranscriptPanel{border:1px solid var(--line);border-radius:8px;background:rgba(255,250,243,.86);box-shadow:0 10px 28px rgba(49,38,30,.08)}.voiceTopbar{display:grid;grid-template-columns:36px minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px}.voiceBack{text-decoration:none}.voiceTitle{min-width:0}.voiceTitle h1{font-size:18px}.voiceTitle p{margin-top:3px;color:var(--muted);font-size:12px;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.voiceLivePill,.voiceStateBadge,.voiceTaskStrip span{display:inline-flex;align-items:center;gap:5px;min-height:28px;border:1px solid rgba(47,125,120,.24);border-radius:999px;padding:0 9px;color:var(--teal);font-size:12px;line-height:1.2;white-space:nowrap}.voiceStateBadge.state-live{border-color:rgba(191,91,106,.28);color:var(--rose)}.voiceStateBadge.state-listening,.voiceStateBadge.state-transcribing{border-color:rgba(42,122,92,.3);color:var(--teal)}.voiceStateBadge.state-speaking,.voiceStateBadge.state-thinking{border-color:rgba(191,91,106,.32);color:var(--rose)}.voiceStateBadge.state-fallback_text,.voiceStateBadge.state-interrupted{border-color:rgba(196,138,59,.32);color:var(--gold)}.voiceStateBadge.state-ended{border-color:rgba(119,109,100,.28);color:var(--muted)}.voiceIdentityBand{display:grid;grid-template-columns:58px minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px}.voiceAvatarLarge{display:grid;place-items:center;width:56px;height:56px;border-radius:50%;background:linear-gradient(145deg,rgba(47,125,120,.92),rgba(36,31,28,.92)),var(--teal);color:#fffaf3;font-size:22px;font-weight:700}.voiceIdentityText{min-width:0}.voiceIdentityText h2{font-size:16px}.voiceIdentityText p{margin-top:4px;color:var(--muted);font-size:12px;line-height:1.35}.callHero{position:relative;display:grid;align-content:center;justify-items:center;gap:14px;min-height:min(66dvh,620px);padding:22px 14px 16px;overflow:hidden}.callLockButton{position:absolute;top:4px;right:4px}.callAvatar{width:92px;height:92px;font-size:34px;box-shadow:0 20px 44px rgba(47,125,120,.18)}.callIdentity{display:grid;justify-items:center;gap:5px;text-align:center}.callKicker{color:var(--muted);font-size:12px;line-height:1.2}.callIdentity h2{font-size:28px;line-height:1.1}.callIdentity p{color:var(--muted);font-size:13px;line-height:1.35}.callRights{justify-self:stretch;justify-content:center;min-height:32px;font-size:12px}.callReplyPanel,.callSubtitlePanel{width:min(560px,100%);border:1px solid rgba(104,90,78,.14);border-radius:8px;padding:10px;background:rgba(255,250,243,.72);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.callSubtitleHeader{display:flex;align-items:center;gap:7px;margin-bottom:8px;color:var(--muted);font-size:13px;line-height:1.3}.callSubtitleHeader .voiceLivePill{margin-left:auto}.callTranscriptInput{min-height:86px;max-height:20dvh;resize:none}.callLiveText{margin-top:7px}.callControlDock{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px;width:min(560px,100%)}.callControlDock .voiceControlButton{min-height:66px}.shell.callMode .callTopbar{justify-content:space-between}.callTopbar .callLockButton,.callTopbar .voiceStateBadge{pointer-events:auto}.callTopbar .callLockButton{position:static;top:auto;right:auto}.callTopline{margin-top:3px;color:var(--muted);font-size:12px;line-height:1.25}.portraitFocus.callHero{position:absolute;inset:64px 0 58dvh;display:grid;align-content:center;justify-items:center;gap:12px;min-height:0;padding:8px 16px 0;pointer-events:none}.callChatDock{height:min(64dvh,calc(100dvh - 74px));max-height:68dvh}.callMessageList{gap:12px;padding-top:40px}.callStatusBubble{align-self:flex-start}.message.callSubtitlePanel{align-self:flex-end;width:min(640px,92%);max-width:min(640px,92%);color:var(--ink);background:rgba(255,250,243,.82)}.shell.background-custom .message.callSubtitlePanel{background:rgba(255,250,243,.58)}.callTranscriptInput{width:100%;border:1px solid rgba(104,90,78,.18);border-radius:8px;padding:9px 10px;background:rgba(255,250,243,.78);color:var(--ink);outline:none}.callTranscriptInput:focus{border-color:var(--teal);box-shadow:0 0 0 3px rgba(47,125,120,.14)}.callTranscriptActions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:8px}.callDiagnostics{margin:0 clamp(12px,3vw,36px) 7px}.callDiagnostics summary{cursor:pointer;color:var(--ink);font-weight:700}.callDiagnostics:not([open]) small,.callDiagnostics:not([open]) span,.callDiagnostics:not([open]) strong{display:none}.callComposer{display:grid;gap:8px}.callComposer .callRights{justify-content:flex-start;margin:0}.callComposer .callControlDock{width:100%}.voiceControlButton.active{border-color:rgba(42,122,92,.35);background:rgba(42,122,92,.12);color:var(--accent-strong)}.callAcceptButton{border-color:rgba(42,122,92,.42);background:rgba(42,122,92,.92)}.callHangupButton{background:rgba(191,91,106,.1)}.callPhoneSurface .conversation{position:relative;min-height:100dvh;overflow:hidden}.callPhoneSurface .callTopbar{position:relative;z-index:5;background:linear-gradient(180deg,rgba(255,250,243,.72),rgba(255,250,243,0));border-bottom:0}.shell.background-custom.callPhoneSurface .callTopbar{background:linear-gradient(180deg,rgba(255,250,243,.24),rgba(255,250,243,0));color:#fffaf3;text-shadow:0 1px 10px rgba(24,22,20,.22)}.callPhoneSurface .callTopbar .identity{grid-template-columns:36px;gap:0}.callPhoneSurface .callTopbar .identity .avatar,.callPhoneSurface .callTopbar .identity .callTopline,.callPhoneSurface .callTopbar .identity h1{display:none}.callPhoneSurface .portraitFocus.callHero{inset:calc(60px + var(--safe-top)) 0 54dvh;padding:0 18px}.callPhoneSurface .callHero:after{content:"";position:absolute;inset:auto 0 -18dvh;height:20dvh;pointer-events:none;background:linear-gradient(180deg,rgba(255,250,243,0),rgba(36,31,28,.08))}.shell.background-custom.callPhoneSurface .callHero:after{background:linear-gradient(180deg,rgba(255,250,243,0),rgba(36,31,28,.04))}.callPhoneSurface .callHero .callAvatar,.callPhoneSurface .callHero .callIdentity{display:none}.callPhoneSurface .callChatDock{position:absolute;z-index:4;inset:auto 0 0;display:grid;align-content:end;gap:8px;height:54dvh;min-height:330px;max-height:58dvh;padding:0 clamp(12px,4vw,34px) calc(12px + var(--safe-bottom));background:linear-gradient(180deg,rgba(36,31,28,0),rgba(36,31,28,.04) 42%,rgba(36,31,28,.1));-webkit-backdrop-filter:none;backdrop-filter:none}.shell.background-custom.callPhoneSurface .callChatDock{background:linear-gradient(180deg,rgba(36,31,28,0),rgba(36,31,28,.035) 40%,rgba(36,31,28,.09));-webkit-backdrop-filter:none;backdrop-filter:none}.callCaptionStack{display:grid;gap:8px;width:min(640px,100%);justify-self:center;max-height:34dvh;overflow-y:auto;overscroll-behavior:contain;color:var(--ink)}.shell.background-custom.callPhoneSurface .callCaptionStack{color:#fffaf3;text-shadow:0 1px 8px rgba(24,22,20,.32)}.callCaptionEmpty,.callCaptionStatus{margin:0;text-align:center;color:currentColor;opacity:.78;font-size:13px;line-height:1.45}.callPhoneSurface .callCaptionStatus{display:none}.callCaptionLine{display:grid;grid-template-columns:42px minmax(0,1fr);gap:8px;align-items:start;margin:0;padding:9px 11px;border:1px solid rgba(255,250,243,.16);border-radius:8px;background:rgba(36,31,28,.42);box-shadow:0 10px 22px rgba(36,31,28,.07);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.shell.background-custom.callPhoneSurface .callCaptionLine{border-color:rgba(255,250,243,.2);background:rgba(36,31,28,.44);box-shadow:0 12px 24px rgba(36,31,28,.08)}.callCaptionLine span{opacity:.72;font-size:12px;line-height:1.5}.callCaptionLine p{margin:0;overflow-wrap:anywhere;font-size:15px;line-height:1.55}.callTextFallbackSheet,.callToolsSheet{display:grid;gap:8px;width:min(640px,100%);justify-self:center;padding:10px;border:1px solid rgba(104,90,78,.14);border-radius:8px;background:rgba(255,250,243,.72);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.shell.background-custom.callPhoneSurface .callTextFallbackSheet,.shell.background-custom.callPhoneSurface .callToolsSheet{border-color:rgba(255,250,243,.18);background:rgba(255,250,243,.32);color:#fffaf3}.callToolsSheet{grid-template-columns:repeat(3,minmax(0,1fr));align-items:center}.callToolsSheet .callDiagnostics,.callToolsSheet .callRights{grid-column:1/-1}.callToolsSheet .callDiagnostics{margin:0}.callRights.compact{justify-content:flex-start;padding:0;color:currentColor}.callPhoneSurface .callComposer{justify-self:center;width:min(360px,100%);padding:0;background:transparent;border:0;box-shadow:none}.callPhoneSurface .callControlDock{grid-template-columns:repeat(3,74px);justify-content:center;gap:24px;width:100%}.callPhoneSurface .callControlDock .voiceControlButton{display:grid;place-items:center;gap:5px;width:74px;min-height:74px;padding:8px;border-radius:999px;background:rgba(255,250,243,.86);color:var(--ink);box-shadow:0 12px 28px rgba(36,31,28,.12)}.callPhoneSurface .callControlDock .voiceControlButton span{font-size:11px;line-height:1}.callPhoneSurface .callControlDock .callAcceptButton{background:rgba(255,250,243,.96);color:var(--accent-strong)}.callPhoneSurface .callControlDock .callAcceptButton.active{border-color:rgba(42,122,92,.42);background:rgba(42,122,92,.92);color:#fffaf3}.callPhoneSurface .callControlDock .callHangupButton{background:rgba(211,68,82,.94);color:#fffaf3}.voiceDebugActions{opacity:.9}.voiceDebugStrip{opacity:.82}.voiceRights{display:flex;align-items:center;gap:9px;min-height:38px;color:var(--muted);font-size:13px;line-height:1.35}.voiceRights input{width:17px;height:17px;accent-color:var(--teal)}.voiceReplyPanel,.voiceTranscriptPanel{min-height:0;padding:12px}.voicePanelHeader{display:flex;align-items:center;gap:8px;margin-bottom:10px}.voicePanelHeader h2{font-size:15px}.voiceLivePill{margin-left:auto;min-height:24px;color:var(--rose);border-color:rgba(191,91,106,.3)}.voiceTranscriptInput{min-height:172px;max-height:34dvh;resize:vertical}.voiceInterim{margin-top:8px;color:var(--teal);font-size:13px;line-height:1.45;word-break:break-word}.voiceReplyPanel{display:grid;gap:6px}.voiceControlGrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.voiceControlButton,.voiceSecondaryButton{display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid var(--line);border-radius:8px;background:var(--paper-strong);color:var(--ink)}.voiceControlButton{min-height:58px;flex-direction:column;padding:8px 6px;font-size:12px}.voiceControlButton.primary{border-color:var(--ink);background:var(--ink);color:var(--paper-strong)}.voiceControlButton.danger{border-color:rgba(191,91,106,.32);color:var(--rose)}.voiceControlButton:disabled,.voiceSecondaryButton:disabled{cursor:not-allowed;opacity:.45}.voiceActionRow{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.voiceSecondaryButton{min-height:38px;padding:0 8px;font-size:12px}.voiceTaskStrip{display:flex;flex-wrap:wrap;gap:6px}.voiceTaskStrip span{min-height:24px;color:var(--muted);border-color:rgba(119,109,100,.24)}.voiceReadinessPanel{display:grid;gap:3px;padding:8px 10px;border:1px solid rgba(47,125,120,.18);border-radius:8px;background:rgba(255,255,255,.62);color:var(--muted);font-size:12px;line-height:1.35}.voiceReadinessPanel strong{color:var(--ink);font-size:12px;font-weight:700}.voiceReadinessPanel small,.voiceReadinessPanel span{overflow-wrap:anywhere}.voiceReadinessPanel[data-ready=false]{border-color:rgba(191,91,106,.24);background:rgba(191,91,106,.08)}.voicePageStatus{color:var(--muted);font-size:13px;line-height:1.45;min-height:19px}.settingsShell{min-height:100dvh;padding:16px clamp(12px,3vw,28px) calc(22px + env(safe-area-inset-bottom));background:linear-gradient(135deg,rgba(47,125,120,.1),transparent 34%),linear-gradient(315deg,rgba(191,91,106,.1),transparent 38%),var(--paper);color:var(--ink)}.settingsTopbar{display:grid;grid-template-columns:40px minmax(0,1fr) auto;align-items:center;gap:12px;width:min(1040px,100%);margin:0 auto 14px;border-bottom:1px solid var(--line);padding-bottom:14px}.settingsTopbar h1{font-size:22px}.settingsPageStatus,.settingsTopbar p{color:var(--muted);font-size:13px;line-height:1.4}.settingsActions,.settingsTopActions{display:flex;min-width:0;align-items:center;gap:8px}.settingsPageStatus{width:min(1040px,100%);margin:0 auto 12px;border:1px solid rgba(47,125,120,.18);border-radius:8px;padding:9px 11px;background:rgba(255,250,243,.76)}.settingsGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;width:min(1040px,100%);margin:0 auto}.settingsCard{display:grid;align-content:start;gap:11px;min-width:0;border:1px solid var(--line);border-radius:8px;padding:14px;background:rgba(255,250,243,.84);box-shadow:0 10px 28px rgba(49,38,30,.08)}.settingsCardHeader{display:flex;align-items:center;gap:8px;margin-bottom:2px}.settingsCardHeader h2{font-size:17px}.settingsNotice{display:grid;gap:8px;color:var(--muted);font-size:13px;line-height:1.5}.settingsBuildVersion{margin:-2px 0 12px;color:var(--muted);font-size:12px;line-height:1.35;overflow-wrap:anywhere}.readinessCard{grid-column:1/-1}.settingsReadinessOneLine{display:grid;gap:5px;border:1px solid rgba(47,125,120,.18);border-radius:8px;background:rgba(47,125,120,.07);padding:10px 11px;overflow-wrap:anywhere}.settingsReadinessOneLine strong{font-size:12px}.settingsReadinessOneLine span{color:var(--ink);font-size:14px;line-height:1.45}.settingsReadinessOneLine em{color:var(--muted);font-size:12px;font-style:normal}.settingsReadinessSummary{display:flex;flex-wrap:wrap;gap:7px}.settingsReadinessPill{display:inline-flex;align-items:center;min-height:28px;border:1px solid rgba(119,109,100,.22);border-radius:999px;padding:0 9px;color:var(--muted);font-size:12px;line-height:1.2}.settingsReadinessPill[data-status=ready]{border-color:rgba(47,125,120,.28);color:var(--teal)}.settingsReadinessPill[data-status=manual_check],.settingsReadinessPill[data-status=needs_user_action],.settingsReadinessPill[data-status=warning]{border-color:rgba(191,91,106,.26);color:var(--rose)}.settingsReadinessList{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.settingsReadinessItem{display:grid;gap:6px;min-width:0;border:1px solid var(--line);border-radius:8px;padding:10px;background:rgba(255,250,243,.68);overflow-wrap:anywhere}.settingsReadinessItem div{display:flex;align-items:baseline;justify-content:space-between;gap:8px;min-width:0}.settingsReadinessItem strong{min-width:0;font-size:13px;line-height:1.25}.settingsReadinessItem span{flex:0 0 auto;color:var(--muted);font-size:11px;line-height:1.2}.settingsReadinessItem p,.settingsReadinessNextSteps p{margin:0;color:var(--muted);font-size:12px;line-height:1.42}.settingsReadinessItem[data-status=ready]{border-color:rgba(47,125,120,.22)}.settingsReadinessItem[data-status=ready] span{color:var(--teal)}.settingsReadinessItem[data-status=manual_check],.settingsReadinessItem[data-status=needs_user_action],.settingsReadinessItem[data-status=warning]{border-color:rgba(191,91,106,.24);background:rgba(191,91,106,.06)}.settingsReadinessItem[data-status=manual_check] span,.settingsReadinessItem[data-status=needs_user_action] span,.settingsReadinessItem[data-status=warning] span{color:var(--rose)}.settingsReadinessNextSteps{display:grid;gap:5px;border-top:1px solid var(--line);padding-top:10px}.settingsReadinessNextSteps strong{font-size:12px}.settingsAsrGuide{display:grid;gap:5px;border:1px solid rgba(196,138,59,.26);border-radius:8px;padding:10px;background:rgba(196,138,59,.08);overflow-wrap:anywhere}.settingsAsrGuide strong{font-size:12px}.settingsAsrGuide p{margin:0;color:var(--muted);font-size:12px;line-height:1.45}.settingsReadableBlock{display:grid;gap:8px;border:1px solid rgba(119,109,100,.16);border-radius:8px;background:rgba(255,250,243,.58);padding:10px;min-width:0}.settingsSubHeader{display:flex;align-items:baseline;justify-content:space-between;gap:10px}.settingsSubHeader h3{margin:0;font-size:13px;line-height:1.3}.settingsSubHeader span{color:var(--muted);font-size:11px;line-height:1.3}.settingsReadableList{display:grid;gap:7px}.settingsReadableList.compact,.settingsTwoColumns{grid-template-columns:repeat(2,minmax(0,1fr))}.settingsTwoColumns{display:grid;gap:9px}.settingsReadableRow{display:grid;gap:4px;min-width:0;border:1px solid rgba(119,109,100,.13);border-radius:7px;background:rgba(255,255,255,.46);padding:8px;overflow-wrap:anywhere}.settingsReadableRow span{color:var(--muted);font-size:11px;line-height:1.25}.settingsReadableRow p{margin:0;color:var(--ink);font-size:13px;line-height:1.45;white-space:pre-wrap}.settingsReadableRow[data-empty=true] p{color:var(--muted)}.settingsFactRow{width:100%;text-align:left;font:inherit;cursor:pointer}.settingsFactRow:hover{border-color:rgba(148,91,71,.42);background:rgba(255,249,242,.84)}.settingsReadableSubsection{display:grid;gap:7px;border-top:1px solid rgba(119,109,100,.14);padding-top:8px}.settingsReadableSubsection strong{font-size:12px}.settingsAdvancedJson{display:grid;gap:8px;min-width:0;border:1px dashed rgba(119,109,100,.26);border-radius:8px;padding:9px 10px}.settingsAdvancedJson summary{cursor:pointer;color:var(--ink);font-size:13px;font-weight:700;line-height:1.35}.settingsAdvancedJson[open] summary{margin-bottom:8px}.backgroundPreview{display:grid;grid-template-columns:72px minmax(0,1fr);align-items:center;gap:10px;border:1px solid var(--line);border-radius:8px;padding:8px;background:rgba(255,250,243,.68)}.backgroundPreview img{width:72px;height:50px;border-radius:6px;object-fit:cover}.backgroundPreview span{min-width:0;color:var(--muted);font-size:12px;line-height:1.35;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.backgroundEditorShell{display:grid;gap:10px;border:1px solid var(--line);border-radius:12px;padding:10px;background:rgba(255,250,243,.72)}.backgroundEditorViewport{position:relative;width:min(100%,280px);aspect-ratio:9/16;max-height:50dvh;justify-self:center;overflow:hidden;border-radius:14px;background:#1b1b1b;touch-action:none;-webkit-user-select:none;user-select:none}.backgroundEditorViewport .reactEasyCrop_CropArea{border:2px solid rgba(255,255,255,.96);border-radius:12px;box-shadow:0 0 0 9999px rgba(0,0,0,.42)}.backgroundEditorActions{display:flex;gap:8px;flex-wrap:wrap}.linkButton{text-decoration:none}@media (min-width:921px) and (hover:hover) and (pointer:fine){.shell:not(.chatOnly){grid-template-columns:72px minmax(0,1fr) 292px;width:100%;max-width:100%;min-height:680px}.shell:not(.chatOnly)>.rail{display:flex}.shell:not(.chatOnly)>.contextPanel{display:block}}@media (hover:none) and (pointer:coarse),(max-width:920px){.shell{grid-template-columns:1fr;height:100dvh;min-height:0}.contextPanel:not(.open),.rail{display:none}.contextPanel{position:fixed;inset:78px 10px calc(10px + var(--safe-bottom));z-index:20;display:block;overflow-y:auto;border:1px solid var(--line);border-radius:8px;background:rgba(255,250,243,.98);box-shadow:var(--shadow)}.panelClose{display:inline-grid}.conversation{grid-template-rows:auto minmax(0,1fr);min-height:0}.topbar{display:flex;grid-template-columns:none;padding:calc(8px + var(--safe-top)) 14px 10px}.topActions{justify-self:end;max-width:min(50vw,260px);gap:6px;padding-bottom:2px}.topActions .iconButton{flex:0 0 38px;width:38px;height:38px}.identity p{max-width:190px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.messageList{padding:46px 12px 10px}.chatDock{width:100%;height:min(62dvh,calc(100dvh - 72px));min-height:54dvh;max-height:66dvh}.shell.chatOnly.background-custom .chatDock{height:min(var(--face-safe-dock-height,48dvh),calc(100dvh - 84px));min-height:42dvh;max-height:52dvh}.message{max-width:94%}.shell.background-custom .message{max-width:92%}.message.assistant,.message.user{overflow-wrap:anywhere}.composer{padding:8px 10px calc(10px + var(--safe-bottom))}.mainVoicePrimaryButton small{display:none}.settingsGrid,.settingsReadableList.compact,.settingsTwoColumns{grid-template-columns:1fr}.settingsReadinessList{grid-template-columns:repeat(2,minmax(0,1fr))}.callHero{min-height:min(68dvh,620px)}}@media (hover:none) and (pointer:coarse) and (max-device-width:480px),(max-width:430px){.topbar{gap:8px;padding:calc(8px + var(--safe-top)) 10px 10px}.avatar{width:40px;height:40px;font-size:18px}.identity{gap:9px}.identity p{max-width:min(72vw,260px)}.topActions{justify-self:stretch;width:100%;max-width:100%}.conversation{grid-template-rows:auto minmax(0,1fr)}.chatDock{height:min(60dvh,calc(100dvh - 72px));min-height:54dvh;max-height:66dvh}.shell.chatOnly.background-custom .chatDock{height:min(var(--face-safe-dock-height,46dvh),calc(100dvh - 92px));min-height:40dvh;max-height:50dvh}.message{max-width:96%;padding:12px 13px}.shell.background-custom .message{max-width:90%}.messageActionMenu{display:flex;grid-template-columns:none}.messageActionButton{width:100%;white-space:normal}.quickBar{gap:6px;padding-bottom:3px}.chipButton{flex:0 0 auto;min-height:38px;padding:0 10px;font-size:14px}.voiceStage{gap:12px;padding:12px 10px calc(14px + var(--safe-bottom))}.callHero{min-height:min(70dvh,620px);padding:18px 8px 14px}.voiceTopbar{grid-template-columns:34px minmax(0,1fr) auto}.voiceStateBadge{grid-column:1/-1;justify-self:start;padding:0 7px}.voiceIdentityBand{grid-template-columns:50px minmax(0,1fr)}.voiceAvatarLarge{width:48px;height:48px;font-size:20px}.callAvatar{width:82px;height:82px;font-size:30px}.callControlDock{grid-template-columns:repeat(3,minmax(0,1fr))}.callChatDock{height:min(42dvh,calc(100dvh - 96px));min-height:250px;max-height:46dvh}.portraitFocus.callHero{inset:58px 0 54dvh;padding-inline:12px}.callMessageList{padding-top:34px}.message.callSubtitlePanel{width:94%;max-width:94%}.callTranscriptActions{grid-template-columns:1fr}.voiceControlButton{min-height:56px;gap:5px}.voiceControlGrid{grid-template-columns:repeat(2,minmax(0,1fr))}.settingsReadableList.compact,.settingsReadinessList,.voiceActionRow{grid-template-columns:1fr}.settingsShell{padding:12px 10px calc(16px + var(--safe-bottom))}.settingsTopbar{grid-template-columns:36px minmax(0,1fr)}.settingsPageStatus{grid-column:1/-1}.settingsTopbar h1{font-size:20px}.settingsCard{padding:12px}.settingsActions{align-items:stretch;flex-direction:column}.settingsActions .memorySaveButton,.settingsActions .miniTextButton{width:100%;justify-content:center}}.shell.chatOnly .contextPanel,.shell.chatOnly .contextPanel.open{display:none!important}