handler-playable-sdk 0.3.55 → 0.3.56

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.
@@ -1040,6 +1040,7 @@
1040
1040
  .scene-panel {
1041
1041
  position: absolute;
1042
1042
  width: 320px;
1043
+ min-width: 280px;
1043
1044
  max-height: 78vh;
1044
1045
  background: var(--ui-surface);
1045
1046
  border: 1px solid var(--ui-border);
@@ -1206,1109 +1207,1159 @@
1206
1207
  padding: 6px 0;
1207
1208
  }
1208
1209
 
1209
- .batch-ai-label {
1210
- font-size: 11px;
1211
- color: var(--ui-muted);
1212
- }
1210
+ .batch-ai-label {
1211
+ font-size: 11px;
1212
+ color: var(--ui-muted);
1213
+ }
1213
1214
 
1214
- .batch-ai-input,
1215
- .batch-ai-textarea,
1216
- .batch-ai-select {
1217
- width: 100%;
1218
- padding: 6px 8px;
1219
- border-radius: 8px;
1220
- border: 1px solid rgba(255, 255, 255, 0.08);
1221
- background: rgba(10, 14, 20, 0.85);
1222
- color: var(--ui-text);
1223
- font-size: 12px;
1224
- }
1215
+ .batch-ai-input,
1216
+ .batch-ai-textarea,
1217
+ .batch-ai-select {
1218
+ width: 100%;
1219
+ padding: 6px 8px;
1220
+ border-radius: 8px;
1221
+ border: 1px solid rgba(255, 255, 255, 0.08);
1222
+ background: rgba(10, 14, 20, 0.85);
1223
+ color: var(--ui-text);
1224
+ font-size: 12px;
1225
+ }
1225
1226
 
1226
- .batch-ai-textarea {
1227
- min-height: 70px;
1228
- resize: vertical;
1229
- }
1227
+ .batch-ai-textarea {
1228
+ min-height: 70px;
1229
+ resize: vertical;
1230
+ }
1230
1231
 
1231
- .batch-ai-row {
1232
- display: flex;
1233
- align-items: center;
1234
- gap: 8px;
1235
- flex-wrap: wrap;
1236
- }
1232
+ .batch-ai-row {
1233
+ display: flex;
1234
+ align-items: center;
1235
+ gap: 8px;
1236
+ flex-wrap: wrap;
1237
+ }
1237
1238
 
1238
- .batch-ai-actions {
1239
- margin-top: 6px;
1240
- }
1239
+ .batch-ai-actions {
1240
+ margin-top: 6px;
1241
+ }
1241
1242
 
1242
- .batch-ai-btn {
1243
- border: 1px solid var(--ui-border);
1244
- background: rgba(25, 32, 44, 0.8);
1245
- color: var(--ui-text);
1246
- border-radius: 8px;
1247
- padding: 4px 10px;
1248
- font-size: 11px;
1249
- cursor: pointer;
1250
- }
1243
+ .batch-ai-btn {
1244
+ border: 1px solid var(--ui-border);
1245
+ background: rgba(25, 32, 44, 0.8);
1246
+ color: var(--ui-text);
1247
+ border-radius: 8px;
1248
+ padding: 4px 10px;
1249
+ font-size: 11px;
1250
+ cursor: pointer;
1251
+ }
1251
1252
 
1252
- .batch-ai-btn.primary {
1253
- border-color: rgba(191, 126, 255, 0.6);
1254
- background: rgba(191, 126, 255, 0.2);
1255
- }
1253
+ .batch-ai-btn.primary {
1254
+ border-color: rgba(191, 126, 255, 0.6);
1255
+ background: rgba(191, 126, 255, 0.2);
1256
+ }
1256
1257
 
1257
- .batch-ai-file {
1258
- display: none;
1259
- }
1258
+ .batch-ai-file {
1259
+ display: none;
1260
+ }
1260
1261
 
1261
- .batch-ai-file-name {
1262
- font-size: 11px;
1263
- color: var(--ui-muted);
1264
- }
1262
+ .batch-ai-file-name {
1263
+ font-size: 11px;
1264
+ color: var(--ui-muted);
1265
+ }
1265
1266
 
1266
- .batch-ai-status {
1267
- font-size: 11px;
1268
- color: var(--ui-muted);
1269
- }
1267
+ .batch-ai-status {
1268
+ font-size: 11px;
1269
+ color: var(--ui-muted);
1270
+ }
1270
1271
 
1271
- .batch-ai-dna {
1272
- margin-top: 8px;
1273
- padding: 8px;
1274
- border-radius: 10px;
1275
- border: 1px solid rgba(255, 255, 255, 0.06);
1276
- background: rgba(16, 20, 28, 0.6);
1277
- }
1272
+ .batch-ai-dna {
1273
+ margin-top: 8px;
1274
+ padding: 8px;
1275
+ border-radius: 10px;
1276
+ border: 1px solid rgba(255, 255, 255, 0.06);
1277
+ background: rgba(16, 20, 28, 0.6);
1278
+ }
1278
1279
 
1279
- .batch-ai-palette {
1280
- display: flex;
1281
- flex-wrap: wrap;
1282
- gap: 6px;
1283
- margin-top: 6px;
1284
- }
1280
+ .batch-ai-palette {
1281
+ display: flex;
1282
+ flex-wrap: wrap;
1283
+ gap: 6px;
1284
+ margin-top: 6px;
1285
+ }
1285
1286
 
1286
- .batch-ai-swatch {
1287
- width: 22px;
1288
- height: 22px;
1289
- border-radius: 6px;
1290
- border: 1px solid rgba(255, 255, 255, 0.2);
1291
- }
1287
+ .batch-ai-swatch {
1288
+ width: 22px;
1289
+ height: 22px;
1290
+ border-radius: 6px;
1291
+ border: 1px solid rgba(255, 255, 255, 0.2);
1292
+ }
1292
1293
 
1293
- .batch-ai-muted {
1294
- font-size: 11px;
1295
- color: var(--ui-muted);
1296
- }
1294
+ .batch-ai-muted {
1295
+ font-size: 11px;
1296
+ color: var(--ui-muted);
1297
+ }
1297
1298
 
1298
- .batch-ai-asset-list {
1299
- margin-top: 10px;
1300
- display: flex;
1301
- flex-direction: column;
1302
- gap: var(--space-md);
1303
- }
1299
+ .batch-ai-asset-list {
1300
+ margin-top: 10px;
1301
+ display: flex;
1302
+ flex-direction: column;
1303
+ gap: var(--space-md);
1304
+ }
1304
1305
 
1305
- .batch-ai-item {
1306
- border-radius: 10px;
1307
- border: 1px solid rgba(255, 255, 255, 0.06);
1308
- background: rgba(12, 16, 22, 0.7);
1309
- padding: 8px;
1310
- display: flex;
1311
- flex-direction: column;
1312
- gap: 8px;
1313
- }
1306
+ .batch-ai-item {
1307
+ border-radius: 10px;
1308
+ border: 1px solid rgba(255, 255, 255, 0.06);
1309
+ background: rgba(12, 16, 22, 0.7);
1310
+ padding: 8px;
1311
+ display: flex;
1312
+ flex-direction: column;
1313
+ gap: 8px;
1314
+ }
1314
1315
 
1315
- .batch-ai-item-header {
1316
- display: flex;
1317
- align-items: center;
1318
- justify-content: space-between;
1319
- gap: 8px;
1320
- }
1316
+ .batch-ai-item-header {
1317
+ display: flex;
1318
+ align-items: center;
1319
+ justify-content: space-between;
1320
+ gap: 8px;
1321
+ }
1321
1322
 
1322
- .batch-ai-toggle {
1323
- display: inline-flex;
1324
- align-items: center;
1325
- gap: 6px;
1326
- font-size: 11px;
1327
- color: var(--ui-text);
1328
- }
1323
+ .batch-ai-toggle {
1324
+ display: inline-flex;
1325
+ align-items: center;
1326
+ gap: 6px;
1327
+ font-size: 11px;
1328
+ color: var(--ui-text);
1329
+ }
1329
1330
 
1330
- .batch-ai-item-body {
1331
- display: flex;
1332
- flex-direction: column;
1333
- gap: 8px;
1334
- }
1331
+ .batch-ai-item-body {
1332
+ display: flex;
1333
+ flex-direction: column;
1334
+ gap: 8px;
1335
+ }
1335
1336
 
1336
- .batch-ai-thumb {
1337
- width: 100%;
1338
- max-height: 140px;
1339
- object-fit: contain;
1340
- border-radius: 8px;
1341
- border: 1px solid rgba(255, 255, 255, 0.08);
1342
- background: rgba(8, 10, 14, 0.6);
1343
- }
1337
+ .batch-ai-thumb {
1338
+ width: 100%;
1339
+ max-height: 140px;
1340
+ object-fit: contain;
1341
+ border-radius: 8px;
1342
+ border: 1px solid rgba(255, 255, 255, 0.08);
1343
+ background: rgba(8, 10, 14, 0.6);
1344
+ }
1344
1345
 
1345
- .batch-ai-thumb.hidden {
1346
- display: none;
1347
- }
1346
+ .batch-ai-thumb.hidden {
1347
+ display: none;
1348
+ }
1348
1349
 
1349
- .batch-ai-item-status {
1350
- font-size: 11px;
1351
- color: var(--ui-muted);
1352
- }
1350
+ .batch-ai-item-status {
1351
+ font-size: 11px;
1352
+ color: var(--ui-muted);
1353
+ }
1353
1354
 
1354
- .batch-ai-item-actions {
1355
- display: flex;
1356
- gap: 8px;
1357
- flex-wrap: wrap;
1358
- }
1355
+ .batch-ai-item-actions {
1356
+ display: flex;
1357
+ gap: 8px;
1358
+ flex-wrap: wrap;
1359
+ }
1359
1360
 
1360
- .batch-ai-empty {
1361
- font-size: 11px;
1362
- color: var(--ui-muted);
1363
- padding: 6px 0;
1364
- }
1361
+ .batch-ai-empty {
1362
+ font-size: 11px;
1363
+ color: var(--ui-muted);
1364
+ padding: 6px 0;
1365
+ }
1365
1366
 
1366
- .brand-dna-label {
1367
- font-size: 11px;
1368
- color: var(--ui-muted);
1369
- }
1367
+ .brand-dna-label {
1368
+ font-size: 11px;
1369
+ color: var(--ui-muted);
1370
+ }
1370
1371
 
1371
- .brand-dna-input,
1372
- .brand-dna-textarea,
1373
- .brand-dna-select {
1374
- width: 100%;
1375
- padding: 6px 8px;
1376
- border-radius: 8px;
1377
- border: 1px solid rgba(255, 255, 255, 0.08);
1378
- background: rgba(10, 14, 20, 0.85);
1379
- color: var(--ui-text);
1380
- font-size: 12px;
1381
- }
1372
+ .brand-dna-input,
1373
+ .brand-dna-textarea,
1374
+ .brand-dna-select {
1375
+ width: 100%;
1376
+ padding: 6px 8px;
1377
+ border-radius: 8px;
1378
+ border: 1px solid rgba(255, 255, 255, 0.08);
1379
+ background: rgba(10, 14, 20, 0.85);
1380
+ color: var(--ui-text);
1381
+ font-size: 12px;
1382
+ }
1382
1383
 
1383
- .brand-dna-textarea {
1384
- min-height: 70px;
1385
- resize: vertical;
1386
- }
1384
+ .brand-dna-textarea {
1385
+ min-height: 70px;
1386
+ resize: vertical;
1387
+ }
1387
1388
 
1388
- .brand-dna-row {
1389
- display: flex;
1390
- align-items: center;
1391
- gap: 8px;
1392
- flex-wrap: wrap;
1393
- }
1389
+ .brand-dna-row {
1390
+ display: flex;
1391
+ align-items: center;
1392
+ gap: 8px;
1393
+ flex-wrap: wrap;
1394
+ }
1394
1395
 
1395
- .brand-dna-btn {
1396
- border: 1px solid var(--ui-border);
1397
- background: rgba(25, 32, 44, 0.8);
1398
- color: var(--ui-text);
1399
- border-radius: 8px;
1400
- padding: 4px 10px;
1401
- font-size: 11px;
1402
- cursor: pointer;
1403
- }
1396
+ .brand-dna-btn {
1397
+ border: 1px solid var(--ui-border);
1398
+ background: rgba(25, 32, 44, 0.8);
1399
+ color: var(--ui-text);
1400
+ border-radius: 8px;
1401
+ padding: 4px 10px;
1402
+ font-size: 11px;
1403
+ cursor: pointer;
1404
+ }
1404
1405
 
1405
- .brand-dna-btn.primary {
1406
- border-color: rgba(111, 140, 255, 0.6);
1407
- background: rgba(111, 140, 255, 0.2);
1408
- }
1406
+ .brand-dna-btn.primary {
1407
+ border-color: rgba(111, 140, 255, 0.6);
1408
+ background: rgba(111, 140, 255, 0.2);
1409
+ }
1409
1410
 
1410
- .brand-dna-file {
1411
- display: none;
1412
- }
1411
+ .brand-dna-file {
1412
+ display: none;
1413
+ }
1413
1414
 
1414
- .brand-dna-file-name {
1415
- font-size: 11px;
1416
- color: var(--ui-muted);
1417
- }
1415
+ .brand-dna-file-name {
1416
+ font-size: 11px;
1417
+ color: var(--ui-muted);
1418
+ }
1418
1419
 
1419
- .brand-dna-status {
1420
- font-size: 11px;
1421
- color: var(--ui-muted);
1422
- }
1420
+ .brand-dna-status {
1421
+ font-size: 11px;
1422
+ color: var(--ui-muted);
1423
+ }
1423
1424
 
1424
- .brand-dna-meta {
1425
- margin-top: 8px;
1426
- }
1425
+ .brand-dna-meta {
1426
+ margin-top: 8px;
1427
+ }
1427
1428
 
1428
- .brand-dna-prompt {
1429
- margin: 6px 0 0;
1430
- padding: 8px;
1431
- border-radius: 10px;
1432
- border: 1px solid rgba(255, 255, 255, 0.06);
1433
- background: rgba(12, 16, 22, 0.7);
1434
- color: var(--ui-text);
1435
- font-size: 11px;
1436
- white-space: pre-wrap;
1437
- }
1429
+ .brand-dna-prompt {
1430
+ margin: 6px 0 0;
1431
+ padding: 8px;
1432
+ border-radius: 10px;
1433
+ border: 1px solid rgba(255, 255, 255, 0.06);
1434
+ background: rgba(12, 16, 22, 0.7);
1435
+ color: var(--ui-text);
1436
+ font-size: 11px;
1437
+ white-space: pre-wrap;
1438
+ }
1438
1439
 
1439
- .brand-dna-output {
1440
- margin-top: 8px;
1441
- padding: 8px;
1442
- border-radius: 10px;
1443
- border: 1px solid rgba(255, 255, 255, 0.06);
1444
- background: rgba(16, 20, 28, 0.6);
1445
- }
1440
+ .brand-dna-output {
1441
+ margin-top: 8px;
1442
+ padding: 8px;
1443
+ border-radius: 10px;
1444
+ border: 1px solid rgba(255, 255, 255, 0.06);
1445
+ background: rgba(16, 20, 28, 0.6);
1446
+ }
1446
1447
 
1447
- .brand-dna-palette {
1448
- display: flex;
1449
- flex-wrap: wrap;
1450
- gap: 6px;
1451
- margin-top: 6px;
1452
- }
1448
+ .brand-dna-palette {
1449
+ display: flex;
1450
+ flex-wrap: wrap;
1451
+ gap: 6px;
1452
+ margin-top: 6px;
1453
+ }
1453
1454
 
1454
- .brand-dna-swatch {
1455
- width: 22px;
1456
- height: 22px;
1457
- border-radius: 6px;
1458
- border: 1px solid rgba(255, 255, 255, 0.2);
1459
- }
1455
+ .brand-dna-swatch {
1456
+ width: 22px;
1457
+ height: 22px;
1458
+ border-radius: 6px;
1459
+ border: 1px solid rgba(255, 255, 255, 0.2);
1460
+ }
1460
1461
 
1461
- .brand-dna-muted {
1462
- font-size: 11px;
1463
- color: var(--ui-muted);
1464
- }
1462
+ .brand-dna-muted {
1463
+ font-size: 11px;
1464
+ color: var(--ui-muted);
1465
+ }
1465
1466
 
1466
- .brand-dna-object-list {
1467
- margin-top: 10px;
1468
- display: flex;
1469
- flex-direction: column;
1470
- gap: var(--space-md);
1471
- }
1467
+ .brand-dna-object-list {
1468
+ margin-top: 10px;
1469
+ display: flex;
1470
+ flex-direction: column;
1471
+ gap: var(--space-md);
1472
+ }
1472
1473
 
1473
- .brand-dna-object {
1474
- border-radius: 10px;
1475
- border: 1px solid rgba(255, 255, 255, 0.06);
1476
- background: rgba(12, 16, 22, 0.7);
1477
- padding: 8px;
1478
- display: flex;
1479
- flex-direction: column;
1480
- gap: 8px;
1481
- }
1474
+ .brand-dna-object {
1475
+ border-radius: 10px;
1476
+ border: 1px solid rgba(255, 255, 255, 0.06);
1477
+ background: rgba(12, 16, 22, 0.7);
1478
+ padding: 8px;
1479
+ display: flex;
1480
+ flex-direction: column;
1481
+ gap: 8px;
1482
+ }
1482
1483
 
1483
- .brand-dna-object-header {
1484
- display: flex;
1485
- align-items: center;
1486
- justify-content: space-between;
1487
- gap: 8px;
1488
- }
1484
+ .brand-dna-object-header {
1485
+ display: flex;
1486
+ align-items: center;
1487
+ justify-content: space-between;
1488
+ gap: 8px;
1489
+ }
1489
1490
 
1490
- .brand-dna-object-title {
1491
- font-size: 11px;
1492
- color: var(--ui-text);
1493
- word-break: break-all;
1494
- }
1491
+ .brand-dna-object-title {
1492
+ font-size: 11px;
1493
+ color: var(--ui-text);
1494
+ word-break: break-all;
1495
+ }
1495
1496
 
1496
- .brand-dna-object-status {
1497
- font-size: 11px;
1498
- color: var(--ui-muted);
1499
- }
1497
+ .brand-dna-object-status {
1498
+ font-size: 11px;
1499
+ color: var(--ui-muted);
1500
+ }
1500
1501
 
1501
- .brand-dna-empty {
1502
- font-size: 11px;
1503
- color: var(--ui-muted);
1504
- padding: 6px 0;
1505
- }
1502
+ .brand-dna-empty {
1503
+ font-size: 11px;
1504
+ color: var(--ui-muted);
1505
+ padding: 6px 0;
1506
+ }
1506
1507
 
1507
- .ai-panel {
1508
- display: flex;
1509
- flex-direction: column;
1510
- gap: var(--space-md);
1511
- padding: 8px;
1512
- border-radius: 10px;
1513
- border: 1px solid rgba(255, 255, 255, 0.06);
1514
- background: rgba(16, 20, 28, 0.6);
1515
- }
1508
+ .ai-panel {
1509
+ display: flex;
1510
+ flex-direction: column;
1511
+ gap: var(--space-md);
1512
+ padding: 16px;
1513
+ border-radius: 10px;
1514
+ border: 1px solid var(--ui-border);
1515
+ background: var(--ui-bg-2);
1516
+ }
1516
1517
 
1517
- .ai-modal {
1518
- position: fixed;
1519
- inset: 0;
1520
- background: rgba(6, 10, 16, 0.82);
1521
- display: flex;
1522
- align-items: center;
1523
- justify-content: center;
1524
- z-index: 10080;
1525
- }
1518
+ .ai-modal {
1519
+ position: fixed;
1520
+ inset: 0;
1521
+ background: rgba(30, 30, 30, 0.75);
1522
+ display: flex;
1523
+ align-items: center;
1524
+ justify-content: center;
1525
+ z-index: 10080;
1526
+ }
1526
1527
 
1527
- .ai-modal-card {
1528
- width: min(760px, 92vw);
1529
- max-height: 90vh;
1530
- overflow: auto;
1531
- background: rgba(16, 20, 28, 0.98);
1532
- border: 1px solid var(--ui-border);
1533
- border-radius: 16px;
1534
- box-shadow: 0 20px 50px rgba(0, 0, 0, 0.45);
1535
- }
1528
+ .ai-modal-card {
1529
+ width: min(760px, 92vw);
1530
+ max-height: 90vh;
1531
+ overflow: auto;
1532
+ background: var(--ui-surface);
1533
+ border: 1px solid var(--ui-border);
1534
+ border-radius: 16px;
1535
+ box-shadow: var(--ui-shadow-hover);
1536
+ }
1536
1537
 
1537
- .ai-modal-header {
1538
- display: flex;
1539
- align-items: center;
1540
- justify-content: space-between;
1541
- padding: 14px 18px;
1542
- border-bottom: 1px solid rgba(255, 255, 255, 0.06);
1543
- }
1538
+ .ai-modal-header {
1539
+ display: flex;
1540
+ align-items: center;
1541
+ justify-content: space-between;
1542
+ padding: 14px 18px;
1543
+ border-bottom: 1px solid var(--ui-border);
1544
+ background: var(--ui-surface-2);
1545
+ }
1544
1546
 
1545
- .ai-modal-actions {
1546
- display: inline-flex;
1547
- align-items: center;
1548
- gap: 8px;
1549
- }
1547
+ .ai-modal-actions {
1548
+ display: inline-flex;
1549
+ align-items: center;
1550
+ gap: 8px;
1551
+ }
1550
1552
 
1551
- .ai-modal-title {
1552
- font-size: 14px;
1553
- font-weight: 700;
1554
- color: var(--ui-text);
1555
- }
1553
+ .ai-modal-title {
1554
+ font-size: 14px;
1555
+ font-weight: 700;
1556
+ color: var(--ui-text);
1557
+ }
1556
1558
 
1557
- .ai-modal-subtitle {
1558
- font-size: 11px;
1559
- color: var(--ui-muted);
1560
- margin-top: 3px;
1561
- }
1559
+ .ai-modal-subtitle {
1560
+ font-size: 11px;
1561
+ color: var(--ui-muted);
1562
+ margin-top: 3px;
1563
+ }
1562
1564
 
1563
- .ai-modal-close {
1564
- border: 1px solid var(--ui-border);
1565
- background: rgba(25, 32, 44, 0.8);
1566
- color: var(--ui-text);
1567
- border-radius: 8px;
1568
- padding: 4px 12px;
1569
- font-size: 11px;
1570
- cursor: pointer;
1571
- }
1565
+ .ai-modal-close {
1566
+ border: 1px solid var(--ui-border);
1567
+ background: var(--ui-surface);
1568
+ color: var(--ui-text);
1569
+ border-radius: 8px;
1570
+ padding: 4px 12px;
1571
+ font-size: 11px;
1572
+ cursor: pointer;
1573
+ transition: all var(--ui-duration-fast) var(--ui-ease);
1574
+ }
1572
1575
 
1573
- .ai-modal-gallery {
1574
- border: 1px solid var(--ui-border);
1575
- background: rgba(25, 32, 44, 0.8);
1576
- color: var(--ui-text);
1577
- border-radius: 8px;
1578
- padding: 4px 12px;
1579
- font-size: 11px;
1580
- cursor: pointer;
1581
- }
1576
+ .ai-modal-close:hover {
1577
+ background: var(--ui-bg-2);
1578
+ border-color: var(--ui-terracotta);
1579
+ }
1582
1580
 
1583
- .ai-loading {
1584
- display: none;
1585
- align-items: center;
1586
- gap: 12px;
1587
- padding: 10px 12px;
1588
- border-radius: 10px;
1589
- background: linear-gradient(120deg, rgba(88, 163, 255, 0.1), rgba(255, 99, 148, 0.14));
1590
- border: 1px solid rgba(88, 163, 255, 0.25);
1591
- }
1581
+ .ai-modal-gallery {
1582
+ border: 1px solid var(--ui-border);
1583
+ background: var(--ui-surface);
1584
+ color: var(--ui-text);
1585
+ border-radius: 8px;
1586
+ padding: 4px 12px;
1587
+ font-size: 11px;
1588
+ cursor: pointer;
1589
+ transition: all var(--ui-duration-fast) var(--ui-ease);
1590
+ }
1592
1591
 
1593
- .ai-loading.active {
1594
- display: flex;
1595
- }
1592
+ .ai-modal-gallery:hover {
1593
+ background: var(--ui-bg-2);
1594
+ border-color: var(--ui-terracotta);
1595
+ }
1596
1596
 
1597
- .ai-loading-ring {
1598
- width: 26px;
1599
- height: 26px;
1600
- border-radius: 50%;
1601
- border: 3px solid rgba(255, 255, 255, 0.15);
1602
- border-top-color: rgba(88, 163, 255, 0.9);
1603
- animation: ai-spin 0.9s linear infinite;
1604
- }
1597
+ .ai-loading {
1598
+ display: none;
1599
+ align-items: center;
1600
+ gap: 12px;
1601
+ padding: 12px 14px;
1602
+ border-radius: 10px;
1603
+ background: rgba(227, 138, 90, 0.08);
1604
+ border: 1px solid var(--ui-terracotta);
1605
+ }
1605
1606
 
1606
- .ai-loading-bar {
1607
- flex: 1;
1608
- height: 8px;
1609
- border-radius: 999px;
1610
- background: linear-gradient(90deg, rgba(88, 163, 255, 0.2), rgba(255, 99, 148, 0.7), rgba(88, 163, 255, 0.2));
1611
- background-size: 200% 100%;
1612
- animation: ai-bar 1.4s var(--ui-ease) infinite;
1613
- }
1607
+ .ai-loading.active {
1608
+ display: flex;
1609
+ }
1614
1610
 
1615
- .ai-loading-text {
1616
- font-size: 11px;
1617
- color: var(--ui-text);
1618
- }
1611
+ .ai-loading-ring {
1612
+ width: 26px;
1613
+ height: 26px;
1614
+ border-radius: 50%;
1615
+ border: 3px solid var(--ui-border);
1616
+ border-top-color: var(--ui-terracotta);
1617
+ animation: ai-spin 0.9s linear infinite;
1618
+ }
1619
1619
 
1620
- @keyframes ai-spin {
1621
- to {
1622
- transform: rotate(360deg);
1623
- }
1624
- }
1620
+ .ai-loading-bar {
1621
+ flex: 1;
1622
+ height: 8px;
1623
+ border-radius: 999px;
1624
+ background: linear-gradient(90deg, rgba(227, 138, 90, 0.3), var(--ui-terracotta), rgba(227, 138, 90, 0.3));
1625
+ background-size: 200% 100%;
1626
+ animation: ai-bar 1.4s var(--ui-ease) infinite;
1627
+ }
1625
1628
 
1626
- @keyframes ai-bar {
1627
- 0% {
1628
- background-position: 0% 50%;
1629
- }
1629
+ .ai-loading-text {
1630
+ font-size: 11px;
1631
+ font-weight: 600;
1632
+ color: var(--ui-text);
1633
+ }
1630
1634
 
1631
- 100% {
1632
- background-position: 100% 50%;
1633
- }
1635
+ @keyframes ai-spin {
1636
+ to {
1637
+ transform: rotate(360deg);
1634
1638
  }
1639
+ }
1635
1640
 
1636
- .ai-label {
1637
- font-size: 11px;
1638
- color: var(--ui-muted);
1641
+ @keyframes ai-bar {
1642
+ 0% {
1643
+ background-position: 0% 50%;
1639
1644
  }
1640
1645
 
1641
- .ai-input,
1642
- .ai-select,
1643
- .ai-textarea {
1644
- width: 100%;
1645
- padding: 6px 8px;
1646
- border-radius: 8px;
1647
- border: 1px solid rgba(255, 255, 255, 0.08);
1648
- background: rgba(10, 14, 20, 0.85);
1649
- color: var(--ui-text);
1650
- font-size: 12px;
1646
+ 100% {
1647
+ background-position: 100% 50%;
1651
1648
  }
1649
+ }
1652
1650
 
1653
- .ai-textarea {
1654
- min-height: 70px;
1655
- resize: vertical;
1656
- }
1651
+ .ai-label {
1652
+ font-size: 11px;
1653
+ font-weight: 600;
1654
+ color: var(--ui-text);
1655
+ margin-bottom: 4px;
1656
+ }
1657
1657
 
1658
- .ai-row {
1659
- display: flex;
1660
- align-items: center;
1661
- gap: 8px;
1662
- flex-wrap: wrap;
1663
- }
1658
+ .ai-input,
1659
+ .ai-select,
1660
+ .ai-textarea {
1661
+ width: 100%;
1662
+ padding: 8px 10px;
1663
+ border-radius: 8px;
1664
+ border: 1px solid var(--ui-border);
1665
+ background: var(--ui-surface);
1666
+ color: var(--ui-text);
1667
+ font-size: 12px;
1668
+ transition: all var(--ui-duration-fast) var(--ui-ease);
1669
+ }
1664
1670
 
1665
- .ai-strength {
1666
- gap: var(--space-md);
1667
- }
1671
+ .ai-input:focus,
1672
+ .ai-select:focus,
1673
+ .ai-textarea:focus {
1674
+ outline: none;
1675
+ border-color: var(--ui-terracotta);
1676
+ box-shadow: 0 0 0 3px rgba(227, 138, 90, 0.15);
1677
+ }
1668
1678
 
1669
- .ai-strength input[type="range"] {
1670
- flex: 1;
1671
- min-width: 160px;
1672
- }
1679
+ .ai-textarea {
1680
+ min-height: 70px;
1681
+ resize: vertical;
1682
+ font-family: inherit;
1683
+ }
1673
1684
 
1674
- .ai-strength-value {
1675
- font-size: 11px;
1676
- color: var(--ui-text);
1677
- min-width: 20px;
1678
- text-align: right;
1679
- }
1685
+ .ai-row {
1686
+ display: flex;
1687
+ align-items: center;
1688
+ gap: 8px;
1689
+ flex-wrap: wrap;
1690
+ }
1680
1691
 
1681
- .ai-gallery {
1682
- border-radius: 10px;
1683
- border: 1px solid rgba(255, 255, 255, 0.06);
1684
- background: rgba(12, 16, 22, 0.65);
1685
- padding: 8px;
1686
- }
1692
+ .ai-strength {
1693
+ gap: var(--space-md);
1694
+ }
1687
1695
 
1688
- .ai-gallery.hidden {
1689
- display: none;
1690
- }
1696
+ .ai-strength input[type="range"] {
1697
+ flex: 1;
1698
+ min-width: 160px;
1699
+ }
1691
1700
 
1692
- .ai-gallery-grid {
1693
- display: grid;
1694
- grid-template-columns: repeat(auto-fit, minmax(90px, 1fr));
1695
- gap: 8px;
1696
- }
1701
+ .ai-strength-value {
1702
+ font-size: 11px;
1703
+ color: var(--ui-text);
1704
+ min-width: 20px;
1705
+ text-align: right;
1706
+ }
1697
1707
 
1698
- .ai-gallery-item {
1699
- border: 1px solid rgba(255, 255, 255, 0.08);
1700
- background: rgba(8, 10, 14, 0.7);
1701
- border-radius: 10px;
1702
- padding: 6px;
1703
- display: flex;
1704
- flex-direction: column;
1705
- gap: 6px;
1706
- cursor: pointer;
1707
- text-align: left;
1708
- }
1708
+ .ai-gallery {
1709
+ border-radius: 10px;
1710
+ border: 1px solid var(--ui-border);
1711
+ background: var(--ui-surface);
1712
+ padding: 12px;
1713
+ margin-top: 8px;
1714
+ }
1709
1715
 
1710
- .ai-gallery-item.active {
1711
- border-color: rgba(111, 140, 255, 0.6);
1712
- box-shadow: 0 0 0 1px rgba(111, 140, 255, 0.25);
1713
- }
1716
+ .ai-gallery.hidden {
1717
+ display: none;
1718
+ }
1714
1719
 
1715
- .ai-gallery-thumb {
1716
- width: 100%;
1717
- height: 70px;
1718
- object-fit: contain;
1719
- border-radius: 6px;
1720
- background: rgba(6, 8, 12, 0.7);
1721
- border: 1px solid rgba(255, 255, 255, 0.08);
1722
- }
1720
+ .ai-gallery-grid {
1721
+ display: grid;
1722
+ grid-template-columns: repeat(auto-fit, minmax(90px, 1fr));
1723
+ gap: 8px;
1724
+ }
1723
1725
 
1724
- .ai-gallery-label {
1725
- font-size: 10px;
1726
- color: var(--ui-text);
1727
- word-break: break-all;
1728
- }
1726
+ .ai-gallery-item {
1727
+ border: 2px solid var(--ui-border);
1728
+ background: var(--ui-surface-2);
1729
+ border-radius: 10px;
1730
+ padding: 8px;
1731
+ display: flex;
1732
+ flex-direction: column;
1733
+ gap: 6px;
1734
+ cursor: pointer;
1735
+ text-align: left;
1736
+ transition: all var(--ui-duration-fast) var(--ui-ease);
1737
+ }
1729
1738
 
1730
- .ai-gallery-empty {
1731
- font-size: 11px;
1732
- color: var(--ui-muted);
1733
- }
1739
+ .ai-gallery-item:hover {
1740
+ border-color: var(--ui-terracotta);
1741
+ background: var(--ui-surface);
1742
+ }
1734
1743
 
1735
- .ai-btn {
1736
- border: 1px solid var(--ui-border);
1737
- background: rgba(25, 32, 44, 0.8);
1738
- color: var(--ui-text);
1739
- border-radius: 8px;
1740
- padding: 4px 10px;
1741
- font-size: 11px;
1742
- cursor: pointer;
1743
- }
1744
+ .ai-gallery-item.active {
1745
+ border-color: var(--ui-terracotta);
1746
+ background: rgba(227, 138, 90, 0.1);
1747
+ box-shadow: 0 0 0 2px rgba(227, 138, 90, 0.2);
1748
+ }
1744
1749
 
1745
- .ai-file {
1746
- display: none;
1747
- }
1750
+ .ai-gallery-thumb {
1751
+ width: 100%;
1752
+ height: 70px;
1753
+ object-fit: contain;
1754
+ border-radius: 6px;
1755
+ background: var(--ui-surface);
1756
+ border: 1px solid var(--ui-border);
1757
+ }
1748
1758
 
1749
- .ai-file-name {
1750
- font-size: 11px;
1751
- color: var(--ui-muted);
1752
- }
1759
+ .ai-gallery-label {
1760
+ font-size: 10px;
1761
+ color: var(--ui-text);
1762
+ word-break: break-all;
1763
+ font-weight: 500;
1764
+ }
1753
1765
 
1754
- .ai-toggles label {
1755
- font-size: 11px;
1756
- color: var(--ui-text);
1757
- display: inline-flex;
1758
- align-items: center;
1759
- gap: 6px;
1760
- }
1766
+ .ai-gallery-empty {
1767
+ font-size: 11px;
1768
+ color: var(--ui-muted);
1769
+ padding: 20px;
1770
+ text-align: center;
1771
+ }
1761
1772
 
1762
- .ai-actions .debug-btn {
1763
- flex: 1;
1764
- }
1773
+ .ai-btn {
1774
+ border: 1px solid var(--ui-border);
1775
+ background: var(--ui-surface);
1776
+ color: var(--ui-text);
1777
+ border-radius: 8px;
1778
+ padding: 6px 12px;
1779
+ font-size: 11px;
1780
+ font-weight: 600;
1781
+ cursor: pointer;
1782
+ transition: all var(--ui-duration-fast) var(--ui-ease);
1783
+ }
1765
1784
 
1766
- .ai-status {
1767
- font-size: 11px;
1768
- color: var(--ui-muted);
1769
- }
1785
+ .ai-btn:hover:not(:disabled) {
1786
+ background: var(--ui-bg-2);
1787
+ border-color: var(--ui-terracotta);
1788
+ }
1770
1789
 
1771
- .ai-preview {
1772
- width: 100%;
1773
- border-radius: 10px;
1774
- border: 1px solid rgba(255, 255, 255, 0.08);
1775
- background: rgba(8, 10, 14, 0.6);
1776
- padding: 8px;
1777
- display: flex;
1778
- justify-content: center;
1779
- align-items: center;
1780
- min-height: 140px;
1781
- }
1790
+ .ai-btn:disabled {
1791
+ opacity: 0.5;
1792
+ cursor: not-allowed;
1793
+ }
1782
1794
 
1783
- .ai-preview img {
1784
- max-width: 100%;
1785
- max-height: 220px;
1786
- object-fit: contain;
1787
- }
1795
+ .ai-file {
1796
+ display: none;
1797
+ }
1788
1798
 
1789
- /* Asset Editor Modal */
1790
- .asset-editor-modal {
1791
- position: fixed;
1792
- inset: 0;
1793
- background: rgba(6, 10, 16, 0.82);
1794
- display: flex;
1795
- align-items: center;
1796
- justify-content: center;
1797
- z-index: 10060;
1798
- }
1799
+ .ai-file-name {
1800
+ font-size: 11px;
1801
+ color: var(--ui-muted);
1802
+ }
1799
1803
 
1800
- .asset-editor-card {
1801
- width: min(680px, 90vw);
1802
- max-height: 85vh;
1803
- background: rgba(16, 20, 28, 0.98);
1804
- border: 1px solid var(--ui-border);
1805
- border-radius: 16px;
1806
- box-shadow: 0 20px 50px rgba(0, 0, 0, 0.45);
1807
- display: flex;
1808
- flex-direction: column;
1809
- overflow: hidden;
1810
- }
1804
+ .ai-toggles label {
1805
+ font-size: 11px;
1806
+ color: var(--ui-text);
1807
+ display: inline-flex;
1808
+ align-items: center;
1809
+ gap: 6px;
1810
+ }
1811
1811
 
1812
- .asset-editor-header {
1813
- display: flex;
1814
- align-items: center;
1815
- justify-content: space-between;
1816
- padding: 16px 20px;
1817
- border-bottom: 1px solid rgba(255, 255, 255, 0.06);
1818
- }
1812
+ .ai-actions .debug-btn {
1813
+ flex: 1;
1814
+ }
1819
1815
 
1820
- .asset-editor-title {
1821
- font-size: 16px;
1822
- font-weight: 700;
1823
- color: var(--ui-text);
1824
- }
1816
+ .ai-status {
1817
+ font-size: 11px;
1818
+ color: var(--ui-muted);
1819
+ font-weight: 500;
1820
+ }
1825
1821
 
1826
- .asset-editor-subtitle {
1827
- font-size: 12px;
1828
- color: var(--ui-muted);
1829
- margin-top: 4px;
1830
- }
1822
+ .ai-preview {
1823
+ width: 100%;
1824
+ border-radius: 10px;
1825
+ border: 1px solid var(--ui-border);
1826
+ background: var(--ui-surface);
1827
+ padding: 12px;
1828
+ display: flex;
1829
+ justify-content: center;
1830
+ align-items: center;
1831
+ min-height: 140px;
1832
+ }
1831
1833
 
1832
- .asset-editor-close {
1833
- border: 1px solid var(--ui-border);
1834
- background: rgba(25, 32, 44, 0.8);
1835
- color: var(--ui-text);
1836
- border-radius: 8px;
1837
- padding: 6px 12px;
1838
- font-size: 14px;
1839
- cursor: pointer;
1840
- transition: all 0.15s var(--ui-ease);
1841
- }
1834
+ .ai-preview img {
1835
+ max-width: 100%;
1836
+ max-height: 220px;
1837
+ object-fit: contain;
1838
+ border-radius: 8px;
1839
+ }
1842
1840
 
1843
- .asset-editor-close:hover {
1844
- background: rgba(25, 32, 44, 1);
1845
- }
1841
+ /* Asset Editor Modal */
1842
+ .asset-editor-modal {
1843
+ position: fixed;
1844
+ inset: 0;
1845
+ background: rgba(6, 10, 16, 0.82);
1846
+ display: flex;
1847
+ align-items: center;
1848
+ justify-content: center;
1849
+ z-index: 10060;
1850
+ }
1846
1851
 
1847
- .asset-editor-tabs {
1848
- display: flex;
1849
- border-bottom: 1px solid rgba(255, 255, 255, 0.06);
1850
- }
1852
+ .asset-editor-card {
1853
+ width: min(680px, 90vw);
1854
+ max-height: 85vh;
1855
+ background: rgba(16, 20, 28, 0.98);
1856
+ border: 1px solid var(--ui-border);
1857
+ border-radius: 16px;
1858
+ box-shadow: 0 20px 50px rgba(0, 0, 0, 0.45);
1859
+ display: flex;
1860
+ flex-direction: column;
1861
+ overflow: hidden;
1862
+ }
1851
1863
 
1852
- .asset-editor-tab {
1853
- flex: 1;
1854
- padding: 12px 16px;
1855
- text-align: center;
1856
- font-size: 12px;
1857
- font-weight: 600;
1858
- color: var(--ui-muted);
1859
- cursor: pointer;
1860
- border-bottom: 2px solid transparent;
1861
- transition: all 0.15s var(--ui-ease);
1862
- }
1864
+ .asset-editor-header {
1865
+ display: flex;
1866
+ align-items: center;
1867
+ justify-content: space-between;
1868
+ padding: 16px 20px;
1869
+ border-bottom: 1px solid rgba(255, 255, 255, 0.06);
1870
+ }
1863
1871
 
1864
- .asset-editor-tab.active {
1865
- color: var(--ui-text);
1866
- border-bottom-color: var(--ui-accent);
1867
- }
1872
+ .asset-editor-title {
1873
+ font-size: 16px;
1874
+ font-weight: 700;
1875
+ color: var(--ui-text);
1876
+ }
1868
1877
 
1869
- .asset-editor-tab:hover:not(.active) {
1870
- color: var(--ui-text);
1871
- background: rgba(255, 255, 255, 0.02);
1872
- }
1878
+ .asset-editor-subtitle {
1879
+ font-size: 12px;
1880
+ color: var(--ui-muted);
1881
+ margin-top: 4px;
1882
+ }
1873
1883
 
1874
- .asset-editor-body {
1875
- flex: 1;
1876
- overflow-y: auto;
1877
- padding: 20px;
1878
- }
1884
+ .asset-editor-close {
1885
+ border: 1px solid var(--ui-border);
1886
+ background: rgba(25, 32, 44, 0.8);
1887
+ color: var(--ui-text);
1888
+ border-radius: 8px;
1889
+ padding: 6px 12px;
1890
+ font-size: 14px;
1891
+ cursor: pointer;
1892
+ transition: all 0.15s var(--ui-ease);
1893
+ }
1879
1894
 
1880
- .asset-editor-tab-panel {
1881
- display: none;
1882
- }
1895
+ .asset-editor-close:hover {
1896
+ background: rgba(25, 32, 44, 1);
1897
+ }
1883
1898
 
1884
- .asset-editor-tab-panel.active {
1885
- display: block;
1886
- }
1899
+ .asset-editor-tabs {
1900
+ display: flex;
1901
+ border-bottom: 1px solid rgba(255, 255, 255, 0.06);
1902
+ }
1887
1903
 
1888
- .asset-editor-hint {
1889
- font-size: 12px;
1890
- color: var(--ui-muted);
1891
- text-align: center;
1892
- padding: 20px;
1893
- line-height: 1.5;
1894
- }
1904
+ .asset-editor-tab {
1905
+ flex: 1;
1906
+ padding: 12px 16px;
1907
+ text-align: center;
1908
+ font-size: 12px;
1909
+ font-weight: 600;
1910
+ color: var(--ui-muted);
1911
+ cursor: pointer;
1912
+ border-bottom: 2px solid transparent;
1913
+ transition: all 0.15s var(--ui-ease);
1914
+ }
1895
1915
 
1896
- .asset-editor-ai-controls {
1897
- display: flex;
1898
- gap: 12px;
1899
- justify-content: center;
1900
- padding: 20px;
1901
- }
1916
+ .asset-editor-tab.active {
1917
+ color: var(--ui-text);
1918
+ border-bottom-color: var(--ui-accent);
1919
+ }
1902
1920
 
1903
- .asset-editor-actions {
1904
- display: flex;
1905
- align-items: center;
1906
- justify-content: flex-end;
1907
- gap: 12px;
1908
- padding: 16px 20px;
1909
- border-top: 1px solid rgba(255, 255, 255, 0.06);
1910
- }
1921
+ .asset-editor-tab:hover:not(.active) {
1922
+ color: var(--ui-text);
1923
+ background: rgba(255, 255, 255, 0.02);
1924
+ }
1911
1925
 
1912
- .asset-preview-modal {
1913
- position: fixed;
1914
- inset: 0;
1915
- background: rgba(8, 10, 14, 0.72);
1916
- display: flex;
1917
- align-items: center;
1918
- justify-content: center;
1919
- z-index: 10050;
1920
- }
1926
+ .asset-editor-body {
1927
+ flex: 1;
1928
+ overflow-y: auto;
1929
+ padding: 20px;
1930
+ }
1921
1931
 
1922
- .asset-preview-card {
1923
- width: min(720px, 92vw);
1924
- max-height: 82vh;
1925
- background: rgba(16, 20, 28, 0.98);
1926
- border: 1px solid var(--ui-border);
1927
- border-radius: 14px;
1928
- box-shadow: var(--ui-shadow);
1929
- display: flex;
1930
- flex-direction: column;
1931
- }
1932
+ .asset-editor-tab-panel {
1933
+ display: none;
1934
+ }
1932
1935
 
1933
- .asset-preview-header {
1934
- display: flex;
1935
- align-items: center;
1936
- justify-content: space-between;
1937
- padding: 10px 14px;
1938
- border-bottom: 1px solid rgba(255, 255, 255, 0.06);
1939
- color: var(--ui-text);
1940
- }
1936
+ .asset-editor-tab-panel.active {
1937
+ display: block;
1938
+ }
1941
1939
 
1942
- .asset-preview-title {
1943
- font-size: 12px;
1944
- font-weight: 600;
1945
- word-break: break-all;
1946
- }
1940
+ .asset-editor-hint {
1941
+ font-size: 12px;
1942
+ color: var(--ui-muted);
1943
+ text-align: center;
1944
+ padding: 20px;
1945
+ line-height: 1.5;
1946
+ }
1947
1947
 
1948
- .asset-preview-close {
1949
- border: 1px solid var(--ui-border);
1950
- background: rgba(25, 32, 44, 0.8);
1951
- color: var(--ui-text);
1952
- border-radius: 8px;
1953
- padding: 4px 10px;
1954
- font-size: 11px;
1955
- cursor: pointer;
1956
- }
1948
+ .asset-editor-ai-controls {
1949
+ display: flex;
1950
+ gap: 12px;
1951
+ justify-content: center;
1952
+ padding: 20px;
1953
+ }
1957
1954
 
1958
- .asset-preview-meta {
1959
- padding: 0 14px 10px;
1960
- color: var(--ui-muted);
1961
- font-size: 11px;
1962
- word-break: break-all;
1963
- border-bottom: 1px solid rgba(255, 255, 255, 0.06);
1964
- }
1955
+ .asset-editor-actions {
1956
+ display: flex;
1957
+ align-items: center;
1958
+ justify-content: flex-end;
1959
+ gap: 12px;
1960
+ padding: 16px 20px;
1961
+ border-top: 1px solid rgba(255, 255, 255, 0.06);
1962
+ }
1965
1963
 
1966
- .asset-preview-actions {
1967
- display: flex;
1968
- align-items: center;
1969
- gap: 8px;
1970
- }
1964
+ .asset-preview-modal {
1965
+ position: fixed;
1966
+ inset: 0;
1967
+ background: rgba(8, 10, 14, 0.72);
1968
+ display: flex;
1969
+ align-items: center;
1970
+ justify-content: center;
1971
+ z-index: 10050;
1972
+ }
1971
1973
 
1972
- .asset-preview-change {
1973
- border: 1px solid var(--ui-border);
1974
- background: rgba(25, 32, 44, 0.8);
1975
- color: var(--ui-text);
1976
- border-radius: 8px;
1977
- padding: 4px 10px;
1978
- font-size: 11px;
1979
- cursor: pointer;
1980
- }
1974
+ .asset-preview-card {
1975
+ width: min(720px, 92vw);
1976
+ max-height: 82vh;
1977
+ background: rgba(16, 20, 28, 0.98);
1978
+ border: 1px solid var(--ui-border);
1979
+ border-radius: 14px;
1980
+ box-shadow: var(--ui-shadow);
1981
+ display: flex;
1982
+ flex-direction: column;
1983
+ }
1981
1984
 
1982
- .asset-preview-ai {
1983
- border: 1px solid var(--ui-border);
1984
- background: rgba(25, 32, 44, 0.8);
1985
- color: var(--ui-text);
1986
- border-radius: 8px;
1987
- padding: 4px 10px;
1988
- font-size: 11px;
1989
- cursor: pointer;
1990
- }
1985
+ .asset-preview-header {
1986
+ display: flex;
1987
+ align-items: center;
1988
+ justify-content: space-between;
1989
+ padding: 10px 14px;
1990
+ border-bottom: 1px solid rgba(255, 255, 255, 0.06);
1991
+ color: var(--ui-text);
1992
+ }
1991
1993
 
1992
- .asset-preview-body {
1993
- padding: 12px;
1994
- overflow: auto;
1995
- display: flex;
1996
- align-items: center;
1997
- justify-content: center;
1998
- }
1994
+ .asset-preview-title {
1995
+ font-size: 12px;
1996
+ font-weight: 600;
1997
+ word-break: break-all;
1998
+ }
1999
1999
 
2000
- .asset-preview-ai-output {
2001
- border-top: 1px solid rgba(255, 255, 255, 0.06);
2002
- padding: 10px 12px 14px;
2003
- }
2000
+ .asset-preview-close {
2001
+ border: 1px solid var(--ui-border);
2002
+ background: rgba(25, 32, 44, 0.8);
2003
+ color: var(--ui-text);
2004
+ border-radius: 8px;
2005
+ padding: 4px 10px;
2006
+ font-size: 11px;
2007
+ cursor: pointer;
2008
+ }
2004
2009
 
2005
- .asset-preview-ai-output.hidden {
2006
- display: none;
2007
- }
2010
+ .asset-preview-meta {
2011
+ padding: 0 14px 10px;
2012
+ color: var(--ui-muted);
2013
+ font-size: 11px;
2014
+ word-break: break-all;
2015
+ border-bottom: 1px solid rgba(255, 255, 255, 0.06);
2016
+ }
2008
2017
 
2009
- .asset-preview-ai-label {
2010
- font-size: 11px;
2011
- color: var(--ui-muted);
2012
- margin-bottom: 6px;
2013
- }
2018
+ .asset-preview-actions {
2019
+ display: flex;
2020
+ align-items: center;
2021
+ gap: 8px;
2022
+ }
2014
2023
 
2015
- .asset-preview-ai-image {
2016
- width: 100%;
2017
- max-height: 200px;
2018
- object-fit: contain;
2019
- border-radius: 10px;
2020
- border: 1px solid rgba(255, 255, 255, 0.08);
2021
- background: rgba(8, 10, 14, 0.6);
2022
- }
2024
+ .asset-preview-change {
2025
+ border: 1px solid var(--ui-border);
2026
+ background: rgba(25, 32, 44, 0.8);
2027
+ color: var(--ui-text);
2028
+ border-radius: 8px;
2029
+ padding: 4px 10px;
2030
+ font-size: 11px;
2031
+ cursor: pointer;
2032
+ }
2023
2033
 
2024
- .asset-preview-body img {
2025
- max-width: 100%;
2026
- max-height: 60vh;
2027
- object-fit: contain;
2028
- }
2034
+ .asset-preview-ai {
2035
+ border: 1px solid var(--ui-border);
2036
+ background: rgba(25, 32, 44, 0.8);
2037
+ color: var(--ui-text);
2038
+ border-radius: 8px;
2039
+ padding: 4px 10px;
2040
+ font-size: 11px;
2041
+ cursor: pointer;
2042
+ }
2029
2043
 
2030
- .asset-preview-body audio {
2031
- width: 100%;
2032
- }
2044
+ .asset-preview-body {
2045
+ padding: 12px;
2046
+ overflow: auto;
2047
+ display: flex;
2048
+ align-items: center;
2049
+ justify-content: center;
2050
+ }
2033
2051
 
2034
- .asset-preview-body pre {
2035
- width: 100%;
2036
- white-space: pre-wrap;
2037
- color: var(--ui-text);
2038
- font-family: "JetBrains Mono", "SF Mono", "Consolas", "Monaco", monospace;
2039
- font-size: 12px;
2040
- }
2052
+ .asset-preview-ai-output {
2053
+ border-top: 1px solid rgba(255, 255, 255, 0.06);
2054
+ padding: 10px 12px 14px;
2055
+ }
2041
2056
 
2042
- .asset-crop-modal {
2043
- position: fixed;
2044
- inset: 0;
2045
- background: rgba(8, 10, 14, 0.78);
2046
- display: flex;
2047
- align-items: center;
2048
- justify-content: center;
2049
- z-index: 10060;
2050
- }
2057
+ .asset-preview-ai-output.hidden {
2058
+ display: none;
2059
+ }
2051
2060
 
2052
- .asset-crop-card {
2053
- width: min(860px, 96vw);
2054
- background: rgba(16, 20, 28, 0.98);
2055
- border: 1px solid var(--ui-border);
2056
- border-radius: 14px;
2057
- box-shadow: var(--ui-shadow);
2058
- display: flex;
2059
- flex-direction: column;
2060
- }
2061
+ .asset-preview-ai-label {
2062
+ font-size: 11px;
2063
+ color: var(--ui-muted);
2064
+ margin-bottom: 6px;
2065
+ }
2066
+
2067
+ .asset-preview-ai-image {
2068
+ width: 100%;
2069
+ max-height: 200px;
2070
+ object-fit: contain;
2071
+ border-radius: 10px;
2072
+ border: 1px solid rgba(255, 255, 255, 0.08);
2073
+ background: rgba(8, 10, 14, 0.6);
2074
+ }
2075
+
2076
+ .asset-preview-body img {
2077
+ max-width: 100%;
2078
+ max-height: 60vh;
2079
+ object-fit: contain;
2080
+ }
2081
+
2082
+ .asset-preview-body audio {
2083
+ width: 100%;
2084
+ }
2085
+
2086
+ .asset-preview-body pre {
2087
+ width: 100%;
2088
+ white-space: pre-wrap;
2089
+ color: var(--ui-text);
2090
+ font-family: "JetBrains Mono", "SF Mono", "Consolas", "Monaco", monospace;
2091
+ font-size: 12px;
2092
+ }
2093
+
2094
+ .asset-crop-modal {
2095
+ position: fixed;
2096
+ inset: 0;
2097
+ background: rgba(8, 10, 14, 0.78);
2098
+ display: flex;
2099
+ align-items: center;
2100
+ justify-content: center;
2101
+ z-index: 10060;
2102
+ }
2061
2103
 
2062
- .asset-crop-header {
2063
- display: flex;
2064
- align-items: center;
2065
- justify-content: space-between;
2066
- gap: 16px;
2067
- padding: 12px 16px;
2068
- border-bottom: 1px solid rgba(255, 255, 255, 0.06);
2069
- color: var(--ui-text);
2070
- }
2104
+ .asset-crop-card {
2105
+ width: min(860px, 96vw);
2106
+ background: rgba(16, 20, 28, 0.98);
2107
+ border: 1px solid var(--ui-border);
2108
+ border-radius: 14px;
2109
+ box-shadow: var(--ui-shadow);
2110
+ display: flex;
2111
+ flex-direction: column;
2112
+ }
2071
2113
 
2072
- .asset-crop-title {
2073
- font-size: 13px;
2074
- font-weight: 600;
2075
- }
2114
+ .asset-crop-header {
2115
+ display: flex;
2116
+ align-items: center;
2117
+ justify-content: space-between;
2118
+ gap: 16px;
2119
+ padding: 12px 16px;
2120
+ border-bottom: 1px solid rgba(255, 255, 255, 0.06);
2121
+ color: var(--ui-text);
2122
+ }
2076
2123
 
2077
- .asset-crop-subtitle {
2078
- font-size: 11px;
2079
- color: var(--ui-muted);
2080
- margin-top: 2px;
2081
- }
2124
+ .asset-crop-title {
2125
+ font-size: 13px;
2126
+ font-weight: 600;
2127
+ }
2082
2128
 
2083
- .asset-crop-close {
2084
- border: 1px solid var(--ui-border);
2085
- background: rgba(25, 32, 44, 0.8);
2086
- color: var(--ui-text);
2087
- border-radius: 8px;
2088
- padding: 4px 10px;
2089
- font-size: 11px;
2090
- cursor: pointer;
2091
- }
2129
+ .asset-crop-subtitle {
2130
+ font-size: 11px;
2131
+ color: var(--ui-muted);
2132
+ margin-top: 2px;
2133
+ }
2092
2134
 
2093
- .asset-crop-body {
2094
- padding: 16px;
2095
- display: flex;
2096
- justify-content: center;
2097
- gap: 16px;
2098
- flex-wrap: nowrap;
2099
- align-items: flex-start;
2100
- }
2135
+ .asset-crop-close {
2136
+ border: 1px solid var(--ui-border);
2137
+ background: rgba(25, 32, 44, 0.8);
2138
+ color: var(--ui-text);
2139
+ border-radius: 8px;
2140
+ padding: 4px 10px;
2141
+ font-size: 11px;
2142
+ cursor: pointer;
2143
+ }
2101
2144
 
2102
- .asset-crop-column {
2103
- display: flex;
2104
- flex-direction: column;
2105
- gap: 8px;
2106
- align-items: center;
2107
- min-width: 0;
2108
- }
2145
+ .asset-crop-body {
2146
+ padding: 16px;
2147
+ display: flex;
2148
+ justify-content: center;
2149
+ gap: 16px;
2150
+ flex-wrap: nowrap;
2151
+ align-items: flex-start;
2152
+ }
2109
2153
 
2110
- .asset-crop-label {
2111
- font-size: 11px;
2112
- color: var(--ui-muted);
2113
- text-transform: uppercase;
2114
- letter-spacing: 0.08em;
2115
- }
2154
+ .asset-crop-column {
2155
+ display: flex;
2156
+ flex-direction: column;
2157
+ gap: 8px;
2158
+ align-items: center;
2159
+ min-width: 0;
2160
+ }
2116
2161
 
2117
- .asset-crop-canvas {
2118
- border-radius: 12px;
2119
- border: 1px solid rgba(255, 255, 255, 0.08);
2120
- background: rgba(8, 10, 14, 0.55);
2121
- cursor: grab;
2122
- }
2162
+ .asset-crop-label {
2163
+ font-size: 11px;
2164
+ color: var(--ui-muted);
2165
+ text-transform: uppercase;
2166
+ letter-spacing: 0.08em;
2167
+ }
2123
2168
 
2124
- .asset-crop-preview {
2125
- border-radius: 12px;
2126
- border: 1px solid rgba(255, 255, 255, 0.08);
2127
- background: rgba(8, 10, 14, 0.55);
2128
- }
2169
+ .asset-crop-canvas {
2170
+ border-radius: 12px;
2171
+ border: 1px solid rgba(255, 255, 255, 0.08);
2172
+ background: rgba(8, 10, 14, 0.55);
2173
+ cursor: grab;
2174
+ }
2129
2175
 
2130
- .asset-crop-canvas:active {
2131
- cursor: grabbing;
2132
- }
2176
+ .asset-crop-preview {
2177
+ border-radius: 12px;
2178
+ border: 1px solid rgba(255, 255, 255, 0.08);
2179
+ background: rgba(8, 10, 14, 0.55);
2180
+ }
2133
2181
 
2134
- .asset-crop-controls {
2135
- display: flex;
2136
- align-items: center;
2137
- gap: 12px;
2138
- padding: 0 16px 12px;
2139
- color: var(--ui-text);
2140
- font-size: 12px;
2141
- }
2182
+ .asset-crop-canvas:active {
2183
+ cursor: grabbing;
2184
+ }
2142
2185
 
2143
- .asset-crop-controls label {
2144
- min-width: 42px;
2145
- }
2186
+ .asset-crop-controls {
2187
+ display: flex;
2188
+ align-items: center;
2189
+ gap: 12px;
2190
+ padding: 0 16px 12px;
2191
+ color: var(--ui-text);
2192
+ font-size: 12px;
2193
+ }
2146
2194
 
2147
- .asset-crop-zoom {
2148
- flex: 1;
2149
- }
2195
+ .asset-crop-controls label {
2196
+ min-width: 42px;
2197
+ }
2150
2198
 
2151
- .asset-crop-zoom-value {
2152
- min-width: 50px;
2153
- text-align: right;
2154
- color: var(--ui-muted);
2155
- }
2199
+ .asset-crop-zoom {
2200
+ flex: 1;
2201
+ }
2156
2202
 
2157
- .asset-crop-reset {
2158
- border: 1px solid var(--ui-border);
2159
- background: rgba(25, 32, 44, 0.8);
2160
- color: var(--ui-text);
2161
- border-radius: 8px;
2162
- padding: 4px 10px;
2163
- font-size: 11px;
2164
- cursor: pointer;
2165
- }
2203
+ .asset-crop-zoom-value {
2204
+ min-width: 50px;
2205
+ text-align: right;
2206
+ color: var(--ui-muted);
2207
+ }
2166
2208
 
2167
- .asset-crop-actions {
2168
- display: flex;
2169
- justify-content: flex-end;
2170
- gap: var(--space-md);
2171
- padding: 0 16px 16px;
2172
- }
2209
+ .asset-crop-reset {
2210
+ border: 1px solid var(--ui-border);
2211
+ background: rgba(25, 32, 44, 0.8);
2212
+ color: var(--ui-text);
2213
+ border-radius: 8px;
2214
+ padding: 4px 10px;
2215
+ font-size: 11px;
2216
+ cursor: pointer;
2217
+ }
2173
2218
 
2174
- .asset-crop-actions button {
2175
- border-radius: 10px;
2176
- padding: 6px 14px;
2177
- font-size: 12px;
2178
- border: 1px solid var(--ui-border);
2179
- background: rgba(28, 36, 50, 0.85);
2180
- color: var(--ui-text);
2181
- cursor: pointer;
2182
- }
2219
+ .asset-crop-actions {
2220
+ display: flex;
2221
+ justify-content: flex-end;
2222
+ gap: var(--space-md);
2223
+ padding: 0 16px 16px;
2224
+ }
2183
2225
 
2184
- .asset-crop-apply {
2185
- background: var(--ui-accent);
2186
- border-color: transparent;
2187
- color: #10151f;
2188
- font-weight: 600;
2189
- }
2226
+ .asset-crop-actions button {
2227
+ border-radius: 10px;
2228
+ padding: 6px 14px;
2229
+ font-size: 12px;
2230
+ border: 1px solid var(--ui-border);
2231
+ background: rgba(28, 36, 50, 0.85);
2232
+ color: var(--ui-text);
2233
+ cursor: pointer;
2234
+ }
2190
2235
 
2191
- @media (max-width: 720px) {
2192
- .customize-grid {
2193
- grid-template-columns: 1fr;
2194
- }
2195
- }
2236
+ .asset-crop-apply {
2237
+ background: var(--ui-accent);
2238
+ border-color: transparent;
2239
+ color: #10151f;
2240
+ font-weight: 600;
2241
+ }
2196
2242
 
2197
- .scene-panel-header {
2198
- display: flex;
2199
- align-items: center;
2200
- justify-content: space-between;
2201
- gap: 12px;
2202
- padding: 10px 14px;
2203
- background-color: rgba(24, 28, 38, 0.95);
2204
- color: var(--ui-text);
2205
- font-size: 12px;
2206
- user-select: none;
2207
- cursor: move;
2208
- border-bottom: 1px solid rgba(255, 255, 255, 0.05);
2243
+ @media (max-width: 720px) {
2244
+ .customize-grid {
2245
+ grid-template-columns: 1fr;
2209
2246
  }
2247
+ }
2210
2248
 
2211
- .scene-panel-actions {
2212
- display: flex;
2213
- align-items: center;
2214
- gap: 8px;
2215
- }
2249
+ .scene-panel-header {
2250
+ display: flex;
2251
+ align-items: center;
2252
+ justify-content: space-between;
2253
+ gap: 12px;
2254
+ padding: 10px 14px;
2255
+ background-color: rgba(24, 28, 38, 0.95);
2256
+ color: var(--ui-text);
2257
+ font-size: 12px;
2258
+ user-select: none;
2259
+ cursor: move;
2260
+ border-bottom: 1px solid rgba(255, 255, 255, 0.05);
2261
+ }
2216
2262
 
2217
- .scene-panel-action {
2218
- border: 1px solid var(--ui-border);
2219
- border-radius: 6px;
2220
- background: #1f2633;
2221
- color: var(--ui-muted);
2222
- font-size: 11px;
2223
- padding: 4px 8px;
2224
- cursor: pointer;
2225
- }
2263
+ .scene-panel-actions {
2264
+ display: flex;
2265
+ align-items: center;
2266
+ gap: 8px;
2267
+ }
2226
2268
 
2227
- .scene-panel-action:hover {
2228
- border-color: rgba(255, 159, 67, 0.6);
2229
- color: var(--ui-text);
2230
- }
2269
+ .scene-panel-action {
2270
+ border: 1px solid var(--ui-border);
2271
+ border-radius: 6px;
2272
+ background: #1f2633;
2273
+ color: var(--ui-muted);
2274
+ font-size: 11px;
2275
+ padding: 4px 8px;
2276
+ cursor: pointer;
2277
+ }
2231
2278
 
2232
- .scene-panel-toggle {
2233
- border: none;
2234
- background: transparent;
2235
- color: var(--ui-muted);
2236
- font-size: 14px;
2237
- cursor: pointer;
2238
- padding: 4px 8px;
2239
- border-radius: 6px;
2240
- transition: all var(--ui-duration-fast) var(--ui-ease);
2241
- }
2279
+ .scene-panel-action:hover {
2280
+ border-color: rgba(255, 159, 67, 0.6);
2281
+ color: var(--ui-text);
2282
+ }
2242
2283
 
2243
- /* Terracotta hover for close button */
2244
- .scene-panel-toggle:hover {
2245
- background: rgba(227, 138, 90, 0.15);
2246
- color: var(--ui-terracotta);
2247
- }
2284
+ .scene-panel-toggle {
2285
+ border: none;
2286
+ background: transparent;
2287
+ color: var(--ui-muted);
2288
+ font-size: 14px;
2289
+ cursor: pointer;
2290
+ padding: 4px 8px;
2291
+ border-radius: 6px;
2292
+ transition: all var(--ui-duration-fast) var(--ui-ease);
2293
+ }
2248
2294
 
2249
- .panel-title {
2250
- display: flex;
2251
- align-items: center;
2252
- gap: 8px;
2253
- }
2295
+ /* Terracotta hover for close button */
2296
+ .scene-panel-toggle:hover {
2297
+ background: rgba(227, 138, 90, 0.15);
2298
+ color: var(--ui-terracotta);
2299
+ }
2254
2300
 
2255
- .panel-pill {
2256
- padding: 2px 8px;
2257
- border-radius: 999px;
2258
- background: rgba(61, 214, 198, 0.12);
2259
- color: var(--ui-accent);
2260
- font-size: 10px;
2261
- text-transform: uppercase;
2262
- letter-spacing: 0.6px;
2263
- }
2301
+ .panel-title {
2302
+ display: flex;
2303
+ align-items: center;
2304
+ gap: 8px;
2305
+ }
2264
2306
 
2265
- .panel-accent-blue .panel-pill {
2266
- background: rgba(111, 140, 255, 0.14);
2267
- color: var(--ui-accent-3);
2268
- }
2307
+ .panel-pill {
2308
+ padding: 2px 8px;
2309
+ border-radius: 999px;
2310
+ background: rgba(61, 214, 198, 0.12);
2311
+ color: var(--ui-accent);
2312
+ font-size: 10px;
2313
+ text-transform: uppercase;
2314
+ letter-spacing: 0.6px;
2315
+ }
2269
2316
 
2270
- .panel-accent-amber .panel-pill {
2271
- background: rgba(255, 159, 67, 0.16);
2272
- color: var(--ui-accent-2);
2273
- }
2317
+ .panel-accent-blue .panel-pill {
2318
+ background: rgba(111, 140, 255, 0.14);
2319
+ color: var(--ui-accent-3);
2320
+ }
2274
2321
 
2275
- .panel-accent-violet .panel-pill {
2276
- background: rgba(191, 126, 255, 0.18);
2277
- color: #d6b7ff;
2278
- }
2322
+ .panel-accent-amber .panel-pill {
2323
+ background: rgba(255, 159, 67, 0.16);
2324
+ color: var(--ui-accent-2);
2325
+ }
2279
2326
 
2280
- .panel-title-text {
2281
- font-weight: 700;
2282
- font-size: 12px;
2283
- letter-spacing: 0.4px;
2284
- }
2327
+ .panel-accent-violet .panel-pill {
2328
+ background: rgba(191, 126, 255, 0.18);
2329
+ color: #d6b7ff;
2330
+ }
2285
2331
 
2286
- .panel-accent-teal {
2287
- border-color: rgba(61, 214, 198, 0.35);
2288
- }
2332
+ .panel-title-text {
2333
+ font-weight: 700;
2334
+ font-size: 12px;
2335
+ letter-spacing: 0.4px;
2336
+ }
2289
2337
 
2290
- .panel-accent-blue {
2291
- border-color: rgba(111, 140, 255, 0.35);
2292
- }
2338
+ .panel-accent-teal {
2339
+ border-color: rgba(61, 214, 198, 0.35);
2340
+ }
2293
2341
 
2294
- .panel-accent-amber {
2295
- border-color: rgba(255, 159, 67, 0.4);
2296
- }
2342
+ .panel-accent-blue {
2343
+ border-color: rgba(111, 140, 255, 0.35);
2344
+ }
2297
2345
 
2298
- .panel-accent-violet {
2299
- border-color: rgba(191, 126, 255, 0.35);
2300
- }
2346
+ .panel-accent-amber {
2347
+ border-color: rgba(255, 159, 67, 0.4);
2348
+ }
2301
2349
 
2302
- .scene-panel-body {
2303
- padding: 12px 14px 16px;
2304
- overflow-y: auto;
2305
- max-height: calc(78vh - 44px);
2306
- }
2350
+ .panel-accent-violet {
2351
+ border-color: rgba(191, 126, 255, 0.35);
2352
+ }
2307
2353
 
2308
- .scene-panel.collapsed .scene-panel-body {
2309
- display: none;
2310
- }
2354
+ .scene-panel-body {
2355
+ padding: 12px 14px 16px;
2356
+ overflow-y: auto;
2357
+ max-height: calc(78vh - 44px);
2358
+ }
2311
2359
 
2360
+ .scene-panel.collapsed .scene-panel-body {
2361
+ display: none;
2362
+ }
2312
2363
 
2313
2364
  /* ========== 04-device-frame.css ========== */
2314
2365
  /* 04 Device Frame */
@@ -3120,7 +3171,7 @@
3120
3171
  .workbench-content .scene-panel-header {
3121
3172
  display: none;
3122
3173
 
3123
- /* Hide individual panel headers */
3174
+ /* Hide individual panel headers */
3124
3175
  }
3125
3176
 
3126
3177
  .workbench-content .scene-panel-body {
@@ -3256,6 +3307,7 @@
3256
3307
 
3257
3308
  .inspector-panel {
3258
3309
  width: 340px;
3310
+ min-width: 320px;
3259
3311
  max-width: 90vw;
3260
3312
  }
3261
3313
 
@@ -3541,7 +3593,7 @@
3541
3593
  border: 1px solid rgba(255, 255, 255, 0.1);
3542
3594
  border-radius: 8px;
3543
3595
  padding: 10px 12px;
3544
- color: var(--ui-text);
3596
+ color: var(--ui-dark-text);
3545
3597
  font-family: inherit;
3546
3598
  font-size: 13px;
3547
3599
  margin-bottom: 16px;
@@ -3693,6 +3745,7 @@
3693
3745
  filter: grayscale(1);
3694
3746
  opacity: 0.5;
3695
3747
  }
3748
+
3696
3749
  /* Version Management Section */
3697
3750
  .version-management-section {
3698
3751
  margin-top: 16px;
@@ -3816,7 +3869,6 @@
3816
3869
  line-height: 1.4;
3817
3870
  }
3818
3871
 
3819
-
3820
3872
  /* ========== 08-breadcrumbs.css ========== */
3821
3873
  /* Breadcrumbs */
3822
3874
  .scene-breadcrumbs {
@@ -3946,6 +3998,7 @@
3946
3998
 
3947
3999
  .inspector-input {
3948
4000
  flex: 1;
4001
+ min-width: 80px;
3949
4002
  background: var(--ui-surface);
3950
4003
  color: var(--ui-text);
3951
4004
  border: 1px solid var(--ui-border);