softui-css 1.12.0 → 1.14.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.
package/dist/softui.css CHANGED
@@ -1,4 +1,4 @@
1
- /*! SoftUI v1.12.0 — A Neumorphic CSS Library */
1
+ /*! SoftUI v1.14.0 — A Neumorphic CSS Library */
2
2
 
3
3
  /* ===========================================
4
4
  CSS Variables / Tokens
@@ -13242,6 +13242,1066 @@ select.sui-datatable-filter {
13242
13242
  .sui-mask-shield { --sui-mask: polygon(50% 0%, 100% 12%, 100% 65%, 50% 100%, 0% 65%, 0% 12%); }
13243
13243
  .sui-mask-parallelogram { --sui-mask: polygon(20% 0%, 100% 0%, 80% 100%, 0% 100%); }
13244
13244
 
13245
+ /* ===========================================
13246
+ Result Page
13247
+ =========================================== */
13248
+ .sui-result {
13249
+ display: flex;
13250
+ flex-direction: column;
13251
+ align-items: center;
13252
+ text-align: center;
13253
+ padding: 48px 24px;
13254
+ }
13255
+
13256
+ .sui-result-icon {
13257
+ width: 80px;
13258
+ height: 80px;
13259
+ border-radius: 50%;
13260
+ display: flex;
13261
+ align-items: center;
13262
+ justify-content: center;
13263
+ font-size: 36px;
13264
+ margin-bottom: 20px;
13265
+ box-shadow: var(--sui-shadow-raised);
13266
+ }
13267
+
13268
+ .sui-result-success .sui-result-icon { background: rgba(31, 169, 110, 0.12); color: var(--sui-success); }
13269
+ .sui-result-error .sui-result-icon { background: rgba(208, 58, 92, 0.12); color: var(--sui-danger); }
13270
+ .sui-result-warning .sui-result-icon { background: rgba(245, 166, 35, 0.12); color: var(--sui-warning); }
13271
+ .sui-result-info .sui-result-icon { background: rgba(26, 130, 212, 0.12); color: var(--sui-info); }
13272
+ .sui-result-404 .sui-result-icon { background: rgba(90, 106, 126, 0.12); color: var(--sui-text-muted); }
13273
+
13274
+ .sui-result-title {
13275
+ font-size: 22px;
13276
+ font-weight: 700;
13277
+ color: var(--sui-text);
13278
+ margin: 0 0 8px;
13279
+ }
13280
+
13281
+ .sui-result-desc {
13282
+ font-size: 14px;
13283
+ color: var(--sui-text-muted);
13284
+ max-width: 400px;
13285
+ margin: 0 0 24px;
13286
+ line-height: 1.6;
13287
+ }
13288
+
13289
+ .sui-result-actions {
13290
+ display: flex;
13291
+ gap: 12px;
13292
+ flex-wrap: wrap;
13293
+ justify-content: center;
13294
+ }
13295
+
13296
+ /* Inset variant */
13297
+ .sui-result-inset {
13298
+ background: var(--sui-bg);
13299
+ border-radius: var(--sui-radius-lg);
13300
+ box-shadow: var(--sui-shadow-inset);
13301
+ }
13302
+
13303
+ .sui-result-inset .sui-result-icon {
13304
+ box-shadow: var(--sui-shadow-inset-sm);
13305
+ }
13306
+
13307
+ /* ===========================================
13308
+ List Group
13309
+ =========================================== */
13310
+ .sui-list-group {
13311
+ list-style: none;
13312
+ padding: 0;
13313
+ margin: 0;
13314
+ border-radius: var(--sui-radius-sm);
13315
+ }
13316
+
13317
+ .sui-list-group-item {
13318
+ display: flex;
13319
+ align-items: center;
13320
+ gap: 12px;
13321
+ padding: 12px 16px;
13322
+ font-size: 14px;
13323
+ color: var(--sui-text);
13324
+ border-bottom: 1px solid var(--sui-bg-dark);
13325
+ transition: background var(--sui-transition-fast);
13326
+ text-decoration: none;
13327
+ }
13328
+
13329
+ .sui-list-group-item:last-child {
13330
+ border-bottom: none;
13331
+ }
13332
+
13333
+ a.sui-list-group-item:hover,
13334
+ button.sui-list-group-item:hover {
13335
+ background: rgba(91, 84, 224, 0.04);
13336
+ cursor: pointer;
13337
+ }
13338
+
13339
+ [data-theme="dark"] a.sui-list-group-item:hover,
13340
+ [data-theme="dark"] button.sui-list-group-item:hover {
13341
+ background: rgba(124, 107, 255, 0.08);
13342
+ }
13343
+
13344
+ .sui-list-group-item.active {
13345
+ background: rgba(91, 84, 224, 0.08);
13346
+ color: var(--sui-primary);
13347
+ font-weight: 600;
13348
+ }
13349
+
13350
+ .sui-list-group-item.disabled {
13351
+ opacity: 0.5;
13352
+ pointer-events: none;
13353
+ }
13354
+
13355
+ /* Content area */
13356
+ .sui-list-group-content {
13357
+ flex: 1;
13358
+ min-width: 0;
13359
+ }
13360
+
13361
+ .sui-list-group-title {
13362
+ font-weight: 600;
13363
+ font-size: 14px;
13364
+ }
13365
+
13366
+ .sui-list-group-desc {
13367
+ font-size: 12px;
13368
+ color: var(--sui-text-muted);
13369
+ margin-top: 2px;
13370
+ }
13371
+
13372
+ /* Icon */
13373
+ .sui-list-group-icon {
13374
+ width: 20px;
13375
+ height: 20px;
13376
+ flex-shrink: 0;
13377
+ color: var(--sui-text-muted);
13378
+ }
13379
+
13380
+ .sui-list-group-item.active .sui-list-group-icon {
13381
+ color: var(--sui-primary);
13382
+ }
13383
+
13384
+ /* Action (right side) */
13385
+ .sui-list-group-action {
13386
+ margin-inline-start: auto;
13387
+ flex-shrink: 0;
13388
+ }
13389
+
13390
+ /* Raised variant */
13391
+ .sui-list-group-raised {
13392
+ box-shadow: var(--sui-shadow-raised);
13393
+ background: var(--sui-bg);
13394
+ }
13395
+
13396
+ /* Bordered variant */
13397
+ .sui-list-group-bordered {
13398
+ border: 1px solid var(--sui-bg-dark);
13399
+ }
13400
+
13401
+ /* Inset variant */
13402
+ .sui-list-group-inset {
13403
+ box-shadow: var(--sui-shadow-inset);
13404
+ background: var(--sui-bg);
13405
+ }
13406
+
13407
+ /* Flush variant (no outer border/radius) */
13408
+ .sui-list-group-flush {
13409
+ border-radius: 0;
13410
+ }
13411
+
13412
+ /* ===========================================
13413
+ Descriptions (key-value display)
13414
+ =========================================== */
13415
+ .sui-desc {
13416
+ width: 100%;
13417
+ }
13418
+
13419
+ .sui-desc-title {
13420
+ font-size: 16px;
13421
+ font-weight: 700;
13422
+ color: var(--sui-text);
13423
+ margin: 0 0 16px;
13424
+ }
13425
+
13426
+ .sui-desc-row {
13427
+ display: flex;
13428
+ padding: 12px 0;
13429
+ border-bottom: 1px solid var(--sui-bg-dark);
13430
+ gap: 16px;
13431
+ }
13432
+
13433
+ .sui-desc-row:last-child {
13434
+ border-bottom: none;
13435
+ }
13436
+
13437
+ .sui-desc-label {
13438
+ font-size: 14px;
13439
+ font-weight: 500;
13440
+ color: var(--sui-text-muted);
13441
+ width: 160px;
13442
+ flex-shrink: 0;
13443
+ }
13444
+
13445
+ .sui-desc-value {
13446
+ font-size: 14px;
13447
+ color: var(--sui-text);
13448
+ flex: 1;
13449
+ }
13450
+
13451
+ /* Bordered variant */
13452
+ .sui-desc-bordered {
13453
+ border: 1px solid var(--sui-bg-dark);
13454
+ border-radius: var(--sui-radius-sm);
13455
+ overflow: hidden;
13456
+ }
13457
+
13458
+ .sui-desc-bordered .sui-desc-title {
13459
+ padding: 14px 20px;
13460
+ margin: 0;
13461
+ border-bottom: 1px solid var(--sui-bg-dark);
13462
+ background: var(--sui-bg-light);
13463
+ }
13464
+
13465
+ .sui-desc-bordered .sui-desc-row {
13466
+ padding: 12px 20px;
13467
+ }
13468
+
13469
+ /* Raised variant */
13470
+ .sui-desc-raised {
13471
+ background: var(--sui-bg);
13472
+ border-radius: var(--sui-radius-sm);
13473
+ box-shadow: var(--sui-shadow-raised);
13474
+ overflow: hidden;
13475
+ }
13476
+
13477
+ .sui-desc-raised .sui-desc-title {
13478
+ padding: 14px 20px;
13479
+ margin: 0;
13480
+ border-bottom: 1px solid var(--sui-bg-dark);
13481
+ }
13482
+
13483
+ .sui-desc-raised .sui-desc-row {
13484
+ padding: 12px 20px;
13485
+ }
13486
+
13487
+ /* Inset variant */
13488
+ .sui-desc-inset {
13489
+ background: var(--sui-bg);
13490
+ border-radius: var(--sui-radius-sm);
13491
+ box-shadow: var(--sui-shadow-inset);
13492
+ overflow: hidden;
13493
+ }
13494
+
13495
+ .sui-desc-inset .sui-desc-title {
13496
+ padding: 14px 20px;
13497
+ margin: 0;
13498
+ border-bottom: 1px solid var(--sui-bg-dark);
13499
+ }
13500
+
13501
+ .sui-desc-inset .sui-desc-row {
13502
+ padding: 12px 20px;
13503
+ }
13504
+
13505
+ /* Striped variant */
13506
+ .sui-desc-striped .sui-desc-row:nth-child(even) {
13507
+ background: var(--sui-bg-light);
13508
+ }
13509
+
13510
+ /* Horizontal layout (grid) */
13511
+ .sui-desc-horizontal {
13512
+ display: grid;
13513
+ grid-template-columns: 1fr 1fr;
13514
+ gap: 0;
13515
+ }
13516
+
13517
+ .sui-desc-horizontal .sui-desc-row {
13518
+ border-bottom: 1px solid var(--sui-bg-dark);
13519
+ }
13520
+
13521
+ /* Responsive */
13522
+ @media (max-width: 600px) {
13523
+ .sui-desc-row {
13524
+ flex-direction: column;
13525
+ gap: 4px;
13526
+ }
13527
+ .sui-desc-label {
13528
+ width: auto;
13529
+ }
13530
+ .sui-desc-horizontal {
13531
+ grid-template-columns: 1fr;
13532
+ }
13533
+ }
13534
+
13535
+ /* ===========================================
13536
+ Hero Section
13537
+ =========================================== */
13538
+ .sui-hero {
13539
+ display: flex;
13540
+ flex-direction: column;
13541
+ align-items: center;
13542
+ text-align: center;
13543
+ padding: 64px 24px;
13544
+ }
13545
+
13546
+ .sui-hero-title {
13547
+ font-size: 3rem;
13548
+ font-weight: 800;
13549
+ color: var(--sui-text);
13550
+ margin: 0 0 12px;
13551
+ line-height: 1.15;
13552
+ letter-spacing: -0.5px;
13553
+ }
13554
+
13555
+ .sui-hero-subtitle {
13556
+ font-size: 1.125rem;
13557
+ color: var(--sui-text-muted);
13558
+ max-width: 560px;
13559
+ margin: 0 0 32px;
13560
+ line-height: 1.6;
13561
+ }
13562
+
13563
+ .sui-hero-actions {
13564
+ display: flex;
13565
+ gap: 12px;
13566
+ flex-wrap: wrap;
13567
+ justify-content: center;
13568
+ }
13569
+
13570
+ /* Sizes */
13571
+ .sui-hero-sm {
13572
+ padding: 40px 24px;
13573
+ }
13574
+
13575
+ .sui-hero-sm .sui-hero-title {
13576
+ font-size: 2rem;
13577
+ }
13578
+
13579
+ .sui-hero-sm .sui-hero-subtitle {
13580
+ font-size: 1rem;
13581
+ margin-bottom: 24px;
13582
+ }
13583
+
13584
+ .sui-hero-lg {
13585
+ padding: 96px 24px;
13586
+ }
13587
+
13588
+ .sui-hero-lg .sui-hero-title {
13589
+ font-size: 4rem;
13590
+ }
13591
+
13592
+ .sui-hero-lg .sui-hero-subtitle {
13593
+ font-size: 1.25rem;
13594
+ max-width: 640px;
13595
+ }
13596
+
13597
+ /* Raised variant */
13598
+ .sui-hero-raised {
13599
+ background: var(--sui-bg);
13600
+ border-radius: var(--sui-radius-lg);
13601
+ box-shadow: var(--sui-shadow-raised);
13602
+ }
13603
+
13604
+ /* Gradient background */
13605
+ .sui-hero-gradient {
13606
+ background: linear-gradient(135deg, var(--sui-bg) 0%, var(--sui-bg-light) 100%);
13607
+ border-radius: var(--sui-radius-lg);
13608
+ }
13609
+
13610
+ /* With accent line */
13611
+ .sui-hero-accent .sui-hero-title {
13612
+ position: relative;
13613
+ padding-bottom: 16px;
13614
+ margin-bottom: 20px;
13615
+ }
13616
+
13617
+ .sui-hero-accent .sui-hero-title::after {
13618
+ content: '';
13619
+ position: absolute;
13620
+ bottom: 0;
13621
+ left: 50%;
13622
+ transform: translateX(-50%);
13623
+ width: 60px;
13624
+ height: 4px;
13625
+ border-radius: var(--sui-radius-full);
13626
+ background: var(--sui-primary);
13627
+ }
13628
+
13629
+ /* Bordered variant */
13630
+ .sui-hero-bordered {
13631
+ border: 1px solid var(--sui-bg-dark);
13632
+ border-radius: var(--sui-radius-lg);
13633
+ }
13634
+
13635
+ /* Inset variant */
13636
+ .sui-hero-inset {
13637
+ background: var(--sui-bg);
13638
+ border-radius: var(--sui-radius-lg);
13639
+ box-shadow: var(--sui-shadow-inset);
13640
+ }
13641
+
13642
+ /* Responsive */
13643
+ @media (max-width: 600px) {
13644
+ .sui-hero-title { font-size: 2rem; }
13645
+ .sui-hero-lg .sui-hero-title { font-size: 2.5rem; }
13646
+ .sui-hero { padding: 40px 16px; }
13647
+ .sui-hero-lg { padding: 56px 16px; }
13648
+ }
13649
+
13650
+ /* ===========================================
13651
+ Editable Text
13652
+ =========================================== */
13653
+ .sui-editable {
13654
+ display: inline-flex;
13655
+ align-items: center;
13656
+ gap: 6px;
13657
+ cursor: pointer;
13658
+ position: relative;
13659
+ }
13660
+
13661
+ .sui-editable-value {
13662
+ padding: 4px 8px;
13663
+ border-radius: var(--sui-radius-xs);
13664
+ border: 1.5px solid transparent;
13665
+ transition: border-color var(--sui-transition-fast), background var(--sui-transition-fast);
13666
+ min-width: 40px;
13667
+ }
13668
+
13669
+ .sui-editable:hover .sui-editable-value {
13670
+ border-color: var(--sui-bg-dark);
13671
+ background: var(--sui-bg-light);
13672
+ }
13673
+
13674
+ .sui-editable-icon {
13675
+ width: 14px;
13676
+ height: 14px;
13677
+ color: var(--sui-text-muted);
13678
+ opacity: 0;
13679
+ transition: opacity var(--sui-transition-fast);
13680
+ flex-shrink: 0;
13681
+ }
13682
+
13683
+ .sui-editable:hover .sui-editable-icon {
13684
+ opacity: 1;
13685
+ }
13686
+
13687
+ .sui-editable-input {
13688
+ padding: 4px 8px;
13689
+ font-size: inherit;
13690
+ font-family: var(--sui-font);
13691
+ font-weight: inherit;
13692
+ color: var(--sui-text);
13693
+ background: var(--sui-bg);
13694
+ border: 1.5px solid var(--sui-primary);
13695
+ border-radius: var(--sui-radius-xs);
13696
+ box-shadow: 0 0 0 3px rgba(91, 84, 224, 0.15);
13697
+ outline: none;
13698
+ width: 100%;
13699
+ min-width: 80px;
13700
+ }
13701
+
13702
+ .sui-editable-input:focus {
13703
+ box-shadow: 0 0 0 3px rgba(91, 84, 224, 0.25);
13704
+ }
13705
+
13706
+ /* Sizes */
13707
+ .sui-editable-sm { font-size: 13px; }
13708
+ .sui-editable-sm .sui-editable-value { padding: 2px 6px; }
13709
+ .sui-editable-sm .sui-editable-input { padding: 2px 6px; }
13710
+
13711
+ .sui-editable-lg { font-size: 18px; }
13712
+ .sui-editable-lg .sui-editable-value { padding: 6px 10px; }
13713
+ .sui-editable-lg .sui-editable-input { padding: 6px 10px; }
13714
+
13715
+ /* Underline variant */
13716
+ .sui-editable-underline .sui-editable-value {
13717
+ border: none;
13718
+ border-bottom: 1.5px dashed var(--sui-bg-dark);
13719
+ border-radius: 0;
13720
+ padding: 4px 2px;
13721
+ }
13722
+
13723
+ .sui-editable-underline:hover .sui-editable-value {
13724
+ border-bottom-color: var(--sui-primary);
13725
+ background: none;
13726
+ }
13727
+
13728
+ .sui-editable-underline .sui-editable-input {
13729
+ border: none;
13730
+ border-bottom: 1.5px solid var(--sui-primary);
13731
+ border-radius: 0;
13732
+ box-shadow: none;
13733
+ padding: 4px 2px;
13734
+ }
13735
+
13736
+ /* ===========================================
13737
+ Scrollspy
13738
+ =========================================== */
13739
+ .sui-scrollspy {
13740
+ display: flex;
13741
+ flex-direction: column;
13742
+ gap: 2px;
13743
+ list-style: none;
13744
+ padding: 0;
13745
+ margin: 0;
13746
+ }
13747
+
13748
+ .sui-scrollspy a {
13749
+ display: block;
13750
+ padding: 6px 16px;
13751
+ font-size: 13px;
13752
+ font-weight: 500;
13753
+ color: var(--sui-text-muted);
13754
+ text-decoration: none;
13755
+ border-inline-start: 2px solid transparent;
13756
+ border-radius: 0 var(--sui-radius-xs) var(--sui-radius-xs) 0;
13757
+ transition: color var(--sui-transition-fast), border-color var(--sui-transition-fast), background var(--sui-transition-fast);
13758
+ }
13759
+
13760
+ .sui-scrollspy a:hover {
13761
+ color: var(--sui-text);
13762
+ }
13763
+
13764
+ .sui-scrollspy a.active {
13765
+ color: var(--sui-primary);
13766
+ font-weight: 600;
13767
+ border-inline-start-color: var(--sui-primary);
13768
+ background: rgba(91, 84, 224, 0.06);
13769
+ }
13770
+
13771
+ [data-theme="dark"] .sui-scrollspy a.active {
13772
+ background: rgba(124, 107, 255, 0.1);
13773
+ }
13774
+
13775
+ /* Horizontal variant */
13776
+ .sui-scrollspy-horizontal {
13777
+ flex-direction: row;
13778
+ gap: 0;
13779
+ }
13780
+
13781
+ .sui-scrollspy-horizontal a {
13782
+ border-inline-start: none;
13783
+ border-bottom: 2px solid transparent;
13784
+ border-radius: 0;
13785
+ padding: 8px 16px;
13786
+ }
13787
+
13788
+ .sui-scrollspy-horizontal a.active {
13789
+ border-bottom-color: var(--sui-primary);
13790
+ background: none;
13791
+ }
13792
+
13793
+ /* Pill variant */
13794
+ .sui-scrollspy-pill a {
13795
+ border-inline-start: none;
13796
+ border-radius: var(--sui-radius-full);
13797
+ padding: 6px 14px;
13798
+ }
13799
+
13800
+ .sui-scrollspy-pill a.active {
13801
+ background: rgba(91, 84, 224, 0.1);
13802
+ }
13803
+
13804
+ /* ===========================================
13805
+ Countdown
13806
+ =========================================== */
13807
+ .sui-countdown {
13808
+ display: inline-flex;
13809
+ align-items: center;
13810
+ gap: 8px;
13811
+ }
13812
+
13813
+ .sui-countdown-unit {
13814
+ display: flex;
13815
+ flex-direction: column;
13816
+ align-items: center;
13817
+ gap: 4px;
13818
+ }
13819
+
13820
+ .sui-countdown-value {
13821
+ display: flex;
13822
+ align-items: center;
13823
+ justify-content: center;
13824
+ min-width: 56px;
13825
+ height: 56px;
13826
+ font-size: 28px;
13827
+ font-weight: 800;
13828
+ font-family: var(--sui-font);
13829
+ color: var(--sui-text);
13830
+ background: var(--sui-bg);
13831
+ border-radius: var(--sui-radius-sm);
13832
+ box-shadow: var(--sui-shadow-raised);
13833
+ line-height: 1;
13834
+ }
13835
+
13836
+ .sui-countdown-label {
13837
+ font-size: 11px;
13838
+ font-weight: 600;
13839
+ text-transform: uppercase;
13840
+ letter-spacing: 0.5px;
13841
+ color: var(--sui-text-muted);
13842
+ }
13843
+
13844
+ .sui-countdown-separator {
13845
+ font-size: 24px;
13846
+ font-weight: 700;
13847
+ color: var(--sui-text-muted);
13848
+ margin-top: -16px;
13849
+ }
13850
+
13851
+ /* Inset variant */
13852
+ .sui-countdown-inset .sui-countdown-value {
13853
+ box-shadow: var(--sui-shadow-inset);
13854
+ }
13855
+
13856
+ /* Bordered variant */
13857
+ .sui-countdown-bordered .sui-countdown-value {
13858
+ box-shadow: none;
13859
+ border: 1.5px solid var(--sui-bg-dark);
13860
+ }
13861
+
13862
+ /* Primary variant */
13863
+ .sui-countdown-primary .sui-countdown-value {
13864
+ background: var(--sui-primary);
13865
+ color: #fff;
13866
+ box-shadow: 0 4px 12px rgba(91, 84, 224, 0.3);
13867
+ }
13868
+
13869
+ /* Sizes */
13870
+ .sui-countdown-sm .sui-countdown-value {
13871
+ min-width: 40px;
13872
+ height: 40px;
13873
+ font-size: 20px;
13874
+ border-radius: var(--sui-radius-xs);
13875
+ }
13876
+
13877
+ .sui-countdown-sm .sui-countdown-label {
13878
+ font-size: 9px;
13879
+ }
13880
+
13881
+ .sui-countdown-sm .sui-countdown-separator {
13882
+ font-size: 18px;
13883
+ margin-top: -12px;
13884
+ }
13885
+
13886
+ .sui-countdown-lg .sui-countdown-value {
13887
+ min-width: 72px;
13888
+ height: 72px;
13889
+ font-size: 36px;
13890
+ border-radius: var(--sui-radius);
13891
+ }
13892
+
13893
+ .sui-countdown-lg .sui-countdown-label {
13894
+ font-size: 12px;
13895
+ }
13896
+
13897
+ .sui-countdown-lg .sui-countdown-separator {
13898
+ font-size: 30px;
13899
+ margin-top: -18px;
13900
+ }
13901
+
13902
+ /* ===========================================
13903
+ Segmented Control
13904
+ =========================================== */
13905
+ .sui-segmented {
13906
+ display: inline-flex;
13907
+ background: var(--sui-bg);
13908
+ border-radius: var(--sui-radius-full);
13909
+ box-shadow: var(--sui-shadow-inset);
13910
+ padding: 4px;
13911
+ position: relative;
13912
+ gap: 0;
13913
+ }
13914
+
13915
+ .sui-segmented input {
13916
+ position: absolute;
13917
+ opacity: 0;
13918
+ width: 0;
13919
+ height: 0;
13920
+ }
13921
+
13922
+ .sui-segmented label {
13923
+ position: relative;
13924
+ z-index: 1;
13925
+ padding: 8px 20px;
13926
+ font-size: 14px;
13927
+ font-weight: 500;
13928
+ font-family: var(--sui-font);
13929
+ color: var(--sui-text-muted);
13930
+ cursor: pointer;
13931
+ border-radius: var(--sui-radius-full);
13932
+ transition: color var(--sui-transition-fast);
13933
+ -webkit-user-select: none;
13934
+ user-select: none;
13935
+ white-space: nowrap;
13936
+ text-align: center;
13937
+ }
13938
+
13939
+ .sui-segmented input:checked + label {
13940
+ color: var(--sui-text);
13941
+ font-weight: 600;
13942
+ }
13943
+
13944
+ .sui-segmented input:focus-visible + label {
13945
+ outline: 2px solid var(--sui-primary);
13946
+ outline-offset: 2px;
13947
+ }
13948
+
13949
+ /* Sliding indicator */
13950
+ .sui-segmented-indicator {
13951
+ position: absolute;
13952
+ top: 4px;
13953
+ bottom: 4px;
13954
+ left: 0;
13955
+ border-radius: var(--sui-radius-full);
13956
+ background: var(--sui-bg);
13957
+ box-shadow: var(--sui-shadow-raised-sm);
13958
+ transition: left var(--sui-transition-base) ease, width var(--sui-transition-base) ease;
13959
+ z-index: 0;
13960
+ }
13961
+
13962
+ /* Primary color variant */
13963
+ .sui-segmented-primary input:checked + label {
13964
+ color: #fff;
13965
+ }
13966
+
13967
+ .sui-segmented-primary .sui-segmented-indicator {
13968
+ background: var(--sui-primary);
13969
+ box-shadow: 0 2px 8px rgba(91, 84, 224, 0.3);
13970
+ }
13971
+
13972
+ /* Block (full width) */
13973
+ .sui-segmented-block {
13974
+ display: flex;
13975
+ width: 100%;
13976
+ }
13977
+
13978
+ .sui-segmented-block label {
13979
+ flex: 1;
13980
+ }
13981
+
13982
+ /* Sizes */
13983
+ .sui-segmented-sm {
13984
+ padding: 3px;
13985
+ }
13986
+
13987
+ .sui-segmented-sm label {
13988
+ padding: 5px 14px;
13989
+ font-size: 13px;
13990
+ }
13991
+
13992
+ .sui-segmented-lg label {
13993
+ padding: 10px 28px;
13994
+ font-size: 16px;
13995
+ }
13996
+
13997
+ /* Disabled */
13998
+ .sui-segmented input:disabled + label {
13999
+ opacity: 0.4;
14000
+ cursor: not-allowed;
14001
+ }
14002
+
14003
+ /* ===========================================
14004
+ Navigation Menu
14005
+ =========================================== */
14006
+ .sui-nav-menu {
14007
+ display: flex;
14008
+ align-items: center;
14009
+ gap: 4px;
14010
+ list-style: none;
14011
+ padding: 0;
14012
+ margin: 0;
14013
+ }
14014
+
14015
+ .sui-nav-menu-item {
14016
+ position: relative;
14017
+ }
14018
+
14019
+ .sui-nav-menu-trigger {
14020
+ display: inline-flex;
14021
+ align-items: center;
14022
+ gap: 6px;
14023
+ padding: 8px 16px;
14024
+ font-size: 14px;
14025
+ font-weight: 500;
14026
+ font-family: var(--sui-font);
14027
+ color: var(--sui-text-muted);
14028
+ background: none;
14029
+ border: none;
14030
+ border-radius: var(--sui-radius-sm);
14031
+ cursor: pointer;
14032
+ transition: var(--sui-transition);
14033
+ text-decoration: none;
14034
+ }
14035
+
14036
+ .sui-nav-menu-trigger:hover {
14037
+ color: var(--sui-text);
14038
+ background: var(--sui-bg-dark);
14039
+ }
14040
+
14041
+ .sui-nav-menu-trigger.active {
14042
+ color: var(--sui-primary);
14043
+ font-weight: 600;
14044
+ }
14045
+
14046
+ /* Arrow */
14047
+ .sui-nav-menu-trigger::after {
14048
+ content: '';
14049
+ width: 5px;
14050
+ height: 5px;
14051
+ border-right: 1.5px solid currentColor;
14052
+ border-bottom: 1.5px solid currentColor;
14053
+ transform: rotate(45deg);
14054
+ margin-top: 0px;
14055
+ margin-inline-start: 4px;
14056
+ transition: transform var(--sui-transition-fast);
14057
+ }
14058
+
14059
+ .sui-nav-menu-item.open .sui-nav-menu-trigger::after {
14060
+ transform: rotate(-135deg);
14061
+ margin-top: 2px;
14062
+ }
14063
+
14064
+ /* No arrow for plain links */
14065
+ a.sui-nav-menu-trigger::after {
14066
+ display: none;
14067
+ }
14068
+
14069
+ /* Panel (mega-menu dropdown) */
14070
+ .sui-nav-menu-panel {
14071
+ position: absolute;
14072
+ top: calc(100% + 6px);
14073
+ left: 0;
14074
+ min-width: 240px;
14075
+ background: var(--sui-bg);
14076
+ border-radius: var(--sui-radius-sm);
14077
+ box-shadow: var(--sui-shadow-raised);
14078
+ padding: 12px;
14079
+ display: none;
14080
+ z-index: 100;
14081
+ }
14082
+
14083
+ /* Invisible bridge to prevent hover gap */
14084
+ .sui-nav-menu-item > .sui-nav-menu-panel::before {
14085
+ content: '';
14086
+ position: absolute;
14087
+ top: -10px;
14088
+ left: 0;
14089
+ right: 0;
14090
+ height: 10px;
14091
+ }
14092
+
14093
+ .sui-nav-menu-item.open .sui-nav-menu-panel {
14094
+ display: block;
14095
+ }
14096
+
14097
+ /* Wide panel (mega-menu) */
14098
+ .sui-nav-menu-panel-wide {
14099
+ min-width: 480px;
14100
+ display: none;
14101
+ }
14102
+
14103
+ .sui-nav-menu-item.open .sui-nav-menu-panel-wide {
14104
+ display: grid;
14105
+ grid-template-columns: repeat(2, 1fr);
14106
+ gap: 8px;
14107
+ }
14108
+
14109
+ /* Full-width panel */
14110
+ .sui-nav-menu-panel-full {
14111
+ left: 0;
14112
+ right: 0;
14113
+ min-width: auto;
14114
+ display: none;
14115
+ }
14116
+
14117
+ .sui-nav-menu-item.open .sui-nav-menu-panel-full {
14118
+ display: grid;
14119
+ grid-template-columns: repeat(3, 1fr);
14120
+ gap: 8px;
14121
+ }
14122
+
14123
+ /* Panel link */
14124
+ .sui-nav-menu-link {
14125
+ display: flex;
14126
+ align-items: flex-start;
14127
+ gap: 12px;
14128
+ padding: 10px 12px;
14129
+ border-radius: var(--sui-radius-xs);
14130
+ text-decoration: none;
14131
+ color: var(--sui-text);
14132
+ transition: background var(--sui-transition-fast);
14133
+ }
14134
+
14135
+ .sui-nav-menu-link:hover {
14136
+ background: rgba(91, 84, 224, 0.06);
14137
+ }
14138
+
14139
+ [data-theme="dark"] .sui-nav-menu-link:hover {
14140
+ background: rgba(124, 107, 255, 0.1);
14141
+ }
14142
+
14143
+ .sui-nav-menu-link-icon {
14144
+ width: 36px;
14145
+ height: 36px;
14146
+ border-radius: var(--sui-radius-xs);
14147
+ display: flex;
14148
+ align-items: center;
14149
+ justify-content: center;
14150
+ font-size: 18px;
14151
+ flex-shrink: 0;
14152
+ background: var(--sui-bg-dark);
14153
+ }
14154
+
14155
+ .sui-nav-menu-link-text {
14156
+ flex: 1;
14157
+ min-width: 0;
14158
+ }
14159
+
14160
+ .sui-nav-menu-link-title {
14161
+ font-size: 14px;
14162
+ font-weight: 600;
14163
+ color: var(--sui-text);
14164
+ }
14165
+
14166
+ .sui-nav-menu-link-desc {
14167
+ font-size: 12px;
14168
+ color: var(--sui-text-muted);
14169
+ margin-top: 2px;
14170
+ }
14171
+
14172
+ /* Group label inside panel */
14173
+ .sui-nav-menu-group-label {
14174
+ font-size: 11px;
14175
+ font-weight: 700;
14176
+ text-transform: uppercase;
14177
+ letter-spacing: 0.5px;
14178
+ color: var(--sui-text-muted);
14179
+ padding: 8px 12px 4px;
14180
+ }
14181
+
14182
+ /* Separator */
14183
+ .sui-nav-menu-separator {
14184
+ height: 1px;
14185
+ background: var(--sui-bg-dark);
14186
+ margin: 6px 0;
14187
+ }
14188
+
14189
+ /* Raised variant */
14190
+ .sui-nav-menu-raised {
14191
+ background: var(--sui-bg);
14192
+ border-radius: var(--sui-radius-sm);
14193
+ box-shadow: var(--sui-shadow-raised);
14194
+ padding: 6px 8px;
14195
+ }
14196
+
14197
+ /* Bordered variant */
14198
+ .sui-nav-menu-bordered {
14199
+ border: 1.5px solid var(--sui-bg-dark);
14200
+ border-radius: var(--sui-radius-sm);
14201
+ padding: 6px 8px;
14202
+ }
14203
+
14204
+ /* Inset variant */
14205
+ .sui-nav-menu-inset {
14206
+ background: var(--sui-bg);
14207
+ border-radius: var(--sui-radius-sm);
14208
+ box-shadow: var(--sui-shadow-inset);
14209
+ padding: 6px 8px;
14210
+ }
14211
+
14212
+ /* Hover to open */
14213
+ .sui-nav-menu-hover .sui-nav-menu-item:hover > .sui-nav-menu-panel,
14214
+ .sui-nav-menu-hover .sui-nav-menu-item:hover > .sui-nav-menu-panel-wide {
14215
+ display: block;
14216
+ }
14217
+
14218
+ .sui-nav-menu-hover .sui-nav-menu-item:hover > .sui-nav-menu-panel-wide {
14219
+ display: grid;
14220
+ grid-template-columns: repeat(2, 1fr);
14221
+ gap: 8px;
14222
+ }
14223
+
14224
+ .sui-nav-menu-hover .sui-nav-menu-item:hover > .sui-nav-menu-trigger::after {
14225
+ transform: rotate(-135deg);
14226
+ margin-top: 2px;
14227
+ }
14228
+
14229
+ /* Sub-menu (nested panel) */
14230
+ .sui-nav-menu-sub {
14231
+ position: relative;
14232
+ }
14233
+
14234
+ .sui-nav-menu-sub > .sui-nav-menu-panel {
14235
+ position: absolute;
14236
+ left: calc(100% + 4px);
14237
+ top: -12px;
14238
+ display: none;
14239
+ pointer-events: none;
14240
+ opacity: 0;
14241
+ transition: opacity var(--sui-transition-fast);
14242
+ }
14243
+
14244
+ .sui-nav-menu-sub:hover > .sui-nav-menu-panel,
14245
+ .sui-nav-menu-sub.open > .sui-nav-menu-panel {
14246
+ display: block;
14247
+ pointer-events: auto;
14248
+ opacity: 1;
14249
+ }
14250
+
14251
+ /* Click-only sub-menus (disable hover) */
14252
+ .sui-nav-menu-sub-click .sui-nav-menu-sub:hover > .sui-nav-menu-panel {
14253
+ display: none;
14254
+ pointer-events: none;
14255
+ opacity: 0;
14256
+ }
14257
+
14258
+ .sui-nav-menu-sub-click .sui-nav-menu-sub.open > .sui-nav-menu-panel {
14259
+ display: block;
14260
+ pointer-events: auto;
14261
+ opacity: 1;
14262
+ }
14263
+
14264
+ /* Invisible bridge for sub-menu gap */
14265
+ .sui-nav-menu-sub > .sui-nav-menu-panel::before {
14266
+ content: '';
14267
+ position: absolute;
14268
+ top: 0;
14269
+ left: -8px;
14270
+ width: 8px;
14271
+ height: 100%;
14272
+ }
14273
+
14274
+ .sui-nav-menu-sub > .sui-nav-menu-link::after {
14275
+ content: '›';
14276
+ margin-inline-start: auto;
14277
+ font-size: 16px;
14278
+ color: var(--sui-text-muted);
14279
+ line-height: 1;
14280
+ }
14281
+
14282
+ /* Responsive */
14283
+ @media (max-width: 768px) {
14284
+ .sui-nav-menu {
14285
+ flex-direction: column;
14286
+ align-items: stretch;
14287
+ }
14288
+ .sui-nav-menu-panel,
14289
+ .sui-nav-menu-panel-wide,
14290
+ .sui-nav-menu-item.open .sui-nav-menu-panel-wide {
14291
+ position: static;
14292
+ box-shadow: none;
14293
+ grid-template-columns: 1fr;
14294
+ padding: 0 0 0 16px;
14295
+ }
14296
+ .sui-nav-menu-panel-full,
14297
+ .sui-nav-menu-item.open .sui-nav-menu-panel-full {
14298
+ position: static;
14299
+ box-shadow: none;
14300
+ grid-template-columns: 1fr;
14301
+ padding: 0 0 0 16px;
14302
+ }
14303
+ }
14304
+
13245
14305
  /* ===========================================
13246
14306
  Reduced Motion
13247
14307
  =========================================== */