/* DTL：辦桌的樣式（全站載入，檔名排最後以覆蓋 Campfire 原本的樣式）
   規格：docs/DESIGN.md。顏色、圓角、陰影只從下面的變數拿，不寫死色碼。 */

/* ═══ 設計變數（DESIGN.md 二、四） ═══ */
:root{
--bg:#FBFAF7;--side:#F6F4EF;--surface:#F3F1EC;--raised:#FFFFFF;--line:#E6E3DC;
--text:#1F1E1C;--text-2:#5F5C56;--text-3:#76726A;
--accent:#B4442F;--on-accent:#FFFFFF;--accent-light:#E9A797;--accent-soft:color-mix(in srgb,var(--accent) 10%,transparent);
--ok:#2F7D4F;--warn:#8F5A00;--danger:#B42318;--scrim:rgb(31 30 28 / .35);
--r-sm:6px;--r-md:10px;--r-lg:14px;
--table-0:var(--accent-light);--table-1:#C3D2DB;--table-2:#F6D3C6;
--shadow-pop:0 8px 24px -8px rgb(0 0 0 / .25),0 1px 3px rgb(0 0 0 / .08);
/* Campfire 的變數改用我們的顏色 */
--color-bg:var(--bg);--color-text:var(--text);--color-text-reversed:var(--bg);--color-message-bg:var(--surface);
--color-border:var(--line);--color-border-dark:var(--line);--color-border-darker:var(--text-3);
--color-link:var(--accent);--color-negative:var(--danger);--color-positive:var(--ok);--color-alert:var(--warn);
--color-selected:var(--surface);--color-selected-dark:var(--line)
}
@media (prefers-color-scheme:dark){:root{
--bg:#1C1B19;--side:#201F1D;--surface:#262522;--raised:#2E2D2A;--line:#3A3935;
--text:#ECEAE4;--text-2:#A9A69E;--text-3:#999690;
--accent:#E07A63;--on-accent:#1C1B19;--accent-light:#6A3326;--accent-soft:color-mix(in srgb,var(--accent) 16%,transparent);
--ok:#5DBB85;--warn:#E3A63B;--danger:#F0766A;--scrim:rgb(0 0 0 / .55);
--shadow-pop:0 8px 24px -8px rgb(0 0 0 / .6),0 1px 3px rgb(0 0 0 / .3)
}}
body{background:var(--bg);color:var(--text)}

.ai-brief{flex:1 1 20em;min-width:0}
.ai-brief summary{cursor:pointer}
.ai-brief__body{white-space:pre-wrap;padding:.5em;background:color-mix(in oklch,var(--color-text) 7%,var(--color-bg));border-radius:.5em;margin-block:.4em;max-height:40vh;overflow:auto}
.ai-brief textarea{width:100%;min-height:10em;margin-block:.4em}
.ai-bots{display:flex;flex-wrap:wrap;gap:.4em}
.ai-chip{border:1px solid var(--color-border);border-radius:1em;padding:.1em .7em;white-space:nowrap}

.ai-chip--idle::before{content:"● ";color:var(--ok)}.ai-chip--busy::before{content:"● ";color:var(--accent)}.ai-chip--waiting::before{content:"● ";color:var(--warn)}.ai-chip--offline::before{content:"● ";color:var(--text-3)}
.ai-archived{background:var(--surface);padding:.4em .8em;border-radius:.5em}


.ai-event--sub{margin-inline-start:1.2em;opacity:.8}.ai-event--sub::marker{content:"└ "}

.ai-btn[hidden],[data-ai-owner][hidden],[data-ai-not-owner][hidden],[data-ai-user][hidden]{display:none!important}
.ai-composer-btn[aria-pressed="true"]{background:var(--text);color:var(--bg)}
form.ai-muted .composer__input{background:repeating-linear-gradient(45deg,transparent,transparent 8px,color-mix(in oklch,var(--color-text) 9%,transparent) 8px,color-mix(in oklch,var(--color-text) 9%,transparent) 16px)!important;outline:2px dashed color-mix(in oklch,var(--color-text) 35%,transparent)}

.ai-dialog textarea,.ai-dialog select{width:100%;box-sizing:border-box}

.ai-dialog__item{display:flex;gap:.5em;align-items:flex-start;padding:.25em 0;border-bottom:1px dashed var(--color-border);font-size:.9em}
.ai-dialog__item small{opacity:.7}
.ai-dialog__item input[type=checkbox]{appearance:auto;-webkit-appearance:checkbox;display:inline-block;width:1.15em;height:1.15em;flex:none;margin:.15em 0 0;opacity:1;position:static}

.ai-dialog label{display:block;margin-block:.5em .2em;font-weight:bold}
.ai-dialog label.ai-dialog__item{font-weight:normal;margin:0}
.ai-more{position:relative}.ai-more summary{list-style:none}.ai-more summary::-webkit-details-marker{display:none}
.ai-more__menu{position:absolute;right:0;top:110%;display:flex;flex-direction:column;gap:.3em;padding:.5em;background:var(--color-bg);border:1px solid var(--color-border);border-radius:.6em;z-index:5;min-width:12em}
.ai-modes input{appearance:auto;-webkit-appearance:radio;position:static;opacity:1;width:1em;height:1em}

.ai-tool{font-size:.75em;border:1px solid var(--color-border);border-radius:1em;padding:0 .6em;background:transparent;color:inherit;cursor:pointer}
.ai-tool[hidden]{display:none}


.ai-annot-stage{position:relative;display:inline-block;max-width:100%;cursor:crosshair}
.ai-annot-stage img{max-width:100%;max-height:60vh;display:block}
.ai-pin{position:absolute;transform:translate(-50%,-50%);background:var(--text);color:var(--bg);border-radius:50%;width:1.6em;height:1.6em;display:flex;align-items:center;justify-content:center;font-size:.8em;font-weight:bold;box-shadow:0 1px 4px rgba(0,0,0,.4)}
.ai-pin--new{background:var(--accent)}

.ai-tldr{white-space:pre-wrap;font-size:.9em}
.ai-sensitive{background:color-mix(in oklch,var(--accent) 15%,var(--color-bg));padding:.4em .6em;border-radius:.5em}

.ai-sched{flex:0 0 auto;width:17em;border:1px solid var(--color-border);border-radius:.6em;padding:.4em .6em;display:flex;flex-direction:column;gap:.2em;background:color-mix(in oklch,var(--accent) 6%,var(--color-bg))}
.ai-sched--paused{opacity:.65;background:transparent}
.ai-sched__head{display:flex;gap:.4em;align-items:baseline}
.ai-sched__title{font-weight:bold;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ai-sched__line{font-size:.85em;opacity:.85;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ai-sched__line a{color:inherit}
.ai-sched__actions{display:flex;gap:.3em;flex-wrap:wrap;margin-block-start:.15em}
.ai-sched__state{font-size:.8em;white-space:nowrap}
.ai-sched__state--waiting_approval,.ai-sched__state--warn{color:var(--warn)}.ai-sched__state--running,.ai-sched__state--queued{color:var(--accent)}.ai-sched__state--done{color:var(--ok)}.ai-sched__state--error{color:var(--danger)}
.messages{padding-block-end:16px}
.ai-flash{animation:ai-flash 1.8s ease-out}
@keyframes ai-flash{0%,30%{background-color:var(--accent-soft)}}
.ai-in-menu{display:none!important}
.ai-tools{gap:.3em;display:none!important}

@media (hover:hover){.ai-menu__item:hover{background:color-mix(in oklch,var(--color-text) 8%,transparent)}}
.ai-mobile[hidden]{display:none!important}
.ai-message-hint{font-size:.8em;opacity:.6;padding:0 1em}
.message{scroll-margin-top:calc(var(--ai-nav-height,0px) + var(--ai-panel-height,0px) + 8px)}

/* ═══ 版面：一套設計，三個寬度 ═══
   ≥100ch（約 880px，沿用 Campfire 的斷點）：房間列表固定在左邊；更窄：從左邊滑出（☰ 在左上）；
   ≤640px：對話框從底部升起；觸控裝置：按鈕加大。其他樣式所有寬度共用。 */
.ai-desk{display:none!important}
.ai-more__handoff{display:inline-flex}
/* 上方大面板拿掉：簡報、檔案、排程都在 ⋯；只留封存、訪客、分出來的提示 */
.ai-panel__row{flex-wrap:wrap;align-items:center;gap:.5em;display:none!important}
.ai-schedules{gap:.5em;overflow-x:auto;padding-block-end:.2em;scrollbar-width:thin;display:none!important}
.ai-schedules:empty{display:none}
.ai-panel{top:var(--ai-nav-height,0);z-index:2;border-bottom:1px solid var(--color-border);display:flex;flex-direction:column;gap:.4em;align-self:start;position:static;border:0;padding:.5rem 1rem 0;background:transparent;font-size:.85rem}
.ai-panel:not(:has(.ai-archived,.ai-note,.ai-tldr:not([hidden]))){display:none}
.ai-panel .ai-archived{padding:.45rem .8rem;border-radius:.6rem}
/* 上方：☰（左，窄螢幕才有）｜房名＋狀態｜⋯（右），一條 */
#nav{inset-inline:var(--sidebar-width) 0!important;margin-inline:0!important}
#nav::before{display:none!important}
#nav:has(.room--current){--btn-size:34px;background:var(--bg);border-bottom:1px solid var(--line);padding-block:0!important;padding-inline:24px 12px!important;min-height:52px;column-gap:4px!important}
#nav:has(.room--current)::after{content:"";position:absolute;inset:100% 0 auto 0;block-size:6px;margin-block-start:1px;background:repeating-linear-gradient(90deg,color-mix(in srgb,var(--accent) 22%,var(--bg)) 0 12px,var(--bg) 12px 24px)}
#nav .room--current{display:flex!important;flex-direction:column;align-items:flex-start;justify-content:center;gap:.05rem!important;block-size:auto!important;inline-size:auto!important;flex:1 1 auto;min-width:0;margin:0!important;padding:0!important;background:transparent!important;color:var(--color-text)!important;border:0!important;box-shadow:none!important}
#nav .room--current h1{font-size:15px;font-weight:600;line-height:1.3;max-inline-size:100%}
.ai-room-sub{display:block!important;font-size:12px;line-height:1.4;color:var(--text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-inline-size:100%}
#nav a[data-room-id],#nav .button_to_change_notifying,#nav .account-logo{display:none!important}
.ai-nav-btn{pointer-events:auto;position:relative;flex:none;inline-size:var(--btn-size)!important;padding:0!important;background:transparent!important;border:0!important;color:var(--color-text);border-radius:50%}
@media (hover:hover){.ai-nav-btn:hover{background:color-mix(in oklch,var(--color-text) 7%,transparent)!important}}
.ai-nav-btn__dot{position:absolute;right:.3rem;top:.35rem;width:.5rem;height:.5rem;border-radius:50%;background:var(--text-3);box-shadow:0 0 0 2px var(--color-bg)}
.ai-pop__header .ai-nav-btn__dot{position:static;flex:none;box-shadow:none}
.ai-nav-btn__dot--idle{background:var(--ok)}.ai-nav-btn__dot--busy{background:var(--accent)}.ai-nav-btn__dot--waiting{background:var(--warn)}
/* 訊息和輸入框：同一欄，寬螢幕置中、不拉滿 */
.messages{padding-inline:max(.75rem,calc((100% - 724px) / 2))!important}
#footer:has(#composer){padding-inline:max(0px,calc((100% - 760px) / 2))}
/* 房間列表：所有寬度同一套樣式（實心背景、一列一間） */
#sidebar .directs--new{padding-inline:.75rem!important}

/* 寬螢幕：房間列表固定在左邊 */
@media (min-width:100ch){
body.sidebar{--sidebar-width:280px;grid-template-areas:"sidebar nav" "sidebar main";grid-template-columns:var(--sidebar-width) minmax(0,1fr)}
body.sidebar #sidebar{transform:translateX(0)}
body.sidebar #main-content{margin-inline:0!important;border-inline:0!important}
}
/* 窄螢幕：房間列表從左邊滑出，☰ 在左上 */
@media (max-width:100ch){
#nav:has(.room--current){padding-inline-start:64px!important} /* ≡ 在 6px、寬 48px，再留 10px：--btn-size 是 ≡ 上的變數，#nav 拿不到 */
#sidebar{--drawer-w:min(84vw,22rem);inset:0 auto 0 0!important;inline-size:var(--drawer-w);transform:translateX(-100%)!important;transition:transform 260ms cubic-bezier(.2,.8,.2,1),box-shadow 260ms ease!important}
#sidebar.open{transform:none!important;box-shadow:0 0 0 100vmax var(--scrim),8px 0 32px rgba(0,0,0,.25)}
.sidebar__toggle{inset-inline-start:calc(100% + .45rem)!important;inset-block-start:.4rem!important;--btn-size:2.25rem;background:transparent!important;border:0!important}
#sidebar.open .sidebar__toggle{display:none!important}
#sidebar:not(.open){pointer-events:none}
#sidebar:not(.open) .sidebar__toggle{pointer-events:auto}
}
/* 下方：＋｜輸入框｜✦｜送出（搜尋、格式、🔇、對話都在 ＋ 或 ⋯ 裡） */
.composer__context-btn,.composer__rich-text-btn,.ai-composer-btn,.composer__input-hint,.composer__attachment-btn{display:none!important}
.composer{padding-block:.25rem .35rem!important}
#composer{margin-block:0!important}
#composer.ai-muted .ai-plus{color:var(--warn)}

.ai-sched-list{display:flex;flex-direction:column;gap:.5rem}
.ai-sched-list .ai-sched{width:auto}
/* 對話框：寬螢幕置中；手機從底部升起 */

.ai-dialog__foot .btn{min-height:2.5rem}
@media (max-width:640px){
.messages .message{position:relative;grid-template-columns:0 minmax(0,1fr) 0!important;column-gap:0!important}
.messages .message .message__avatar{position:absolute;inset-inline-start:0;inset-block-start:0;--avatar-size:28px;inline-size:28px;block-size:28px;padding:0}
.messages .message .message__meta{padding-inline-start:36px!important;min-block-size:28px;display:flex;align-items:center}
.messages .message.message--threaded .message__meta{padding-inline-start:0!important}
.messages .message:is(.message--me,.message--mentioned){padding-inline:12px!important}
.messages .message:is(.message--me,.message--mentioned) .message__actions{margin-inline-end:-12px}
.lexxy-prompt-menu{position:fixed!important;left:8px!important;right:8px!important;top:auto!important;bottom:calc(var(--ai-footer-height,76px) + 8px)!important;max-block-size:50dvh;overflow-y:auto}
.ai-account__menu.ai-account__menu{position:fixed!important;inset:auto 0 0 0!important;inline-size:auto!important;max-inline-size:none!important;border-radius:var(--r-lg) var(--r-lg) 0 0!important;padding:20px 8px calc(16px + env(safe-area-inset-bottom))!important;background-image:linear-gradient(var(--line),var(--line));background-size:36px 4px;background-position:50% 8px;background-repeat:no-repeat;box-shadow:0 0 0 100vmax var(--scrim)!important;z-index:80!important}
.ai-submit--main{align-self:stretch!important;justify-content:center}
.ai-dialog{position:fixed;inset:auto 0 0 0;margin:0;max-width:100vw!important;width:100vw!important;max-height:90dvh!important;border-radius:var(--r-lg) var(--r-lg) 0 0!important;padding:8px 16px calc(24px + env(safe-area-inset-bottom))!important}
.ai-dialog__foot .btn{min-height:44px;flex:1}
.ai-dialog__list{max-height:none}
.ai-dialog__item{padding:.5em 0}
.ai-pop:not(.ai-pop--reactions,.ai-account__menu){border:0;padding-block-start:20px!important;background-image:linear-gradient(var(--line),var(--line));background-size:36px 4px;background-position:50% 8px;background-repeat:no-repeat;inset:auto 0 0 0!important;inline-size:100vw!important;max-inline-size:100vw;max-block-size:88dvh;border-radius:var(--r-lg) var(--r-lg) 0 0;padding:8px 8px calc(24px + env(safe-area-inset-bottom));transform:translateY(16px);box-shadow:0 0 0 100vmax var(--scrim)}
.ai-pop:not(.ai-pop--reactions,.ai-account__menu).ai-pop--in{transform:none}
.message__actions .message__actions-menu{position:fixed!important;inset:auto 0 0 0!important;inline-size:100vw!important;max-inline-size:100vw!important;border-radius:var(--r-lg) var(--r-lg) 0 0!important;padding:8px 8px calc(24px + env(safe-area-inset-bottom))!important;box-shadow:0 0 0 100vmax var(--scrim)!important;transform:none!important;max-block-size:85dvh;overflow-y:auto;min-inline-size:0!important;border:0!important;padding-block-start:20px!important;background-image:linear-gradient(var(--line),var(--line))!important;background-size:36px 4px!important;background-position:50% 8px!important;background-repeat:no-repeat!important}
}
/* 觸控：按鈕加大 */
@media (pointer:coarse){
.ai-tool{min-height:32px;padding:.2em .8em}
}

.ai-react{font-size:1.45rem;line-height:1;inline-size:2.6rem;block-size:2.6rem;border:0;border-radius:50%;background:transparent;cursor:pointer;color:var(--color-text)}
.ai-react:focus-visible{background:color-mix(in oklch,var(--color-text) 9%,transparent);outline:none}
@media (hover:hover){.ai-react:hover{background:color-mix(in oklch,var(--color-text) 9%,transparent);outline:none}}
.ai-react--more{font-size:1.1rem;opacity:.7}
.ai-menu-only{display:none!important}
.message:has(.ai-run--active) [id^="presentation_message_"],.message:has(.ai-handoff) [id^="presentation_message_"]{display:none}
@keyframes ai-pulse{0%,100%{opacity:1}50%{opacity:.3}}

.ai-talk-bar[hidden]{display:none}
.ai-talk-bar span:nth-child(2){flex:1}
#composer.ai-talking .composer__input{box-shadow:0 0 0 2px color-mix(in oklch,var(--accent) 55%,transparent)}
.ai-composer-btn[data-ai-composer-target="talkButton"][aria-pressed="true"]{background:var(--accent);color:var(--on-accent)}
/* 表情按鈕：小、淡 */
.ai-private-btn[hidden]{display:none!important}
#composer.ai-talk-public .ai-private-btn{color:var(--accent)}
.ai-label{display:none}
.ai-submit{position:sticky;bottom:calc(.75rem + env(safe-area-inset-bottom));z-index:2;box-shadow:0 6px 20px -6px rgba(0,0,0,.35);display:flex!important;inline-size:100%;justify-content:center;min-block-size:2.75rem;border-radius:.6rem!important;font-size:1rem;font-weight:500;margin-block:1rem 0}
/* 跳出的小選單 */
.ai-pop.ai-pop--above{transform-origin:bottom left;transform:translateY(4px) scale(.98)}
.ai-pop.ai-pop--in{opacity:1;transform:none}

.ai-pop__label{flex:1}
.ai-icon{display:inline-flex;line-height:0}
@media (prefers-reduced-motion:reduce){.ai-pop{transition:none}#sidebar{transition:none!important}}
.ai-run-icon{display:none}
.ai-dialog__error{color:var(--color-negative,var(--danger))}
/* 非房間頁的頂欄：不透明、不壓在內容上；返回鈕靠左 */

#nav:not(:has(.room--current)) .btn{pointer-events:auto}
.directs--new .autocomplete__input{min-block-size:2.75rem}
.directs--new .btn{--btn-size:2.75rem}
.ai-inline-save{inline-size:auto!important;block-size:auto!important;min-block-size:2.5rem;padding:0 1.1rem!important;border-radius:.6rem!important;font-weight:500;white-space:nowrap;flex:none}
.ai-chip-btn{inline-size:auto!important;block-size:auto!important;min-block-size:2rem;padding:0 .8rem!important;border-radius:.6rem!important;font-size:.85rem;white-space:nowrap}

/* 主畫面圖示右下角的 once.com logo 不顯示 */
#app-logo{display:none!important}
/* @ 名單：自己的 Claude 標出來 */

/* 自動完成下拉：跟著主題色 */
lexxy-prompt-menu,.lexxy-prompt-menu{background:var(--color-bg)!important;color:var(--color-text)!important;border:1px solid color-mix(in oklch,var(--color-border) 70%,transparent)!important;border-radius:.9rem!important;box-shadow:var(--shadow-pop)!important;padding:.25rem!important}
.autocomplete__list{background:var(--color-bg)!important;color:var(--color-text)!important;border:1px solid color-mix(in oklch,var(--color-border) 70%,transparent)!important;border-radius:.9rem!important;box-shadow:var(--shadow-pop)!important;padding:.25rem!important;max-block-size:min(18rem,50dvh)!important;max-inline-size:none!important;inline-size:100%}
/* 訊息的 ••• 選單：圓角、陰影，跟其他小選單一致 */

.message__actions-menu .quick-boosts .btn{--btn-size:2.4rem;border:0!important;background:transparent!important;border-radius:50%}
@media (hover:hover){.message__actions-menu .quick-boosts .btn:hover{background:color-mix(in oklch,var(--color-text) 8%,transparent)!important}}
.message__actions-grid .btn{border:0!important;background:transparent!important;border-radius:.6rem}
@media (hover:hover){.message__actions-grid .btn:hover{background:color-mix(in oklch,var(--color-text) 8%,transparent)!important}}

/* 上傳欄位的「未選擇檔案」字樣不要露出來（iOS 會在頭像旁邊露出一個字） */
.input--file input[type=file]{opacity:0!important;color:transparent!important;font-size:0!important}
/* 訊息內文：段落、清單、標題之間留空間 */
[id^="presentation_message_"] p,[id^="presentation_message_"] ul,[id^="presentation_message_"] ol,[id^="presentation_message_"] pre,[id^="presentation_message_"] blockquote{margin-block:0 .65em}
[id^="presentation_message_"] > :last-child{margin-block-end:0}
[id^="presentation_message_"] li{margin-block:.2em}
[id^="presentation_message_"] li > p{margin:0}
[id^="presentation_message_"] h3,[id^="presentation_message_"] h4,[id^="presentation_message_"] h5{margin-block:1em .4em;font-size:1.02em}
[id^="presentation_message_"] h3:first-child,[id^="presentation_message_"] h4:first-child{margin-block-start:0}
[id^="presentation_message_"] table{margin-block:0 .65em;border-collapse:collapse;font-size:.92em;display:block;overflow-x:auto;max-inline-size:100%}
[id^="presentation_message_"] th,[id^="presentation_message_"] td{border:1px solid color-mix(in oklch,var(--color-border) 80%,transparent);padding:.35em .6em;text-align:start;vertical-align:top}
/* 工作過程：不要橫向捲動 */
.ai-foot__steps li{white-space:normal;overflow-wrap:anywhere}
.ai-event--tool{font-family:inherit!important}
/* 提示訊息放上方，不蓋住選單 */
/* 底部對話框後面變暗 */
/* 個人資料的登出、帳號設定的進階連結：放最下面、低調 */
.ai-logout{display:flex;justify-content:center;margin-block:1.5rem 2.5rem}
.ai-logout__btn{inline-size:auto!important;block-size:auto!important;min-block-size:2.5rem;padding:0 1.4rem!important;border-radius:.6rem!important;color:var(--color-negative,var(--danger))!important}
.ai-advanced{display:flex;justify-content:center;gap:1rem;margin-block:1.5rem 2.5rem;font-size:.85rem;color:var(--text-2)}
.ai-advanced a{color:inherit}

/* 私訊：直接列出可以私訊的人 */
.ai-people{display:flex;flex-direction:column;gap:.1rem;margin-block-start:.5rem;max-block-size:50dvh;overflow-y:auto}
.ai-person{display:flex;align-items:center;gap:.75rem;inline-size:100%;min-block-size:2.75rem;padding:.25rem .5rem;border:0;border-radius:.6rem;background:transparent;color:var(--color-text);font:inherit;text-align:start;cursor:pointer}
.ai-person:focus-visible{background:color-mix(in oklch,var(--color-text) 8%,transparent);outline:none}
@media (hover:hover){.ai-person:hover{background:color-mix(in oklch,var(--color-text) 8%,transparent);outline:none}}
.ai-person img{inline-size:2rem;block-size:2rem;border-radius:50%;object-fit:cover}

/* 沒有房間列表的頁面，空的側欄不要擋住點按 */
#sidebar:empty{display:none!important}
main:not(:has(.ai-panel)){padding-block-start:.6rem}
/* 私訊整頁版：輸入框不要塌掉 */
.directs--new .autocomplete__container{flex:1 1 auto;min-inline-size:0}
/* @ 名單：提示不折行、頭像不被擠小 */
.ai-mention-hint{display:block;font-size:12px;font-weight:400;line-height:1.4;color:var(--text-2)}
.autocomplete__item .avatar,.autocomplete__item img{flex:none}
/* 訊息裡的 @ 沒有頭像時不要留空白 */
.mention:not(:has(img)){padding-inline-start:0!important}
.ai-back{display:inline-block;font-size:.9rem;color:var(--text-2);text-decoration:none;margin-block-end:.25rem}

/* 房間檔案夾 */

.ai-file-group{border-top:1px solid color-mix(in oklch,var(--color-border) 55%,transparent);padding-block:.4rem}
.ai-file-group>summary{cursor:pointer;font-weight:600;font-size:.9rem;padding-block:.35rem;color:color-mix(in oklch,var(--color-text) 75%,var(--color-bg))}
.ai-file{display:flex;align-items:center;gap:.6rem;min-block-size:2.75rem}
.ai-file .ai-icon{color:var(--text-2)}
.ai-file__name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--color-text);text-decoration:none}
.ai-file__size{font-size:.78rem;color:var(--text-2);font-variant-numeric:tabular-nums}
.ai-file__act--quiet{color:var(--text-2)}
.ai-version{display:flex;align-items:center;gap:.6rem;min-block-size:2.5rem;font-size:.88rem}
.ai-version__text{flex:1;min-width:0}
.ai-version__now{font-size:.8rem;color:var(--text-2)}


/* ✦ 交給我的 Claude */
.ai-hand-btn:disabled{opacity:.4}
#composer.ai-talking .ai-hand-btn{display:none}
/* AI 從外面問的問題卡 */
/* 字級：用滑鼠的電腦小一級（版面密度跟著 rem 一起收）；觸控維持 16px（iOS 輸入框小於 16px 會自動放大） */
@media (pointer:fine){
html{font-size:15px}
[id^="presentation_message_"]{font-size:14.5px;line-height:1.7}
}

/* ═══ 非房間頁：跟房間頁同一套頂欄（返回｜標題）與內容欄，所有寬度一樣（不再是電腦版的浮起卡片） ═══ */
#nav:not(:has(.room--current)){background:var(--color-bg);border-bottom:1px solid color-mix(in oklch,var(--color-border) 50%,transparent);padding-inline:.6rem!important;min-height:52px;padding-block:.3rem!important;align-items:center!important;column-gap:.25rem!important;--btn-size:2.25rem}
#nav:not(:has(.room--current,.btn,.ai-page-title,input,.searches__query)){border-bottom-color:transparent!important;background:transparent!important}
.btn:has(> img[src*="arrow-left"]),#nav .btn:has(> img[src*="pencil"]),#nav .btn:has(> img[src*="login"]){border:0!important;background:transparent!important;border-radius:50%;box-shadow:none!important}
@media (hover:hover){.btn:has(> img[src*="arrow-left"]):hover,#nav .btn:has(> img[src*="pencil"]):hover{background:color-mix(in oklch,var(--color-text) 7%,transparent)!important}}
#nav:has(.ai-page-title) .flex-item-justify-start{margin-inline-end:0!important}
.ai-page-title{margin:0 auto 0 .15rem;display:flex;align-items:baseline;gap:.5rem;min-width:0;font-size:1rem;font-weight:600;line-height:1.2;white-space:nowrap}
.ai-page-title > span{min-width:0;overflow:hidden;text-overflow:ellipsis}
.ai-page-title small{flex:none;font-size:.75rem;font-weight:500;color:var(--text-2)}
.panel{box-shadow:none!important;border:0!important;background:transparent!important;border-radius:0!important;--panel-padding:1rem;inline-size:min(36rem,100%)!important;margin-block-start:52px!important}
.panel:has(.ai-submit){padding-block-end:calc(5rem + env(safe-area-inset-bottom))}
.panel.panel--wide,section.panel--wide{inline-size:min(44rem,100%)!important}
/* 清單裡連接標籤和開關的虛線：拿掉，靠留白對齊 */
:where(li,label,.flex) > .separator:not(.full-width){border-block-start-color:transparent!important}
/* 搜尋：小小的一句空狀態，不要整面大放大鏡 */
.ai-empty{margin:0;padding:2rem 1rem;text-align:center;font-size:.95rem;line-height:1.6;color:var(--text-2)}
.message-area:not(:has(.message)) .message-area--empty{inline-size:min(28rem,100%)}
/* 私訊：輸入框在整頁版不要被壓扁 */
.autocomplete__container{max-inline-size:none!important;flex:1 1 auto;min-inline-size:0}

/* 房間：狀態點放在房名下面那行，⋯ 只是一顆按鈕 */
.ai-status-dot{display:inline-block;inline-size:.45rem;block-size:.45rem;border-radius:50%;background:var(--text-3);margin-inline-end:.35rem;vertical-align:.08em}
.ai-status-dot--idle{background:var(--ok)}.ai-status-dot--busy{background:var(--accent)}.ai-status-dot--waiting{background:var(--warn)}
/* Claude 給的選項：看得出是可以點的 */
/* 檔案夾卡片：中性色，不搶內容 */
/* 訊息的 ••• 選單：表情排成一列 */
/* 私訊整頁：跟其他頁同一欄寬，提示字靠左 */

/* ═══ 元件：取代 Campfire 的圓形大按鈕、藥丸按鈕和粗體（所有頁面、所有寬度） ═══ */

/* 只有圖示的按鈕：沒有框、沒有底，圓角方形；移上去才有淡淡的底 */
.btn:where(:has(.for-screen-reader):has(img,figure,svg)):not(.btn--reversed,.btn--negative,.avatar){--btn-background:transparent;--btn-border-color:transparent;--btn-border-radius:.55rem}
.btn:where(:has(.for-screen-reader):has(img,figure,svg)):not(.avatar){--btn-border-radius:.55rem;--btn-padding:0}
@media (hover:hover){
.btn:not(.btn--reversed,.btn--negative,.btn--faux,.avatar):hover{background-color:color-mix(in oklch,var(--color-text) 7%,var(--color-bg))!important}
.btn--reversed:hover,.btn--negative:hover{filter:brightness(.88)}
}
@media (hover:hover) and (prefers-color-scheme:dark){.btn--reversed:hover{filter:brightness(.85)}}

/* 輸入框：柔和的聚焦光暈，不是粗外框 */
.input{--input-border-color:color-mix(in oklch,var(--color-border) 95%,transparent)}
.input:not(.input--actor .input):where(:not(:active)):focus,.input--actor:focus-within{--input-border-color:color-mix(in oklch,var(--accent) 65%,var(--color-border))!important;box-shadow:0 0 0 2px var(--accent-soft)!important;filter:none!important}

/* 字重：標題 600～650、內文 400、人名 500；不再整片粗體 */
h1{font-weight:650;letter-spacing:-.01em}
h2,h3,h4{font-weight:600}
strong,b{font-weight:600}
.message__author,.message__author strong{font-weight:500!important}
.panel h1,#main-content > section h1{font-size:1.4rem;margin-block:0 .5rem}
.panel h2,#main-content > section h2{font-size:1.05rem;margin-block:1.5rem .5rem}
.panel h3{font-size:.95rem}
/* 送出鈕：圓角方形 */
/* 未讀的房間：不加框，字重和小圓點就夠 */
.sidebar__toggle::after{--size:8px!important;inset-block-start:6px!important;inset-inline-end:4px!important;background-color:var(--accent)!important;box-shadow:0 0 0 2px var(--bg)}
/* 無框按鈕維持無框（上面統一的邊框不能蓋過它） */
.btn.btn--borderless,.btn.btn--plain{--btn-border-color:transparent!important;--btn-background:transparent}
/* 表單標籤：中等字重就好 */
#main-content label:not(.btn),.panel label:not(.btn){font-weight:500}
/* 介面上的 <strong>（清單名字、標籤）用中等字重；訊息內文的粗體維持粗體 */
:where(#main-content,#sidebar,.ai-dialog) strong{font-weight:500}
[id^="presentation_message_"] strong,[id^="presentation_message_"] b{font-weight:600}

/* ═══ 設計規則：尺寸、間距、顏色只從這裡拿 ═══
   字級：介面 .9333rem（14px）、說明 .8125rem、標題 1.05rem／600；間距 .5／.75／1／1.5／2rem；
   圓角：控制項 .6rem、卡片 .8rem；分隔線一律 --ai-line；次要文字一律 --ai-muted */
:root{--btn-size:2.5em;--hover-size:0;--input-border-radius:.6rem;--ai-line:var(--line);--ai-muted:var(--text-2);--ai-col:40rem;--ai-field-h:40px}

/* ── 房間列表：窄一點、私訊跟新房間同一種一列 ── */

/* ── 設定類頁面：靠左一欄、分區標題、有框的卡片 ── */

.ai-settings .panel .txt-align-center{text-align:start!important}
.ai-settings .panel .center:not(.avatar__form){margin-inline:0!important;justify-content:flex-start!important}
.ai-set-title{margin:16px 0 0!important;font-size:15px!important;font-weight:600!important;color:var(--text)}
.ai-set-desc{margin:-4px 0 0;font-size:14px;line-height:1.7;color:var(--text-2)}
.ai-settings .panel div.fill-shade.border-radius{background:transparent!important;border:1px solid var(--ai-line)!important;border-radius:.8rem!important;padding:.25rem .9rem!important;margin:0!important}
.ai-settings .panel menu{padding:0!important;gap:0!important}
.ai-settings .panel menu > li,.ai-settings .panel turbo-frame > li{min-block-size:2.75rem;padding-block:.35rem;gap:.6rem}
.ai-settings .panel menu > li + li,.ai-settings .panel turbo-frame > li + li{border-top:1px solid var(--ai-line)}
.ai-settings .panel hr.separator.full-width{border-block-start-color:var(--ai-line)!important;margin-block:.25rem!important}
.ai-settings .panel a.fill-shade,.ai-settings .panel .fill-shade:not(.border-radius){background:transparent!important}
.ai-settings .panel :where(menu,turbo-frame) strong{font-weight:500;font-size:.9333rem}
.ai-set-list{background:transparent!important;border:1px solid var(--ai-line)!important;border-radius:.8rem!important;margin:0!important;display:flex;flex-direction:column;padding:0 .9rem!important}
.ai-set-list a{display:flex;align-items:center;justify-content:space-between;min-block-size:3.25rem;color:var(--color-text);text-decoration:none}
.ai-set-list a + a{border-top:1px solid var(--ai-line)}
.ai-set-list a::after{content:"›";color:var(--ai-muted);font-size:1.1rem}
.ai-set-list small{display:block;font-size:.8125rem;color:var(--ai-muted);margin-block-start:.1rem}
/* 欄位：標籤在上、輸入框裡不放圖示、字跟內文一樣大 */
.ai-field{display:flex;flex-direction:column;align-items:stretch;gap:8px;margin-block-start:4px}
.ai-field__label{font-size:.8125rem;font-weight:500;color:var(--ai-muted)}
.ai-settings .panel .input--actor > img,.ai-settings .panel .input--actor > label > img{display:none}
.ai-settings .panel .input,.ai-dialog .input{font-size:.9333rem!important}
.ai-settings .panel .input:not(textarea):not(.input--actor .input),.ai-settings .panel .input--actor:not(:has(textarea)),.ai-dialog .input:not(textarea){min-block-size:var(--ai-field-h)}
.ai-settings .panel .input--actor{padding:.5rem .75rem}
/* 頭像：靠左，相機鈕疊在頭像右下角 */
.ai-settings .avatar__form{position:relative;display:flex!important;justify-content:flex-start!important;inline-size:fit-content;margin:.5rem 0 .25rem!important;gap:0!important}
.ai-settings .avatar__form > form:has(.avatar){order:-1}
.ai-settings .avatar__form .avatar.txt-xx-large{font-size:2rem}
.ai-settings .avatar__form > form:not(:has(.avatar)):not(.button_to){position:absolute;inset:auto -.35rem -.2rem auto;z-index:1}

.ai-settings .avatar__form .button_to{position:absolute;inset:-.2rem -.35rem auto auto}
.ai-settings .avatar__form .avatar__delete-btn{--btn-size:1.5rem}
/* 主要按鈕：放右邊、不拉滿；不浮在畫面上 */
.ai-settings .panel .ai-submit{position:static!important;align-self:flex-start;inline-size:auto!important;min-inline-size:0;min-block-size:36px!important;padding-inline:16px!important;margin-block:8px 0!important;box-shadow:none!important;font-size:14px}
.ai-settings .panel:has(.ai-submit){padding-block-end:3rem!important}
.btn{font-weight:500;transition:background-color 120ms ease,filter 120ms ease;box-shadow:none}
.btn:not(.avatar){--btn-border-radius:.6rem;--btn-padding:.4em .95em;--btn-border-color:color-mix(in oklch,var(--color-text) 16%,transparent)}
.btn:focus-visible{outline:2px solid color-mix(in oklch,var(--accent) 70%,transparent);outline-offset:2px}
/* 裝置轉移：拿掉三個大圖示 */
.ai-settings .panel fieldset > legend{display:none}
.ai-settings .panel fieldset .flex.center{justify-content:flex-start!important}
/* 頁尾：版本只是一行灰字 */
.version-badge{border:0!important;padding:0!important;background:transparent!important}
#footer .txt-subtle{font-size:.8125rem;color:var(--ai-muted)}

/* ── 對話框：標題／說明／欄位標籤／按鈕列的大小與間距固定 ── */
.ai-dialog > *{margin-block:0!important}
.ai-dialog label:not(.ai-dialog__item):not(.btn):not(.ai-aipick){font-size:.8125rem!important;font-weight:500!important;color:var(--ai-muted);margin-block:.25rem -.4rem!important}
.ai-dialog__list{max-height:40vh;overflow:auto;border:1px solid var(--color-border);padding:.3em .5em;margin-block:.4em;border-color:var(--ai-line)!important;border-radius:.6rem!important;margin:0!important}
.ai-dialog__list > .ai-note:only-child{padding:.75rem .25rem;text-align:center}
.ai-modes{display:flex;flex-wrap:wrap;gap:1rem}
.ai-modes label{font-weight:normal;font-size:.9333rem!important;color:var(--color-text)!important;margin:0!important;display:inline-flex!important;align-items:center;gap:.35rem}
.ai-dialog input[type=radio],.ai-dialog input[type=checkbox]{accent-color:var(--color-text)}

/* ── 設定頁第二輪：卡片涵蓋所有容器、欄位、危險區域、使用者頁、編輯訊息 ── */
/* 只有圖示的按鈕一律無框：選擇器加重，避免被 .btn:not(.avatar) 的邊框蓋過 */
.btn.btn:where(:has(.for-screen-reader):has(img,figure,svg)):not(.btn--reversed,.btn--negative,.avatar){--btn-background:transparent;--btn-border-color:transparent}
.ai-settings .panel :is(div,section,li).fill-shade.border-radius{background:transparent!important;border:1px solid var(--ai-line)!important;border-radius:.8rem!important;padding:.25rem .9rem!important;margin:0!important}
.ai-settings .panel menu .avatar{--avatar-size:2rem!important}
.ai-settings .panel menu .avatar img.colorize--black{inline-size:1.25rem!important;block-size:1.25rem!important;margin:auto}
.ai-settings .panel form:has(> .ai-submit),.ai-settings .panel form:has(> div > .ai-submit){display:flex;flex-direction:column;gap:.75rem}
.ai-settings .panel hr.borderless{display:none}
.ai-set-empty{list-style:none;padding:1rem .25rem;font-size:.8125rem;line-height:1.6;color:var(--ai-muted)}
.ai-settings .panel .pad-inline-double{padding-inline:0!important}
/* 頂欄：返回在左、編輯在右，都對齊內容欄 */
.ai-settings #nav{padding-inline:12px 24px!important}
/* 相機徽章：圖示置中 */
.ai-settings .avatar__form > form:not(:has(.avatar)):not(.button_to) .btn{--btn-size:1.9rem;background:var(--color-bg)!important;border:1px solid var(--ai-line)!important;border-radius:50%!important;box-shadow:0 1px 3px rgba(0,0,0,.12);display:grid!important;place-items:center;padding:0!important;inline-size:1.9rem;block-size:1.9rem}
.ai-settings .avatar__form > form:not(:has(.avatar)):not(.button_to) .btn img{inline-size:1rem!important;block-size:1rem}
/* 房間列表的「私訊」圖示 */
/* 危險區域：紅字外框按鈕，跟上面的內容隔開 */
.ai-danger{margin-block-start:0!important;padding-block-start:0!important}
.ai-danger .btn--negative{--btn-background:transparent;--btn-color:var(--color-negative);--btn-border-color:color-mix(in oklch,var(--color-negative) 45%,transparent);align-self:flex-start;min-block-size:2.25rem;font-size:.9333rem}
.ai-danger .btn--negative img{filter:none!important;inline-size:1rem}
@media (prefers-color-scheme:dark){.ai-danger .btn--negative img{filter:invert(1)!important}}
.ai-danger .button_to{display:flex}
/* 使用者頁：靠左、Email 灰字、私訊是一般大小的按鈕 */
.user .panel .avatar.center{margin-inline:0!important;--avatar-size:5rem}
.user .panel h1{font-size:1.25rem!important}
.user .panel a[href^="mailto:"]{color:var(--ai-muted);text-decoration:none;font-size:.9333rem}
.ai-user-dm,.ai-user-ban{inline-size:auto!important;align-self:flex-start;min-block-size:2.5rem;padding-inline:1rem!important;gap:.5rem}
.ai-user-dm img{inline-size:1.1rem}
.user .panel .margin-inline{margin-inline:0!important}
/* 編輯訊息（整頁版）：跟設定頁同一欄，工具列不壓到頂欄 */
body.edit-message #main-content{padding:4rem 1rem 2rem}

.message__edit-btns{justify-content:flex-end!important;gap:.5rem!important}
.message__edit-btns .btn{min-block-size:2.25rem;padding-inline:1rem!important;gap:.4rem}
.message__edit-btns .btn--negative{order:-1;margin-inline-end:auto!important;--btn-background:transparent;--btn-color:var(--color-negative);--btn-border-color:color-mix(in oklch,var(--color-negative) 45%,transparent)}
.message__edit-btns .btn--negative img{filter:none!important;inline-size:1rem}

/* ── 設定頁第三輪 ── */
/* 頭像區不管是 form 還是 div 包起來，都是頭像在前、相機疊在右下角 */
.ai-settings .avatar__form > :is(.avatar,:has(.avatar)){order:-1}
.ai-settings .avatar__form > .btn.input--file{position:absolute;inset:auto -.35rem -.2rem auto;z-index:1;--btn-size:1.9rem;display:grid!important;place-items:center;padding:0!important;inline-size:1.9rem;block-size:1.9rem;background:var(--color-bg)!important;border:1px solid var(--ai-line)!important;border-radius:50%!important;box-shadow:0 1px 3px rgba(0,0,0,.12)}
.ai-settings .avatar__form > .btn.input--file img{inline-size:1rem!important;block-size:1rem}
.ai-settings .avatar__form > .avatar:not(.btn){--avatar-size:4.25rem!important}
/* 設定頁一律直排、用 gap 控制間距（說明文字緊貼在標題下） */
.ai-settings .panel{inline-size:min(600px,100%)!important;box-sizing:border-box;text-align:start!important;padding:clamp(16px,4vw,32px) clamp(16px,4vw,24px) 48px!important;gap:.75rem!important;font-size:.9333rem;display:flex!important;flex-direction:column}
.ai-settings .panel .justify-center{justify-content:flex-start!important}
.ai-settings .panel .margin-inline{margin-inline:0!important}
.ai-settings .panel fieldset{background:transparent!important;border:1px solid var(--ai-line)!important;border-radius:.8rem!important;padding:.25rem .9rem!important;margin:0!important;inline-size:100%;box-sizing:border-box}
.ai-settings .panel menu li + li{border-top:1px solid var(--ai-line)}
.ai-settings .panel menu li{min-block-size:2.75rem}
/* 抽屜打開時，第一列不要看起來像被選中 */
/* 編輯訊息整頁：不要灰底、不要飄在外面的 ✕（頂欄有返回） */
body.edit-message .message__body{background:transparent!important;padding:0!important}
body.edit-message .message__edit-close-btn{display:none!important}
/* 我的 AI：分區標題跟其他設定頁一樣（小、灰），子標題一般字級；已連線的卡片用框不用灰底 */
.ai_setup .panel h2{margin:16px 0 0!important;font-size:15px!important;font-weight:600!important;color:var(--text)}
.ai_setup .panel h3{margin:.75rem 0 0!important;font-size:.9333rem!important;font-weight:600}
.ai_setup .panel > p:first-child{margin-block-start:0}
.ai_setup .ai-grants > *{background:transparent!important;border:1px solid var(--ai-line)!important;border-radius:.8rem!important}

/* ── 第四輪：深色模式的浮層、登入頁、搜尋頁、編輯訊息 ── */
/* 深色模式：對話框和選單要比頁面亮一階，看得出邊界 */
/* 所有輸入框：裡面不放圖示、字跟介面一樣大（登入、加入等頁也一樣） */
.input--actor > img{opacity:.4;display:none}
.input--actor > label > img{opacity:.4;display:none}
.input.txt-large{font-size:.9333rem!important}
body.login .panel hr{display:none}
/* 搜尋：頂欄和下方搜尋框對齊訊息欄 */
/* 編輯訊息整頁：按鈕列不要灰底，跟設定頁同寬 */
body.edit-message .message__body-content,body.edit-message .message__edit-btns{background:transparent!important}
body.edit-message turbo-frame[id^="edit_message_"]{display:block;margin-inline:auto;inline-size:min(var(--ai-col),calc(100% - 2rem))}

/* ═══ 側欄（DESIGN 六：房間列表；所有寬度同一套） ═══ */
body.sidebar #sidebar{background:var(--side)!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important;border-inline-end:1px solid var(--line)}
#sidebar .sidebar__container{display:flex;flex-direction:column;padding:12px 8px calc(80px + env(safe-area-inset-bottom))}
.ai-side-head{display:flex;align-items:center;justify-content:space-between;padding:4px 4px 12px 8px}
.ai-logo{display:flex;align-items:center;gap:8px;font-size:16px;font-weight:600;letter-spacing:.02em}
.ai-icon-btn{display:grid;place-items:center;inline-size:34px;block-size:34px;border-radius:var(--r-md);color:var(--text-2)}
@media (hover:hover){.ai-icon-btn:hover{background:var(--surface);color:var(--text)}}
.ai-side-search{display:flex;align-items:center;gap:8px;block-size:36px;padding:0 12px;margin:0 4px 8px;border-radius:var(--r-md);background:var(--surface);color:var(--text-2);font-size:14px;text-decoration:none}
.ai-side-label{font-size:12px;color:var(--text-2);padding:12px 12px 4px}
#sidebar .rooms{padding:0!important;gap:0!important}
#sidebar .rooms .room.btn{display:flex;align-items:center;gap:12px;inline-size:100%;justify-content:flex-start;block-size:40px;min-block-size:40px;padding:0 12px;border:0!important;border-radius:var(--r-md)!important;background:transparent!important;color:var(--text)!important;font-size:14px;font-weight:400!important;box-shadow:none!important}
@media (hover:hover){#sidebar .rooms .room.btn:hover{background:var(--surface)!important}}
#sidebar .rooms .room.btn[aria-current="page"]{background:var(--surface)!important;font-weight:600!important}
#sidebar .room.unread::after{content:"";inline-size:8px;block-size:8px;border-radius:50%;background:var(--accent);margin-inline-start:auto;flex:none}
.ai-table-ic{flex:none}
.ai-table-ic--0{fill:var(--table-0)}
.ai-table-ic--1{fill:var(--table-1)}
.ai-table-ic--2{fill:var(--table-2)}
#sidebar .directs:not(.directs--new){display:flex!important;flex-direction:column;align-items:stretch;padding:0!important;gap:0!important;-webkit-mask-image:none!important;mask-image:none!important;overflow:visible!important;background:transparent}
#sidebar .direct{display:flex!important;flex-direction:row;align-items:center;gap:12px;block-size:40px;padding:0 12px;border-radius:var(--r-md);color:var(--text);text-decoration:none}
@media (hover:hover){#sidebar .direct:hover{background:var(--surface)}}
#sidebar .direct:focus:not(:focus-visible){background:transparent;outline:none}
#sidebar .direct .avatar{--avatar-size:24px;margin:0!important}
#sidebar .direct__author{margin:0!important;padding:0!important;font-size:14px;max-inline-size:none;background:transparent!important}
#sidebar .direct__author .txt-small{font-size:inherit}
#sidebar .unread .direct__author{font-weight:600!important}
#sidebar .direct__new{color:var(--text-2)}
.ai-direct-plus{display:grid;place-items:center;inline-size:24px;color:var(--text-2)}
#sidebar .sidebar__tools{z-index:5;-webkit-backdrop-filter:none!important;backdrop-filter:none!important;display:block!important;inline-size:var(--drawer-w,var(--sidebar-width))!important;inset-inline:0 auto!important;padding:8px 8px calc(8px + env(safe-area-inset-bottom))!important;border-top:1px solid var(--line);background:var(--side)}
.ai-account{position:relative}
.ai-account__me{display:flex;align-items:center;gap:12px;block-size:48px;padding:0 12px;border-radius:var(--r-md);cursor:pointer;list-style:none;color:var(--text);font-size:14px}
.ai-account__me::-webkit-details-marker{display:none}
/* 滑鼠點不要框；鍵盤才顯示，細一點、畫在裡面（不要貼著側欄底邊） */
.ai-account__me:focus:not(:focus-visible){outline:none}
.ai-account__me:focus-visible{outline:2px solid color-mix(in oklch,var(--accent) 70%,transparent)!important;outline-offset:-2px!important}
@media (hover:hover){.ai-account__me:hover{background:var(--surface)}}
.ai-account__me svg{color:var(--text-2);flex:none}
.ai-account__av{inline-size:28px;block-size:28px;border-radius:50%;object-fit:cover;flex:none}
.ai-account__name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ai-account__menu{position:absolute!important;inset:auto 0 calc(100% + 8px) 0;min-inline-size:0}
@media (pointer:coarse){
#sidebar .rooms .room.btn,#sidebar .direct{block-size:48px;min-block-size:48px;font-size:15px}
.ai-icon-btn{inline-size:44px;block-size:44px}
.ai-side-search{block-size:44px;font-size:15px}
#nav:has(.room--current){min-height:56px;--btn-size:44px}
#nav:not(:has(.room--current)){min-height:56px}
}

/* ═══ 訊息（DESIGN 七：平鋪；自己的訊息淡底；AI 圓角方形頭像＋AI 標籤） ═══ */
.messages{--message-space:16px;--message-row-gap:4px}
.message{grid-auto-columns:56px minmax(0,1fr) min-content;column-gap:0;padding-inline:0;border-radius:var(--r-lg)}
.message.message--me{background:transparent;padding-block:8px}
.message:is(.message--me,.message--mentioned){position:relative;isolation:isolate}
.message:is(.message--me,.message--mentioned)::before{content:"";position:absolute;inset:0;z-index:-1;border-radius:inherit;background:var(--surface);pointer-events:none}
.message.message--mentioned::before{background:var(--accent-soft)}
.message--first-of-day:is(.message--me,.message--mentioned) .message__day-separator{block-size:32px;margin-block:0 16px}
.message--first-of-day:is(.message--me,.message--mentioned)::before{inset-block-start:48px}
.message.message--me{grid-template-areas:"sep sep sep" "avatar body body";grid-auto-columns:56px minmax(0,1fr) min-content}
.message--me .message__meta,.message--me .message__heading{flex-direction:row!important;justify-content:flex-start!important;justify-self:stretch!important;text-align:start;padding-inline-start:0!important}
.message--me .message__avatar{margin-inline:0!important}
.message--me .lexxy-content,.message--me .message__body-content{text-align:start!important}
.message--me .message__body{flex-direction:column!important;justify-content:flex-start!important;justify-self:stretch!important}
.message__avatar{--avatar-size:40px;justify-self:center;align-self:start;padding-block-start:2px;box-shadow:none}
.message--ai .message__avatar .avatar,.message--ai .message__avatar img{border-radius:var(--r-md)!important}
.message__body{max-inline-size:100%!important;flex-direction:column!important}
.message__body-content{background:transparent!important;border-radius:0!important;inline-size:100%!important;padding:0 8px 0 0!important;margin:0!important;color:var(--text)!important}
.message__meta{min-block-size:24px;padding-inline-end:40px!important}
.message__heading{column-gap:8px!important;min-inline-size:0;flex-wrap:nowrap!important}
.message__heading > :not(.message__author){flex:none}
.message__author{font-size:14px;color:var(--text);min-inline-size:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ai-owner{color:var(--text-2);font-weight:400}
.ai-tag-ai{flex:none;white-space:nowrap;font-size:12px;line-height:18px;padding:0 4px;border-radius:var(--r-sm);background:var(--surface);color:var(--text-2);font-weight:500}
.message--me .ai-tag-ai{background:var(--bg)}
.message__permalink{font-size:12px;color:var(--text-2);opacity:1}
.message .message__meta{position:relative}
.message__meta .message__actions{position:absolute!important;inset-block:0!important;inset-inline:auto 0!important;transform:none!important;display:flex;align-items:center}
.message__options-btn{color:var(--text-2)}
.mention{background:var(--accent-soft)!important;color:var(--text)!important;font-weight:600;border-radius:var(--r-sm);padding-inline:4px!important;text-decoration:none}
.message--mentioned{background:transparent;padding-block:8px}
.message__day-separator{font-size:12px;color:var(--text-2);font-weight:400}
.message__day-separator time{background:transparent!important;border:0!important;font-weight:400!important}
@media (pointer:coarse){
.message,.message.message--me{grid-auto-columns:48px minmax(0,1fr) min-content}
.message__author{font-size:15px}
.message__permalink{font-size:13px}
}
/* 表情顆、☺、複製：同一條中線、固定間距（圖示 18、按鈕 30、間距 6 → 兩個圖示相距 18）；☺ 圖示左緣對齊頭像 */
.message .boosts{gap:6px 12px!important}
.message .boosts > turbo-frame{display:flex;align-items:center}
.message .message__boost-inline{display:inline-flex!important;align-items:center;gap:0;margin:0 0 0 -6px!important}
.boosts [id^='boosts_message_']{display:none!important}
.ai-reactions{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.message .boosts{align-items:center!important}
.ai-reactions[hidden]{display:none}
.ai-reaction{display:inline-flex;align-items:center;gap:4px;block-size:28px;padding:0 10px;border:1px solid var(--line);border-radius:999px;background:var(--raised);color:var(--text-2);font:inherit;font-size:13px;cursor:pointer}
.ai-reaction[aria-pressed="true"]{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}
.ai-reaction__emoji{font-size:16px;line-height:1}
.ai-reaction__count{font-variant-numeric:tabular-nums}
@media (hover:hover){.ai-reaction:hover{border-color:var(--text-3)}}
.ai-login-alt{margin:16px 0 0;text-align:center;font-size:14px}
.ai-login-alt a{color:var(--text-2)}
/* 加密桌：佔位訊息「（加密訊息）」在解密填回之前不顯示；不能用的 AI 功能先藏起來 */
/* 加密桌解密中：還沒解開的泡泡（整桌剛打開、或這則的鑰匙還在路上）畫兩條會閃的灰條，不要只剩作者和時間像壞掉 */
.ai-e2ee .messages .message:is(:not(.ai-e2ee-ready),.ai-e2ee-waiting) .lexxy-content{position:relative;min-block-size:2.9em}
.ai-e2ee .messages .message:not(.ai-e2ee-ready) .lexxy-content > *{visibility:hidden}
.ai-e2ee .messages .message:is(:not(.ai-e2ee-ready),.ai-e2ee-waiting) .lexxy-content::before{content:"";position:absolute;inset:.35em 0 auto 0;block-size:2.2em;max-inline-size:min(100%,28em);--bar:color-mix(in oklch,var(--text) 11%,transparent);background:linear-gradient(var(--bar),var(--bar)) 0 0/86% .7em no-repeat,linear-gradient(var(--bar),var(--bar)) 0 100%/58% .7em no-repeat;border-radius:4px;animation:ai-decrypting 1.4s ease-in-out infinite}
.ai-e2ee .messages .message.ai-e2ee-waiting .lexxy-content::before{inset-block-start:1.9em}
.ai-e2ee-waiting__text{margin:0;font-size:12px;color:var(--text-2)}
@keyframes ai-decrypting{50%{opacity:.45}}
@media (prefers-reduced-motion:reduce){.ai-e2ee .messages .message .lexxy-content::before{animation:none}}
.ai-e2ee :is(.ai-private-btn,.ai-block){display:none!important}
.ai-e2ee .message .boosts [id^='boosts_message_'],.ai-e2ee .message .message__actions-menu .message__boost-btn{display:none!important}
.ai-e2ee .message__actions-menu .ai-menu:not(.ai-e2ee-menu){display:none!important}
.ai-e2ee-locked{color:var(--danger)}
.ai-e2ee .ai-room-sub::before{content:"加密 · ";color:var(--ok);font-weight:500}
.ai-e2ee-gated .message-area--empty{display:none!important}
.ai-form [data-ai-e2ee-new-target="hide"][hidden]{display:none!important}
.ai-e2ee-edited{margin-inline-start:6px;font-size:12px;color:var(--text-3)}
.ai-e2ee-human .message__meta::after{content:"AI 看不到";margin-inline-start:8px;padding:0 6px;border-radius:var(--r-sm);background:var(--surface);font-size:11px;line-height:18px;color:var(--text-2)}
.ai-e2ee-gate{display:flex;flex-direction:column;align-items:center;gap:8px;margin:48px auto;max-inline-size:360px;text-align:center}
.ai-e2ee-gate__icon{font-size:32px}
.ai-e2ee-gate h2{margin:0;font-size:18px}
.ai-e2ee-gate p{margin:0 0 8px;color:var(--text-2);line-height:1.6}
.ai-e2ee-off{pointer-events:none;opacity:.4}
.ai-e2ee-only,.ai-e2ee-new--on .ai-e2ee-plain{display:none}
.ai-e2ee-new--on .ai-e2ee-only{display:inline}
.ai-e2ee-new__setup{color:var(--accent)}
.ai-e2ee-code{padding:14px;border-radius:var(--r-md);background:var(--surface);font-family:ui-monospace,Menlo,monospace;font-size:16px;letter-spacing:.04em;text-align:center;overflow-wrap:anywhere;user-select:all}
.ai-e2ee-check{display:flex;align-items:center;gap:10px;min-block-size:44px;font-size:15px;cursor:pointer}
.ai-e2ee-check input{appearance:auto!important;-webkit-appearance:checkbox!important;position:static!important;opacity:1!important;inline-size:22px!important;block-size:22px!important;margin:0;flex:none;accent-color:var(--accent)}
.ai-e2ee-join{align-items:center;text-align:center;max-inline-size:440px;margin-inline:auto;padding-block:48px}
.ai-e2ee-join__icon{inline-size:72px;block-size:72px;border-radius:20px;background:var(--surface);color:var(--ok);display:grid;place-items:center}
.ai-e2ee-join__title{margin:0;font-size:20px;font-weight:600}
.ai-e2ee-join__text{margin:0;line-height:1.7;color:var(--text-2)}
.ai-e2ee-join__actions{display:flex;flex-direction:column;gap:8px;inline-size:100%}
.ai-e2ee-join__actions .btn{min-block-size:48px;inline-size:100%;justify-content:center;box-sizing:border-box}
.ai-e2ee-join__note{margin-block-start:12px}
.ai-e2ee-open__list{list-style:none;margin:0;padding:12px 16px;border-radius:var(--r-md);background:var(--surface);inline-size:100%;box-sizing:border-box;text-align:start;display:flex;flex-direction:column;gap:4px}
.ai-e2ee-open__list[hidden]{display:none}
.ai-e2ee-fp-big{display:flex;flex-direction:column;align-items:center;gap:6px;padding:16px 24px;border-radius:var(--r-lg);background:var(--surface)}
.ai-e2ee-fp-big[hidden]{display:none}
.ai-e2ee-fp-big strong{font-family:ui-monospace,Menlo,monospace;font-size:32px;letter-spacing:.18em}
.ai-toast--action{display:flex;align-items:center;gap:12px}
.ai-toast--action a{color:inherit;font-weight:600}
.ai-e2ee-fingerprint{display:inline-block;margin-inline-start:8px;padding:0 8px;border-radius:var(--r-sm);background:var(--surface);font-family:ui-monospace,Menlo,monospace;font-size:15px;font-weight:600;letter-spacing:.12em;color:var(--text)}
.ai-e2ee-trust{display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px;margin:8px 0;box-shadow:0 2px 8px rgba(31,30,28,.08);padding:10px 12px;border-radius:var(--r-md);background:var(--surface);font-size:13px;line-height:1.5;color:var(--text-2)}
.ai-e2ee-trust span{flex:1 1 220px}
.ai-e2ee-trust--bad{position:sticky;top:8px;z-index:3;background:color-mix(in srgb,var(--danger) 12%,transparent);color:var(--danger);font-weight:500}
.ai-e2ee-safety{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 12px;padding:16px;border-radius:var(--r-md);background:var(--surface)}
.ai-e2ee-safety > p{grid-column:1/-1;margin:0;text-align:center}
.ai-e2ee-safety__group{font-family:ui-monospace,Menlo,monospace;font-size:18px;letter-spacing:.06em;text-align:center;font-variant-numeric:tabular-nums}
.ai-e2ee-safety-btn{margin-inline-start:auto}
.ai-e2ee-safety-btn + .ai-e2ee-remove{margin-inline-start:0}
.ai-e2ee .messages .message.ai-e2ee-system{display:block!important;padding-block:2px!important;margin-block:12px!important;text-align:center;background:transparent}
.ai-e2ee .messages .message.ai-e2ee-system::before{display:none}
.ai-e2ee .messages .message.ai-e2ee-system :is(.message__avatar,.message__meta,.message__actions,.boosts,.message__boost-inline,.ai-copy-msg,.ai-reactions){display:none!important}
.ai-e2ee .messages .message.ai-e2ee-system :is(.message__body,.message__body-content,[id^="presentation_message_"]){display:block!important;padding:0!important}
.ai-e2ee .messages .message.ai-e2ee-system .lexxy-content{display:inline-block;padding:2px 12px;border-radius:999px;background:var(--surface);color:var(--text-2);font-size:13px!important;line-height:1.6!important}
.ai-e2ee .messages .message.ai-e2ee-system .lexxy-content p{margin:0}
.ai-e2ee-cloud .ai-e2ee-person__head{flex-direction:column;align-items:flex-start;gap:2px}
.ai-e2ee-devices .ai-e2ee-remove-not{margin-inline-start:auto;flex:none;white-space:nowrap}
.ai-e2ee-cloud .ai-e2ee-devices li{flex-wrap:wrap;color:var(--text)}
.ai-e2ee-bar{position:fixed;inset-inline:12px;inset-block-start:calc(var(--ai-nav-height,56px) + 8px);z-index:90;display:flex;align-items:center;justify-content:space-between;gap:12px;max-inline-size:560px;margin-inline:auto;min-block-size:44px;padding:0 16px;border-radius:var(--r-md);background:var(--text);color:var(--bg);font-size:14px;text-decoration:none;box-shadow:var(--shadow-pop)}
.ai-e2ee-bar strong{white-space:nowrap}
.ai-e2ee-bar--link{font:inherit;text-align:start;cursor:pointer}
.ai-e2ee-code--link{font-size:32px;font-weight:600;letter-spacing:.3em;padding-inline-start:calc(14px + .3em)}
.ai-note.ai-e2ee-linkwarn{color:var(--danger)}
.ai-e2ee-pending{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}
.ai-e2ee-pending__item{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px 16px;padding:16px;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--raised)}
.ai-e2ee-pending__who{display:flex;flex-direction:column;gap:2px;min-inline-size:0}
.ai-e2ee-pending__name{font-weight:600}
.ai-e2ee-pending__fp{font-family:ui-monospace,Menlo,monospace;font-size:26px;letter-spacing:.14em}
.ai-e2ee-pending__actions{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.ai-e2ee-pending__actions .btn{min-block-size:44px}
.ai-e2ee-cloudlist{list-style:none;padding:0}
.ai-e2ee-steps{margin:0;padding-inline-start:20px;display:flex;flex-direction:column;gap:12px;line-height:1.6}
.ai-e2ee-steps li{display:flex;flex-direction:column;gap:6px}
.ai-e2ee-connect__again{align-self:flex-start}
.ai-e2ee-addmine{margin-block-start:4px}
.ai-e2ee-tray{display:flex;flex-wrap:wrap;gap:6px;padding:0 0 6px}
.ai-e2ee-tray[hidden]{display:none}
.ai-e2ee-tray__file{display:inline-flex;align-items:center;gap:6px;max-inline-size:100%;padding:2px 4px 2px 10px;border:1px solid var(--line);border-radius:999px;background:var(--raised);font-size:13px}
.ai-e2ee-tray__name{min-inline-size:0;max-inline-size:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ai-e2ee-tray__x{inline-size:28px;block-size:28px;border:0;border-radius:50%;background:transparent;color:var(--text-2);font-size:16px;cursor:pointer}
.ai-e2ee-files{display:flex;flex-wrap:wrap;gap:8px;margin-block:6px}
.ai-e2ee-file{display:flex;align-items:center;gap:10px;min-block-size:52px;max-inline-size:100%;padding:8px 12px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--raised);font:inherit;color:var(--text);text-align:start;cursor:pointer}
.ai-e2ee-file--image{padding:0;overflow:hidden;border-radius:var(--r-md)}
.ai-e2ee-file--image img{display:block;max-inline-size:min(320px,100%);block-size:auto;max-block-size:320px;object-fit:cover}
.ai-e2ee-file--loading{opacity:.5;pointer-events:none}
.ai-e2ee-file__icon{font-size:20px}
.ai-e2ee-file__main{display:flex;flex-direction:column;min-inline-size:0}
.ai-e2ee-file__name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-inline-size:220px}
.ai-e2ee-file__dl{margin-inline-start:auto;font-size:13px;color:var(--text-2)}
.ai-e2ee-run{display:flex;flex-direction:column;gap:8px;margin-block:4px;padding:10px 0 10px 48px}
.ai-e2ee-run__head{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 8px;font-size:13px;color:var(--text-2)}
.ai-e2ee-run__ai{font-weight:600;color:var(--text)}
.ai-e2ee-run__what{min-inline-size:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1 1 160px}
.ai-e2ee-run__stop{margin-inline-start:auto}
.ai-e2ee-run__error{margin:0;font-size:13px;color:var(--danger)}
.ai-e2ee-card{display:flex;flex-direction:column;gap:10px;margin-block:8px;padding:12px 14px;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--raised)}
.ai-e2ee-card__kind{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:600;color:var(--accent)}
.ai-e2ee-card__state{margin-inline-start:auto;font-weight:500;color:var(--text-2)}
.ai-e2ee-card__opts{display:flex;flex-wrap:wrap;gap:6px}
.ai-e2ee-card__opts--poll{flex-direction:column}
.ai-e2ee-opt{display:inline-flex;align-items:center;gap:8px;min-block-size:36px;padding:0 12px;border:1px solid var(--line);border-radius:999px;background:var(--bg);font:inherit;font-size:14px;color:var(--text);cursor:pointer}
.ai-e2ee-opt[aria-pressed="true"],.ai-e2ee-poll[aria-pressed="true"]{border-color:var(--accent);color:var(--accent)}
.ai-e2ee-opt__n{font-size:12px;color:var(--text-2);font-variant-numeric:tabular-nums}
.ai-e2ee-poll{position:relative;display:flex;align-items:center;justify-content:space-between;gap:8px;min-block-size:40px;padding:0 12px;border:1px solid var(--line);border-radius:var(--r-md);background:linear-gradient(90deg,var(--accent-soft) var(--pct,0%),var(--bg) var(--pct,0%));font:inherit;font-size:14px;color:var(--text);text-align:start;cursor:pointer}
.ai-e2ee-card__answers{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px;font-size:14px;line-height:1.6}
.ai-e2ee-card__act{align-self:flex-start;padding-inline:0;color:var(--text-2)}
.ai-e2ee-card--done,.ai-e2ee-card--cancel,.ai-e2ee-card--decline{opacity:.75}
.ai-e2ee-draft{display:flex;flex-direction:column;gap:6px;padding:10px 12px;border-radius:var(--r-md);background:var(--surface)}
.ai-e2ee-draft__text{white-space:pre-wrap;font-size:14px;line-height:1.6}
.ai-dialog :is(textarea,input,select,.ai-rows,.ai-seg,.ai-persona__mem){flex:none}
.ai-target{display:flex;align-items:center;gap:6px;align-self:flex-start;inline-size:fit-content;max-inline-size:100%;margin:0 0 6px}
.ai-target__pick{display:inline-flex;align-items:center;gap:6px;min-inline-size:0;block-size:32px;padding:0 10px 0 6px;border:1px solid var(--line);border-radius:999px;background:var(--bg);font:inherit;font-size:13px;color:var(--text);cursor:pointer}
.ai-target__pick strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ai-target__av{inline-size:20px;block-size:20px;border-radius:6px;object-fit:cover}
.ai-target svg{flex:none;inline-size:14px;block-size:14px;color:var(--text-2)}
.ai-target__pick svg:last-child{transform:rotate(-90deg)}
.ai-target--on .ai-target__pick{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}
.ai-target--on .ai-target__pick svg{color:var(--accent)}
.ai-target__off{block-size:32px;padding:0 10px;border:0;border-radius:999px;background:transparent;font:inherit;font-size:13px;color:var(--text-2);text-decoration:underline;cursor:pointer}
#composer.ai-target-on .composer__input{border-color:var(--accent)!important;background:color-mix(in oklch,var(--accent) 6%,var(--raised))!important;box-shadow:0 0 0 1px var(--accent)}
.ai-aicard__head{display:flex;align-items:center;gap:12px}
.ai-crew{padding-inline:0;border-block:1px solid var(--line)}
.ai-aipick--here{cursor:default}
.ai-crew__switch{flex:none}
.ai-aicard__av{inline-size:48px;block-size:48px;border-radius:12px;object-fit:cover}
.ai-aicard__kind{font-size:13px;color:var(--text-2)}
.ai-aicard__dot{display:inline-block;inline-size:8px;block-size:8px;margin-inline-end:6px;border-radius:50%;background:var(--text-3,#9a968e)}
.ai-aicard__dot--waiting{background:var(--ok)}
.ai-aicard__dot--working{background:var(--warn)}
.ai-aipick--off{cursor:default;opacity:.7}
.ai-aipick{position:relative;cursor:pointer;-webkit-tap-highlight-color:transparent}
.ai-dialog label.ai-aipick{display:flex;margin:0;font-weight:normal}
.ai-aipick input[type=radio]{position:absolute;opacity:0;pointer-events:none}
.ai-aipick:has(input[type=radio]:checked){background:var(--accent-soft)}
.ai-aipick:has(input[type=radio]:checked) .ai-row__name::after{content:" ✓";color:var(--accent)}
.ai-aipick:has(input[type=radio]:focus-visible){outline:2px solid var(--accent);outline-offset:-2px}
.ai-aipick__hint{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-block-start:4px;font-size:13px;color:var(--text-2)}
.ai-persona__badge{flex:none;display:grid;place-items:center;inline-size:32px;block-size:32px;border-radius:9px;background:var(--ok-soft,#D9E4DC);font-size:13px;font-weight:600;color:var(--ok)}
.ai-persona__badge--session{background:var(--surface);color:var(--text-2);font-size:11px}
.ai-persona__title{display:flex;align-items:center;justify-content:space-between}
.ai-persona__namerow{display:flex;gap:10px;align-items:flex-end}
.ai-persona__field{display:flex;flex-direction:column;gap:6px;flex:1;font-size:13px;color:var(--text-2)}
.ai-persona__field--label{flex:none;inline-size:72px}
.ai-persona__label-input{text-align:center}
.ai-persona__mem{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.ai-persona__mem li{display:flex;align-items:baseline;gap:8px;padding-block-end:8px;border-block-end:1px solid var(--line)}
.ai-persona__mem-text{flex:1;font-size:14px;line-height:1.5}
.ai-persona__memadd{display:flex;gap:8px}
.ai-persona__memadd .input{flex:1}
.ai-persona__status{flex:none}
.ai-persona__status--waiting{color:var(--ok)}
.ai-persona__status--working{color:var(--warn)}
.ai-row--btn{inline-size:100%;border:0;background:transparent;font:inherit;text-align:start;cursor:pointer}
.ai-seg{display:flex;gap:4px;padding:3px;border-radius:var(--r-md);background:var(--surface)}
.ai-seg__btn{flex:1;min-block-size:36px;border:0;border-radius:calc(var(--r-md) - 3px);background:transparent;font:inherit;font-size:14px;color:var(--text-2);cursor:pointer}
.ai-seg__btn[aria-selected="true"]{background:var(--bg);color:var(--text);font-weight:600;box-shadow:0 1px 2px rgb(0 0 0 / .08)}
.ai-persona__badge--captain{background:var(--accent-soft);color:var(--accent)}
.ai-e2ee-run--memory:empty{display:none}
.ai-proposals{display:flex;flex-direction:column;gap:10px;margin-block-start:10px;padding:12px;border-radius:var(--r-md);background:var(--surface)}
.ai-proposals__head{display:flex;align-items:baseline;justify-content:space-between}
.ai-memprop{display:flex;flex-direction:column;gap:6px}
.ai-memprop__tag{font-size:12px;color:var(--text-2)}
.ai-memprop__old{font-size:14px;color:var(--text-2);text-decoration:line-through}
.ai-memprop__new{font-size:14px;line-height:1.6}
.ai-e2ee-scheds{display:flex;flex-direction:column;gap:10px}
.ai-e2ee-sched{display:flex;flex-direction:column;gap:4px;padding-block-end:10px;border-block-end:1px solid var(--line)}
.ai-e2ee-sched--paused{opacity:.6}
.ai-e2ee-sched__head{display:flex;flex-direction:column}
.ai-e2ee-sched__what{font-size:14px;color:var(--text-2);line-height:1.6}
.ai-e2ee-sched__acts{display:flex;gap:12px}
.ai-e2ee-sched__when{display:flex;gap:8px}
.ai-e2ee-sched__when [hidden]{display:none}
.ai-e2ee-hit{display:flex;flex-direction:column;gap:2px;inline-size:100%;padding:8px 0;border:0;background:transparent;font:inherit;text-align:start;color:var(--text);cursor:pointer}
.ai-e2ee-hit__who{font-size:12px;color:var(--text-2)}
.ai-e2ee-hit__text{font-size:14px;line-height:1.5}
.ai-e2ee-members{display:flex;flex-direction:column;gap:12px}
.ai-e2ee-person{display:flex;flex-direction:column;gap:4px;padding-block-end:12px;border-block-end:1px solid var(--line)}
.ai-e2ee-person:last-child{border:0;padding:0}
.ai-e2ee-person__head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.ai-e2ee-person__name{font-weight:600}
.ai-e2ee-ok{font-size:12px;color:var(--ok)}
.ai-e2ee-warn{font-size:12px;font-weight:600;color:var(--danger)}
.ai-e2ee-remove{margin-inline-start:auto;color:var(--danger)}
.ai-e2ee-devices{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px;font-size:13px;color:var(--text-2)}
.ai-e2ee-devices li{display:flex;align-items:center;gap:6px;min-block-size:32px}
.ai-e2ee-this{color:var(--text-3)}
.ai-e2ee-results{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.ai-e2ee-results li{display:flex;align-items:center;gap:10px;min-block-size:48px;border-block-end:1px solid var(--line)}
.ai-e2ee-results__name{flex:1;min-inline-size:0}
/* 回覆的引用（訊息裡、輸入框裡；手機電腦都一樣）：細線、小一號灰字；伺服器會拿掉 <cite>，所以署名是引用裡最後一段 */
.message .lexxy-content blockquote{margin:0 0 8px!important;padding:0 0 0 12px!important;border-inline-start:3px solid var(--line)!important;color:var(--text-2);font-size:.92em}
.message .lexxy-content blockquote p{margin:0}
.message .lexxy-content blockquote p:last-child:not(:first-child),.message .lexxy-content blockquote cite{display:block;margin-block-start:2px;font-style:normal;font-size:12px;color:var(--text-3)}
.message .lexxy-content blockquote a{color:inherit}
#composer .lexxy-editor__content blockquote{margin:0 0 6px!important;padding:0 0 0 10px!important;border-inline-start:3px solid var(--line)!important;color:var(--text-2);font-size:13px;line-height:1.5}
#composer .lexxy-editor__content blockquote p{margin:0}
#composer .lexxy-editor__content blockquote p:first-child{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
#composer .lexxy-editor__content cite{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:2px 0 0!important;font-style:normal;font-size:12px;color:var(--text-3)}
#composer .lexxy-editor__content cite::before{content:none!important}
/* 團隊設定 → 自訂表情 */
.ai-cemojis{display:flex;flex-direction:column;gap:12px}
.ai-cemoji-form{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.ai-cemoji-form__file{display:inline-flex;align-items:center;gap:8px;cursor:pointer}
.ai-cemoji-form__preview{inline-size:40px;block-size:40px;object-fit:contain;border-radius:var(--r-sm);background:var(--surface)}
.ai-cemoji-form__preview[hidden]{display:none}
.ai-cemoji-form__name{display:inline-flex;align-items:center;gap:2px;color:var(--text-2)}
.ai-cemoji-form__name .input{inline-size:9em}
.ai-cemoji-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:4px 16px}
.ai-cemoji-grid[hidden]{display:none}
.ai-cemoji{display:flex;align-items:center;gap:12px;min-block-size:48px}
.ai-cemoji img{inline-size:32px;block-size:32px;object-fit:contain;flex:none}
.ai-cemoji__main{display:flex;flex-direction:column;min-inline-size:0;flex:1}
.ai-cemoji__name{font-size:14px;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ai-cemoji__by{font-size:12px;color:var(--text-2)}
.ai-cemoji__del{color:var(--danger)}
.ai-emoji-upload{align-self:flex-start;margin-block-start:8px;color:var(--text-2);font-size:13px}
.ai-cemoji-img{display:block;inline-size:24px;block-size:24px;object-fit:contain;margin:auto}
.ai-reaction__emoji img{display:block;inline-size:18px;block-size:18px;object-fit:contain}
/* 表情盤（emoji-picker-element）：跟著淺色／深色 */
.ai-emoji-picker{inline-size:100%;block-size:min(56dvh,420px);--background:var(--raised);--border-color:var(--line);--border-size:0;--button-active-background:var(--surface);--button-hover-background:var(--surface);--indicator-color:var(--accent);--input-border-color:var(--line);--input-font-color:var(--text);--input-placeholder-color:var(--text-3);--input-border-radius:var(--r-md);--input-font-size:16px;--input-padding:8px 12px;--outline-color:var(--accent);--category-font-color:var(--text-2);--category-font-size:12px;--emoji-size:1.6rem;--emoji-padding:.4rem;--num-columns:8}
.message .message__boost-inline .boost__action,.ai-copy-msg{--btn-size:30px;position:relative;inline-size:30px;block-size:30px;margin:0!important;display:grid;place-items:center;border:0!important;background:transparent!important;color:var(--text-2);border-radius:var(--r-md);padding:0!important;cursor:pointer}
@media (hover:hover){.message .message__boost-inline .boost__action:hover,.ai-copy-msg:hover{background:var(--surface)!important;color:var(--text)}}
@media (hover:hover){.message--me .message__boost-inline .boost__action:hover,.message--me .ai-copy-msg:hover{background:var(--bg)!important}}
.message .message__boost-inline .boost__action img,.ai-copy-msg svg{display:block;inline-size:18px;block-size:18px}
.message .message__boost-inline .ai-copy-msg{margin-inline-start:-2px!important}
/* 人的訊息：平常不顯示表情／複製，電腦滑過才出現（AI 的回覆一直有） */

/* ═══ 訊息裡的 AI 區塊（DESIGN 六、十一：一行狀態字＋按鈕；只有「等你處理」用淡紅底） ═══ */
.ai-block{display:flex;flex-direction:column;gap:12px;margin-block-start:8px}
.ai-block:not(:has(> :not(.ai-meta:empty))){display:none}
.ai-meta{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.ai-meta:empty{display:none}
.ai-badge,.ai-private,.ai-taken{display:inline-flex;align-items:center;gap:4px;font-size:12px;line-height:20px;padding:0 8px;border-radius:var(--r-sm);border:1px solid var(--line);color:var(--text-2)}
.ai-badge--read{border:0;padding:0}
.ai-badge--unreviewed{font-size:0;padding:0;inline-size:8px;block-size:8px;border-radius:50%;background:var(--accent);border:0}
.ai-note{font-size:12px;line-height:1.6;color:var(--text-2)}
.ai-note--error{color:var(--danger)}
.ai-tag{align-self:flex-start;font-size:12px;color:var(--text-2)}
.ai-run{display:flex;flex-direction:column;gap:12px;border:0!important;padding:0!important;background:transparent!important}
.ai-live{display:flex;align-items:center;gap:12px;min-block-size:32px;font-size:12px;color:var(--text-2);min-width:0}
.ai-live__text{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ai-live__dot{flex:none;inline-size:8px;block-size:8px;border-radius:50%;background:var(--accent);animation:ai-pulse 1.4s ease-in-out infinite}
.ai-run--queued .ai-live__dot{background:transparent;border:1.5px solid var(--text-3);animation:none;box-sizing:border-box}
@media (prefers-reduced-motion:reduce){.ai-live__dot{animation:none}}
.ai-link,.ai-file__act{min-block-size:28px;border:0;background:transparent;color:var(--text);font:inherit;font-size:12px;font-weight:500;padding:0 4px;cursor:pointer;white-space:nowrap;text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:3px}
.ai-link[hidden]{display:none}
.ai-todos{list-style:none;margin:0;padding:0 0 0 16px;display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--text-2)}
.ai-todo{display:flex;align-items:center;gap:8px}
.ai-todo__dot{inline-size:8px;block-size:8px;border-radius:50%;border:1.5px solid var(--text-3);box-sizing:border-box;flex:none}
.ai-todo--completed .ai-todo__dot{background:var(--ok);border-color:var(--ok)}
.ai-todo--in_progress{color:var(--text)}
.ai-todo--in_progress .ai-todo__dot{background:var(--accent);border-color:var(--accent)}
.ai-decide,.ai-handoff,.ai-qcard--pending,.ai-consult--pending{display:flex;flex-direction:column;gap:12px;padding:12px 16px;border-radius:var(--r-lg);background:var(--accent-soft);border:0;max-inline-size:560px}
.ai-decide__head,.ai-handoff__head{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:500;color:var(--text)}
.ai-decide__head [hidden]{display:none}
.ai-decide__what{font-size:14.5px;line-height:1.6;word-break:break-word}
.ai-decide__actions,.ai-handoff__actions,.ai-qcard__options{display:flex;gap:8px;flex-wrap:wrap}
.ai-decide__actions[hidden]{display:none}
.ai-plan{white-space:pre-line;font-size:14px;line-height:1.7;padding-inline-start:12px;border-inline-start:2px solid var(--accent-light);max-block-size:20em;overflow:auto}
.ai-pill{min-block-size:36px;padding:0 16px;border-radius:var(--r-md);border:1px solid var(--line);background:var(--raised);color:var(--text);font:inherit;font-size:14px;font-weight:500;cursor:pointer;white-space:nowrap}
@media (hover:hover){.ai-pill:hover{background:var(--surface)}}
.ai-pill:disabled{opacity:.5}
.ai-question{border:0;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}
.ai-question legend{font-size:14.5px;font-weight:500;padding:0;margin-block-end:4px;float:none;inline-size:auto;text-align:start}
.ai-option{display:flex;align-items:center;gap:12px;min-block-size:40px;font-size:14px;cursor:pointer}
.ai-option input{appearance:auto;-webkit-appearance:radio;inline-size:18px;block-size:18px;position:static;opacity:1;accent-color:var(--text)}
.ai-options{display:flex;flex-direction:column;gap:8px;max-inline-size:520px}
.ai-option-vote{display:flex;align-items:center;gap:12px;min-block-size:40px;padding:0 12px;border-radius:var(--r-md);border:1px solid var(--line);background:var(--raised);color:var(--text);font:inherit;font-size:14px;text-align:start;cursor:pointer}
@media (hover:hover){.ai-option-vote:hover{background:var(--surface)}}
.ai-options__text{flex:1 1 12em}
.ai-options__count{font-size:12px;color:var(--text-2)}
.ai-asks{display:flex;flex-direction:column;gap:4px;font-size:14px}
.ai-ask{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px}
.ai-ask__q::before{content:"需要人回答　";font-size:12px;color:var(--text-2)}
.ai-proposal{display:flex!important;flex-direction:row!important;flex-wrap:wrap;gap:8px;align-items:center;font-size:14px}
.ai-folder-card{display:flex;flex-direction:column;gap:2px;inline-size:100%;text-align:start;padding:0;border:0!important;background:transparent!important;color:var(--text);font:inherit;font-size:14px;cursor:pointer}
.ai-folder-card__head{display:flex;align-items:center;gap:8px;color:var(--text)!important;font-weight:400;text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:3px}
.ai-folder-card__row{display:flex;justify-content:flex-start;align-items:center;gap:8px;padding-inline-start:24px;font-size:12px;color:var(--text-2)}
.ai-folder-card__path{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ai-folder-card__tag{flex:none;padding:0 6px;border-radius:var(--r-sm);background:var(--surface);font-size:11px;line-height:18px;color:var(--text-2)}
.ai-folder-card__more,.ai-folder-card__note{padding-inline-start:24px;font-size:12px;color:var(--text-2)}
.ai-foot{font-size:12px;color:var(--text-2)}
.ai-foot summary{cursor:pointer;list-style:none;display:inline-flex;gap:4px;align-items:center}
.ai-foot summary::-webkit-details-marker{display:none}
.ai-foot summary::after{content:"›";transition:transform 150ms ease}
.ai-foot[open] summary::after{transform:rotate(90deg)}
.ai-foot__steps{margin:8px 0;padding-inline-start:12px;border-inline-start:2px solid var(--line);list-style:none;max-block-size:40dvh;overflow:auto;display:flex;flex-direction:column;gap:4px;line-height:1.6}
.ai-foot__decision{margin-block:4px}
.ai-qcard{display:flex;flex-direction:column;gap:8px}
.ai-qcard__status,.ai-consult__status{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--text-2)}
.ai-qcard--pending .ai-qcard__status,.ai-consult--pending .ai-consult__status{color:var(--text);font-weight:500}
.ai-qcard--pending .ai-qcard__status::before,.ai-consult--pending .ai-consult__status::before{content:"";inline-size:8px;block-size:8px;border-radius:50%;background:var(--accent);flex:none}
.ai-consult{display:flex;flex-direction:column;gap:8px}
.ai-handoff__fields{display:grid;grid-template-columns:max-content 1fr;gap:4px 16px;margin:0;font-size:14px;line-height:1.6}
.ai-handoff__fields dt{color:var(--text-2)}
.ai-handoff__fields dd{margin:0;white-space:pre-wrap}
.ai-handoff__need{font-weight:600}
/* 交辦卡（U4）：一張有邊框的卡，頭一行「交辦 · 誰給誰 · 狀態」，目的放大，其他欄位小字 */
.ai-task{display:flex;flex-direction:column;gap:12px;margin-block:4px;padding:16px;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--raised,var(--bg))}
.ai-task__head{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;font-size:12px;color:var(--text-2)}
.message__body-content:has(> .ai-block > .ai-task) > div:not(.message__meta,.ai-block){display:none}
.ai-task__kind{padding:0 8px;border-radius:var(--r-sm);background:var(--accent-soft);color:var(--accent);font-weight:600;line-height:20px}
.ai-task__who{order:3;flex-basis:100%;min-inline-size:0}
.ai-task__status{margin-inline-start:auto;display:inline-flex;align-items:center;gap:6px;color:var(--text);font-weight:500}
.ai-task__status::before{content:"";inline-size:8px;block-size:8px;border-radius:50%;background:var(--text-3);flex:none}
.ai-task--sent .ai-task__status::before,.ai-task--reviewing .ai-task__status::before{background:var(--accent)}
.ai-task--working .ai-task__status::before{background:var(--warn);animation:ai-pulse 1.4s ease-in-out infinite}
.ai-task--answered .ai-task__status::before{background:var(--ok)}
.ai-task--declined .ai-task__status{color:var(--text-2)}
.ai-task__purpose{margin:0;font-size:16px;font-weight:600;line-height:1.5}
.ai-task__fields{display:grid;grid-template-columns:max-content 1fr;gap:6px 16px;margin:0;font-size:14px;line-height:1.6}
.ai-task__fields dt{color:var(--text-2)}
.ai-task__fields dd{margin:0;white-space:pre-wrap;overflow-wrap:anywhere}
.ai-task__context{color:var(--text-2)}
.ai-task__actions{display:flex;flex-direction:column;gap:8px;padding-block-start:12px;border-block-start:1px solid var(--line)}
.ai-task__choices{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.ai-task__decline{margin-inline-start:auto;color:var(--text-2)}
.ai-pill.ai-pill--primary{border-color:var(--accent);background:var(--accent);color:var(--on-accent)}
.ai-task__actions:has(.ai-task__reply:not([hidden])) .ai-task__write{display:none}
.ai-task__hint{margin:0;font-size:12px;line-height:1.6;color:var(--text-2)}
.ai-task__reply{display:flex;flex-direction:column;gap:8px}
.ai-task__reply[hidden]{display:none}
.ai-task__reply-label{font-size:12px;color:var(--text-2)}
.ai-task__load{margin-inline-end:auto;color:var(--text-2);font-size:13px}
.ai-task__send{display:flex;align-items:center;justify-content:flex-end;gap:8px}
/* 系統訊息（改名通知）：置中一行小字，沒有頭像、名字、表情、選單 */
.message:has(.ai-sys-marker){display:block!important;padding-block:4px!important;text-align:center}
.message:has(.ai-sys-marker)::before{display:none}
.message:has(.ai-sys-marker) :is(.message__body,.message__body-content,[id^="presentation_message_"]){display:block!important;inline-size:100%;text-align:center!important;padding:0!important}
.message:has(.ai-sys-marker) :is(.message__avatar,.message__meta,.message__actions,.boosts,.message__boost-inline,.ai-copy-msg,.ai-reactions){display:none!important}
.message:has(.ai-sys-marker) .lexxy-content{display:inline-block;padding:2px 12px;border-radius:999px;background:var(--surface);color:var(--text-2);font-size:13px!important;line-height:1.6!important}
.message:has(.ai-sys-marker) .lexxy-content p{margin:0}
.ai-task-reply-tag{display:inline-flex;align-self:flex-start;margin-block-end:4px;padding:0 8px;border-radius:var(--r-sm);background:var(--surface);font-size:12px;line-height:20px;color:var(--text-2)}
.ai-task-draft-cut{margin-block-start:8px}
.ai-task-draft-cut .ai-textbtn{color:var(--accent);padding-inline:0}
.ai-handoff__return{display:flex;flex-direction:column;gap:8px;inline-size:100%}
.ai-translation{display:flex;flex-direction:column;gap:2px;padding-inline-start:12px;border-inline-start:2px solid var(--line);font-size:14.5px;line-height:1.7;white-space:pre-wrap}
.ai-translation__label{font-size:12px;color:var(--text-2)}
.ai-annotations{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:4px;font-size:14px}
.ai-pin-n{display:inline-grid;place-items:center;inline-size:20px;block-size:20px;border-radius:50%;background:var(--text);color:var(--bg);font-size:12px;margin-inline-end:8px}
.message.ai-is-private{outline:1px dashed var(--line);outline-offset:-1px}
@media (pointer:coarse){
.ai-pill{min-block-size:44px;font-size:15px}
.ai-link,.ai-file__act{min-block-size:44px;min-inline-size:44px;font-size:13px}
.ai-option-vote,.ai-option{min-block-size:48px;font-size:15px}
.ai-live{min-block-size:44px;font-size:13px}
}

/* ═══ 輸入框（DESIGN 六：圓角 14、白底；聚焦時紅框＋淡光暈；送出鈕空的時候是灰的） ═══ */
.composer__input{--input-border-radius:var(--r-lg)!important;border-radius:var(--r-lg)!important;background:var(--raised)!important;border:1px solid var(--line)!important;padding:4px!important;box-shadow:none}
.composer__input:focus-within{border-color:var(--accent)!important;box-shadow:0 0 0 3px var(--accent-soft)!important}
#composer lexxy-editor,#composer .lexxy-editor__content{font-size:15px;line-height:24px}
#composer .lexxy-editor__content{padding-block:5px}
.ai-plus,.ai-hand-btn,.ai-private-btn{flex:none;align-self:flex-end;inline-size:34px;min-inline-size:34px;block-size:34px;padding:0!important;border-radius:var(--r-md)!important;color:var(--text-2)}
@media (hover:hover){.ai-plus:hover,.ai-hand-btn:hover,.ai-private-btn:hover{background:var(--surface)!important;color:var(--text)}}
#composer button[name=send]{--btn-size:34px;inline-size:34px;block-size:34px;align-self:flex-end;border-radius:var(--r-md)!important;border:0!important;background:var(--surface)!important;padding:0!important}
#composer button[name=send] img{filter:none;opacity:.45}
#composer.ai-has-text button[name=send]{background:var(--accent)!important}
#composer.ai-has-text button[name=send] img{filter:brightness(0) invert(1);opacity:1}
.ai-talk-bar{display:flex;align-items:center;gap:8px;min-block-size:32px;margin:0 0 4px;padding:0 0 0 12px;border-radius:var(--r-md);background:var(--surface);font-size:12px;color:var(--text)}
@media (pointer:coarse){
.ai-plus,.ai-hand-btn,.ai-private-btn,#composer button[name=send]{inline-size:44px;min-inline-size:44px;block-size:44px;--btn-size:44px}
#composer lexxy-editor,#composer .lexxy-editor__content{font-size:16px}
#composer .lexxy-editor__content{padding-block:10px;min-block-size:44px;box-sizing:border-box}
.ai-talk-bar{min-block-size:44px;font-size:13px}
}

/* ═══ 跳出的選單、提示、對話框（DESIGN 六） ═══ */
.ai-pop{position:fixed;z-index:60;min-inline-size:280px;max-inline-size:calc(100vw - 16px);max-block-size:calc(100dvh - 96px);overflow:auto;padding:4px;border-radius:var(--r-lg);background:var(--raised);color:var(--text);border:1px solid var(--line);box-shadow:var(--shadow-pop);opacity:0;transform:translateY(-4px) scale(.98);transform-origin:top right;transition:opacity 140ms ease-out,transform 180ms cubic-bezier(.2,.8,.2,1)}
.ai-pop--reactions{display:flex;gap:0;padding:4px;min-inline-size:0;border-radius:999px}
.ai-pop__header{display:flex;align-items:center;gap:8px;padding:8px 12px;font-size:12px;color:var(--text-2);border-bottom:1px solid var(--line);margin-block-end:4px}
.ai-pop__group+.ai-pop__group{border-top:1px solid var(--line);margin-block-start:4px;padding-block-start:4px}
.ai-pop__item{display:flex;align-items:center;gap:12px;inline-size:100%;min-block-size:40px;padding:0 12px;border:0;border-radius:var(--r-md);background:transparent;color:inherit;font:inherit;font-size:14px;text-align:start;cursor:pointer;box-shadow:none!important;outline:none!important;text-decoration:none}
.ai-pop__item .ai-icon{display:inline-flex;color:var(--text-2)}
.ai-pop__item--danger,.ai-pop__item--danger .ai-icon{color:var(--danger)}
@media (hover:hover){.ai-pop__item:hover{background:var(--surface)}}
.ai-pop__item:focus-visible{background:var(--surface)}
.ai-pop__item:focus-visible{outline:2px solid var(--text)!important;outline-offset:-2px}
.ai-pop__hint{font-size:12px;color:var(--text-2);font-variant-numeric:tabular-nums}
.message__actions-menu{border-radius:var(--r-lg)!important;border:1px solid var(--line)!important;box-shadow:var(--shadow-pop)!important;background:var(--raised)!important;padding:4px!important;min-inline-size:280px}
.ai-toast{position:fixed;left:50%;transform:translateX(-50%);top:auto!important;bottom:calc(var(--ai-footer-height,0px) + 12px + env(safe-area-inset-bottom))!important;z-index:100;inline-size:max-content;max-inline-size:min(360px,calc(100vw - 32px));padding:8px 14px;border-radius:var(--r-md)!important;background:var(--text);color:var(--bg);font-size:13px;line-height:1.5;text-align:center;box-shadow:var(--shadow-pop);animation:ai-toast-in 180ms ease-out}
@keyframes ai-toast-in{from{opacity:0;transform:translate(-50%,6px)}}
@media (prefers-reduced-motion:reduce){.ai-toast{animation:none}}
.ai-dialog{width:100%;max-width:min(560px,94vw);max-height:calc(100dvh - 96px);overflow:auto;border:0;border-radius:var(--r-lg);background:var(--raised);color:var(--text);box-shadow:var(--shadow-pop);padding:16px 16px 24px 24px;display:flex;flex-direction:column;gap:12px;font-size:14px}
.ai-dialog::backdrop{background:var(--scrim)}
.ai-dialog__head{display:flex;align-items:center;gap:8px}
.ai-dialog__head h2{flex:1;margin:0;font-size:16px!important;font-weight:600}
.ai-dialog__x{display:grid;place-items:center;inline-size:34px;block-size:34px;border:0;border-radius:var(--r-md);background:transparent;color:var(--text-2);cursor:pointer;flex:none}
@media (hover:hover){.ai-dialog__x:hover{background:var(--surface);color:var(--text)}}
.ai-dialog .ai-note{font-size:14px;line-height:1.7;color:var(--text-2)}
.ai-dialog .btn--small{min-block-size:32px;font-size:12px;padding-inline:12px}
.ai-dialog__foot{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:8px;margin-block-start:4px!important}
@media (prefers-color-scheme:dark){.ai-pop,.ai-dialog,.message__actions-menu{background:var(--raised)!important}}
@media (pointer:coarse){
.ai-pop__item{min-block-size:48px;font-size:15px}
.ai-dialog__x{inline-size:44px;block-size:44px}
.ai-toast{font-size:14px}
}
/* 主要按鈕（Campfire 的 btn--reversed）：辦桌紅 */
.btn--reversed{--btn-background:var(--accent);--btn-color:var(--on-accent);--btn-border-color:transparent}
.btn--reversed img{filter:brightness(0) invert(1)}
@media (prefers-color-scheme:dark){.btn--reversed img{filter:brightness(0)}}
/* 訊息的 ••• 選單往左開，不超出畫面 */
@media (min-width:100ch){.message__actions .message__actions-menu{inset-inline:auto 0!important}}
/* 設定頁也有房間列表：窄螢幕用 ← 返回，不放 ☰ */
.ai-settings #sidebar .sidebar__toggle{display:none!important}
/* 返回鈕：細一點、次要色 */
.btn:has(> img[src*="arrow-left"]) img{inline-size:22px;block-size:22px;content:url("/assets/icons-chevron-left-bab7bb3c.svg")}
/* 複製：程式碼框右上的文字鈕（跟「複製連結」同一個元件） */
.ai-code{position:relative;border-radius:var(--r-md);background:var(--surface)}
.ai-code pre{white-space:pre-wrap;overflow-wrap:anywhere;background:transparent!important;color:var(--text);padding:12px 72px 12px 12px;border-radius:var(--r-md);margin:0;font-size:13px;line-height:1.6}
.ai-code__copy{position:absolute;top:4px;right:4px;min-block-size:28px;padding:0 8px;border:0!important;background:transparent!important;color:var(--text-2)!important;font-size:12px!important;font-weight:500;text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:3px}
/* 訊息 •••：表情一列，下面是文字清單（不是圖示格子） */
.message__actions-grid{display:flex!important;flex-direction:column!important;flex-wrap:nowrap!important;gap:0!important;border-top:1px solid var(--line)!important;margin-block-start:4px;padding-block-start:4px}
.message__actions-grid .message__action-btn{display:flex!important;align-items:center;justify-content:flex-start!important;gap:12px;inline-size:100%!important;block-size:40px;min-block-size:40px;padding:0 12px!important;border-radius:var(--r-md)!important;color:var(--text)}
.message__actions-grid .message__action-btn img{inline-size:18px;block-size:18px;opacity:.7}
.ai-act-label{font-size:14px;font-weight:400}
@media (pointer:coarse){.message__actions-grid .message__action-btn{block-size:48px;min-block-size:48px}.ai-act-label{font-size:15px}}
/* ═══ 實站評審第一輪修正 ═══ */
/* 設定頁有側欄，但內容從上面排（不要沿用聊天頁的貼底） */
.ai-settings #main-content{justify-content:flex-start!important}
/* 搜尋：搜尋框在最上面 */
body.searches #main-content{justify-content:flex-start!important}
body.searches #footer{order:-1;margin-block-start:var(--ai-nav-height,52px);padding:32px 16px 0;border:0;background:var(--bg)}
/* AI 的訊息不能編輯（DESIGN 十二） */
.message--ai .message__edit-btn{display:none!important}
/* 觸控裝置：訊息 ••• 一直顯示（沒有滑過這回事） */
@media (hover:none){.message .message__options-btn{opacity:1!important;visibility:visible!important}}
/* 訊息 •••：表情一列 8 顆，不折行；不要尖角 */
.message__actions-menu .quick-boosts{display:grid!important;grid-template-columns:repeat(9,minmax(0,1fr));gap:0}
.message__actions-menu::before,.message__actions-menu::after{display:none!important}
.message__actions-grid .message__action-btn:first-child:not(:hover){background:transparent!important}
/* 送出鈕：圓角方形 */
#composer button[name=send]{--btn-border-radius:var(--r-md);margin:0!important}
/* 輸入框離底邊 16px */
#footer:has(#composer){padding-block-end:calc(12px + env(safe-area-inset-bottom))}
/* 訊息標頭和內文之間 */
.message__meta{margin-block-end:8px}
/* AI 內文的粗體不要太粗 */
.lexxy-content strong,.lexxy-content b{font-weight:600}
/* ═══ 設定頁元件（設計稿 PageUI：清單卡、複製框、文字鈕、分隔線、頭像） ═══ */
.ai-form{display:flex;flex-direction:column;align-items:stretch;gap:12px}
.ai-divider{inline-size:100%;margin:4px 0;border:0;border-block-start:1px solid var(--line)}
.ai-rows{display:flex;flex-direction:column;margin:0;padding:0;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--raised);overflow:hidden}
.ai-rows > turbo-frame{display:contents}
.ai-row{display:flex;align-items:center;gap:12px;min-block-size:56px;margin:0;padding:4px 12px 4px 16px;color:var(--text);text-decoration:none;font-size:14px}
.ai-rows .ai-row ~ .ai-row{border-block-start:1px solid var(--line)}
a.ai-row::after{content:"";flex:none;inline-size:16px;block-size:16px;background:var(--text-3);-webkit-mask:url("/assets/icons-chevron-right-d35fd5f8.svg") center/contain no-repeat;mask:url("/assets/icons-chevron-right-d35fd5f8.svg") center/contain no-repeat}
.ai-row__main{display:flex;flex:1;flex-direction:column;min-inline-size:0}
.ai-row__name{overflow:hidden;line-height:1.5;text-overflow:ellipsis;white-space:nowrap}
.ai-row__sub{font-size:12px;line-height:1.5;color:var(--text-2)}
.ai-row__meta{flex:none;font-size:12px;color:var(--text-2);white-space:nowrap}
.ai-row__av{flex:none;inline-size:32px;block-size:32px;border-radius:50%;object-fit:cover;background:var(--surface)}
.ai-row__av--ai{border-radius:var(--r-md)}
.ai-row.banned{opacity:.55}
.ai-ic{flex:none;inline-size:20px;block-size:20px;background:var(--text-2);-webkit-mask:var(--ic) center/contain no-repeat;mask:var(--ic) center/contain no-repeat}
.ai-ic--lock{--ic:url("/assets/icons-lock-82099de5.svg")}
.ai-ic--bot{--ic:url("/assets/icons-bot-9bb40d7e.svg")}
.ai-ic--brush{--ic:url("/assets/icons-brush-304bda9c.svg")}
.ai-ic--at{--ic:url("/assets/icons-at-ed410d3a.svg")}
.ai-ic--bell{--ic:url("/assets/icons-bell-959abc42.svg")}
.ai-ic--bell-off{--ic:url("/assets/icons-bell-off-f111122b.svg")}
.ai-ic--chat{--ic:url("/assets/icons-chat-da11031f.svg")}
.ai-ic--key{--ic:url("/assets/icons-key-c563092a.svg")}
.ai-ic--user{--ic:url("/assets/icons-user-28facaad.svg")}
/* 開關：墨色，44×26 */
.switch{flex:none;inline-size:44px;block-size:26px;font-size:16px}
.switch__btn{background-color:var(--line)}
.switch__btn::before{inline-size:20px;block-size:20px;inset-block-end:3px;inset-inline-start:3px;background-color:var(--text-2);box-shadow:0 1px 2px rgb(0 0 0 / .2)}
.switch__input:checked + .switch__btn{background-color:var(--text)}
.switch__input:checked + .switch__btn::before{background-color:var(--bg);transform:translateX(18px)}
/* 文字鈕：更換、移除、斷開這類小動作 */
.ai-textbtn{display:inline-flex;align-items:center;justify-content:center;min-block-size:34px;min-inline-size:34px;padding:0 8px;border:0;background:transparent;color:var(--text);font:inherit;font-size:12px;font-weight:500;white-space:nowrap;text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:3px;cursor:pointer;position:relative}
.ai-textbtn--danger{color:var(--danger)}
.ai-file-input{position:absolute;inline-size:1px;block-size:1px;opacity:0;overflow:hidden;pointer-events:none}
/* 頭像（個人、團隊標誌同一個元件）：圖在左、更換／移除在右 */
.ai-avatar-edit{display:flex;align-items:center;gap:16px}
.ai-avatar-edit .button_to,.ai-avatar-edit > form{display:contents}
.ai-avatar-edit__img{flex:none;inline-size:72px;block-size:72px;border-radius:50%;object-fit:cover;background:var(--surface)}
.ai-avatar-edit__name{margin:0;font-size:20px;font-weight:600}
/* 複製框：上面一列是標題和文字鈕 */
.ai-code{text-align:start;overflow:hidden}
.ai-code__head{display:flex;align-items:center;justify-content:space-between;gap:8px;min-block-size:36px;padding:0 4px 0 12px;border-block-end:1px solid var(--line);font-size:12px;color:var(--text-2)}
.ai-code__acts{display:flex;align-items:center;gap:2px}
.ai-code__acts .button_to{display:contents}
.ai-code:has(.ai-code__head) pre{padding-inline-end:12px;font-family:ui-monospace,"SF Mono",Menlo,monospace}
.ai-code__head .ai-code__copy{position:static;display:inline-flex;align-items:center}
.ai-user-manage{display:flex;flex-wrap:wrap;gap:8px;margin-block-start:8px!important}
@media (pointer:coarse){
.ai-row{min-block-size:64px;font-size:15px}
.ai-row__sub,.ai-row__meta{font-size:13px}
.ai-textbtn,.ai-code__head .ai-code__copy{min-block-size:44px;min-inline-size:44px;font-size:13px}
.ai-code__head{min-block-size:44px}
}
/* 欄位裡的字不要跟著標籤變粗 */
.ai-field .input,.ai-field textarea{font-weight:400}
/* 說明文字、提示、選項（我的 AI 等設定頁） */
.ai-set-lede{margin:0;font-size:14px;line-height:1.7;color:var(--text-2)}
.ai-set-hint{margin:0;font-size:12px;line-height:1.6;color:var(--text-2)}
.ai-prefs[hidden]{display:none}
.ai-name-edit{display:flex;align-items:center;gap:8px}
.ai-name-edit__prefix{flex:none;font-size:15px;color:var(--text-2)}
.ai-name-edit__input{flex:1;min-inline-size:0}
.ai-name-edit__save{flex:none}
.ai-name-edit__save[hidden]{display:none}
.ai-prefs .ai-row--stack{align-items:flex-start}
.ai-prefs .ai-row--stack .ai-row__name{font-weight:600}
.ai-prefs__opts{display:flex;flex-wrap:wrap;gap:8px;margin-block-start:8px}
.ai-prefs__rounds{flex:none;inline-size:auto;min-inline-size:88px}
.ai-note-warn{margin:0;padding:12px 16px;border-radius:var(--r-md);background:var(--surface);font-size:14px;line-height:1.7;color:var(--text)}
.ai-opts{display:flex;flex-wrap:wrap;gap:8px}
.ai-opt{block-size:32px;padding:0 12px;border:1px solid var(--line);border-radius:var(--r-md);background:transparent;color:var(--text);font:inherit;font-size:12px;cursor:pointer}
.ai-opt[aria-pressed=true]{border:1.5px solid var(--accent);background:var(--accent-soft);font-weight:500}
.ai-tab{display:flex;flex-direction:column;gap:8px}
.ai-tab[hidden]{display:none}
.ai-btn-row{display:flex;flex-wrap:wrap;gap:8px}
.btn.ai-btn-secondary{align-self:flex-start;min-block-size:36px;padding:0 16px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--raised);color:var(--text);font-size:14px;text-decoration:none}
.ai-row__av--ic{display:grid;place-items:center}
@media (pointer:coarse){.ai-opt{block-size:44px;font-size:13px}.btn.ai-btn-secondary{min-block-size:44px}.ai-set-hint{font-size:13px}}
/* 每一桌的通知：左邊圖示跟著目前的設定，右邊一行字＋›；整個按鈕輪流切換 */
.ai-ic--inv{--ic:url("/assets/icons-bell-959abc42.svg")}
.ai-row:has(.btn.mentions) .ai-ic--inv{--ic:url("/assets/icons-at-ed410d3a.svg")}
.ai-row:has(:is(.btn.nothing,.btn.invisible)) .ai-ic--inv{--ic:url("/assets/icons-bell-off-f111122b.svg")}
.ai-inv-label{display:none}
.membership-item > a.ai-row__main{color:var(--text);text-decoration:none}
.membership-item turbo-frame,.membership-item .button_to{display:contents}
.membership-item .btn{display:inline-flex;align-items:center;gap:4px;inline-size:auto;min-block-size:34px;padding:0 4px 0 8px;border:0;background:transparent;font-size:12px;font-weight:400;color:var(--text-2)}
.membership-item .btn img{display:none}
.membership-item .ai-inv-label{display:inline;white-space:nowrap}
.membership-item .btn::after{content:"";flex:none;inline-size:16px;block-size:16px;background:var(--text-3);-webkit-mask:url("/assets/icons-chevron-right-d35fd5f8.svg") center/contain no-repeat;mask:url("/assets/icons-chevron-right-d35fd5f8.svg") center/contain no-repeat}
/* 唯讀的連結框（登入連結）：跟複製框同一個元件，內容用等寬字 */
.ai-code__value{display:block;inline-size:100%;box-sizing:border-box;padding:12px;border:0;background:transparent;color:var(--text);font-family:ui-monospace,"SF Mono",Menlo,monospace;font-size:13px;text-overflow:ellipsis}
.ai-code__value:focus{outline:none}
.ai-code__head label{font:inherit;color:inherit}
@media (pointer:coarse){.membership-item .btn{min-block-size:44px;font-size:13px}}
/* ═══ 搜尋：一個輸入框、一行筆數、每筆一列（頭像｜名字 · 桌名 · 時間｜兩行摘要） ═══ */
body.searches #nav{padding-inline:12px 24px!important}
.ai-search-composer{inline-size:min(552px,100%);margin-inline:auto;padding:0}
.ai-search-form .input{block-size:40px;padding:0 12px;border-radius:var(--r-md);background:var(--raised)!important;font-size:14.5px}
.ai-search-count,.ai-search-recents{inline-size:min(552px,calc(100% - 32px));margin:12px auto 0;font-size:14px;color:var(--text-2)}
.ai-search-recents{display:flex;flex-direction:column;gap:8px}
.ai-search-recents .button_to{display:contents}
a.ai-opt{display:inline-flex;align-items:center;text-decoration:none}
.ai-empty__sub{font-size:14px;color:var(--text-2)}
.searches__results{display:flex;flex:none!important;flex-direction:column-reverse;justify-content:flex-end;inline-size:min(552px,calc(100% - 32px))!important;margin:8px auto 0!important;padding:0 0 48px!important}
.searches__input::-webkit-search-cancel-button{-webkit-appearance:none}
.searches__results .message{grid-template-columns:44px minmax(0,1fr) 0!important;padding:12px 0!important;margin:0!important;background:transparent!important}
.searches__results .message:not(:last-child){border-block-start:1px solid var(--line)}
.searches__results :is(.message__actions,.message__options-btn,.boosts,.message__boost-inline,.ai-copy-msg,.message__actions-menu){display:none!important}
.searches__results .message__body-content{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;font-size:14.5px;line-height:1.6}
.searches__results .lexxy-content > *{display:inline;margin:0!important;font-size:inherit!important;font-weight:inherit!important}
.searches__results .lexxy-content > * + *::before{content:" "}
.searches__results .lexxy-content :is(table,img,figure,action-text-attachment,.ai-card){display:none!important}
.ai-mark{padding:0 2px;border-radius:var(--r-sm);background:var(--accent-soft);color:var(--text);font-weight:600}
@media (pointer:coarse){.ai-search-form .input{block-size:46px;font-size:16px}}
.searches__results .message__room{color:var(--text-2)!important;text-decoration:none!important;font-size:12px!important}
.searches__results .message:not(:last-child){border-radius:0!important}
/* ═══ 私訊某人：輸入框篩選＋一張名單卡，點人就開始 ═══ */
.ai-dm-new{display:flex;flex-direction:column;gap:12px;inline-size:min(600px,100%);margin:52px auto 0;padding:32px 24px 48px;box-sizing:border-box}
.ai-dm-new__input{block-size:40px;padding:0 12px;border-radius:var(--r-md);background:var(--raised)!important;font-size:14.5px}
.ai-dm-new__input::-webkit-search-cancel-button{-webkit-appearance:none}
.ai-dm-new__none{padding:16px}
.ai-row[hidden]{display:none}
.ai-row:has(> .ai-row__btn){padding:0}
.ai-row__btn{display:flex;flex:1;align-items:center;gap:12px;min-block-size:56px;padding:4px 12px 4px 16px;border:0;background:transparent;color:inherit;font:inherit;text-align:start;cursor:pointer}
@media (pointer:coarse){.ai-row__btn{min-block-size:64px}.ai-dm-new__input{block-size:46px;font-size:16px}.ai-dm-new{padding:clamp(16px,4vw,32px) 16px 32px}}
/* 開新的一桌／桌的設定：名單卡（只列真人），「全團隊」一列放最上面 */
.ai-ic--globe{--ic:url("/assets/icons-globe-b67088bb.svg")}
.ai-ic--check{--ic:url("/assets/icons-check-d7aded68.svg");background:var(--text)}
.ai-row--search{padding:8px}
.ai-row--search .input{flex:1}
.ai-settings .ai-danger{gap:8px!important;margin-block-start:0!important;padding-block-start:0!important}
.ai-danger .ai-set-title{margin-block-start:8px!important}
/* ═══ 實站評審第二輪修正 ═══ */
/* 桌的設定：工具與收起來的圖示；刪除一列是紅字 */
.ai-ic--branch{--ic:url("/assets/icons-branch-b608b943.svg")}
.ai-ic--fork{--ic:url("/assets/icons-fork-ac005438.svg")}
.ai-ic--invite{--ic:url("/assets/icons-invite-d73b3192.svg")}
.ai-ic--download{--ic:url("/assets/icons-download-14fe2335.svg")}
.ai-ic--shrink{--ic:url("/assets/icons-shrink-d1b9100f.svg")}
.ai-ic--archive{--ic:url("/assets/icons-archive-bf67a602.svg")}
.ai-ic--trash{--ic:url("/assets/icons-trash-18cbc7eb.svg")}
.ai-row__btn--danger .ai-row__name{color:var(--danger)}
.switch__input:disabled + .switch__btn{opacity:.55;cursor:default}
/* 搜尋：桌名是灰色的說明字，不是紅色連結；頭像 32px；窄螢幕兩邊留 16px */
.searches__results .message__room a{color:var(--text-2)!important;text-decoration:none!important}
.searches__results .message__avatar{--avatar-size:32px;inline-size:32px!important;block-size:32px!important;justify-self:start}
.searches__results .message__avatar img{inline-size:32px!important;block-size:32px!important}
body.searches #sidebar .sidebar__toggle{display:none!important}
/* 輸入框聚焦：一圈淡淡的光暈就好，不要再疊瀏覽器的外框 */
.input:focus-visible,.input--actor:focus-within .input:focus-visible{outline:none!important}
/* 搜尋：窄螢幕的名字、桌名放不下就換行，不要擠成直的 */
.searches__results .message__meta{flex-wrap:wrap;row-gap:0}
/* ═══ 實站評審第三輪修正 ═══ */
/* 欄位：白底、桌面 40／觸控 46 高、多行 88／96；標籤和框之間 8px、欄位之間 16px */
.ai-field .input{background:var(--raised)!important}
.ai-field .input:not(textarea){min-block-size:40px}
.ai-field textarea.input{min-block-size:88px}
/* 打開又不能關的開關（自己、全團隊時）照樣是黑色的「開」 */
.switch__input:disabled:checked + .switch__btn{background-color:var(--text)!important;opacity:1}
/* 刪除那一列也有 › */
.ai-row__btn--danger::after{content:"";flex:none;inline-size:16px;block-size:16px;background:var(--text-3);-webkit-mask:url("/assets/icons-chevron-right-d35fd5f8.svg") center/contain no-repeat;mask:url("/assets/icons-chevron-right-d35fd5f8.svg") center/contain no-repeat}
/* 「收起來」緊接在上一段後面，不要兩倍留白 */
.ai-settings .panel:has(+ .ai-danger){padding-block-end:0!important}
.ai-settings .panel.ai-danger{padding-block-start:8px!important}
/* 搜尋：名字永遠完整，放不下就把時間、桌名推到下一行 */
.searches__results .message__heading{flex-wrap:nowrap!important;min-inline-size:0;overflow:hidden}
.searches__results :is(.message__author,.message__room){min-inline-size:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.searches__results :is(.message__author){flex:0 1 auto}
.searches__results .message__permalink{flex:none}
/* 輸入框的提示字只一行，放不下就 … */
#composer .lexxy-editor__content::before{white-space:nowrap!important;overflow:hidden;text-overflow:ellipsis;inset-inline:0;max-inline-size:100%}
/* 訊息下的「加表情」：素面細線笑臉 */
.message .boost__action img{content:url("/assets/icons-smile-bb5c208f.svg");opacity:.7}
@media (prefers-color-scheme:dark){.message .boost__action img{filter:invert(1)}}
@media (pointer:coarse){
.ai-field .input:not(textarea){min-block-size:46px;font-size:16px!important}
.ai-field textarea.input{min-block-size:96px;font-size:16px!important}
.ai-settings .panel .ai-submit{min-block-size:44px;font-size:15px}
.ai-danger .btn--negative{min-block-size:44px}
.ai-set-lede,.ai-set-desc{font-size:15px}
}
/* ═══ 實站評審第四輪修正 ═══ */
/* 非聊天頁：內容緊接在頂欄下，不要 Campfire 多出來的 9px */
:is(.ai-settings,body.searches) #main-content{padding-block-start:0!important}
/* 訊息的 ⋯、頂欄的 ☰：細線、淡一點 */
.message__options-btn img{content:url("/assets/icons-more-127251fd.svg");opacity:.7}
.sidebar__toggle img{content:url("/assets/icons-menu-9fc1db30.svg")}
@media (prefers-color-scheme:dark){.message__options-btn img,.sidebar__toggle img{filter:invert(1)!important}}
@media (prefers-color-scheme:light){.message__options-btn img,.sidebar__toggle img{filter:none!important}}
@media (pointer:coarse){
:root{--ai-field-h:46px}
.ai-settings .panel .ai-submit{min-block-size:44px!important}
}
/* ═══ 剩下的項目 ═══ */
/* 成員頁：頭像、名字、簡介；頂欄右邊是「私訊」 */
.ai-profile-head{display:flex;flex-direction:column;align-items:flex-start;gap:12px}
.ai-profile-head p{margin:0}
.ai-nav-end{order:9;margin-inline-start:auto;display:flex}
.ai-nav-end .btn.ai-btn-secondary{align-self:center}
.ai-ic--link{--ic:url("/assets/icons-link-e0a29057.svg")}
/* 列尾的動作字（複製、停用、刪除） */
.ai-row__act{flex:none;padding:0 4px;font-size:12px;font-weight:500;color:var(--text)}
.ai-row__btn--danger .ai-row__act{color:var(--danger)}
.ai-row__btn:has(.ai-row__act)::after{display:none}
/* 離線：空心圈 */
.ai-status-dot--offline{background:transparent;box-shadow:inset 0 0 0 1.5px var(--text-3)}
/* 觸控裝置的「更換」「移除」跟桌面一樣（字重 500、淡底線） */
@media (pointer:coarse){.ai-avatar-edit .ai-textbtn{font-weight:500}}
/* 挑頭像的格子：52px（觸控 56），選中的有辦桌紅外框，同桌用掉的淡掉 */
.ai-avatar-pick{display:flex;flex-direction:column;gap:12px}
.ai-avgrid{display:flex;flex-wrap:wrap;gap:12px}
.ai-avgrid__item{inline-size:52px;block-size:52px;padding:0;border:0;border-radius:var(--r-md);background:var(--surface);overflow:hidden;cursor:pointer}
.ai-avgrid--round .ai-avgrid__item{border-radius:50%}
.ai-avgrid__item img{display:block;inline-size:100%;block-size:100%;object-fit:cover}
.ai-avgrid__item[aria-pressed=true]{outline:2px solid var(--accent);outline-offset:2px}
.ai-avgrid__item:disabled{opacity:.3;cursor:not-allowed}
.ai-readonly{min-block-size:40px;display:flex;align-items:center;padding:0 12px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);font-size:14.5px;color:var(--text)}
@media (pointer:coarse){.ai-avgrid__item{inline-size:56px;block-size:56px}.ai-readonly{min-block-size:46px;font-size:16px}}
/* 搜尋結果：名字 · 桌名 · 時間（設計稿的順序） */
.searches__results .message__heading > .message__room{order:1}
.searches__results .message__heading > .message__permalink{order:2}
.searches__results .message__room::after{content:" ·"!important;color:var(--text-2)}
.searches__results .message__room::before{content:none!important}
/* AI 工作中：在做什麼 · 第 N 步 · 經過時間（灰、不換行） */
.ai-live__meta{flex:none;white-space:nowrap;color:var(--text-3)}
.ai-live__meta time{font-variant-numeric:tabular-nums}
/* ═══ U6、U7：@ 選單分組；@ 了不在這一桌的人 ═══ */
.ai-mention-group{display:block;padding:8px 4px 4px;font-size:12px;font-weight:500;color:var(--text-2);pointer-events:none}
.ai-mention__name{display:flex;align-items:center;gap:6px}
.ai-mention__ai-av img{border-radius:var(--r-md)!important}
[data-controller~="ai-composer"]:has(> .ai-outside){position:relative}
.ai-outside{position:absolute;inset-inline:0;bottom:calc(100% + 8px);z-index:3;display:flex;flex-direction:column;gap:4px;padding:8px 12px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--raised);box-shadow:var(--shadow-pop);font-size:13px;color:var(--text)}
.ai-outside__row{display:flex;align-items:center;justify-content:space-between;gap:12px;min-block-size:32px}
.ai-outside__text{min-inline-size:0}
/* 請某某把 AI 帶進來的卡片：一行狀態＋主人才看得到的兩顆鈕 */
.ai-botreq{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin-block-start:4px;font-size:13px;color:var(--text-2)}
.ai-botreq__label{display:inline-flex;align-items:center}
.ai-botreq__acts{display:inline-flex;gap:8px}
.ai-botreq__acts[hidden]{display:none}
@media (pointer:coarse){.ai-outside{font-size:14px}.ai-outside__row{min-block-size:44px}}
.lexxy-prompt-menu__item:has(.ai-mention-group){flex-wrap:wrap}
.lexxy-prompt-menu__item:has(.ai-mention-group) > .ai-mention-group{flex:1 0 100%;padding:4px 0 2px}
.lexxy-prompt-menu{min-inline-size:min(280px,calc(100vw - 32px))}
.lexxy-prompt-menu .ai-mention__name{white-space:nowrap}
/* ═══ U3：已發出的連結（問題卡裡）：給了誰 · 點開了沒、回答了沒 · 撤銷 ═══ */
.ai-qlinks{display:flex;flex-direction:column;gap:4px;padding-block-start:8px;border-block-start:1px solid var(--line)}
.ai-qlinks__title{font-size:12px;font-weight:500;color:var(--text-2)}
.ai-qcard__links{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.ai-qcard__links li{display:flex;align-items:center;gap:6px;min-block-size:32px;font-size:13px;color:var(--text)}
.ai-qcard__links li > span:nth-of-type(3){color:var(--text-2)}
.ai-qcard__links .ai-link{margin-inline-start:auto;border:0;background:transparent;padding:0 8px;min-block-size:32px;font:inherit;font-size:12px;font-weight:500;color:var(--text);text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:3px;cursor:pointer}
.ai-qlinks__dot{flex:none;inline-size:8px;block-size:8px;border-radius:50%;box-shadow:inset 0 0 0 1.5px var(--text-3);margin-inline-end:2px}
[data-link-state=answered] .ai-qlinks__dot{background:var(--ok);box-shadow:none}
[data-link-state=opened] .ai-qlinks__dot{background:var(--warn);box-shadow:none}
:is([data-link-state=revoked],[data-link-state=expired],[data-link-state=closed]){color:var(--text-3)!important}
:is([data-link-state=revoked],[data-link-state=expired],[data-link-state=closed]) .ai-qlinks__dot{box-shadow:inset 0 0 0 1.5px var(--line)}
@media (pointer:coarse){.ai-qcard__links li{min-block-size:44px;font-size:14px}.ai-qcard__links .ai-link{min-block-size:44px;font-size:13px}}
/* ═══ U2：透過連結加入的訪客 ═══ */
.ai-tag-guest{flex:none;white-space:nowrap;font-size:12px;line-height:18px;padding:0 4px;border-radius:var(--r-sm);border:1px solid var(--line);color:var(--text-2);font-weight:500}
.ai-link-guest .ai-hand-btn{display:none!important}
#composer-frame:has(> .ai-guest-note){display:flex;flex-direction:column;flex:1 1 auto;min-inline-size:0}
.ai-guest-note{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;margin:0;padding:6px 12px;border-radius:var(--r-md);background:var(--surface);font-size:13px;color:var(--text-2)}
.ai-guest-note .ai-textbtn{padding:0 4px}
/* 邀請外部的人：已發出的邀請（跟問題卡上的連結同一套點） */
.ai-invite__title{margin:8px 0 0!important;font-size:13px!important;font-weight:600}
.ai-invite__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.ai-invite__list li{display:flex;align-items:center;gap:8px;min-block-size:36px;border-block-end:1px solid var(--line);font-size:14px}
.ai-invite__list li:last-child{border:0}
.ai-invite__to{min-inline-size:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ai-invite__state{color:var(--text-2);font-size:13px}
.ai-invite__list .ai-textbtn{margin-inline-start:auto}
.ai-invite__empty{color:var(--text-2);font-size:13px}
.ai-invite__result:empty{display:none}
.ai-invite__pane{display:flex;flex-direction:column;gap:8px}
.ai-invite__pane[hidden]{display:none}
@media (pointer:coarse){.ai-invite__list li{min-block-size:48px}}
/* 確認框裡的清單（私下改過的檔案）：等寬小字、太長就捲 */
.ai-confirm__list{max-block-size:30vh;overflow:auto;margin:0;padding:8px 12px 8px 28px;border-radius:var(--r-md);background:var(--surface);font-family:ui-monospace,"SF Mono",Menlo,monospace;font-size:12px;line-height:1.7}
/* 同意頁：限定範圍的標籤；我的 AI 列上的「只限」「只能讀」 */
.ai-row__tags{display:flex;flex-wrap:wrap;gap:4px;margin-block-start:2px}
.ai-scope{display:inline-block;font-size:12px;line-height:18px;padding:0 6px;border-radius:var(--r-sm);background:var(--surface);color:var(--text-2);font-weight:500;white-space:nowrap}
.ai-consent__actions{display:flex;justify-content:flex-end;gap:8px;margin-block-start:8px}
.ai-consent__actions .ai-submit{align-self:auto!important;margin:0!important}
.ai-consent label.ai-row{cursor:pointer}
.ai-consent__host{overflow-wrap:anywhere}
.ai-consent:has(input[name=read_only]:checked) .ai-consent__write{opacity:.45}
.ai-field .ai-set-hint{font-weight:400}
/* 對話框裡的危險動作：紅字紅框（第四種按鈕），不是實心紅 */
.ai-dialog .btn--negative{--btn-background:transparent;--btn-color:var(--danger);--btn-border-color:var(--danger)}
/* ═══ U8：我的 AI 個人頁 ═══ */
.ai-bot-head{flex-direction:row;align-items:center;gap:16px}
.ai-bot-head__av{border-radius:var(--r-lg)}
.ai-bot-head__status{display:flex;align-items:center;margin:4px 0 0;font-size:13px;color:var(--text-2)}
/* ═══ 手機全面檢查（正式站 40 個畫面量測）：觸控目標 44、輸入框 16px（iOS 不會放大）═══ */
@media (pointer:coarse){
/* 輸入框一律 16px：舊的高權重規則（.ai-settings .panel .input、.ai-dialog .input）也要蓋過 */
.ai-settings .panel .input,.ai-dialog .input,.ai-dialog input,.ai-dialog textarea,.ai-dialog select,.ai-field .input,#main-content .input{font-size:16px!important}
/* 頂欄：返回、☰、⋯ 都是 44×44 */
#nav .btn,.sidebar__toggle{--btn-size:44px;min-inline-size:44px;min-block-size:44px}
.ai-nav-btn{min-block-size:44px}
/* 訊息的 •••、加表情、複製：圖示不變大，點的範圍 44 */
.message .message__options-btn{min-inline-size:44px;min-block-size:44px}
.message .message__boost-inline .boost__action::after,.ai-copy-msg::after{content:"";position:absolute;inset:-7px 0}
/* 「做了 5 秒 · 2 步 ›」：整行好點 */
.ai-foot summary{min-block-size:36px}
/* 開關：看起來 44×26，點的範圍上下各多 9px */
.switch::after{content:"";position:absolute;inset:-9px -4px}
}
/* ═══ 手機全面檢查第二批（Fable、Codex 對照設計稿）═══ */
/* 訊息 ••• 選單：最上面的預覽列；AI 動作跟上面同一種列；危險動作紅字 */
.ai-msgmenu__preview{display:none;padding:4px 12px 10px;border-block-end:1px solid var(--line);margin-block-end:4px;font-size:13px;color:var(--text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media (pointer:coarse){.ai-msgmenu__preview{display:block}}
.ai-menu{display:flex;flex-direction:column;border-block-start:1px solid var(--line);margin-block-start:4px;padding-block-start:4px}
.ai-menu__item{font-weight:400!important;white-space:nowrap;display:flex!important;align-items:center;justify-content:flex-start!important;gap:12px;inline-size:100%;block-size:40px;padding:0 12px!important;border:0!important;background:transparent!important;border-radius:var(--r-md)!important;color:var(--text);font-size:14px;text-align:start}
.ai-menu__item .ai-icon{display:inline-flex;opacity:.7}
.ai-menu__item--danger{color:var(--danger)!important}
.ai-menu__item--danger .ai-icon{opacity:1}
@media (hover:hover){.ai-menu__item:hover{background:var(--surface)!important}}
/* 收桌：輸入框位置換成一行說明，輸入框收起來 */
#composer-frame:has(> .ai-archived-note) #composer{display:none}
/* 連續訊息的標頭只留時間，不要孤零零一個 AI 標 */
.message--threaded .ai-tag-ai{display:none}
/* 清單後面接段落：跟段落之間同樣的間距 */
.message .lexxy-content :is(ul,ol){margin-block-end:.65em!important}
/* 檔案列：名字＋大小兩行，動作在右邊排齊、不畫底線 */
.ai-file__main{display:flex;flex:1;flex-direction:column;min-inline-size:0}
.ai-file .ai-file__act{display:inline-flex;align-items:center;text-decoration:none;color:var(--text-2)}
.ai-file-group > summary{list-style:none}
.ai-file-group > summary::-webkit-details-marker{display:none}
/* 對話框的 ×：滑鼠點不要框；鍵盤才有 */
.ai-dialog__x:focus:not(:focus-visible){outline:none!important;box-shadow:none!important}
.ai-dialog:focus{outline:none}
/* 空的桌、找不到：文字不要孤字一行 */
.ai-empty,.message-area--empty{text-wrap:balance}
@media (pointer:coarse){
/* 內文：16px、行高 1.7（設計稿 16／27） */
.message .lexxy-content{line-height:1.7}
/* 名字 14px、太長就 …；時間與 ··· 不被擠到邊緣 */
.message__author{font-size:14px!important}
/* 動作列緊貼內文（按鈕點的範圍還是 44），訊息之間拉開 */
.messages{row-gap:24px!important}
/* 輸入框：左右 8、離底 8 */
#footer:has(#composer){padding-inline:8px!important}
/* 搜尋：頂欄下面 16 就好 */
body.searches #footer{padding-block-start:16px}
/* 手機的對話框（底部單）：把手 */
.ai-dialog{padding-block-start:20px!important;background-image:linear-gradient(var(--line),var(--line))!important;background-size:36px 4px!important;background-position:50% 8px!important;background-repeat:no-repeat!important}
}
/* AI 卡片：沒東西的工具列不要佔一個間距 */
.ai-block > .ai-meta:not(:has(.ai-private,.ai-taken,.ai-badge,.ai-tools > :not([hidden]):not(.ai-in-menu))){display:none}
/* 訊息 ••• 選單：Campfire 的粗圖示換成細線 */
.message__actions-grid img[src*="reply"]{content:url("/assets/icons-reply-9532184f.svg")}
.message__actions-grid img[src*="link"]{content:url("/assets/icons-link-e0a29057.svg")}
.message__actions-grid img[src*="pencil"]{content:url("/assets/icons-brush-304bda9c.svg")}
.message__actions-grid img[src*="download"]{content:url("/assets/icons-download-14fe2335.svg")}
.message__actions-grid img[src*="share"]{content:url("/assets/icons-share-62fc6a41.svg")}
@media (pointer:coarse){
.ai-block{row-gap:8px}
.ai-foot summary{min-block-size:32px}
.message__actions-menu .quick-boosts .btn{min-block-size:44px}
.ai-dialog .btn{min-block-size:44px}
.ai-file-group > summary{min-block-size:44px;display:flex;align-items:center}
}
/* 選單裡 AI 那幾列：跟上面同高（.btn 的尺寸會把它壓扁） */
.ai-menu .ai-menu__item{block-size:auto!important;min-block-size:40px!important}
@media (pointer:coarse){.ai-menu .ai-menu__item{min-block-size:48px!important;font-size:15px}}
/* ═══ 手機第三批 ═══ */
/* 只按 ☺ 打開的底部單：只有表情（還有「其他表情」） */
.message__actions details[data-react-only] .message__actions-menu :is(.message__actions-grid,.ai-menu){display:none!important}
/* 危險動作自己一組，上面一條分隔線 */
.ai-menu--danger{border-block-start:1px solid var(--line);margin-block-start:4px;padding-block-start:4px}
/* @ 沒找到人：不要冒出一個「• 找不到」小框 */
.lexxy-prompt-menu--empty{display:none!important}
/* 搜尋結果：桌名後面接「·」，換行時不會有孤零零的點 */
/* 這桌的檔案：一群檔案一張卡；刪除是紅字；沒有版本紀錄就不要標題 */
.ai-file-group{border:1px solid var(--line)!important;border-radius:var(--r-lg);padding:4px 12px!important;margin-block:8px;background:var(--raised)}
.ai-file .ai-file__act--quiet{color:var(--danger)}
.ai-file-group:not(:has(.ai-file,.ai-version)){display:none}
/* 訊息裡的 @ 提及：灰色小膠囊，不是紅字底線 */
.lexxy-content .mention,.lexxy-content action-text-attachment .mention{padding:0 4px;border-radius:var(--r-sm);background:var(--surface);color:var(--text);text-decoration:none!important;font-weight:500}
/* 名字列到內文、日期分隔線上下 */
/* 收桌的桌：不能再加表情 */
.message:has(~ * .ai-archived-note) .boost__action{display:none}
/* 輸入框聚焦：一圈細的就好 */
.ai-ic--team{--ic:url("/assets/icons-team-129feed5.svg")}
.ai-ic--logout{--ic:url("/assets/icons-logout-bdcdcb4a.svg")}
.ai-account__menu .ai-pop__item{gap:12px}
/* 底部單裡的分隔線（桌的設定：收桌前） */
.ai-pop__sep{block-size:0;margin:4px 8px;border:0;border-block-start:1px solid var(--line)}
/* ═══ 手機第四批（第三輪評審）═══ */
/* AI 的 @ 提及裡面是連結：跟膠囊同色、沒有底線 */
.lexxy-content .mention a{color:inherit!important;text-decoration:none!important}
/* 對話框裡的說明段落：行高跟其他單一致 */
.ai-dialog p{line-height:1.6}
/* 版本紀錄：一列，右邊「N 個版本 ›」 */
.ai-versions__head{display:flex!important;align-items:center;gap:12px;font-weight:400!important;color:var(--text)!important}
.ai-versions__head .ai-icon{color:var(--text-2)}
.ai-versions__label{flex:1}
.ai-versions__count{font-size:13px;color:var(--text-2)}
.ai-versions__count::after{content:" ›"}
/* 空的桌、搜尋找不到：上面一個盤子 */
.message-area--empty .ai-empty::before{content:"";display:block;inline-size:72px;block-size:36px;margin:0 auto 12px;background:url("/assets/icons-plate-6b1f2b7a.svg") center/contain no-repeat}
/* 帳號底部單的把手 */
@media (max-width:640px){.ai-account__menu::before{content:"";display:block;inline-size:36px;block-size:4px;border-radius:2px;background:var(--line);margin:-12px auto 12px}}
/* 輸入框：＋、文字、✦、送出在同一條線上（手機電腦都一樣） */
#composer .composer__input > .flex{align-items:flex-end}
#composer .composer__input > .flex > .btn{margin-block:0!important;align-self:flex-end}
