@growthub/cli 0.12.2 → 0.13.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.
@@ -413,7 +413,7 @@ code { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 0
413
413
  .workspace-rail {
414
414
  display: flex;
415
415
  flex-direction: column;
416
- gap: 18px;
416
+ gap: 8px;
417
417
  border-right: 1px solid #e8e8e8;
418
418
  padding: 18px 14px;
419
419
  /* Lock rail to viewport height so the bottom status pill never
@@ -426,6 +426,66 @@ code { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 0
426
426
  top: 0;
427
427
  overflow: hidden;
428
428
  }
429
+ body.workspace-rail-collapsed .workspace-builder {
430
+ grid-template-columns: 52px minmax(0, 1fr) 320px;
431
+ }
432
+ body.workspace-rail-collapsed .workspace-builder.workspace-settings-page {
433
+ grid-template-columns: 52px minmax(0, 1fr);
434
+ }
435
+ .workspace-rail.is-collapsed {
436
+ padding: 18px 10px;
437
+ align-items: center;
438
+ gap: 10px;
439
+ }
440
+ .workspace-rail.is-collapsed .workspace-rail-brand-button,
441
+ .workspace-rail.is-collapsed .workspace-rail-folders,
442
+ .workspace-rail.is-collapsed .workspace-nav,
443
+ .workspace-rail.is-collapsed .workspace-rail-chat,
444
+ .workspace-rail.is-collapsed .workspace-rail-status,
445
+ .workspace-rail.is-collapsed .workspace-rail-helper-pill {
446
+ display: none;
447
+ }
448
+ .workspace-rail.is-collapsed .workspace-rail-topbar {
449
+ justify-content: center;
450
+ width: 100%;
451
+ }
452
+ .workspace-rail.is-collapsed .workspace-rail-topbar-actions {
453
+ display: flex;
454
+ flex-direction: column;
455
+ justify-content: center;
456
+ gap: 8px;
457
+ }
458
+ .workspace-rail.is-collapsed .workspace-rail-topbar-actions .workspace-rail-icon-btn {
459
+ order: 2;
460
+ }
461
+ .workspace-rail.is-collapsed .workspace-rail-icon-btn[aria-pressed="true"] {
462
+ order: 1;
463
+ }
464
+ .workspace-rail.is-collapsed .workspace-rail-icon-btn[data-rail-search] {
465
+ order: 2;
466
+ }
467
+ .workspace-rail.is-collapsed .workspace-rail-icon-btn[aria-label="Workspace settings"] {
468
+ order: 3;
469
+ }
470
+ .workspace-rail.is-collapsed .workspace-rail-icon-btn[aria-pressed="true"] svg {
471
+ transform: rotate(180deg);
472
+ }
473
+ .workspace-rail.is-collapsed .workspace-rail-tabbar {
474
+ display: flex;
475
+ justify-content: center;
476
+ width: 100%;
477
+ }
478
+ .workspace-rail.is-collapsed .workspace-rail-tabs {
479
+ flex-direction: column;
480
+ gap: 8px;
481
+ padding: 0;
482
+ }
483
+ .workspace-rail.is-collapsed .workspace-rail-tab,
484
+ .workspace-rail.is-collapsed .workspace-rail-icon-btn {
485
+ width: 34px;
486
+ height: 34px;
487
+ border-radius: 9px;
488
+ }
429
489
  .workspace-brand {
430
490
  display: flex;
431
491
  align-items: center;
@@ -578,11 +638,9 @@ code { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 0
578
638
  border: 1px solid #e7e7e7;
579
639
  border-radius: 8px;
580
640
  background: #ffffff;
581
- /* Bounded height with internal scroll the 16-row × 52px grid
582
- (832px+) was being clipped on most laptop viewports. Reserves
583
- ~210px above for the workspace toolbar + dashboard tabs + page
584
- padding so the rail's bottom status pill stays above the fold. */
585
- max-height: calc(100vh - 210px);
641
+ /* Bounded height with internal scroll. Keep the dashboard canvas tall
642
+ enough to show more tab/widget state before the internal scroll. */
643
+ max-height: calc(100vh - 150px);
586
644
  overflow-y: auto;
587
645
  overscroll-behavior: contain;
588
646
  scrollbar-gutter: stable;
@@ -5217,7 +5275,7 @@ code { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 0
5217
5275
  .workspace-rail-chat {
5218
5276
  display: flex;
5219
5277
  flex-direction: column;
5220
- gap: 4px;
5278
+ gap: 2px;
5221
5279
  min-height: 0;
5222
5280
  flex: 1;
5223
5281
  }
@@ -5233,7 +5291,7 @@ code { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 0
5233
5291
  border-radius: 7px;
5234
5292
  background: #fafafa;
5235
5293
  color: #6b7280;
5236
- margin: 2px 0 4px;
5294
+ margin: 0;
5237
5295
  }
5238
5296
  .workspace-rail-chat-search:focus-within {
5239
5297
  background: #ffffff;
@@ -5440,6 +5498,851 @@ code { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 0
5440
5498
  .workspace-rail-thread-menu-item.is-destructive { color: #b91c1c; }
5441
5499
  .workspace-rail-thread-menu-item.is-destructive:hover { background: #fef2f2; }
5442
5500
 
5501
+ /* ─── Workspace rail — Custom Folders Navigation Module ────────────────
5502
+ *
5503
+ * Twenty CRM-style sidebar folders: drag-to-reorder, three-dot menu,
5504
+ * collapsible folder body, dashboard/view items. Sits directly below
5505
+ * the tab row and above the Home / Chat body — mirrors the existing
5506
+ * thread-list visual treatment so the rail stays uniform.
5507
+ */
5508
+ .workspace-rail-folders {
5509
+ --nav-folder-row-h: 34px;
5510
+ --nav-item-row-h: 34px;
5511
+ --nav-max-folders: 10;
5512
+ --nav-max-items: 10;
5513
+ display: flex;
5514
+ flex-direction: column;
5515
+ gap: 2px;
5516
+ padding: 0 0 9px;
5517
+ border-bottom: 1px solid #f0f0f0;
5518
+ margin-top: -7px;
5519
+ margin-bottom: 0;
5520
+ flex-shrink: 0;
5521
+ min-height: 0;
5522
+ max-height: min(560px, 52vh);
5523
+ }
5524
+ .workspace-rail-folders.is-section-collapsed {
5525
+ max-height: none;
5526
+ padding-bottom: 9px;
5527
+ }
5528
+ .workspace-rail-folders-head {
5529
+ display: flex;
5530
+ align-items: center;
5531
+ justify-content: space-between;
5532
+ gap: 4px;
5533
+ height: 32px;
5534
+ padding: 0 12px 0 0;
5535
+ flex-shrink: 0;
5536
+ }
5537
+ .workspace-rail-folders-section-toggle {
5538
+ flex: 1;
5539
+ display: flex;
5540
+ align-items: center;
5541
+ gap: 6px;
5542
+ min-width: 0;
5543
+ height: 28px;
5544
+ padding: 0 5px;
5545
+ border: 0;
5546
+ background: transparent;
5547
+ cursor: pointer;
5548
+ color: inherit;
5549
+ font: inherit;
5550
+ font-size: 13px;
5551
+ font-weight: 400;
5552
+ text-align: left;
5553
+ border-radius: 6px;
5554
+ }
5555
+ .workspace-rail-folders-section-toggle:hover { background: #f5f5f5; }
5556
+ .workspace-rail-folders-section-toggle:focus {
5557
+ outline: none;
5558
+ }
5559
+ .workspace-rail-folders-section-toggle:focus-visible {
5560
+ outline: 1px solid #d1d5db;
5561
+ outline-offset: 1px;
5562
+ }
5563
+ .workspace-rail-folders .workspace-rail-section-label {
5564
+ flex: 0 1 auto;
5565
+ min-width: 0;
5566
+ color: #686868;
5567
+ font-size: 13px;
5568
+ font-weight: 400;
5569
+ line-height: 1;
5570
+ padding: 0;
5571
+ }
5572
+ .workspace-rail-folders-section-chevron {
5573
+ color: #6b7280;
5574
+ flex-shrink: 0;
5575
+ transition: transform .16s ease;
5576
+ }
5577
+ .workspace-rail-folders-count {
5578
+ font-size: 10px;
5579
+ font-weight: 600;
5580
+ color: #9ca3af;
5581
+ padding: 1px 6px;
5582
+ border-radius: 99px;
5583
+ background: #f3f4f6;
5584
+ }
5585
+ .workspace-rail-folders-filters {
5586
+ display: grid;
5587
+ grid-template-columns: minmax(0, 1fr) auto;
5588
+ align-items: center;
5589
+ gap: 6px;
5590
+ padding: 5px 12px 7px 2.5px;
5591
+ flex-shrink: 0;
5592
+ }
5593
+ .workspace-rail-folders-search {
5594
+ display: flex;
5595
+ align-items: center;
5596
+ gap: 6px;
5597
+ height: 28px;
5598
+ padding: 0 8px;
5599
+ border: 1px solid #e5e7eb;
5600
+ border-radius: 7px;
5601
+ background: #fafafa;
5602
+ color: #6b7280;
5603
+ }
5604
+ .workspace-rail-folders-search:focus-within {
5605
+ background: #fff;
5606
+ border-color: #9ca3af;
5607
+ }
5608
+ .workspace-rail-folders-search-input {
5609
+ flex: 1;
5610
+ min-width: 0;
5611
+ height: 22px;
5612
+ padding: 0;
5613
+ border: 0;
5614
+ background: transparent;
5615
+ outline: none;
5616
+ color: #111827;
5617
+ font: inherit;
5618
+ font-size: 12px;
5619
+ }
5620
+ .workspace-rail-folders-search-input::placeholder { color: #9ca3af; }
5621
+ .workspace-rail-folders-filter-menu-wrap {
5622
+ position: relative;
5623
+ flex-shrink: 0;
5624
+ }
5625
+ .workspace-rail-folders-filter-btn {
5626
+ position: relative;
5627
+ width: 30px;
5628
+ height: 30px;
5629
+ display: grid;
5630
+ place-items: center;
5631
+ border: 0;
5632
+ border-radius: 7px;
5633
+ background: #f5f5f5;
5634
+ color: #6b7280;
5635
+ cursor: pointer;
5636
+ }
5637
+ .workspace-rail-folders-filter-btn:hover {
5638
+ background: #ececec;
5639
+ color: #111827;
5640
+ }
5641
+ .workspace-rail-folders-filter-btn.is-open {
5642
+ background: #f5f5f5;
5643
+ color: #6b7280;
5644
+ }
5645
+ .workspace-rail-folders-filter-btn:focus {
5646
+ outline: none;
5647
+ }
5648
+ .workspace-rail-folders-filter-btn:focus-visible {
5649
+ outline: 1px solid #d1d5db;
5650
+ outline-offset: 1px;
5651
+ }
5652
+ .workspace-rail-folders-filter-btn.is-disabled {
5653
+ color: #9ca3af;
5654
+ cursor: default;
5655
+ opacity: .65;
5656
+ }
5657
+ .workspace-rail-folders-filter-btn.is-disabled:hover {
5658
+ background: #f5f5f5;
5659
+ color: #9ca3af;
5660
+ }
5661
+ .workspace-rail-folders-filter-state-dot {
5662
+ position: absolute;
5663
+ top: 5px;
5664
+ right: 5px;
5665
+ width: 6px;
5666
+ height: 6px;
5667
+ border-radius: 999px;
5668
+ background: #f97316;
5669
+ box-shadow: 0 0 0 2px #f5f5f5;
5670
+ pointer-events: none;
5671
+ }
5672
+ .workspace-rail-folders-filter-btn:hover .workspace-rail-folders-filter-state-dot {
5673
+ box-shadow: 0 0 0 2px #ececec;
5674
+ }
5675
+ .workspace-rail-folders-filter-menu {
5676
+ position: absolute;
5677
+ top: calc(100% + 6px);
5678
+ left: auto;
5679
+ right: 0;
5680
+ z-index: 70;
5681
+ width: min(234.5px, calc(100vw - 36px));
5682
+ padding: 6px;
5683
+ border: 1px solid #d9d9d9;
5684
+ border-radius: 12px;
5685
+ background: #fff;
5686
+ box-shadow: 0 10px 28px rgba(15, 23, 42, 0.16);
5687
+ }
5688
+ .workspace-rail-folders-filter-menu-group + .workspace-rail-folders-filter-menu-group {
5689
+ margin-top: 5px;
5690
+ padding-top: 5px;
5691
+ border-top: 1px solid #ededed;
5692
+ }
5693
+ .workspace-rail-folders-filter-menu-label {
5694
+ margin: 0;
5695
+ padding: 5px 7px 3px;
5696
+ font-size: 11px;
5697
+ line-height: 1;
5698
+ color: #9ca3af;
5699
+ }
5700
+ .workspace-rail-folders-filter-menu-item {
5701
+ width: 100%;
5702
+ height: 28px;
5703
+ display: grid;
5704
+ grid-template-columns: minmax(0, 1fr) auto auto;
5705
+ align-items: center;
5706
+ gap: 8px;
5707
+ padding: 0 7px;
5708
+ border: 0;
5709
+ border-radius: 7px;
5710
+ background: transparent;
5711
+ color: #252525;
5712
+ font: inherit;
5713
+ font-size: 13px;
5714
+ text-align: left;
5715
+ cursor: pointer;
5716
+ }
5717
+ .workspace-rail-folders-filter-menu-item:hover {
5718
+ background: #f5f5f5;
5719
+ }
5720
+ .workspace-rail-folders-filter-menu-item.is-reset {
5721
+ color: #b45309;
5722
+ }
5723
+ .workspace-rail-folders-filter-menu-item.is-reset:hover {
5724
+ background: #fff7ed;
5725
+ }
5726
+ .workspace-rail-folders-filter-menu-value {
5727
+ color: #8c8c8c;
5728
+ white-space: nowrap;
5729
+ }
5730
+ .workspace-rail-folders-scroll {
5731
+ flex: 0 1 auto;
5732
+ min-height: 0;
5733
+ }
5734
+ .workspace-rail-folders-scroll.is-scrollable {
5735
+ max-height: calc(var(--nav-folder-row-h) * var(--nav-max-folders) + 12px);
5736
+ overflow-y: auto;
5737
+ scrollbar-gutter: stable;
5738
+ }
5739
+ .workspace-rail-folders-scroll-hint {
5740
+ margin: 0;
5741
+ padding: 4px 10px 2px;
5742
+ font-size: 10.5px;
5743
+ color: #9ca3af;
5744
+ text-align: center;
5745
+ }
5746
+ .workspace-rail-folder-items.is-scrollable {
5747
+ max-height: calc(var(--nav-item-row-h) * var(--nav-max-items));
5748
+ overflow-y: auto;
5749
+ scrollbar-gutter: stable;
5750
+ }
5751
+ .workspace-rail-nav-menu-stack {
5752
+ display: flex;
5753
+ flex-direction: column;
5754
+ align-items: stretch;
5755
+ gap: 1px;
5756
+ }
5757
+ .workspace-rail-nav-menu-stack .workspace-rail-thread-menu-item {
5758
+ display: inline-flex;
5759
+ flex-direction: row;
5760
+ align-items: center;
5761
+ gap: 8px;
5762
+ width: 100%;
5763
+ }
5764
+ .workspace-rail-folders-add-btn {
5765
+ width: 22px;
5766
+ height: 22px;
5767
+ display: grid;
5768
+ place-items: center;
5769
+ border: 0;
5770
+ border-radius: 5px;
5771
+ background: transparent;
5772
+ color: #6b7280;
5773
+ cursor: pointer;
5774
+ opacity: 0;
5775
+ pointer-events: none;
5776
+ transition: background .12s ease, color .12s ease;
5777
+ }
5778
+ .workspace-rail-folders-head:hover .workspace-rail-folders-add-btn,
5779
+ .workspace-rail-folders-add-btn:focus-visible {
5780
+ opacity: 1;
5781
+ pointer-events: auto;
5782
+ }
5783
+ .workspace-rail-folders-add-btn:hover { background: #f3f4f6; color: #111827; }
5784
+ .workspace-rail-folders-add-btn:focus-visible { outline: 2px solid #bfdbfe; outline-offset: 1px; }
5785
+
5786
+ .workspace-rail-folders-empty {
5787
+ margin: 0;
5788
+ padding: 4px 10px 8px;
5789
+ font-size: 11.5px;
5790
+ color: #9ca3af;
5791
+ line-height: 1.4;
5792
+ }
5793
+
5794
+ .workspace-rail-folder-create {
5795
+ display: flex;
5796
+ align-items: center;
5797
+ gap: 6px;
5798
+ padding: 4px 8px;
5799
+ color: #6b7280;
5800
+ }
5801
+
5802
+ .workspace-rail-folders-list {
5803
+ list-style: none;
5804
+ margin: 0;
5805
+ padding: 0;
5806
+ display: flex;
5807
+ flex-direction: column;
5808
+ gap: 1px;
5809
+ }
5810
+
5811
+ .workspace-rail-folder {
5812
+ display: flex;
5813
+ flex-direction: column;
5814
+ }
5815
+
5816
+ .workspace-rail-folder-accordion-panel {
5817
+ display: grid;
5818
+ grid-template-rows: 0fr;
5819
+ opacity: 0;
5820
+ transition:
5821
+ grid-template-rows 0.22s ease,
5822
+ opacity 0.18s ease;
5823
+ }
5824
+ .workspace-rail-folder.is-expanded .workspace-rail-folder-accordion-panel {
5825
+ grid-template-rows: 1fr;
5826
+ opacity: 1;
5827
+ }
5828
+ .workspace-rail-folder-accordion-inner {
5829
+ overflow: hidden;
5830
+ min-height: 0;
5831
+ }
5832
+ .workspace-rail-folder.is-drop-target {
5833
+ outline: 1px dashed #9ca3af;
5834
+ outline-offset: -1px;
5835
+ border-radius: 6px;
5836
+ }
5837
+
5838
+ .workspace-rail-folder-header {
5839
+ position: relative;
5840
+ display: flex;
5841
+ align-items: center;
5842
+ border-radius: 6px;
5843
+ transition: background .12s ease;
5844
+ }
5845
+ .workspace-rail-folder-header:hover { background: #f5f5f5; }
5846
+ .workspace-rail-folder-header:hover .workspace-rail-thread-menu-btn {
5847
+ opacity: 1;
5848
+ pointer-events: auto;
5849
+ }
5850
+
5851
+ .workspace-rail-folder-toggle {
5852
+ flex: 1;
5853
+ display: grid;
5854
+ grid-template-columns: auto auto 1fr;
5855
+ align-items: center;
5856
+ gap: 8px;
5857
+ padding: 5px 8px 5px 9px;
5858
+ background: transparent;
5859
+ border: 0;
5860
+ cursor: pointer;
5861
+ color: inherit;
5862
+ font: inherit;
5863
+ text-align: left;
5864
+ min-width: 0;
5865
+ border-radius: 6px;
5866
+ }
5867
+ .workspace-rail-folder-icon { color: #6b7280; flex-shrink: 0; }
5868
+ .workspace-rail-folder-name {
5869
+ font-size: 13px;
5870
+ font-weight: 400;
5871
+ color: #5f6368;
5872
+ white-space: nowrap;
5873
+ overflow: hidden;
5874
+ text-overflow: ellipsis;
5875
+ min-width: 0;
5876
+ }
5877
+
5878
+ .workspace-rail-folder-items {
5879
+ position: relative;
5880
+ list-style: none;
5881
+ margin: 0;
5882
+ padding: 0 0 0 18px;
5883
+ display: flex;
5884
+ flex-direction: column;
5885
+ gap: 1px;
5886
+ }
5887
+ .workspace-rail-folder-items:has(.workspace-rail-folder-item)::before {
5888
+ content: "";
5889
+ position: absolute;
5890
+ left: 13px;
5891
+ top: 0;
5892
+ bottom: 21px;
5893
+ width: 5px;
5894
+ border-left: 1px solid #e5e7eb;
5895
+ border-bottom: 1px solid #e5e7eb;
5896
+ border-bottom-left-radius: 5px;
5897
+ pointer-events: none;
5898
+ }
5899
+
5900
+ .workspace-rail-folder-item {
5901
+ position: relative;
5902
+ display: flex;
5903
+ align-items: center;
5904
+ border-radius: 6px;
5905
+ transition: background .12s ease;
5906
+ }
5907
+ .workspace-rail-folder-item:hover { background: #f5f5f5; }
5908
+ .workspace-rail-folder-item:hover .workspace-rail-thread-menu-btn {
5909
+ opacity: 1;
5910
+ pointer-events: auto;
5911
+ }
5912
+ .workspace-rail-folder-item.is-active { background: #ececec; }
5913
+
5914
+ .workspace-rail-folder-item-main {
5915
+ flex: 1;
5916
+ display: inline-flex;
5917
+ align-items: center;
5918
+ gap: 8px;
5919
+ padding: 6px 8px 6px 9px;
5920
+ background: transparent;
5921
+ border: 0;
5922
+ cursor: pointer;
5923
+ color: inherit;
5924
+ font: inherit;
5925
+ text-align: left;
5926
+ min-width: 0;
5927
+ border-radius: 6px;
5928
+ }
5929
+ .workspace-rail-folder-item-icon { color: #6b7280; flex-shrink: 0; }
5930
+ .workspace-rail-folder-item-label {
5931
+ font-size: 13px;
5932
+ font-weight: 400;
5933
+ color: #5f6368;
5934
+ white-space: nowrap;
5935
+ overflow: hidden;
5936
+ text-overflow: ellipsis;
5937
+ min-width: 0;
5938
+ }
5939
+
5940
+ .workspace-rail-folder-empty {
5941
+ font-size: 11.5px;
5942
+ color: #9ca3af;
5943
+ padding: 4px 8px 6px;
5944
+ line-height: 1.35;
5945
+ }
5946
+ .workspace-rail-folder-empty-spacer {
5947
+ height: 8px;
5948
+ list-style: none;
5949
+ pointer-events: none;
5950
+ }
5951
+
5952
+ /* Picker — lightweight modal-ish overlay for "Add dashboard" / "Add view" */
5953
+ .workspace-rail-folder-picker-backdrop {
5954
+ position: fixed;
5955
+ inset: 0;
5956
+ background: rgba(15, 23, 42, 0.38);
5957
+ display: grid;
5958
+ align-items: start;
5959
+ justify-items: center;
5960
+ padding-top: 56px;
5961
+ z-index: 4990;
5962
+ backdrop-filter: blur(1px);
5963
+ }
5964
+ .workspace-rail-folder-picker {
5965
+ width: 360px;
5966
+ max-width: calc(100vw - 32px);
5967
+ max-height: 70vh;
5968
+ display: flex;
5969
+ flex-direction: column;
5970
+ background: #fff;
5971
+ border: 1px solid #e5e7eb;
5972
+ border-radius: 10px;
5973
+ box-shadow: 0 16px 40px rgba(15, 23, 42, 0.2);
5974
+ overflow: hidden;
5975
+ }
5976
+ .workspace-rail-folder-picker-head {
5977
+ display: flex;
5978
+ align-items: center;
5979
+ justify-content: space-between;
5980
+ padding: 10px 12px;
5981
+ border-bottom: 1px solid #f0f0f0;
5982
+ font-size: 13px;
5983
+ color: #111827;
5984
+ }
5985
+ .workspace-rail-folder-picker-close {
5986
+ width: 24px;
5987
+ height: 24px;
5988
+ display: grid;
5989
+ place-items: center;
5990
+ background: transparent;
5991
+ border: 0;
5992
+ border-radius: 5px;
5993
+ color: #6b7280;
5994
+ cursor: pointer;
5995
+ }
5996
+ .workspace-rail-folder-picker-close:hover { background: #f3f4f6; color: #111827; }
5997
+ .workspace-rail-folder-picker-list {
5998
+ list-style: none;
5999
+ margin: 0;
6000
+ padding: 6px;
6001
+ overflow-y: auto;
6002
+ }
6003
+ .workspace-rail-folder-picker-item {
6004
+ width: 100%;
6005
+ display: grid;
6006
+ grid-template-columns: auto 1fr auto;
6007
+ align-items: center;
6008
+ gap: 8px;
6009
+ padding: 8px 10px;
6010
+ background: transparent;
6011
+ border: 0;
6012
+ border-radius: 6px;
6013
+ font: inherit;
6014
+ font-size: 13px;
6015
+ color: #2c2c2c;
6016
+ text-align: left;
6017
+ cursor: pointer;
6018
+ }
6019
+ .workspace-rail-folder-picker-item:hover { background: #f5f5f5; }
6020
+ .workspace-rail-folder-picker-hint {
6021
+ font-size: 11px;
6022
+ color: #9ca3af;
6023
+ }
6024
+
6025
+ /* Nav row layout — Twenty-style favorites tree + right-aligned ⋯ */
6026
+ .workspace-rail-nav-row {
6027
+ position: relative;
6028
+ list-style: none;
6029
+ }
6030
+ .workspace-rail-nav-row-body {
6031
+ display: flex;
6032
+ align-items: center;
6033
+ min-width: 0;
6034
+ border-radius: 6px;
6035
+ transition: background .12s ease;
6036
+ }
6037
+ .workspace-rail-nav-row:hover > .workspace-rail-nav-row-body,
6038
+ .workspace-rail-nav-row.is-menu-open > .workspace-rail-nav-row-body {
6039
+ background: #f5f5f5;
6040
+ }
6041
+ .workspace-rail-nav-row:hover > .workspace-rail-nav-row-body .workspace-rail-nav-menu-btn,
6042
+ .workspace-rail-nav-row.is-menu-open > .workspace-rail-nav-row-body .workspace-rail-nav-menu-btn {
6043
+ opacity: 1;
6044
+ pointer-events: auto;
6045
+ }
6046
+ .workspace-rail-nav-row-main {
6047
+ flex: 1;
6048
+ display: flex;
6049
+ align-items: center;
6050
+ gap: 8px;
6051
+ min-width: 0;
6052
+ padding: 6px 4px 6px 6px;
6053
+ border: 0;
6054
+ background: transparent;
6055
+ cursor: pointer;
6056
+ color: inherit;
6057
+ font: inherit;
6058
+ text-align: left;
6059
+ border-radius: 6px;
6060
+ }
6061
+ .workspace-rail-nav-icon-badge {
6062
+ flex-shrink: 0;
6063
+ width: 22px;
6064
+ height: 22px;
6065
+ display: grid;
6066
+ place-items: center;
6067
+ border-radius: 5px;
6068
+ }
6069
+ .workspace-rail-nav-row-text {
6070
+ flex: 1;
6071
+ min-width: 0;
6072
+ display: flex;
6073
+ flex-direction: column;
6074
+ gap: 1px;
6075
+ }
6076
+ .workspace-rail-nav-row-meta {
6077
+ font-size: 10.5px;
6078
+ color: #9ca3af;
6079
+ line-height: 1.2;
6080
+ }
6081
+ .workspace-rail-nav-menu-wrap {
6082
+ flex-shrink: 0;
6083
+ padding-right: 2px;
6084
+ }
6085
+ .workspace-rail-nav-menu-btn {
6086
+ display: inline-flex;
6087
+ flex-direction: column;
6088
+ align-items: center;
6089
+ justify-content: center;
6090
+ width: 24px;
6091
+ height: 24px;
6092
+ opacity: 0;
6093
+ pointer-events: none;
6094
+ }
6095
+ .workspace-rail-nav-menu:not(.is-customize) {
6096
+ position: fixed;
6097
+ right: auto;
6098
+ width: 188px;
6099
+ min-width: 188px;
6100
+ z-index: 240;
6101
+ }
6102
+ .workspace-rail-nav-menu.is-customize {
6103
+ position: fixed;
6104
+ top: 48px;
6105
+ left: 16px;
6106
+ right: auto;
6107
+ width: min(520px, calc(100vw - 32px));
6108
+ max-width: min(520px, calc(100vw - 32px));
6109
+ max-height: calc(100vh - 72px);
6110
+ overflow-y: auto;
6111
+ padding: 14px;
6112
+ z-index: 5000;
6113
+ background: #fff;
6114
+ border-radius: 12px;
6115
+ border: 1px solid #dbe2ea;
6116
+ box-shadow: 0 28px 80px rgba(15, 23, 42, 0.24);
6117
+ }
6118
+ .workspace-rail-nav-customize {
6119
+ display: flex;
6120
+ flex-direction: column;
6121
+ gap: 8px;
6122
+ }
6123
+ .workspace-rail-nav-customize-field {
6124
+ display: flex;
6125
+ flex-direction: column;
6126
+ gap: 4px;
6127
+ font-size: 11px;
6128
+ color: #6b7280;
6129
+ }
6130
+ .workspace-rail-nav-customize-field input {
6131
+ height: 28px;
6132
+ padding: 0 8px;
6133
+ border: 1px solid #d1d5db;
6134
+ border-radius: 6px;
6135
+ font: inherit;
6136
+ font-size: 13px;
6137
+ color: #111827;
6138
+ background: #fff;
6139
+ caret-color: #111827;
6140
+ }
6141
+ .workspace-rail-nav-customize-field input:focus {
6142
+ border-color: #9ca3af;
6143
+ outline: none;
6144
+ box-shadow: 0 0 0 3px rgba(0,0,0,.05);
6145
+ }
6146
+ .workspace-rail-nav-customize-field input::selection {
6147
+ background: #dbeafe;
6148
+ color: #111827;
6149
+ }
6150
+ .workspace-rail-nav-customize-label {
6151
+ font-size: 11px;
6152
+ font-weight: 600;
6153
+ color: #9ca3af;
6154
+ letter-spacing: 0.02em;
6155
+ }
6156
+ .workspace-rail-nav-icon-picker {
6157
+ margin-top: 0;
6158
+ }
6159
+ .workspace-rail-nav-color-picker {
6160
+ display: flex;
6161
+ flex-direction: column;
6162
+ gap: 6px;
6163
+ }
6164
+ .workspace-rail-nav-color-swatches {
6165
+ display: flex;
6166
+ flex-wrap: wrap;
6167
+ gap: 4px;
6168
+ }
6169
+ .workspace-rail-nav-color-swatch {
6170
+ width: 28px;
6171
+ height: 28px;
6172
+ display: grid;
6173
+ place-items: center;
6174
+ border: 1px solid #e5e7eb;
6175
+ border-radius: 6px;
6176
+ cursor: pointer;
6177
+ padding: 0;
6178
+ }
6179
+ .workspace-rail-nav-color-swatch.active {
6180
+ border-color: #111827;
6181
+ box-shadow: 0 0 0 1px #111827;
6182
+ }
6183
+ .workspace-rail-nav-color-swatch-dot {
6184
+ width: 10px;
6185
+ height: 10px;
6186
+ border-radius: 99px;
6187
+ }
6188
+ .workspace-rail-nav-color-custom {
6189
+ display: flex;
6190
+ align-items: center;
6191
+ gap: 8px;
6192
+ font-size: 11px;
6193
+ color: #6b7280;
6194
+ }
6195
+ .workspace-rail-nav-color-custom input[type="color"] {
6196
+ width: 32px;
6197
+ height: 24px;
6198
+ padding: 0;
6199
+ border: 1px solid #e5e7eb;
6200
+ border-radius: 4px;
6201
+ cursor: pointer;
6202
+ }
6203
+ .workspace-rail-nav-customize-actions {
6204
+ display: flex;
6205
+ justify-content: flex-end;
6206
+ gap: 6px;
6207
+ margin-top: 4px;
6208
+ }
6209
+ .workspace-rail-nav-btn-ghost,
6210
+ .workspace-rail-nav-btn-primary {
6211
+ height: 28px;
6212
+ padding: 0 10px;
6213
+ border-radius: 6px;
6214
+ font: inherit;
6215
+ font-size: 12px;
6216
+ cursor: pointer;
6217
+ }
6218
+ .workspace-rail-nav-btn-ghost {
6219
+ border: 1px solid #e5e7eb;
6220
+ background: #fff;
6221
+ color: #374151;
6222
+ }
6223
+ .workspace-rail-nav-btn-ghost:hover { background: #f9fafb; }
6224
+ .workspace-rail-nav-btn-primary {
6225
+ border: 1px solid #111827;
6226
+ background: #111827;
6227
+ color: #fff;
6228
+ }
6229
+ .workspace-rail-nav-btn-primary:hover { background: #252525; }
6230
+ .workspace-rail-nav-btn-primary.is-compact {
6231
+ height: 24px;
6232
+ padding: 0 8px;
6233
+ font-size: 11.5px;
6234
+ flex-shrink: 0;
6235
+ }
6236
+ .workspace-rail-nav-discard-warn {
6237
+ margin: 0;
6238
+ padding: 6px 8px;
6239
+ font-size: 11px;
6240
+ line-height: 1.35;
6241
+ color: #b45309;
6242
+ background: #fffbeb;
6243
+ border-radius: 6px;
6244
+ border: 1px solid #fde68a;
6245
+ }
6246
+ .workspace-rail-nav-discard-warn.is-inline {
6247
+ flex: 1 1 100%;
6248
+ margin-top: 2px;
6249
+ }
6250
+ .workspace-rail-tree-guide {
6251
+ position: absolute;
6252
+ left: -5px;
6253
+ top: calc(50% - 8px);
6254
+ width: 23px;
6255
+ height: 8px;
6256
+ border-left: 1px solid #e5e7eb;
6257
+ border-bottom: 1px solid #e5e7eb;
6258
+ border-bottom-left-radius: 4px;
6259
+ pointer-events: none;
6260
+ }
6261
+ .workspace-rail-folder-item.workspace-rail-nav-row {
6262
+ padding-left: 14px;
6263
+ position: relative;
6264
+ }
6265
+ .workspace-rail-folder-chevron {
6266
+ flex-shrink: 0;
6267
+ color: #9ca3af;
6268
+ transition: transform 0.2s ease, color 0.12s ease;
6269
+ }
6270
+ .workspace-rail-folder.is-expanded .workspace-rail-folder-chevron {
6271
+ transform: rotate(90deg);
6272
+ }
6273
+ .workspace-rail-folder-create {
6274
+ flex-wrap: wrap;
6275
+ align-items: center;
6276
+ gap: 6px;
6277
+ padding: 6px 8px;
6278
+ margin: 2px 4px 6px;
6279
+ border: 1px solid #bfdbfe;
6280
+ border-radius: 8px;
6281
+ background: #f8fafc;
6282
+ }
6283
+ .workspace-rail-folder-create .workspace-rail-thread-rename {
6284
+ flex: 1;
6285
+ min-width: 80px;
6286
+ }
6287
+
6288
+ /* ─── Custom Folders View page — clean user-facing table renderer ──── */
6289
+ .workspace-view-surface {
6290
+ flex: 1;
6291
+ display: flex;
6292
+ flex-direction: column;
6293
+ min-height: 0;
6294
+ padding: 16px 24px 24px;
6295
+ }
6296
+ .workspace-view-empty {
6297
+ margin: 24px 0 0;
6298
+ font-size: 13px;
6299
+ color: #6b7280;
6300
+ }
6301
+ .workspace-view-error { color: #b91c1c; }
6302
+ .workspace-view-table-wrap {
6303
+ display: flex;
6304
+ flex-direction: column;
6305
+ min-height: 0;
6306
+ overflow: auto;
6307
+ border: 1px solid #ececec;
6308
+ border-radius: 10px;
6309
+ background: #fff;
6310
+ }
6311
+ .workspace-view-table {
6312
+ width: 100%;
6313
+ border-collapse: collapse;
6314
+ font-size: 13px;
6315
+ color: #2c2c2c;
6316
+ }
6317
+ .workspace-view-table th,
6318
+ .workspace-view-table td {
6319
+ padding: 9px 12px;
6320
+ text-align: left;
6321
+ border-bottom: 1px solid #f0f0f0;
6322
+ vertical-align: top;
6323
+ }
6324
+ .workspace-view-table th {
6325
+ font-weight: 600;
6326
+ font-size: 12px;
6327
+ color: #6b7280;
6328
+ background: #fafafa;
6329
+ position: sticky;
6330
+ top: 0;
6331
+ z-index: 1;
6332
+ }
6333
+ .workspace-view-table tbody tr:hover { background: #fafafa; }
6334
+ .workspace-view-table-empty {
6335
+ padding: 20px 12px;
6336
+ text-align: center;
6337
+ color: #9ca3af;
6338
+ font-size: 12.5px;
6339
+ }
6340
+ .workspace-view-footer {
6341
+ margin: 10px 2px 0;
6342
+ font-size: 11.5px;
6343
+ color: #9ca3af;
6344
+ }
6345
+
5443
6346
  /* ─── HelperSidecar — clean light textarea (fix the dark-UA fallback) ─── */
5444
6347
  .dm-field-textarea {
5445
6348
  width: 100%;