/* Runtime additions share the v5 palette and layout. */
.context-bar { display:flex; align-items:center; justify-content:flex-end; gap:10px; min-height:45px; padding:5px clamp(26px,4vw,60px); color:var(--muted); font-size:12px; }
.context-bar label { font-weight:700; white-space:nowrap; }
.context-bar select { min-width:125px; max-width:210px; height:34px; border:1px solid #D7DCE6; border-radius:9px; padding:4px 8px; background:#fff; color:var(--ink); font-size:12px; }
.context-bar #accountName { margin-left:12px; color:#737D8D; }
.context-bar .inline-action { min-height:34px; }
.context-bar button:focus-visible, select:focus-visible, input:focus-visible { outline:3px solid var(--focus); outline-offset:2px; }
.auth-gate { position:fixed; z-index:20; inset:0; display:flex; align-items:flex-start; justify-content:center; overflow-x:hidden; overflow-y:auto; overscroll-behavior-y:contain; -webkit-overflow-scrolling:touch; padding:max(20px,env(safe-area-inset-top)) 20px max(20px,env(safe-area-inset-bottom)); background:var(--canvas); }
.auth-panel { flex:none; width:min(100%,420px); margin:auto 0; padding:28px; background:#fff; border:1px solid #E0E4EC; border-radius:18px; }
.auth-kicker { color:var(--purple-dark); font-size:12px; font-weight:700; }
.auth-panel h1 { margin:13px 0 8px; font-family:"Songti SC","Noto Serif CJK SC",serif; font-size:32px; font-weight:600; }
.auth-panel p { color:var(--muted); line-height:1.6; font-size:14px; }
.auth-panel form { display:grid; gap:9px; margin-top:20px; }
.auth-panel label { font-size:13px; font-weight:700; }
.auth-panel input, .profile-form input, .profile-form textarea, .profile-inline input, .profile-panel select, .import-area input, .import-area select, .import-area textarea, .rewrite-area textarea, .live-flow-result textarea { width:100%; border:1px solid #D6DBE5; border-radius:10px; padding:10px 11px; background:white; color:var(--ink); font:inherit; line-height:1.5; }
.auth-panel .invite-consent { display:grid; grid-template-columns:18px 1fr; gap:8px; align-items:start; margin:14px 0; color:#555F75; font-size:12px; line-height:1.55; }
.auth-panel .invite-consent input { width:18px; height:18px; margin-top:1px; }
.auth-panel input { height:45px; }
.auth-panel .button { margin-top:10px; }
.auth-panel #authError { min-height:20px; margin:3px 0 0; color:#A13942; }
.profile-view { padding-top:26px; }
.profile-view .flow-header { max-width:850px; }
.profile-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:32px 48px; max-width:1120px; }
.profile-panel { min-width:0; border-top:1px solid #CED4DF; padding-top:16px; }
.profile-panel h2 { margin:0 0 12px; font-size:20px; }
.profile-panel p { color:var(--muted); font-size:13px; line-height:1.7; }
.profile-form { display:grid; gap:8px; }
.profile-form label, .profile-inline label, .profile-panel > label, .import-area label, .rewrite-area label { display:block; margin-top:7px; font-size:13px; font-weight:700; }
.profile-form button { justify-self:start; margin-top:9px; }
.profile-inline { display:grid; grid-template-columns:1fr auto; align-items:end; gap:8px; }
.profile-inline label { grid-column:1/-1; }
.profile-inline button { height:43px; }
.profile-actions { display:flex; flex-wrap:wrap; gap:8px; align-items:center; margin-top:12px; }
.profile-actions .button { font-size:12px; min-height:40px; }
.profile-panel .danger { color:#963E47; }
.profile-panel #memoryStatus { color:var(--ink); font-weight:700; }
.memory-undo-help { margin:7px 0 0; }
.memory-list, .conversation-list { max-height:340px; overflow:auto; }
.memory-item, .conversation-item { border-bottom:1px solid #E4E7EE; padding:9px 0; }
.memory-item strong { display:block; font-size:13px; }
.memory-item span { color:var(--muted); font-size:11px; }
.memory-item p { margin:4px 0; color:var(--ink); overflow-wrap:anywhere; }
.conversation-item { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:12px; }
.conversation-main { min-width:0; }
.conversation-title { display:-webkit-box; overflow:hidden; overflow-wrap:anywhere; -webkit-line-clamp:2; -webkit-box-orient:vertical; line-height:1.45; }
.conversation-item span { display:block; color:var(--muted); font-size:11px; }
.conversation-meta { margin-top:4px; }
.conversation-actions { display:flex; align-items:center; justify-content:flex-end; gap:2px; }
.conversation-item button { min-width:44px; min-height:40px; border:0; border-radius:8px; background:transparent; color:var(--purple-dark); font-size:12px; padding:7px; }
.conversation-item button:hover { text-decoration:underline; }
.profile-panel #compareRun { margin-top:10px; }
.profile-panel #compareResult { margin-top:16px; }
.profile-panel #compareContinue { margin-top:14px; }
.save-feedback { min-height:22px; margin:4px 0 0; color:var(--purple-dark) !important; font-weight:650; }
.compare-chat-context { margin:0 0 24px; border-left:3px solid var(--purple); padding:10px 14px; background:#F6F4FA; }
.compare-chat-context strong { display:block; margin-bottom:4px; }
.compare-chat-context p { margin:0 0 7px; color:var(--muted); font-size:13px; }
.compare-chat-context div { display:flex; gap:8px; }
.rewrite-area, .import-area { border-top:1px solid #E4E7EE; margin-top:20px; padding-top:14px; }
.rewrite-area textarea { margin:7px 0 10px; }
.reply-context-groups { margin:14px 0 4px; }
.reply-context-group { margin:12px 0 14px; }
.reply-context-group legend { display:flex; align-items:baseline; gap:6px; }
.reply-context-group legend span { color:var(--muted); font-size:11px; font-weight:500; }
.reply-chip-list { display:flex; flex-wrap:wrap; gap:7px; }
.reply-chip-list .intent { margin:0; }
.reply-other-label { display:grid; grid-template-columns:auto minmax(100px,180px); align-items:center; gap:8px; margin-top:8px; color:var(--muted); font-size:12px; }
.reply-other-label input { min-width:0; width:100%; border:1px solid #D6DBE5; border-radius:9px; padding:8px 9px; background:#fff; color:var(--ink); font:inherit; }
.import-area h2 { margin:0 0 12px; font-size:17px; }
.import-area textarea, .import-area input, .import-area select { margin:7px 0 11px; }
.import-area .button { margin-top:4px; }
.image-queue { display:grid; gap:6px; margin:4px 0 12px; color:#687186; font-size:13px; }
.image-queue-item { display:grid; grid-template-columns:minmax(0,1fr) auto auto auto; align-items:center; gap:6px; padding:7px 8px; background:#F3F1F8; border-radius:10px; }
.image-queue-item span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.image-queue-item button { min-height:32px; border:0; border-radius:8px; padding:0 8px; background:#fff; color:var(--ink); cursor:pointer; }
.image-queue-item button:disabled { opacity:.4; cursor:default; }
@media (max-width:560px) { .image-queue-item { grid-template-columns:1fr auto auto auto; } .image-queue-item span { grid-column:1/-1; } }
.live-flow-result h2 { margin:0 0 13px; font-size:20px; }
.live-flow-result textarea { min-height:220px; line-height:1.75; }
.live-flow-result > p { color:var(--muted); font-size:12px; line-height:1.6; }
.live-prose { min-height:150px; white-space:pre-wrap; overflow-wrap:anywhere; line-height:1.8; font-size:15px; }
.chat-message.assistant .live-answer { margin:0 0 0 28px; white-space:pre-wrap; overflow-wrap:anywhere; line-height:1.8; }
.chat-message.error p { color:#923F48; }
.reply-feedback { display:flex; align-items:center; flex-wrap:wrap; gap:6px; margin:8px 0 0 28px; }
.reply-feedback button { min-width:36px; min-height:34px; border:1px solid #d9dde6; border-radius:9px; background:#fff; cursor:pointer; }
.reply-feedback button[aria-pressed="true"] { border-color:var(--purple-dark); background:#f0edf7; }
.reply-feedback select { min-height:34px; max-width:180px; border:1px solid #d9dde6; border-radius:9px; background:#fff; padding:4px 8px; color:var(--ink); }
.reply-feedback-status { color:var(--muted); font-size:12px; }
.chat-intro { margin-bottom:18px; }
@media (max-width:700px) {
  .context-bar { justify-content:flex-start; flex-wrap:wrap; gap:4px 8px; padding:6px 15px; }
  .context-bar select { flex:1; max-width:150px; }
  .context-bar #accountName { display:none; }
  .profile-grid { grid-template-columns:1fr; gap:27px; }
  .profile-view { padding:22px 18px 40px; }
  .auth-gate { padding:max(12px,env(safe-area-inset-top)) 12px max(18px,env(safe-area-inset-bottom)); }
  .auth-panel { padding:20px; }
  .auth-panel h1 { font-size:28px; }
  .profile-inline { grid-template-columns:1fr; }
  .conversation-item { grid-template-columns:1fr; align-items:start; }
  .conversation-actions { justify-content:flex-start; }
  .reply-chip-list { gap:6px; }
  .reply-chip-list .intent { flex:0 1 auto; max-width:100%; white-space:normal; }
  .reply-other-label { grid-template-columns:1fr; }
}

/* Shared, quiet feedback for interactive controls. */
.button,.nav-button,.inline-action,.tone,.intent,.lab-choice,.pick-button,.back-button,.task-entry,.vent-entry,.subject-list-item,.compare-toggle,.conversation-item button,.chat-composer button {
  transition:background-color 150ms ease,color 150ms ease,border-color 150ms ease,box-shadow 150ms ease,transform 150ms ease,opacity 150ms ease;
}
.button:hover:not(:disabled),.nav-button:hover:not(:disabled),.tone:hover:not(:disabled),.intent:hover:not(:disabled),.subject-list-item:hover:not(:disabled),.compare-toggle:hover:not(:disabled),.conversation-item button:hover:not(:disabled) { box-shadow:0 3px 10px rgba(38,51,75,.10); }
.button:active:not(:disabled),.nav-button:active:not(:disabled),.inline-action:active:not(:disabled),.tone:active:not(:disabled),.intent:active:not(:disabled),.subject-list-item:active:not(:disabled),.compare-toggle:active:not(:disabled),.conversation-item button:active:not(:disabled),.chat-composer button:active:not(:disabled) { transform:translateY(1px) scale(.99); }
button:focus-visible,[role="button"]:focus-visible,select:focus-visible,input:focus-visible,textarea:focus-visible { outline:3px solid var(--focus); outline-offset:2px; }
button:disabled,[aria-disabled="true"] { cursor:not-allowed; opacity:.56; box-shadow:none !important; }
button[aria-busy="true"] { cursor:wait; }
@media (prefers-reduced-motion:reduce) {
  .button,.nav-button,.inline-action,.tone,.intent,.lab-choice,.pick-button,.back-button,.task-entry,.vent-entry,.subject-list-item,.compare-toggle,.conversation-item button,.chat-composer button { transition:none !important; }
  *:active { transform:none !important; }
}
.profile-panel-head { display:flex; justify-content:space-between; align-items:center; gap:12px; }
.profile-panel-head h2 { margin:0; }
.profile-subjects > input { width:100%; border:1px solid #D6DBE5; border-radius:10px; padding:10px 11px; font:inherit; }
.subject-list { display:flex; flex-wrap:wrap; gap:7px; margin:10px 0; min-height:34px; color:var(--muted); font-size:13px; }
.subject-list-item { border:1px solid #D9DDE6; border-radius:10px; padding:7px 10px; background:#fff; color:var(--ink); font:inherit; font-size:13px; }
.subject-list-item.is-active { border-color:var(--purple-dark); box-shadow:inset 0 0 0 1px var(--purple-dark); }
.compare-picker { position:relative; margin-top:10px; }
.compare-toggle { width:100%; min-height:43px; text-align:left; border:1px solid #D6DBE5; border-radius:10px; padding:9px 12px; background:#fff; color:var(--ink); font:inherit; }
.compare-toggle::after { content:'▾'; float:right; color:var(--muted); }
.compare-menu { position:absolute; z-index:5; top:calc(100% + 5px); left:0; right:0; padding:12px; background:#fff; border:1px solid #D6DBE5; border-radius:12px; box-shadow:0 12px 28px rgba(38,51,75,.12); }
.compare-menu > label { display:block; font-size:12px; font-weight:700; margin-bottom:5px; }
.compare-menu > input { width:100%; border:1px solid #D6DBE5; border-radius:9px; padding:8px 10px; font:inherit; }
.compare-options { display:grid; gap:3px; max-height:180px; overflow:auto; margin:8px 0; }
.compare-options label { display:flex; align-items:center; gap:8px; padding:7px; border-radius:7px; font-size:13px; }
.compare-options label:hover { background:#F3F2F8; }
.compare-options input { width:17px; height:17px; }
.compare-selected { display:flex; flex-wrap:wrap; gap:6px; min-height:28px; margin:10px 0 2px; color:var(--muted); font-size:13px; }
.compare-selected span { padding:4px 8px; border-radius:8px; background:#E9E5F2; color:var(--ink); }
.memory-delete { margin:2px 0 0; font-size:12px; }
.rehearsal-thread p { margin:9px 0; padding:8px 0; border-bottom:1px solid #E4E7EE; white-space:pre-wrap; }
#liveRehearsalResult > label { display:block; margin:15px 0 7px; font-size:13px; font-weight:700; }
#rehearsalNextRun { margin:9px 0 14px; }
.rehearsal-thread .simulated-other::before { content:'模拟对方：'; color:var(--purple-dark); font-weight:700; }
.generated-note { color:var(--muted); font-size:13px; line-height:1.6; margin:8px 0 0; }
.task-history { display:grid; gap:8px; margin:0 0 16px; }
.task-history:empty { display:none; }
.task-history p { margin:0; padding:9px 0; border-bottom:1px solid #E4E7EE; white-space:pre-wrap; overflow-wrap:anywhere; font-size:13px; line-height:1.65; }
.task-history strong { color:var(--purple-dark); }
.live-flow-result > label { display:block; margin:15px 0 7px; font-size:13px; font-weight:700; }
.live-flow-result #relationshipFollowInput, .live-flow-result #replyFollowInput, .live-flow-result #rehearsalNext { min-height:80px; }
.live-flow-result .image-revisit { display:flex; align-items:center; gap:8px; font-weight:500; }
.image-revisit input { width:17px; height:17px; flex:none; }
.live-flow-result input[type=file] { width:100%; max-width:100%; font:inherit; font-size:12px; }
#taskImageStatus { color:var(--purple-dark); }
.session-feedback{width:min(520px,calc(100% - 32px));border:2px solid var(--ink);border-radius:18px;padding:0;box-shadow:8px 8px 0 rgba(32,33,42,.2);color:var(--ink)}
.session-feedback::backdrop{background:rgba(32,33,42,.38)}
.session-feedback form{position:relative;padding:28px}.session-feedback h2{margin:0 34px 6px 0;font-size:22px}.session-feedback p{margin:6px 0 16px}
.session-feedback-close{position:absolute;right:14px;top:12px;width:38px;height:38px;border:0;background:transparent;font-size:25px;cursor:pointer}
.session-feedback-options{display:flex;flex-wrap:wrap;gap:8px}.session-feedback-options button{min-height:42px;border:1px solid #bcc3cf;border-radius:10px;background:#fff;padding:8px 13px;cursor:pointer}
.session-feedback-options button:hover,.session-feedback-options button:focus-visible{border-color:var(--focus);box-shadow:0 3px 10px rgba(38,51,75,.1)}
.session-feedback label{display:grid;gap:7px;margin-top:14px;font-weight:700}.session-feedback textarea{width:100%;border:1px solid #bcc3cf;border-radius:10px;padding:10px;font:inherit}.session-feedback #sessionFeedbackStatus{min-height:20px;color:var(--muted);font-size:13px}
.case-search{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;align-items:end;gap:8px;margin:14px 0 10px}.case-search>div{display:grid;gap:6px}.case-search label{font-size:13px;font-weight:700}.case-search select{width:100%;min-width:0;border:1px solid #d6dbe5;border-radius:10px;padding:10px 11px;background:#fff;color:var(--ink);font:inherit}.case-search button{white-space:nowrap}.case-search>p{grid-column:1/-1;min-height:20px;margin:0}.similar-cases{display:grid;gap:10px}.similar-case{border-bottom:1px solid #e4e7ee}.similar-case-button{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;width:100%;padding:13px 0;border:0;background:transparent;color:var(--ink);font:inherit;text-align:left;cursor:pointer}.similar-case-button strong{color:var(--blue,#304bdb)}.similar-case-button span{min-width:0;font-weight:700}.similar-case-button small{border-radius:6px;background:var(--mist,#f3f5f7);padding:3px 7px;color:var(--muted);font-size:12px}.similar-case-button::after{content:'＋';font-weight:800}.similar-case-button[aria-expanded="true"]::after{content:'－'}.similar-case-button:hover span,.similar-case-button:focus-visible span{color:var(--blue,#304bdb)}.similar-case-button:focus-visible{outline:3px solid var(--focus);outline-offset:3px;border-radius:8px}.similar-case-detail{padding:0 0 13px 58px}.similar-case-detail p,.empty-case{margin:0;color:var(--muted);font-size:13px;line-height:1.65}.similar-case-detail p+p{margin-top:7px}.similar-case-detail b{color:var(--ink)}
@media(max-width:620px){.case-search{grid-template-columns:1fr}.case-search>p{grid-column:1}.case-search button{width:100%}.similar-case-button{grid-template-columns:auto minmax(0,1fr) auto}.similar-case-button small{grid-column:2}.similar-case-detail{padding-left:0}}
.case-consent-register{display:grid;gap:8px;padding:14px 16px;border:1px solid var(--line,#d9dde5);border-radius:14px;background:var(--mist,#f3f5f7)}
.case-consent-register label,.case-consent-control{display:flex;align-items:flex-start;gap:9px;line-height:1.55;cursor:pointer}
.case-consent-register input,.case-consent-control input{width:18px;height:18px;margin-top:3px;flex:0 0 auto;accent-color:var(--blue,#304bdb)}
.case-consent-register small{color:var(--muted,#626875)}
.field-note{font-size:14px;color:var(--muted,#626875)}
