/* Lucy / Rin 共用外壳：名字菜单、动态导航，以及收紧的聊天空态。 */
:root[data-mode="work"], .app[data-mode="work"] { --accent: #14858d; --accent-ink: #09666e; --accent-soft: #daf2f2; --accent-dim: #14858d1a; --glow-a: #1fa5ad; --glow-b: #42b7bf; --glow-c: #417bc5; }
.assistant-switch { position: relative; display: flex; align-items: center; gap: 7px; padding: 15px 13px 10px; flex: none; z-index: 8; }
.assistant-icon, .assistant-name { border: 0; background: transparent; color: var(--ink); display: flex; align-items: center; justify-content: center; border-radius: 12px; min-height: 40px; }
.assistant-icon { width: 38px; padding: 4px; flex: none; }
.assistant-name { gap: 8px; padding: 4px 10px; font-size: 19px; font-weight: 650; letter-spacing: -.4px; }
.assistant-name svg { color: var(--ink-3); }
.assistant-icon:hover, .assistant-name:hover, .assistant-name[aria-expanded="true"] { background: var(--surface-3); }
/* 柔和圆形渐变保持外形稳定，只让内部光泽缓慢流动。 */
.assistant-mark, .brand-mark, .lucy-resident-symbol, .lucy-avatar, .app .rin-presence {
  border-radius:50%; overflow:hidden; aspect-ratio:1;
  background:radial-gradient(circle at 27% 25%,#ffd1be 0%,transparent 40%),radial-gradient(circle at 73% 78%,#9b67b5 0%,transparent 49%),linear-gradient(130deg,#f89879,#e57c8c 57%,#b17ac6);
  background-size:125% 125%; background-position:20% 20%;
  box-shadow:inset 0 0 0 1px #ffffff30,inset 0 -3px 7px #6a28591a,0 2px 8px #d17b8b1a;
  animation:assistant-flow 7s ease-in-out infinite;
}
.assistant-mark { width:28px; height:28px; display:block; position:relative; }
.app[data-mode="work"] .assistant-mark, .app .rin-presence {
  background:radial-gradient(circle at 27% 25%,#d2fff4 0%,transparent 42%),radial-gradient(circle at 77% 80%,#5299c0 0%,transparent 49%),linear-gradient(130deg,#6acac3,#4dbbc5 56%,#789ecd);
  background-size:125% 125%;box-shadow:inset 0 0 0 1px #ffffff50,inset 0 -3px 7px #22697726,0 2px 8px #4cabb224;
}
.app .rin-presence { font-size:0; flex:none; }
.lucy-resident-symbol svg, .lucy-avatar svg { display:none; }
.app[data-mode="work"] .rail-btn[aria-current="page"] { background:var(--accent-soft);color:var(--accent-ink);box-shadow:0 4px 14px #14858d18; }
@keyframes assistant-flow { 0%,100% { background-position:20% 20%;filter:brightness(1); } 50% { background-position:80% 75%;filter:brightness(1.08); } }
.assistant-menu { position: absolute; top: calc(100% + 2px); left: 10px; right: 10px; padding: 7px; border: 1px solid var(--line-strong); border-radius: 18px; background: var(--surface); box-shadow: var(--shadow-3, 0 12px 38px #0002); }
.assistant-menu[hidden] { display: none; }
.assistant-option { width: 100%; display: flex; align-items: center; gap: 12px; padding: 12px; min-height: 68px; border: 0; border-radius: 12px; background: transparent; text-align: left; color: var(--ink); }
.assistant-option:hover, .assistant-option:focus-visible { background: var(--surface-3); }
.assistant-option > span:first-child { flex: 1; display: grid; gap: 4px; }
.assistant-option b { font-size: 16px; font-weight: 600; }
.assistant-option small { color: var(--ink-2); font-size: 12px; }
.assistant-check { width: 20px; display: grid; place-items: center; }
.sidebar-panel .panel-lucy, .sidebar-panel .panel-work { min-height: 0; }
.sidebar-route-nav { display: none; }
.page--chat .topbar-title { flex: 1; }
.composer-hint { display: none; }
.composer-spacer { flex: 1; }
.composer-row { gap: 7px; }
.composer-row .attach-wrap { order: 0; }
.composer-row #micBtn { order: 2; }
.composer-row #sendBtn { order: 3; }
.composer-row .composer-spacer { order: 1; }
.dock { padding-bottom: 20px; }
.chat-body[data-empty="true"] { overflow-y: auto; justify-content: center; padding: 28px 0 50px; }
.chat-body[data-empty="true"] .thread { flex: none; min-height: auto; overflow: visible; padding: 0 24px 24px; gap: 0; scrollbar-gutter: auto; }
.chat-body[data-empty="true"] .welcome { margin: 0 auto; padding: 0; }
.chat-body[data-empty="true"] .welcome-title { font-size: clamp(25px, 2.6vw, 34px); margin: 3px 0 0; line-height: 1.45; }
.chat-body[data-empty="true"] .welcome-greet { margin: 0 0 6px; }
.chat-body[data-empty="true"] .welcome-greet:last-child:not(:first-child) { margin-top: 10px; }
.chat-body[data-empty="true"] .dock { padding-bottom: 0; }
.chat-body[data-empty="true"] .starter { padding-top: 16px; padding-bottom: 0; }
.chat-body[data-empty="true"] .suggest { box-shadow: none; border-radius: 14px; padding: 12px 13px; min-height: 72px; }
.chat-body[data-empty="true"] .suggest-go { display: none; }
.chat-body[data-empty="true"] .suggest-ic { width: 32px; height: 32px; border-radius: 10px; }
.att-row { flex-wrap: wrap; }
.att video { width: 100%; height: 100%; object-fit: cover; }
.plain-body:has(.workspace) { max-width: none; padding: 0; gap: 0; }
@media (max-width: 860px) {
  .assistant-menu { z-index: 50; }
  .assistant-switch { padding-top: 16px; }
}
@media (max-width: 640px) {
  .chat-body[data-empty="true"] { padding-top: 34px; padding-bottom: 24px; justify-content: flex-start; }
  .chat-body[data-empty="true"] .thread { padding: 0 16px 20px; }
  .chat-body[data-empty="true"] .welcome-title { font-size: 23px; }
  .chat-body[data-empty="true"] .suggests { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .chat-body[data-empty="true"] .suggest { gap: 8px; padding: 11px 10px; min-height: 78px; }
  .chat-body[data-empty="true"] .suggest-ic { width: 26px; height: 30px; flex: none; }
  .chat-body[data-empty="true"] .suggest-txt b { font-size: 12.5px; line-height: 1.45; }
  .chat-body[data-empty="true"] .suggest-txt small { font-size: 10.5px; line-height: 1.5; }
  .dock { padding-bottom: max(12px, env(safe-area-inset-bottom)); }
  .composer textarea { font-size: 16px; }
  .composer .cbtn, .composer .send { width: 44px; height: 44px; }
}
@media (max-width: 560px) {
  .sidebar-route-nav { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 10px; gap: 5px; border-top: 1px solid var(--line); flex: none; }
  .sidebar-route-button { display: flex; align-items: center; gap: 7px; padding: 9px 8px; min-height: 42px; color: var(--ink-2); background: transparent; border: 0; border-radius: 9px; font-size: 12px; }
  .sidebar-route-button:hover, .sidebar-route-button[aria-current="page"] { color: var(--accent-ink); background: var(--accent-soft); }
}
@media (max-height: 650px) {
  .chat-body[data-empty="true"] { justify-content: flex-start; padding-top: 24px; }
}
@media (prefers-reduced-motion: reduce) {
  .assistant-mark i { animation: none; }
  .assistant-mark { transition: none; }
}
@media (prefers-color-scheme: dark) {
  :root[data-mode="work"], .app[data-mode="work"] { --accent: #57cbd3; --accent-ink: #80dee5; --accent-soft: #57cbd326; --accent-dim: #57cbd31a; }
}

/* 手机对话采用固定底栏；空态不展示建议卡，桌面布局保持原样。 */
@media (max-width:600px) {
  .app { position:fixed;top:var(--mobile-view-top,0px);left:0;width:100%;height:var(--mobile-view-height,100dvh); }
  .main { height:100%; }
  .page--chat { height:100%;min-height:0; }
  .page--chat .chat-body, .page--chat .chat-body[data-empty="true"] { flex:1;min-height:0;padding:0;overflow:hidden;justify-content:flex-start; }
  .page--chat .chat-body[data-empty="true"] .thread { flex:1;min-height:0;overflow-y:auto;padding:clamp(30px,18vh,150px) 16px 24px; }
  .page--chat .chat-body[data-empty="true"] .welcome { margin:0 auto; }
  .page--chat .dock, .page--chat .chat-body[data-empty="true"] .dock { margin-top:auto;padding:8px 12px max(12px,env(safe-area-inset-bottom));background:var(--bg);flex:none; }
  .page--chat #starter { display:none!important; }
  .page--chat .composer { box-shadow:none;border-radius:24px; }
  :root[data-mobile-keyboard="true"] .page--chat .chat-body[data-empty="true"] .thread { padding-top:24px; }
}
@media (prefers-reduced-motion:reduce) {
  .assistant-mark, .brand-mark, .lucy-resident-symbol, .lucy-avatar, .app .rin-presence { animation:none!important; }
}
/* 显式隐藏路由页面，避免后加载的布局规则覆盖 HTML hidden。 */
#pageChat[hidden],#pagePlain[hidden]{display:none!important}
/* 顶部只保留最左一个中空圆 dot；窄屏侧栏以同一入口代替隐藏的 rail。 */
.assistant-switch>.assistant-icon{display:none}.assistant-switch{padding-left:14px}
.assistant-mark{background:none!important;box-shadow:none!important;border:3px solid #e48698;position:relative;animation:assistant-ring 6s ease-in-out infinite}
.assistant-mark::after{content:'';position:absolute;width:6px;height:6px;border-radius:50%;top:-2px;right:1px;background:#ffd4be;box-shadow:0 0 7px #f2b29690}
.app[data-mode="work"] .assistant-mark{border-color:#5cc3ce}.app[data-mode="work"] .assistant-mark::after{background:#b7f0ec;box-shadow:0 0 7px #7ee8ee90}
@keyframes assistant-ring{50%{filter:brightness(1.15);transform:rotate(18deg)}}
@media(max-width:560px){.assistant-switch>.assistant-icon{display:flex}.assistant-switch{padding-left:13px}}
/* Live 保留聊天历史与底部输入框；语音区域紧贴两者之间。 */
.chat-body[data-call="true"]>.starter{display:none!important}
.chat-body[data-call="true"],.chat-body[data-call="true"][data-empty="true"]{justify-content:flex-start;padding:0;overflow:hidden}
.chat-body[data-call="true"]>.thread,.chat-body[data-call="true"][data-empty="true"]>.thread{flex:1;min-height:0;overflow:auto;padding:24px 24px 8px}
#call{position:relative;inset:auto;z-index:1;flex:none;width:min(720px,100% - 48px);height:auto;margin:0 auto;display:block;overflow:visible;background:transparent;color:var(--ink);animation:none}
#call::before{display:none}.call-inner{width:100%;padding:6px 0 10px;display:block;text-align:left}.call-row{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:115px}.call-visual{display:flex;align-items:center;gap:22px;flex:1;justify-content:center;padding-block:24px}.call .orb{width:88px;height:88px;margin:0;flex:none}.call-title{font-size:12px;font-weight:500;letter-spacing:0;white-space:nowrap;color:var(--ink-3)}.call-sub{display:none}.call-live{max-height:58px;overflow:auto;margin:0 0 6px;gap:4px}.live-line{font-size:12px;color:var(--ink-2);justify-content:start}.live-line span{color:var(--ink-3)}.live-line--lucy q{color:var(--ink)}.call-notice{background:var(--accent-soft);color:var(--accent-ink);font-size:11px;margin:6px 0 0}.call-error{background:var(--bad-soft);color:var(--bad-ink);font-size:11px;margin:6px 0 0}.call-controls{display:flex;align-items:center;gap:9px;flex:none}.call-control,.hangup{display:grid;place-items:center;width:36px;height:36px;padding:0;border:0;border-radius:50%;background:var(--surface-3);color:var(--ink-2);margin:0;box-shadow:none;flex:none}.call-control:hover{background:var(--surface-2)}.call-control[aria-pressed="true"]{color:var(--bad-ink);background:var(--bad-soft)}.call-control:disabled{opacity:.4}.hangup{background:#378acc;color:#fff}.hangup:hover{background:#267abc}.app[data-mode="work"] .hangup{background:#168a96}.app[data-mode="work"] .hangup:hover{background:#0b7582}
#call[data-assistant="work"] .orb i:nth-child(1){background:radial-gradient(circle at 35% 30%,#d2fff3,#60d0cf 40%,#3574b8 75%,transparent 76%)}
#call[data-assistant="work"] .orb i:nth-child(2){background:radial-gradient(circle at 65% 60%,#acdfff,#447dc3 45%,transparent 72%)}
#call[data-assistant="work"] .orb i:nth-child(3){background:radial-gradient(circle at 50% 80%,#8affe3,#279cba 35%,transparent 62%)}
@media(max-width:600px){#call{width:calc(100% - 28px)}.call-inner{padding:4px 0 6px}.call-row{min-height:100px;gap:12px}.call-visual{justify-content:start;gap:12px}.call .orb{width:65px;height:65px}.call-title{font-size:11px}.call-controls{gap:7px}.call-control,.hangup{width:36px;height:36px}.chat-body[data-call="true"]>.thread,.chat-body[data-call="true"][data-empty="true"]>.thread{padding:16px 16px 6px}}
@media(prefers-reduced-motion:reduce){.assistant-mark{animation:none!important}.call .orb,.call .orb i,.call .orb::after{animation:none!important;transition:none!important}}

/* 通话只用这一组控制，取代输入框右侧的原语音与发送按钮。 */
.composer-row .call-controls{order:2;margin-left:0}
#callControls[hidden],#micBtn[hidden],#sendBtn[hidden]{display:none!important}

/* 文件夹和对话使用浅底选中，去掉旧版左侧竖线。 */
.work-project .sessions{border-left:0;padding-left:0;margin-left:12px}
.sess[aria-current="true"]::before{display:none}
.sidebar-pin{display:grid;place-items:center;color:var(--ink-3);flex:none;margin-right:3px}
.work-project-row,.sess{user-select:none;-webkit-touch-callout:none;touch-action:pan-y}
.sidebar-action-menu{position:fixed;z-index:1500;min-width:178px;padding:6px;border:1px solid var(--line-strong);border-radius:12px;background:var(--surface);box-shadow:var(--shadow-2);color:var(--ink)}
.sidebar-action-menu button{display:flex;align-items:center;gap:10px;width:100%;min-height:38px;border:0;background:transparent;color:inherit;text-align:left;padding:8px 10px;border-radius:7px;font-size:13px}
.sidebar-action-menu button:hover,.sidebar-action-menu button:focus-visible{background:var(--surface-3)}
.sidebar-action-menu .is-danger{color:var(--bad-ink)}
.session-move-list{display:grid;gap:5px;max-height:50vh;overflow:auto;margin:18px 0}
.session-move-choice{display:flex;align-items:center;gap:10px;min-height:46px;padding:10px 12px;border:0;border-radius:10px;background:var(--surface-3);color:var(--ink);text-align:left}
.session-move-choice small{margin-left:auto;color:var(--ink-3)}
.session-move-choice:disabled{opacity:.5}
.sidebar-drag-source{opacity:.45;background:var(--accent-soft)}
.sidebar-drop-before,.sidebar-drop-after,.sidebar-drop-inside{position:relative}
.sidebar-drop-before::after,.sidebar-drop-after::after{content:"";position:absolute;left:4px;right:4px;height:2px;background:var(--accent);border-radius:2px;pointer-events:none}
.sidebar-drop-before::after{top:-2px}.sidebar-drop-after::after{bottom:-2px}
.sidebar-drop-inside{background:var(--accent-soft)!important;outline:1px dashed var(--accent);outline-offset:-1px}
.sidebar-drag-hint{position:fixed;bottom:18px;z-index:1501;border-radius:12px;padding:11px 13px;background:var(--surface);border:1px solid var(--accent);color:var(--accent-ink);box-shadow:var(--shadow-2);font-size:12px;pointer-events:none}
html[data-sidebar-dragging="true"]{cursor:grabbing}
.app:not([data-route="ai"]):not([data-route="resident"]) .sidebar{display:none}
.app:not([data-route="ai"]):not([data-route="resident"]) .sidebar-panel{display:none!important}
@media(min-width:861px){
 .app:not([data-route="ai"]):not([data-route="resident"]){grid-template-columns:var(--rail-w) minmax(0,1fr)}
 .topbar .assistant-switch{padding:0;margin:0 8px 0 0;z-index:12}
 .topbar .assistant-name{font-size:17px;padding:4px 7px}
 .topbar .assistant-menu{width:260px;left:0;right:auto;top:44px}
}
@media(max-width:860px){
 .sidebar-menu-trigger{width:38px;min-height:38px}
 .sidebar-action-menu button{min-height:42px}
}
/* 主导航居中；助手切换仍固定在轨道顶部。 */
.rail-nav{justify-content:center;gap:15px;padding-bottom:40px}
.assistant-mark{width:28px;height:28px;border-width:6px!important;box-sizing:border-box}
.assistant-mark::after{width:5px;height:5px;top:-5px;right:-1px}
