@co0ontty/wand 1.29.3 → 1.29.6

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,79 @@
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
+ /* Active — liquid glass crown: outer ring + warm halo + crisp top sheen */
590
+ .sidebar-collapsed-tile.active {
591
+ background: linear-gradient(145deg, #d27358 0%, #b35434 50%, #934128 100%);
592
+ transform: translateY(-1px);
593
+ box-shadow:
594
+ /* outer glow halo */
595
+ 0 0 0 1px rgba(255, 255, 255, 0.7),
596
+ 0 0 0 3px rgba(197, 101, 61, 0.32),
597
+ 0 8px 22px -4px rgba(160, 74, 46, 0.55),
598
+ 0 3px 8px -2px rgba(160, 74, 46, 0.32),
599
+ /* top sheen */
600
+ inset 0 1px 0 rgba(255, 255, 255, 0.45),
601
+ inset 1px 0 0 rgba(255, 255, 255, 0.18),
602
+ /* bottom depth */
603
+ inset 0 -1px 0 rgba(0, 0, 0, 0.16);
604
+ }
605
+ .sidebar-collapsed-tile:active {
606
+ transform: translateY(0) scale(0.94);
607
+ transition-duration: 0.08s;
608
+ }
609
+ .sidebar-collapsed-empty {
610
+ color: var(--text-muted, rgba(89, 58, 32, 0.45));
611
+ text-align: center;
612
+ font-size: 16px;
613
+ padding: 12px 0;
614
+ user-select: none;
562
615
  }
563
616
  .sidebar-collapse-toggle {
564
617
  flex-shrink: 0;
@@ -567,9 +620,6 @@
567
620
  .sidebar-collapse-toggle.collapsed {
568
621
  color: var(--primary);
569
622
  }
570
- .sidebar:not(.pinned) .sidebar-collapse-toggle {
571
- display: none;
572
- }
573
623
 
574
624
  /* ===== 图钉按钮 ===== */
575
625
  .sidebar-pin-toggle {
@@ -744,8 +794,19 @@
744
794
  text-overflow: ellipsis;
745
795
  }
746
796
 
747
- .tree-item:hover { background: var(--bg-tertiary); }
748
- .tree-item.active { background: var(--accent-muted); color: var(--accent); }
797
+ .tree-item:hover {
798
+ background: linear-gradient(180deg, rgba(255, 255, 255, 0.7) 0%, rgba(255, 252, 247, 0.4) 100%);
799
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.7);
800
+ }
801
+ .tree-item.active {
802
+ background:
803
+ linear-gradient(180deg, rgba(255, 252, 247, 0.92) 0%, rgba(255, 244, 232, 0.75) 100%);
804
+ color: var(--accent);
805
+ box-shadow:
806
+ 0 0 0 1px rgba(197, 101, 61, 0.22),
807
+ 0 3px 10px -3px rgba(197, 101, 61, 0.25),
808
+ inset 0 1px 0 rgba(255, 255, 255, 0.85);
809
+ }
749
810
 
750
811
  .tree-toggle {
751
812
  flex-shrink: 0;
@@ -3461,6 +3522,10 @@
3461
3522
  color: var(--accent);
3462
3523
  font-weight: 600;
3463
3524
  }
3525
+ .shortcut-key[data-key="shift_tab"] {
3526
+ color: #6a6bb0;
3527
+ font-weight: 600;
3528
+ }
3464
3529
 
3465
3530
  /* Mobile keyboard overlap compensation */
3466
3531
  @media (max-width: 640px) {
@@ -4112,81 +4177,96 @@
4112
4177
  overflow-y: auto;
4113
4178
  }
4114
4179
 
4115
- /* Tool Use Card */
4180
+ /* ──────────────────────────────────────────────────────────────
4181
+ Tool Use Card — generic write/exec tool wrapper
4182
+ Soft cream surface, brand-tinted status states, polished hover.
4183
+ ────────────────────────────────────────────────────────────── */
4116
4184
  .tool-use-card {
4117
- margin: 3px 0;
4185
+ margin: 4px 0;
4118
4186
  border: 1px solid var(--border-subtle);
4119
- border-radius: 8px;
4187
+ border-radius: var(--radius-sm);
4120
4188
  overflow: hidden;
4121
4189
  width: 100%;
4122
4190
  box-sizing: border-box;
4123
- background: var(--bg-secondary);
4124
- transition: all 0.3s var(--ease-out-expo);
4191
+ background: linear-gradient(180deg, rgba(255, 251, 245, 0.88) 0%, rgba(255, 246, 234, 0.72) 100%);
4192
+ box-shadow: 0 1px 2px rgba(89, 58, 32, 0.04);
4193
+ transition: border-color 0.22s ease, box-shadow 0.22s ease, transform 0.22s ease;
4125
4194
  }
4126
4195
  .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);
4196
+ border-color: rgba(79, 122, 88, 0.3);
4197
+ box-shadow: 0 3px 12px rgba(79, 122, 88, 0.08);
4129
4198
  }
4130
4199
  .tool-use-card.loading {
4131
- border-color: rgba(79, 122, 88, 0.4);
4200
+ border-color: rgba(169, 106, 47, 0.3);
4201
+ background: linear-gradient(180deg, rgba(255, 244, 226, 0.88) 0%, rgba(255, 241, 218, 0.72) 100%);
4132
4202
  }
4133
4203
  .tool-use-card.success {
4134
- border-color: rgba(79, 122, 88, 0.5);
4204
+ border-color: rgba(79, 122, 88, 0.32);
4135
4205
  }
4136
4206
  .tool-use-card.error {
4137
- border-color: rgba(178, 79, 69, 0.5);
4207
+ border-color: rgba(178, 79, 69, 0.32);
4208
+ background: linear-gradient(180deg, rgba(252, 240, 238, 0.88) 0%, rgba(252, 235, 233, 0.72) 100%);
4138
4209
  }
4139
4210
  .tool-use-header {
4140
4211
  display: flex;
4141
4212
  align-items: center;
4142
- gap: 8px;
4143
- padding: 8px 12px;
4144
- background: rgba(79, 122, 88, 0.04);
4213
+ gap: 10px;
4214
+ padding: 9px 14px;
4215
+ background: transparent;
4145
4216
  cursor: pointer;
4146
4217
  font-size: 0.8125rem;
4147
4218
  user-select: none;
4148
4219
  -webkit-user-select: none;
4149
4220
  -webkit-tap-highlight-color: transparent;
4150
4221
  touch-action: manipulation;
4151
- transition: all 0.2s var(--ease-out-expo);
4152
- min-height: 36px;
4222
+ transition: background 0.18s ease;
4223
+ min-height: 38px;
4153
4224
  flex-wrap: nowrap;
4154
4225
  }
4155
4226
  .tool-use-header:hover {
4156
- background: rgba(79, 122, 88, 0.1);
4227
+ background: rgba(197, 101, 61, 0.04);
4157
4228
  }
4158
4229
  .tool-use-header:active {
4159
- transform: scale(0.99);
4230
+ background: rgba(197, 101, 61, 0.07);
4160
4231
  }
4161
- .tool-use-card.loading .tool-use-header {
4162
- background: rgba(79, 122, 88, 0.08);
4232
+ .tool-use-card.loading .tool-use-header:hover {
4233
+ background: rgba(169, 106, 47, 0.06);
4163
4234
  }
4164
- .tool-use-card.success .tool-use-header {
4165
- background: rgba(79, 122, 88, 0.12);
4235
+ .tool-use-card.success .tool-use-header:hover {
4236
+ background: rgba(79, 122, 88, 0.06);
4166
4237
  }
4167
- .tool-use-card.error .tool-use-header {
4168
- background: rgba(178, 79, 69, 0.1);
4238
+ .tool-use-card.error .tool-use-header:hover {
4239
+ background: rgba(178, 79, 69, 0.06);
4169
4240
  }
4170
4241
  .tool-use-icon {
4171
4242
  font-size: 0.6875rem;
4172
4243
  font-family: var(--font-mono);
4173
- font-weight: 600;
4244
+ font-weight: 700;
4174
4245
  flex-shrink: 0;
4175
- display: flex;
4246
+ display: inline-flex;
4176
4247
  align-items: center;
4177
4248
  justify-content: center;
4178
- min-width: 18px;
4179
- height: 18px;
4180
- border-radius: 4px;
4181
- background: rgba(79, 122, 88, 0.1);
4249
+ min-width: 22px;
4250
+ height: 22px;
4251
+ border-radius: 6px;
4252
+ background: var(--success-muted);
4182
4253
  color: var(--success);
4254
+ letter-spacing: -0.02em;
4255
+ }
4256
+ .tool-use-card.loading .tool-use-icon {
4257
+ background: var(--warning-muted);
4258
+ color: var(--warning);
4259
+ }
4260
+ .tool-use-card.error .tool-use-icon {
4261
+ background: var(--danger-muted);
4262
+ color: var(--danger);
4183
4263
  }
4184
4264
  .tool-use-spinner {
4185
4265
  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);
4266
+ width: 14px;
4267
+ height: 14px;
4268
+ border: 2px solid var(--warning-muted);
4269
+ border-top-color: var(--warning);
4190
4270
  border-radius: 50%;
4191
4271
  animation: tool-spin 0.8s linear infinite;
4192
4272
  }
@@ -4203,12 +4283,13 @@
4203
4283
  overflow: hidden;
4204
4284
  text-overflow: ellipsis;
4205
4285
  white-space: nowrap;
4286
+ letter-spacing: -0.005em;
4206
4287
  }
4207
4288
  .tool-use-file {
4208
4289
  font-size: 0.75rem;
4209
4290
  font-family: var(--font-mono);
4210
- color: var(--text-muted);
4211
- max-width: 300px;
4291
+ color: var(--text-tertiary);
4292
+ max-width: 320px;
4212
4293
  overflow: hidden;
4213
4294
  text-overflow: ellipsis;
4214
4295
  white-space: nowrap;
@@ -4223,38 +4304,49 @@
4223
4304
  overflow: hidden;
4224
4305
  text-overflow: ellipsis;
4225
4306
  white-space: nowrap;
4226
- margin-left: 4px;
4307
+ margin-left: 2px;
4227
4308
  }
4228
4309
  .tool-use-status {
4229
- font-size: 0.75rem;
4230
- padding: 2px 8px;
4231
- border-radius: 4px;
4310
+ font-size: 0.6875rem;
4311
+ font-weight: 600;
4312
+ padding: 3px 10px;
4313
+ border-radius: var(--radius-full);
4232
4314
  flex-shrink: 0;
4233
- margin-left: 4px;
4315
+ margin-left: 2px;
4316
+ letter-spacing: 0.01em;
4234
4317
  }
4235
4318
  .tool-use-card.success .tool-use-status {
4236
- background: rgba(79, 122, 88, 0.15);
4319
+ background: var(--success-muted);
4237
4320
  color: var(--success);
4238
4321
  }
4239
4322
  .tool-use-card.error .tool-use-status {
4240
- background: rgba(178, 79, 69, 0.15);
4323
+ background: var(--danger-muted);
4241
4324
  color: var(--danger);
4242
4325
  }
4326
+ .tool-use-card.loading .tool-use-status {
4327
+ background: var(--warning-muted);
4328
+ color: var(--warning);
4329
+ }
4243
4330
  .tool-use-toggle {
4244
4331
  font-size: 0.75rem;
4245
4332
  color: var(--text-muted);
4246
- transition: transform 0.3s var(--ease-spring);
4333
+ transition: transform 0.3s var(--ease-spring), color 0.18s ease;
4247
4334
  flex-shrink: 0;
4248
4335
  display: flex;
4249
4336
  align-items: center;
4337
+ opacity: 0.6;
4338
+ }
4339
+ .tool-use-card:hover .tool-use-toggle {
4340
+ color: var(--text-secondary);
4341
+ opacity: 1;
4250
4342
  }
4251
4343
  .tool-use-card.collapsed .tool-use-toggle {
4252
4344
  transform: rotate(-90deg);
4253
4345
  }
4254
4346
  .tool-use-body {
4255
- padding: 10px 12px;
4256
- background: var(--bg-elevated);
4257
- border-top: 1px solid var(--border-subtle);
4347
+ padding: 12px 14px;
4348
+ background: rgba(255, 253, 248, 0.65);
4349
+ border-top: 1px solid rgba(125, 91, 57, 0.08);
4258
4350
  max-height: 600px;
4259
4351
  overflow: hidden;
4260
4352
  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 +4369,12 @@
4277
4369
  overflow-wrap: break-word;
4278
4370
  max-height: 400px;
4279
4371
  overflow-y: auto;
4280
- line-height: 1.5;
4372
+ line-height: 1.55;
4281
4373
  }
4282
4374
  .tool-use-result {
4283
- margin-top: 8px;
4284
- padding-top: 8px;
4285
- border-top: 1px dashed var(--border-subtle);
4375
+ margin-top: 10px;
4376
+ padding-top: 10px;
4377
+ border-top: 1px dashed rgba(125, 91, 57, 0.14);
4286
4378
  }
4287
4379
  .tool-use-result-content {
4288
4380
  margin: 0;
@@ -4291,9 +4383,12 @@
4291
4383
  color: var(--text-secondary);
4292
4384
  white-space: pre-wrap;
4293
4385
  overflow-wrap: break-word;
4294
- max-height: 300px;
4386
+ max-height: 320px;
4295
4387
  overflow-y: auto;
4296
- line-height: 1.5;
4388
+ line-height: 1.55;
4389
+ background: rgba(125, 91, 57, 0.035);
4390
+ border-radius: var(--radius-xs);
4391
+ padding: 8px 10px;
4297
4392
  }
4298
4393
  .tool-use-result-empty {
4299
4394
  font-size: 0.75rem;
@@ -4304,12 +4399,13 @@
4304
4399
  font-size: 0.75rem;
4305
4400
  color: var(--text-muted);
4306
4401
  font-family: var(--font-mono);
4307
- margin-bottom: 6px;
4308
- padding-bottom: 6px;
4309
- border-bottom: 1px dashed var(--border-subtle);
4402
+ margin-bottom: 8px;
4403
+ padding-bottom: 8px;
4404
+ border-bottom: 1px dashed rgba(125, 91, 57, 0.14);
4310
4405
  }
4311
4406
  .tool-use-meta-label {
4312
4407
  color: var(--text-secondary);
4408
+ font-weight: 600;
4313
4409
  }
4314
4410
  /* AskUserQuestion - simplified */
4315
4411
  .tool-use-card.ask-user {
@@ -4589,100 +4685,176 @@
4589
4685
  }
4590
4686
 
4591
4687
  /* ── Tool Group (连续同类调用折叠) ── */
4688
+ /* ──────────────────────────────────────────────────────────────
4689
+ Tool Group — collapsible cluster of consecutive read-only tools
4690
+ Cream card with brand-tinted status chip, count pill, smooth body.
4691
+ ────────────────────────────────────────────────────────────── */
4592
4692
  .tool-group {
4593
- margin: 2px 0;
4594
- border-radius: 6px;
4595
- border: 1px solid var(--border-subtle, rgba(127,127,127,0.1));
4693
+ margin: 4px 0;
4694
+ border-radius: var(--radius-sm);
4695
+ border: 1px solid var(--border-subtle);
4696
+ background: linear-gradient(180deg, rgba(255, 251, 245, 0.85) 0%, rgba(255, 248, 238, 0.7) 100%);
4697
+ box-shadow: 0 1px 2px rgba(89, 58, 32, 0.03);
4596
4698
  overflow: hidden;
4699
+ transition: border-color 0.18s ease, box-shadow 0.22s ease, transform 0.22s ease;
4700
+ }
4701
+ .tool-group:hover {
4702
+ border-color: rgba(125, 91, 57, 0.18);
4703
+ box-shadow: 0 2px 8px rgba(89, 58, 32, 0.06);
4704
+ }
4705
+ .tool-group[data-status="pending"] {
4706
+ border-color: rgba(169, 106, 47, 0.22);
4707
+ background: linear-gradient(180deg, rgba(255, 244, 226, 0.85) 0%, rgba(255, 241, 218, 0.7) 100%);
4708
+ }
4709
+ .tool-group[data-status="error"] {
4710
+ border-color: rgba(178, 79, 69, 0.28);
4711
+ background: linear-gradient(180deg, rgba(252, 240, 238, 0.85) 0%, rgba(252, 236, 234, 0.7) 100%);
4597
4712
  }
4598
4713
  .tool-group-summary {
4599
4714
  display: flex;
4600
4715
  align-items: center;
4601
- gap: 6px;
4602
- padding: 5px 10px;
4716
+ gap: 9px;
4717
+ padding: 8px 12px;
4603
4718
  cursor: pointer;
4604
4719
  font-size: 0.75rem;
4605
4720
  color: var(--text-secondary);
4606
4721
  user-select: none;
4607
- transition: background var(--transition-fast);
4722
+ transition: background 0.18s ease;
4608
4723
  }
4609
4724
  .tool-group-summary:hover {
4610
- background: var(--bg-hover, rgba(127,127,127,0.06));
4725
+ background: rgba(197, 101, 61, 0.04);
4611
4726
  }
4612
4727
  .tool-group-status {
4728
+ display: inline-flex;
4729
+ align-items: center;
4730
+ justify-content: center;
4731
+ width: 18px;
4732
+ height: 18px;
4733
+ border-radius: 50%;
4613
4734
  font-size: 0.6875rem;
4735
+ font-weight: 700;
4736
+ line-height: 1;
4614
4737
  flex-shrink: 0;
4615
- width: 14px;
4616
- text-align: center;
4738
+ letter-spacing: 0;
4739
+ }
4740
+ .tool-group[data-status="done"] .tool-group-status {
4741
+ background: var(--success-muted);
4742
+ color: var(--success);
4743
+ }
4744
+ .tool-group[data-status="error"] .tool-group-status {
4745
+ background: var(--danger-muted);
4746
+ color: var(--danger);
4747
+ }
4748
+ .tool-group[data-status="pending"] .tool-group-status {
4749
+ background: var(--warning-muted);
4750
+ color: var(--warning);
4751
+ animation: tool-group-pulse 1.6s ease-in-out infinite;
4752
+ }
4753
+ @keyframes tool-group-pulse {
4754
+ 0%, 100% { opacity: 1; }
4755
+ 50% { opacity: 0.55; }
4617
4756
  }
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
4757
  .tool-group-text {
4622
4758
  flex: 1;
4623
4759
  min-width: 0;
4624
4760
  overflow: hidden;
4625
4761
  text-overflow: ellipsis;
4626
4762
  white-space: nowrap;
4763
+ font-weight: 500;
4764
+ color: var(--text-primary);
4765
+ letter-spacing: -0.005em;
4627
4766
  }
4628
4767
  .tool-group-count {
4629
4768
  flex-shrink: 0;
4630
- font-size: 0.625rem;
4631
- color: var(--text-muted);
4769
+ font-size: 0.6875rem;
4770
+ color: var(--text-tertiary);
4771
+ padding: 2px 8px;
4772
+ border-radius: var(--radius-full);
4773
+ background: rgba(125, 91, 57, 0.07);
4774
+ font-variant-numeric: tabular-nums;
4632
4775
  }
4633
4776
  .tool-group-chevron {
4634
4777
  flex-shrink: 0;
4635
- transition: transform 0.2s ease;
4778
+ transition: transform 0.25s var(--ease-out-expo);
4636
4779
  color: var(--text-muted);
4780
+ opacity: 0.6;
4781
+ }
4782
+ .tool-group:hover .tool-group-chevron {
4783
+ opacity: 1;
4637
4784
  }
4638
4785
  .tool-group[data-expanded="true"] .tool-group-chevron {
4639
4786
  transform: rotate(180deg);
4640
4787
  }
4641
4788
  .tool-group-body {
4642
4789
  display: none;
4643
- padding: 2px 6px 4px;
4644
- border-top: 1px solid var(--border-subtle, rgba(127,127,127,0.08));
4790
+ padding: 4px 8px 8px;
4791
+ border-top: 1px solid rgba(125, 91, 57, 0.06);
4792
+ background: rgba(255, 253, 248, 0.55);
4645
4793
  }
4646
4794
  .tool-group[data-expanded="true"] .tool-group-body {
4647
4795
  display: block;
4796
+ animation: tool-group-reveal 0.22s var(--ease-out-expo);
4797
+ }
4798
+ @keyframes tool-group-reveal {
4799
+ from { opacity: 0; transform: translateY(-2px); }
4800
+ to { opacity: 1; transform: translateY(0); }
4648
4801
  }
4649
4802
 
4650
- /* ── Inline Tool Display (Read, Glob, Grep, WebFetch, WebSearch, TodoRead) ── */
4803
+ /* ──────────────────────────────────────────────────────────────
4804
+ Inline Tool — single read-only row (Read / Glob / Grep / Web*)
4805
+ Clean two-column layout: icon + title | meta. Hover lifts subtly.
4806
+ ────────────────────────────────────────────────────────────── */
4651
4807
  .inline-tool {
4652
4808
  display: flex;
4653
4809
  flex-direction: column;
4654
4810
  margin: 1px 0;
4655
- border-radius: 6px;
4811
+ border-radius: var(--radius-xs);
4656
4812
  cursor: pointer;
4657
- transition: background var(--transition-fast);
4813
+ transition: background 0.16s ease;
4658
4814
  }
4659
4815
  .inline-tool-row {
4660
4816
  display: flex;
4661
4817
  align-items: center;
4662
- gap: 5px;
4663
- padding: 2px 6px;
4664
- font-size: 0.6875rem;
4665
- color: var(--text-muted);
4818
+ gap: 8px;
4819
+ padding: 5px 10px;
4820
+ font-size: 0.75rem;
4821
+ color: var(--text-secondary);
4666
4822
  font-family: var(--font-mono);
4667
- line-height: 1.4;
4668
- opacity: 0.7;
4823
+ line-height: 1.45;
4824
+ border-radius: var(--radius-xs);
4825
+ transition: background 0.16s ease, color 0.16s ease;
4669
4826
  }
4670
4827
  .inline-tool:hover .inline-tool-row {
4671
- opacity: 1;
4672
- background: rgba(0, 0, 0, 0.02);
4673
- border-radius: 6px;
4828
+ background: rgba(197, 101, 61, 0.06);
4829
+ color: var(--text-primary);
4674
4830
  }
4675
4831
  .inline-tool-status {
4676
- font-size: 0.625rem;
4832
+ display: inline-flex;
4833
+ align-items: center;
4834
+ justify-content: center;
4835
+ width: 14px;
4836
+ height: 14px;
4677
4837
  flex-shrink: 0;
4838
+ font-size: 0.6875rem;
4839
+ font-weight: 700;
4840
+ color: var(--success);
4841
+ line-height: 1;
4842
+ }
4843
+ .inline-tool[data-status="pending"] .inline-tool-status {
4844
+ color: var(--warning);
4845
+ }
4846
+ .inline-tool[data-status="error"] .inline-tool-status,
4847
+ .inline-tool-error-inline .inline-tool-status {
4848
+ color: var(--danger);
4678
4849
  }
4679
4850
  .inline-tool-icon {
4680
4851
  flex-shrink: 0;
4681
- color: var(--text-muted);
4682
- margin: 0 1px;
4683
- opacity: 0.6;
4684
- width: 12px;
4685
- height: 12px;
4852
+ color: var(--text-tertiary);
4853
+ opacity: 0.85;
4854
+ }
4855
+ .inline-tool:hover .inline-tool-icon {
4856
+ color: var(--accent);
4857
+ opacity: 1;
4686
4858
  }
4687
4859
  .inline-tool-title {
4688
4860
  flex: 1;
@@ -4690,70 +4862,94 @@
4690
4862
  overflow: hidden;
4691
4863
  text-overflow: ellipsis;
4692
4864
  white-space: nowrap;
4693
- color: var(--text-muted);
4865
+ color: var(--text-secondary);
4866
+ font-size: 0.75rem;
4867
+ }
4868
+ .inline-tool:hover .inline-tool-title {
4869
+ color: var(--text-primary);
4694
4870
  }
4695
4871
  .inline-tool-meta {
4696
4872
  flex-shrink: 0;
4697
- font-size: 0.625rem;
4873
+ font-size: 0.6875rem;
4698
4874
  color: var(--text-muted);
4699
- opacity: 0.5;
4700
- max-width: 200px;
4875
+ max-width: 220px;
4701
4876
  overflow: hidden;
4702
4877
  text-overflow: ellipsis;
4703
4878
  white-space: nowrap;
4879
+ font-variant-numeric: tabular-nums;
4880
+ letter-spacing: -0.01em;
4704
4881
  }
4705
4882
  .inline-tool-expanded {
4706
4883
  display: none;
4707
- padding: 0 8px 6px 8px;
4884
+ padding: 0 10px 8px 10px;
4708
4885
  }
4709
4886
  .inline-tool-open .inline-tool-expanded {
4710
4887
  display: block;
4888
+ animation: tool-group-reveal 0.2s var(--ease-out-expo);
4711
4889
  }
4712
4890
  .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;
4891
+ background: rgba(125, 91, 57, 0.04);
4892
+ border: 1px solid rgba(125, 91, 57, 0.07);
4893
+ border-radius: var(--radius-xs);
4894
+ padding: 10px 12px;
4895
+ margin-top: 6px;
4896
+ max-height: 320px;
4718
4897
  overflow-y: auto;
4719
4898
  scrollbar-width: thin;
4720
- scrollbar-color: rgba(0, 0, 0, 0.15) transparent;
4899
+ scrollbar-color: rgba(125, 91, 57, 0.2) transparent;
4721
4900
  }
4722
4901
  .inline-tool-result::-webkit-scrollbar {
4723
- width: 4px;
4902
+ width: 6px;
4724
4903
  }
4725
4904
  .inline-tool-result::-webkit-scrollbar-thumb {
4726
- background: rgba(0, 0, 0, 0.15);
4727
- border-radius: 2px;
4905
+ background: rgba(125, 91, 57, 0.2);
4906
+ border-radius: 3px;
4907
+ }
4908
+ .inline-tool-result::-webkit-scrollbar-thumb:hover {
4909
+ background: rgba(125, 91, 57, 0.32);
4728
4910
  }
4729
4911
  .inline-tool-result-text {
4730
4912
  font-family: var(--font-mono);
4731
4913
  font-size: 0.75rem;
4732
- line-height: 1.5;
4914
+ line-height: 1.55;
4733
4915
  color: var(--text-secondary);
4734
4916
  white-space: pre-wrap;
4735
4917
  word-break: break-all;
4736
4918
  margin: 0;
4737
- max-height: 300px;
4738
- overflow-y: auto;
4739
4919
  }
4740
4920
  .inline-tool-error-inline {
4741
- border-left: 2px solid rgba(178, 79, 69, 0.4);
4921
+ border-left: 2px solid var(--danger);
4922
+ padding-left: 2px;
4923
+ margin-left: -2px;
4742
4924
  }
4743
4925
  .inline-tool-error-inline .inline-tool-row {
4744
- color: rgba(178, 79, 69, 0.7);
4926
+ color: var(--danger);
4745
4927
  }
4746
4928
  .inline-tool-result.inline-tool-error {
4747
- color: rgba(178, 79, 69, 0.8);
4929
+ color: var(--danger);
4748
4930
  font-family: var(--font-mono);
4749
4931
  font-size: 0.75rem;
4750
- background: rgba(178, 79, 69, 0.05);
4932
+ background: var(--danger-muted);
4933
+ border-color: rgba(178, 79, 69, 0.18);
4751
4934
  }
4752
4935
  .inline-tool-loading {
4753
4936
  font-size: 0.75rem;
4754
- color: var(--text-muted);
4937
+ color: var(--warning);
4755
4938
  font-style: italic;
4756
- padding: 4px 0;
4939
+ padding: 6px 0;
4940
+ display: inline-flex;
4941
+ align-items: center;
4942
+ gap: 6px;
4943
+ }
4944
+ .inline-tool-loading::before {
4945
+ content: "";
4946
+ display: inline-block;
4947
+ width: 10px;
4948
+ height: 10px;
4949
+ border: 1.5px solid var(--warning-muted);
4950
+ border-top-color: var(--warning);
4951
+ border-radius: 50%;
4952
+ animation: tool-content-spin 0.7s linear infinite;
4757
4953
  }
4758
4954
  .inline-tool-empty {
4759
4955
  font-size: 0.75rem;
@@ -4793,133 +4989,207 @@
4793
4989
  text-decoration: underline;
4794
4990
  }
4795
4991
 
4796
- /* ── Inline Terminal Display (Bash) ── */
4992
+ /* ──────────────────────────────────────────────────────────────
4993
+ Inline Terminal — Bash card with a real terminal-window look.
4994
+ macOS-style traffic lights, gradient titlebar, monospaced body.
4995
+ ────────────────────────────────────────────────────────────── */
4797
4996
  .inline-terminal {
4798
- margin: 3px 0;
4799
- border: 1px solid rgba(255, 255, 255, 0.06);
4800
- border-radius: 8px;
4801
- background: #1a1714;
4997
+ margin: 4px 0;
4998
+ border: 1px solid rgba(15, 12, 9, 0.6);
4999
+ border-radius: var(--radius-sm);
5000
+ background: #1f1b17;
5001
+ box-shadow:
5002
+ 0 1px 0 rgba(255, 255, 255, 0.04) inset,
5003
+ 0 2px 12px rgba(15, 12, 9, 0.18);
4802
5004
  overflow: hidden;
5005
+ transition: box-shadow 0.22s ease, transform 0.22s ease, border-color 0.22s ease;
5006
+ }
5007
+ .inline-terminal:hover {
5008
+ box-shadow:
5009
+ 0 1px 0 rgba(255, 255, 255, 0.05) inset,
5010
+ 0 4px 18px rgba(15, 12, 9, 0.24);
5011
+ border-color: rgba(255, 255, 255, 0.1);
4803
5012
  }
4804
5013
  .term-header {
4805
5014
  display: flex;
4806
5015
  align-items: center;
4807
- gap: 6px;
4808
- padding: 5px 10px;
4809
- background: rgba(255, 255, 255, 0.03);
5016
+ gap: 10px;
5017
+ padding: 8px 14px;
5018
+ background:
5019
+ linear-gradient(180deg, rgba(255, 255, 255, 0.04) 0%, rgba(255, 255, 255, 0.015) 100%),
5020
+ rgba(0, 0, 0, 0.18);
5021
+ border-bottom: 1px solid rgba(255, 255, 255, 0.04);
4810
5022
  font-size: 0.75rem;
4811
5023
  cursor: pointer;
4812
5024
  user-select: none;
5025
+ position: relative;
4813
5026
  }
4814
5027
  .term-header:hover {
4815
- background: rgba(255, 255, 255, 0.05);
5028
+ background:
5029
+ linear-gradient(180deg, rgba(255, 255, 255, 0.06) 0%, rgba(255, 255, 255, 0.025) 100%),
5030
+ rgba(0, 0, 0, 0.18);
4816
5031
  }
4817
5032
  .term-status-dot {
4818
- width: 6px;
4819
- height: 6px;
5033
+ width: 9px;
5034
+ height: 9px;
4820
5035
  border-radius: 50%;
4821
5036
  flex-shrink: 0;
5037
+ box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.25) inset;
5038
+ }
5039
+ .term-status-dot.term-success {
5040
+ background: radial-gradient(circle at 35% 30%, #b6f0c4 0%, #6ee09a 50%, #3aa765 100%);
5041
+ box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.25) inset, 0 0 6px rgba(110, 224, 154, 0.35);
5042
+ }
5043
+ .term-status-dot.term-error {
5044
+ background: radial-gradient(circle at 35% 30%, #ffb5b9 0%, #f07178 50%, #b53b41 100%);
5045
+ box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.25) inset, 0 0 6px rgba(240, 113, 120, 0.35);
5046
+ }
5047
+ .term-status-dot.term-warn {
5048
+ background: radial-gradient(circle at 35% 30%, #ffd07a 0%, #f0a500 50%, #ad7400 100%);
5049
+ box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.25) inset, 0 0 6px rgba(240, 165, 0, 0.35);
5050
+ }
5051
+ .term-status-dot.term-running {
5052
+ background: radial-gradient(circle at 35% 30%, #d1d5db 0%, #9ca3af 50%, #4b5563 100%);
5053
+ animation: term-pulse 1s ease-in-out infinite;
4822
5054
  }
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
5055
  @keyframes term-pulse {
4828
- 0%, 100% { opacity: 1; }
4829
- 50% { opacity: 0.4; }
5056
+ 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); }
5057
+ 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
5058
  }
4831
5059
  .term-cmd-preview {
4832
5060
  flex: 1;
4833
5061
  min-width: 0;
4834
5062
  font-family: var(--font-mono);
4835
- font-size: 0.6875rem;
4836
- color: rgba(255, 255, 255, 0.45);
5063
+ font-size: 0.75rem;
5064
+ color: rgba(232, 220, 200, 0.78);
4837
5065
  overflow: hidden;
4838
5066
  text-overflow: ellipsis;
4839
5067
  white-space: nowrap;
5068
+ letter-spacing: -0.005em;
4840
5069
  }
4841
5070
  .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;
5071
+ color: #6ee09a;
5072
+ font-weight: 600;
5073
+ margin-right: 6px;
5074
+ font-size: 0.75rem;
5075
+ opacity: 0.9;
4846
5076
  }
4847
5077
  .term-title {
4848
5078
  flex: 1;
4849
5079
  font-family: var(--font-mono);
4850
5080
  font-size: 0.75rem;
4851
- color: rgba(255, 255, 255, 0.3);
5081
+ color: rgba(255, 255, 255, 0.4);
4852
5082
  }
4853
5083
  .term-toggle-icon {
4854
- font-size: 0.5rem;
4855
- color: rgba(255, 255, 255, 0.25);
4856
- transition: transform var(--transition-fast);
5084
+ font-size: 0.625rem;
5085
+ color: rgba(255, 255, 255, 0.35);
5086
+ transition: color 0.18s ease;
5087
+ flex-shrink: 0;
5088
+ }
5089
+ .term-header:hover .term-toggle-icon {
5090
+ color: rgba(255, 255, 255, 0.65);
4857
5091
  }
4858
5092
  .term-body {
4859
- padding: 8px 10px;
5093
+ padding: 12px 14px 14px;
5094
+ background:
5095
+ linear-gradient(180deg, rgba(0, 0, 0, 0.18) 0%, rgba(0, 0, 0, 0) 24px),
5096
+ #1f1b17;
4860
5097
  }
4861
5098
  .term-command {
4862
5099
  font-family: var(--font-mono);
4863
5100
  font-size: 0.8125rem;
4864
- color: #e8dcc8;
4865
- line-height: 1.5;
4866
- margin-bottom: 4px;
5101
+ color: #f4e9d4;
5102
+ line-height: 1.55;
5103
+ margin-bottom: 6px;
5104
+ white-space: pre-wrap;
5105
+ word-break: break-all;
4867
5106
  }
4868
5107
  .term-prompt {
4869
5108
  color: #6ee09a;
4870
5109
  font-weight: 600;
4871
- margin-right: 4px;
5110
+ margin-right: 6px;
5111
+ text-shadow: 0 0 6px rgba(110, 224, 154, 0.25);
4872
5112
  }
4873
5113
  .term-output {
4874
- margin-top: 4px;
4875
- padding-top: 4px;
4876
- border-top: 1px solid rgba(255, 255, 255, 0.05);
5114
+ margin-top: 8px;
5115
+ padding-top: 8px;
5116
+ border-top: 1px dashed rgba(255, 255, 255, 0.06);
5117
+ max-height: 360px;
5118
+ overflow-y: auto;
5119
+ scrollbar-width: thin;
5120
+ scrollbar-color: rgba(255, 255, 255, 0.15) transparent;
5121
+ }
5122
+ .term-output::-webkit-scrollbar {
5123
+ width: 6px;
5124
+ }
5125
+ .term-output::-webkit-scrollbar-thumb {
5126
+ background: rgba(255, 255, 255, 0.15);
5127
+ border-radius: 3px;
5128
+ }
5129
+ .term-output::-webkit-scrollbar-thumb:hover {
5130
+ background: rgba(255, 255, 255, 0.25);
4877
5131
  }
4878
5132
  .term-line {
4879
5133
  font-family: var(--font-mono);
4880
5134
  font-size: 0.8125rem;
4881
- color: #c8b89a;
4882
- line-height: 1.6;
5135
+ color: #d4c2a3;
5136
+ line-height: 1.55;
4883
5137
  white-space: pre-wrap;
4884
5138
  word-break: break-all;
4885
5139
  }
4886
5140
  .term-exit {
4887
- margin-top: 6px;
4888
- padding-top: 4px;
4889
- border-top: 1px solid rgba(255, 255, 255, 0.05);
5141
+ margin-top: 10px;
5142
+ padding-top: 8px;
5143
+ border-top: 1px dashed rgba(255, 255, 255, 0.06);
4890
5144
  font-family: var(--font-mono);
4891
- font-size: 0.7rem;
5145
+ font-size: 0.6875rem;
4892
5146
  line-height: 1.5;
5147
+ letter-spacing: 0.04em;
4893
5148
  }
4894
- .term-exit-success { color: rgba(110, 224, 154, 0.7); }
4895
- .term-exit-error { color: rgba(240, 113, 120, 0.7); }
5149
+ .term-exit-success { color: rgba(110, 224, 154, 0.75); }
5150
+ .term-exit-error { color: rgba(240, 113, 120, 0.78); }
4896
5151
 
4897
- /* ── Inline Diff Display (Edit, Write, MultiEdit) ── */
5152
+ /* ──────────────────────────────────────────────────────────────
5153
+ Inline Diff — Edit / Write / MultiEdit
5154
+ Card with clearly-labelled "旧 | 新" columns and status pill.
5155
+ ────────────────────────────────────────────────────────────── */
4898
5156
  .inline-diff {
4899
- margin: 3px 0;
4900
- border: 1px solid rgba(0, 0, 0, 0.06);
4901
- border-radius: 8px;
5157
+ margin: 4px 0;
5158
+ border: 1px solid var(--border-subtle);
5159
+ border-radius: var(--radius-sm);
4902
5160
  overflow: hidden;
4903
- background: var(--bg-secondary);
5161
+ background: linear-gradient(180deg, rgba(255, 251, 245, 0.88) 0%, rgba(255, 246, 234, 0.72) 100%);
5162
+ box-shadow: 0 1px 2px rgba(89, 58, 32, 0.04);
5163
+ transition: border-color 0.22s ease, box-shadow 0.22s ease;
5164
+ }
5165
+ .inline-diff:hover {
5166
+ border-color: rgba(125, 91, 57, 0.22);
5167
+ box-shadow: 0 3px 12px rgba(89, 58, 32, 0.06);
4904
5168
  }
4905
5169
  .diff-header {
4906
5170
  display: flex;
4907
5171
  align-items: center;
4908
- gap: 6px;
4909
- padding: 6px 10px;
4910
- background: rgba(0, 0, 0, 0.03);
4911
- font-size: 0.75rem;
5172
+ gap: 10px;
5173
+ padding: 8px 14px;
5174
+ background: transparent;
5175
+ font-size: 0.8125rem;
4912
5176
  cursor: pointer;
5177
+ transition: background 0.18s ease;
4913
5178
  }
4914
5179
  .diff-header:hover {
4915
- background: rgba(0, 0, 0, 0.05);
5180
+ background: rgba(197, 101, 61, 0.04);
4916
5181
  }
4917
5182
  .diff-toggle {
4918
5183
  font-size: 0.625rem;
4919
5184
  color: var(--text-muted);
4920
- transition: transform 0.3s var(--ease-spring);
5185
+ transition: transform 0.3s var(--ease-spring), color 0.18s ease;
4921
5186
  flex-shrink: 0;
4922
5187
  margin-left: auto;
5188
+ opacity: 0.6;
5189
+ }
5190
+ .inline-diff:hover .diff-toggle {
5191
+ color: var(--text-secondary);
5192
+ opacity: 1;
4923
5193
  }
4924
5194
  .inline-diff.collapsed .diff-toggle {
4925
5195
  transform: rotate(-90deg);
@@ -4935,49 +5205,56 @@
4935
5205
  }
4936
5206
  .diff-file-name {
4937
5207
  font-family: var(--font-mono);
4938
- font-weight: 600;
5208
+ font-weight: 700;
4939
5209
  color: var(--text-primary);
4940
5210
  flex-shrink: 0;
5211
+ font-size: 0.8125rem;
5212
+ letter-spacing: -0.005em;
4941
5213
  }
4942
5214
  .diff-path {
4943
5215
  font-family: var(--font-mono);
4944
- color: var(--text-muted);
5216
+ color: var(--text-tertiary);
4945
5217
  flex: 1;
4946
5218
  min-width: 0;
4947
5219
  overflow: hidden;
4948
5220
  text-overflow: ellipsis;
4949
5221
  white-space: nowrap;
4950
- font-size: 0.7rem;
5222
+ font-size: 0.6875rem;
4951
5223
  }
4952
5224
  .diff-status {
4953
5225
  flex-shrink: 0;
4954
- font-size: 0.7rem;
4955
- padding: 2px 8px;
4956
- border-radius: 3px;
5226
+ font-size: 0.6875rem;
5227
+ font-weight: 600;
5228
+ padding: 3px 10px;
5229
+ border-radius: var(--radius-full);
5230
+ letter-spacing: 0.01em;
4957
5231
  }
4958
5232
  .diff-status.diff-success {
4959
- background: rgba(79, 122, 88, 0.12);
5233
+ background: var(--success-muted);
4960
5234
  color: var(--success);
4961
5235
  }
4962
5236
  .diff-status.diff-error {
4963
- background: rgba(178, 79, 69, 0.12);
5237
+ background: var(--danger-muted);
4964
5238
  color: var(--danger);
4965
5239
  }
4966
5240
  .diff-status.diff-pending {
4967
- background: rgba(0, 0, 0, 0.06);
4968
- color: var(--text-muted);
5241
+ background: var(--warning-muted);
5242
+ color: var(--warning);
4969
5243
  }
4970
5244
  .diff-body {
4971
5245
  overflow: hidden;
5246
+ border-top: 1px solid rgba(125, 91, 57, 0.08);
5247
+ background: rgba(255, 253, 248, 0.65);
4972
5248
  }
4973
5249
  .diff-columns {
4974
5250
  display: flex;
4975
5251
  gap: 1px;
4976
- background: rgba(0, 0, 0, 0.04);
5252
+ background: rgba(125, 91, 57, 0.08);
4977
5253
  }
4978
5254
  .diff-col {
4979
5255
  flex: 1;
4980
5256
  min-width: 0;
5257
+ background: rgba(255, 253, 248, 0.85);
4981
5258
  }
4982
5259
  .diff-col-half {
4983
5260
  flex: 1;
@@ -4988,30 +5265,32 @@
4988
5265
  }
4989
5266
  .diff-col-label {
4990
5267
  font-family: var(--font-mono);
4991
- font-size: 0.65rem;
5268
+ font-size: 0.625rem;
4992
5269
  font-weight: 700;
4993
- padding: 2px 10px;
4994
- color: var(--text-muted);
5270
+ padding: 4px 12px;
5271
+ color: var(--text-tertiary);
4995
5272
  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);
5273
+ letter-spacing: 0.08em;
5274
+ background: rgba(125, 91, 57, 0.05);
5275
+ border-bottom: 1px solid rgba(125, 91, 57, 0.08);
4999
5276
  }
5000
5277
  .diff-line {
5001
- padding: 2px 10px;
5278
+ padding: 3px 12px;
5002
5279
  font-family: var(--font-mono);
5003
5280
  font-size: 0.75rem;
5004
- line-height: 1.5;
5281
+ line-height: 1.55;
5005
5282
  white-space: pre-wrap;
5006
5283
  word-break: break-all;
5007
5284
  }
5008
5285
  .diff-add {
5009
- background: rgba(40, 167, 69, 0.08);
5010
- color: #155724;
5286
+ background: rgba(79, 122, 88, 0.08);
5287
+ color: #2c5535;
5288
+ border-left: 2px solid rgba(79, 122, 88, 0.5);
5011
5289
  }
5012
5290
  .diff-remove {
5013
5291
  background: rgba(178, 79, 69, 0.06);
5014
- color: #792620;
5292
+ color: #7c2a23;
5293
+ border-left: 2px solid rgba(178, 79, 69, 0.45);
5015
5294
  }
5016
5295
 
5017
5296
  /* 旧版卡片式思考(保留作为 fallback) */
@@ -7161,11 +7440,17 @@
7161
7440
  box-shadow: 0 4px 12px rgba(125, 91, 57, 0.08);
7162
7441
  }
7163
7442
  .session-modal .mode-card.active {
7164
- background: linear-gradient(180deg, #fff7ef 0%, #ffeed8 100%);
7165
- border-color: var(--accent);
7443
+ background:
7444
+ linear-gradient(180deg, rgba(255, 252, 247, 0.95) 0%, rgba(255, 240, 224, 0.82) 100%);
7445
+ border: 0.5px solid rgba(255, 255, 255, 0.8);
7446
+ backdrop-filter: blur(16px) saturate(180%);
7447
+ -webkit-backdrop-filter: blur(16px) saturate(180%);
7166
7448
  box-shadow:
7167
- 0 0 0 3px var(--accent-muted),
7168
- 0 4px 12px rgba(197, 101, 61, 0.12);
7449
+ 0 0 0 1px rgba(197, 101, 61, 0.32),
7450
+ 0 0 0 4px rgba(197, 101, 61, 0.14),
7451
+ 0 8px 22px -4px rgba(197, 101, 61, 0.3),
7452
+ inset 0 1px 0 rgba(255, 255, 255, 0.95),
7453
+ inset 0 -1px 0 rgba(197, 101, 61, 0.08);
7169
7454
  transform: none;
7170
7455
  }
7171
7456
  .session-modal .mode-card.active .mode-card-label {
@@ -7190,11 +7475,17 @@
7190
7475
  box-shadow: 0 8px 20px rgba(125, 91, 57, 0.1);
7191
7476
  }
7192
7477
  .session-modal .tool-card.active {
7193
- background: linear-gradient(180deg, #fff8f1 0%, #fff1de 100%);
7194
- border-color: var(--accent);
7478
+ background:
7479
+ linear-gradient(180deg, rgba(255, 252, 247, 0.95) 0%, rgba(255, 240, 224, 0.82) 100%);
7480
+ border: 0.5px solid rgba(255, 255, 255, 0.8);
7481
+ backdrop-filter: blur(16px) saturate(180%);
7482
+ -webkit-backdrop-filter: blur(16px) saturate(180%);
7195
7483
  box-shadow:
7196
- 0 0 0 3px var(--accent-muted),
7197
- 0 6px 16px rgba(197, 101, 61, 0.12);
7484
+ 0 0 0 1px rgba(197, 101, 61, 0.3),
7485
+ 0 0 0 4px rgba(197, 101, 61, 0.14),
7486
+ 0 10px 28px -6px rgba(197, 101, 61, 0.3),
7487
+ inset 0 1px 0 rgba(255, 255, 255, 0.95),
7488
+ inset 0 -1px 0 rgba(197, 101, 61, 0.08);
7198
7489
  transform: none;
7199
7490
  }
7200
7491
 
@@ -7434,12 +7725,19 @@
7434
7725
  transform: none;
7435
7726
  border-color: transparent;
7436
7727
  }
7728
+ /* Settings tab active — liquid glass row with warm halo */
7437
7729
  .settings-modal .settings-tab.active {
7438
- background: linear-gradient(180deg, #fff7ef 0%, #ffeed8 100%);
7730
+ background:
7731
+ linear-gradient(180deg, rgba(255, 252, 247, 0.95) 0%, rgba(255, 244, 232, 0.78) 100%);
7439
7732
  color: var(--accent);
7733
+ backdrop-filter: blur(14px) saturate(180%);
7734
+ -webkit-backdrop-filter: blur(14px) saturate(180%);
7440
7735
  box-shadow:
7441
- inset 0 0 0 1px rgba(197, 101, 61, 0.22),
7442
- 0 1px 3px rgba(197, 101, 61, 0.08);
7736
+ inset 0 0 0 1px rgba(197, 101, 61, 0.25),
7737
+ inset 0 1px 0 rgba(255, 255, 255, 0.9),
7738
+ inset 0 -1px 0 rgba(197, 101, 61, 0.08),
7739
+ 0 4px 14px -4px rgba(197, 101, 61, 0.22),
7740
+ 0 1px 3px rgba(125, 91, 57, 0.06);
7443
7741
  }
7444
7742
  .settings-modal .settings-tab.active .settings-tab-meta {
7445
7743
  color: var(--text-secondary);
@@ -7712,6 +8010,7 @@
7712
8010
  .sidebar-pin-toggle.pinned {
7713
8011
  background: rgba(197, 101, 61, 0.12);
7714
8012
  color: var(--accent);
8013
+ transform: rotate(45deg);
7715
8014
  }
7716
8015
 
7717
8016
  /* Drawer close — same pattern as modal-close (rotate + danger tint) */
@@ -7747,17 +8046,27 @@
7747
8046
  padding: 6px;
7748
8047
  }
7749
8048
  .sidebar-header-overflow .overflow-item {
7750
- border-radius: 8px;
8049
+ border-radius: 9px;
7751
8050
  padding: 9px 10px;
7752
8051
  font-size: 0.8125rem;
7753
8052
  font-weight: 500;
8053
+ transition:
8054
+ background 0.16s ease,
8055
+ color 0.16s ease,
8056
+ box-shadow 0.18s ease,
8057
+ transform 0.18s var(--ease-out-expo);
7754
8058
  }
7755
8059
  .sidebar-header-overflow .overflow-item:hover {
7756
- background: rgba(125, 91, 57, 0.08);
8060
+ background:
8061
+ linear-gradient(180deg, rgba(255, 255, 255, 0.9) 0%, rgba(255, 252, 247, 0.6) 100%);
7757
8062
  color: var(--text-primary);
8063
+ box-shadow:
8064
+ 0 0 0 0.5px rgba(125, 91, 57, 0.08),
8065
+ inset 0 1px 0 rgba(255, 255, 255, 0.85);
7758
8066
  }
7759
8067
  .sidebar-header-overflow .overflow-item:active {
7760
- background: rgba(125, 91, 57, 0.14);
8068
+ background: rgba(197, 101, 61, 0.12);
8069
+ color: var(--accent);
7761
8070
  transform: scale(0.98);
7762
8071
  }
7763
8072
 
@@ -7864,17 +8173,20 @@
7864
8173
 
7865
8174
  /* ── Session item — clean card on glass ── */
7866
8175
  .session-item {
7867
- background: rgba(255, 255, 255, 0.55);
7868
- border: 1px solid rgba(125, 91, 57, 0.08);
7869
- border-radius: 12px;
8176
+ background: linear-gradient(180deg, rgba(255, 255, 255, 0.62) 0%, rgba(255, 252, 247, 0.42) 100%);
8177
+ border: 0.5px solid rgba(255, 255, 255, 0.55);
8178
+ border-radius: 13px;
7870
8179
  padding: 11px 14px;
7871
8180
  margin-bottom: 6px;
7872
- box-shadow: 0 1px 2px rgba(125, 91, 57, 0.03);
8181
+ box-shadow:
8182
+ 0 0 0 0.5px rgba(125, 91, 57, 0.05),
8183
+ 0 1px 2px rgba(125, 91, 57, 0.03),
8184
+ inset 0 1px 0 rgba(255, 255, 255, 0.6);
7873
8185
  transition:
7874
- background 0.18s ease,
7875
- border-color 0.18s ease,
7876
- box-shadow 0.18s ease,
7877
- transform 0.18s ease;
8186
+ background 0.2s ease,
8187
+ border-color 0.2s ease,
8188
+ box-shadow 0.22s ease,
8189
+ transform 0.22s var(--ease-out-expo);
7878
8190
  }
7879
8191
  .session-item::before {
7880
8192
  left: 4px;
@@ -7882,32 +8194,57 @@
7882
8194
  bottom: 10px;
7883
8195
  width: 3px;
7884
8196
  border-radius: 2px;
7885
- background: var(--accent);
8197
+ background: linear-gradient(180deg, var(--accent), rgba(197, 101, 61, 0.5));
7886
8198
  }
7887
8199
  .session-item:hover {
7888
- background: rgba(255, 255, 255, 0.85);
7889
- border-color: rgba(125, 91, 57, 0.16);
8200
+ background: linear-gradient(180deg, rgba(255, 255, 255, 0.85) 0%, rgba(255, 253, 248, 0.62) 100%);
8201
+ border-color: rgba(255, 255, 255, 0.7);
7890
8202
  transform: translateY(-1px);
7891
- box-shadow: 0 4px 12px rgba(125, 91, 57, 0.08);
8203
+ box-shadow:
8204
+ 0 0 0 0.5px rgba(125, 91, 57, 0.08),
8205
+ 0 6px 16px -6px rgba(125, 91, 57, 0.18),
8206
+ inset 0 1px 0 rgba(255, 255, 255, 0.8);
7892
8207
  }
7893
8208
  .session-item:hover::before {
7894
- opacity: 0.45;
8209
+ opacity: 0.5;
7895
8210
  transform: scaleY(1);
7896
8211
  }
8212
+ /* Selected (active) — true liquid glass pill with depth + accent glow */
7897
8213
  .session-item.active {
7898
- background: linear-gradient(180deg, #fff7ef 0%, #fff1de 100%);
7899
- border-color: var(--accent);
8214
+ background:
8215
+ linear-gradient(180deg, rgba(255, 252, 247, 0.92) 0%, rgba(255, 244, 232, 0.78) 100%);
8216
+ border: 0.5px solid rgba(255, 255, 255, 0.85);
8217
+ transform: translateY(-1px);
8218
+ backdrop-filter: blur(20px) saturate(180%);
8219
+ -webkit-backdrop-filter: blur(20px) saturate(180%);
7900
8220
  box-shadow:
7901
- 0 0 0 1px var(--accent-muted),
7902
- 0 4px 14px rgba(197, 101, 61, 0.14);
8221
+ /* outer accent ring (soft) */
8222
+ 0 0 0 1px rgba(197, 101, 61, 0.28),
8223
+ /* warm glow halo */
8224
+ 0 8px 28px -6px rgba(197, 101, 61, 0.32),
8225
+ /* base elevation */
8226
+ 0 2px 6px -1px rgba(125, 91, 57, 0.1),
8227
+ /* top inner highlight — light from above */
8228
+ inset 0 1px 0 rgba(255, 255, 255, 0.95),
8229
+ /* bottom inner shadow — depth at base */
8230
+ inset 0 -1px 0 rgba(197, 101, 61, 0.08),
8231
+ /* left inner glint */
8232
+ inset 1px 0 0 rgba(255, 255, 255, 0.4);
7903
8233
  }
7904
8234
  .session-item.active::before {
7905
8235
  opacity: 1;
7906
8236
  transform: scaleY(1);
8237
+ box-shadow: 0 0 8px rgba(197, 101, 61, 0.5);
7907
8238
  }
8239
+ /* Multi-select state — quieter glass tint, no accent halo */
7908
8240
  .session-item.selected {
7909
- background: linear-gradient(180deg, #fff7ef 0%, #fff3e3 100%);
7910
- border-color: rgba(197, 101, 61, 0.4);
8241
+ background:
8242
+ linear-gradient(180deg, rgba(255, 250, 244, 0.85) 0%, rgba(255, 246, 236, 0.65) 100%);
8243
+ border: 0.5px solid rgba(255, 255, 255, 0.7);
8244
+ box-shadow:
8245
+ 0 0 0 1px rgba(197, 101, 61, 0.18),
8246
+ 0 4px 14px -4px rgba(125, 91, 57, 0.14),
8247
+ inset 0 1px 0 rgba(255, 255, 255, 0.85);
7911
8248
  }
7912
8249
  .session-item.selected::before {
7913
8250
  opacity: 0.7;
@@ -8052,11 +8389,21 @@
8052
8389
  transform: scale(0.96);
8053
8390
  transition-duration: 0.06s;
8054
8391
  }
8392
+ /* Footer tab active — same liquid glass language as .session-item.active */
8055
8393
  .sidebar-footer-actions .btn.active {
8056
- background: linear-gradient(180deg, #fff7ef 0%, #fff1de 100%);
8057
- border-color: rgba(197, 101, 61, 0.32);
8394
+ background:
8395
+ linear-gradient(180deg, rgba(255, 252, 247, 0.95) 0%, rgba(255, 242, 228, 0.78) 100%);
8396
+ border: 0.5px solid rgba(255, 255, 255, 0.85);
8058
8397
  color: var(--accent);
8059
- box-shadow: 0 0 0 1px var(--accent-muted);
8398
+ transform: translateY(-1px);
8399
+ backdrop-filter: blur(16px) saturate(180%);
8400
+ -webkit-backdrop-filter: blur(16px) saturate(180%);
8401
+ box-shadow:
8402
+ 0 0 0 1px rgba(197, 101, 61, 0.28),
8403
+ 0 6px 18px -4px rgba(197, 101, 61, 0.32),
8404
+ 0 2px 4px -1px rgba(125, 91, 57, 0.08),
8405
+ inset 0 1px 0 rgba(255, 255, 255, 0.95),
8406
+ inset 0 -1px 0 rgba(197, 101, 61, 0.08);
8060
8407
  }
8061
8408
  .sidebar-footer-actions .btn.sidebar-logout:hover {
8062
8409
  background: rgba(178, 79, 69, 0.08);
@@ -10059,9 +10406,17 @@
10059
10406
 
10060
10407
  .settings-tab.active {
10061
10408
  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);
10409
+ border-color: rgba(255, 255, 255, 0.7);
10410
+ background:
10411
+ linear-gradient(180deg, rgba(255, 252, 247, 0.92) 0%, rgba(255, 244, 232, 0.72) 100%);
10412
+ backdrop-filter: blur(14px) saturate(180%);
10413
+ -webkit-backdrop-filter: blur(14px) saturate(180%);
10414
+ box-shadow:
10415
+ inset 0 0 0 1px rgba(197, 101, 61, 0.22),
10416
+ inset 0 1px 0 rgba(255, 255, 255, 0.9),
10417
+ inset 0 -1px 0 rgba(197, 101, 61, 0.06),
10418
+ 0 4px 14px -4px rgba(197, 101, 61, 0.22),
10419
+ 0 1px 3px rgba(125, 91, 57, 0.04);
10065
10420
  }
10066
10421
 
10067
10422
  .settings-tab.active::before {