.studio-logo>img{width:38px;height:38px;object-fit:contain;border-radius:9px}.session-list{display:grid;gap:5px}.session-empty,.chat-empty{color:#737d8e;font-size:.72rem;padding:14px}.chat-empty{text-align:center;margin:auto}.chat-empty strong{display:block;color:#aeb6c4;font-size:.9rem;margin-bottom:7px}.ghost-button.danger{color:#d66f77}.message p{white-space:pre-wrap}.prompt-group button.selected{border-color:#ff6a2a;color:#ff9568;background:#281b16}
.prompt-single,.prompt-dropdown summary{list-style:none;min-height:38px;border:1px solid #3b4657;background:#171b23;color:#c5ccda;border-radius:9px;padding:8px 14px;font-size:.76rem;cursor:pointer;white-space:nowrap}.prompt-dropdown{position:relative}.prompt-dropdown summary::-webkit-details-marker{display:none}.prompt-dropdown>div{position:absolute;z-index:30;bottom:calc(100% + 7px);left:0;min-width:170px;padding:7px;border:1px solid var(--line);border-radius:10px;background:var(--panel);box-shadow:0 15px 40px #0005;display:grid}.prompt-dropdown>div button{border:0;background:transparent;color:var(--text);padding:10px 12px;font-size:.78rem;text-align:left;border-radius:7px}.prompt-dropdown>div button:hover{background:var(--panel-2)}.prompt-single.selected,.prompt-dropdown:has(button.selected)>summary{border-color:#ff6a2a;color:#ff9568;background:#281b16}.message-meta{display:flex;gap:10px;color:var(--muted);font-size:.62rem;margin-top:7px}.chat-pane.dragging{outline:2px dashed var(--orange);outline-offset:-8px}.chat-pane.dragging:after{content:'松开即可添加文件';position:absolute;z-index:50;inset:80px 20px 120px;display:grid;place-items:center;background:#111827dd;color:#fff;border-radius:14px;font-weight:700}
html[data-theme="light"] .prompt-single,html[data-theme="light"] .prompt-dropdown summary{background:#fff;border-color:#d8dee8;color:#39445a}
.studio-topbar-compact{grid-template-columns:1fr auto}

/* D 盘聊天页的核心布局：页面固定，消息区和会话区各自滚动。 */
.studio-page{height:100vh;min-height:0;overflow:hidden;display:flex;flex-direction:column}
.studio-topbar,.production-flow{flex:0 0 auto}
.script-workbench{height:auto;min-height:0;flex:1;grid-template-columns:260px minmax(0,1fr);overflow:hidden}
.sessions-pane{min-height:0;display:flex;flex-direction:column;overflow:hidden}
.session-list{min-height:0;overflow-y:auto;margin:0 -5px;padding:0 5px}
.session-tip{flex:0 0 auto}
.chat-pane{position:relative;min-height:0;overflow:hidden}
.chat-heading,.composer{flex:0 0 auto}
.messages{min-height:0;overflow-y:auto;overscroll-behavior:contain}

/* 用户靠右，三把火靠左。 */
.message{width:fit-content;max-width:min(82%,850px)}
.message.user{margin-left:auto;flex-direction:row-reverse}
.message.user>div,.message.assistant>div{padding:12px 16px;border-radius:16px;word-break:break-word}
.message.user>div{border-top-right-radius:5px;background:#1b3b5c}
.message.assistant>div{border:1px solid #282f3a;border-top-left-radius:5px;background:#151920}
.message p{margin:5px 0 0}
html[data-theme="light"] .message.user>div{background:#eaf2ff;border-color:#cadcf8}
html[data-theme="light"] .message.assistant>div{background:#fff;border-color:#dfe4ec}

/* 每条会话都带独立删除入口。 */
.session-row{display:grid;grid-template-columns:minmax(0,1fr) 30px;align-items:center;gap:4px;padding:3px;background:transparent}
.session-row.active{background:#1a1e26}
.session-select{min-width:0;display:grid;gap:5px;padding:9px;border:0;background:transparent;color:inherit;text-align:left;cursor:pointer}
.session-select strong,.session-select small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.session-delete{width:28px;height:28px;border:0;border-radius:7px;background:transparent;color:#727c8d;cursor:pointer;opacity:.25}
.session-row:hover .session-delete,.session-delete:focus{opacity:1}
.session-delete:hover{background:#3a2024;color:#ff8e96}
html[data-theme="light"] .session-row.active{background:#f2f4f8}

/* 功能按钮位于添加文件右侧；菜单不再被横向滚动容器裁切。 */
.composer{padding-top:14px}
.composer-box{overflow:visible}
.composer-actions{position:relative;align-items:flex-end}
.composer-actions>.prompt-tools{min-width:0;flex:1;display:flex;flex-wrap:wrap;gap:7px;overflow:visible;padding:0}
.composer-actions>[data-composer-status]{flex:0 1 auto;white-space:nowrap}
.prompt-dropdown{position:relative;z-index:20}
.prompt-dropdown[open]{z-index:100}
.prompt-dropdown summary{display:flex;align-items:center;gap:5px}
.prompt-dropdown summary [data-function-label]{font-size:inherit;color:inherit;font-weight:600}.prompt-dropdown summary span:last-child{font-size:.65rem;color:#8994a6}
.prompt-dropdown-menu{position:absolute;z-index:110;left:0;bottom:calc(100% + 7px);min-width:210px;max-height:280px;overflow-y:auto;padding:7px;border:1px solid var(--line,#334155);border-radius:11px;background:var(--panel,#1a202c);box-shadow:0 18px 45px rgba(0,0,0,.48);display:grid}
.prompt-dropdown-menu button{display:block;width:100%;border:0;background:transparent;color:var(--text,#e2e8f0);padding:9px 11px;text-align:left;border-radius:7px;white-space:nowrap;cursor:pointer}
.prompt-dropdown-menu button:hover{background:var(--panel-2,#2d3748);color:var(--text,#fff)}
html[data-theme="light"] .prompt-dropdown-menu{background:#fff;border-color:#d8dee8;box-shadow:0 16px 40px rgba(28,39,58,.16)}

@media(max-width:900px){.composer-actions>[data-composer-status]{display:none}.message{max-width:92%}}

/* 右上角账户菜单和主题开关。 */
.user-menu{position:relative;z-index:300}
.user-menu summary{list-style:none;display:flex;align-items:center;gap:8px;color:#d8dde6;font-size:.72rem;cursor:pointer;padding:5px 7px;border-radius:9px}
.user-menu summary::-webkit-details-marker{display:none}
.user-menu summary:hover,.user-menu[open] summary{background:#1c222c}
.user-menu summary i{font-size:.58rem;color:#7e8999;font-style:normal}
.user-menu-panel{position:absolute;right:0;top:calc(100% + 9px);width:220px;padding:7px;border:1px solid var(--line,#303744);border-radius:12px;background:var(--panel,#171b23);box-shadow:0 18px 45px rgba(0,0,0,.45)}
.user-menu-panel a,.user-menu-panel button{display:grid;width:100%;gap:3px;padding:10px 11px;border:0;border-radius:8px;background:transparent;color:var(--text,#e6eaf0);text-align:left;text-decoration:none;cursor:pointer}
.user-menu-panel a:hover,.user-menu-panel button:hover{background:var(--panel-2,#252c37)}
.user-menu-panel small{color:var(--muted,#7f899a);font-size:.6rem}
.user-menu-panel form{border-top:1px solid var(--line,#303744);margin-top:5px;padding-top:5px}
.user-menu-panel button{color:#ff9298;font-size:.7rem}
.header-theme-toggle{position:relative;display:grid;place-items:center;width:36px;height:36px;flex:0 0 auto;border:1px solid #303744;border-radius:10px;background:#171b23;color:#dce2eb;cursor:pointer}
.header-theme-toggle span{grid-area:1/1}.header-theme-toggle .theme-sun{display:none}.header-theme-toggle .theme-moon{display:block}
html[data-theme="light"] .header-theme-toggle .theme-sun{display:block}html[data-theme="light"] .header-theme-toggle .theme-moon{display:none}
html[data-theme="light"] .user-menu summary{color:#263247}html[data-theme="light"] .user-menu summary:hover,html[data-theme="light"] .user-menu[open] summary{background:#f1f4f8}
html[data-theme="light"] .user-menu-panel,html[data-theme="light"] .header-theme-toggle{background:#fff;border-color:#d8dee8;color:#263247}

/* 会话菜单：每条会话都可重命名或删除。 */
.session-row{grid-template-columns:minmax(0,1fr) 32px}
.session-actions{position:relative}
.session-actions summary{list-style:none;display:grid;place-items:center;width:28px;height:28px;border-radius:7px;color:#727c8d;cursor:pointer;opacity:.3}
.session-actions summary::-webkit-details-marker{display:none}.session-row:hover .session-actions summary,.session-actions[open] summary{opacity:1;background:#252b35}
.session-actions-menu{position:absolute;z-index:180;right:0;top:31px;width:112px;padding:5px;border:1px solid var(--line,#303744);border-radius:9px;background:var(--panel,#171b23);box-shadow:0 12px 30px rgba(0,0,0,.42)}
.session-actions-menu button{width:100%;padding:8px 9px;border:0;border-radius:6px;background:transparent;color:var(--text,#d9dfe8);text-align:left;font-size:.66rem;cursor:pointer}.session-actions-menu button:hover{background:var(--panel-2,#292f39)}.session-actions-menu .danger{color:#ff858d}
html[data-theme="light"] .session-actions-menu{background:#fff;border-color:#d8dee8;box-shadow:0 12px 30px rgba(30,42,60,.14)}

/* 明确显示选中的功能，未输入文字时也可以直接发送。 */
.prompt-single.selected,.prompt-dropdown:has(button.selected)>summary{box-shadow:0 0 0 2px rgba(255,106,42,.18)}
html[data-theme="light"] .prompt-single.selected,html[data-theme="light"] .prompt-dropdown:has(button.selected)>summary{border-color:#ef571f;background:#fff0e8;color:#d9430d;box-shadow:0 0 0 3px rgba(239,87,31,.2);font-weight:700}

/* 聊天区字号与消息复制。 */
.chat-heading h1{font-size:1.18rem}.pane-label{font-size:.7rem}.new-session{font-size:.8rem}
.session-select strong{font-size:.8rem}.session-select small{font-size:.68rem}
.message small{font-size:.7rem}.message p{font-size:.88rem;line-height:1.78}
.composer textarea{font-size:.88rem}.prompt-single,.prompt-dropdown summary{font-size:.73rem}.composer-actions>span{font-size:.66rem}.send-button{font-size:.73rem}
.message-footer{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:8px;min-height:24px}.message-meta{display:flex;gap:10px;font-size:.66rem}
.message-copy{display:flex;align-items:center;justify-content:center;gap:5px;min-width:25px;height:25px;padding:0 5px;border:0;border-radius:6px;background:transparent;color:var(--muted,#7e8899);cursor:pointer;opacity:.5;transition:.15s}.message-copy svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.8}.message-copy .copied-label{font-size:.65rem}.message:hover .message-copy,.message-copy:focus{opacity:1}.message-copy:hover,.message-copy.copied{background:var(--panel-2,#252c37);color:var(--text,#e8edf4)}
.icon-only-button{display:grid;place-items:center;width:36px;height:36px;padding:0}.icon-only-button svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.thinking-toggle{min-height:34px;padding:7px 10px;border:1px solid var(--line,#303744);border-radius:8px;background:transparent;color:var(--muted,#8b95a5);white-space:nowrap;cursor:pointer}.thinking-toggle.active{border-color:#7559ff;background:#251f47;color:#b8aaff;box-shadow:0 0 0 2px #7559ff22}.thinking-toggle:disabled{opacity:.5;cursor:not-allowed}.reasoning-panel{margin:9px 0 12px;border-left:2px solid #6559a8;padding-left:11px;color:var(--muted,#8b95a5)}.reasoning-panel summary{display:flex;align-items:center;gap:7px;cursor:pointer;list-style:none;font-size:.72rem}.reasoning-panel summary::-webkit-details-marker{display:none}.reasoning-panel summary em{font-style:normal;font-size:.65rem;opacity:.7}.reasoning-content{margin-top:8px;max-height:260px;overflow:auto;white-space:pre-wrap;font-size:.76rem;line-height:1.65;color:var(--muted,#8b95a5)}html[data-theme="light"] .thinking-toggle.active{background:#eeeaff;color:#5741c5;border-color:#7764dc}html[data-theme="light"] .reasoning-panel{color:#647089}

/* Composer attachments, stable drag target and accessible dialogs. */
.composer-box{position:relative}.composer textarea{min-height:118px;max-height:320px;overflow-y:auto;resize:none}.composer-actions .thinking-toggle,.composer-actions .send-button{height:38px;min-height:38px;box-sizing:border-box}.composer-actions>[data-composer-status]{margin-left:auto}.attachment-tray{display:flex;flex-wrap:wrap;gap:7px;padding:10px 12px 0}.attachment-tray[hidden]{display:none}.attachment-chip{display:flex;align-items:center;gap:7px;max-width:260px;padding:6px 8px;border:1px solid var(--line);border-radius:8px;background:var(--panel-2);color:var(--text);font-size:.7rem}.attachment-chip b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.attachment-chip small{color:var(--muted)}.attachment-chip button{border:0;background:transparent;color:var(--muted);cursor:pointer;font-size:1rem}.composer-box.dragging{outline:2px dashed var(--orange);outline-offset:2px;background:color-mix(in srgb,var(--orange) 6%,transparent)}.chat-pane.dragging{outline:0}.chat-pane.dragging:after{display:none}.message-attachments{display:flex;flex-wrap:wrap;gap:7px;margin:0 0 8px}.message-attachment{display:flex;align-items:center;gap:6px;max-width:280px;padding:7px 9px;border:1px solid var(--line);border-radius:8px;background:var(--panel-2);font-size:.7rem}.message-attachment span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.script-dialog{width:min(420px,calc(100vw - 32px));padding:0;border:1px solid var(--line);border-radius:14px;background:var(--panel);color:var(--text);box-shadow:0 24px 70px #0008}.script-dialog::backdrop{background:#05070b99;backdrop-filter:blur(3px)}.script-dialog form{padding:18px}.script-dialog header,.script-dialog footer{display:flex;align-items:center;justify-content:space-between;gap:10px}.script-dialog header button{border:0;background:transparent;color:var(--muted);font-size:1.4rem;cursor:pointer}.script-dialog p{color:var(--muted);line-height:1.6}.script-dialog input{width:100%;box-sizing:border-box;padding:11px;border:1px solid var(--line);border-radius:9px;background:var(--panel-2);color:var(--text)}.script-dialog footer{justify-content:flex-end;margin-top:16px}.script-dialog footer button{height:38px;padding:0 16px;border:1px solid var(--line);border-radius:9px;background:var(--panel-2);color:var(--text);cursor:pointer}.script-dialog footer [data-dialog-confirm]{border-color:#e45a2a;background:#e45a2a;color:#fff}.script-dialog.danger footer [data-dialog-confirm]{border-color:#d73b4f;background:#d73b4f}.script-dialog.danger [data-dialog-input]{display:none}html[data-theme="light"] .session-actions summary{color:#5f6b7d}html[data-theme="light"] .session-actions[open] summary,html[data-theme="light"] .session-row:hover .session-actions summary{background:#e8edf4;color:#263247}html[data-theme="light"] .session-actions-menu{background:#fff;color:#263247;border-color:#d8dee8}

/* 会话菜单使用视口定位，避免被会话滚动区裁切或撑出滚动条。 */
.session-list{overflow-x:hidden}
.session-actions-menu{position:fixed;z-index:5000;right:auto;bottom:auto}

.message-copy .copied-label{display:none}.message-copy.copied .copied-label{display:inline}.message-copy.copied svg{display:none}
.attachment-chip .attachment-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
