@co0ontty/wand 1.29.3 → 1.30.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -531,7 +531,7 @@
531
531
  .sidebar.pinned.collapsed .sidebar-header-main,
532
532
  .sidebar.pinned.collapsed .sidebar-header-more,
533
533
  .sidebar.pinned.collapsed .sidebar-pin-toggle,
534
- .sidebar.pinned.collapsed .sidebar-body {
534
+ .sidebar.pinned.collapsed .sidebar-footer {
535
535
  display: none;
536
536
  }
537
537
  .sidebar.pinned.collapsed .sidebar-header-actions {
@@ -539,26 +539,136 @@
539
539
  width: 100%;
540
540
  justify-content: center;
541
541
  }
542
- .sidebar.pinned.collapsed .sidebar-footer {
543
- padding: 10px 6px;
542
+ .sidebar.pinned.collapsed .sidebar-body {
543
+ padding: 8px 4px;
544
+ overflow-y: auto;
545
+ overflow-x: hidden;
544
546
  }
545
- .sidebar.pinned.collapsed #drawer-new-session-button {
546
- display: none;
547
+ .sidebar.pinned.collapsed .sidebar-body::-webkit-scrollbar {
548
+ width: 0;
547
549
  }
548
- .sidebar.pinned.collapsed .sidebar-footer-actions {
550
+ .sidebar-collapsed-tiles {
551
+ display: flex;
549
552
  flex-direction: column;
550
- gap: 6px;
551
- align-items: stretch;
553
+ gap: 8px;
554
+ align-items: center;
552
555
  }
553
- .sidebar.pinned.collapsed .sidebar-footer-actions .btn {
554
- width: 100%;
555
- min-width: 0;
556
- padding: 8px 0;
556
+ .sidebar-collapsed-tile {
557
+ width: 36px;
558
+ height: 36px;
559
+ border-radius: 11px;
560
+ border: 0.5px solid rgba(255, 255, 255, 0.32);
561
+ background: linear-gradient(145deg, #d4785a 0%, #b8573a 50%, #a04a2e 100%);
562
+ color: #fff;
563
+ font-size: 14px;
564
+ font-weight: 700;
565
+ font-variant-numeric: tabular-nums;
566
+ letter-spacing: -0.01em;
567
+ cursor: pointer;
568
+ display: inline-flex;
569
+ align-items: center;
557
570
  justify-content: center;
571
+ padding: 0;
572
+ box-shadow:
573
+ 0 1px 3px rgba(184, 92, 55, 0.28),
574
+ inset 0 1px 0 rgba(255, 255, 255, 0.28),
575
+ inset 0 -1px 0 rgba(0, 0, 0, 0.08);
576
+ transition:
577
+ filter var(--transition-fast),
578
+ box-shadow 0.22s ease,
579
+ transform 0.22s var(--ease-out-expo);
558
580
  }
559
- .sidebar.pinned.collapsed .sidebar-footer-actions .btn span,
560
- .sidebar.pinned.collapsed .sidebar-meta {
561
- display: none;
581
+ .sidebar-collapsed-tile:hover {
582
+ filter: brightness(1.06);
583
+ transform: translateY(-1px);
584
+ box-shadow:
585
+ 0 4px 12px -2px rgba(184, 92, 55, 0.42),
586
+ inset 0 1px 0 rgba(255, 255, 255, 0.35),
587
+ inset 0 -1px 0 rgba(0, 0, 0, 0.08);
588
+ }
589
+ /* History tile — softer cream tone to distinguish from active sessions */
590
+ .sidebar-collapsed-tile.history {
591
+ background: linear-gradient(145deg, #e8d3c0 0%, #d3b69d 50%, #b89478 100%);
592
+ color: rgba(89, 58, 32, 0.88);
593
+ box-shadow:
594
+ 0 1px 3px rgba(120, 88, 56, 0.22),
595
+ inset 0 1px 0 rgba(255, 255, 255, 0.45),
596
+ inset 0 -1px 0 rgba(0, 0, 0, 0.06);
597
+ }
598
+ .sidebar-collapsed-tile.history:hover {
599
+ box-shadow:
600
+ 0 4px 12px -2px rgba(120, 88, 56, 0.34),
601
+ inset 0 1px 0 rgba(255, 255, 255, 0.5),
602
+ inset 0 -1px 0 rgba(0, 0, 0, 0.06);
603
+ }
604
+ /* Active — liquid glass crown: outer ring + warm halo + crisp top sheen */
605
+ .sidebar-collapsed-tile.active {
606
+ background: linear-gradient(145deg, #d27358 0%, #b35434 50%, #934128 100%);
607
+ transform: translateY(-1px);
608
+ box-shadow:
609
+ /* outer glow halo */
610
+ 0 0 0 1px rgba(255, 255, 255, 0.7),
611
+ 0 0 0 3px rgba(197, 101, 61, 0.32),
612
+ 0 8px 22px -4px rgba(160, 74, 46, 0.55),
613
+ 0 3px 8px -2px rgba(160, 74, 46, 0.32),
614
+ /* top sheen */
615
+ inset 0 1px 0 rgba(255, 255, 255, 0.45),
616
+ inset 1px 0 0 rgba(255, 255, 255, 0.18),
617
+ /* bottom depth */
618
+ inset 0 -1px 0 rgba(0, 0, 0, 0.16);
619
+ }
620
+ .sidebar-collapsed-tile:active {
621
+ transform: translateY(0) scale(0.94);
622
+ transition-duration: 0.08s;
623
+ }
624
+ .sidebar-collapsed-empty {
625
+ color: var(--text-muted, rgba(89, 58, 32, 0.45));
626
+ text-align: center;
627
+ font-size: 16px;
628
+ padding: 12px 0;
629
+ user-select: none;
630
+ }
631
+ /* Hover tooltip bubble for narrow tiles — chat-bubble look */
632
+ .sidebar-tile-bubble {
633
+ position: fixed;
634
+ max-width: 320px;
635
+ min-width: 80px;
636
+ padding: 9px 13px;
637
+ background: linear-gradient(145deg, rgba(255, 251, 245, 0.99) 0%, rgba(252, 244, 233, 0.99) 100%);
638
+ border: 1px solid var(--border-subtle, rgba(120, 88, 56, 0.18));
639
+ border-radius: 14px;
640
+ box-shadow:
641
+ 0 6px 24px -4px rgba(89, 58, 32, 0.22),
642
+ 0 2px 6px rgba(89, 58, 32, 0.08),
643
+ inset 0 1px 0 rgba(255, 255, 255, 0.65);
644
+ font-size: 13px;
645
+ line-height: 1.46;
646
+ color: rgba(56, 36, 18, 0.92);
647
+ z-index: 200;
648
+ pointer-events: none;
649
+ opacity: 0;
650
+ transform: translateX(-4px);
651
+ transition: opacity 0.16s ease, transform 0.18s var(--ease-out-expo, ease);
652
+ white-space: pre-wrap;
653
+ word-break: break-word;
654
+ backdrop-filter: blur(12px) saturate(160%);
655
+ }
656
+ .sidebar-tile-bubble.visible {
657
+ opacity: 1;
658
+ transform: translateX(0);
659
+ }
660
+ .sidebar-tile-bubble::before {
661
+ content: '';
662
+ position: absolute;
663
+ left: -6px;
664
+ top: var(--bubble-tail-y, 50%);
665
+ transform: translateY(-50%) rotate(45deg);
666
+ width: 11px;
667
+ height: 11px;
668
+ background: inherit;
669
+ border-left: 1px solid var(--border-subtle, rgba(120, 88, 56, 0.18));
670
+ border-bottom: 1px solid var(--border-subtle, rgba(120, 88, 56, 0.18));
671
+ box-shadow: -2px 2px 5px -2px rgba(89, 58, 32, 0.08);
562
672
  }
563
673
  .sidebar-collapse-toggle {
564
674
  flex-shrink: 0;
@@ -567,8 +677,13 @@
567
677
  .sidebar-collapse-toggle.collapsed {
568
678
  color: var(--primary);
569
679
  }
570
- .sidebar:not(.pinned) .sidebar-collapse-toggle {
680
+ /* 完全关闭侧栏 — 仅在 pinned 展开态可见(drawer 自带 X;窄条态保持极简) */
681
+ .sidebar .sidebar-header-actions .btn.sidebar-close-fully {
571
682
  display: none;
683
+ flex-shrink: 0;
684
+ }
685
+ .sidebar.pinned:not(.collapsed) .sidebar-header-actions .btn.sidebar-close-fully {
686
+ display: inline-flex;
572
687
  }
573
688
 
574
689
  /* ===== 图钉按钮 ===== */
@@ -744,8 +859,19 @@
744
859
  text-overflow: ellipsis;
745
860
  }
746
861
 
747
- .tree-item:hover { background: var(--bg-tertiary); }
748
- .tree-item.active { background: var(--accent-muted); color: var(--accent); }
862
+ .tree-item:hover {
863
+ background: linear-gradient(180deg, rgba(255, 255, 255, 0.7) 0%, rgba(255, 252, 247, 0.4) 100%);
864
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.7);
865
+ }
866
+ .tree-item.active {
867
+ background:
868
+ linear-gradient(180deg, rgba(255, 252, 247, 0.92) 0%, rgba(255, 244, 232, 0.75) 100%);
869
+ color: var(--accent);
870
+ box-shadow:
871
+ 0 0 0 1px rgba(197, 101, 61, 0.22),
872
+ 0 3px 10px -3px rgba(197, 101, 61, 0.25),
873
+ inset 0 1px 0 rgba(255, 255, 255, 0.85);
874
+ }
749
875
 
750
876
  .tree-toggle {
751
877
  flex-shrink: 0;
@@ -2850,11 +2976,12 @@
2850
2976
  --term-cursor: #d67b52;
2851
2977
  --term-font-family: "Geist Mono", "SF Mono", monospace;
2852
2978
  --term-font-size: 13px;
2853
- /* 行高直接给整数像素,避免 13×1.5=19.5 的亚像素行:PC 1× DPR
2854
- * 浏览器把 19.5 四舍五入成 19 或 20,相邻行的吸附方向不一致就会
2855
- * 出现错位。20px wterm 既定的 cell 高度基线,移动端高 DPR 也
2856
- * 完全不变。 */
2857
- --term-line-height: 1.54;
2979
+ /* 行高直接锁到 --term-row-height(px 值),杜绝 unitless × fontPx
2980
+ * 亚像素重算。否则 fontPx rowPx 不成整数比时,浏览器把行内文字算
2981
+ * 出比 row 容器更高(如 13×1.54=20.02px 装进 20px row),相邻行视觉
2982
+ * 互相覆盖几像素;applyTerminalScale 后的非默认字号下尤其明显。
2983
+ * px 路径让 line-height 与 row 高保持单一真相源。 */
2984
+ --term-line-height: var(--term-row-height);
2858
2985
  --term-row-height: 20px;
2859
2986
  --term-color-0: #1f1b17;
2860
2987
  --term-color-1: #d27766;
@@ -3461,6 +3588,10 @@
3461
3588
  color: var(--accent);
3462
3589
  font-weight: 600;
3463
3590
  }
3591
+ .shortcut-key[data-key="shift_tab"] {
3592
+ color: #6a6bb0;
3593
+ font-weight: 600;
3594
+ }
3464
3595
 
3465
3596
  /* Mobile keyboard overlap compensation */
3466
3597
  @media (max-width: 640px) {
@@ -3972,8 +4103,66 @@
3972
4103
  .chat-message-content > .inline-tool,
3973
4104
  .chat-message-content > .terminal-tool,
3974
4105
  .chat-message-content > .diff-tool,
3975
- .chat-message-content > .tool-use-card {
3976
- margin: 1px 0;
4106
+ .chat-message-content > .tool-use-card,
4107
+ .chat-message-content > .tool-group {
4108
+ margin: 3px 0;
4109
+ }
4110
+
4111
+ /* ===== 多角色群聊(subagent 加入对话) ===== */
4112
+ /* 一个 assistant turn 内有 subagent 时,根容器切到 multi-agent 模式,
4113
+ 内部多个 .chat-message-segment 子段堆叠,每段自带头像与气泡。 */
4114
+ .chat-message.multi-agent {
4115
+ display: flex;
4116
+ flex-direction: column;
4117
+ gap: 6px;
4118
+ max-width: 95%;
4119
+ }
4120
+ .chat-message.multi-agent .chat-message-segment {
4121
+ display: flex;
4122
+ flex-direction: column;
4123
+ }
4124
+ .chat-message.multi-agent .chat-message-segment.subagent {
4125
+ padding-left: 14px;
4126
+ margin-left: 6px;
4127
+ border-left: 2px solid var(--agent-color, var(--border-subtle));
4128
+ border-radius: 0 4px 4px 0;
4129
+ }
4130
+ .chat-message.multi-agent .chat-message-segment.subagent .chat-message-content {
4131
+ /* 子 agent 段内的气泡稍微弱化背景,区分主线 */
4132
+ opacity: 0.96;
4133
+ }
4134
+ .chat-message.multi-agent .chat-message-segment .chat-message-avatar {
4135
+ padding-bottom: 4px;
4136
+ }
4137
+ /* 子 agent 头像 name 跟随 agent 主色 */
4138
+ .chat-message-avatar.subagent .avatar-name {
4139
+ color: var(--agent-color, var(--accent));
4140
+ }
4141
+
4142
+ /* "勤劳初二 ↳ 让 侦探猫 帮忙" 分隔提示 */
4143
+ .chat-handoff {
4144
+ align-self: flex-start;
4145
+ margin: 4px 0 2px 4px;
4146
+ padding: 2px 10px;
4147
+ font-size: 0.7rem;
4148
+ color: var(--text-tertiary);
4149
+ background: color-mix(in srgb, var(--agent-color, var(--accent)) 8%, transparent);
4150
+ border-left: 2px solid var(--agent-color, var(--accent));
4151
+ border-radius: 0 8px 8px 0;
4152
+ line-height: 1.5;
4153
+ }
4154
+ .chat-handoff strong {
4155
+ color: var(--agent-color, var(--accent));
4156
+ font-weight: 600;
4157
+ }
4158
+ .chat-handoff-arrow {
4159
+ color: var(--agent-color, var(--accent));
4160
+ font-weight: 600;
4161
+ margin-right: 2px;
4162
+ }
4163
+ .chat-handoff-desc {
4164
+ color: var(--text-secondary);
4165
+ font-style: italic;
3977
4166
  }
3978
4167
 
3979
4168
  /* ===== 消息使用量信息 ===== */
@@ -3982,13 +4171,98 @@
3982
4171
  padding-top: 6px;
3983
4172
  border-top: 1px solid var(--border-subtle);
3984
4173
  font-family: var(--font-mono);
3985
- font-size: 0.625rem;
4174
+ font-size: 0.65rem;
3986
4175
  color: var(--text-muted);
3987
4176
  display: flex;
3988
4177
  gap: 10px;
3989
4178
  align-items: center;
3990
4179
  flex-wrap: wrap;
3991
- opacity: 0.5;
4180
+ opacity: 0.75;
4181
+ }
4182
+
4183
+ /* ===== 空消息占位 / 未识别 block / 截断提示 ===== */
4184
+ .empty-message .empty-message-hint {
4185
+ color: var(--text-tertiary);
4186
+ font-style: italic;
4187
+ font-size: 0.8125rem;
4188
+ opacity: 0.7;
4189
+ }
4190
+
4191
+ .unknown-block {
4192
+ margin: 4px 0;
4193
+ border: 1px dashed var(--border-subtle);
4194
+ border-radius: var(--radius-md);
4195
+ background: color-mix(in srgb, var(--text-muted) 6%, transparent);
4196
+ font-size: 0.75rem;
4197
+ cursor: pointer;
4198
+ transition: background var(--transition-fast);
4199
+ }
4200
+ .unknown-block:hover {
4201
+ background: color-mix(in srgb, var(--text-muted) 10%, transparent);
4202
+ }
4203
+ .unknown-block-header {
4204
+ display: flex;
4205
+ align-items: center;
4206
+ gap: 8px;
4207
+ padding: 6px 10px;
4208
+ color: var(--text-secondary);
4209
+ }
4210
+ .unknown-block-icon {
4211
+ display: inline-flex;
4212
+ align-items: center;
4213
+ justify-content: center;
4214
+ width: 18px;
4215
+ height: 18px;
4216
+ border-radius: 50%;
4217
+ background: var(--text-muted);
4218
+ color: var(--bg-surface);
4219
+ font-size: 0.7rem;
4220
+ font-weight: 600;
4221
+ }
4222
+ .unknown-block-label {
4223
+ flex: 1;
4224
+ font-weight: 500;
4225
+ }
4226
+ .unknown-block-toggle {
4227
+ color: var(--text-tertiary);
4228
+ font-size: 0.7rem;
4229
+ transition: transform var(--transition-fast);
4230
+ }
4231
+ .unknown-block.collapsed .unknown-block-toggle {
4232
+ transform: rotate(-90deg);
4233
+ }
4234
+ .unknown-block-body {
4235
+ margin: 0;
4236
+ padding: 8px 10px 10px;
4237
+ font-family: var(--font-mono);
4238
+ font-size: 0.7rem;
4239
+ color: var(--text-secondary);
4240
+ white-space: pre-wrap;
4241
+ word-break: break-all;
4242
+ max-height: 240px;
4243
+ overflow-y: auto;
4244
+ border-top: 1px dashed var(--border-subtle);
4245
+ }
4246
+ .unknown-block.collapsed .unknown-block-body {
4247
+ display: none;
4248
+ }
4249
+
4250
+ /* tool-use 卡片 / inline-tool / terminal 内容被截断时的提示标签 */
4251
+ .tool-use-card[data-truncated="true"] .tool-use-name::after,
4252
+ .inline-tool[data-truncated="true"] .inline-tool-title::after,
4253
+ .inline-terminal[data-truncated="true"] .inline-terminal-title::after {
4254
+ content: '已截断';
4255
+ display: inline-block;
4256
+ margin-left: 6px;
4257
+ padding: 1px 6px;
4258
+ font-size: 0.6rem;
4259
+ font-weight: 500;
4260
+ color: var(--text-inverse, #fff);
4261
+ background: var(--text-tertiary);
4262
+ border-radius: 999px;
4263
+ letter-spacing: 0.02em;
4264
+ vertical-align: 1px;
4265
+ opacity: 0.85;
3992
4266
  }
3993
4267
 
3994
4268
  .message-usage::before {
@@ -4112,81 +4386,96 @@
4112
4386
  overflow-y: auto;
4113
4387
  }
4114
4388
 
4115
- /* Tool Use Card */
4389
+ /* ──────────────────────────────────────────────────────────────
4390
+ Tool Use Card — generic write/exec tool wrapper
4391
+ Soft cream surface, brand-tinted status states, polished hover.
4392
+ ────────────────────────────────────────────────────────────── */
4116
4393
  .tool-use-card {
4117
- margin: 3px 0;
4394
+ margin: 4px 0;
4118
4395
  border: 1px solid var(--border-subtle);
4119
- border-radius: 8px;
4396
+ border-radius: var(--radius-sm);
4120
4397
  overflow: hidden;
4121
4398
  width: 100%;
4122
4399
  box-sizing: border-box;
4123
- background: var(--bg-secondary);
4124
- transition: all 0.3s var(--ease-out-expo);
4400
+ background: linear-gradient(180deg, rgba(255, 251, 245, 0.88) 0%, rgba(255, 246, 234, 0.72) 100%);
4401
+ box-shadow: 0 1px 2px rgba(89, 58, 32, 0.04);
4402
+ transition: border-color 0.22s ease, box-shadow 0.22s ease, transform 0.22s ease;
4125
4403
  }
4126
4404
  .tool-use-card:hover {
4127
- border-color: rgba(79, 122, 88, 0.25);
4128
- box-shadow: 0 2px 8px rgba(79, 122, 88, 0.06);
4405
+ border-color: rgba(79, 122, 88, 0.3);
4406
+ box-shadow: 0 3px 12px rgba(79, 122, 88, 0.08);
4129
4407
  }
4130
4408
  .tool-use-card.loading {
4131
- border-color: rgba(79, 122, 88, 0.4);
4409
+ border-color: rgba(169, 106, 47, 0.3);
4410
+ background: linear-gradient(180deg, rgba(255, 244, 226, 0.88) 0%, rgba(255, 241, 218, 0.72) 100%);
4132
4411
  }
4133
4412
  .tool-use-card.success {
4134
- border-color: rgba(79, 122, 88, 0.5);
4413
+ border-color: rgba(79, 122, 88, 0.32);
4135
4414
  }
4136
4415
  .tool-use-card.error {
4137
- border-color: rgba(178, 79, 69, 0.5);
4416
+ border-color: rgba(178, 79, 69, 0.32);
4417
+ background: linear-gradient(180deg, rgba(252, 240, 238, 0.88) 0%, rgba(252, 235, 233, 0.72) 100%);
4138
4418
  }
4139
4419
  .tool-use-header {
4140
4420
  display: flex;
4141
4421
  align-items: center;
4142
- gap: 8px;
4143
- padding: 8px 12px;
4144
- background: rgba(79, 122, 88, 0.04);
4422
+ gap: 10px;
4423
+ padding: 9px 14px;
4424
+ background: transparent;
4145
4425
  cursor: pointer;
4146
4426
  font-size: 0.8125rem;
4147
4427
  user-select: none;
4148
4428
  -webkit-user-select: none;
4149
4429
  -webkit-tap-highlight-color: transparent;
4150
4430
  touch-action: manipulation;
4151
- transition: all 0.2s var(--ease-out-expo);
4152
- min-height: 36px;
4431
+ transition: background 0.18s ease;
4432
+ min-height: 38px;
4153
4433
  flex-wrap: nowrap;
4154
4434
  }
4155
4435
  .tool-use-header:hover {
4156
- background: rgba(79, 122, 88, 0.1);
4436
+ background: rgba(197, 101, 61, 0.04);
4157
4437
  }
4158
4438
  .tool-use-header:active {
4159
- transform: scale(0.99);
4439
+ background: rgba(197, 101, 61, 0.07);
4160
4440
  }
4161
- .tool-use-card.loading .tool-use-header {
4162
- background: rgba(79, 122, 88, 0.08);
4441
+ .tool-use-card.loading .tool-use-header:hover {
4442
+ background: rgba(169, 106, 47, 0.06);
4163
4443
  }
4164
- .tool-use-card.success .tool-use-header {
4165
- background: rgba(79, 122, 88, 0.12);
4444
+ .tool-use-card.success .tool-use-header:hover {
4445
+ background: rgba(79, 122, 88, 0.06);
4166
4446
  }
4167
- .tool-use-card.error .tool-use-header {
4168
- background: rgba(178, 79, 69, 0.1);
4447
+ .tool-use-card.error .tool-use-header:hover {
4448
+ background: rgba(178, 79, 69, 0.06);
4169
4449
  }
4170
4450
  .tool-use-icon {
4171
4451
  font-size: 0.6875rem;
4172
4452
  font-family: var(--font-mono);
4173
- font-weight: 600;
4453
+ font-weight: 700;
4174
4454
  flex-shrink: 0;
4175
- display: flex;
4455
+ display: inline-flex;
4176
4456
  align-items: center;
4177
4457
  justify-content: center;
4178
- min-width: 18px;
4179
- height: 18px;
4180
- border-radius: 4px;
4181
- background: rgba(79, 122, 88, 0.1);
4458
+ min-width: 22px;
4459
+ height: 22px;
4460
+ border-radius: 6px;
4461
+ background: var(--success-muted);
4182
4462
  color: var(--success);
4463
+ letter-spacing: -0.02em;
4464
+ }
4465
+ .tool-use-card.loading .tool-use-icon {
4466
+ background: var(--warning-muted);
4467
+ color: var(--warning);
4468
+ }
4469
+ .tool-use-card.error .tool-use-icon {
4470
+ background: var(--danger-muted);
4471
+ color: var(--danger);
4183
4472
  }
4184
4473
  .tool-use-spinner {
4185
4474
  display: inline-block;
4186
- width: 16px;
4187
- height: 16px;
4188
- border: 2px solid rgba(79, 122, 88, 0.2);
4189
- border-top-color: var(--success);
4475
+ width: 14px;
4476
+ height: 14px;
4477
+ border: 2px solid var(--warning-muted);
4478
+ border-top-color: var(--warning);
4190
4479
  border-radius: 50%;
4191
4480
  animation: tool-spin 0.8s linear infinite;
4192
4481
  }
@@ -4203,12 +4492,13 @@
4203
4492
  overflow: hidden;
4204
4493
  text-overflow: ellipsis;
4205
4494
  white-space: nowrap;
4495
+ letter-spacing: -0.005em;
4206
4496
  }
4207
4497
  .tool-use-file {
4208
4498
  font-size: 0.75rem;
4209
4499
  font-family: var(--font-mono);
4210
- color: var(--text-muted);
4211
- max-width: 300px;
4500
+ color: var(--text-tertiary);
4501
+ max-width: 320px;
4212
4502
  overflow: hidden;
4213
4503
  text-overflow: ellipsis;
4214
4504
  white-space: nowrap;
@@ -4223,38 +4513,49 @@
4223
4513
  overflow: hidden;
4224
4514
  text-overflow: ellipsis;
4225
4515
  white-space: nowrap;
4226
- margin-left: 4px;
4516
+ margin-left: 2px;
4227
4517
  }
4228
4518
  .tool-use-status {
4229
- font-size: 0.75rem;
4230
- padding: 2px 8px;
4231
- border-radius: 4px;
4519
+ font-size: 0.6875rem;
4520
+ font-weight: 600;
4521
+ padding: 3px 10px;
4522
+ border-radius: var(--radius-full);
4232
4523
  flex-shrink: 0;
4233
- margin-left: 4px;
4524
+ margin-left: 2px;
4525
+ letter-spacing: 0.01em;
4234
4526
  }
4235
4527
  .tool-use-card.success .tool-use-status {
4236
- background: rgba(79, 122, 88, 0.15);
4528
+ background: var(--success-muted);
4237
4529
  color: var(--success);
4238
4530
  }
4239
4531
  .tool-use-card.error .tool-use-status {
4240
- background: rgba(178, 79, 69, 0.15);
4532
+ background: var(--danger-muted);
4241
4533
  color: var(--danger);
4242
4534
  }
4535
+ .tool-use-card.loading .tool-use-status {
4536
+ background: var(--warning-muted);
4537
+ color: var(--warning);
4538
+ }
4243
4539
  .tool-use-toggle {
4244
4540
  font-size: 0.75rem;
4245
4541
  color: var(--text-muted);
4246
- transition: transform 0.3s var(--ease-spring);
4542
+ transition: transform 0.3s var(--ease-spring), color 0.18s ease;
4247
4543
  flex-shrink: 0;
4248
4544
  display: flex;
4249
4545
  align-items: center;
4546
+ opacity: 0.6;
4547
+ }
4548
+ .tool-use-card:hover .tool-use-toggle {
4549
+ color: var(--text-secondary);
4550
+ opacity: 1;
4250
4551
  }
4251
4552
  .tool-use-card.collapsed .tool-use-toggle {
4252
4553
  transform: rotate(-90deg);
4253
4554
  }
4254
4555
  .tool-use-body {
4255
- padding: 10px 12px;
4256
- background: var(--bg-elevated);
4257
- border-top: 1px solid var(--border-subtle);
4556
+ padding: 12px 14px;
4557
+ background: rgba(255, 253, 248, 0.65);
4558
+ border-top: 1px solid rgba(125, 91, 57, 0.08);
4258
4559
  max-height: 600px;
4259
4560
  overflow: hidden;
4260
4561
  transition: max-height 0.35s var(--ease-out-expo), padding 0.35s var(--ease-out-expo), opacity 0.25s ease, transform 0.35s var(--ease-out-expo);
@@ -4277,12 +4578,12 @@
4277
4578
  overflow-wrap: break-word;
4278
4579
  max-height: 400px;
4279
4580
  overflow-y: auto;
4280
- line-height: 1.5;
4581
+ line-height: 1.55;
4281
4582
  }
4282
4583
  .tool-use-result {
4283
- margin-top: 8px;
4284
- padding-top: 8px;
4285
- border-top: 1px dashed var(--border-subtle);
4584
+ margin-top: 10px;
4585
+ padding-top: 10px;
4586
+ border-top: 1px dashed rgba(125, 91, 57, 0.14);
4286
4587
  }
4287
4588
  .tool-use-result-content {
4288
4589
  margin: 0;
@@ -4291,9 +4592,12 @@
4291
4592
  color: var(--text-secondary);
4292
4593
  white-space: pre-wrap;
4293
4594
  overflow-wrap: break-word;
4294
- max-height: 300px;
4595
+ max-height: 320px;
4295
4596
  overflow-y: auto;
4296
- line-height: 1.5;
4597
+ line-height: 1.55;
4598
+ background: rgba(125, 91, 57, 0.035);
4599
+ border-radius: var(--radius-xs);
4600
+ padding: 8px 10px;
4297
4601
  }
4298
4602
  .tool-use-result-empty {
4299
4603
  font-size: 0.75rem;
@@ -4304,12 +4608,13 @@
4304
4608
  font-size: 0.75rem;
4305
4609
  color: var(--text-muted);
4306
4610
  font-family: var(--font-mono);
4307
- margin-bottom: 6px;
4308
- padding-bottom: 6px;
4309
- border-bottom: 1px dashed var(--border-subtle);
4611
+ margin-bottom: 8px;
4612
+ padding-bottom: 8px;
4613
+ border-bottom: 1px dashed rgba(125, 91, 57, 0.14);
4310
4614
  }
4311
4615
  .tool-use-meta-label {
4312
4616
  color: var(--text-secondary);
4617
+ font-weight: 600;
4313
4618
  }
4314
4619
  /* AskUserQuestion - simplified */
4315
4620
  .tool-use-card.ask-user {
@@ -4361,7 +4666,17 @@
4361
4666
  }
4362
4667
  .ask-user-option.selected {
4363
4668
  border-color: var(--accent);
4364
- background: rgba(197, 101, 61, 0.08);
4669
+ background: rgba(197, 101, 61, 0.18);
4670
+ box-shadow: 0 0 0 1px rgba(197, 101, 61, 0.35) inset;
4671
+ }
4672
+ /* 已应答状态的卡片用顶部彩色边条标识,避免只靠 opacity 让"已答"和"未答"区分模糊 */
4673
+ .tool-use-card.ask-user.ask-user-answered {
4674
+ border-top: 2px solid var(--success, #4caf50);
4675
+ }
4676
+ /* 已应答的选项中"用户选过的那个"高亮 */
4677
+ .ask-user-option.ask-user-option-chosen {
4678
+ background: rgba(197, 101, 61, 0.16);
4679
+ border-color: var(--accent);
4365
4680
  }
4366
4681
  /* Radio / Checkbox indicator */
4367
4682
  .ask-user-indicator {
@@ -4589,100 +4904,184 @@
4589
4904
  }
4590
4905
 
4591
4906
  /* ── Tool Group (连续同类调用折叠) ── */
4907
+ /* ──────────────────────────────────────────────────────────────
4908
+ Tool Group — collapsible cluster of consecutive read-only tools
4909
+ Cream card with brand-tinted status chip, count pill, smooth body.
4910
+ ────────────────────────────────────────────────────────────── */
4592
4911
  .tool-group {
4593
- margin: 2px 0;
4594
- border-radius: 6px;
4595
- border: 1px solid var(--border-subtle, rgba(127,127,127,0.1));
4912
+ margin: 4px 0;
4913
+ border-radius: var(--radius-sm);
4914
+ border: 1px solid var(--border-subtle);
4915
+ background: linear-gradient(180deg, rgba(255, 251, 245, 0.85) 0%, rgba(255, 248, 238, 0.7) 100%);
4916
+ box-shadow: 0 1px 2px rgba(89, 58, 32, 0.03);
4596
4917
  overflow: hidden;
4918
+ transition: border-color 0.18s ease, box-shadow 0.22s ease, transform 0.22s ease;
4919
+ }
4920
+ .tool-group:hover {
4921
+ border-color: rgba(125, 91, 57, 0.18);
4922
+ box-shadow: 0 2px 8px rgba(89, 58, 32, 0.06);
4923
+ }
4924
+ .tool-group[data-status="pending"] {
4925
+ border-color: rgba(169, 106, 47, 0.22);
4926
+ background: linear-gradient(180deg, rgba(255, 244, 226, 0.85) 0%, rgba(255, 241, 218, 0.7) 100%);
4927
+ }
4928
+ .tool-group[data-status="error"] {
4929
+ border-color: rgba(178, 79, 69, 0.28);
4930
+ background: linear-gradient(180deg, rgba(252, 240, 238, 0.85) 0%, rgba(252, 236, 234, 0.7) 100%);
4597
4931
  }
4598
4932
  .tool-group-summary {
4599
4933
  display: flex;
4600
4934
  align-items: center;
4601
- gap: 6px;
4602
- padding: 5px 10px;
4935
+ gap: 9px;
4936
+ padding: 8px 12px;
4603
4937
  cursor: pointer;
4604
4938
  font-size: 0.75rem;
4605
4939
  color: var(--text-secondary);
4606
4940
  user-select: none;
4607
- transition: background var(--transition-fast);
4941
+ transition: background 0.18s ease;
4608
4942
  }
4609
4943
  .tool-group-summary:hover {
4610
- background: var(--bg-hover, rgba(127,127,127,0.06));
4944
+ background: rgba(197, 101, 61, 0.04);
4611
4945
  }
4612
4946
  .tool-group-status {
4947
+ display: inline-flex;
4948
+ align-items: center;
4949
+ justify-content: center;
4950
+ width: 18px;
4951
+ height: 18px;
4952
+ border-radius: 50%;
4613
4953
  font-size: 0.6875rem;
4954
+ font-weight: 700;
4955
+ line-height: 1;
4614
4956
  flex-shrink: 0;
4615
- width: 14px;
4616
- text-align: center;
4957
+ letter-spacing: 0;
4958
+ }
4959
+ .tool-group[data-status="done"] .tool-group-status {
4960
+ background: var(--success-muted);
4961
+ color: var(--success);
4962
+ }
4963
+ .tool-group[data-status="error"] .tool-group-status {
4964
+ background: var(--danger-muted);
4965
+ color: var(--danger);
4966
+ }
4967
+ .tool-group[data-status="pending"] .tool-group-status {
4968
+ background: var(--warning-muted);
4969
+ color: var(--warning);
4970
+ animation: tool-group-pulse 1.6s ease-in-out infinite;
4971
+ }
4972
+ @keyframes tool-group-pulse {
4973
+ 0%, 100% { opacity: 1; }
4974
+ 50% { opacity: 0.55; }
4617
4975
  }
4618
- .tool-group[data-status="done"] .tool-group-status { color: var(--success, #22c55e); }
4619
- .tool-group[data-status="error"] .tool-group-status { color: var(--error, #ef4444); }
4620
- .tool-group[data-status="pending"] .tool-group-status { color: var(--text-muted); }
4621
4976
  .tool-group-text {
4622
4977
  flex: 1;
4623
4978
  min-width: 0;
4624
4979
  overflow: hidden;
4625
4980
  text-overflow: ellipsis;
4626
4981
  white-space: nowrap;
4982
+ font-weight: 500;
4983
+ color: var(--text-primary);
4984
+ letter-spacing: -0.005em;
4627
4985
  }
4628
4986
  .tool-group-count {
4629
4987
  flex-shrink: 0;
4630
- font-size: 0.625rem;
4631
- color: var(--text-muted);
4988
+ font-size: 0.6875rem;
4989
+ color: var(--text-tertiary);
4990
+ padding: 2px 8px;
4991
+ border-radius: var(--radius-full);
4992
+ background: rgba(125, 91, 57, 0.07);
4993
+ font-variant-numeric: tabular-nums;
4632
4994
  }
4633
4995
  .tool-group-chevron {
4634
4996
  flex-shrink: 0;
4635
- transition: transform 0.2s ease;
4997
+ transition: transform 0.25s var(--ease-out-expo);
4636
4998
  color: var(--text-muted);
4999
+ opacity: 0.6;
5000
+ }
5001
+ .tool-group:hover .tool-group-chevron {
5002
+ opacity: 1;
4637
5003
  }
4638
5004
  .tool-group[data-expanded="true"] .tool-group-chevron {
4639
5005
  transform: rotate(180deg);
4640
5006
  }
4641
5007
  .tool-group-body {
4642
5008
  display: none;
4643
- padding: 2px 6px 4px;
4644
- border-top: 1px solid var(--border-subtle, rgba(127,127,127,0.08));
5009
+ padding: 4px 8px 8px 18px;
5010
+ border-top: 1px solid rgba(125, 91, 57, 0.06);
5011
+ border-left: 2px solid rgba(125, 91, 57, 0.08);
5012
+ background: rgba(255, 253, 248, 0.55);
5013
+ }
5014
+ /* 同一 tool-group 内多条 inline-tool 视觉收紧 + 左缩进,强化"嵌套" */
5015
+ .tool-group-body > .inline-tool {
5016
+ margin: 0;
5017
+ }
5018
+ .tool-group-body > .inline-tool + .inline-tool {
5019
+ border-top: 1px dashed rgba(125, 91, 57, 0.06);
4645
5020
  }
4646
5021
  .tool-group[data-expanded="true"] .tool-group-body {
4647
5022
  display: block;
5023
+ animation: tool-group-reveal 0.22s var(--ease-out-expo);
5024
+ }
5025
+ @keyframes tool-group-reveal {
5026
+ from { opacity: 0; transform: translateY(-2px); }
5027
+ to { opacity: 1; transform: translateY(0); }
4648
5028
  }
4649
5029
 
4650
- /* ── Inline Tool Display (Read, Glob, Grep, WebFetch, WebSearch, TodoRead) ── */
5030
+ /* ──────────────────────────────────────────────────────────────
5031
+ Inline Tool — single read-only row (Read / Glob / Grep / Web*)
5032
+ Clean two-column layout: icon + title | meta. Hover lifts subtly.
5033
+ ────────────────────────────────────────────────────────────── */
4651
5034
  .inline-tool {
4652
5035
  display: flex;
4653
5036
  flex-direction: column;
4654
5037
  margin: 1px 0;
4655
- border-radius: 6px;
5038
+ border-radius: var(--radius-xs);
4656
5039
  cursor: pointer;
4657
- transition: background var(--transition-fast);
5040
+ transition: background 0.16s ease;
4658
5041
  }
4659
5042
  .inline-tool-row {
4660
5043
  display: flex;
4661
5044
  align-items: center;
4662
- gap: 5px;
4663
- padding: 2px 6px;
4664
- font-size: 0.6875rem;
4665
- color: var(--text-muted);
5045
+ gap: 8px;
5046
+ padding: 5px 10px;
5047
+ font-size: 0.75rem;
5048
+ color: var(--text-secondary);
4666
5049
  font-family: var(--font-mono);
4667
- line-height: 1.4;
4668
- opacity: 0.7;
5050
+ line-height: 1.45;
5051
+ border-radius: var(--radius-xs);
5052
+ transition: background 0.16s ease, color 0.16s ease;
4669
5053
  }
4670
5054
  .inline-tool:hover .inline-tool-row {
4671
- opacity: 1;
4672
- background: rgba(0, 0, 0, 0.02);
4673
- border-radius: 6px;
5055
+ background: rgba(197, 101, 61, 0.06);
5056
+ color: var(--text-primary);
4674
5057
  }
4675
5058
  .inline-tool-status {
4676
- font-size: 0.625rem;
5059
+ display: inline-flex;
5060
+ align-items: center;
5061
+ justify-content: center;
5062
+ width: 14px;
5063
+ height: 14px;
4677
5064
  flex-shrink: 0;
5065
+ font-size: 0.6875rem;
5066
+ font-weight: 700;
5067
+ color: var(--success);
5068
+ line-height: 1;
5069
+ }
5070
+ .inline-tool[data-status="pending"] .inline-tool-status {
5071
+ color: var(--warning);
5072
+ }
5073
+ .inline-tool[data-status="error"] .inline-tool-status,
5074
+ .inline-tool-error-inline .inline-tool-status {
5075
+ color: var(--danger);
4678
5076
  }
4679
5077
  .inline-tool-icon {
4680
5078
  flex-shrink: 0;
4681
- color: var(--text-muted);
4682
- margin: 0 1px;
4683
- opacity: 0.6;
4684
- width: 12px;
4685
- height: 12px;
5079
+ color: var(--text-tertiary);
5080
+ opacity: 0.85;
5081
+ }
5082
+ .inline-tool:hover .inline-tool-icon {
5083
+ color: var(--accent);
5084
+ opacity: 1;
4686
5085
  }
4687
5086
  .inline-tool-title {
4688
5087
  flex: 1;
@@ -4690,70 +5089,94 @@
4690
5089
  overflow: hidden;
4691
5090
  text-overflow: ellipsis;
4692
5091
  white-space: nowrap;
4693
- color: var(--text-muted);
5092
+ color: var(--text-secondary);
5093
+ font-size: 0.75rem;
5094
+ }
5095
+ .inline-tool:hover .inline-tool-title {
5096
+ color: var(--text-primary);
4694
5097
  }
4695
5098
  .inline-tool-meta {
4696
5099
  flex-shrink: 0;
4697
- font-size: 0.625rem;
4698
- color: var(--text-muted);
4699
- opacity: 0.5;
4700
- max-width: 200px;
5100
+ font-size: 0.6875rem;
5101
+ color: var(--text-muted);
5102
+ max-width: 220px;
4701
5103
  overflow: hidden;
4702
5104
  text-overflow: ellipsis;
4703
5105
  white-space: nowrap;
5106
+ font-variant-numeric: tabular-nums;
5107
+ letter-spacing: -0.01em;
4704
5108
  }
4705
5109
  .inline-tool-expanded {
4706
5110
  display: none;
4707
- padding: 0 8px 6px 8px;
5111
+ padding: 0 10px 8px 10px;
4708
5112
  }
4709
5113
  .inline-tool-open .inline-tool-expanded {
4710
5114
  display: block;
5115
+ animation: tool-group-reveal 0.2s var(--ease-out-expo);
4711
5116
  }
4712
5117
  .inline-tool-result {
4713
- background: rgba(0, 0, 0, 0.03);
4714
- border-radius: var(--radius-sm);
4715
- padding: 8px;
4716
- margin-top: 4px;
4717
- max-height: 300px;
5118
+ background: rgba(125, 91, 57, 0.04);
5119
+ border: 1px solid rgba(125, 91, 57, 0.07);
5120
+ border-radius: var(--radius-xs);
5121
+ padding: 10px 12px;
5122
+ margin-top: 6px;
5123
+ max-height: 320px;
4718
5124
  overflow-y: auto;
4719
5125
  scrollbar-width: thin;
4720
- scrollbar-color: rgba(0, 0, 0, 0.15) transparent;
5126
+ scrollbar-color: rgba(125, 91, 57, 0.2) transparent;
4721
5127
  }
4722
5128
  .inline-tool-result::-webkit-scrollbar {
4723
- width: 4px;
5129
+ width: 6px;
4724
5130
  }
4725
5131
  .inline-tool-result::-webkit-scrollbar-thumb {
4726
- background: rgba(0, 0, 0, 0.15);
4727
- border-radius: 2px;
5132
+ background: rgba(125, 91, 57, 0.2);
5133
+ border-radius: 3px;
5134
+ }
5135
+ .inline-tool-result::-webkit-scrollbar-thumb:hover {
5136
+ background: rgba(125, 91, 57, 0.32);
4728
5137
  }
4729
5138
  .inline-tool-result-text {
4730
5139
  font-family: var(--font-mono);
4731
5140
  font-size: 0.75rem;
4732
- line-height: 1.5;
5141
+ line-height: 1.55;
4733
5142
  color: var(--text-secondary);
4734
5143
  white-space: pre-wrap;
4735
5144
  word-break: break-all;
4736
5145
  margin: 0;
4737
- max-height: 300px;
4738
- overflow-y: auto;
4739
5146
  }
4740
5147
  .inline-tool-error-inline {
4741
- border-left: 2px solid rgba(178, 79, 69, 0.4);
5148
+ border-left: 2px solid var(--danger);
5149
+ padding-left: 2px;
5150
+ margin-left: -2px;
4742
5151
  }
4743
5152
  .inline-tool-error-inline .inline-tool-row {
4744
- color: rgba(178, 79, 69, 0.7);
5153
+ color: var(--danger);
4745
5154
  }
4746
5155
  .inline-tool-result.inline-tool-error {
4747
- color: rgba(178, 79, 69, 0.8);
5156
+ color: var(--danger);
4748
5157
  font-family: var(--font-mono);
4749
5158
  font-size: 0.75rem;
4750
- background: rgba(178, 79, 69, 0.05);
5159
+ background: var(--danger-muted);
5160
+ border-color: rgba(178, 79, 69, 0.18);
4751
5161
  }
4752
5162
  .inline-tool-loading {
4753
5163
  font-size: 0.75rem;
4754
- color: var(--text-muted);
5164
+ color: var(--warning);
4755
5165
  font-style: italic;
4756
- padding: 4px 0;
5166
+ padding: 6px 0;
5167
+ display: inline-flex;
5168
+ align-items: center;
5169
+ gap: 6px;
5170
+ }
5171
+ .inline-tool-loading::before {
5172
+ content: "";
5173
+ display: inline-block;
5174
+ width: 10px;
5175
+ height: 10px;
5176
+ border: 1.5px solid var(--warning-muted);
5177
+ border-top-color: var(--warning);
5178
+ border-radius: 50%;
5179
+ animation: tool-content-spin 0.7s linear infinite;
4757
5180
  }
4758
5181
  .inline-tool-empty {
4759
5182
  font-size: 0.75rem;
@@ -4793,133 +5216,207 @@
4793
5216
  text-decoration: underline;
4794
5217
  }
4795
5218
 
4796
- /* ── Inline Terminal Display (Bash) ── */
5219
+ /* ──────────────────────────────────────────────────────────────
5220
+ Inline Terminal — Bash card with a real terminal-window look.
5221
+ macOS-style traffic lights, gradient titlebar, monospaced body.
5222
+ ────────────────────────────────────────────────────────────── */
4797
5223
  .inline-terminal {
4798
- margin: 3px 0;
4799
- border: 1px solid rgba(255, 255, 255, 0.06);
4800
- border-radius: 8px;
4801
- background: #1a1714;
5224
+ margin: 4px 0;
5225
+ border: 1px solid rgba(15, 12, 9, 0.6);
5226
+ border-radius: var(--radius-sm);
5227
+ background: #1f1b17;
5228
+ box-shadow:
5229
+ 0 1px 0 rgba(255, 255, 255, 0.04) inset,
5230
+ 0 2px 12px rgba(15, 12, 9, 0.18);
4802
5231
  overflow: hidden;
5232
+ transition: box-shadow 0.22s ease, transform 0.22s ease, border-color 0.22s ease;
5233
+ }
5234
+ .inline-terminal:hover {
5235
+ box-shadow:
5236
+ 0 1px 0 rgba(255, 255, 255, 0.05) inset,
5237
+ 0 4px 18px rgba(15, 12, 9, 0.24);
5238
+ border-color: rgba(255, 255, 255, 0.1);
4803
5239
  }
4804
5240
  .term-header {
4805
5241
  display: flex;
4806
5242
  align-items: center;
4807
- gap: 6px;
4808
- padding: 5px 10px;
4809
- background: rgba(255, 255, 255, 0.03);
5243
+ gap: 10px;
5244
+ padding: 8px 14px;
5245
+ background:
5246
+ linear-gradient(180deg, rgba(255, 255, 255, 0.04) 0%, rgba(255, 255, 255, 0.015) 100%),
5247
+ rgba(0, 0, 0, 0.18);
5248
+ border-bottom: 1px solid rgba(255, 255, 255, 0.04);
4810
5249
  font-size: 0.75rem;
4811
5250
  cursor: pointer;
4812
5251
  user-select: none;
5252
+ position: relative;
4813
5253
  }
4814
5254
  .term-header:hover {
4815
- background: rgba(255, 255, 255, 0.05);
5255
+ background:
5256
+ linear-gradient(180deg, rgba(255, 255, 255, 0.06) 0%, rgba(255, 255, 255, 0.025) 100%),
5257
+ rgba(0, 0, 0, 0.18);
4816
5258
  }
4817
5259
  .term-status-dot {
4818
- width: 6px;
4819
- height: 6px;
5260
+ width: 9px;
5261
+ height: 9px;
4820
5262
  border-radius: 50%;
4821
5263
  flex-shrink: 0;
5264
+ box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.25) inset;
5265
+ }
5266
+ .term-status-dot.term-success {
5267
+ background: radial-gradient(circle at 35% 30%, #b6f0c4 0%, #6ee09a 50%, #3aa765 100%);
5268
+ box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.25) inset, 0 0 6px rgba(110, 224, 154, 0.35);
5269
+ }
5270
+ .term-status-dot.term-error {
5271
+ background: radial-gradient(circle at 35% 30%, #ffb5b9 0%, #f07178 50%, #b53b41 100%);
5272
+ box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.25) inset, 0 0 6px rgba(240, 113, 120, 0.35);
5273
+ }
5274
+ .term-status-dot.term-warn {
5275
+ background: radial-gradient(circle at 35% 30%, #ffd07a 0%, #f0a500 50%, #ad7400 100%);
5276
+ box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.25) inset, 0 0 6px rgba(240, 165, 0, 0.35);
5277
+ }
5278
+ .term-status-dot.term-running {
5279
+ background: radial-gradient(circle at 35% 30%, #d1d5db 0%, #9ca3af 50%, #4b5563 100%);
5280
+ animation: term-pulse 1s ease-in-out infinite;
4822
5281
  }
4823
- .term-status-dot.term-success { background: #6ee09a; }
4824
- .term-status-dot.term-error { background: #f07178; }
4825
- .term-status-dot.term-warn { background: #f0a500; }
4826
- .term-status-dot.term-running { background: #6b7280; animation: term-pulse 1s ease-in-out infinite; }
4827
5282
  @keyframes term-pulse {
4828
- 0%, 100% { opacity: 1; }
4829
- 50% { opacity: 0.4; }
5283
+ 0%, 100% { opacity: 1; box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.25) inset, 0 0 0 rgba(156, 163, 175, 0); }
5284
+ 50% { opacity: 0.55; box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.25) inset, 0 0 8px rgba(156, 163, 175, 0.35); }
4830
5285
  }
4831
5286
  .term-cmd-preview {
4832
5287
  flex: 1;
4833
5288
  min-width: 0;
4834
5289
  font-family: var(--font-mono);
4835
- font-size: 0.6875rem;
4836
- color: rgba(255, 255, 255, 0.45);
5290
+ font-size: 0.75rem;
5291
+ color: rgba(232, 220, 200, 0.78);
4837
5292
  overflow: hidden;
4838
5293
  text-overflow: ellipsis;
4839
5294
  white-space: nowrap;
5295
+ letter-spacing: -0.005em;
4840
5296
  }
4841
5297
  .term-cmd-preview .term-prompt {
4842
- color: rgba(110, 224, 154, 0.6);
4843
- font-weight: 500;
4844
- margin-right: 4px;
4845
- font-size: 0.6875rem;
5298
+ color: #6ee09a;
5299
+ font-weight: 600;
5300
+ margin-right: 6px;
5301
+ font-size: 0.75rem;
5302
+ opacity: 0.9;
4846
5303
  }
4847
5304
  .term-title {
4848
5305
  flex: 1;
4849
5306
  font-family: var(--font-mono);
4850
5307
  font-size: 0.75rem;
4851
- color: rgba(255, 255, 255, 0.3);
5308
+ color: rgba(255, 255, 255, 0.4);
4852
5309
  }
4853
5310
  .term-toggle-icon {
4854
- font-size: 0.5rem;
4855
- color: rgba(255, 255, 255, 0.25);
4856
- transition: transform var(--transition-fast);
5311
+ font-size: 0.625rem;
5312
+ color: rgba(255, 255, 255, 0.35);
5313
+ transition: color 0.18s ease;
5314
+ flex-shrink: 0;
5315
+ }
5316
+ .term-header:hover .term-toggle-icon {
5317
+ color: rgba(255, 255, 255, 0.65);
4857
5318
  }
4858
5319
  .term-body {
4859
- padding: 8px 10px;
5320
+ padding: 12px 14px 14px;
5321
+ background:
5322
+ linear-gradient(180deg, rgba(0, 0, 0, 0.18) 0%, rgba(0, 0, 0, 0) 24px),
5323
+ #1f1b17;
4860
5324
  }
4861
5325
  .term-command {
4862
5326
  font-family: var(--font-mono);
4863
5327
  font-size: 0.8125rem;
4864
- color: #e8dcc8;
4865
- line-height: 1.5;
4866
- margin-bottom: 4px;
5328
+ color: #f4e9d4;
5329
+ line-height: 1.55;
5330
+ margin-bottom: 6px;
5331
+ white-space: pre-wrap;
5332
+ word-break: break-all;
4867
5333
  }
4868
5334
  .term-prompt {
4869
5335
  color: #6ee09a;
4870
5336
  font-weight: 600;
4871
- margin-right: 4px;
5337
+ margin-right: 6px;
5338
+ text-shadow: 0 0 6px rgba(110, 224, 154, 0.25);
4872
5339
  }
4873
5340
  .term-output {
4874
- margin-top: 4px;
4875
- padding-top: 4px;
4876
- border-top: 1px solid rgba(255, 255, 255, 0.05);
5341
+ margin-top: 8px;
5342
+ padding-top: 8px;
5343
+ border-top: 1px dashed rgba(255, 255, 255, 0.06);
5344
+ max-height: 360px;
5345
+ overflow-y: auto;
5346
+ scrollbar-width: thin;
5347
+ scrollbar-color: rgba(255, 255, 255, 0.15) transparent;
5348
+ }
5349
+ .term-output::-webkit-scrollbar {
5350
+ width: 6px;
5351
+ }
5352
+ .term-output::-webkit-scrollbar-thumb {
5353
+ background: rgba(255, 255, 255, 0.15);
5354
+ border-radius: 3px;
5355
+ }
5356
+ .term-output::-webkit-scrollbar-thumb:hover {
5357
+ background: rgba(255, 255, 255, 0.25);
4877
5358
  }
4878
5359
  .term-line {
4879
5360
  font-family: var(--font-mono);
4880
5361
  font-size: 0.8125rem;
4881
- color: #c8b89a;
4882
- line-height: 1.6;
5362
+ color: #d4c2a3;
5363
+ line-height: 1.55;
4883
5364
  white-space: pre-wrap;
4884
5365
  word-break: break-all;
4885
5366
  }
4886
5367
  .term-exit {
4887
- margin-top: 6px;
4888
- padding-top: 4px;
4889
- border-top: 1px solid rgba(255, 255, 255, 0.05);
5368
+ margin-top: 10px;
5369
+ padding-top: 8px;
5370
+ border-top: 1px dashed rgba(255, 255, 255, 0.06);
4890
5371
  font-family: var(--font-mono);
4891
- font-size: 0.7rem;
5372
+ font-size: 0.6875rem;
4892
5373
  line-height: 1.5;
5374
+ letter-spacing: 0.04em;
4893
5375
  }
4894
- .term-exit-success { color: rgba(110, 224, 154, 0.7); }
4895
- .term-exit-error { color: rgba(240, 113, 120, 0.7); }
5376
+ .term-exit-success { color: rgba(110, 224, 154, 0.75); }
5377
+ .term-exit-error { color: rgba(240, 113, 120, 0.78); }
4896
5378
 
4897
- /* ── Inline Diff Display (Edit, Write, MultiEdit) ── */
5379
+ /* ──────────────────────────────────────────────────────────────
5380
+ Inline Diff — Edit / Write / MultiEdit
5381
+ Card with clearly-labelled "旧 | 新" columns and status pill.
5382
+ ────────────────────────────────────────────────────────────── */
4898
5383
  .inline-diff {
4899
- margin: 3px 0;
4900
- border: 1px solid rgba(0, 0, 0, 0.06);
4901
- border-radius: 8px;
5384
+ margin: 4px 0;
5385
+ border: 1px solid var(--border-subtle);
5386
+ border-radius: var(--radius-sm);
4902
5387
  overflow: hidden;
4903
- background: var(--bg-secondary);
5388
+ background: linear-gradient(180deg, rgba(255, 251, 245, 0.88) 0%, rgba(255, 246, 234, 0.72) 100%);
5389
+ box-shadow: 0 1px 2px rgba(89, 58, 32, 0.04);
5390
+ transition: border-color 0.22s ease, box-shadow 0.22s ease;
5391
+ }
5392
+ .inline-diff:hover {
5393
+ border-color: rgba(125, 91, 57, 0.22);
5394
+ box-shadow: 0 3px 12px rgba(89, 58, 32, 0.06);
4904
5395
  }
4905
5396
  .diff-header {
4906
5397
  display: flex;
4907
5398
  align-items: center;
4908
- gap: 6px;
4909
- padding: 6px 10px;
4910
- background: rgba(0, 0, 0, 0.03);
4911
- font-size: 0.75rem;
5399
+ gap: 10px;
5400
+ padding: 8px 14px;
5401
+ background: transparent;
5402
+ font-size: 0.8125rem;
4912
5403
  cursor: pointer;
5404
+ transition: background 0.18s ease;
4913
5405
  }
4914
5406
  .diff-header:hover {
4915
- background: rgba(0, 0, 0, 0.05);
5407
+ background: rgba(197, 101, 61, 0.04);
4916
5408
  }
4917
5409
  .diff-toggle {
4918
5410
  font-size: 0.625rem;
4919
5411
  color: var(--text-muted);
4920
- transition: transform 0.3s var(--ease-spring);
5412
+ transition: transform 0.3s var(--ease-spring), color 0.18s ease;
4921
5413
  flex-shrink: 0;
4922
5414
  margin-left: auto;
5415
+ opacity: 0.6;
5416
+ }
5417
+ .inline-diff:hover .diff-toggle {
5418
+ color: var(--text-secondary);
5419
+ opacity: 1;
4923
5420
  }
4924
5421
  .inline-diff.collapsed .diff-toggle {
4925
5422
  transform: rotate(-90deg);
@@ -4935,49 +5432,56 @@
4935
5432
  }
4936
5433
  .diff-file-name {
4937
5434
  font-family: var(--font-mono);
4938
- font-weight: 600;
5435
+ font-weight: 700;
4939
5436
  color: var(--text-primary);
4940
5437
  flex-shrink: 0;
5438
+ font-size: 0.8125rem;
5439
+ letter-spacing: -0.005em;
4941
5440
  }
4942
5441
  .diff-path {
4943
5442
  font-family: var(--font-mono);
4944
- color: var(--text-muted);
5443
+ color: var(--text-tertiary);
4945
5444
  flex: 1;
4946
5445
  min-width: 0;
4947
5446
  overflow: hidden;
4948
5447
  text-overflow: ellipsis;
4949
5448
  white-space: nowrap;
4950
- font-size: 0.7rem;
5449
+ font-size: 0.6875rem;
4951
5450
  }
4952
5451
  .diff-status {
4953
5452
  flex-shrink: 0;
4954
- font-size: 0.7rem;
4955
- padding: 2px 8px;
4956
- border-radius: 3px;
5453
+ font-size: 0.6875rem;
5454
+ font-weight: 600;
5455
+ padding: 3px 10px;
5456
+ border-radius: var(--radius-full);
5457
+ letter-spacing: 0.01em;
4957
5458
  }
4958
5459
  .diff-status.diff-success {
4959
- background: rgba(79, 122, 88, 0.12);
5460
+ background: var(--success-muted);
4960
5461
  color: var(--success);
4961
5462
  }
4962
5463
  .diff-status.diff-error {
4963
- background: rgba(178, 79, 69, 0.12);
5464
+ background: var(--danger-muted);
4964
5465
  color: var(--danger);
4965
5466
  }
4966
5467
  .diff-status.diff-pending {
4967
- background: rgba(0, 0, 0, 0.06);
4968
- color: var(--text-muted);
5468
+ background: var(--warning-muted);
5469
+ color: var(--warning);
4969
5470
  }
4970
5471
  .diff-body {
4971
5472
  overflow: hidden;
5473
+ border-top: 1px solid rgba(125, 91, 57, 0.08);
5474
+ background: rgba(255, 253, 248, 0.65);
4972
5475
  }
4973
5476
  .diff-columns {
4974
5477
  display: flex;
4975
5478
  gap: 1px;
4976
- background: rgba(0, 0, 0, 0.04);
5479
+ background: rgba(125, 91, 57, 0.08);
4977
5480
  }
4978
5481
  .diff-col {
4979
5482
  flex: 1;
4980
5483
  min-width: 0;
5484
+ background: rgba(255, 253, 248, 0.85);
4981
5485
  }
4982
5486
  .diff-col-half {
4983
5487
  flex: 1;
@@ -4988,30 +5492,32 @@
4988
5492
  }
4989
5493
  .diff-col-label {
4990
5494
  font-family: var(--font-mono);
4991
- font-size: 0.65rem;
5495
+ font-size: 0.625rem;
4992
5496
  font-weight: 700;
4993
- padding: 2px 10px;
4994
- color: var(--text-muted);
5497
+ padding: 4px 12px;
5498
+ color: var(--text-tertiary);
4995
5499
  text-transform: uppercase;
4996
- letter-spacing: 0.05em;
4997
- background: rgba(0, 0, 0, 0.02);
4998
- border-bottom: 1px solid rgba(0, 0, 0, 0.05);
5500
+ letter-spacing: 0.08em;
5501
+ background: rgba(125, 91, 57, 0.05);
5502
+ border-bottom: 1px solid rgba(125, 91, 57, 0.08);
4999
5503
  }
5000
5504
  .diff-line {
5001
- padding: 2px 10px;
5505
+ padding: 3px 12px;
5002
5506
  font-family: var(--font-mono);
5003
5507
  font-size: 0.75rem;
5004
- line-height: 1.5;
5508
+ line-height: 1.55;
5005
5509
  white-space: pre-wrap;
5006
5510
  word-break: break-all;
5007
5511
  }
5008
5512
  .diff-add {
5009
- background: rgba(40, 167, 69, 0.08);
5010
- color: #155724;
5513
+ background: rgba(79, 122, 88, 0.08);
5514
+ color: #2c5535;
5515
+ border-left: 2px solid rgba(79, 122, 88, 0.5);
5011
5516
  }
5012
5517
  .diff-remove {
5013
5518
  background: rgba(178, 79, 69, 0.06);
5014
- color: #792620;
5519
+ color: #7c2a23;
5520
+ border-left: 2px solid rgba(178, 79, 69, 0.45);
5015
5521
  }
5016
5522
 
5017
5523
  /* 旧版卡片式思考(保留作为 fallback) */
@@ -5520,17 +6026,33 @@
5520
6026
 
5521
6027
  /* Queued message in chat view */
5522
6028
  .chat-message.user.queued {
5523
- opacity: 0.6;
6029
+ opacity: 0.7;
6030
+ }
6031
+ .chat-message.user.queued .chat-message-bubble,
6032
+ .chat-message.user.queued .chat-message-content {
6033
+ /* 排队气泡用虚线边框 + 浅浅的阴影,让"未发送"状态有触感 */
6034
+ box-shadow: 0 0 0 1px rgba(197, 101, 61, 0.25) inset;
5524
6035
  }
5525
6036
  .queued-badge {
5526
- display: inline-block;
6037
+ display: inline-flex;
6038
+ align-items: center;
6039
+ gap: 4px;
5527
6040
  font-size: 0.625rem;
5528
6041
  color: var(--accent);
5529
6042
  background: var(--accent-muted);
5530
- padding: 1px 6px;
5531
- border-radius: 8px;
6043
+ padding: 2px 8px;
6044
+ border-radius: 999px;
5532
6045
  font-weight: 600;
5533
- margin-top: 4px;
6046
+ margin-top: 6px;
6047
+ letter-spacing: 0.04em;
6048
+ animation: queuePulse 1.5s ease-in-out infinite;
6049
+ }
6050
+ .queued-badge::before {
6051
+ content: '';
6052
+ width: 6px;
6053
+ height: 6px;
6054
+ border-radius: 50%;
6055
+ background: var(--accent);
5534
6056
  animation: queuePulse 1.5s ease-in-out infinite;
5535
6057
  }
5536
6058
 
@@ -7161,11 +7683,17 @@
7161
7683
  box-shadow: 0 4px 12px rgba(125, 91, 57, 0.08);
7162
7684
  }
7163
7685
  .session-modal .mode-card.active {
7164
- background: linear-gradient(180deg, #fff7ef 0%, #ffeed8 100%);
7165
- border-color: var(--accent);
7686
+ background:
7687
+ linear-gradient(180deg, rgba(255, 252, 247, 0.95) 0%, rgba(255, 240, 224, 0.82) 100%);
7688
+ border: 0.5px solid rgba(255, 255, 255, 0.8);
7689
+ backdrop-filter: blur(16px) saturate(180%);
7690
+ -webkit-backdrop-filter: blur(16px) saturate(180%);
7166
7691
  box-shadow:
7167
- 0 0 0 3px var(--accent-muted),
7168
- 0 4px 12px rgba(197, 101, 61, 0.12);
7692
+ 0 0 0 1px rgba(197, 101, 61, 0.32),
7693
+ 0 0 0 4px rgba(197, 101, 61, 0.14),
7694
+ 0 8px 22px -4px rgba(197, 101, 61, 0.3),
7695
+ inset 0 1px 0 rgba(255, 255, 255, 0.95),
7696
+ inset 0 -1px 0 rgba(197, 101, 61, 0.08);
7169
7697
  transform: none;
7170
7698
  }
7171
7699
  .session-modal .mode-card.active .mode-card-label {
@@ -7190,11 +7718,17 @@
7190
7718
  box-shadow: 0 8px 20px rgba(125, 91, 57, 0.1);
7191
7719
  }
7192
7720
  .session-modal .tool-card.active {
7193
- background: linear-gradient(180deg, #fff8f1 0%, #fff1de 100%);
7194
- border-color: var(--accent);
7721
+ background:
7722
+ linear-gradient(180deg, rgba(255, 252, 247, 0.95) 0%, rgba(255, 240, 224, 0.82) 100%);
7723
+ border: 0.5px solid rgba(255, 255, 255, 0.8);
7724
+ backdrop-filter: blur(16px) saturate(180%);
7725
+ -webkit-backdrop-filter: blur(16px) saturate(180%);
7195
7726
  box-shadow:
7196
- 0 0 0 3px var(--accent-muted),
7197
- 0 6px 16px rgba(197, 101, 61, 0.12);
7727
+ 0 0 0 1px rgba(197, 101, 61, 0.3),
7728
+ 0 0 0 4px rgba(197, 101, 61, 0.14),
7729
+ 0 10px 28px -6px rgba(197, 101, 61, 0.3),
7730
+ inset 0 1px 0 rgba(255, 255, 255, 0.95),
7731
+ inset 0 -1px 0 rgba(197, 101, 61, 0.08);
7198
7732
  transform: none;
7199
7733
  }
7200
7734
 
@@ -7434,12 +7968,19 @@
7434
7968
  transform: none;
7435
7969
  border-color: transparent;
7436
7970
  }
7971
+ /* Settings tab active — liquid glass row with warm halo */
7437
7972
  .settings-modal .settings-tab.active {
7438
- background: linear-gradient(180deg, #fff7ef 0%, #ffeed8 100%);
7973
+ background:
7974
+ linear-gradient(180deg, rgba(255, 252, 247, 0.95) 0%, rgba(255, 244, 232, 0.78) 100%);
7439
7975
  color: var(--accent);
7976
+ backdrop-filter: blur(14px) saturate(180%);
7977
+ -webkit-backdrop-filter: blur(14px) saturate(180%);
7440
7978
  box-shadow:
7441
- inset 0 0 0 1px rgba(197, 101, 61, 0.22),
7442
- 0 1px 3px rgba(197, 101, 61, 0.08);
7979
+ inset 0 0 0 1px rgba(197, 101, 61, 0.25),
7980
+ inset 0 1px 0 rgba(255, 255, 255, 0.9),
7981
+ inset 0 -1px 0 rgba(197, 101, 61, 0.08),
7982
+ 0 4px 14px -4px rgba(197, 101, 61, 0.22),
7983
+ 0 1px 3px rgba(125, 91, 57, 0.06);
7443
7984
  }
7444
7985
  .settings-modal .settings-tab.active .settings-tab-meta {
7445
7986
  color: var(--text-secondary);
@@ -7712,6 +8253,7 @@
7712
8253
  .sidebar-pin-toggle.pinned {
7713
8254
  background: rgba(197, 101, 61, 0.12);
7714
8255
  color: var(--accent);
8256
+ transform: rotate(45deg);
7715
8257
  }
7716
8258
 
7717
8259
  /* Drawer close — same pattern as modal-close (rotate + danger tint) */
@@ -7747,17 +8289,27 @@
7747
8289
  padding: 6px;
7748
8290
  }
7749
8291
  .sidebar-header-overflow .overflow-item {
7750
- border-radius: 8px;
8292
+ border-radius: 9px;
7751
8293
  padding: 9px 10px;
7752
8294
  font-size: 0.8125rem;
7753
8295
  font-weight: 500;
8296
+ transition:
8297
+ background 0.16s ease,
8298
+ color 0.16s ease,
8299
+ box-shadow 0.18s ease,
8300
+ transform 0.18s var(--ease-out-expo);
7754
8301
  }
7755
8302
  .sidebar-header-overflow .overflow-item:hover {
7756
- background: rgba(125, 91, 57, 0.08);
8303
+ background:
8304
+ linear-gradient(180deg, rgba(255, 255, 255, 0.9) 0%, rgba(255, 252, 247, 0.6) 100%);
7757
8305
  color: var(--text-primary);
8306
+ box-shadow:
8307
+ 0 0 0 0.5px rgba(125, 91, 57, 0.08),
8308
+ inset 0 1px 0 rgba(255, 255, 255, 0.85);
7758
8309
  }
7759
8310
  .sidebar-header-overflow .overflow-item:active {
7760
- background: rgba(125, 91, 57, 0.14);
8311
+ background: rgba(197, 101, 61, 0.12);
8312
+ color: var(--accent);
7761
8313
  transform: scale(0.98);
7762
8314
  }
7763
8315
 
@@ -7864,17 +8416,20 @@
7864
8416
 
7865
8417
  /* ── Session item — clean card on glass ── */
7866
8418
  .session-item {
7867
- background: rgba(255, 255, 255, 0.55);
7868
- border: 1px solid rgba(125, 91, 57, 0.08);
7869
- border-radius: 12px;
8419
+ background: linear-gradient(180deg, rgba(255, 255, 255, 0.62) 0%, rgba(255, 252, 247, 0.42) 100%);
8420
+ border: 0.5px solid rgba(255, 255, 255, 0.55);
8421
+ border-radius: 13px;
7870
8422
  padding: 11px 14px;
7871
8423
  margin-bottom: 6px;
7872
- box-shadow: 0 1px 2px rgba(125, 91, 57, 0.03);
8424
+ box-shadow:
8425
+ 0 0 0 0.5px rgba(125, 91, 57, 0.05),
8426
+ 0 1px 2px rgba(125, 91, 57, 0.03),
8427
+ inset 0 1px 0 rgba(255, 255, 255, 0.6);
7873
8428
  transition:
7874
- background 0.18s ease,
7875
- border-color 0.18s ease,
7876
- box-shadow 0.18s ease,
7877
- transform 0.18s ease;
8429
+ background 0.2s ease,
8430
+ border-color 0.2s ease,
8431
+ box-shadow 0.22s ease,
8432
+ transform 0.22s var(--ease-out-expo);
7878
8433
  }
7879
8434
  .session-item::before {
7880
8435
  left: 4px;
@@ -7882,32 +8437,57 @@
7882
8437
  bottom: 10px;
7883
8438
  width: 3px;
7884
8439
  border-radius: 2px;
7885
- background: var(--accent);
8440
+ background: linear-gradient(180deg, var(--accent), rgba(197, 101, 61, 0.5));
7886
8441
  }
7887
8442
  .session-item:hover {
7888
- background: rgba(255, 255, 255, 0.85);
7889
- border-color: rgba(125, 91, 57, 0.16);
8443
+ background: linear-gradient(180deg, rgba(255, 255, 255, 0.85) 0%, rgba(255, 253, 248, 0.62) 100%);
8444
+ border-color: rgba(255, 255, 255, 0.7);
7890
8445
  transform: translateY(-1px);
7891
- box-shadow: 0 4px 12px rgba(125, 91, 57, 0.08);
8446
+ box-shadow:
8447
+ 0 0 0 0.5px rgba(125, 91, 57, 0.08),
8448
+ 0 6px 16px -6px rgba(125, 91, 57, 0.18),
8449
+ inset 0 1px 0 rgba(255, 255, 255, 0.8);
7892
8450
  }
7893
8451
  .session-item:hover::before {
7894
- opacity: 0.45;
8452
+ opacity: 0.5;
7895
8453
  transform: scaleY(1);
7896
8454
  }
8455
+ /* Selected (active) — true liquid glass pill with depth + accent glow */
7897
8456
  .session-item.active {
7898
- background: linear-gradient(180deg, #fff7ef 0%, #fff1de 100%);
7899
- border-color: var(--accent);
8457
+ background:
8458
+ linear-gradient(180deg, rgba(255, 252, 247, 0.92) 0%, rgba(255, 244, 232, 0.78) 100%);
8459
+ border: 0.5px solid rgba(255, 255, 255, 0.85);
8460
+ transform: translateY(-1px);
8461
+ backdrop-filter: blur(20px) saturate(180%);
8462
+ -webkit-backdrop-filter: blur(20px) saturate(180%);
7900
8463
  box-shadow:
7901
- 0 0 0 1px var(--accent-muted),
7902
- 0 4px 14px rgba(197, 101, 61, 0.14);
8464
+ /* outer accent ring (soft) */
8465
+ 0 0 0 1px rgba(197, 101, 61, 0.28),
8466
+ /* warm glow halo */
8467
+ 0 8px 28px -6px rgba(197, 101, 61, 0.32),
8468
+ /* base elevation */
8469
+ 0 2px 6px -1px rgba(125, 91, 57, 0.1),
8470
+ /* top inner highlight — light from above */
8471
+ inset 0 1px 0 rgba(255, 255, 255, 0.95),
8472
+ /* bottom inner shadow — depth at base */
8473
+ inset 0 -1px 0 rgba(197, 101, 61, 0.08),
8474
+ /* left inner glint */
8475
+ inset 1px 0 0 rgba(255, 255, 255, 0.4);
7903
8476
  }
7904
8477
  .session-item.active::before {
7905
8478
  opacity: 1;
7906
8479
  transform: scaleY(1);
8480
+ box-shadow: 0 0 8px rgba(197, 101, 61, 0.5);
7907
8481
  }
8482
+ /* Multi-select state — quieter glass tint, no accent halo */
7908
8483
  .session-item.selected {
7909
- background: linear-gradient(180deg, #fff7ef 0%, #fff3e3 100%);
7910
- border-color: rgba(197, 101, 61, 0.4);
8484
+ background:
8485
+ linear-gradient(180deg, rgba(255, 250, 244, 0.85) 0%, rgba(255, 246, 236, 0.65) 100%);
8486
+ border: 0.5px solid rgba(255, 255, 255, 0.7);
8487
+ box-shadow:
8488
+ 0 0 0 1px rgba(197, 101, 61, 0.18),
8489
+ 0 4px 14px -4px rgba(125, 91, 57, 0.14),
8490
+ inset 0 1px 0 rgba(255, 255, 255, 0.85);
7911
8491
  }
7912
8492
  .session-item.selected::before {
7913
8493
  opacity: 0.7;
@@ -8052,11 +8632,21 @@
8052
8632
  transform: scale(0.96);
8053
8633
  transition-duration: 0.06s;
8054
8634
  }
8635
+ /* Footer tab active — same liquid glass language as .session-item.active */
8055
8636
  .sidebar-footer-actions .btn.active {
8056
- background: linear-gradient(180deg, #fff7ef 0%, #fff1de 100%);
8057
- border-color: rgba(197, 101, 61, 0.32);
8637
+ background:
8638
+ linear-gradient(180deg, rgba(255, 252, 247, 0.95) 0%, rgba(255, 242, 228, 0.78) 100%);
8639
+ border: 0.5px solid rgba(255, 255, 255, 0.85);
8058
8640
  color: var(--accent);
8059
- box-shadow: 0 0 0 1px var(--accent-muted);
8641
+ transform: translateY(-1px);
8642
+ backdrop-filter: blur(16px) saturate(180%);
8643
+ -webkit-backdrop-filter: blur(16px) saturate(180%);
8644
+ box-shadow:
8645
+ 0 0 0 1px rgba(197, 101, 61, 0.28),
8646
+ 0 6px 18px -4px rgba(197, 101, 61, 0.32),
8647
+ 0 2px 4px -1px rgba(125, 91, 57, 0.08),
8648
+ inset 0 1px 0 rgba(255, 255, 255, 0.95),
8649
+ inset 0 -1px 0 rgba(197, 101, 61, 0.08);
8060
8650
  }
8061
8651
  .sidebar-footer-actions .btn.sidebar-logout:hover {
8062
8652
  background: rgba(178, 79, 69, 0.08);
@@ -10059,9 +10649,17 @@
10059
10649
 
10060
10650
  .settings-tab.active {
10061
10651
  color: var(--accent);
10062
- border-color: rgba(197, 101, 61, 0.16);
10063
- background: linear-gradient(135deg, rgba(197, 101, 61, 0.12), rgba(197, 101, 61, 0.05));
10064
- box-shadow: inset 0 0 0 1px rgba(197, 101, 61, 0.08), var(--shadow-xs);
10652
+ border-color: rgba(255, 255, 255, 0.7);
10653
+ background:
10654
+ linear-gradient(180deg, rgba(255, 252, 247, 0.92) 0%, rgba(255, 244, 232, 0.72) 100%);
10655
+ backdrop-filter: blur(14px) saturate(180%);
10656
+ -webkit-backdrop-filter: blur(14px) saturate(180%);
10657
+ box-shadow:
10658
+ inset 0 0 0 1px rgba(197, 101, 61, 0.22),
10659
+ inset 0 1px 0 rgba(255, 255, 255, 0.9),
10660
+ inset 0 -1px 0 rgba(197, 101, 61, 0.06),
10661
+ 0 4px 14px -4px rgba(197, 101, 61, 0.22),
10662
+ 0 1px 3px rgba(125, 91, 57, 0.04);
10065
10663
  }
10066
10664
 
10067
10665
  .settings-tab.active::before {