codexmate 0.0.17 → 0.0.19

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.
package/web-ui/styles.css CHANGED
@@ -37,11 +37,13 @@
37
37
 
38
38
  --font-size-display: 52px;
39
39
  --font-size-title: 18px;
40
+ --font-size-large: 20px;
40
41
  --font-size-body: 15px;
41
42
  --font-size-secondary: 13px;
42
43
  --font-size-caption: 11px;
43
44
 
44
45
  --font-weight-display: 600;
46
+ --font-weight-primary: 600;
45
47
  --font-weight-title: 600;
46
48
  --font-weight-body: 400;
47
49
  --font-weight-secondary: 500;
@@ -59,6 +61,7 @@
59
61
 
60
62
  /* 圆角系统 */
61
63
  --radius-sm: 8px;
64
+ --radius-md: 10px;
62
65
  --radius-lg: 12px;
63
66
  --radius-xl: 18px;
64
67
  --radius-full: 50px;
@@ -164,7 +167,7 @@ body.force-compact .card {
164
167
  align-items: flex-start;
165
168
  justify-content: flex-start;
166
169
  padding: 12px;
167
- gap: 10px;
170
+ gap: 8px;
168
171
  }
169
172
 
170
173
  body.force-compact .card-leading {
@@ -466,7 +469,7 @@ body::after {
466
469
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.98) 0%, rgba(255, 247, 240, 0.95) 100%);
467
470
  color: var(--color-text-secondary);
468
471
  cursor: pointer;
469
- transition: all var(--transition-normal) var(--ease-spring);
472
+ transition: none;
470
473
  display: flex;
471
474
  flex-direction: column;
472
475
  gap: 6px;
@@ -487,6 +490,21 @@ body::after {
487
490
  box-shadow: var(--shadow-float);
488
491
  }
489
492
 
493
+ .side-item.nav-intent-active {
494
+ border-color: var(--color-brand);
495
+ background: linear-gradient(135deg, rgba(201, 94, 75, 0.14), rgba(255, 255, 255, 0.96));
496
+ color: var(--color-text-primary);
497
+ box-shadow: var(--shadow-float);
498
+ }
499
+
500
+ .side-item.nav-intent-inactive,
501
+ .side-item.active.nav-intent-inactive {
502
+ border-color: var(--color-border-soft);
503
+ background: linear-gradient(180deg, rgba(255, 255, 255, 0.98) 0%, rgba(255, 247, 240, 0.95) 100%);
504
+ color: var(--color-text-secondary);
505
+ box-shadow: var(--shadow-subtle);
506
+ }
507
+
490
508
  .side-item-title {
491
509
  font-size: var(--font-size-body);
492
510
  font-weight: var(--font-weight-secondary);
@@ -959,7 +977,7 @@ body::after {
959
977
  color: var(--color-text-secondary);
960
978
  text-align: center;
961
979
  cursor: pointer;
962
- transition: all var(--transition-normal) var(--ease-spring);
980
+ transition: none;
963
981
  box-shadow: var(--shadow-subtle);
964
982
  }
965
983
 
@@ -976,6 +994,25 @@ body::after {
976
994
  box-shadow: 0 10px 24px rgba(27, 23, 20, 0.08);
977
995
  }
978
996
 
997
+ .top-tab.nav-intent-active {
998
+ border-color: var(--color-brand);
999
+ color: var(--color-text-primary);
1000
+ background: linear-gradient(135deg, rgba(201, 94, 75, 0.12), rgba(255, 255, 255, 0.95));
1001
+ box-shadow: 0 10px 24px rgba(27, 23, 20, 0.08);
1002
+ }
1003
+
1004
+ .top-tab.nav-intent-inactive,
1005
+ .top-tab.active.nav-intent-inactive {
1006
+ border-color: rgba(216, 201, 184, 0.55);
1007
+ color: var(--color-text-secondary);
1008
+ background: rgba(255, 255, 255, 0.96);
1009
+ box-shadow: var(--shadow-subtle);
1010
+ }
1011
+
1012
+ #panel-sessions.session-panel-fast-hidden {
1013
+ display: none !important;
1014
+ }
1015
+
979
1016
  .config-subtabs {
980
1017
  display: flex;
981
1018
  gap: 8px;
@@ -1012,6 +1049,25 @@ body::after {
1012
1049
  box-shadow: var(--shadow-card);
1013
1050
  }
1014
1051
 
1052
+ .settings-subtabs {
1053
+ margin-bottom: var(--spacing-sm);
1054
+ }
1055
+
1056
+ .settings-tab-badge {
1057
+ display: inline-flex;
1058
+ align-items: center;
1059
+ justify-content: center;
1060
+ min-width: 18px;
1061
+ height: 18px;
1062
+ margin-left: 6px;
1063
+ padding: 0 6px;
1064
+ border-radius: 999px;
1065
+ background: rgba(210, 107, 90, 0.14);
1066
+ color: var(--color-text-secondary);
1067
+ font-size: 11px;
1068
+ line-height: 1;
1069
+ }
1070
+
1015
1071
  .content-wrapper {
1016
1072
  background: rgba(255, 255, 255, 0.94);
1017
1073
  border: 1px solid rgba(216, 201, 184, 0.35);
@@ -1273,9 +1329,9 @@ body::after {
1273
1329
  grid-auto-columns: max-content;
1274
1330
  column-gap: var(--spacing-xs);
1275
1331
  row-gap: 6px;
1276
- align-items: start;
1332
+ align-items: center;
1277
1333
  justify-content: end;
1278
- align-self: flex-start;
1334
+ align-self: center;
1279
1335
  }
1280
1336
 
1281
1337
  .card-trailing .card-actions {
@@ -1448,6 +1504,22 @@ body::after {
1448
1504
  margin-bottom: var(--spacing-xs);
1449
1505
  }
1450
1506
 
1507
+ .settings-tab-header {
1508
+ align-items: flex-start;
1509
+ }
1510
+
1511
+ .settings-tab-actions {
1512
+ display: flex;
1513
+ flex-wrap: wrap;
1514
+ gap: 8px;
1515
+ justify-content: flex-end;
1516
+ }
1517
+
1518
+ .settings-tab-actions .btn-tool,
1519
+ .settings-tab-actions .btn-tool-compact {
1520
+ width: auto;
1521
+ }
1522
+
1451
1523
  .selector-title {
1452
1524
  font-size: var(--font-size-caption);
1453
1525
  font-weight: var(--font-weight-secondary);
@@ -1822,11 +1894,11 @@ body::after {
1822
1894
 
1823
1895
  .session-source {
1824
1896
  font-size: var(--font-size-caption);
1825
- color: var(--color-brand);
1826
- border: 1px solid rgba(210, 107, 90, 0.25);
1897
+ color: var(--color-text-tertiary);
1898
+ border: 1px solid var(--color-border-soft);
1827
1899
  border-radius: 999px;
1828
1900
  padding: 2px 8px;
1829
- background: rgba(210, 107, 90, 0.08);
1901
+ background: var(--color-surface-alt);
1830
1902
  white-space: nowrap;
1831
1903
  }
1832
1904
 
@@ -1847,6 +1919,12 @@ body::after {
1847
1919
  flex-shrink: 0;
1848
1920
  }
1849
1921
 
1922
+ .trash-list-footer {
1923
+ display: flex;
1924
+ justify-content: center;
1925
+ margin-top: var(--spacing-sm);
1926
+ }
1927
+
1850
1928
  .btn-session-export,
1851
1929
  .btn-session-open,
1852
1930
  .btn-session-clone,
@@ -1952,6 +2030,110 @@ body::after {
1952
2030
  box-shadow: inset 0 0 0 6px rgba(255, 255, 255, 0.7);
1953
2031
  }
1954
2032
 
2033
+ .trash-list {
2034
+ display: grid;
2035
+ gap: 12px;
2036
+ margin-top: 12px;
2037
+ }
2038
+
2039
+ .trash-item.session-item {
2040
+ min-height: auto;
2041
+ height: auto;
2042
+ cursor: default;
2043
+ content-visibility: visible;
2044
+ contain-intrinsic-size: auto;
2045
+ }
2046
+
2047
+ .trash-item.session-item:hover,
2048
+ .trash-item.session-item:active {
2049
+ transform: none;
2050
+ border-color: var(--color-border-soft);
2051
+ background: linear-gradient(to bottom, var(--color-surface) 0%, rgba(255, 255, 255, 0.92) 100%);
2052
+ box-shadow: var(--shadow-subtle);
2053
+ }
2054
+
2055
+ .trash-item.session-item::before {
2056
+ background: linear-gradient(180deg, rgba(70, 86, 110, 0.26), rgba(70, 86, 110, 0.08));
2057
+ }
2058
+
2059
+ .trash-item-main {
2060
+ min-width: 0;
2061
+ flex: 1;
2062
+ }
2063
+
2064
+ .trash-item-mainline {
2065
+ display: flex;
2066
+ align-items: flex-start;
2067
+ gap: 8px;
2068
+ }
2069
+
2070
+ .trash-item-title {
2071
+ flex: 1;
2072
+ font-size: var(--font-size-body);
2073
+ font-weight: var(--font-weight-secondary);
2074
+ color: var(--color-text-primary);
2075
+ line-height: 1.4;
2076
+ display: -webkit-box;
2077
+ -webkit-line-clamp: 2;
2078
+ -webkit-box-orient: vertical;
2079
+ white-space: normal;
2080
+ overflow: hidden;
2081
+ overflow-wrap: anywhere;
2082
+ }
2083
+
2084
+ .trash-item-meta {
2085
+ margin-top: 6px;
2086
+ }
2087
+
2088
+ .trash-item-side {
2089
+ display: flex;
2090
+ flex-direction: column;
2091
+ align-items: flex-end;
2092
+ gap: 8px;
2093
+ flex-shrink: 0;
2094
+ min-width: 132px;
2095
+ }
2096
+
2097
+ .trash-item-actions {
2098
+ display: flex;
2099
+ align-self: flex-end;
2100
+ justify-content: flex-end;
2101
+ flex-wrap: wrap;
2102
+ gap: 8px;
2103
+ }
2104
+
2105
+ .trash-item-time {
2106
+ width: 100%;
2107
+ text-align: right;
2108
+ white-space: nowrap;
2109
+ color: var(--color-text-tertiary);
2110
+ }
2111
+
2112
+ .trash-item-path {
2113
+ margin-top: 8px;
2114
+ display: grid;
2115
+ grid-template-columns: 48px minmax(0, 1fr);
2116
+ gap: 8px;
2117
+ align-items: start;
2118
+ white-space: normal;
2119
+ overflow-wrap: anywhere;
2120
+ }
2121
+
2122
+ .trash-item-label {
2123
+ display: inline-block;
2124
+ color: var(--color-text-secondary);
2125
+ font-weight: var(--font-weight-secondary);
2126
+ }
2127
+
2128
+ .trash-item-path span:last-child {
2129
+ min-width: 0;
2130
+ word-break: break-word;
2131
+ }
2132
+
2133
+ .trash-item .session-count-badge {
2134
+ margin-top: 2px;
2135
+ }
2136
+
1955
2137
  .session-layout {
1956
2138
  display: grid;
1957
2139
  grid-template-columns: minmax(260px, 360px) minmax(0, 1fr);
@@ -2040,6 +2222,8 @@ body::after {
2040
2222
  position: relative;
2041
2223
  overflow: hidden;
2042
2224
  min-height: 102px;
2225
+ content-visibility: auto;
2226
+ contain-intrinsic-size: 102px;
2043
2227
  }
2044
2228
 
2045
2229
  .session-item-header {
@@ -2086,6 +2270,16 @@ body::after {
2086
2270
  box-shadow: 0 6px 16px rgba(210, 107, 90, 0.12);
2087
2271
  }
2088
2272
 
2273
+ .session-item.pinned {
2274
+ border-color: rgba(208, 88, 58, 0.42);
2275
+ background: linear-gradient(to bottom, rgba(210, 107, 90, 0.12) 0%, rgba(255, 251, 247, 0.98) 100%);
2276
+ box-shadow: 0 8px 18px rgba(210, 107, 90, 0.10);
2277
+ }
2278
+
2279
+ .session-item.pinned::before {
2280
+ background: linear-gradient(180deg, rgba(201, 94, 75, 0.8), rgba(201, 94, 75, 0.32));
2281
+ }
2282
+
2089
2283
  .session-item.active::before {
2090
2284
  background: linear-gradient(180deg, rgba(201, 94, 75, 0.9), rgba(201, 94, 75, 0.4));
2091
2285
  }
@@ -2144,6 +2338,26 @@ body::after {
2144
2338
  height: 16px;
2145
2339
  }
2146
2340
 
2341
+ .session-item-pin {
2342
+ border-color: rgba(208, 88, 58, 0.24);
2343
+ }
2344
+
2345
+ .session-item-pin .pin-icon,
2346
+ .session-item-pin svg {
2347
+ color: rgba(208, 88, 58, 0.78);
2348
+ }
2349
+
2350
+ .session-item.pinned .session-item-pin {
2351
+ background: rgba(208, 88, 58, 0.16);
2352
+ border-color: rgba(208, 88, 58, 0.46);
2353
+ box-shadow: inset 0 0 0 1px rgba(208, 88, 58, 0.08);
2354
+ }
2355
+
2356
+ .session-item.pinned .session-item-pin .pin-icon,
2357
+ .session-item.pinned .session-item-pin svg {
2358
+ color: var(--color-brand-dark);
2359
+ }
2360
+
2147
2361
  .session-item-sub.session-item-snippet,
2148
2362
  .session-preview-meta,
2149
2363
  .session-preview-title {
@@ -2301,6 +2515,7 @@ body::after {
2301
2515
  display: flex;
2302
2516
  flex-direction: column;
2303
2517
  gap: 10px;
2518
+ contain: layout style;
2304
2519
  }
2305
2520
 
2306
2521
  .session-timeline {
@@ -2340,21 +2555,22 @@ body::after {
2340
2555
  transform: translate(-50%, -50%);
2341
2556
  cursor: pointer;
2342
2557
  padding: 0;
2343
- transition: transform var(--transition-fast) var(--ease-spring), background-color var(--transition-fast) var(--ease-spring), border-color var(--transition-fast) var(--ease-spring), box-shadow var(--transition-fast) var(--ease-spring);
2558
+ transition: none;
2559
+ will-change: auto;
2344
2560
  }
2345
2561
 
2346
2562
  .session-timeline-node:hover {
2347
- transform: translate(-50%, -50%) scale(1.2);
2563
+ transform: translate(-50%, -50%);
2348
2564
  border-color: rgba(201, 94, 75, 0.85);
2349
2565
  background: rgba(255, 255, 255, 1);
2350
- box-shadow: 0 0 0 3px rgba(201, 94, 75, 0.15);
2566
+ box-shadow: none;
2351
2567
  }
2352
2568
 
2353
2569
  .session-timeline-node.active {
2354
- transform: translate(-50%, -50%) scale(1.2);
2570
+ transform: translate(-50%, -50%);
2355
2571
  border-color: rgba(201, 94, 75, 0.95);
2356
2572
  background: rgba(201, 94, 75, 0.95);
2357
- box-shadow: 0 0 0 3px rgba(201, 94, 75, 0.2);
2573
+ box-shadow: none;
2358
2574
  }
2359
2575
 
2360
2576
  .session-timeline-current {
@@ -2378,6 +2594,7 @@ body::after {
2378
2594
  background: rgba(255, 255, 255, 0.75);
2379
2595
  position: relative;
2380
2596
  box-shadow: 0 2px 6px rgba(31, 26, 23, 0.04);
2597
+ contain: layout style paint;
2381
2598
  }
2382
2599
 
2383
2600
  .session-msg.user {
@@ -2549,6 +2766,44 @@ body::after {
2549
2766
  .session-toolbar-group.session-toolbar-actions .btn-tool {
2550
2767
  width: 100%;
2551
2768
  }
2769
+
2770
+ .trash-item-header {
2771
+ flex-direction: column;
2772
+ align-items: stretch;
2773
+ gap: 10px;
2774
+ }
2775
+
2776
+ .trash-item-mainline {
2777
+ flex-direction: column;
2778
+ align-items: flex-start;
2779
+ gap: 6px;
2780
+ }
2781
+
2782
+ .trash-item-side {
2783
+ width: 100%;
2784
+ min-width: 0;
2785
+ align-items: stretch;
2786
+ gap: 10px;
2787
+ }
2788
+
2789
+ .trash-item-actions {
2790
+ display: grid;
2791
+ grid-template-columns: repeat(2, minmax(0, 1fr));
2792
+ justify-content: flex-start;
2793
+ width: 100%;
2794
+ }
2795
+
2796
+ .trash-item-actions .btn-mini {
2797
+ width: 100%;
2798
+ min-height: 40px;
2799
+ display: inline-flex;
2800
+ align-items: center;
2801
+ justify-content: center;
2802
+ }
2803
+
2804
+ .trash-item-time {
2805
+ text-align: right;
2806
+ }
2552
2807
  }
2553
2808
 
2554
2809
  .btn[disabled] {
@@ -2632,6 +2887,22 @@ body::after {
2632
2887
  letter-spacing: -0.01em;
2633
2888
  }
2634
2889
 
2890
+ .confirm-dialog {
2891
+ max-width: 460px;
2892
+ }
2893
+
2894
+ .confirm-dialog-message {
2895
+ font-size: var(--font-size-body);
2896
+ line-height: 1.7;
2897
+ color: var(--color-text-secondary);
2898
+ white-space: pre-wrap;
2899
+ }
2900
+
2901
+ .confirm-dialog-actions {
2902
+ margin-top: var(--spacing-lg);
2903
+ justify-content: flex-end;
2904
+ }
2905
+
2635
2906
  .install-list {
2636
2907
  display: flex;
2637
2908
  flex-direction: column;
@@ -2843,6 +3114,119 @@ body::after {
2843
3114
  line-height: 1.4;
2844
3115
  }
2845
3116
 
3117
+
3118
+ .agents-diff-hint {
3119
+ margin-top: 6px;
3120
+ color: var(--color-text-tertiary);
3121
+ font-size: var(--font-size-caption);
3122
+ }
3123
+
3124
+ .agents-diff-save-alert {
3125
+ margin-bottom: 8px;
3126
+ padding: 8px 10px;
3127
+ border-radius: var(--radius-sm);
3128
+ border: 1px solid rgba(238, 178, 90, 0.45);
3129
+ background: rgba(255, 236, 204, 0.72);
3130
+ color: #8d5b31;
3131
+ font-size: var(--font-size-caption);
3132
+ font-weight: var(--font-weight-secondary);
3133
+ }
3134
+
3135
+ .agents-diff-summary {
3136
+ display: flex;
3137
+ align-items: center;
3138
+ gap: 8px;
3139
+ margin-bottom: 8px;
3140
+ font-size: var(--font-size-caption);
3141
+ color: var(--color-text-tertiary);
3142
+ }
3143
+
3144
+ .agents-diff-stat {
3145
+ display: inline-flex;
3146
+ align-items: center;
3147
+ gap: 4px;
3148
+ padding: 2px 8px;
3149
+ border-radius: 999px;
3150
+ border: 1px solid transparent;
3151
+ font-weight: var(--font-weight-secondary);
3152
+ }
3153
+
3154
+ .agents-diff-stat.add {
3155
+ color: #2b6a3b;
3156
+ background: rgba(57, 181, 97, 0.12);
3157
+ border-color: rgba(57, 181, 97, 0.2);
3158
+ }
3159
+
3160
+ .agents-diff-stat.del {
3161
+ color: #8a2f36;
3162
+ background: rgba(220, 95, 108, 0.12);
3163
+ border-color: rgba(220, 95, 108, 0.2);
3164
+ }
3165
+
3166
+
3167
+ .agents-diff-empty {
3168
+ padding: 10px 12px;
3169
+ font-size: var(--font-size-caption);
3170
+ color: var(--color-text-tertiary);
3171
+ border: 1px dashed var(--color-border-soft);
3172
+ border-radius: var(--radius-sm);
3173
+ background: rgba(255, 255, 255, 0.6);
3174
+ }
3175
+
3176
+ .agents-diff-view {
3177
+ border: 1px solid var(--color-border-soft);
3178
+ border-radius: var(--radius-sm);
3179
+ background: rgba(255, 255, 255, 0.7);
3180
+ font-family: var(--font-family-mono);
3181
+ font-size: 12px;
3182
+ line-height: 1.55;
3183
+ max-height: min(32vh, 280px);
3184
+ overflow: auto;
3185
+ }
3186
+
3187
+
3188
+ .agents-diff-editor {
3189
+ min-height: min(60vh, 520px);
3190
+ max-height: min(65vh, 620px);
3191
+ }
3192
+
3193
+ .agents-diff-line {
3194
+ display: grid;
3195
+ grid-template-columns: 16px 1fr;
3196
+ gap: 8px;
3197
+ padding: 2px 10px;
3198
+ align-items: start;
3199
+ }
3200
+
3201
+ .agents-diff-line + .agents-diff-line {
3202
+ border-top: none;
3203
+ }
3204
+
3205
+ .agents-diff-line.add {
3206
+ background: rgba(57, 181, 97, 0.08);
3207
+ }
3208
+
3209
+ .agents-diff-line.del {
3210
+ background: rgba(220, 95, 108, 0.1);
3211
+ }
3212
+
3213
+ .agents-diff-line.context {
3214
+ background: transparent;
3215
+ }
3216
+
3217
+
3218
+ .agents-diff-line-sign {
3219
+ text-align: center;
3220
+ color: var(--color-text-tertiary);
3221
+ min-height: 20px;
3222
+ }
3223
+
3224
+ .agents-diff-line-text {
3225
+ white-space: pre-wrap;
3226
+ word-break: break-word;
3227
+ color: var(--color-text-primary);
3228
+ }
3229
+
2846
3230
  .form-input:disabled,
2847
3231
  .form-input[readonly] {
2848
3232
  background: linear-gradient(to right, var(--color-bg) 0%, rgba(247, 241, 232, 0.5) 100%);
@@ -3287,6 +3671,160 @@ body::after {
3287
3671
  line-height: 1.45;
3288
3672
  }
3289
3673
 
3674
+ .market-overview-section {
3675
+ margin-bottom: var(--spacing-sm);
3676
+ }
3677
+
3678
+ .market-overview-header {
3679
+ gap: var(--spacing-sm);
3680
+ align-items: flex-start;
3681
+ }
3682
+
3683
+ .market-header-actions {
3684
+ flex-wrap: wrap;
3685
+ }
3686
+
3687
+ .market-target-switch {
3688
+ display: flex;
3689
+ flex-wrap: wrap;
3690
+ gap: 8px;
3691
+ margin-bottom: var(--spacing-sm);
3692
+ }
3693
+
3694
+ .market-target-switch-compact {
3695
+ justify-content: flex-end;
3696
+ margin-bottom: 0;
3697
+ }
3698
+
3699
+ .market-target-chip {
3700
+ border: 1px solid rgba(160, 145, 130, 0.28);
3701
+ border-radius: 999px;
3702
+ background: rgba(255, 255, 255, 0.92);
3703
+ color: var(--color-text-secondary);
3704
+ padding: 8px 14px;
3705
+ font-size: var(--font-size-caption);
3706
+ font-weight: var(--font-weight-secondary);
3707
+ cursor: pointer;
3708
+ transition: border-color var(--transition-fast) var(--ease-smooth), background var(--transition-fast) var(--ease-smooth), color var(--transition-fast) var(--ease-smooth), box-shadow var(--transition-fast) var(--ease-smooth);
3709
+ }
3710
+
3711
+ .market-target-chip:disabled,
3712
+ .market-target-chip[disabled] {
3713
+ cursor: not-allowed;
3714
+ opacity: 0.64;
3715
+ pointer-events: none;
3716
+ box-shadow: none;
3717
+ }
3718
+
3719
+ .market-target-chip.active {
3720
+ border-color: rgba(208, 88, 58, 0.4);
3721
+ background: linear-gradient(to bottom, rgba(255, 243, 236, 0.98) 0%, rgba(255, 232, 220, 0.86) 100%);
3722
+ color: #8c3a1f;
3723
+ box-shadow: var(--shadow-subtle);
3724
+ }
3725
+
3726
+ .market-root-box {
3727
+ margin-bottom: var(--spacing-sm);
3728
+ }
3729
+
3730
+ .market-grid {
3731
+ display: grid;
3732
+ grid-template-columns: repeat(2, minmax(0, 1fr));
3733
+ gap: var(--spacing-sm);
3734
+ }
3735
+
3736
+ .market-panel {
3737
+ margin-bottom: 0;
3738
+ min-width: 0;
3739
+ }
3740
+
3741
+ .market-actions-panel {
3742
+ grid-column: 1 / -1;
3743
+ }
3744
+
3745
+ .market-panel-wide {
3746
+ grid-column: 1 / -1;
3747
+ }
3748
+
3749
+ .market-preview-list {
3750
+ display: grid;
3751
+ gap: 10px;
3752
+ }
3753
+
3754
+ .market-preview-item {
3755
+ display: flex;
3756
+ align-items: flex-start;
3757
+ justify-content: space-between;
3758
+ gap: var(--spacing-xs);
3759
+ padding: 10px 12px;
3760
+ border: 1px solid rgba(160, 145, 130, 0.18);
3761
+ border-radius: var(--radius-sm);
3762
+ background: rgba(255, 255, 255, 0.64);
3763
+ }
3764
+
3765
+ .market-preview-main {
3766
+ min-width: 0;
3767
+ display: flex;
3768
+ flex-direction: column;
3769
+ gap: 4px;
3770
+ }
3771
+
3772
+ .market-preview-title {
3773
+ font-size: var(--font-size-body);
3774
+ font-weight: var(--font-weight-secondary);
3775
+ color: var(--color-text-secondary);
3776
+ overflow-wrap: anywhere;
3777
+ }
3778
+
3779
+ .market-preview-meta {
3780
+ font-size: var(--font-size-caption);
3781
+ color: var(--color-text-tertiary);
3782
+ line-height: 1.45;
3783
+ overflow-wrap: anywhere;
3784
+ }
3785
+
3786
+ .market-action-grid {
3787
+ display: grid;
3788
+ grid-template-columns: repeat(3, minmax(0, 1fr));
3789
+ gap: var(--spacing-xs);
3790
+ }
3791
+
3792
+ .market-action-card {
3793
+ border: 1px solid rgba(160, 145, 130, 0.24);
3794
+ border-radius: var(--radius-sm);
3795
+ background: linear-gradient(to bottom, rgba(255, 255, 255, 0.96) 0%, rgba(255, 248, 242, 0.84) 100%);
3796
+ color: var(--color-text-secondary);
3797
+ text-align: left;
3798
+ padding: 14px;
3799
+ display: flex;
3800
+ flex-direction: column;
3801
+ gap: 6px;
3802
+ cursor: pointer;
3803
+ transition: transform var(--transition-fast) var(--ease-smooth), box-shadow var(--transition-fast) var(--ease-smooth), border-color var(--transition-fast) var(--ease-smooth);
3804
+ }
3805
+
3806
+ .market-action-card:hover:not(:disabled) {
3807
+ transform: translateY(-1px);
3808
+ border-color: rgba(208, 88, 58, 0.34);
3809
+ box-shadow: var(--shadow-subtle);
3810
+ }
3811
+
3812
+ .market-action-card:disabled {
3813
+ cursor: not-allowed;
3814
+ opacity: 0.64;
3815
+ }
3816
+
3817
+ .market-action-title {
3818
+ font-size: var(--font-size-body);
3819
+ font-weight: var(--font-weight-secondary);
3820
+ }
3821
+
3822
+ .market-action-copy {
3823
+ font-size: var(--font-size-caption);
3824
+ color: var(--color-text-tertiary);
3825
+ line-height: 1.45;
3826
+ }
3827
+
3290
3828
  .skills-filter-row {
3291
3829
  display: flex;
3292
3830
  gap: var(--spacing-xs);
@@ -3795,6 +4333,10 @@ textarea:focus-visible {
3795
4333
  .skills-modal-actions {
3796
4334
  align-items: flex-start;
3797
4335
  }
4336
+
4337
+ .market-target-switch-compact {
4338
+ justify-content: flex-start;
4339
+ }
3798
4340
  }
3799
4341
 
3800
4342
  @media (max-width: 720px) {
@@ -3821,12 +4363,35 @@ textarea:focus-visible {
3821
4363
  flex-wrap: wrap;
3822
4364
  }
3823
4365
 
4366
+ .market-grid {
4367
+ grid-template-columns: 1fr;
4368
+ }
4369
+
4370
+ .market-action-grid {
4371
+ grid-template-columns: 1fr;
4372
+ }
4373
+
3824
4374
  .status-chip {
3825
4375
  flex: 1 1 100%;
3826
4376
  }
3827
4377
  }
3828
4378
 
3829
4379
  @media (max-width: 540px) {
4380
+ .session-item-copy.session-item-pin {
4381
+ width: 44px;
4382
+ height: 44px;
4383
+ min-width: 44px;
4384
+ min-height: 44px;
4385
+ padding: 10px;
4386
+ transform: none;
4387
+ }
4388
+
4389
+ .session-item-copy.session-item-pin svg,
4390
+ .session-item-copy.session-item-pin .pin-icon {
4391
+ width: 16px;
4392
+ height: 16px;
4393
+ }
4394
+
3830
4395
  body {
3831
4396
  padding: var(--spacing-md) var(--spacing-sm);
3832
4397
  }
@@ -3886,6 +4451,7 @@ textarea:focus-visible {
3886
4451
  .session-item {
3887
4452
  min-height: 75px;
3888
4453
  height: 75px;
4454
+ contain-intrinsic-size: 75px;
3889
4455
  padding: 12px 14px;
3890
4456
  }
3891
4457
 
@@ -3936,6 +4502,79 @@ textarea:focus-visible {
3936
4502
  align-items: center;
3937
4503
  }
3938
4504
 
4505
+ .trash-item.session-item {
4506
+ min-height: auto;
4507
+ height: auto;
4508
+ contain-intrinsic-size: auto;
4509
+ }
4510
+
4511
+ .trash-item-header {
4512
+ flex-direction: column;
4513
+ align-items: stretch;
4514
+ gap: 10px;
4515
+ }
4516
+
4517
+ .trash-item-mainline {
4518
+ flex-direction: column;
4519
+ align-items: flex-start;
4520
+ gap: 6px;
4521
+ }
4522
+
4523
+ .trash-item-side {
4524
+ width: 100%;
4525
+ min-width: 0;
4526
+ align-items: stretch;
4527
+ gap: 10px;
4528
+ padding-top: 8px;
4529
+ border-top: 1px dashed rgba(216, 201, 184, 0.55);
4530
+ }
4531
+
4532
+ .trash-item-actions {
4533
+ display: grid;
4534
+ grid-template-columns: repeat(2, minmax(0, 1fr));
4535
+ justify-content: flex-start;
4536
+ width: 100%;
4537
+ }
4538
+
4539
+ .trash-item-actions .btn-mini {
4540
+ width: 100%;
4541
+ min-height: 44px;
4542
+ display: inline-flex;
4543
+ align-items: center;
4544
+ justify-content: center;
4545
+ }
4546
+
4547
+ .trash-item .session-count-badge {
4548
+ align-self: flex-start;
4549
+ margin-top: 0;
4550
+ }
4551
+
4552
+ .trash-item-title {
4553
+ -webkit-line-clamp: 3;
4554
+ max-height: none;
4555
+ white-space: normal;
4556
+ text-overflow: clip;
4557
+ overflow: hidden;
4558
+ }
4559
+
4560
+ .trash-item-meta {
4561
+ margin-top: 6px;
4562
+ margin-bottom: 0;
4563
+ gap: 6px;
4564
+ align-items: center;
4565
+ }
4566
+
4567
+ .trash-item-time {
4568
+ padding-top: 2px;
4569
+ line-height: 1.35;
4570
+ text-align: right;
4571
+ }
4572
+
4573
+ .trash-item-path {
4574
+ grid-template-columns: 1fr;
4575
+ gap: 4px;
4576
+ }
4577
+
3939
4578
  .card {
3940
4579
  padding: 8px;
3941
4580
  }