@co0ontty/wand 1.6.2 → 1.9.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.
@@ -1101,6 +1101,499 @@
1101
1101
  color: #d35244;
1102
1102
  }
1103
1103
 
1104
+ .session-action-btn.merge-btn:hover {
1105
+ background: rgba(47, 128, 237, 0.1);
1106
+ color: #2f80ed;
1107
+ }
1108
+
1109
+ .session-kind-badge.worktree-merge {
1110
+ background: rgba(47, 128, 237, 0.12);
1111
+ color: #2f80ed;
1112
+ }
1113
+
1114
+ .session-kind-badge.worktree-merge.failed {
1115
+ background: rgba(231, 76, 60, 0.12);
1116
+ color: #d35244;
1117
+ }
1118
+
1119
+ .session-kind-badge.worktree-merge.merged {
1120
+ background: rgba(39, 174, 96, 0.12);
1121
+ color: #219653;
1122
+ }
1123
+
1124
+ .session-kind-badge.worktree-merge.merging,
1125
+ .session-kind-badge.worktree-merge.checking {
1126
+ background: rgba(242, 153, 74, 0.12);
1127
+ color: #c17c2b;
1128
+ }
1129
+
1130
+ .worktree-merge-content {
1131
+ display: flex;
1132
+ flex-direction: column;
1133
+ gap: 10px;
1134
+ }
1135
+
1136
+ .worktree-merge-row {
1137
+ display: flex;
1138
+ justify-content: space-between;
1139
+ gap: 16px;
1140
+ padding: 10px 12px;
1141
+ border: 1px solid var(--border-subtle);
1142
+ border-radius: 12px;
1143
+ background: rgba(255, 255, 255, 0.5);
1144
+ font-size: 0.875rem;
1145
+ }
1146
+
1147
+ .worktree-merge-row span {
1148
+ color: var(--text-secondary);
1149
+ }
1150
+
1151
+ .worktree-merge-row strong {
1152
+ color: var(--text-primary);
1153
+ word-break: break-all;
1154
+ text-align: right;
1155
+ }
1156
+
1157
+ .worktree-merge-actions {
1158
+ display: flex;
1159
+ justify-content: flex-end;
1160
+ gap: 10px;
1161
+ margin-top: 16px;
1162
+ }
1163
+
1164
+ .worktree-merge-modal {
1165
+ max-width: 620px;
1166
+ }
1167
+
1168
+ .modal-subtitle {
1169
+ margin-top: 4px;
1170
+ font-size: 0.8125rem;
1171
+ color: var(--text-muted);
1172
+ }
1173
+
1174
+ .session-action-btn[disabled] {
1175
+ opacity: 0.45;
1176
+ cursor: not-allowed;
1177
+ }
1178
+
1179
+ .session-action-btn[disabled]:hover {
1180
+ background: transparent;
1181
+ color: var(--text-muted);
1182
+ }
1183
+
1184
+ .worktree-merge-actions .btn[disabled] {
1185
+ opacity: 0.5;
1186
+ cursor: not-allowed;
1187
+ }
1188
+
1189
+ .worktree-merge-actions .btn[disabled]:hover {
1190
+ transform: none;
1191
+ }
1192
+
1193
+ .worktree-merge-actions .btn[disabled]:active {
1194
+ transform: none;
1195
+ }
1196
+
1197
+ .worktree-merge-actions .btn {
1198
+ min-width: 120px;
1199
+ }
1200
+
1201
+ .worktree-merge-modal .modal-body {
1202
+ min-height: 260px;
1203
+ }
1204
+
1205
+ .worktree-merge-modal .error-message {
1206
+ margin-top: 12px;
1207
+ }
1208
+
1209
+ .worktree-merge-content .field-hint {
1210
+ margin-top: 0;
1211
+ }
1212
+
1213
+ .worktree-merge-row + .field-hint {
1214
+ margin-top: 2px;
1215
+ }
1216
+
1217
+ .worktree-merge-content .field-hint + .field-hint {
1218
+ margin-top: 4px;
1219
+ }
1220
+
1221
+ .worktree-merge-modal .modal-subtitle {
1222
+ max-width: 420px;
1223
+ }
1224
+
1225
+ .worktree-merge-modal strong {
1226
+ font-weight: 600;
1227
+ }
1228
+
1229
+ .worktree-merge-modal .modal-header {
1230
+ align-items: flex-start;
1231
+ }
1232
+
1233
+ .worktree-merge-content p {
1234
+ margin: 0;
1235
+ }
1236
+
1237
+ .worktree-merge-content .field-hint strong {
1238
+ color: var(--text-primary);
1239
+ }
1240
+
1241
+ .worktree-merge-row strong:empty::after {
1242
+ content: "-";
1243
+ color: var(--text-muted);
1244
+ }
1245
+
1246
+ .worktree-merge-content .field-hint code {
1247
+ font-family: inherit;
1248
+ }
1249
+
1250
+ .worktree-merge-actions .btn-secondary {
1251
+ background: transparent;
1252
+ }
1253
+
1254
+ .worktree-merge-actions .btn-secondary:hover {
1255
+ background: rgba(0, 0, 0, 0.04);
1256
+ }
1257
+
1258
+ .worktree-merge-actions .btn-secondary:active {
1259
+ background: rgba(0, 0, 0, 0.07);
1260
+ }
1261
+
1262
+ .worktree-merge-content .field-hint:last-child {
1263
+ margin-bottom: 0;
1264
+ }
1265
+
1266
+ .worktree-merge-row:first-child {
1267
+ margin-top: 2px;
1268
+ }
1269
+
1270
+ .worktree-merge-row:last-child {
1271
+ margin-bottom: 0;
1272
+ }
1273
+
1274
+ .worktree-merge-content .field-hint.muted {
1275
+ color: var(--text-muted);
1276
+ }
1277
+
1278
+ .worktree-merge-content .field-hint.error {
1279
+ color: #d35244;
1280
+ }
1281
+
1282
+ .worktree-merge-content .field-hint.success {
1283
+ color: #219653;
1284
+ }
1285
+
1286
+ .worktree-merge-content .field-hint.warning {
1287
+ color: #c17c2b;
1288
+ }
1289
+
1290
+ .worktree-merge-content .field-hint.info {
1291
+ color: var(--text-secondary);
1292
+ }
1293
+
1294
+ .worktree-merge-content .field-hint + .worktree-merge-row {
1295
+ margin-top: 2px;
1296
+ }
1297
+
1298
+ .worktree-merge-content .worktree-merge-row + .worktree-merge-row {
1299
+ margin-top: 0;
1300
+ }
1301
+
1302
+ .worktree-merge-content .worktree-merge-row strong small {
1303
+ color: var(--text-muted);
1304
+ }
1305
+
1306
+ .worktree-merge-content .worktree-merge-row strong code {
1307
+ font-family: inherit;
1308
+ }
1309
+
1310
+ .worktree-merge-content .worktree-merge-row span code {
1311
+ font-family: inherit;
1312
+ }
1313
+
1314
+ .worktree-merge-content .worktree-merge-row code {
1315
+ background: transparent;
1316
+ padding: 0;
1317
+ }
1318
+
1319
+ .worktree-merge-content .worktree-merge-row em {
1320
+ font-style: normal;
1321
+ color: var(--text-muted);
1322
+ }
1323
+
1324
+ .worktree-merge-content .worktree-merge-row small {
1325
+ color: var(--text-muted);
1326
+ }
1327
+
1328
+ .worktree-merge-content .worktree-merge-row .muted {
1329
+ color: var(--text-muted);
1330
+ }
1331
+
1332
+ .worktree-merge-content .worktree-merge-row .warning {
1333
+ color: #c17c2b;
1334
+ }
1335
+
1336
+ .worktree-merge-content .worktree-merge-row .success {
1337
+ color: #219653;
1338
+ }
1339
+
1340
+ .worktree-merge-content .worktree-merge-row .error {
1341
+ color: #d35244;
1342
+ }
1343
+
1344
+ .worktree-merge-content .worktree-merge-row .info {
1345
+ color: var(--text-secondary);
1346
+ }
1347
+
1348
+ .worktree-merge-content .worktree-merge-row .nowrap {
1349
+ white-space: nowrap;
1350
+ }
1351
+
1352
+ .worktree-merge-content .worktree-merge-row .break-all {
1353
+ word-break: break-all;
1354
+ }
1355
+
1356
+ .worktree-merge-content .worktree-merge-row .text-right {
1357
+ text-align: right;
1358
+ }
1359
+
1360
+ .worktree-merge-content .worktree-merge-row .text-left {
1361
+ text-align: left;
1362
+ }
1363
+
1364
+ .worktree-merge-content .worktree-merge-row .font-normal {
1365
+ font-weight: 400;
1366
+ }
1367
+
1368
+ .worktree-merge-content .worktree-merge-row .font-semibold {
1369
+ font-weight: 600;
1370
+ }
1371
+
1372
+ .worktree-merge-content .worktree-merge-row .font-bold {
1373
+ font-weight: 700;
1374
+ }
1375
+
1376
+ .worktree-merge-content .worktree-merge-row .opacity-70 {
1377
+ opacity: 0.7;
1378
+ }
1379
+
1380
+ .worktree-merge-content .worktree-merge-row .opacity-50 {
1381
+ opacity: 0.5;
1382
+ }
1383
+
1384
+ .worktree-merge-content .worktree-merge-row .opacity-40 {
1385
+ opacity: 0.4;
1386
+ }
1387
+
1388
+ .worktree-merge-content .worktree-merge-row .truncate {
1389
+ overflow: hidden;
1390
+ text-overflow: ellipsis;
1391
+ }
1392
+
1393
+ .worktree-merge-content .worktree-merge-row .monospace {
1394
+ font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
1395
+ }
1396
+
1397
+ .worktree-merge-content .worktree-merge-row .tiny {
1398
+ font-size: 0.75rem;
1399
+ }
1400
+
1401
+ .worktree-merge-content .worktree-merge-row .small {
1402
+ font-size: 0.8125rem;
1403
+ }
1404
+
1405
+ .worktree-merge-content .worktree-merge-row .normal {
1406
+ font-size: 0.875rem;
1407
+ }
1408
+
1409
+ .worktree-merge-content .worktree-merge-row .large {
1410
+ font-size: 0.9375rem;
1411
+ }
1412
+
1413
+ .worktree-merge-content .worktree-merge-row .xlarge {
1414
+ font-size: 1rem;
1415
+ }
1416
+
1417
+ .worktree-merge-content .worktree-merge-row .caps {
1418
+ text-transform: uppercase;
1419
+ }
1420
+
1421
+ .worktree-merge-content .worktree-merge-row .lowercase {
1422
+ text-transform: lowercase;
1423
+ }
1424
+
1425
+ .worktree-merge-content .worktree-merge-row .capitalize {
1426
+ text-transform: capitalize;
1427
+ }
1428
+
1429
+ .worktree-merge-content .worktree-merge-row .letter-tight {
1430
+ letter-spacing: -0.01em;
1431
+ }
1432
+
1433
+ .worktree-merge-content .worktree-merge-row .letter-normal {
1434
+ letter-spacing: 0;
1435
+ }
1436
+
1437
+ .worktree-merge-content .worktree-merge-row .letter-wide {
1438
+ letter-spacing: 0.02em;
1439
+ }
1440
+
1441
+ .worktree-merge-content .worktree-merge-row .line-tight {
1442
+ line-height: 1.3;
1443
+ }
1444
+
1445
+ .worktree-merge-content .worktree-merge-row .line-normal {
1446
+ line-height: 1.5;
1447
+ }
1448
+
1449
+ .worktree-merge-content .worktree-merge-row .line-loose {
1450
+ line-height: 1.7;
1451
+ }
1452
+
1453
+ .worktree-merge-content .worktree-merge-row .block {
1454
+ display: block;
1455
+ }
1456
+
1457
+ .worktree-merge-content .worktree-merge-row .inline {
1458
+ display: inline;
1459
+ }
1460
+
1461
+ .worktree-merge-content .worktree-merge-row .inline-block {
1462
+ display: inline-block;
1463
+ }
1464
+
1465
+ .worktree-merge-content .worktree-merge-row .flex {
1466
+ display: flex;
1467
+ }
1468
+
1469
+ .worktree-merge-content .worktree-merge-row .grid {
1470
+ display: grid;
1471
+ }
1472
+
1473
+ .worktree-merge-content .worktree-merge-row .gap-sm {
1474
+ gap: 6px;
1475
+ }
1476
+
1477
+ .worktree-merge-content .worktree-merge-row .gap-md {
1478
+ gap: 10px;
1479
+ }
1480
+
1481
+ .worktree-merge-content .worktree-merge-row .gap-lg {
1482
+ gap: 16px;
1483
+ }
1484
+
1485
+ .worktree-merge-content .worktree-merge-row .items-center {
1486
+ align-items: center;
1487
+ }
1488
+
1489
+ .worktree-merge-content .worktree-merge-row .items-start {
1490
+ align-items: flex-start;
1491
+ }
1492
+
1493
+ .worktree-merge-content .worktree-merge-row .items-end {
1494
+ align-items: flex-end;
1495
+ }
1496
+
1497
+ .worktree-merge-content .worktree-merge-row .justify-between {
1498
+ justify-content: space-between;
1499
+ }
1500
+
1501
+ .worktree-merge-content .worktree-merge-row .justify-end {
1502
+ justify-content: flex-end;
1503
+ }
1504
+
1505
+ .worktree-merge-content .worktree-merge-row .justify-start {
1506
+ justify-content: flex-start;
1507
+ }
1508
+
1509
+ .worktree-merge-content .worktree-merge-row .flex-1 {
1510
+ flex: 1 1 auto;
1511
+ }
1512
+
1513
+ .worktree-merge-content .worktree-merge-row .shrink-0 {
1514
+ flex-shrink: 0;
1515
+ }
1516
+
1517
+ .worktree-merge-content .worktree-merge-row .grow-0 {
1518
+ flex-grow: 0;
1519
+ }
1520
+
1521
+ .worktree-merge-content .worktree-merge-row .grow-1 {
1522
+ flex-grow: 1;
1523
+ }
1524
+
1525
+ .worktree-merge-content .worktree-merge-row .min-w-0 {
1526
+ min-width: 0;
1527
+ }
1528
+
1529
+ .worktree-merge-content .worktree-merge-row .w-full {
1530
+ width: 100%;
1531
+ }
1532
+
1533
+ .worktree-merge-content .worktree-merge-row .rounded {
1534
+ border-radius: 8px;
1535
+ }
1536
+
1537
+ .worktree-merge-content .worktree-merge-row .rounded-lg {
1538
+ border-radius: 12px;
1539
+ }
1540
+
1541
+ .worktree-merge-content .worktree-merge-row .rounded-full {
1542
+ border-radius: 999px;
1543
+ }
1544
+
1545
+ .worktree-merge-content .worktree-merge-row .bg-subtle {
1546
+ background: rgba(0, 0, 0, 0.03);
1547
+ }
1548
+
1549
+ .worktree-merge-content .worktree-merge-row .border-subtle {
1550
+ border: 1px solid var(--border-subtle);
1551
+ }
1552
+
1553
+ .worktree-merge-content .worktree-merge-row .px-sm {
1554
+ padding-left: 6px;
1555
+ padding-right: 6px;
1556
+ }
1557
+
1558
+ .worktree-merge-content .worktree-merge-row .px-md {
1559
+ padding-left: 10px;
1560
+ padding-right: 10px;
1561
+ }
1562
+
1563
+ .worktree-merge-content .worktree-merge-row .py-sm {
1564
+ padding-top: 4px;
1565
+ padding-bottom: 4px;
1566
+ }
1567
+
1568
+ .worktree-merge-content .worktree-merge-row .py-md {
1569
+ padding-top: 8px;
1570
+ padding-bottom: 8px;
1571
+ }
1572
+
1573
+ .worktree-merge-content .worktree-merge-row .mt-sm {
1574
+ margin-top: 4px;
1575
+ }
1576
+
1577
+ .worktree-merge-content .worktree-merge-row .mt-md {
1578
+ margin-top: 8px;
1579
+ }
1580
+
1581
+ .worktree-merge-content .worktree-merge-row .mt-lg {
1582
+ margin-top: 12px;
1583
+ }
1584
+
1585
+ .worktree-merge-content .worktree-merge-row .mb-sm {
1586
+ margin-bottom: 4px;
1587
+ }
1588
+
1589
+ .worktree-merge-content .worktree-merge-row .mb-md {
1590
+ margin-bottom: 8px;
1591
+ }
1592
+
1593
+ .worktree-merge-content .worktree-merge-row .mb-lg {
1594
+ margin-bottom: 12px;
1595
+ }
1596
+
1104
1597
  /* PC: hover to show action buttons */
1105
1598
  @media (hover: hover) {
1106
1599
  .session-item .session-actions {
@@ -1505,6 +1998,8 @@
1505
1998
  overflow: hidden;
1506
1999
  background: transparent;
1507
2000
  position: relative;
2001
+ padding: 8px 6px 6px;
2002
+ gap: 0;
1508
2003
  }
1509
2004
 
1510
2005
  .main-content.file-panel-open {
@@ -1512,6 +2007,170 @@
1512
2007
  transition: margin-right 0.25s cubic-bezier(0.4, 0, 0.2, 1);
1513
2008
  }
1514
2009
 
2010
+ .main-content-header {
2011
+ display: flex;
2012
+ align-items: center;
2013
+ justify-content: space-between;
2014
+ gap: 12px;
2015
+ min-height: 44px;
2016
+ padding: 6px 10px 8px;
2017
+ border: 1px solid rgba(140, 110, 85, 0.14);
2018
+ border-bottom: none;
2019
+ border-radius: 16px 16px 0 0;
2020
+ background: rgba(255, 252, 248, 0.94);
2021
+ backdrop-filter: blur(14px);
2022
+ box-shadow:
2023
+ 0 8px 20px rgba(89, 58, 32, 0.06),
2024
+ inset 0 -1px 0 rgba(255, 255, 255, 0.5);
2025
+ flex-shrink: 0;
2026
+ position: relative;
2027
+ z-index: 2;
2028
+ }
2029
+
2030
+
2031
+ .main-content-header-left,
2032
+ .main-content-header-center,
2033
+ .main-content-header-right {
2034
+ display: flex;
2035
+ align-items: center;
2036
+ gap: 8px;
2037
+ min-width: 0;
2038
+ }
2039
+
2040
+ .main-content-header-left,
2041
+ .main-content-header-right {
2042
+ flex: 1;
2043
+ }
2044
+
2045
+ .main-content-header-center {
2046
+ justify-content: center;
2047
+ flex: 0 1 auto;
2048
+ }
2049
+
2050
+ .main-content-header-right {
2051
+ justify-content: flex-end;
2052
+ flex-wrap: wrap;
2053
+ }
2054
+
2055
+ .main-content-body {
2056
+ flex: 1;
2057
+ min-height: 0;
2058
+ display: flex;
2059
+ flex-direction: column;
2060
+ position: relative;
2061
+ overflow: hidden;
2062
+ border-radius: 0 0 14px 14px;
2063
+ margin-top: -1px;
2064
+ }
2065
+
2066
+ .main-content-body::before {
2067
+ content: "";
2068
+ position: absolute;
2069
+ top: 0;
2070
+ left: 14px;
2071
+ right: 14px;
2072
+ height: 8px;
2073
+ background: linear-gradient(180deg, rgba(255, 255, 255, 0.09) 0%, rgba(255, 255, 255, 0) 100%);
2074
+ pointer-events: none;
2075
+ z-index: 1;
2076
+ }
2077
+
2078
+ .main-content-body > .terminal-container,
2079
+ .main-content-body > .chat-container,
2080
+ .main-content-body > .blank-chat {
2081
+ border-top-color: transparent;
2082
+ }
2083
+
2084
+ .main-header-controls {
2085
+ display: inline-flex;
2086
+ align-items: center;
2087
+ gap: 6px;
2088
+ min-width: 0;
2089
+ flex-wrap: wrap;
2090
+ }
2091
+
2092
+ .main-header-btn,
2093
+ .main-header-label {
2094
+ height: 32px;
2095
+ border-radius: 10px;
2096
+ flex-shrink: 0;
2097
+ }
2098
+
2099
+ .main-header-btn {
2100
+ display: inline-flex;
2101
+ align-items: center;
2102
+ justify-content: center;
2103
+ gap: 6px;
2104
+ padding: 0 10px;
2105
+ border: 1px solid rgba(125, 91, 57, 0.12);
2106
+ background: rgba(255, 255, 255, 0.7);
2107
+ color: var(--text-secondary);
2108
+ font-size: 0.75rem;
2109
+ font-weight: 500;
2110
+ font-family: var(--font-sans);
2111
+ cursor: pointer;
2112
+ transition: all var(--transition-fast);
2113
+ white-space: nowrap;
2114
+ }
2115
+
2116
+ .main-header-btn:hover {
2117
+ background: rgba(255, 255, 255, 0.95);
2118
+ border-color: rgba(197, 101, 61, 0.22);
2119
+ color: var(--text-primary);
2120
+ }
2121
+
2122
+ .main-header-btn:active {
2123
+ transform: translateY(1px);
2124
+ }
2125
+
2126
+ .main-header-label {
2127
+ display: inline-flex;
2128
+ align-items: center;
2129
+ justify-content: center;
2130
+ padding: 0 10px;
2131
+ background: rgba(240, 229, 215, 0.55);
2132
+ border: 1px solid rgba(125, 91, 57, 0.08);
2133
+ color: var(--text-muted);
2134
+ font-size: 0.6875rem;
2135
+ font-weight: 600;
2136
+ white-space: nowrap;
2137
+ }
2138
+
2139
+ .menu-toggle-btn {
2140
+ padding: 0 12px;
2141
+ min-width: 40px;
2142
+ }
2143
+
2144
+ .menu-toggle-btn.active {
2145
+ background: var(--accent-muted);
2146
+ border-color: rgba(197, 101, 61, 0.22);
2147
+ color: var(--accent);
2148
+ }
2149
+
2150
+ .jump-latest-btn {
2151
+ opacity: 0;
2152
+ transform: translateY(4px);
2153
+ pointer-events: none;
2154
+ }
2155
+
2156
+ .jump-latest-btn.visible {
2157
+ opacity: 1;
2158
+ transform: translateY(0);
2159
+ pointer-events: auto;
2160
+ }
2161
+
2162
+ .main-header-new-session {
2163
+ background: rgba(197, 101, 61, 0.12);
2164
+ border-color: rgba(197, 101, 61, 0.18);
2165
+ color: var(--accent);
2166
+ font-weight: 600;
2167
+ }
2168
+
2169
+ .main-header-new-session:hover {
2170
+ background: rgba(197, 101, 61, 0.18);
2171
+ border-color: rgba(197, 101, 61, 0.28);
2172
+ }
2173
+
1515
2174
  .terminal-info { font-size: 0.625rem; color: var(--text-muted); font-weight: 500; }
1516
2175
 
1517
2176
  /* Current task indicator in terminal header */
@@ -1562,8 +2221,8 @@
1562
2221
  padding: 10px;
1563
2222
  overflow: hidden;
1564
2223
  min-height: 0;
1565
- margin: 0 6px 6px;
1566
- border-radius: var(--radius-md);
2224
+ margin: 0;
2225
+ border-radius: 16px;
1567
2226
  border: 1px solid rgba(140, 110, 85, 0.35);
1568
2227
  box-shadow:
1569
2228
  inset 0 1px 0 rgba(255, 255, 255, 0.06),
@@ -1573,6 +2232,13 @@
1573
2232
  transition: border-color var(--transition-normal), box-shadow var(--transition-normal);
1574
2233
  }
1575
2234
 
2235
+ .terminal-container.hidden,
2236
+ .chat-container.hidden,
2237
+ .blank-chat.hidden,
2238
+ .input-panel.hidden {
2239
+ display: none !important;
2240
+ }
2241
+
1576
2242
  .terminal-container.active {
1577
2243
  display: flex;
1578
2244
  align-items: stretch;
@@ -1798,96 +2464,123 @@
1798
2464
  text-align: center;
1799
2465
  padding: 0 2px;
1800
2466
  }
1801
- .terminal-scale-overlay {
1802
- position: absolute;
1803
- top: 8px;
1804
- right: 8px;
1805
- display: inline-flex;
1806
- align-items: center;
1807
- gap: 1px;
1808
- padding: 2px;
1809
- border-radius: 7px;
1810
- border: 1px solid rgba(255, 255, 255, 0.06);
1811
- background: rgba(24, 20, 17, 0.38);
1812
- backdrop-filter: blur(8px);
1813
- box-shadow: 0 6px 18px rgba(0, 0, 0, 0.18);
1814
- opacity: 0.72;
1815
- transition: opacity 0.18s ease, background 0.18s ease, border-color 0.18s ease;
1816
- z-index: 12;
1817
- pointer-events: auto;
2467
+ .terminal-jump-bottom {
2468
+ background: rgba(24, 20, 17, 0.82);
2469
+ color: rgba(255, 247, 239, 0.92);
2470
+ border-color: rgba(255, 255, 255, 0.12);
2471
+ box-shadow: 0 8px 18px rgba(0, 0, 0, 0.16);
2472
+ transition: opacity 0.18s ease, transform 0.18s ease, background 0.18s ease, border-color 0.18s ease;
1818
2473
  }
1819
- .terminal-container:hover .terminal-scale-overlay,
1820
- .terminal-scale-overlay:focus-within {
1821
- opacity: 1;
1822
- background: rgba(24, 20, 17, 0.56);
2474
+ .terminal-jump-bottom:hover {
2475
+ background: rgba(38, 30, 24, 0.9);
2476
+ border-color: rgba(214, 123, 82, 0.28);
2477
+ }
2478
+ .terminal-jump-bottom:active {
2479
+ transform: translateY(1px);
2480
+ }
2481
+
2482
+ .terminal-scale-btn {
2483
+ min-width: 32px;
2484
+ padding: 0 8px;
2485
+ }
2486
+
2487
+ .terminal-scale-label {
2488
+ min-width: 46px;
2489
+ }
2490
+
2491
+ #terminal-header-controls .main-header-btn,
2492
+ #terminal-header-controls .main-header-label {
2493
+ background: rgba(36, 28, 22, 0.88);
2494
+ color: rgba(245, 234, 220, 0.9);
1823
2495
  border-color: rgba(255, 255, 255, 0.1);
1824
2496
  }
1825
- .terminal-scale-overlay-btn {
1826
- min-width: 22px;
1827
- height: 22px;
1828
- padding: 0 3px;
1829
- color: rgba(245, 234, 220, 0.88);
1830
- background: transparent;
1831
- border: none;
1832
- border-radius: 5px;
1833
- transition: background 0.18s ease, color 0.18s ease;
2497
+
2498
+ #terminal-header-controls .main-header-btn:hover {
2499
+ background: rgba(46, 35, 28, 0.94);
2500
+ border-color: rgba(214, 123, 82, 0.28);
1834
2501
  }
1835
- .terminal-scale-overlay-btn:hover {
1836
- background: rgba(214, 123, 82, 0.18);
1837
- color: rgba(255, 247, 239, 0.96);
2502
+
2503
+ #terminal-header-controls .terminal-scale-label {
2504
+ color: rgba(245, 234, 220, 0.72);
1838
2505
  }
1839
- .terminal-scale-overlay-label {
1840
- font-size: 0.625rem;
1841
- color: rgba(245, 234, 220, 0.66);
1842
- min-width: 34px;
1843
- text-align: center;
1844
- padding: 0 3px;
2506
+
2507
+ #terminal-header-controls .jump-latest-btn:not(.visible) {
2508
+ display: none;
1845
2509
  }
1846
2510
 
1847
- .terminal-scale-overlay-divider {
1848
- width: 1px;
1849
- height: 14px;
1850
- background: rgba(245, 234, 220, 0.2);
1851
- margin: 0 2px;
2511
+ #chat-header-controls .jump-latest-btn:not(.visible) {
2512
+ display: none;
1852
2513
  }
1853
2514
 
1854
- .terminal-jump-bottom {
1855
- position: absolute;
1856
- right: 14px;
1857
- bottom: 18px;
1858
- display: inline-flex;
1859
- align-items: center;
1860
- justify-content: center;
1861
- gap: 6px;
2515
+ #chat-header-controls .chat-follow-toggle {
2516
+ min-width: 60px;
2517
+ }
2518
+
2519
+ #chat-header-controls .chat-follow-toggle:hover {
2520
+ background: rgba(255, 255, 255, 0.92);
2521
+ }
2522
+
2523
+ #chat-header-controls .chat-follow-toggle.active:hover {
2524
+ background: rgba(197, 101, 61, 0.18);
2525
+ }
2526
+
2527
+ #chat-header-controls .chat-jump-bottom {
2528
+ background: rgba(255, 250, 242, 0.92);
2529
+ color: var(--text-primary);
2530
+ border-color: rgba(125, 91, 57, 0.16);
2531
+ box-shadow: 0 8px 18px rgba(89, 58, 32, 0.12);
2532
+ transition: opacity 0.18s ease, transform 0.18s ease, background 0.18s ease, border-color 0.18s ease;
2533
+ }
2534
+
2535
+ #chat-header-controls .chat-jump-bottom:hover {
2536
+ background: rgba(255, 255, 255, 0.98);
2537
+ border-color: rgba(197, 101, 61, 0.24);
2538
+ }
2539
+
2540
+ #chat-header-controls .chat-jump-bottom:active {
2541
+ transform: translateY(1px);
2542
+ }
2543
+
2544
+ .terminal-scale-overlay,
2545
+ .terminal-scale-overlay-btn,
2546
+ .terminal-scale-overlay-label,
2547
+ .terminal-scale-overlay-divider,
2548
+ .chat-overlay-controls {
2549
+ display: none !important;
2550
+ }
2551
+
2552
+ .terminal-jump-bottom,
2553
+ .chat-jump-bottom {
2554
+ position: static;
2555
+ right: auto;
2556
+ bottom: auto;
1862
2557
  min-width: 78px;
1863
2558
  height: 32px;
1864
2559
  padding: 0 12px;
1865
- border: 1px solid rgba(255, 255, 255, 0.1);
1866
2560
  border-radius: 999px;
1867
- background: rgba(24, 20, 17, 0.72);
1868
- color: rgba(255, 247, 239, 0.92);
1869
- box-shadow: 0 10px 24px rgba(0, 0, 0, 0.28);
1870
- backdrop-filter: blur(10px);
1871
2561
  cursor: pointer;
1872
- z-index: 13;
1873
- opacity: 0;
1874
- transform: translateY(8px);
1875
- pointer-events: none;
1876
- transition: opacity 0.18s ease, transform 0.18s ease, background 0.18s ease, border-color 0.18s ease;
2562
+ z-index: auto;
1877
2563
  }
2564
+
2565
+ .chat-jump-bottom.visible,
1878
2566
  .terminal-jump-bottom.visible {
1879
2567
  opacity: 1;
1880
2568
  transform: translateY(0);
1881
2569
  pointer-events: auto;
1882
2570
  }
1883
- .terminal-jump-bottom:hover {
1884
- background: rgba(38, 30, 24, 0.84);
1885
- border-color: rgba(214, 123, 82, 0.28);
2571
+
2572
+ .chat-jump-bottom {
2573
+ opacity: 0;
2574
+ transform: translateY(4px);
2575
+ pointer-events: none;
1886
2576
  }
1887
- .terminal-jump-bottom:active {
1888
- transform: translateY(1px);
2577
+
2578
+ .chat-jump-bottom.visible {
2579
+ opacity: 1;
1889
2580
  }
1890
2581
 
2582
+ .chat-container.active { display: flex; }
2583
+
1891
2584
  /* Terminal interactive mode indicator */
1892
2585
  .terminal-container.interactive {
1893
2586
  border-color: rgba(79, 122, 88, 0.5);
@@ -2158,6 +2851,7 @@
2158
2851
 
2159
2852
  /* ===== 聊天容器 ===== */
2160
2853
  .chat-container {
2854
+ position: relative;
2161
2855
  flex: 1;
2162
2856
  display: none;
2163
2857
  flex-direction: column;
@@ -2165,9 +2859,32 @@
2165
2859
  overflow: hidden;
2166
2860
  padding: 0 20px 16px;
2167
2861
  background: linear-gradient(180deg, rgba(255, 252, 248, 0.5) 0%, transparent 100%);
2862
+ border-radius: 16px;
2863
+ }
2864
+
2865
+ .chat-follow-toggle {
2866
+ min-width: 52px;
2867
+ padding: 0 10px;
2868
+ font-size: 0.6875rem;
2869
+ color: var(--text-secondary);
2870
+ background: transparent;
2871
+ border-color: transparent;
2872
+ }
2873
+
2874
+ .chat-follow-toggle.active {
2875
+ background: var(--accent-muted);
2876
+ color: var(--accent);
2877
+ border-color: rgba(197, 101, 61, 0.2);
2878
+ }
2879
+
2880
+ .chat-follow-toggle:hover {
2881
+ background: rgba(255, 255, 255, 0.7);
2882
+ }
2883
+
2884
+ .chat-follow-toggle.active:hover {
2885
+ background: rgba(197, 101, 61, 0.18);
2168
2886
  }
2169
2887
 
2170
- .chat-container.active { display: flex; }
2171
2888
 
2172
2889
  /* ===== 聊天消息列表 ===== */
2173
2890
  .chat-messages {
@@ -3509,6 +4226,7 @@
3509
4226
  z-index: 26;
3510
4227
  overscroll-behavior: contain;
3511
4228
  touch-action: pan-y;
4229
+ border-radius: 14px;
3512
4230
  }
3513
4231
 
3514
4232
  .input-composer {
@@ -4786,6 +5504,22 @@
4786
5504
  .mode-card.active .mode-card-label {
4787
5505
  color: var(--accent);
4788
5506
  }
5507
+ .mode-card.disabled {
5508
+ opacity: 0.45;
5509
+ cursor: not-allowed;
5510
+ pointer-events: none;
5511
+ }
5512
+ .mode-card.disabled:hover {
5513
+ border-color: rgba(125, 91, 57, 0.2);
5514
+ background: rgba(255, 255, 255, 0.6);
5515
+ }
5516
+ .mode-card.disabled .mode-card-label,
5517
+ .mode-card.disabled .mode-card-desc {
5518
+ color: var(--text-muted);
5519
+ }
5520
+ .mode-card.active.disabled {
5521
+ box-shadow: none;
5522
+ }
4789
5523
  .password-input[data-error="true"],
4790
5524
  .password-input[aria-invalid="true"] {
4791
5525
  border-color: var(--danger);
@@ -4893,6 +5627,29 @@
4893
5627
  .modal-body { padding: 22px; overflow-y: auto; flex: 1 1 auto; min-height: 0; }
4894
5628
  .modal-body .field { margin-bottom: 14px; }
4895
5629
  .modal-body .field:last-of-type { margin-bottom: 16px; }
5630
+ .session-kind-hint-row {
5631
+ display: flex;
5632
+ align-items: center;
5633
+ justify-content: space-between;
5634
+ gap: 12px;
5635
+ }
5636
+ .session-kind-hint-row #session-kind-description {
5637
+ flex: 1 1 auto;
5638
+ }
5639
+ .session-inline-toggle {
5640
+ display: inline-flex;
5641
+ align-items: center;
5642
+ gap: 8px;
5643
+ white-space: nowrap;
5644
+ color: var(--text-secondary);
5645
+ cursor: pointer;
5646
+ user-select: none;
5647
+ }
5648
+ .session-inline-toggle-label {
5649
+ font-size: 0.75rem;
5650
+ font-weight: 600;
5651
+ color: var(--text-secondary);
5652
+ }
4896
5653
  .field-hint {
4897
5654
  margin-top: 6px;
4898
5655
  font-size: 0.75rem;
@@ -5206,17 +5963,134 @@
5206
5963
  overflow: hidden;
5207
5964
  }
5208
5965
 
5209
- /* 移动端浮动按钮 */
5210
- .floating-sidebar-toggle {
5211
- width: 30px;
5212
- height: 30px;
5213
- top: max(8px, env(safe-area-inset-top, 8px));
5214
- left: 8px;
5215
- border-radius: 6px;
5966
+ .sidebar { top: 0; }
5967
+
5968
+ .main-content {
5969
+ padding: 6px;
5970
+ gap: 0;
5216
5971
  }
5217
- .floating-sidebar-toggle .hamburger-icon { width: 13px; height: 9px; }
5218
5972
 
5219
- .sidebar { top: 0; }
5973
+ .main-content-header {
5974
+ min-height: 40px;
5975
+ padding: 6px 8px 7px;
5976
+ gap: 8px;
5977
+ }
5978
+
5979
+ .main-content-header::before,
5980
+ .main-content-header::after {
5981
+ width: 14px;
5982
+ height: 14px;
5983
+ }
5984
+
5985
+ .main-content-header::before {
5986
+ box-shadow: 5px 5px 0 0 rgba(255, 252, 248, 0.94);
5987
+ }
5988
+
5989
+ .main-content-header::after {
5990
+ box-shadow: -5px 5px 0 0 rgba(255, 252, 248, 0.94);
5991
+ }
5992
+
5993
+ .main-content-body::before {
5994
+ left: 10px;
5995
+ right: 10px;
5996
+ height: 6px;
5997
+ }
5998
+
5999
+ .main-content-header-left,
6000
+ .main-content-header-center,
6001
+ .main-content-header-right {
6002
+ gap: 6px;
6003
+ }
6004
+
6005
+ .main-content-header-right {
6006
+ flex-wrap: nowrap;
6007
+ overflow-x: auto;
6008
+ scrollbar-width: none;
6009
+ }
6010
+
6011
+ .main-content-header-right::-webkit-scrollbar {
6012
+ display: none;
6013
+ }
6014
+
6015
+ .main-header-controls {
6016
+ gap: 4px;
6017
+ flex-wrap: nowrap;
6018
+ }
6019
+
6020
+ .main-header-btn,
6021
+ .main-header-label,
6022
+ .topbar-btn {
6023
+ height: 28px;
6024
+ min-height: 28px;
6025
+ font-size: 0.6875rem;
6026
+ border-radius: 8px;
6027
+ }
6028
+
6029
+ .menu-toggle-btn {
6030
+ min-width: 34px;
6031
+ padding: 0 10px;
6032
+ }
6033
+
6034
+ .menu-toggle-btn .hamburger-icon {
6035
+ width: 13px;
6036
+ height: 9px;
6037
+ }
6038
+
6039
+ .main-header-label {
6040
+ padding: 0 8px;
6041
+ }
6042
+
6043
+ .main-header-new-session {
6044
+ padding: 0 10px;
6045
+ }
6046
+
6047
+ .main-content-header-left,
6048
+ .main-content-header-center,
6049
+ .main-content-header-right {
6050
+ gap: 6px;
6051
+ }
6052
+
6053
+ .main-content-header-right {
6054
+ flex-wrap: nowrap;
6055
+ overflow-x: auto;
6056
+ scrollbar-width: none;
6057
+ }
6058
+
6059
+ .main-content-header-right::-webkit-scrollbar {
6060
+ display: none;
6061
+ }
6062
+
6063
+ .main-header-controls {
6064
+ gap: 4px;
6065
+ flex-wrap: nowrap;
6066
+ }
6067
+
6068
+ .main-header-btn,
6069
+ .main-header-label,
6070
+ .topbar-btn {
6071
+ height: 28px;
6072
+ min-height: 28px;
6073
+ font-size: 0.6875rem;
6074
+ border-radius: 8px;
6075
+ }
6076
+
6077
+ .menu-toggle-btn {
6078
+ min-width: 34px;
6079
+ padding: 0 10px;
6080
+ }
6081
+
6082
+ .menu-toggle-btn .hamburger-icon {
6083
+ width: 13px;
6084
+ height: 9px;
6085
+ }
6086
+
6087
+ .main-header-label {
6088
+ padding: 0 8px;
6089
+ }
6090
+
6091
+ .main-header-new-session {
6092
+ padding: 0 10px;
6093
+ }
5220
6094
 
5221
6095
  /* 移动端终端顶栏 - 紧凑 */
5222
6096
  .terminal-header { padding: 5px 8px; min-height: 32px; }
@@ -5239,22 +6113,15 @@
5239
6113
  .view-toggle { height: 28px; padding: 2px; gap: 1px; }
5240
6114
  .view-toggle-btn { height: 24px; min-height: 24px; padding: 0 6px; font-size: 0.625rem; gap: 2px; border-radius: 4px; }
5241
6115
 
5242
- /* 移动端终端内缩放浮层 */
5243
- .terminal-scale-overlay {
5244
- top: 6px;
5245
- right: 6px;
5246
- padding: 2px;
5247
- gap: 1px;
5248
- }
5249
- .terminal-scale-overlay-btn {
5250
- min-width: 20px;
5251
- height: 20px;
6116
+ #terminal-header-controls .terminal-scale-btn {
6117
+ min-width: 28px;
6118
+ padding: 0 6px;
5252
6119
  font-size: 0.75rem;
5253
6120
  }
5254
- .terminal-scale-overlay-label {
5255
- min-width: 28px;
5256
- font-size: 0.5625rem;
5257
- padding: 0 2px;
6121
+
6122
+ #terminal-header-controls .terminal-scale-label {
6123
+ min-width: 38px;
6124
+ font-size: 0.625rem;
5258
6125
  }
5259
6126
 
5260
6127
  /* 移动端简化交互模式按钮 */
@@ -5672,7 +6539,7 @@
5672
6539
  /* 继承 max-width: 640px 的样式,此处仅做微调 */
5673
6540
 
5674
6541
  .terminal-container {
5675
- margin: 0 6px 6px;
6542
+ margin: 0;
5676
6543
  padding: 6px;
5677
6544
  }
5678
6545
 
@@ -5685,13 +6552,56 @@
5685
6552
  /* iPhone SE 等小屏幕 (<= 390px) */
5686
6553
  @media (max-width: 390px) {
5687
6554
  /* 继承 max-width: 640px 的样式,此处仅做小屏微调 */
5688
- .floating-sidebar-toggle {
5689
- width: 26px;
5690
- height: 26px;
5691
- top: max(6px, env(safe-area-inset-top, 6px));
5692
- left: 6px;
6555
+ .main-content {
6556
+ padding: 4px 4px 4px;
6557
+ gap: 0;
6558
+ }
6559
+
6560
+ .main-content-header {
6561
+ min-height: 36px;
6562
+ padding: 5px 6px 6px;
6563
+ gap: 6px;
6564
+ }
6565
+
6566
+ .main-content-header::before,
6567
+ .main-content-header::after {
6568
+ width: 12px;
6569
+ height: 12px;
6570
+ }
6571
+
6572
+ .main-content-header::before {
6573
+ box-shadow: 4px 4px 0 0 rgba(255, 252, 248, 0.94);
6574
+ }
6575
+
6576
+ .main-content-header::after {
6577
+ box-shadow: -4px 4px 0 0 rgba(255, 252, 248, 0.94);
6578
+ }
6579
+
6580
+ .main-content-body::before {
6581
+ left: 8px;
6582
+ right: 8px;
6583
+ height: 5px;
6584
+ }
6585
+
6586
+ .main-content-header-left,
6587
+ .main-content-header-center,
6588
+ .main-content-header-right {
6589
+ gap: 4px;
6590
+ }
6591
+
6592
+ .main-header-btn,
6593
+ .main-header-label,
6594
+ .topbar-btn {
6595
+ font-size: 0.625rem;
6596
+ padding: 0 8px;
6597
+ }
6598
+
6599
+ .menu-toggle-btn {
6600
+ min-width: 30px;
6601
+ padding: 0 8px;
5693
6602
  }
5694
- .floating-sidebar-toggle .hamburger-icon { width: 11px; height: 8px; }
6603
+
6604
+ .menu-toggle-btn .hamburger-icon { width: 11px; height: 8px; }
5695
6605
 
5696
6606
  .terminal-header { padding: 4px 6px; min-height: 28px; }
5697
6607
  .terminal-title-text { font-size: 0.6875rem; }
@@ -5883,6 +6793,12 @@
5883
6793
  border-color: rgba(215, 122, 82, 0.22);
5884
6794
  }
5885
6795
 
6796
+ .session-kind-badge.worktree {
6797
+ color: #2f6f54;
6798
+ background: rgba(79, 122, 88, 0.12);
6799
+ border-color: rgba(79, 122, 88, 0.22);
6800
+ }
6801
+
5886
6802
  .session-kind-display {
5887
6803
  display: inline-flex;
5888
6804
  align-items: center;
@@ -6310,41 +7226,160 @@
6310
7226
  /* ── Settings modal ── */
6311
7227
 
6312
7228
  .settings-modal {
6313
- max-width: 520px;
6314
- max-height: 80vh;
7229
+ max-width: 860px;
7230
+ max-height: 82vh;
6315
7231
  }
6316
7232
 
6317
- .settings-tabs {
7233
+ .settings-layout {
7234
+ display: grid;
7235
+ grid-template-columns: 180px minmax(0, 1fr);
7236
+ gap: 18px;
7237
+ min-height: 0;
7238
+ }
7239
+
7240
+ .settings-nav {
6318
7241
  display: flex;
6319
- gap: 2px;
6320
- border-bottom: 1px solid var(--border-subtle);
6321
- margin-bottom: 16px;
6322
- padding-bottom: 0;
7242
+ flex-direction: column;
7243
+ gap: 8px;
7244
+ padding-right: 8px;
7245
+ border-right: 1px solid var(--border-subtle);
7246
+ }
7247
+
7248
+ .settings-content {
7249
+ min-width: 0;
7250
+ overflow-y: auto;
7251
+ padding-right: 4px;
6323
7252
  }
6324
7253
 
6325
7254
  .settings-tab {
6326
- padding: 8px 14px;
6327
- font-size: 0.8125rem;
6328
- font-weight: 500;
7255
+ padding: 10px 12px;
7256
+ font-size: 0.84rem;
7257
+ font-weight: 600;
6329
7258
  color: var(--text-secondary);
6330
- background: none;
6331
- border: none;
6332
- border-bottom: 2px solid transparent;
6333
- border-radius: var(--radius-sm) var(--radius-sm) 0 0;
7259
+ background: transparent;
7260
+ border: 1px solid transparent;
7261
+ border-radius: 12px;
6334
7262
  cursor: pointer;
6335
- transition: color 0.15s, border-color 0.15s, background 0.15s;
7263
+ transition: color 0.15s, border-color 0.15s, background 0.15s, transform 0.15s;
6336
7264
  white-space: nowrap;
7265
+ text-align: left;
6337
7266
  }
6338
7267
 
6339
7268
  .settings-tab:hover {
6340
7269
  color: var(--text-primary);
6341
7270
  background: rgba(197, 101, 61, 0.06);
7271
+ border-color: rgba(197, 101, 61, 0.12);
7272
+ transform: translateX(1px);
6342
7273
  }
6343
7274
 
6344
7275
  .settings-tab.active {
6345
7276
  color: var(--accent);
6346
- border-bottom-color: var(--accent);
6347
- background: var(--accent-muted);
7277
+ border-color: rgba(197, 101, 61, 0.18);
7278
+ background: linear-gradient(180deg, rgba(197, 101, 61, 0.12), rgba(197, 101, 61, 0.06));
7279
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.35);
7280
+ }
7281
+
7282
+ .settings-card-header {
7283
+ display: flex;
7284
+ justify-content: space-between;
7285
+ align-items: flex-start;
7286
+ gap: 12px;
7287
+ margin-bottom: 12px;
7288
+ }
7289
+
7290
+ .settings-card-accent {
7291
+ border: 1px solid rgba(197, 101, 61, 0.12);
7292
+ box-shadow: 0 10px 24px rgba(89, 58, 32, 0.04);
7293
+ }
7294
+
7295
+ .settings-toggle-list {
7296
+ display: flex;
7297
+ flex-direction: column;
7298
+ gap: 10px;
7299
+ }
7300
+
7301
+ .settings-toggle-item {
7302
+ display: flex;
7303
+ justify-content: space-between;
7304
+ align-items: center;
7305
+ gap: 16px;
7306
+ padding: 12px 14px;
7307
+ border-radius: 12px;
7308
+ background: rgba(255, 255, 255, 0.72);
7309
+ border: 1px solid rgba(140, 110, 85, 0.08);
7310
+ cursor: pointer;
7311
+ }
7312
+
7313
+ .settings-toggle-title {
7314
+ display: block;
7315
+ font-size: 0.84rem;
7316
+ font-weight: 600;
7317
+ color: var(--text-primary);
7318
+ margin-bottom: 4px;
7319
+ }
7320
+
7321
+ .settings-toggle-desc {
7322
+ display: block;
7323
+ font-size: 0.78rem;
7324
+ color: var(--text-secondary);
7325
+ line-height: 1.45;
7326
+ }
7327
+
7328
+ .settings-inline-hint {
7329
+ margin-top: -4px;
7330
+ }
7331
+
7332
+ .settings-tab.active + .settings-tab {
7333
+ margin-top: 0;
7334
+ }
7335
+
7336
+ .settings-tabs {
7337
+ display: none;
7338
+ }
7339
+
7340
+ .settings-panel {
7341
+ display: none;
7342
+ }
7343
+
7344
+ .settings-panel.active {
7345
+ display: block;
7346
+ }
7347
+
7348
+ @media (max-width: 840px) {
7349
+ .settings-layout {
7350
+ grid-template-columns: 1fr;
7351
+ }
7352
+
7353
+ .settings-nav {
7354
+ flex-direction: row;
7355
+ overflow-x: auto;
7356
+ padding-right: 0;
7357
+ padding-bottom: 10px;
7358
+ border-right: none;
7359
+ border-bottom: 1px solid var(--border-subtle);
7360
+ }
7361
+
7362
+ .settings-tab {
7363
+ flex: 0 0 auto;
7364
+ }
7365
+ }
7366
+
7367
+ @media (max-width: 640px) {
7368
+ .settings-modal {
7369
+ max-width: min(96vw, 680px);
7370
+ }
7371
+
7372
+ .settings-toggle-item {
7373
+ align-items: flex-start;
7374
+ }
7375
+ }
7376
+
7377
+ .settings-panel {
7378
+ display: none;
7379
+ }
7380
+
7381
+ .settings-panel.active {
7382
+ display: block;
6348
7383
  }
6349
7384
 
6350
7385
  .settings-panel {
@@ -7666,9 +8701,9 @@
7666
8701
  line-height: inherit !important;
7667
8702
  }
7668
8703
 
7669
- /* 确保按钮在 DOM 视图之上 */
8704
+ /* 统一 header 中的跳转按钮沿用显隐动画 */
7670
8705
  .terminal-jump-bottom {
7671
- z-index: 20;
8706
+ z-index: auto;
7672
8707
  }
7673
8708
 
7674
8709
  /* ── 结构化会话状态条 ── */