domma-js 0.7.8-alpha → 0.9.3-alpha

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.
@@ -1,9 +1,9 @@
1
1
  /*!
2
- * Domma Elements CSS v0.7.6-alpha
2
+ * Domma Elements CSS v0.9.2-alpha
3
3
  * Dynamic Object Manipulation & Modeling API
4
4
  * (c) 2026 Darryl Waterhouse & DCBW-IT
5
- * Built: 2026-01-09T14:00:45.596Z
6
- * Commit: 5527c59
5
+ * Built: 2026-01-11T18:01:20.203Z
6
+ * Commit: 136342c
7
7
  */
8
8
 
9
9
  /**
@@ -1455,11 +1455,18 @@ code {
1455
1455
  NAVBAR
1456
1456
  ============================================ */
1457
1457
 
1458
+ /* ============================================
1459
+ NAVBAR - MOBILE FIRST
1460
+ ============================================ */
1461
+
1462
+ /* Base navbar (mobile default) */
1458
1463
  .navbar {
1459
1464
  display: flex;
1460
1465
  align-items: center;
1461
1466
  justify-content: space-between;
1462
- padding: var(--dm-space-3) var(--dm-space-6);
1467
+ flex-wrap: wrap;
1468
+ gap: var(--dm-space-3);
1469
+ padding: var(--dm-space-3) var(--dm-space-4);
1463
1470
  padding-right: 6rem; /* Leave space for theme toggle + variant */
1464
1471
  background-color: var(--dm-navbar-bg);
1465
1472
  border-bottom: 1px solid var(--dm-border);
@@ -1505,10 +1512,10 @@ code {
1505
1512
  object-fit: contain;
1506
1513
  }
1507
1514
 
1508
- /* Hamburger Toggle */
1509
-
1515
+ /* Hamburger Toggle (visible on mobile) */
1510
1516
  .navbar-toggle {
1511
- display: none;
1517
+ display: block;
1518
+ order: 2;
1512
1519
  padding: var(--dm-space-2);
1513
1520
  background: transparent;
1514
1521
  border: none;
@@ -1529,31 +1536,97 @@ code {
1529
1536
  display: block;
1530
1537
  }
1531
1538
 
1539
+ /* Hamburger icon - three lines */
1540
+ .navbar-toggle-icon {
1541
+ display: block;
1542
+ width: 22px;
1543
+ height: 2px;
1544
+ background: currentColor;
1545
+ position: relative;
1546
+ transition: background 0.2s ease;
1547
+ }
1548
+
1549
+ .navbar-toggle-icon::before,
1550
+ .navbar-toggle-icon::after {
1551
+ content: '';
1552
+ position: absolute;
1553
+ left: 0;
1554
+ width: 100%;
1555
+ height: 2px;
1556
+ background: currentColor;
1557
+ transition: transform 0.2s ease;
1558
+ }
1559
+
1560
+ .navbar-toggle-icon::before {
1561
+ top: -7px;
1562
+ }
1563
+
1564
+ .navbar-toggle-icon::after {
1565
+ top: 7px;
1566
+ }
1567
+
1568
+ /* Animate to X when expanded */
1569
+ .navbar-toggle[aria-expanded="true"] .navbar-toggle-icon {
1570
+ background: transparent;
1571
+ }
1572
+
1573
+ .navbar-toggle[aria-expanded="true"] .navbar-toggle-icon::before {
1574
+ transform: rotate(45deg);
1575
+ top: 0;
1576
+ }
1577
+
1578
+ .navbar-toggle[aria-expanded="true"] .navbar-toggle-icon::after {
1579
+ transform: rotate(-45deg);
1580
+ top: 0;
1581
+ }
1582
+
1583
+ /* Navbar collapse (mobile: hidden by default) */
1584
+ .navbar-collapse {
1585
+ display: none;
1586
+ width: 100%;
1587
+ order: 3;
1588
+ flex-direction: column;
1589
+ padding-top: var(--dm-space-3);
1590
+ border-top: 1px solid var(--dm-border);
1591
+ }
1592
+
1593
+ .navbar-collapse.show {
1594
+ display: flex;
1595
+ }
1596
+
1597
+ /* Navbar navigation list (mobile: vertical) */
1532
1598
  .navbar-nav {
1533
1599
  display: flex;
1534
- flex-wrap: wrap;
1600
+ flex-direction: column;
1601
+ width: 100%;
1535
1602
  list-style: none;
1536
1603
  margin: 0;
1537
1604
  padding: 0;
1538
- gap: var(--dm-space-1);
1539
- align-items: center;
1605
+ gap: 0;
1606
+ max-height: 60vh;
1607
+ overflow-y: auto;
1540
1608
  }
1541
1609
 
1610
+ .navbar-nav li {
1611
+ width: 100%;
1612
+ }
1613
+
1614
+ /* Navbar links (mobile: full width, larger touch targets) */
1542
1615
  .navbar-link {
1543
1616
  display: block;
1544
- padding: var(--dm-space-2) var(--dm-space-3);
1617
+ padding: var(--dm-space-3) var(--dm-space-4);
1545
1618
  color: var(--dm-navbar-text);
1546
1619
  text-decoration: none;
1547
- border-radius: var(--dm-radius-md);
1620
+ border-radius: 0;
1548
1621
  transition: all var(--dm-transition-fast);
1549
- font-size: var(--dm-font-size-sm);
1622
+ font-size: var(--dm-font-size-base);
1550
1623
  white-space: nowrap;
1551
1624
  }
1552
1625
 
1553
1626
  .navbar-link:hover {
1554
1627
  color: var(--dm-text);
1555
- /*background-color: var(--dm-surface-raised);*/
1556
1628
  background-color: var(--dm-gray-800);
1629
+ border-radius: 0;
1557
1630
  }
1558
1631
 
1559
1632
  .navbar-link.active {
@@ -1562,6 +1635,11 @@ code {
1562
1635
  background-color: color-mix(in srgb, var(--dm-primary) 10%, transparent);
1563
1636
  }
1564
1637
 
1638
+ .nav-version {
1639
+ display: none;
1640
+ color: #eee;
1641
+ }
1642
+
1565
1643
  /* Light navbar variant */
1566
1644
 
1567
1645
  .navbar-light {
@@ -1627,68 +1705,113 @@ code {
1627
1705
  color: var(--dm-white);
1628
1706
  }
1629
1707
 
1630
- /* Responsive navbar - tablet */
1631
- @media (max-width: 1200px) {
1632
- .navbar {
1633
- padding: var(--dm-space-3) var(--dm-space-4);
1634
- padding-right: 6rem;
1635
- }
1708
+ /* Dark navbar collapse border color (mobile) */
1709
+ .navbar-dark .navbar-collapse {
1710
+ border-top-color: var(--dm-gray-700);
1711
+ }
1636
1712
 
1637
- .navbar-link {
1638
- padding: var(--dm-space-1) var(--dm-space-2);
1639
- font-size: var(--dm-font-size-xs);
1640
- }
1713
+ /* Navbar actions - base mobile styles */
1714
+ .navbar-actions {
1715
+ display: flex;
1716
+ align-items: center;
1717
+ gap: var(--dm-space-3);
1641
1718
  }
1642
1719
 
1643
- /* Responsive navbar - mobile */
1644
- @media (max-width: 992px) {
1720
+ /* ============================================
1721
+ NAVBAR - DESKTOP ENHANCEMENTS
1722
+ ============================================ */
1723
+
1724
+ /* Desktop (≥993px) */
1725
+ @media (min-width: 993px) {
1645
1726
  .navbar {
1646
- flex-wrap: wrap;
1647
- gap: var(--dm-space-3);
1727
+ flex-wrap: nowrap;
1728
+ gap: 0;
1729
+ padding: var(--dm-space-3) var(--dm-space-6);
1648
1730
  }
1649
1731
 
1732
+ /* Hide hamburger on desktop */
1650
1733
  .navbar-toggle {
1651
- display: block;
1652
- order: 2;
1734
+ display: none;
1735
+ }
1736
+
1737
+ /* Show navbar collapse on desktop */
1738
+ .navbar-collapse {
1739
+ display: flex;
1740
+ width: auto;
1741
+ flex-direction: row;
1742
+ align-items: center;
1743
+ flex-grow: 1;
1744
+ padding-top: 0;
1745
+ border-top: none;
1653
1746
  }
1654
1747
 
1748
+ /* Horizontal navigation on desktop */
1655
1749
  .navbar-nav {
1656
- display: none;
1657
- width: 100%;
1658
- order: 3;
1659
- flex-direction: column;
1660
- gap: 0;
1661
- padding-top: var(--dm-space-3);
1662
- border-top: 1px solid var(--dm-gray-200);
1663
- max-height: 60vh;
1664
- overflow-y: auto;
1750
+ flex-direction: row;
1751
+ flex: 1;
1752
+ justify-content: center;
1753
+ gap: var(--dm-space-1);
1754
+ align-items: center;
1755
+ max-height: none;
1756
+ overflow-y: visible;
1757
+ }
1758
+
1759
+ .navbar-nav li {
1760
+ width: auto;
1665
1761
  }
1666
1762
 
1667
- .navbar-dark .navbar-nav {
1668
- border-top-color: var(--dm-gray-800);
1763
+ /* Navbar actions - desktop override: push to right */
1764
+ .navbar-actions {
1765
+ margin-left: auto;
1669
1766
  }
1670
1767
 
1671
- .navbar-nav.open {
1672
- display: flex;
1768
+ .navbar-action-link {
1769
+ color: var(--dm-navbar-text, var(--dm-white));
1770
+ text-decoration: none;
1771
+ padding: var(--dm-space-2) var(--dm-space-3);
1772
+ border-radius: var(--dm-radius-md);
1773
+ font-size: var(--dm-font-size-sm);
1774
+ transition: background var(--dm-transition-fast);
1673
1775
  }
1674
1776
 
1675
- .navbar-nav li {
1676
- width: 100%;
1777
+ .navbar-action-link:hover {
1778
+ background: rgba(255, 255, 255, 0.1);
1779
+ text-decoration: none;
1780
+ }
1781
+
1782
+ .navbar-dark .navbar-action-link {
1783
+ color: var(--dm-white);
1784
+ }
1785
+
1786
+ .navbar-light .navbar-action-link {
1787
+ color: var(--dm-text);
1677
1788
  }
1678
1789
 
1790
+ .navbar-light .navbar-action-link:hover {
1791
+ background: rgba(0, 0, 0, 0.05);
1792
+ }
1793
+
1794
+ /* Compact links on desktop */
1679
1795
  .navbar-link {
1680
- padding: var(--dm-space-3) var(--dm-space-4);
1681
- font-size: var(--dm-font-size-base);
1682
- border-radius: 0;
1796
+ padding: var(--dm-space-2) var(--dm-space-3);
1797
+ font-size: var(--dm-font-size-sm);
1798
+ border-radius: var(--dm-radius-md);
1683
1799
  }
1684
1800
 
1685
1801
  .navbar-link:hover {
1686
- border-radius: 0;
1802
+ border-radius: var(--dm-radius-md);
1687
1803
  }
1688
1804
 
1689
1805
  .nav-version {
1690
- display: none;
1691
- color: #eee;
1806
+ display: inline;
1807
+ }
1808
+ }
1809
+
1810
+ /* Large desktop (≥1201px) */
1811
+ @media (min-width: 1201px) {
1812
+ .navbar-link {
1813
+ padding: var(--dm-space-1) var(--dm-space-2);
1814
+ font-size: var(--dm-font-size-xs);
1692
1815
  }
1693
1816
  }
1694
1817
 
@@ -2590,21 +2713,23 @@ code {
2590
2713
 
2591
2714
 
2592
2715
  /* ============================================
2593
- HERO SECTION
2716
+ HERO SECTION - MOBILE FIRST
2594
2717
  ============================================ */
2595
2718
 
2596
- /* Base Hero - Structure Only */
2719
+ /* Base Hero - Mobile Default */
2597
2720
  .hero {
2598
- padding: 4rem 2rem;
2721
+ padding: 3rem 1rem; /* Reduced side padding to minimize whitespace */
2599
2722
  text-align: center;
2600
2723
  position: relative;
2601
2724
  background: var(--dm-surface);
2602
2725
  color: var(--dm-text);
2726
+ width: 100%; /* Ensure full width */
2727
+ box-sizing: border-box; /* Include padding in width calculation */
2603
2728
  }
2604
2729
 
2605
2730
  .hero h1,
2606
2731
  .hero .hero-title {
2607
- font-size: 3rem;
2732
+ font-size: 2rem; /* Mobile-optimized title size */
2608
2733
  font-weight: 700;
2609
2734
  margin-bottom: 1rem;
2610
2735
  line-height: 1.2;
@@ -2612,7 +2737,7 @@ code {
2612
2737
 
2613
2738
  .hero p,
2614
2739
  .hero .hero-subtitle {
2615
- font-size: 1.25rem;
2740
+ font-size: 1rem; /* Mobile-optimized text size */
2616
2741
  max-width: 600px;
2617
2742
  margin: 0 auto 2rem;
2618
2743
  opacity: 0.9;
@@ -2631,32 +2756,33 @@ code {
2631
2756
  flex-wrap: wrap;
2632
2757
  }
2633
2758
 
2634
- /* Hero Size Variants */
2759
+ /* Hero Size Variants - Mobile Default */
2635
2760
  .hero-sm {
2636
- padding: 2rem 1rem;
2761
+ padding: 2rem 0.75rem;
2637
2762
  }
2638
2763
 
2639
2764
  .hero-sm h1,
2640
2765
  .hero-sm .hero-title {
2641
- font-size: 2rem;
2766
+ font-size: 1.75rem;
2642
2767
  }
2643
2768
 
2644
2769
  .hero-sm p,
2645
2770
  .hero-sm .hero-subtitle {
2646
- font-size: 1rem;
2771
+ font-size: 0.875rem;
2647
2772
  }
2648
2773
 
2649
2774
  .hero-lg {
2650
- padding: 6rem 2rem;
2775
+ padding: 4rem 1rem;
2651
2776
  }
2652
2777
 
2653
2778
  .hero-lg h1,
2654
2779
  .hero-lg .hero-title {
2655
- font-size: 4rem;
2780
+ font-size: 2.5rem;
2656
2781
  }
2657
2782
 
2658
2783
  .hero-full {
2659
2784
  min-height: 100vh;
2785
+ min-height: 100dvh; /* Dynamic viewport height for mobile browsers */
2660
2786
  display: flex;
2661
2787
  flex-direction: column;
2662
2788
  justify-content: center;
@@ -2683,20 +2809,48 @@ code {
2683
2809
  color: var(--dm-white);
2684
2810
  }
2685
2811
 
2686
- /* Responsive */
2687
- @media (max-width: 768px) {
2812
+ /* ============================================
2813
+ HERO - DESKTOP ENHANCEMENTS
2814
+ ============================================ */
2815
+
2816
+ /* Desktop (≥769px) */
2817
+ @media (min-width: 769px) {
2818
+ .hero {
2819
+ padding: 4rem 2rem; /* Desktop: more generous padding */
2820
+ }
2821
+
2688
2822
  .hero h1,
2689
2823
  .hero .hero-title {
2690
- font-size: 2rem;
2824
+ font-size: 3rem; /* Desktop: larger title */
2691
2825
  }
2692
2826
 
2693
2827
  .hero p,
2694
2828
  .hero .hero-subtitle {
2829
+ font-size: 1.25rem; /* Desktop: larger text */
2830
+ }
2831
+
2832
+ /* Desktop size variants */
2833
+ .hero-sm {
2834
+ padding: 2rem 1rem;
2835
+ }
2836
+
2837
+ .hero-sm h1,
2838
+ .hero-sm .hero-title {
2839
+ font-size: 2rem;
2840
+ }
2841
+
2842
+ .hero-sm p,
2843
+ .hero-sm .hero-subtitle {
2695
2844
  font-size: 1rem;
2696
2845
  }
2697
2846
 
2698
- .hero {
2699
- padding: 3rem 1.5rem;
2847
+ .hero-lg {
2848
+ padding: 6rem 2rem;
2849
+ }
2850
+
2851
+ .hero-lg h1,
2852
+ .hero-lg .hero-title {
2853
+ font-size: 4rem;
2700
2854
  }
2701
2855
  }
2702
2856
 
@@ -3084,36 +3238,49 @@ code {
3084
3238
 
3085
3239
 
3086
3240
  /* ============================================
3087
- SIDEBAR
3241
+ SIDEBAR - MOBILE FIRST
3088
3242
  ============================================ */
3089
3243
 
3090
- /* Base Sidebar */
3244
+ /* Base Sidebar - Mobile Default */
3091
3245
  .sidebar {
3092
3246
  position: relative;
3093
- width: 250px;
3247
+ width: 100%;
3248
+ max-width: 250px;
3094
3249
  background: var(--dm-surface, #fff);
3095
3250
  border-right: 1px solid var(--dm-border, #dee2e6);
3096
3251
  overflow-y: auto;
3097
3252
  overflow-x: hidden;
3098
- transition: transform 0.3s ease;
3253
+ transition: transform 0.3s ease, width 0.3s ease;
3099
3254
  z-index: 100;
3255
+ --sidebar-width: 250px;
3256
+ --sidebar-collapsed-width: 60px;
3100
3257
  }
3101
3258
 
3102
- /* Fixed positioning */
3259
+ /* Fixed positioning - Mobile: hidden off-screen by default */
3103
3260
  .sidebar-fixed {
3104
3261
  position: fixed;
3105
3262
  top: 0;
3106
3263
  left: 0;
3107
3264
  height: 100vh;
3265
+ height: 100dvh; /* Dynamic viewport height for mobile */
3266
+ transform: translateX(-100%); /* Hidden off-screen on mobile */
3267
+ box-shadow: none;
3108
3268
  }
3109
3269
 
3110
3270
  .sidebar-fixed.sidebar-right {
3111
3271
  left: auto;
3112
3272
  right: 0;
3273
+ transform: translateX(100%); /* Hidden off-screen right */
3113
3274
  border-right: none;
3114
3275
  border-left: 1px solid var(--dm-border, #dee2e6);
3115
3276
  }
3116
3277
 
3278
+ /* Mobile: slide in when open */
3279
+ .sidebar-fixed.open {
3280
+ transform: translateX(0);
3281
+ box-shadow: var(--dm-shadow-xl, 0 10px 40px rgba(0,0,0,0.2));
3282
+ }
3283
+
3117
3284
  /* Position variants */
3118
3285
  .sidebar-left {
3119
3286
  left: 0;
@@ -3151,8 +3318,11 @@ code {
3151
3318
  color: var(--dm-text, #212529);
3152
3319
  }
3153
3320
 
3321
+ /* Toggle button - Visible on mobile by default */
3154
3322
  .sidebar-toggle-btn {
3155
- display: none; /* Shown on mobile */
3323
+ display: flex;
3324
+ align-items: center;
3325
+ justify-content: center;
3156
3326
  flex-shrink: 0;
3157
3327
  width: 32px;
3158
3328
  height: 32px;
@@ -3330,7 +3500,7 @@ code {
3330
3500
  color: var(--dm-text-muted, #6c757d);
3331
3501
  }
3332
3502
 
3333
- /* Overlay (mobile) */
3503
+ /* Overlay - Visible on mobile */
3334
3504
  .sidebar-overlay {
3335
3505
  position: fixed;
3336
3506
  top: 0;
@@ -3342,6 +3512,7 @@ code {
3342
3512
  opacity: 0;
3343
3513
  visibility: hidden;
3344
3514
  transition: opacity 0.3s ease, visibility 0.3s ease;
3515
+ display: block;
3345
3516
  }
3346
3517
 
3347
3518
  .sidebar-overlay.active {
@@ -3405,30 +3576,118 @@ code {
3405
3576
  border-color: var(--dm-border, #dee2e6);
3406
3577
  }
3407
3578
 
3408
- /* Mobile/Tablet: Slide-out drawer */
3409
- @media (max-width: 768px) {
3579
+ /* ============================================
3580
+ SIDEBAR - DESKTOP ENHANCEMENTS
3581
+ ============================================ */
3582
+
3583
+ /* Desktop (≥769px) */
3584
+ @media (min-width: 769px) {
3585
+ /* Desktop: Sidebar always visible */
3410
3586
  .sidebar-fixed {
3411
- transform: translateX(-100%);
3587
+ transform: translateX(0);
3412
3588
  box-shadow: none;
3413
3589
  }
3414
3590
 
3415
3591
  .sidebar-fixed.sidebar-right {
3416
- transform: translateX(100%);
3417
- }
3418
-
3419
- .sidebar-fixed.open {
3420
3592
  transform: translateX(0);
3421
- box-shadow: var(--dm-shadow-xl, 0 10px 40px rgba(0,0,0,0.2));
3422
3593
  }
3423
3594
 
3595
+ /* Desktop: Hide toggle button (unless desktop collapsible) */
3424
3596
  .sidebar-toggle-btn {
3597
+ display: none;
3598
+ }
3599
+
3600
+ /* Show toggle button on desktop when collapsibleDesktop enabled */
3601
+ .sidebar.sidebar-desktop-collapsible .sidebar-toggle-btn {
3425
3602
  display: flex;
3603
+ }
3604
+
3605
+ /* Desktop: Hide overlay */
3606
+ .sidebar-overlay {
3607
+ display: none;
3608
+ }
3609
+
3610
+ /* Desktop collapsed state - Fully hidden */
3611
+ .sidebar.sidebar-collapsed {
3612
+ transform: translateX(-100%);
3613
+ }
3614
+
3615
+ .sidebar.sidebar-collapsed.sidebar-right {
3616
+ transform: translateX(100%);
3617
+ }
3618
+
3619
+ /* Floating toggle button - appears when sidebar is collapsed */
3620
+ .sidebar-floating-toggle {
3621
+ position: fixed;
3622
+ top: 50%;
3623
+ left: 0;
3624
+ transform: translateY(-50%);
3625
+ z-index: 1001;
3626
+ display: none; /* Hidden by default */
3426
3627
  align-items: center;
3427
3628
  justify-content: center;
3629
+ width: 40px;
3630
+ height: 40px;
3631
+ background: var(--dm-primary, #007bff);
3632
+ color: var(--dm-white, #fff);
3633
+ border: none;
3634
+ border-radius: 0 var(--dm-radius-md, 0.375rem) var(--dm-radius-md, 0.375rem) 0;
3635
+ cursor: pointer;
3636
+ transition: all 0.2s ease;
3637
+ box-shadow: var(--dm-shadow-lg, 0 4px 12px rgba(0,0,0,0.15));
3428
3638
  }
3429
3639
 
3430
- .sidebar-overlay {
3431
- display: block;
3640
+ .sidebar-floating-toggle:hover {
3641
+ background: var(--dm-primary-dark, #0056b3);
3642
+ width: 48px;
3643
+ box-shadow: var(--dm-shadow-xl, 0 8px 20px rgba(0,0,0,0.2));
3644
+ }
3645
+
3646
+ .sidebar-floating-toggle.show {
3647
+ display: flex;
3648
+ }
3649
+
3650
+ .sidebar-floating-toggle.right {
3651
+ left: auto;
3652
+ right: 0;
3653
+ border-radius: var(--dm-radius-md, 0.375rem) 0 0 var(--dm-radius-md, 0.375rem);
3654
+ }
3655
+ }
3656
+
3657
+ /* ============================================
3658
+ Floating Sidebar Variant
3659
+ (bottom-left positioned sidebar)
3660
+ ============================================ */
3661
+ .sidebar-floating {
3662
+ position: fixed;
3663
+ left: 2px;
3664
+ bottom: 8px;
3665
+ top: auto !important;
3666
+ height: auto;
3667
+ max-height: 400px;
3668
+ width: 220px;
3669
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
3670
+ z-index: 100;
3671
+ }
3672
+
3673
+ .sidebar-floating .sidebar-header {
3674
+ font-size: 0.875rem;
3675
+ text-transform: uppercase;
3676
+ letter-spacing: 0.05em;
3677
+ }
3678
+
3679
+ @media (max-width: 992px) {
3680
+ .sidebar-floating {
3681
+ left: 0.5rem;
3682
+ bottom: 0.5rem;
3683
+ width: 180px;
3684
+ max-height: 300px;
3685
+ }
3686
+ }
3687
+
3688
+ @media (max-width: 576px) {
3689
+ .sidebar-floating {
3690
+ display: none;
3432
3691
  }
3433
3692
  }
3434
3693
 
@@ -3621,6 +3880,33 @@ code {
3621
3880
  color: rgba(255, 255, 255, 0.8);
3622
3881
  }
3623
3882
 
3883
+ /* ============================================
3884
+ SIDEBAR - PUSH MODE
3885
+ ============================================ */
3886
+
3887
+ /* Content wrapper when sidebar pushes it (left position) */
3888
+ .sidebar-push-active {
3889
+ margin-left: var(--sidebar-push-width, 250px);
3890
+ transition: margin-left var(--dm-transition-normal, 0.3s) ease;
3891
+ }
3892
+
3893
+ /* Content wrapper when sidebar pushes it (right position) */
3894
+ .sidebar-push-active-right {
3895
+ margin-right: var(--sidebar-push-width, 250px);
3896
+ margin-left: 0;
3897
+ transition: margin-right var(--dm-transition-normal, 0.3s) ease;
3898
+ }
3899
+
3900
+ /* Mobile: Allow custom push width for mobile */
3901
+ @media (max-width: 768px) {
3902
+ .sidebar-push-active {
3903
+ margin-left: var(--sidebar-push-width-mobile, var(--sidebar-push-width, 250px));
3904
+ }
3905
+
3906
+ .sidebar-push-active-right {
3907
+ margin-right: var(--sidebar-push-width-mobile, var(--sidebar-push-width, 250px));
3908
+ }
3909
+ }
3624
3910
 
3625
3911
 
3626
3912
  /* ============================================
@@ -3655,20 +3941,20 @@ code {
3655
3941
  z-index: 100;
3656
3942
  }
3657
3943
 
3658
- /* Container */
3944
+ /* Container - Mobile Default */
3659
3945
  .footer-container {
3660
3946
  max-width: var(--dm-container-lg, 1200px);
3661
3947
  margin: 0 auto;
3662
- padding: var(--dm-space-6, 1.5rem) var(--dm-space-4, 1rem);
3948
+ padding: var(--dm-space-4, 1rem); /* Mobile: compact padding */
3663
3949
  }
3664
3950
 
3665
- /* ========== Simple Layout ========== */
3951
+ /* ========== Simple Layout - Mobile Default ========== */
3666
3952
 
3667
3953
  .footer-simple .footer-simple-content {
3668
3954
  display: flex;
3669
3955
  flex-wrap: wrap;
3670
- align-items: center;
3671
- justify-content: space-between;
3956
+ flex-direction: column; /* Mobile: vertical stacking */
3957
+ align-items: flex-start; /* Mobile: left-aligned */
3672
3958
  gap: var(--dm-space-4, 1rem);
3673
3959
  }
3674
3960
 
@@ -3699,8 +3985,9 @@ code {
3699
3985
  .footer-nav {
3700
3986
  display: flex;
3701
3987
  flex-wrap: wrap;
3702
- gap: var(--dm-space-4, 1rem);
3703
- align-items: center;
3988
+ flex-direction: column; /* Mobile: vertical nav */
3989
+ align-items: flex-start; /* Mobile: left-aligned */
3990
+ gap: var(--dm-space-2, 0.5rem); /* Mobile: compact spacing */
3704
3991
  }
3705
3992
 
3706
3993
  .footer-link {
@@ -3747,12 +4034,12 @@ code {
3747
4034
  color: var(--dm-text-muted, #6c757d);
3748
4035
  }
3749
4036
 
3750
- /* ========== Columns Layout ========== */
4037
+ /* ========== Columns Layout - Mobile Default ========== */
3751
4038
 
3752
4039
  .footer-columns .footer-columns-content {
3753
4040
  display: grid;
3754
- grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
3755
- gap: var(--dm-space-6, 1.5rem);
4041
+ grid-template-columns: 1fr; /* Mobile: single column */
4042
+ gap: var(--dm-space-4, 1rem); /* Mobile: compact spacing */
3756
4043
  padding-bottom: var(--dm-space-4, 1rem);
3757
4044
  margin-bottom: var(--dm-space-4, 1rem);
3758
4045
  border-bottom: 1px solid var(--dm-border, #dee2e6);
@@ -3778,6 +4065,15 @@ code {
3778
4065
  line-height: 1.6;
3779
4066
  }
3780
4067
 
4068
+ .footer-column-brand .footer-brand-description {
4069
+ display: block;
4070
+ margin: var(--dm-space-2, 0.5rem) 0 0;
4071
+ color: var(--dm-text-muted, #6c757d);
4072
+ font-size: var(--dm-font-size-sm, 0.875rem);
4073
+ line-height: 1.5;
4074
+ opacity: 0.8;
4075
+ }
4076
+
3781
4077
  .footer-column-title {
3782
4078
  margin: 0 0 var(--dm-space-3, 0.75rem);
3783
4079
  font-size: var(--dm-font-size-base, 1rem);
@@ -3810,19 +4106,23 @@ code {
3810
4106
  .footer-columns .footer-bottom {
3811
4107
  display: flex;
3812
4108
  flex-wrap: wrap;
3813
- align-items: center;
3814
- justify-content: space-between;
4109
+ flex-direction: column; /* Mobile: vertical stacking */
4110
+ align-items: flex-start; /* Mobile: left-aligned */
3815
4111
  gap: var(--dm-space-4, 1rem);
3816
4112
  }
3817
4113
 
3818
4114
  .footer-columns .footer-copyright {
3819
- width: auto;
4115
+ width: 100%; /* Mobile: full width */
3820
4116
  padding: 0;
3821
4117
  margin: 0;
3822
4118
  border: none;
3823
4119
  text-align: left;
3824
4120
  }
3825
4121
 
4122
+ .footer-social {
4123
+ width: 100%; /* Mobile: full width */
4124
+ }
4125
+
3826
4126
  /* ========== Minimal Layout ========== */
3827
4127
 
3828
4128
  .footer-minimal .footer-minimal-content {
@@ -3859,6 +4159,10 @@ code {
3859
4159
  color: var(--dm-white, #fff);
3860
4160
  }
3861
4161
 
4162
+ .footer-dark .footer-brand-description {
4163
+ color: var(--dm-gray-300, #dee2e6);
4164
+ }
4165
+
3862
4166
  .footer-dark .footer-link {
3863
4167
  color: var(--dm-gray-400, #adb5bd);
3864
4168
  }
@@ -3909,41 +4213,50 @@ code {
3909
4213
  border-color: transparent;
3910
4214
  }
3911
4215
 
3912
- /* ========== Responsive ========== */
4216
+ /* ============================================
4217
+ FOOTER - DESKTOP ENHANCEMENTS
4218
+ ============================================ */
3913
4219
 
3914
- @media (max-width: 768px) {
4220
+ /* Desktop (≥769px) */
4221
+ @media (min-width: 769px) {
4222
+ /* Desktop: More generous padding */
3915
4223
  .footer-container {
3916
- padding: var(--dm-space-4, 1rem);
4224
+ padding: var(--dm-space-6, 1.5rem) var(--dm-space-4, 1rem);
3917
4225
  }
3918
4226
 
4227
+ /* Desktop: Horizontal simple layout */
3919
4228
  .footer-simple .footer-simple-content {
3920
- flex-direction: column;
3921
- align-items: flex-start;
4229
+ flex-direction: row;
4230
+ align-items: center;
4231
+ justify-content: space-between;
3922
4232
  }
3923
4233
 
4234
+ /* Desktop: Horizontal navigation */
3924
4235
  .footer-nav {
3925
- flex-direction: column;
3926
- align-items: flex-start;
3927
- gap: var(--dm-space-2, 0.5rem);
4236
+ flex-direction: row;
4237
+ align-items: center;
4238
+ gap: var(--dm-space-4, 1rem);
3928
4239
  }
3929
4240
 
4241
+ /* Desktop: Multi-column grid */
3930
4242
  .footer-columns .footer-columns-content {
3931
- grid-template-columns: 1fr;
3932
- gap: var(--dm-space-4, 1rem);
4243
+ grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
4244
+ gap: var(--dm-space-6, 1.5rem);
3933
4245
  }
3934
4246
 
4247
+ /* Desktop: Horizontal bottom section */
3935
4248
  .footer-columns .footer-bottom {
3936
- flex-direction: column;
3937
- align-items: flex-start;
4249
+ flex-direction: row;
4250
+ align-items: center;
4251
+ justify-content: space-between;
3938
4252
  }
3939
4253
 
3940
4254
  .footer-columns .footer-copyright {
3941
- width: 100%;
3942
- text-align: left;
4255
+ width: auto;
3943
4256
  }
3944
4257
 
3945
4258
  .footer-social {
3946
- width: 100%;
4259
+ width: auto;
3947
4260
  }
3948
4261
  }
3949
4262
  /* ============================================
@@ -4229,7 +4542,7 @@ code {
4229
4542
 
4230
4543
  /* Timer display */
4231
4544
  .dm-timer-display {
4232
- font-size: 2.5rem;
4545
+ font-size: 2rem; /* Mobile default */
4233
4546
  font-weight: 600;
4234
4547
  font-family: 'Courier New', monospace;
4235
4548
  color: var(--dm-slate-900);
@@ -4331,16 +4644,18 @@ code {
4331
4644
  display: none !important;
4332
4645
  }
4333
4646
 
4334
- /* Responsive timer styles */
4335
- @media (max-width: 576px) {
4647
+ /* Mobile-first: Timer base styles are already mobile-optimized above */
4648
+
4649
+ /* Desktop (≥577px) - Timer enhancements */
4650
+ @media (min-width: 577px) {
4336
4651
  .dm-timer-display {
4337
- font-size: 2rem;
4652
+ font-size: 3rem; /* Larger on desktop */
4338
4653
  }
4339
4654
 
4340
4655
  .dm-timer-button {
4341
- padding: 0.375rem 0.75rem;
4342
- font-size: 0.8125rem;
4343
- min-width: 70px;
4656
+ padding: 0.5rem 1rem;
4657
+ font-size: 0.875rem;
4658
+ min-width: 80px;
4344
4659
  }
4345
4660
  }
4346
4661
 
@@ -4607,14 +4922,14 @@ code {
4607
4922
 
4608
4923
  .dm-back-to-top {
4609
4924
  position: fixed;
4610
- bottom: 2rem;
4611
- right: 2rem;
4925
+ bottom: 1rem; /* Mobile default: compact positioning */
4926
+ right: 1rem;
4612
4927
  z-index: 1000;
4613
4928
  display: flex;
4614
4929
  align-items: center;
4615
4930
  justify-content: center;
4616
- width: 3rem;
4617
- height: 3rem;
4931
+ width: 2.5rem; /* Mobile default: smaller button */
4932
+ height: 2.5rem;
4618
4933
  padding: 0;
4619
4934
  background-color: var(--dm-primary);
4620
4935
  color: var(--dm-white);
@@ -4648,12 +4963,13 @@ code {
4648
4963
  box-shadow: 0 0 0 3px var(--dm-focus-ring);
4649
4964
  }
4650
4965
 
4651
- @media (max-width: 576px) {
4966
+ /* Desktop (≥577px) - Back to Top enhancements */
4967
+ @media (min-width: 577px) {
4652
4968
  .dm-back-to-top {
4653
- bottom: 1rem;
4654
- right: 1rem;
4655
- width: 2.5rem;
4656
- height: 2.5rem;
4969
+ bottom: 1.5rem; /* More spacing on desktop */
4970
+ right: 1.5rem;
4971
+ width: 3rem; /* Larger button on desktop */
4972
+ height: 3rem;
4657
4973
  }
4658
4974
  }
4659
4975
 
@@ -5482,41 +5798,48 @@ code {
5482
5798
  /* Default styles already applied above */
5483
5799
  }
5484
5800
 
5485
- /* Centered Layout */
5801
+ /* Centered Layout - Mobile default: left-aligned */
5486
5802
  .dm-timeline-centered::before {
5487
5803
  content: '';
5488
5804
  position: absolute;
5489
- left: 50%;
5805
+ left: 30px; /* Mobile default: left-aligned line */
5490
5806
  top: 0;
5491
5807
  bottom: 0;
5492
5808
  width: 2px;
5493
5809
  background: var(--dm-gray-300);
5494
- transform: translateX(-50%);
5810
+ transform: none;
5495
5811
  }
5496
5812
 
5497
5813
  .dm-timeline-centered .dm-timeline-item {
5498
- width: 50%;
5499
- padding-right: var(--dm-space-8);
5500
- justify-content: flex-end;
5814
+ width: 100%; /* Mobile default: full width */
5815
+ left: 0;
5816
+ padding-left: var(--dm-space-16); /* Mobile: space for left line */
5817
+ padding-right: 0;
5818
+ justify-content: flex-start;
5501
5819
  }
5502
5820
 
5503
5821
  .dm-timeline-centered .dm-timeline-item:nth-child(even) {
5504
- left: 50%;
5505
- padding-left: var(--dm-space-8);
5822
+ width: 100%; /* Mobile: same as odd items */
5823
+ left: 0;
5824
+ padding-left: var(--dm-space-16);
5506
5825
  padding-right: 0;
5507
5826
  justify-content: flex-start;
5508
5827
  }
5509
5828
 
5510
5829
  .dm-timeline-centered .dm-timeline-year {
5511
- order: 2;
5512
- margin-left: var(--dm-space-6);
5513
- margin-right: 0;
5830
+ order: 0; /* Mobile: year badge on left */
5831
+ margin-right: var(--dm-space-6);
5832
+ margin-left: 0;
5833
+ position: absolute;
5834
+ left: 0;
5514
5835
  }
5515
5836
 
5516
5837
  .dm-timeline-centered .dm-timeline-item:nth-child(even) .dm-timeline-year {
5517
- order: 0;
5518
- margin-left: 0;
5838
+ order: 0; /* Mobile: same as odd items */
5519
5839
  margin-right: var(--dm-space-6);
5840
+ margin-left: 0;
5841
+ position: absolute;
5842
+ left: 0;
5520
5843
  }
5521
5844
 
5522
5845
  /* Horizontal Layout */
@@ -5564,33 +5887,34 @@ code {
5564
5887
  border-color: var(--dm-slate-200);
5565
5888
  }
5566
5889
 
5567
- /* Responsive Design */
5568
- @media (max-width: 768px) {
5569
- .dm-timeline-centered {
5570
- /* Switch to vertical layout on mobile */
5890
+ /* Desktop (≥769px) - Timeline/Progression centered enhancements */
5891
+ @media (min-width: 769px) {
5892
+ .dm-timeline-centered::before {
5893
+ left: 50%; /* Center line on desktop */
5894
+ transform: translateX(-50%);
5571
5895
  }
5572
5896
 
5573
- .dm-timeline-centered::before {
5574
- left: 30px;
5575
- transform: none;
5897
+ .dm-timeline-centered .dm-timeline-item {
5898
+ width: 50%; /* Half width for alternating layout */
5899
+ left: 0;
5900
+ padding-left: 0;
5901
+ padding-right: var(--dm-space-8);
5902
+ justify-content: flex-end;
5576
5903
  }
5577
5904
 
5578
- .dm-timeline-centered .dm-timeline-item,
5579
5905
  .dm-timeline-centered .dm-timeline-item:nth-child(even) {
5580
- width: 100%;
5581
- left: 0;
5582
- padding-left: var(--dm-space-16);
5906
+ left: 50%;
5907
+ padding-left: var(--dm-space-8);
5583
5908
  padding-right: 0;
5584
5909
  justify-content: flex-start;
5585
5910
  }
5586
5911
 
5587
- .dm-timeline-centered .dm-timeline-year,
5588
- .dm-timeline-centered .dm-timeline-item:nth-child(even) .dm-timeline-year {
5589
- order: 0;
5590
- margin-right: var(--dm-space-6);
5591
- margin-left: 0;
5592
- position: absolute;
5593
- left: 0;
5912
+ .dm-timeline-centered .dm-timeline-year {
5913
+ order: 1;
5914
+ margin-right: 0;
5915
+ margin-left: var(--dm-space-6);
5916
+ position: relative;
5917
+ left: auto;
5594
5918
  width: 80px;
5595
5919
  }
5596
5920
 
@@ -5636,6 +5960,385 @@ code {
5636
5960
  border-color: var(--dm-slate-600);
5637
5961
  }
5638
5962
 
5963
+ /* ==============================================
5964
+ Progression Component (Timeline + Roadmap)
5965
+ ============================================== */
5966
+
5967
+ /* Base Progression styles */
5968
+ .dm-progression {
5969
+ width: 100%;
5970
+ position: relative;
5971
+ }
5972
+
5973
+ .dm-progression-item {
5974
+ display: flex;
5975
+ gap: var(--dm-space-4);
5976
+ position: relative;
5977
+ margin-bottom: var(--dm-space-6);
5978
+ }
5979
+
5980
+ .dm-progression-marker {
5981
+ flex-shrink: 0;
5982
+ display: flex;
5983
+ align-items: center;
5984
+ justify-content: center;
5985
+ font-weight: 600;
5986
+ font-size: var(--dm-font-size-sm);
5987
+ z-index: 2;
5988
+ }
5989
+
5990
+ .dm-progression-content {
5991
+ flex-grow: 1;
5992
+ background: var(--dm-surface, #fff);
5993
+ border: 1px solid var(--dm-border-color, #e0e0e0);
5994
+ border-radius: var(--dm-radius-md);
5995
+ padding: var(--dm-space-4);
5996
+ box-shadow: 0 2px 4px rgba(0, 0, 0, 0.06);
5997
+ transition: all 0.2s ease;
5998
+ }
5999
+
6000
+ .dm-progression-title {
6001
+ margin: 0 0 var(--dm-space-2);
6002
+ font-size: var(--dm-font-size-lg);
6003
+ font-weight: 600;
6004
+ color: var(--dm-text-primary);
6005
+ }
6006
+
6007
+ .dm-progression-description {
6008
+ margin: 0;
6009
+ font-size: var(--dm-font-size-base);
6010
+ color: var(--dm-text-secondary);
6011
+ line-height: 1.6;
6012
+ }
6013
+
6014
+ /* Vertical layout (default) */
6015
+ .dm-progression-vertical .dm-progression-item::before {
6016
+ content: '';
6017
+ position: absolute;
6018
+ left: 2rem;
6019
+ top: 3rem;
6020
+ bottom: -1.5rem;
6021
+ width: 2px;
6022
+ background: var(--dm-border-color, #e0e0e0);
6023
+ z-index: 1;
6024
+ }
6025
+
6026
+ .dm-progression-vertical .dm-progression-item:last-child::before {
6027
+ display: none;
6028
+ }
6029
+
6030
+ /* Centered layout */
6031
+ .dm-progression-centered {
6032
+ max-width: 1200px;
6033
+ margin: 0 auto;
6034
+ }
6035
+
6036
+ .dm-progression-centered .dm-progression-item {
6037
+ width: 100%;
6038
+ }
6039
+
6040
+ .dm-progression-centered .dm-progression-item:nth-child(odd) {
6041
+ flex-direction: row;
6042
+ }
6043
+
6044
+ .dm-progression-centered .dm-progression-item:nth-child(even) {
6045
+ flex-direction: row-reverse;
6046
+ }
6047
+
6048
+ /* Horizontal layout */
6049
+ .dm-progression-horizontal {
6050
+ display: flex;
6051
+ flex-direction: column; /* Mobile default: vertical stacking */
6052
+ overflow-x: auto;
6053
+ padding-bottom: var(--dm-space-4);
6054
+ }
6055
+
6056
+ .dm-progression-horizontal .dm-progression-item {
6057
+ flex-direction: column;
6058
+ min-width: 100%; /* Mobile default: full width stacking */
6059
+ margin-right: 0;
6060
+ margin-bottom: var(--dm-space-4);
6061
+ }
6062
+
6063
+ /* Progress bar (Roadmap mode) */
6064
+ .dm-progression-progress {
6065
+ margin-bottom: var(--dm-space-6);
6066
+ padding: var(--dm-space-4);
6067
+ background: var(--dm-surface, #fff);
6068
+ border-radius: var(--dm-radius-md);
6069
+ border: 1px solid var(--dm-border-color, #e0e0e0);
6070
+ }
6071
+
6072
+ .dm-progression-progress-bar {
6073
+ height: 8px;
6074
+ background: linear-gradient(90deg, var(--dm-success, #22c55e), var(--dm-primary, #3b82f6));
6075
+ border-radius: var(--dm-radius-full);
6076
+ transition: width 0.6s ease;
6077
+ margin-bottom: var(--dm-space-2);
6078
+ }
6079
+
6080
+ .dm-progression-progress-text {
6081
+ font-size: var(--dm-font-size-sm);
6082
+ color: var(--dm-text-secondary);
6083
+ font-weight: 500;
6084
+ }
6085
+
6086
+ /* Roadmap-specific styles */
6087
+ .dm-progression-status-marker {
6088
+ width: 40px;
6089
+ height: 40px;
6090
+ border-radius: 50%;
6091
+ position: relative;
6092
+ }
6093
+
6094
+ .dm-progression-status-dot {
6095
+ width: 16px;
6096
+ height: 16px;
6097
+ border-radius: 50%;
6098
+ display: block;
6099
+ }
6100
+
6101
+ .dm-progression-status-icon {
6102
+ font-size: 20px;
6103
+ }
6104
+
6105
+ /* Status colours */
6106
+ .dm-progression-status-planned .dm-progression-status-marker {
6107
+ background: var(--dm-gray-100);
6108
+ border: 2px solid var(--dm-gray-400);
6109
+ }
6110
+
6111
+ .dm-progression-status-planned .dm-progression-status-dot {
6112
+ background: var(--dm-gray-400);
6113
+ }
6114
+
6115
+ .dm-progression-status-in-progress .dm-progression-status-marker {
6116
+ background: var(--dm-primary-light, rgba(59, 130, 246, 0.1));
6117
+ border: 2px solid var(--dm-primary, #3b82f6);
6118
+ position: relative;
6119
+ }
6120
+
6121
+ .dm-progression-status-in-progress .dm-progression-status-marker::after {
6122
+ content: '';
6123
+ position: absolute;
6124
+ inset: -4px;
6125
+ border: 2px solid var(--dm-primary, #3b82f6);
6126
+ border-radius: 50%;
6127
+ animation: progressPulse 2s infinite;
6128
+ }
6129
+
6130
+ @keyframes progressPulse {
6131
+ 0%, 100% {
6132
+ opacity: 0.6;
6133
+ transform: scale(1);
6134
+ }
6135
+ 50% {
6136
+ opacity: 0;
6137
+ transform: scale(1.3);
6138
+ }
6139
+ }
6140
+
6141
+ .dm-progression-status-in-progress .dm-progression-status-dot {
6142
+ background: var(--dm-primary, #3b82f6);
6143
+ }
6144
+
6145
+ .dm-progression-status-completed .dm-progression-status-marker {
6146
+ background: var(--dm-success-light, rgba(34, 197, 94, 0.1));
6147
+ border: 2px solid var(--dm-success, #22c55e);
6148
+ }
6149
+
6150
+ .dm-progression-status-completed .dm-progression-status-dot {
6151
+ background: var(--dm-success, #22c55e);
6152
+ }
6153
+
6154
+ .dm-progression-status-blocked .dm-progression-status-marker {
6155
+ background: var(--dm-danger-light, rgba(239, 68, 68, 0.1));
6156
+ border: 2px solid var(--dm-danger, #ef4444);
6157
+ }
6158
+
6159
+ .dm-progression-status-blocked .dm-progression-status-dot {
6160
+ background: var(--dm-danger, #ef4444);
6161
+ }
6162
+
6163
+ .dm-progression-status-cancelled .dm-progression-status-marker {
6164
+ background: var(--dm-gray-100);
6165
+ border: 2px solid var(--dm-gray-500);
6166
+ opacity: 0.6;
6167
+ }
6168
+
6169
+ .dm-progression-status-cancelled .dm-progression-status-dot {
6170
+ background: var(--dm-gray-500);
6171
+ }
6172
+
6173
+ /* Date/phase display */
6174
+ .dm-progression-date {
6175
+ font-size: var(--dm-font-size-sm);
6176
+ color: var(--dm-text-tertiary);
6177
+ font-weight: 500;
6178
+ margin-bottom: var(--dm-space-2);
6179
+ text-transform: uppercase;
6180
+ letter-spacing: 0.05em;
6181
+ }
6182
+
6183
+ /* Item progress bar */
6184
+ .dm-progression-item-progress {
6185
+ height: 6px;
6186
+ background: var(--dm-gray-200);
6187
+ border-radius: var(--dm-radius-full);
6188
+ overflow: hidden;
6189
+ margin-top: var(--dm-space-3);
6190
+ }
6191
+
6192
+ .dm-progression-item-progress-bar {
6193
+ height: 100%;
6194
+ background: var(--dm-primary, #3b82f6);
6195
+ border-radius: var(--dm-radius-full);
6196
+ transition: width 0.3s ease;
6197
+ }
6198
+
6199
+ .dm-progression-item-progress-text {
6200
+ font-size: var(--dm-font-size-xs);
6201
+ color: var(--dm-text-tertiary);
6202
+ margin-top: var(--dm-space-1);
6203
+ }
6204
+
6205
+ /* Priority badges */
6206
+ .dm-progression-priority {
6207
+ display: inline-flex;
6208
+ align-items: center;
6209
+ padding: 2px 8px;
6210
+ border-radius: var(--dm-radius-full);
6211
+ font-size: var(--dm-font-size-xs);
6212
+ font-weight: 600;
6213
+ text-transform: uppercase;
6214
+ letter-spacing: 0.05em;
6215
+ margin-top: var(--dm-space-2);
6216
+ }
6217
+
6218
+ .dm-progression-priority-low {
6219
+ background: var(--dm-gray-200);
6220
+ color: var(--dm-gray-700);
6221
+ }
6222
+
6223
+ .dm-progression-priority-medium {
6224
+ background: var(--dm-info-light, rgba(59, 130, 246, 0.1));
6225
+ color: var(--dm-info, #3b82f6);
6226
+ }
6227
+
6228
+ .dm-progression-priority-high {
6229
+ background: var(--dm-warning-light, rgba(245, 158, 11, 0.1));
6230
+ color: var(--dm-warning, #f59e0b);
6231
+ }
6232
+
6233
+ .dm-progression-priority-critical {
6234
+ background: var(--dm-danger-light, rgba(239, 68, 68, 0.1));
6235
+ color: var(--dm-danger, #ef4444);
6236
+ }
6237
+
6238
+ /* Tags */
6239
+ .dm-progression-tags {
6240
+ display: flex;
6241
+ flex-wrap: wrap;
6242
+ gap: var(--dm-space-2);
6243
+ margin-top: var(--dm-space-3);
6244
+ }
6245
+
6246
+ .dm-progression-tag {
6247
+ background: var(--dm-primary-light, rgba(59, 130, 246, 0.1));
6248
+ color: var(--dm-primary, #3b82f6);
6249
+ padding: 2px 8px;
6250
+ border-radius: var(--dm-radius-sm);
6251
+ font-size: var(--dm-font-size-xs);
6252
+ font-weight: 500;
6253
+ }
6254
+
6255
+ /* Assignee */
6256
+ .dm-progression-assignee {
6257
+ font-size: var(--dm-font-size-sm);
6258
+ color: var(--dm-text-tertiary);
6259
+ margin-top: var(--dm-space-2);
6260
+ font-style: italic;
6261
+ }
6262
+
6263
+ /* Current item highlight */
6264
+ .dm-progression-current .dm-progression-content {
6265
+ border-color: var(--dm-primary, #3b82f6);
6266
+ box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.1);
6267
+ }
6268
+
6269
+ /* Themes */
6270
+ .dm-progression-minimal .dm-progression-content {
6271
+ background: var(--dm-gray-50);
6272
+ border-color: transparent;
6273
+ box-shadow: none;
6274
+ }
6275
+
6276
+ .dm-progression-corporate .dm-progression-content {
6277
+ background: var(--dm-slate-50);
6278
+ border-color: var(--dm-slate-200);
6279
+ }
6280
+
6281
+ .dm-progression-modern .dm-progression-content {
6282
+ background: linear-gradient(135deg, var(--dm-surface, #fff) 0%, var(--dm-gray-50) 100%);
6283
+ border-color: var(--dm-border-color, #e0e0e0);
6284
+ box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05);
6285
+ }
6286
+
6287
+ /* Dark theme support */
6288
+ [data-theme="dark"] .dm-progression-content {
6289
+ background: var(--dm-slate-800);
6290
+ border-color: var(--dm-slate-700);
6291
+ color: var(--dm-slate-100);
6292
+ }
6293
+
6294
+ [data-theme="dark"] .dm-progression-title {
6295
+ color: var(--dm-slate-100);
6296
+ }
6297
+
6298
+ [data-theme="dark"] .dm-progression-description {
6299
+ color: var(--dm-slate-300);
6300
+ }
6301
+
6302
+ [data-theme="dark"] .dm-progression-minimal .dm-progression-content {
6303
+ background: var(--dm-slate-900);
6304
+ border-color: transparent;
6305
+ }
6306
+
6307
+ [data-theme="dark"] .dm-progression-corporate .dm-progression-content {
6308
+ background: var(--dm-slate-800);
6309
+ border-color: var(--dm-slate-600);
6310
+ }
6311
+
6312
+ [data-theme="dark"] .dm-progression-modern .dm-progression-content {
6313
+ background: linear-gradient(135deg, var(--dm-slate-800) 0%, var(--dm-slate-900) 100%);
6314
+ }
6315
+
6316
+ [data-theme="dark"] .dm-progression-item-progress {
6317
+ background: var(--dm-slate-700);
6318
+ }
6319
+
6320
+ [data-theme="dark"] .dm-progression-progress {
6321
+ background: var(--dm-slate-800);
6322
+ border-color: var(--dm-slate-700);
6323
+ }
6324
+
6325
+ /* Desktop (≥769px) - Progression enhancements */
6326
+ @media (min-width: 769px) {
6327
+ .dm-progression-centered .dm-progression-item:nth-child(even) {
6328
+ flex-direction: row-reverse; /* Alternate direction on desktop */
6329
+ }
6330
+
6331
+ .dm-progression-horizontal {
6332
+ flex-direction: row; /* Horizontal on desktop */
6333
+ }
6334
+
6335
+ .dm-progression-horizontal .dm-progression-item {
6336
+ min-width: auto;
6337
+ margin-right: var(--dm-space-6);
6338
+ margin-bottom: 0;
6339
+ }
6340
+ }
6341
+
5639
6342
  /* ==============================================
5640
6343
  Cookie Consent Component
5641
6344
  ============================================== */
@@ -5662,14 +6365,16 @@ code {
5662
6365
 
5663
6366
  .dm-cookie-consent-bottom-left {
5664
6367
  bottom: 20px;
5665
- left: 20px;
5666
- max-width: 400px;
6368
+ left: 10px; /* Mobile default: minimal margins */
6369
+ right: 10px; /* Mobile: full width minus margins */
6370
+ max-width: none; /* Mobile: no width constraint */
5667
6371
  }
5668
6372
 
5669
6373
  .dm-cookie-consent-bottom-right {
5670
6374
  bottom: 20px;
5671
- right: 20px;
5672
- max-width: 400px;
6375
+ left: 10px; /* Mobile default: minimal margins */
6376
+ right: 10px; /* Mobile: full width minus margins */
6377
+ max-width: none; /* Mobile: no width constraint */
5673
6378
  }
5674
6379
 
5675
6380
  .dm-cookie-consent-center-modal {
@@ -5683,8 +6388,8 @@ code {
5683
6388
  /* Layout variants */
5684
6389
  .dm-cookie-consent-bar .dm-cookie-consent-content {
5685
6390
  display: flex;
5686
- align-items: center;
5687
- justify-content: space-between;
6391
+ flex-direction: column; /* Mobile default: vertical stacking */
6392
+ align-items: stretch;
5688
6393
  padding: 16px 20px;
5689
6394
  gap: 20px;
5690
6395
  }
@@ -5725,7 +6430,8 @@ code {
5725
6430
  /* Message styles */
5726
6431
  .dm-cookie-consent-message {
5727
6432
  flex: 1;
5728
- margin-right: 20px;
6433
+ margin-right: 0; /* Mobile default: no right margin */
6434
+ margin-bottom: 16px; /* Mobile default: bottom spacing */
5729
6435
  }
5730
6436
 
5731
6437
  .dm-cookie-consent-message a {
@@ -5740,6 +6446,7 @@ code {
5740
6446
  /* Button styles */
5741
6447
  .dm-cookie-consent-buttons {
5742
6448
  display: flex;
6449
+ flex-direction: column; /* Mobile default: vertical buttons */
5743
6450
  gap: 12px;
5744
6451
  flex-shrink: 0;
5745
6452
  }
@@ -5905,26 +6612,31 @@ code {
5905
6612
  gap: 12px;
5906
6613
  }
5907
6614
 
5908
- /* Responsive */
5909
- @media (max-width: 640px) {
6615
+ /* Desktop (≥641px) - Cookie Consent enhancements */
6616
+ @media (min-width: 641px) {
5910
6617
  .dm-cookie-consent-bar .dm-cookie-consent-content {
5911
- flex-direction: column;
5912
- align-items: stretch;
6618
+ flex-direction: row; /* Horizontal on desktop */
6619
+ align-items: center;
5913
6620
  }
5914
6621
 
5915
6622
  .dm-cookie-consent-message {
5916
- margin-right: 0;
5917
- margin-bottom: 16px;
6623
+ margin-right: 24px;
6624
+ margin-bottom: 0;
5918
6625
  }
5919
6626
 
5920
6627
  .dm-cookie-consent-buttons {
5921
- flex-direction: column;
6628
+ flex-direction: row; /* Horizontal buttons on desktop */
6629
+ }
6630
+
6631
+ .dm-cookie-consent-bottom-left {
6632
+ left: 20px;
6633
+ right: auto;
6634
+ max-width: 600px;
5922
6635
  }
5923
6636
 
5924
- .dm-cookie-consent-bottom-left,
5925
6637
  .dm-cookie-consent-bottom-right {
5926
- left: 10px;
5927
- right: 10px;
5928
- max-width: none;
6638
+ left: auto;
6639
+ right: 20px;
6640
+ max-width: 600px;
5929
6641
  }
5930
6642
  }