@co0ontty/wand 1.14.3 → 1.15.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.
@@ -370,12 +370,20 @@
370
370
  transition: padding-left var(--transition-normal);
371
371
  }
372
372
  /* .sidebar-open class toggled for semantic purposes only; sidebar overlays without resizing main layout */
373
- .sidebar-open .input-panel {
373
+ .sidebar-open:not(.sidebar-pinned) .input-panel {
374
374
  opacity: 0;
375
375
  pointer-events: none;
376
376
  transition: opacity 0.2s ease;
377
377
  }
378
378
 
379
+ /* ===== 侧边栏常驻 ===== */
380
+ .main-layout.sidebar-pinned {
381
+ padding-left: var(--sidebar-width);
382
+ }
383
+ .main-layout.sidebar-pinned .floating-sidebar-toggle {
384
+ display: none;
385
+ }
386
+
379
387
  /* ===== 抽屉背景遮罩 ===== */
380
388
  .drawer-backdrop {
381
389
  position: fixed;
@@ -426,6 +434,27 @@
426
434
  opacity: 1;
427
435
  }
428
436
 
437
+ .sidebar.pinned {
438
+ transform: translateX(0);
439
+ pointer-events: auto;
440
+ opacity: 1;
441
+ box-shadow: none;
442
+ }
443
+
444
+ .sidebar.pinned .sidebar-close {
445
+ display: none;
446
+ }
447
+
448
+ /* ===== 图钉按钮 ===== */
449
+ .sidebar-pin-toggle {
450
+ flex-shrink: 0;
451
+ transition: transform var(--transition-fast), color var(--transition-fast);
452
+ }
453
+ .sidebar-pin-toggle.pinned {
454
+ color: var(--primary);
455
+ transform: rotate(45deg);
456
+ }
457
+
429
458
  /* ===== 侧边栏头部 ===== */
430
459
  .sidebar-header {
431
460
  display: flex;
@@ -2139,7 +2168,6 @@
2139
2168
  radial-gradient(circle at top right, rgba(91, 58, 34, 0.2), transparent 35%),
2140
2169
  radial-gradient(circle at bottom left, rgba(197, 101, 61, 0.08), transparent 40%),
2141
2170
  linear-gradient(180deg, #2a221c 0%, #1f1b17 50%, #1a1613 100%);
2142
- padding: 10px;
2143
2171
  overflow: hidden;
2144
2172
  min-height: 0;
2145
2173
  min-width: 0;
@@ -2165,8 +2193,6 @@
2165
2193
  left: 0;
2166
2194
  right: 0;
2167
2195
  bottom: 0;
2168
- width: 100%;
2169
- height: 100%;
2170
2196
  padding: 0;
2171
2197
  overflow: hidden;
2172
2198
  }
@@ -4084,6 +4110,26 @@
4084
4110
  padding: 6px 10px;
4085
4111
  background: rgba(0, 0, 0, 0.03);
4086
4112
  font-size: 0.75rem;
4113
+ cursor: pointer;
4114
+ }
4115
+ .diff-header:hover {
4116
+ background: rgba(0, 0, 0, 0.05);
4117
+ }
4118
+ .diff-toggle {
4119
+ font-size: 0.625rem;
4120
+ color: var(--text-muted);
4121
+ transition: transform 0.3s var(--ease-spring);
4122
+ flex-shrink: 0;
4123
+ margin-left: auto;
4124
+ }
4125
+ .inline-diff.collapsed .diff-toggle {
4126
+ transform: rotate(-90deg);
4127
+ }
4128
+ .inline-diff.collapsed .diff-body {
4129
+ max-height: 0;
4130
+ overflow: hidden;
4131
+ opacity: 0;
4132
+ transition: max-height 0.35s var(--ease-out-expo), opacity 0.25s ease;
4087
4133
  }
4088
4134
  .diff-file-icon {
4089
4135
  display: none;
@@ -6068,6 +6114,18 @@
6068
6114
 
6069
6115
  /* 平板适配 */
6070
6116
  @media (max-width: 768px) {
6117
+ .sidebar-pin-toggle { display: none; }
6118
+ .sidebar.pinned:not(.open) {
6119
+ transform: translateX(-100%);
6120
+ pointer-events: none;
6121
+ opacity: 0;
6122
+ }
6123
+ .main-layout.sidebar-pinned {
6124
+ padding-left: 0;
6125
+ }
6126
+ .main-layout.sidebar-pinned .floating-sidebar-toggle {
6127
+ display: inline-flex;
6128
+ }
6071
6129
  .app-container {
6072
6130
  --layout-main-file-panel-width: 0px;
6073
6131
  }
@@ -7267,49 +7325,391 @@
7267
7325
  /* ── Settings modal ── */
7268
7326
 
7269
7327
  .settings-modal {
7270
- max-width: 520px;
7271
- max-height: 80vh;
7328
+ width: min(1080px, 100%);
7329
+ max-width: 1080px;
7330
+ height: min(88vh, 920px);
7331
+ max-height: min(88vh, 920px);
7332
+ min-height: min(88vh, 920px);
7333
+ overflow: hidden;
7334
+ }
7335
+
7336
+ .settings-modal-header {
7337
+ align-items: flex-start;
7338
+ gap: 16px;
7339
+ padding-bottom: 14px;
7340
+ }
7341
+
7342
+ .settings-modal-title-group {
7343
+ display: flex;
7344
+ flex-direction: column;
7345
+ gap: 4px;
7346
+ min-width: 0;
7347
+ }
7348
+
7349
+ .settings-modal-subtitle {
7350
+ font-size: 0.75rem;
7351
+ color: var(--text-muted);
7352
+ line-height: 1.5;
7353
+ }
7354
+
7355
+ .settings-modal-body {
7356
+ padding-top: 18px;
7357
+ flex: 1 1 auto;
7358
+ min-height: 0;
7359
+ overflow: hidden;
7360
+ }
7361
+
7362
+ .settings-layout {
7363
+ display: grid;
7364
+ grid-template-columns: 260px minmax(0, 1fr);
7365
+ gap: 22px;
7366
+ min-height: 0;
7367
+ height: 100%;
7368
+ align-items: stretch;
7369
+ }
7370
+
7371
+ .settings-layout > * {
7372
+ min-height: 0;
7373
+ }
7374
+
7375
+ .settings-sidebar {
7376
+ display: flex;
7377
+ flex-direction: column;
7378
+ gap: 14px;
7379
+ min-width: 0;
7380
+ min-height: 0;
7381
+ padding-right: 6px;
7382
+ border-right: 1px solid var(--border-subtle);
7383
+ overflow: hidden;
7384
+ }
7385
+
7386
+ .settings-sidebar-header,
7387
+ .settings-sidebar-title,
7388
+ .settings-sidebar-hint {
7389
+ flex-shrink: 0;
7390
+ }
7391
+
7392
+ .settings-sidebar-header {
7393
+ display: flex;
7394
+ flex-direction: column;
7395
+ gap: 4px;
7396
+ padding: 2px 4px 0;
7397
+ }
7398
+
7399
+ .settings-sidebar-title {
7400
+ font-size: 0.875rem;
7401
+ font-weight: 700;
7402
+ color: var(--text-primary);
7403
+ letter-spacing: 0.01em;
7404
+ }
7405
+
7406
+ .settings-sidebar-hint {
7407
+ font-size: 0.75rem;
7408
+ color: var(--text-muted);
7409
+ line-height: 1.5;
7272
7410
  }
7273
7411
 
7274
7412
  .settings-tabs {
7275
7413
  display: flex;
7276
- gap: 2px;
7277
- border-bottom: 1px solid var(--border-subtle);
7278
- margin-bottom: 16px;
7279
- padding-bottom: 0;
7414
+ flex-direction: column;
7415
+ gap: 8px;
7416
+ margin: 0;
7417
+ padding: 0 10px 0 0;
7418
+ min-height: 0;
7419
+ overflow: auto;
7420
+ position: relative;
7421
+ z-index: 2;
7422
+ background: transparent;
7423
+ }
7424
+
7425
+ .settings-tabs::-webkit-scrollbar {
7426
+ width: 6px;
7427
+ height: 6px;
7428
+ }
7429
+
7430
+ .settings-tabs::-webkit-scrollbar-thumb {
7431
+ background: rgba(150, 118, 85, 0.22);
7432
+ border-radius: 999px;
7433
+ }
7434
+
7435
+ .settings-tabs::-webkit-scrollbar-thumb:hover {
7436
+ background: rgba(150, 118, 85, 0.36);
7437
+ }
7438
+
7439
+ .settings-tabs {
7440
+ scrollbar-width: thin;
7280
7441
  }
7281
7442
 
7282
7443
  .settings-tab {
7283
- padding: 8px 14px;
7444
+ position: relative;
7445
+ display: flex;
7446
+ flex-direction: column;
7447
+ align-items: flex-start;
7448
+ gap: 4px;
7449
+ width: 100%;
7450
+ padding: 12px 14px 12px 16px;
7284
7451
  font-size: 0.8125rem;
7285
- font-weight: 500;
7452
+ font-weight: 600;
7286
7453
  color: var(--text-secondary);
7287
- background: none;
7288
- border: none;
7289
- border-bottom: 2px solid transparent;
7290
- border-radius: var(--radius-sm) var(--radius-sm) 0 0;
7454
+ background: rgba(255, 255, 255, 0.55);
7455
+ border: 1px solid transparent;
7456
+ border-radius: 16px;
7291
7457
  cursor: pointer;
7292
- transition: color 0.15s, border-color 0.15s, background 0.15s;
7293
- white-space: nowrap;
7458
+ transition: color 0.15s, border-color 0.15s, background 0.15s, box-shadow 0.15s, transform 0.15s;
7459
+ text-align: left;
7460
+ }
7461
+
7462
+ .settings-tab::before {
7463
+ content: "";
7464
+ position: absolute;
7465
+ left: 0;
7466
+ top: 10px;
7467
+ bottom: 10px;
7468
+ width: 3px;
7469
+ border-radius: 999px;
7470
+ background: transparent;
7471
+ transition: background 0.15s ease;
7294
7472
  }
7295
7473
 
7296
7474
  .settings-tab:hover {
7297
7475
  color: var(--text-primary);
7298
- background: rgba(197, 101, 61, 0.06);
7476
+ background: rgba(197, 101, 61, 0.08);
7477
+ border-color: rgba(197, 101, 61, 0.12);
7478
+ transform: translateX(2px);
7479
+ }
7480
+
7481
+ .settings-tab:focus-visible {
7482
+ outline: 2px solid var(--accent);
7483
+ outline-offset: 2px;
7299
7484
  }
7300
7485
 
7301
7486
  .settings-tab.active {
7302
7487
  color: var(--accent);
7303
- border-bottom-color: var(--accent);
7304
- background: var(--accent-muted);
7488
+ border-color: rgba(197, 101, 61, 0.16);
7489
+ background: linear-gradient(135deg, rgba(197, 101, 61, 0.12), rgba(197, 101, 61, 0.05));
7490
+ box-shadow: inset 0 0 0 1px rgba(197, 101, 61, 0.08), var(--shadow-xs);
7491
+ }
7492
+
7493
+ .settings-tab.active::before {
7494
+ background: var(--accent);
7495
+ }
7496
+
7497
+ .settings-tab-main {
7498
+ font-size: 0.875rem;
7499
+ font-weight: 700;
7500
+ color: inherit;
7501
+ line-height: 1.3;
7502
+ }
7503
+
7504
+ .settings-tab-meta {
7505
+ font-size: 0.75rem;
7506
+ font-weight: 500;
7507
+ color: var(--text-muted);
7508
+ line-height: 1.45;
7509
+ }
7510
+
7511
+ .settings-tab.active .settings-tab-meta {
7512
+ color: var(--text-secondary);
7513
+ }
7514
+
7515
+ .settings-content {
7516
+ min-width: 0;
7517
+ min-height: 0;
7518
+ height: 100%;
7519
+ overflow: auto;
7520
+ padding-right: 4px;
7305
7521
  }
7306
7522
 
7307
7523
  .settings-panel {
7308
7524
  display: none;
7525
+ min-height: 100%;
7526
+ padding: 2px 2px 8px;
7527
+ }
7528
+
7529
+ .settings-content::-webkit-scrollbar {
7530
+ width: 8px;
7531
+ }
7532
+
7533
+ .settings-content::-webkit-scrollbar-thumb {
7534
+ background: rgba(150, 118, 85, 0.24);
7535
+ border-radius: 999px;
7536
+ }
7537
+
7538
+ .settings-content::-webkit-scrollbar-thumb:hover {
7539
+ background: rgba(150, 118, 85, 0.38);
7540
+ }
7541
+
7542
+ .settings-content {
7543
+ scrollbar-width: thin;
7309
7544
  }
7310
7545
 
7311
7546
  .settings-panel.active {
7312
7547
  display: block;
7548
+ animation: fade-in 0.18s ease;
7549
+ }
7550
+
7551
+ .settings-panel-header {
7552
+ display: flex;
7553
+ flex-direction: column;
7554
+ gap: 6px;
7555
+ margin: 0 0 14px;
7556
+ padding-bottom: 12px;
7557
+ border-bottom: 1px solid rgba(125, 91, 57, 0.12);
7558
+ }
7559
+
7560
+ .settings-panel-title {
7561
+ font-size: 1.0625rem;
7562
+ font-weight: 700;
7563
+ color: var(--text-primary);
7564
+ line-height: 1.2;
7565
+ letter-spacing: -0.01em;
7566
+ }
7567
+
7568
+ .settings-panel-desc {
7569
+ font-size: 0.8125rem;
7570
+ color: var(--text-secondary);
7571
+ line-height: 1.55;
7572
+ }
7573
+
7574
+ .settings-panel-intro {
7575
+ margin: 0 0 14px;
7576
+ padding: 11px 13px;
7577
+ border-radius: var(--radius-md);
7578
+ background: linear-gradient(135deg, rgba(197, 101, 61, 0.08), rgba(197, 101, 61, 0.03));
7579
+ border: 1px solid rgba(197, 101, 61, 0.12);
7580
+ color: var(--text-secondary);
7581
+ font-size: 0.75rem;
7582
+ line-height: 1.6;
7583
+ }
7584
+
7585
+ .settings-panel > .settings-section-title {
7586
+ margin-top: 18px;
7587
+ }
7588
+
7589
+ .settings-panel > .settings-section-title:first-of-type {
7590
+ margin-top: 0;
7591
+ }
7592
+
7593
+ .settings-panel > .field-row,
7594
+ .settings-panel > .field,
7595
+ .settings-panel > .field-hint {
7596
+ max-width: 760px;
7597
+ }
7598
+
7599
+ .settings-panel > .switch-card-list,
7600
+ .settings-panel > .settings-card,
7601
+ .settings-panel > .settings-update-section,
7602
+ .settings-panel > .settings-notification-section,
7603
+ .settings-panel > #presets-list {
7604
+ max-width: 860px;
7605
+ }
7606
+
7607
+ .settings-panel > .settings-card + .settings-card,
7608
+ .settings-panel > .settings-update-section + .settings-update-section,
7609
+ .settings-panel > .settings-notification-section + .settings-notification-section {
7610
+ margin-top: 14px;
7611
+ }
7612
+
7613
+ .settings-panel[hidden] {
7614
+ display: none !important;
7615
+ }
7616
+
7617
+ .settings-panel-mixed-grid {
7618
+ display: grid;
7619
+ grid-template-columns: minmax(0, 1fr);
7620
+ gap: 14px;
7621
+ }
7622
+
7623
+ @media (min-width: 960px) {
7624
+ .settings-panel-mixed-grid.two-column {
7625
+ grid-template-columns: repeat(2, minmax(0, 1fr));
7626
+ }
7627
+ }
7628
+
7629
+ @media (max-width: 900px) {
7630
+ .settings-layout {
7631
+ grid-template-columns: 220px minmax(0, 1fr);
7632
+ gap: 18px;
7633
+ }
7634
+ }
7635
+
7636
+ @media (max-width: 768px) {
7637
+ .settings-modal {
7638
+ width: min(100%, 720px);
7639
+ height: min(92vh, 920px);
7640
+ max-height: min(92vh, 920px);
7641
+ min-height: min(92vh, 920px);
7642
+ }
7643
+
7644
+ .settings-layout {
7645
+ grid-template-columns: minmax(0, 1fr);
7646
+ gap: 14px;
7647
+ }
7648
+
7649
+ .settings-sidebar {
7650
+ padding-right: 0;
7651
+ border-right: none;
7652
+ }
7653
+
7654
+ .settings-tabs {
7655
+ flex-direction: row;
7656
+ flex-wrap: nowrap;
7657
+ overflow-x: auto;
7658
+ scrollbar-width: none;
7659
+ padding-right: 0;
7660
+ padding-bottom: 4px;
7661
+ }
7662
+
7663
+ .settings-tabs::-webkit-scrollbar {
7664
+ display: none;
7665
+ }
7666
+
7667
+ .settings-tab {
7668
+ flex: 0 0 200px;
7669
+ min-height: 72px;
7670
+ }
7671
+
7672
+ .settings-tab:hover {
7673
+ transform: none;
7674
+ }
7675
+
7676
+ .settings-content {
7677
+ overflow: visible;
7678
+ padding-right: 0;
7679
+ }
7680
+ }
7681
+
7682
+ @media (max-width: 480px) {
7683
+ .settings-tab {
7684
+ flex-basis: 180px;
7685
+ padding: 10px 12px 10px 14px;
7686
+ }
7687
+
7688
+ .settings-tab-main {
7689
+ font-size: 0.8125rem;
7690
+ }
7691
+
7692
+ .settings-tab-meta {
7693
+ font-size: 0.6875rem;
7694
+ }
7695
+ }
7696
+
7697
+ @supports not (position: sticky) {
7698
+ .settings-tabs,
7699
+ .settings-actions-sticky {
7700
+ position: static;
7701
+ }
7702
+ }
7703
+
7704
+ .settings-panel-intro {
7705
+ margin: 0 0 14px;
7706
+ padding: 11px 13px;
7707
+ border-radius: var(--radius-md);
7708
+ background: linear-gradient(135deg, rgba(197, 101, 61, 0.08), rgba(197, 101, 61, 0.03));
7709
+ border: 1px solid rgba(197, 101, 61, 0.12);
7710
+ color: var(--text-secondary);
7711
+ font-size: 0.75rem;
7712
+ line-height: 1.6;
7313
7713
  }
7314
7714
 
7315
7715
  .settings-about-info {
@@ -7317,17 +7717,20 @@
7317
7717
  flex-direction: column;
7318
7718
  gap: 0;
7319
7719
  margin-bottom: 18px;
7320
- background: var(--bg-secondary);
7321
- border-radius: var(--radius-md);
7322
- padding: 2px 14px;
7720
+ background: rgba(255, 255, 255, 0.5);
7721
+ border: 1px solid var(--border-subtle);
7722
+ border-radius: var(--radius-lg);
7723
+ padding: 4px 16px;
7724
+ box-shadow: var(--shadow-xs);
7323
7725
  }
7324
7726
 
7325
7727
  .settings-about-row {
7326
7728
  display: flex;
7327
7729
  justify-content: space-between;
7328
7730
  align-items: center;
7731
+ gap: 14px;
7329
7732
  font-size: 0.8125rem;
7330
- padding: 9px 0;
7733
+ padding: 12px 0;
7331
7734
  border-bottom: 1px solid var(--border-subtle);
7332
7735
  }
7333
7736
 
@@ -7337,13 +7740,17 @@
7337
7740
 
7338
7741
  .settings-label {
7339
7742
  color: var(--text-secondary);
7340
- font-weight: 500;
7743
+ font-weight: 600;
7744
+ flex: 0 0 112px;
7341
7745
  }
7342
7746
 
7343
7747
  .settings-value {
7344
7748
  color: var(--text-primary);
7345
7749
  font-family: var(--font-mono);
7346
7750
  font-size: 0.8rem;
7751
+ min-width: 0;
7752
+ text-align: right;
7753
+ word-break: break-word;
7347
7754
  }
7348
7755
 
7349
7756
  .settings-value a {
@@ -7355,38 +7762,64 @@
7355
7762
  text-decoration: underline;
7356
7763
  }
7357
7764
 
7358
- .settings-update-section {
7359
- border-top: 1px solid var(--border-subtle);
7360
- padding-top: 14px;
7765
+ .settings-update-section,
7766
+ .settings-notification-section,
7767
+ .settings-card,
7768
+ .switch-card,
7769
+ .preset-item {
7770
+ box-shadow: var(--shadow-xs);
7361
7771
  }
7362
7772
 
7773
+ .settings-update-section,
7363
7774
  .settings-notification-section {
7364
- border-top: 1px solid var(--border-subtle);
7365
- padding-top: 14px;
7366
- margin-top: 4px;
7775
+ margin-top: 14px;
7776
+ padding: 16px;
7777
+ border: 1px solid var(--border-subtle);
7778
+ border-radius: var(--radius-lg);
7779
+ background: rgba(255, 255, 255, 0.48);
7367
7780
  }
7781
+
7368
7782
  .settings-section-title {
7369
- font-size: 0.8125rem;
7370
- font-weight: 600;
7783
+ font-size: 0.875rem;
7784
+ font-weight: 700;
7371
7785
  color: var(--text-primary);
7372
7786
  margin: 0 0 12px 0;
7373
- letter-spacing: 0.02em;
7787
+ letter-spacing: 0.01em;
7374
7788
  }
7375
7789
 
7376
- .settings-update-actions {
7790
+ .settings-update-actions,
7791
+ .settings-actions {
7377
7792
  display: flex;
7378
- gap: 8px;
7793
+ gap: 10px;
7794
+ flex-wrap: wrap;
7795
+ margin-top: 12px;
7796
+ }
7797
+
7798
+ .settings-actions-sticky {
7799
+ position: sticky;
7800
+ bottom: 0;
7801
+ padding-top: 16px;
7802
+ background: linear-gradient(180deg, rgba(255, 251, 245, 0), rgba(255, 251, 245, 0.98) 28px);
7803
+ z-index: 1;
7804
+ }
7805
+
7806
+ .settings-status-message {
7379
7807
  margin-top: 10px;
7380
7808
  }
7381
7809
 
7810
+ .settings-inline-hint {
7811
+ margin-top: -4px;
7812
+ margin-bottom: 12px;
7813
+ }
7814
+
7382
7815
  .settings-connect-url-box {
7383
7816
  display: flex;
7384
7817
  align-items: center;
7385
- gap: 8px;
7386
- background: var(--bg-primary);
7818
+ gap: 10px;
7819
+ background: rgba(255, 255, 255, 0.72);
7387
7820
  border: 1px solid var(--border-subtle);
7388
- border-radius: 6px;
7389
- padding: 6px 10px;
7821
+ border-radius: 12px;
7822
+ padding: 10px 12px;
7390
7823
  margin-top: 6px;
7391
7824
  }
7392
7825
 
@@ -7417,6 +7850,10 @@
7417
7850
  align-items: center;
7418
7851
  gap: 10px;
7419
7852
  flex-direction: row;
7853
+ padding: 10px 12px;
7854
+ border-radius: 12px;
7855
+ background: rgba(255, 255, 255, 0.38);
7856
+ border: 1px solid rgba(125, 91, 57, 0.08);
7420
7857
  }
7421
7858
 
7422
7859
  .field-inline .field-label {
@@ -7425,8 +7862,8 @@
7425
7862
 
7426
7863
  .field-row {
7427
7864
  display: grid;
7428
- grid-template-columns: 1fr 1fr;
7429
- gap: 12px;
7865
+ grid-template-columns: repeat(2, minmax(0, 1fr));
7866
+ gap: 14px;
7430
7867
  margin-bottom: 14px;
7431
7868
  }
7432
7869
  .field-row .field {
@@ -7434,9 +7871,10 @@
7434
7871
  }
7435
7872
 
7436
7873
  .settings-card {
7437
- background: var(--bg-secondary);
7438
- border-radius: var(--radius-md);
7439
- padding: 16px;
7874
+ background: rgba(255, 255, 255, 0.52);
7875
+ border: 1px solid var(--border-subtle);
7876
+ border-radius: var(--radius-lg);
7877
+ padding: 18px;
7440
7878
  margin-bottom: 14px;
7441
7879
  }
7442
7880
  .settings-card .field:last-of-type {
@@ -7446,12 +7884,151 @@
7446
7884
  margin-top: 0;
7447
7885
  }
7448
7886
  .settings-card .field-input {
7449
- background: rgba(255, 255, 255, 0.6);
7887
+ background: rgba(255, 255, 255, 0.72);
7450
7888
  }
7451
7889
  .settings-card .btn-block {
7452
7890
  margin-bottom: 0;
7453
7891
  }
7454
7892
 
7893
+ .settings-panel .btn-block {
7894
+ min-height: 44px;
7895
+ }
7896
+
7897
+ .settings-panel .hint,
7898
+ .settings-panel .field-hint {
7899
+ line-height: 1.55;
7900
+ }
7901
+
7902
+ .settings-panel input[type="range"] {
7903
+ width: 100%;
7904
+ }
7905
+
7906
+ .settings-panel code {
7907
+ max-width: 100%;
7908
+ }
7909
+
7910
+ .settings-panel .hidden + .hint {
7911
+ margin-top: 0;
7912
+ }
7913
+
7914
+ .settings-panel .field:not(.field-inline) {
7915
+ margin-bottom: 16px;
7916
+ }
7917
+
7918
+ .settings-panel .field-input,
7919
+ .settings-panel .field-select,
7920
+ .settings-panel .field-file {
7921
+ width: 100%;
7922
+ }
7923
+
7924
+ .settings-panel .btn-sm {
7925
+ min-height: 34px;
7926
+ }
7927
+
7928
+ .settings-panel .app-icon-option {
7929
+ flex: 1 1 0;
7930
+ min-width: 0;
7931
+ }
7932
+
7933
+ .settings-panel .app-icon-preview {
7934
+ margin-left: auto;
7935
+ margin-right: auto;
7936
+ }
7937
+
7938
+ .settings-panel .error-message,
7939
+ .settings-panel .hint.hidden,
7940
+ .settings-panel .error-message.hidden {
7941
+ margin-top: 10px;
7942
+ }
7943
+
7944
+ .settings-panel #presets-list:empty::before {
7945
+ content: "加载中...";
7946
+ display: block;
7947
+ padding: 18px;
7948
+ color: var(--text-muted);
7949
+ text-align: center;
7950
+ font-size: 0.8125rem;
7951
+ }
7952
+
7953
+ @media (max-width: 768px) {
7954
+ .settings-about-row {
7955
+ align-items: flex-start;
7956
+ }
7957
+
7958
+ .settings-update-actions,
7959
+ .settings-actions {
7960
+ flex-direction: column;
7961
+ }
7962
+
7963
+ .settings-update-actions .btn,
7964
+ .settings-actions .btn {
7965
+ width: 100%;
7966
+ }
7967
+
7968
+ .settings-connect-url-box {
7969
+ flex-direction: column;
7970
+ align-items: stretch;
7971
+ }
7972
+ }
7973
+
7974
+ @media (max-width: 640px) {
7975
+ .settings-modal-header {
7976
+ gap: 10px;
7977
+ }
7978
+
7979
+ .settings-modal-subtitle {
7980
+ font-size: 0.6875rem;
7981
+ }
7982
+
7983
+ .settings-panel {
7984
+ padding-left: 0;
7985
+ padding-right: 0;
7986
+ }
7987
+
7988
+ .settings-about-info,
7989
+ .settings-update-section,
7990
+ .settings-notification-section,
7991
+ .settings-card {
7992
+ padding-left: 14px;
7993
+ padding-right: 14px;
7994
+ }
7995
+
7996
+ .settings-about-row {
7997
+ flex-direction: column;
7998
+ align-items: stretch;
7999
+ gap: 4px;
8000
+ }
8001
+
8002
+ .settings-label,
8003
+ .settings-value {
8004
+ flex: none;
8005
+ text-align: left;
8006
+ }
8007
+
8008
+ .field-inline {
8009
+ align-items: flex-start;
8010
+ }
8011
+
8012
+ .settings-panel .btn-icon {
8013
+ min-width: 34px;
8014
+ min-height: 34px;
8015
+ }
8016
+ }
8017
+
8018
+ @media (min-width: 769px) {
8019
+ .settings-panel .btn-block {
8020
+ width: auto;
8021
+ min-width: 180px;
8022
+ }
8023
+ }
8024
+
8025
+ @supports not (position: sticky) {
8026
+ .settings-tabs,
8027
+ .settings-actions-sticky {
8028
+ position: static;
8029
+ }
8030
+ }
8031
+
7455
8032
  .empty-state-compact {
7456
8033
  display: flex;
7457
8034
  flex-direction: column;
@@ -7477,20 +8054,21 @@
7477
8054
  .switch-card-list {
7478
8055
  display: flex;
7479
8056
  flex-direction: column;
7480
- gap: 8px;
8057
+ gap: 10px;
7481
8058
  }
7482
8059
  .switch-card {
7483
8060
  display: block;
7484
- background: var(--bg-secondary);
8061
+ background: rgba(255, 255, 255, 0.5);
7485
8062
  border: 1px solid var(--border);
7486
- border-radius: 10px;
7487
- padding: 12px 14px;
8063
+ border-radius: 14px;
8064
+ padding: 14px 16px;
7488
8065
  cursor: pointer;
7489
- transition: border-color 0.2s, background 0.2s;
8066
+ transition: border-color 0.2s, background 0.2s, transform 0.2s;
7490
8067
  user-select: none;
7491
8068
  }
7492
8069
  .switch-card:hover {
7493
8070
  border-color: var(--text-muted);
8071
+ transform: translateY(-1px);
7494
8072
  }
7495
8073
  .switch-card-header {
7496
8074
  display: flex;
@@ -7569,22 +8147,38 @@
7569
8147
  display: flex;
7570
8148
  justify-content: space-between;
7571
8149
  align-items: center;
7572
- padding: 10px 12px;
7573
- background: var(--bg-secondary);
7574
- border-radius: 8px;
7575
- margin-bottom: 8px;
8150
+ gap: 12px;
8151
+ padding: 12px 14px;
8152
+ background: rgba(255, 255, 255, 0.52);
8153
+ border: 1px solid var(--border-subtle);
8154
+ border-radius: 12px;
8155
+ margin-bottom: 10px;
7576
8156
  font-size: 0.8125rem;
7577
8157
  }
7578
8158
 
7579
8159
  .preset-label {
7580
- font-weight: 500;
8160
+ font-weight: 600;
7581
8161
  color: var(--text-primary);
7582
8162
  }
7583
8163
 
7584
8164
  .preset-detail {
8165
+ min-width: 0;
8166
+ text-align: right;
7585
8167
  color: var(--text-secondary);
7586
8168
  font-family: var(--font-mono);
7587
8169
  font-size: 0.75rem;
8170
+ word-break: break-word;
8171
+ }
8172
+
8173
+ @media (max-width: 640px) {
8174
+ .preset-item {
8175
+ flex-direction: column;
8176
+ align-items: flex-start;
8177
+ }
8178
+
8179
+ .preset-detail {
8180
+ text-align: left;
8181
+ }
7588
8182
  }
7589
8183
 
7590
8184
  .file-preview-modal {