@runcontext/ui 0.5.11 → 0.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/static/setup.css CHANGED
@@ -266,6 +266,27 @@ body {
266
266
  margin: 0 auto;
267
267
  }
268
268
 
269
+ /* ── Universal component spacing ── */
270
+ /* InfoCard, trust signals, cards, and headings get consistent bottom margin */
271
+ .content-wrapper .rc-info-card {
272
+ margin-bottom: var(--rc-space-4, 16px);
273
+ }
274
+ .content-wrapper .trust-signal {
275
+ margin-bottom: var(--rc-space-4, 16px);
276
+ }
277
+ .content-wrapper .rc-card {
278
+ margin-bottom: var(--rc-space-4, 16px);
279
+ }
280
+ .content-wrapper h2,
281
+ .content-wrapper h3 {
282
+ margin-bottom: var(--rc-space-3, 12px);
283
+ }
284
+
285
+ /* Ensure tooltips render above scroll containers */
286
+ .rc-tooltip-wrapper {
287
+ z-index: 9999;
288
+ }
289
+
269
290
  /* ================================================================
270
291
  Footer
271
292
  ================================================================ */
@@ -891,8 +912,8 @@ body {
891
912
  display: flex;
892
913
  justify-content: space-between;
893
914
  align-items: center;
894
- margin-top: 2rem;
895
- padding-top: 1.5rem;
915
+ margin: var(--rc-space-4, 16px) 0;
916
+ padding-top: var(--rc-space-4, 16px);
896
917
  border-top: 1px solid var(--border);
897
918
  }
898
919
 
@@ -1291,6 +1312,29 @@ code, pre, .mono {
1291
1312
  /* ================================================================
1292
1313
  Enrich Step
1293
1314
  ================================================================ */
1315
+ /* Enrichment progress banner */
1316
+ .enrich-progress-banner {
1317
+ display: flex;
1318
+ align-items: center;
1319
+ gap: var(--rc-space-4, 16px);
1320
+ padding: var(--rc-space-4, 16px);
1321
+ margin-bottom: var(--rc-space-4, 16px);
1322
+ border-radius: var(--rc-radius-lg, 12px);
1323
+ background: var(--rc-color-surface-card);
1324
+ border: 1px solid var(--rc-color-accent, #c9a55a);
1325
+ animation: rc-fade-in 200ms ease-out;
1326
+ }
1327
+
1328
+ .enrich-progress-banner strong {
1329
+ color: var(--rc-color-text-primary);
1330
+ font-size: var(--rc-text-sm, 0.875rem);
1331
+ }
1332
+
1333
+ .enrich-progress-banner .muted {
1334
+ font-size: var(--rc-text-xs, 0.75rem);
1335
+ margin-top: 2px;
1336
+ }
1337
+
1294
1338
  .enrich-dashboard {
1295
1339
  display: flex;
1296
1340
  flex-direction: column;
@@ -1377,70 +1421,1048 @@ code, pre, .mono {
1377
1421
  font-size: 12px;
1378
1422
  }
1379
1423
 
1424
+ /* ================================================================
1425
+ Curate Step
1426
+ ================================================================ */
1427
+ .curate-workflow {
1428
+ display: flex;
1429
+ flex-direction: column;
1430
+ gap: 0;
1431
+ margin-bottom: 24px;
1432
+ }
1433
+ .curate-step {
1434
+ display: flex;
1435
+ gap: 16px;
1436
+ padding: 16px 0;
1437
+ border-bottom: 1px solid var(--border);
1438
+ }
1439
+ .curate-step:last-child {
1440
+ border-bottom: none;
1441
+ }
1442
+ .curate-step-num {
1443
+ flex-shrink: 0;
1444
+ width: 28px;
1445
+ height: 28px;
1446
+ border-radius: 50%;
1447
+ background: var(--accent);
1448
+ color: #1a1a1a;
1449
+ font-weight: 700;
1450
+ font-size: 0.8125rem;
1451
+ display: flex;
1452
+ align-items: center;
1453
+ justify-content: center;
1454
+ }
1455
+ .curate-step-content {
1456
+ flex: 1;
1457
+ }
1458
+ .curate-step-content h4 {
1459
+ margin: 0 0 4px;
1460
+ font-size: 0.9375rem;
1461
+ }
1462
+ .curate-step-content p {
1463
+ margin: 0;
1464
+ }
1465
+
1466
+ .curate-prompt-block {
1467
+ background: var(--surface);
1468
+ border: 1px solid var(--border);
1469
+ border-radius: var(--radius, 8px);
1470
+ padding: 12px;
1471
+ margin-top: 8px;
1472
+ }
1473
+ .curate-prompt-text {
1474
+ font-family: var(--font-mono);
1475
+ font-size: 0.75rem;
1476
+ color: var(--text-secondary);
1477
+ white-space: pre-wrap;
1478
+ line-height: 1.5;
1479
+ }
1480
+
1481
+ .curate-scorecard {
1482
+ background: var(--surface);
1483
+ border: 1px solid var(--border);
1484
+ border-radius: var(--radius, 8px);
1485
+ padding: 16px;
1486
+ margin-top: 20px;
1487
+ }
1488
+ .curate-scorecard-header {
1489
+ display: flex;
1490
+ justify-content: space-between;
1491
+ align-items: center;
1492
+ margin-bottom: 12px;
1493
+ }
1494
+ .curate-scorecard-header h3 {
1495
+ margin: 0;
1496
+ font-size: 0.9375rem;
1497
+ }
1498
+ .curate-checks-section {
1499
+ margin-bottom: 8px;
1500
+ }
1501
+ .curate-checks-label {
1502
+ font-size: 0.75rem;
1503
+ font-weight: 600;
1504
+ text-transform: uppercase;
1505
+ letter-spacing: 0.04em;
1506
+ color: var(--text-muted);
1507
+ margin-bottom: 6px;
1508
+ cursor: pointer;
1509
+ list-style: none;
1510
+ }
1511
+ .curate-checks-label::-webkit-details-marker { display: none; }
1512
+ .curate-check {
1513
+ display: flex;
1514
+ align-items: flex-start;
1515
+ gap: 8px;
1516
+ padding: 4px 0;
1517
+ font-size: 0.8125rem;
1518
+ }
1519
+ .curate-check-icon {
1520
+ flex-shrink: 0;
1521
+ width: 16px;
1522
+ font-weight: 700;
1523
+ }
1524
+ .curate-check.fail .curate-check-icon {
1525
+ color: var(--error);
1526
+ }
1527
+ .curate-check.pass .curate-check-icon {
1528
+ color: var(--success);
1529
+ }
1530
+
1531
+ .curate-instructions {
1532
+ border: 1px solid var(--border);
1533
+ border-radius: var(--radius, 8px);
1534
+ margin-top: 12px;
1535
+ }
1536
+ .curate-instructions summary {
1537
+ padding: 10px 14px;
1538
+ cursor: pointer;
1539
+ font-weight: 600;
1540
+ font-size: 0.875rem;
1541
+ color: var(--text-secondary);
1542
+ }
1543
+ .curate-instructions-content {
1544
+ padding: 0 14px 14px;
1545
+ max-height: 400px;
1546
+ overflow-y: auto;
1547
+ }
1548
+ .curate-instructions-content pre {
1549
+ font-family: var(--font-mono);
1550
+ font-size: 0.7rem;
1551
+ line-height: 1.5;
1552
+ white-space: pre-wrap;
1553
+ color: var(--text-secondary);
1554
+ }
1555
+
1380
1556
  /* ================================================================
1381
1557
  Serve Step
1382
1558
  ================================================================ */
1383
- .serve-card {
1384
- max-width: 650px;
1559
+ .serve-done-hero {
1560
+ text-align: center;
1561
+ padding: 32px 0 24px;
1385
1562
  }
1386
- .serve-tier-badge {
1387
- display: inline-block;
1388
- padding: var(--rc-space-2) var(--rc-space-4);
1389
- border-radius: var(--rc-radius-md, 8px);
1563
+ .serve-done-icon {
1564
+ width: 48px;
1565
+ height: 48px;
1566
+ border-radius: 50%;
1567
+ background: rgba(34, 197, 94, 0.15);
1568
+ color: var(--success, #22c55e);
1569
+ display: inline-flex;
1570
+ align-items: center;
1571
+ justify-content: center;
1572
+ font-size: 1.5rem;
1390
1573
  font-weight: 700;
1391
- font-size: var(--rc-font-lg);
1392
- margin: var(--rc-space-4) 0;
1574
+ margin-bottom: 12px;
1575
+ }
1576
+ .serve-done-title {
1577
+ font-size: 1.25rem;
1578
+ font-weight: 700;
1579
+ margin: 0 0 8px;
1580
+ }
1581
+ .serve-tier-row {
1582
+ display: flex;
1583
+ align-items: center;
1584
+ justify-content: center;
1585
+ gap: 8px;
1586
+ }
1587
+
1588
+ .serve-section-heading {
1589
+ font-size: 0.9375rem;
1590
+ font-weight: 600;
1591
+ margin: 0 0 12px;
1592
+ color: var(--text-secondary);
1393
1593
  }
1394
- .serve-tier-badge.bronze { background: rgba(205, 127, 50, 0.15); color: #cd7f32; border: 1px solid rgba(205, 127, 50, 0.3); }
1395
- .serve-tier-badge.silver { background: rgba(192, 192, 192, 0.15); color: #c0c0c0; border: 1px solid rgba(192, 192, 192, 0.3); }
1396
- .serve-tier-badge.gold { background: rgba(201, 165, 90, 0.15); color: var(--rc-color-accent, #c9a55a); border: 1px solid rgba(201, 165, 90, 0.3); }
1397
1594
 
1398
- .serve-ctas {
1595
+ .serve-next-grid {
1596
+ display: grid;
1597
+ grid-template-columns: 1fr 1fr;
1598
+ gap: 10px;
1599
+ margin-bottom: 20px;
1600
+ }
1601
+ .serve-next-card {
1399
1602
  display: flex;
1400
- gap: var(--rc-space-3);
1401
- margin: var(--rc-space-6) 0;
1603
+ align-items: flex-start;
1604
+ gap: 12px;
1605
+ padding: 16px;
1606
+ border: 1px solid var(--border);
1607
+ border-radius: var(--radius, 8px);
1608
+ background: var(--surface);
1609
+ cursor: pointer;
1610
+ transition: border-color 0.15s, background 0.15s;
1611
+ }
1612
+ .serve-next-card:hover {
1613
+ border-color: var(--accent);
1614
+ background: rgba(201, 165, 90, 0.04);
1615
+ }
1616
+ .serve-next-card h4 {
1617
+ margin: 0 0 2px;
1618
+ font-size: 0.875rem;
1619
+ font-weight: 600;
1620
+ }
1621
+ .serve-next-card p {
1622
+ margin: 0;
1623
+ font-size: 0.75rem;
1624
+ line-height: 1.4;
1625
+ }
1626
+ .serve-next-icon {
1627
+ width: 32px;
1628
+ height: 32px;
1629
+ border-radius: 8px;
1630
+ background: rgba(201, 165, 90, 0.1);
1631
+ color: var(--accent);
1632
+ display: flex;
1633
+ align-items: center;
1634
+ justify-content: center;
1635
+ font-size: 1rem;
1636
+ flex-shrink: 0;
1402
1637
  }
1403
1638
 
1404
- .serve-commands {
1405
- background: var(--rc-color-bg-secondary, #1e293b);
1406
- border: 1px solid var(--rc-color-border, #334155);
1407
- border-radius: var(--rc-radius-md, 8px);
1408
- padding: var(--rc-space-4);
1409
- margin: var(--rc-space-4) 0;
1639
+ .serve-extras {
1640
+ margin-top: 4px;
1641
+ border: 1px solid var(--border);
1642
+ border-radius: var(--radius, 8px);
1643
+ background: var(--surface);
1410
1644
  }
1411
- .serve-commands-title {
1645
+ .serve-extras summary {
1646
+ padding: 12px 16px;
1647
+ cursor: pointer;
1412
1648
  font-weight: 600;
1413
- margin-bottom: var(--rc-space-3);
1414
- font-size: var(--rc-font-sm);
1415
- text-transform: uppercase;
1416
- letter-spacing: 0.05em;
1417
- color: var(--rc-color-text-secondary, #94a3b8);
1649
+ font-size: 0.8125rem;
1650
+ color: var(--text-muted);
1651
+ user-select: none;
1652
+ list-style: none;
1653
+ }
1654
+ .serve-extras summary::-webkit-details-marker { display: none; }
1655
+ .serve-extras summary::before {
1656
+ content: '\25B6';
1657
+ display: inline-block;
1658
+ margin-right: 8px;
1659
+ font-size: 0.65rem;
1660
+ transition: transform 0.15s;
1661
+ }
1662
+ .serve-extras[open] summary::before {
1663
+ transform: rotate(90deg);
1664
+ }
1665
+ .serve-extras-body {
1666
+ padding: 0 16px 16px;
1667
+ display: flex;
1668
+ flex-direction: column;
1669
+ gap: 20px;
1670
+ }
1671
+ .serve-extras-section h4 {
1672
+ margin: 0 0 4px;
1673
+ font-size: 0.8125rem;
1674
+ font-weight: 600;
1675
+ }
1676
+ .serve-extras-section p {
1677
+ margin: 0 0 10px;
1678
+ font-size: 0.75rem;
1679
+ }
1680
+
1681
+ .serve-cli-grid {
1682
+ margin-top: 8px;
1418
1683
  }
1419
1684
  .serve-cmd-row {
1420
1685
  display: flex;
1421
- gap: var(--rc-space-4);
1422
- padding: var(--rc-space-2) 0;
1423
- font-family: var(--rc-font-mono, 'Geist Mono', monospace);
1424
- font-size: var(--rc-font-sm);
1686
+ align-items: baseline;
1687
+ gap: 16px;
1688
+ padding: 6px 0;
1689
+ font-size: 0.8125rem;
1690
+ }
1691
+ .serve-cmd-row + .serve-cmd-row {
1692
+ border-top: 1px solid var(--border);
1425
1693
  }
1426
1694
  .serve-cmd {
1427
- color: var(--rc-color-accent, #c9a55a);
1428
- min-width: 280px;
1695
+ font-family: var(--font-mono);
1696
+ color: var(--accent);
1697
+ min-width: 180px;
1698
+ font-size: 0.8125rem;
1429
1699
  }
1430
1700
  .serve-cmd-desc {
1431
- color: var(--rc-color-text-secondary, #94a3b8);
1701
+ color: var(--text-muted);
1432
1702
  }
1433
1703
 
1434
- .mcp-config-block {
1435
- background: #0f172a;
1436
- border: 1px solid var(--rc-color-border, #334155);
1437
- border-radius: var(--rc-radius-md, 8px);
1438
- padding: var(--rc-space-4);
1439
- margin: var(--rc-space-4) 0;
1440
- font-family: var(--rc-font-mono, 'Geist Mono', monospace);
1441
- font-size: var(--rc-font-sm);
1442
- white-space: pre-wrap;
1443
- word-break: break-all;
1444
- max-height: 300px;
1445
- overflow-y: auto;
1704
+ /* ===== UX Polish: Trust signals ===== */
1705
+ .trust-signal {
1706
+ display: flex;
1707
+ align-items: center;
1708
+ gap: 8px;
1709
+ padding: 8px 12px;
1710
+ margin-bottom: 16px;
1711
+ border-radius: 6px;
1712
+ background: var(--rc-color-surface-card);
1713
+ font-size: 0.8125rem;
1714
+ color: var(--rc-color-text-secondary);
1715
+ }
1716
+
1717
+ .trust-signal-text {
1718
+ line-height: 1.4;
1719
+ }
1720
+
1721
+ /* ===== UX Polish: Step transitions ===== */
1722
+ @keyframes rc-fade-in {
1723
+ from { opacity: 0; transform: translateY(8px); }
1724
+ to { opacity: 1; transform: translateY(0); }
1725
+ }
1726
+
1727
+ .step-fade-in {
1728
+ animation: rc-fade-in 200ms ease-out;
1729
+ }
1730
+
1731
+ /* ===== UX Polish: Sidebar security ===== */
1732
+ .sidebar-security {
1733
+ display: flex;
1734
+ align-items: center;
1735
+ gap: 6px;
1736
+ padding: 8px 16px;
1737
+ font-size: 0.75rem;
1738
+ color: var(--rc-color-text-secondary);
1739
+ border-top: 1px solid var(--rc-color-border);
1740
+ }
1741
+
1742
+ /* ===== UX Polish: Footer links ===== */
1743
+ .app-footer {
1744
+ display: flex;
1745
+ justify-content: space-between;
1746
+ align-items: center;
1747
+ }
1748
+
1749
+ .footer-links {
1750
+ display: flex;
1751
+ gap: 4px;
1752
+ align-items: center;
1753
+ }
1754
+
1755
+ .footer-links a {
1756
+ color: var(--rc-color-accent, #c9a55a);
1757
+ text-decoration: none;
1758
+ }
1759
+
1760
+ .footer-links a:hover {
1761
+ text-decoration: underline;
1762
+ }
1763
+
1764
+ .footer-sep {
1765
+ color: var(--rc-color-text-secondary);
1766
+ }
1767
+
1768
+ /* ===== UX Polish: Define step skeleton ===== */
1769
+ .define-form-skeleton {
1770
+ display: flex;
1771
+ flex-direction: column;
1772
+ gap: 12px;
1773
+ padding: 16px 0;
1774
+ }
1775
+
1776
+ /* ===== Feature Parity: Page layouts ===== */
1777
+ .planes-page,
1778
+ .analytics-page,
1779
+ .settings-page {
1780
+ max-width: 900px;
1781
+ }
1782
+
1783
+ .planes-grid {
1784
+ display: grid;
1785
+ grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
1786
+ gap: 16px;
1787
+ margin-bottom: 24px;
1788
+ }
1789
+
1790
+ .plane-card {
1791
+ padding: 4px 0;
1792
+ }
1793
+
1794
+ .plane-card-header {
1795
+ display: flex;
1796
+ justify-content: space-between;
1797
+ align-items: center;
1798
+ margin-bottom: 8px;
1799
+ }
1800
+
1801
+ .plane-card-name {
1802
+ font-size: 1.0625rem;
1803
+ font-weight: 600;
1804
+ margin: 0;
1805
+ }
1806
+
1807
+ .plane-card-desc {
1808
+ font-size: 0.8125rem;
1809
+ color: var(--text-secondary);
1810
+ margin: 0 0 14px;
1811
+ line-height: 1.5;
1812
+ }
1813
+
1814
+ .plane-card-stats {
1815
+ display: flex;
1816
+ gap: 8px;
1817
+ flex-wrap: wrap;
1818
+ }
1819
+
1820
+ .stats-grid {
1821
+ display: grid;
1822
+ grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
1823
+ gap: 16px;
1824
+ margin-bottom: 32px;
1825
+ }
1826
+
1827
+ /* Plane detail view */
1828
+ .plane-detail {
1829
+ animation: rc-fade-in 200ms ease-out;
1830
+ }
1831
+ .plane-detail-header {
1832
+ margin-bottom: 16px;
1833
+ }
1834
+ .plane-detail-back {
1835
+ font-size: 0.8125rem;
1836
+ color: var(--accent);
1837
+ cursor: pointer;
1838
+ font-weight: 500;
1839
+ }
1840
+ .plane-detail-back:hover {
1841
+ opacity: 0.8;
1842
+ }
1843
+ .plane-detail-hero {
1844
+ display: flex;
1845
+ justify-content: space-between;
1846
+ align-items: flex-start;
1847
+ gap: 16px;
1848
+ margin-bottom: 16px;
1849
+ }
1850
+ .plane-detail-name {
1851
+ font-size: 1.25rem;
1852
+ font-weight: 700;
1853
+ margin: 0 0 4px;
1854
+ }
1855
+ .plane-detail-desc {
1856
+ font-size: 0.875rem;
1857
+ color: var(--text-secondary);
1858
+ margin: 0;
1859
+ line-height: 1.5;
1860
+ }
1861
+
1862
+ /* Tabs */
1863
+ .plane-tabs {
1864
+ display: flex;
1865
+ gap: 0;
1866
+ border-bottom: 1px solid var(--border);
1867
+ margin-bottom: 20px;
1868
+ }
1869
+ .plane-tab {
1870
+ background: none;
1871
+ border: none;
1872
+ border-bottom: 2px solid transparent;
1873
+ padding: 10px 16px;
1874
+ font-size: 0.8125rem;
1875
+ font-weight: 500;
1876
+ color: var(--text-muted);
1877
+ cursor: pointer;
1878
+ transition: color 0.15s, border-color 0.15s;
1879
+ font-family: var(--font);
1880
+ }
1881
+ .plane-tab:hover {
1882
+ color: var(--text);
1883
+ }
1884
+ .plane-tab.active {
1885
+ color: var(--accent);
1886
+ border-bottom-color: var(--accent);
1887
+ }
1888
+ .plane-tab-content {
1889
+ animation: rc-fade-in 150ms ease-out;
1890
+ }
1891
+
1892
+ /* Overview stats grid */
1893
+ .plane-overview-grid {
1894
+ display: grid;
1895
+ grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
1896
+ gap: 12px;
1897
+ margin-bottom: 24px;
1898
+ }
1899
+ .plane-stat-card {
1900
+ background: var(--surface);
1901
+ border: 1px solid var(--border);
1902
+ border-radius: var(--radius, 8px);
1903
+ padding: 16px;
1904
+ text-align: center;
1905
+ }
1906
+ .plane-stat-value {
1907
+ font-size: 1.5rem;
1908
+ font-weight: 700;
1909
+ color: var(--text);
1910
+ }
1911
+ .plane-stat-label {
1912
+ font-size: 0.75rem;
1913
+ color: var(--text-muted);
1914
+ margin-top: 4px;
1915
+ text-transform: uppercase;
1916
+ letter-spacing: 0.03em;
1917
+ }
1918
+
1919
+ /* Overview sections */
1920
+ .plane-overview-sections {
1921
+ display: flex;
1922
+ flex-direction: column;
1923
+ gap: 20px;
1924
+ }
1925
+ .plane-overview-section h4 {
1926
+ font-size: 0.875rem;
1927
+ font-weight: 600;
1928
+ margin: 0 0 10px;
1929
+ display: flex;
1930
+ align-items: center;
1931
+ gap: 8px;
1932
+ }
1933
+ .plane-rule-item {
1934
+ padding: 6px 0;
1935
+ font-size: 0.8125rem;
1936
+ border-bottom: 1px solid var(--border);
1937
+ }
1938
+ .plane-rule-item:last-child {
1939
+ border-bottom: none;
1940
+ }
1941
+ .plane-rule-item code {
1942
+ font-family: var(--font-mono);
1943
+ font-size: 0.8125rem;
1944
+ color: var(--accent);
1945
+ }
1946
+ .plane-query-q {
1947
+ font-weight: 500;
1948
+ margin-bottom: 4px;
1949
+ }
1950
+ .plane-query-sql {
1951
+ display: block;
1952
+ font-size: 0.75rem;
1953
+ color: var(--text-secondary);
1954
+ white-space: pre-wrap;
1955
+ word-break: break-all;
1956
+ }
1957
+
1958
+ /* Tables list */
1959
+ .plane-tables-list {
1960
+ border: 1px solid var(--border);
1961
+ border-radius: var(--radius, 8px);
1962
+ overflow: hidden;
1963
+ }
1964
+ .plane-table-row {
1965
+ display: flex;
1966
+ justify-content: space-between;
1967
+ align-items: center;
1968
+ padding: 8px 14px;
1969
+ font-size: 0.8125rem;
1970
+ border-bottom: 1px solid var(--border);
1971
+ }
1972
+ .plane-table-row:last-child {
1973
+ border-bottom: none;
1974
+ }
1975
+ .plane-table-clickable {
1976
+ cursor: pointer;
1977
+ transition: background 0.1s;
1978
+ }
1979
+ .plane-table-clickable:hover {
1980
+ background: var(--surface-hover);
1981
+ }
1982
+ .plane-table-clickable.expanded {
1983
+ background: var(--surface);
1984
+ }
1985
+ .plane-table-header-row {
1986
+ background: var(--surface);
1987
+ font-weight: 600;
1988
+ font-size: 0.75rem;
1989
+ text-transform: uppercase;
1990
+ letter-spacing: 0.04em;
1991
+ color: var(--text-muted);
1992
+ }
1993
+ .plane-table-name code {
1994
+ font-family: var(--font-mono);
1995
+ font-size: 0.8125rem;
1996
+ }
1997
+ .plane-table-cols {
1998
+ color: var(--text-secondary);
1999
+ min-width: 60px;
2000
+ text-align: right;
2001
+ }
2002
+
2003
+ /* Fields panel (expanded table) */
2004
+ .plane-fields-panel {
2005
+ border-bottom: 1px solid var(--border);
2006
+ background: rgba(0, 0, 0, 0.15);
2007
+ padding: 8px 14px 8px 28px;
2008
+ }
2009
+ .plane-field-row {
2010
+ padding: 6px 0;
2011
+ border-bottom: 1px solid rgba(255,255,255,0.04);
2012
+ }
2013
+ .plane-field-row:last-child {
2014
+ border-bottom: none;
2015
+ }
2016
+ .plane-field-header {
2017
+ display: flex;
2018
+ align-items: center;
2019
+ gap: 8px;
2020
+ flex-wrap: wrap;
2021
+ }
2022
+ .plane-field-name {
2023
+ font-family: var(--font-mono);
2024
+ font-size: 0.8125rem;
2025
+ color: var(--text);
2026
+ }
2027
+ .plane-field-type {
2028
+ font-size: 0.6875rem;
2029
+ color: var(--text-muted);
2030
+ font-family: var(--font-mono);
2031
+ }
2032
+ .plane-field-desc {
2033
+ font-size: 0.75rem;
2034
+ color: var(--text-secondary);
2035
+ margin-top: 2px;
2036
+ line-height: 1.4;
2037
+ }
2038
+ .plane-field-samples {
2039
+ display: flex;
2040
+ gap: 4px;
2041
+ flex-wrap: wrap;
2042
+ margin-top: 4px;
2043
+ }
2044
+ .plane-sample-chip {
2045
+ font-size: 0.6875rem;
2046
+ font-family: var(--font-mono);
2047
+ background: rgba(201, 165, 90, 0.1);
2048
+ color: var(--accent);
2049
+ padding: 1px 6px;
2050
+ border-radius: 4px;
2051
+ border: 1px solid rgba(201, 165, 90, 0.2);
2052
+ }
2053
+
2054
+ /* Rules tab */
2055
+ .plane-rules-tab .plane-overview-section + .plane-overview-section {
2056
+ margin-top: 20px;
2057
+ }
2058
+ .plane-rule-card {
2059
+ display: flex;
2060
+ align-items: center;
2061
+ gap: 8px;
2062
+ padding: 8px 0;
2063
+ font-size: 0.8125rem;
2064
+ border-bottom: 1px solid var(--border);
2065
+ flex-wrap: wrap;
2066
+ }
2067
+ .plane-rule-card:last-child {
2068
+ border-bottom: none;
2069
+ }
2070
+ .plane-join-arrow {
2071
+ color: var(--text-muted);
2072
+ }
2073
+ .plane-join-on {
2074
+ width: 100%;
2075
+ font-size: 0.75rem;
2076
+ font-family: var(--font-mono);
2077
+ color: var(--text-muted);
2078
+ margin-top: 2px;
2079
+ }
2080
+
2081
+ /* YAML tab */
2082
+ .plane-yaml-tabs {
2083
+ display: flex;
2084
+ gap: 0;
2085
+ margin-bottom: 12px;
2086
+ }
2087
+ .plane-yaml-tab {
2088
+ background: none;
2089
+ border: 1px solid var(--border);
2090
+ border-right: none;
2091
+ padding: 6px 14px;
2092
+ font-size: 0.75rem;
2093
+ font-weight: 500;
2094
+ color: var(--text-muted);
2095
+ cursor: pointer;
2096
+ font-family: var(--font);
2097
+ transition: background 0.1s, color 0.1s;
2098
+ }
2099
+ .plane-yaml-tab:first-child {
2100
+ border-radius: var(--radius-sm, 4px) 0 0 var(--radius-sm, 4px);
2101
+ }
2102
+ .plane-yaml-tab:last-child {
2103
+ border-right: 1px solid var(--border);
2104
+ border-radius: 0 var(--radius-sm, 4px) var(--radius-sm, 4px) 0;
2105
+ }
2106
+ .plane-yaml-tab.active {
2107
+ background: var(--surface);
2108
+ color: var(--accent);
2109
+ border-color: var(--accent);
2110
+ }
2111
+ .plane-yaml-tab.active + .plane-yaml-tab {
2112
+ border-left-color: var(--accent);
2113
+ }
2114
+ .plane-yaml-block {
2115
+ max-height: 600px;
2116
+ overflow-y: auto;
2117
+ border-radius: var(--radius, 8px);
2118
+ }
2119
+
2120
+ /* MCP toggle in sidebar */
2121
+ .mcp-toggle {
2122
+ cursor: pointer;
2123
+ border-radius: 4px;
2124
+ transition: background 0.15s;
2125
+ }
2126
+ .mcp-toggle:hover {
2127
+ background: var(--surface-hover, rgba(255,255,255,0.05));
2128
+ }
2129
+
2130
+ .cloud-upsell {
2131
+ margin-top: 32px;
2132
+ }
2133
+
2134
+ .upsell-content {
2135
+ text-align: center;
2136
+ padding: 24px 16px;
2137
+ }
2138
+
2139
+ .upsell-content h3 {
2140
+ margin: 0 0 8px;
2141
+ font-size: 1.0625rem;
2142
+ }
2143
+
2144
+ .upsell-content p {
2145
+ margin: 0 0 20px;
2146
+ font-size: 0.875rem;
2147
+ line-height: 1.5;
2148
+ }
2149
+
2150
+ /* Plane card CTA hint */
2151
+ .plane-card-cta {
2152
+ margin-top: 12px;
2153
+ font-size: 0.75rem;
2154
+ font-weight: 600;
2155
+ color: var(--accent, #c9a55a);
2156
+ opacity: 0.7;
2157
+ transition: opacity 0.15s;
2158
+ }
2159
+ .plane-card:hover .plane-card-cta {
2160
+ opacity: 1;
2161
+ }
2162
+
2163
+ /* Curate callout on planes grid */
2164
+ .curate-callout {
2165
+ margin-top: 24px;
2166
+ padding: 20px 24px;
2167
+ background: rgba(201, 165, 90, 0.06);
2168
+ border: 1px solid rgba(201, 165, 90, 0.25);
2169
+ border-radius: var(--rc-radius-lg, 12px);
2170
+ animation: rc-fade-in 200ms ease-out;
2171
+ }
2172
+ .curate-callout-content h4 {
2173
+ margin: 0 0 6px;
2174
+ font-size: 1rem;
2175
+ color: var(--accent, #c9a55a);
2176
+ }
2177
+ .curate-callout-content p {
2178
+ margin: 0 0 14px;
2179
+ font-size: 0.8125rem;
2180
+ line-height: 1.5;
2181
+ }
2182
+
2183
+ /* Detail view tier + button group */
2184
+ .plane-detail-tier-actions {
2185
+ display: flex;
2186
+ align-items: center;
2187
+ gap: 10px;
2188
+ flex-shrink: 0;
2189
+ }
2190
+
2191
+ /* Curate overlay panel */
2192
+ .curate-overlay {
2193
+ position: fixed;
2194
+ inset: 0;
2195
+ z-index: 1000;
2196
+ background: rgba(0, 0, 0, 0.6);
2197
+ display: flex;
2198
+ align-items: center;
2199
+ justify-content: center;
2200
+ animation: rc-fade-in 150ms ease-out;
2201
+ }
2202
+ .curate-panel {
2203
+ background: var(--rc-color-bg-secondary, #1e293b);
2204
+ border: 1px solid var(--rc-color-border, #334155);
2205
+ border-radius: var(--rc-radius-lg, 12px);
2206
+ width: 90%;
2207
+ max-width: 600px;
2208
+ max-height: 85vh;
2209
+ overflow-y: auto;
2210
+ animation: rc-fade-in 200ms ease-out;
2211
+ }
2212
+ .curate-panel-header {
2213
+ display: flex;
2214
+ justify-content: space-between;
2215
+ align-items: center;
2216
+ padding: 16px 20px;
2217
+ border-bottom: 1px solid var(--rc-color-border, #334155);
2218
+ }
2219
+ .curate-panel-header h3 {
2220
+ margin: 0;
2221
+ font-size: 1rem;
2222
+ }
2223
+ .curate-panel-close {
2224
+ background: none;
2225
+ border: none;
2226
+ color: var(--rc-color-text-secondary, #94a3b8);
2227
+ font-size: 1.125rem;
2228
+ cursor: pointer;
2229
+ padding: 4px 8px;
2230
+ border-radius: 4px;
2231
+ }
2232
+ .curate-panel-close:hover {
2233
+ background: rgba(255,255,255,0.06);
2234
+ color: var(--rc-color-text-primary, #f1f5f9);
2235
+ }
2236
+ .curate-panel-body {
2237
+ padding: 20px;
2238
+ display: flex;
2239
+ flex-direction: column;
2240
+ gap: 20px;
2241
+ }
2242
+ .curate-panel-step {
2243
+ display: flex;
2244
+ gap: 14px;
2245
+ align-items: flex-start;
2246
+ }
2247
+ .curate-panel-step h4 {
2248
+ margin: 0 0 4px;
2249
+ font-size: 0.875rem;
2250
+ }
2251
+ .curate-panel-step p {
2252
+ margin: 0;
2253
+ font-size: 0.8125rem;
2254
+ }
2255
+
2256
+ .gated-section {
2257
+ margin-top: 32px;
2258
+ padding-top: 24px;
2259
+ border-top: 1px solid var(--rc-color-border);
2260
+ }
2261
+
2262
+ .gated-title {
2263
+ font-size: 1.125rem;
2264
+ margin: 0 0 16px;
2265
+ color: var(--rc-color-text-secondary);
2266
+ }
2267
+
2268
+ .gated-features {
2269
+ display: grid;
2270
+ grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
2271
+ gap: 16px;
2272
+ margin-bottom: 16px;
2273
+ }
2274
+
2275
+ .gated-feature {
2276
+ text-align: center;
2277
+ padding: 12px;
2278
+ opacity: 0.6;
2279
+ }
2280
+
2281
+ .gated-feature h4 {
2282
+ margin: 8px 0 4px;
2283
+ }
2284
+
2285
+ .gated-feature p {
2286
+ margin: 0;
2287
+ font-size: 0.8125rem;
2288
+ }
2289
+
2290
+ .gated-cta {
2291
+ text-align: center;
2292
+ margin-top: 16px;
2293
+ }
2294
+
2295
+ /* ===== Feature Parity: Settings ===== */
2296
+ .settings-section {
2297
+ display: flex;
2298
+ flex-direction: column;
2299
+ gap: 16px;
2300
+ }
2301
+
2302
+ .setting-row {
2303
+ display: flex;
2304
+ justify-content: space-between;
2305
+ align-items: flex-start;
2306
+ gap: 24px;
2307
+ padding: 12px 0;
2308
+ border-bottom: 1px solid var(--rc-color-border);
2309
+ }
2310
+
2311
+ .setting-row:last-child {
2312
+ border-bottom: none;
2313
+ }
2314
+
2315
+ .setting-info {
2316
+ flex: 1;
2317
+ }
2318
+
2319
+ .setting-info label {
2320
+ font-weight: 600;
2321
+ display: block;
2322
+ margin-bottom: 4px;
2323
+ }
2324
+
2325
+ .setting-value {
2326
+ flex-shrink: 0;
2327
+ }
2328
+
2329
+ .danger-heading {
2330
+ color: var(--rc-color-status-error);
2331
+ }
2332
+
2333
+ /* ===== Feature Parity: Header title for non-wizard pages ===== */
2334
+ .header-title {
2335
+ font-size: 1.25rem;
2336
+ font-weight: 600;
2337
+ margin: 0;
2338
+ color: var(--rc-color-text-primary);
2339
+ }
2340
+
2341
+ /* ===== Feature Parity: Active nav indicator ===== */
2342
+ .nav-item.active {
2343
+ border-left: 3px solid var(--rc-color-accent, #c9a55a);
2344
+ background: var(--rc-color-surface-card);
2345
+ font-weight: 600;
2346
+ }
2347
+
2348
+ /* ===== Loading overlay for OAuth / async operations ===== */
2349
+ .connect-loading-overlay {
2350
+ position: relative;
2351
+ margin-bottom: var(--rc-space-4, 16px);
2352
+ }
2353
+
2354
+ .connect-loading-card {
2355
+ display: flex;
2356
+ flex-direction: column;
2357
+ align-items: center;
2358
+ gap: var(--rc-space-3, 12px);
2359
+ padding: var(--rc-space-6, 24px);
2360
+ border-radius: var(--rc-radius-lg, 12px);
2361
+ background: var(--rc-color-surface-card);
2362
+ border: 1px solid var(--rc-color-surface-border);
2363
+ text-align: center;
2364
+ animation: rc-fade-in 200ms ease-out;
2365
+ }
2366
+
2367
+ .connect-loading-card h3 {
2368
+ margin: 0;
2369
+ font-size: var(--rc-text-base, 1rem);
2370
+ color: var(--rc-color-text-primary);
2371
+ }
2372
+
2373
+ .connect-loading-card .muted {
2374
+ margin: 0;
2375
+ font-size: var(--rc-text-sm, 0.875rem);
2376
+ }
2377
+
2378
+ .connect-loading-spinner {
2379
+ width: 32px;
2380
+ height: 32px;
2381
+ border: 3px solid var(--rc-color-surface-border, #334155);
2382
+ border-top-color: var(--rc-color-accent, #c9a55a);
2383
+ border-radius: 50%;
2384
+ animation: rc-spin 0.8s linear infinite;
2385
+ }
2386
+
2387
+ @keyframes rc-spin {
2388
+ to { transform: rotate(360deg); }
2389
+ }
2390
+
2391
+ /* Generic loading spinner for reuse across steps */
2392
+ .rc-loading-inline {
2393
+ display: inline-flex;
2394
+ align-items: center;
2395
+ gap: var(--rc-space-2, 8px);
2396
+ color: var(--rc-color-text-secondary);
2397
+ font-size: var(--rc-text-sm, 0.875rem);
2398
+ }
2399
+
2400
+ .rc-loading-inline .connect-loading-spinner {
2401
+ width: 16px;
2402
+ height: 16px;
2403
+ border-width: 2px;
2404
+ }
2405
+
2406
+ /* ===== Rich database selection cards ===== */
2407
+ .db-card-rich {
2408
+ display: flex;
2409
+ flex-direction: column;
2410
+ gap: var(--rc-space-2, 8px);
2411
+ }
2412
+
2413
+ .db-card-header {
2414
+ display: flex;
2415
+ align-items: center;
2416
+ gap: var(--rc-space-2, 8px);
2417
+ }
2418
+
2419
+ .db-card-title {
2420
+ font-size: var(--rc-text-base, 1rem);
2421
+ font-weight: 600;
2422
+ color: var(--rc-color-text-primary);
2423
+ }
2424
+
2425
+ .db-card-org {
2426
+ font-size: var(--rc-text-xs, 0.75rem);
2427
+ color: var(--rc-color-text-muted);
2428
+ background: var(--rc-color-surface-bg);
2429
+ padding: 1px 6px;
2430
+ border-radius: var(--rc-radius-sm, 4px);
2431
+ border: 1px solid var(--rc-color-surface-border);
2432
+ }
2433
+
2434
+ .db-card-details {
2435
+ display: flex;
2436
+ flex-wrap: wrap;
2437
+ gap: var(--rc-space-2, 8px) var(--rc-space-3, 12px);
2438
+ }
2439
+
2440
+ .db-card-detail {
2441
+ display: inline-flex;
2442
+ align-items: center;
2443
+ gap: 4px;
2444
+ font-size: var(--rc-text-xs, 0.75rem);
2445
+ color: var(--rc-color-text-secondary);
2446
+ }
2447
+
2448
+ .db-card-detail svg {
2449
+ opacity: 0.6;
2450
+ flex-shrink: 0;
2451
+ }
2452
+
2453
+ .db-card-host {
2454
+ font-size: var(--rc-text-xs, 0.75rem);
2455
+ color: var(--rc-color-text-muted);
2456
+ font-family: var(--rc-font-mono, 'Geist Mono', monospace);
2457
+ word-break: break-all;
2458
+ }
2459
+
2460
+ /* MCP running badge */
2461
+ .mcp-running-badge {
2462
+ display: inline-flex;
2463
+ align-items: center;
2464
+ gap: 6px;
2465
+ font-size: var(--rc-text-sm, 0.875rem);
2466
+ color: var(--rc-color-status-success, #22c55e);
2467
+ font-weight: 500;
1446
2468
  }