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,8 +1,8 @@
1
1
  /*!
2
- * Domma Full CSS Bundle v0.7.6-alpha
2
+ * Domma Full CSS Bundle v0.9.2-alpha
3
3
  * Dynamic Object Manipulation & Modeling API
4
4
  * (c) 2026 Darryl Waterhouse & DCBW-IT
5
- * Built: 2026-01-09T13:59:22.229Z
5
+ * Built: 2026-01-11T18:01:20.503Z
6
6
  */
7
7
 
8
8
  /* ============================================
@@ -230,11 +230,11 @@
230
230
  ============================================ */
231
231
 
232
232
  /*!
233
- * Domma Core CSS v0.7.6-alpha
233
+ * Domma Core CSS v0.9.2-alpha
234
234
  * Dynamic Object Manipulation & Modeling API
235
235
  * (c) 2026 Darryl Waterhouse & DCBW-IT
236
- * Built: 2026-01-09T13:59:21.897Z
237
- * Commit: 5527c59
236
+ * Built: 2026-01-11T18:01:20.188Z
237
+ * Commit: 136342c
238
238
  */
239
239
 
240
240
  /**
@@ -4235,11 +4235,11 @@ body.dm-cloaked.dm-ready {
4235
4235
  ============================================ */
4236
4236
 
4237
4237
  /*!
4238
- * Domma Grid CSS v0.7.6-alpha
4238
+ * Domma Grid CSS v0.9.2-alpha
4239
4239
  * Dynamic Object Manipulation & Modeling API
4240
4240
  * (c) 2026 Darryl Waterhouse & DCBW-IT
4241
- * Built: 2026-01-09T13:59:21.905Z
4242
- * Commit: 5527c59
4241
+ * Built: 2026-01-11T18:01:20.195Z
4242
+ * Commit: 136342c
4243
4243
  */
4244
4244
 
4245
4245
  /**
@@ -4836,11 +4836,11 @@ body.dm-cloaked.dm-ready {
4836
4836
  ============================================ */
4837
4837
 
4838
4838
  /*!
4839
- * Domma Elements CSS v0.7.6-alpha
4839
+ * Domma Elements CSS v0.9.2-alpha
4840
4840
  * Dynamic Object Manipulation & Modeling API
4841
4841
  * (c) 2026 Darryl Waterhouse & DCBW-IT
4842
- * Built: 2026-01-09T13:59:21.912Z
4843
- * Commit: 5527c59
4842
+ * Built: 2026-01-11T18:01:20.203Z
4843
+ * Commit: 136342c
4844
4844
  */
4845
4845
 
4846
4846
  /**
@@ -6292,11 +6292,18 @@ code {
6292
6292
  NAVBAR
6293
6293
  ============================================ */
6294
6294
 
6295
+ /* ============================================
6296
+ NAVBAR - MOBILE FIRST
6297
+ ============================================ */
6298
+
6299
+ /* Base navbar (mobile default) */
6295
6300
  .navbar {
6296
6301
  display: flex;
6297
6302
  align-items: center;
6298
6303
  justify-content: space-between;
6299
- padding: var(--dm-space-3) var(--dm-space-6);
6304
+ flex-wrap: wrap;
6305
+ gap: var(--dm-space-3);
6306
+ padding: var(--dm-space-3) var(--dm-space-4);
6300
6307
  padding-right: 6rem; /* Leave space for theme toggle + variant */
6301
6308
  background-color: var(--dm-navbar-bg);
6302
6309
  border-bottom: 1px solid var(--dm-border);
@@ -6342,10 +6349,10 @@ code {
6342
6349
  object-fit: contain;
6343
6350
  }
6344
6351
 
6345
- /* Hamburger Toggle */
6346
-
6352
+ /* Hamburger Toggle (visible on mobile) */
6347
6353
  .navbar-toggle {
6348
- display: none;
6354
+ display: block;
6355
+ order: 2;
6349
6356
  padding: var(--dm-space-2);
6350
6357
  background: transparent;
6351
6358
  border: none;
@@ -6366,31 +6373,97 @@ code {
6366
6373
  display: block;
6367
6374
  }
6368
6375
 
6376
+ /* Hamburger icon - three lines */
6377
+ .navbar-toggle-icon {
6378
+ display: block;
6379
+ width: 22px;
6380
+ height: 2px;
6381
+ background: currentColor;
6382
+ position: relative;
6383
+ transition: background 0.2s ease;
6384
+ }
6385
+
6386
+ .navbar-toggle-icon::before,
6387
+ .navbar-toggle-icon::after {
6388
+ content: '';
6389
+ position: absolute;
6390
+ left: 0;
6391
+ width: 100%;
6392
+ height: 2px;
6393
+ background: currentColor;
6394
+ transition: transform 0.2s ease;
6395
+ }
6396
+
6397
+ .navbar-toggle-icon::before {
6398
+ top: -7px;
6399
+ }
6400
+
6401
+ .navbar-toggle-icon::after {
6402
+ top: 7px;
6403
+ }
6404
+
6405
+ /* Animate to X when expanded */
6406
+ .navbar-toggle[aria-expanded="true"] .navbar-toggle-icon {
6407
+ background: transparent;
6408
+ }
6409
+
6410
+ .navbar-toggle[aria-expanded="true"] .navbar-toggle-icon::before {
6411
+ transform: rotate(45deg);
6412
+ top: 0;
6413
+ }
6414
+
6415
+ .navbar-toggle[aria-expanded="true"] .navbar-toggle-icon::after {
6416
+ transform: rotate(-45deg);
6417
+ top: 0;
6418
+ }
6419
+
6420
+ /* Navbar collapse (mobile: hidden by default) */
6421
+ .navbar-collapse {
6422
+ display: none;
6423
+ width: 100%;
6424
+ order: 3;
6425
+ flex-direction: column;
6426
+ padding-top: var(--dm-space-3);
6427
+ border-top: 1px solid var(--dm-border);
6428
+ }
6429
+
6430
+ .navbar-collapse.show {
6431
+ display: flex;
6432
+ }
6433
+
6434
+ /* Navbar navigation list (mobile: vertical) */
6369
6435
  .navbar-nav {
6370
6436
  display: flex;
6371
- flex-wrap: wrap;
6437
+ flex-direction: column;
6438
+ width: 100%;
6372
6439
  list-style: none;
6373
6440
  margin: 0;
6374
6441
  padding: 0;
6375
- gap: var(--dm-space-1);
6376
- align-items: center;
6442
+ gap: 0;
6443
+ max-height: 60vh;
6444
+ overflow-y: auto;
6445
+ }
6446
+
6447
+ .navbar-nav li {
6448
+ width: 100%;
6377
6449
  }
6378
6450
 
6451
+ /* Navbar links (mobile: full width, larger touch targets) */
6379
6452
  .navbar-link {
6380
6453
  display: block;
6381
- padding: var(--dm-space-2) var(--dm-space-3);
6454
+ padding: var(--dm-space-3) var(--dm-space-4);
6382
6455
  color: var(--dm-navbar-text);
6383
6456
  text-decoration: none;
6384
- border-radius: var(--dm-radius-md);
6457
+ border-radius: 0;
6385
6458
  transition: all var(--dm-transition-fast);
6386
- font-size: var(--dm-font-size-sm);
6459
+ font-size: var(--dm-font-size-base);
6387
6460
  white-space: nowrap;
6388
6461
  }
6389
6462
 
6390
6463
  .navbar-link:hover {
6391
6464
  color: var(--dm-text);
6392
- /*background-color: var(--dm-surface-raised);*/
6393
6465
  background-color: var(--dm-gray-800);
6466
+ border-radius: 0;
6394
6467
  }
6395
6468
 
6396
6469
  .navbar-link.active {
@@ -6399,6 +6472,11 @@ code {
6399
6472
  background-color: color-mix(in srgb, var(--dm-primary) 10%, transparent);
6400
6473
  }
6401
6474
 
6475
+ .nav-version {
6476
+ display: none;
6477
+ color: #eee;
6478
+ }
6479
+
6402
6480
  /* Light navbar variant */
6403
6481
 
6404
6482
  .navbar-light {
@@ -6464,68 +6542,113 @@ code {
6464
6542
  color: var(--dm-white);
6465
6543
  }
6466
6544
 
6467
- /* Responsive navbar - tablet */
6468
- @media (max-width: 1200px) {
6469
- .navbar {
6470
- padding: var(--dm-space-3) var(--dm-space-4);
6471
- padding-right: 6rem;
6472
- }
6545
+ /* Dark navbar collapse border color (mobile) */
6546
+ .navbar-dark .navbar-collapse {
6547
+ border-top-color: var(--dm-gray-700);
6548
+ }
6473
6549
 
6474
- .navbar-link {
6475
- padding: var(--dm-space-1) var(--dm-space-2);
6476
- font-size: var(--dm-font-size-xs);
6477
- }
6550
+ /* Navbar actions - base mobile styles */
6551
+ .navbar-actions {
6552
+ display: flex;
6553
+ align-items: center;
6554
+ gap: var(--dm-space-3);
6478
6555
  }
6479
6556
 
6480
- /* Responsive navbar - mobile */
6481
- @media (max-width: 992px) {
6557
+ /* ============================================
6558
+ NAVBAR - DESKTOP ENHANCEMENTS
6559
+ ============================================ */
6560
+
6561
+ /* Desktop (≥993px) */
6562
+ @media (min-width: 993px) {
6482
6563
  .navbar {
6483
- flex-wrap: wrap;
6484
- gap: var(--dm-space-3);
6564
+ flex-wrap: nowrap;
6565
+ gap: 0;
6566
+ padding: var(--dm-space-3) var(--dm-space-6);
6485
6567
  }
6486
6568
 
6569
+ /* Hide hamburger on desktop */
6487
6570
  .navbar-toggle {
6488
- display: block;
6489
- order: 2;
6571
+ display: none;
6572
+ }
6573
+
6574
+ /* Show navbar collapse on desktop */
6575
+ .navbar-collapse {
6576
+ display: flex;
6577
+ width: auto;
6578
+ flex-direction: row;
6579
+ align-items: center;
6580
+ flex-grow: 1;
6581
+ padding-top: 0;
6582
+ border-top: none;
6490
6583
  }
6491
6584
 
6585
+ /* Horizontal navigation on desktop */
6492
6586
  .navbar-nav {
6493
- display: none;
6494
- width: 100%;
6495
- order: 3;
6496
- flex-direction: column;
6497
- gap: 0;
6498
- padding-top: var(--dm-space-3);
6499
- border-top: 1px solid var(--dm-gray-200);
6500
- max-height: 60vh;
6501
- overflow-y: auto;
6587
+ flex-direction: row;
6588
+ flex: 1;
6589
+ justify-content: center;
6590
+ gap: var(--dm-space-1);
6591
+ align-items: center;
6592
+ max-height: none;
6593
+ overflow-y: visible;
6502
6594
  }
6503
6595
 
6504
- .navbar-dark .navbar-nav {
6505
- border-top-color: var(--dm-gray-800);
6596
+ .navbar-nav li {
6597
+ width: auto;
6506
6598
  }
6507
6599
 
6508
- .navbar-nav.open {
6509
- display: flex;
6600
+ /* Navbar actions - desktop override: push to right */
6601
+ .navbar-actions {
6602
+ margin-left: auto;
6510
6603
  }
6511
6604
 
6512
- .navbar-nav li {
6513
- width: 100%;
6605
+ .navbar-action-link {
6606
+ color: var(--dm-navbar-text, var(--dm-white));
6607
+ text-decoration: none;
6608
+ padding: var(--dm-space-2) var(--dm-space-3);
6609
+ border-radius: var(--dm-radius-md);
6610
+ font-size: var(--dm-font-size-sm);
6611
+ transition: background var(--dm-transition-fast);
6612
+ }
6613
+
6614
+ .navbar-action-link:hover {
6615
+ background: rgba(255, 255, 255, 0.1);
6616
+ text-decoration: none;
6617
+ }
6618
+
6619
+ .navbar-dark .navbar-action-link {
6620
+ color: var(--dm-white);
6621
+ }
6622
+
6623
+ .navbar-light .navbar-action-link {
6624
+ color: var(--dm-text);
6625
+ }
6626
+
6627
+ .navbar-light .navbar-action-link:hover {
6628
+ background: rgba(0, 0, 0, 0.05);
6514
6629
  }
6515
6630
 
6631
+ /* Compact links on desktop */
6516
6632
  .navbar-link {
6517
- padding: var(--dm-space-3) var(--dm-space-4);
6518
- font-size: var(--dm-font-size-base);
6519
- border-radius: 0;
6633
+ padding: var(--dm-space-2) var(--dm-space-3);
6634
+ font-size: var(--dm-font-size-sm);
6635
+ border-radius: var(--dm-radius-md);
6520
6636
  }
6521
6637
 
6522
6638
  .navbar-link:hover {
6523
- border-radius: 0;
6639
+ border-radius: var(--dm-radius-md);
6524
6640
  }
6525
6641
 
6526
6642
  .nav-version {
6527
- display: none;
6528
- color: #eee;
6643
+ display: inline;
6644
+ }
6645
+ }
6646
+
6647
+ /* Large desktop (≥1201px) */
6648
+ @media (min-width: 1201px) {
6649
+ .navbar-link {
6650
+ padding: var(--dm-space-1) var(--dm-space-2);
6651
+ font-size: var(--dm-font-size-xs);
6529
6652
  }
6530
6653
  }
6531
6654
 
@@ -6652,6 +6775,13 @@ code {
6652
6775
  background: var(--dm-hover-bg, rgba(0, 0, 0, 0.05));
6653
6776
  }
6654
6777
 
6778
+ .navbar-dropdown-divider {
6779
+ height: 1px;
6780
+ margin: 0.5rem 0;
6781
+ background: var(--dm-border-color, rgba(0, 0, 0, 0.1));
6782
+ list-style: none;
6783
+ }
6784
+
6655
6785
  /* Dark navbar dropdown styles */
6656
6786
  .navbar-dark .navbar-dropdown-menu {
6657
6787
  background: var(--dm-gray-800);
@@ -6667,6 +6797,10 @@ code {
6667
6797
  color: var(--dm-white);
6668
6798
  }
6669
6799
 
6800
+ .navbar-dark .navbar-dropdown-divider {
6801
+ background: var(--dm-gray-700);
6802
+ }
6803
+
6670
6804
  /* Pill button styles (for Download button) */
6671
6805
  .pill {
6672
6806
  display: inline-block;
@@ -7416,21 +7550,23 @@ code {
7416
7550
 
7417
7551
 
7418
7552
  /* ============================================
7419
- HERO SECTION
7553
+ HERO SECTION - MOBILE FIRST
7420
7554
  ============================================ */
7421
7555
 
7422
- /* Base Hero - Structure Only */
7556
+ /* Base Hero - Mobile Default */
7423
7557
  .hero {
7424
- padding: 4rem 2rem;
7558
+ padding: 3rem 1rem; /* Reduced side padding to minimize whitespace */
7425
7559
  text-align: center;
7426
7560
  position: relative;
7427
7561
  background: var(--dm-surface);
7428
7562
  color: var(--dm-text);
7563
+ width: 100%; /* Ensure full width */
7564
+ box-sizing: border-box; /* Include padding in width calculation */
7429
7565
  }
7430
7566
 
7431
7567
  .hero h1,
7432
7568
  .hero .hero-title {
7433
- font-size: 3rem;
7569
+ font-size: 2rem; /* Mobile-optimized title size */
7434
7570
  font-weight: 700;
7435
7571
  margin-bottom: 1rem;
7436
7572
  line-height: 1.2;
@@ -7438,7 +7574,7 @@ code {
7438
7574
 
7439
7575
  .hero p,
7440
7576
  .hero .hero-subtitle {
7441
- font-size: 1.25rem;
7577
+ font-size: 1rem; /* Mobile-optimized text size */
7442
7578
  max-width: 600px;
7443
7579
  margin: 0 auto 2rem;
7444
7580
  opacity: 0.9;
@@ -7457,32 +7593,33 @@ code {
7457
7593
  flex-wrap: wrap;
7458
7594
  }
7459
7595
 
7460
- /* Hero Size Variants */
7596
+ /* Hero Size Variants - Mobile Default */
7461
7597
  .hero-sm {
7462
- padding: 2rem 1rem;
7598
+ padding: 2rem 0.75rem;
7463
7599
  }
7464
7600
 
7465
7601
  .hero-sm h1,
7466
7602
  .hero-sm .hero-title {
7467
- font-size: 2rem;
7603
+ font-size: 1.75rem;
7468
7604
  }
7469
7605
 
7470
7606
  .hero-sm p,
7471
7607
  .hero-sm .hero-subtitle {
7472
- font-size: 1rem;
7608
+ font-size: 0.875rem;
7473
7609
  }
7474
7610
 
7475
7611
  .hero-lg {
7476
- padding: 6rem 2rem;
7612
+ padding: 4rem 1rem;
7477
7613
  }
7478
7614
 
7479
7615
  .hero-lg h1,
7480
7616
  .hero-lg .hero-title {
7481
- font-size: 4rem;
7617
+ font-size: 2.5rem;
7482
7618
  }
7483
7619
 
7484
7620
  .hero-full {
7485
7621
  min-height: 100vh;
7622
+ min-height: 100dvh; /* Dynamic viewport height for mobile browsers */
7486
7623
  display: flex;
7487
7624
  flex-direction: column;
7488
7625
  justify-content: center;
@@ -7509,20 +7646,48 @@ code {
7509
7646
  color: var(--dm-white);
7510
7647
  }
7511
7648
 
7512
- /* Responsive */
7513
- @media (max-width: 768px) {
7649
+ /* ============================================
7650
+ HERO - DESKTOP ENHANCEMENTS
7651
+ ============================================ */
7652
+
7653
+ /* Desktop (≥769px) */
7654
+ @media (min-width: 769px) {
7655
+ .hero {
7656
+ padding: 4rem 2rem; /* Desktop: more generous padding */
7657
+ }
7658
+
7514
7659
  .hero h1,
7515
7660
  .hero .hero-title {
7516
- font-size: 2rem;
7661
+ font-size: 3rem; /* Desktop: larger title */
7517
7662
  }
7518
7663
 
7519
7664
  .hero p,
7520
7665
  .hero .hero-subtitle {
7666
+ font-size: 1.25rem; /* Desktop: larger text */
7667
+ }
7668
+
7669
+ /* Desktop size variants */
7670
+ .hero-sm {
7671
+ padding: 2rem 1rem;
7672
+ }
7673
+
7674
+ .hero-sm h1,
7675
+ .hero-sm .hero-title {
7676
+ font-size: 2rem;
7677
+ }
7678
+
7679
+ .hero-sm p,
7680
+ .hero-sm .hero-subtitle {
7521
7681
  font-size: 1rem;
7522
7682
  }
7523
7683
 
7524
- .hero {
7525
- padding: 3rem 1.5rem;
7684
+ .hero-lg {
7685
+ padding: 6rem 2rem;
7686
+ }
7687
+
7688
+ .hero-lg h1,
7689
+ .hero-lg .hero-title {
7690
+ font-size: 4rem;
7526
7691
  }
7527
7692
  }
7528
7693
 
@@ -7910,36 +8075,49 @@ code {
7910
8075
 
7911
8076
 
7912
8077
  /* ============================================
7913
- SIDEBAR
8078
+ SIDEBAR - MOBILE FIRST
7914
8079
  ============================================ */
7915
8080
 
7916
- /* Base Sidebar */
8081
+ /* Base Sidebar - Mobile Default */
7917
8082
  .sidebar {
7918
8083
  position: relative;
7919
- width: 250px;
8084
+ width: 100%;
8085
+ max-width: 250px;
7920
8086
  background: var(--dm-surface, #fff);
7921
8087
  border-right: 1px solid var(--dm-border, #dee2e6);
7922
8088
  overflow-y: auto;
7923
8089
  overflow-x: hidden;
7924
- transition: transform 0.3s ease;
8090
+ transition: transform 0.3s ease, width 0.3s ease;
7925
8091
  z-index: 100;
8092
+ --sidebar-width: 250px;
8093
+ --sidebar-collapsed-width: 60px;
7926
8094
  }
7927
8095
 
7928
- /* Fixed positioning */
8096
+ /* Fixed positioning - Mobile: hidden off-screen by default */
7929
8097
  .sidebar-fixed {
7930
8098
  position: fixed;
7931
8099
  top: 0;
7932
8100
  left: 0;
7933
8101
  height: 100vh;
8102
+ height: 100dvh; /* Dynamic viewport height for mobile */
8103
+ transform: translateX(-100%); /* Hidden off-screen on mobile */
8104
+ box-shadow: none;
7934
8105
  }
7935
8106
 
7936
8107
  .sidebar-fixed.sidebar-right {
7937
8108
  left: auto;
7938
8109
  right: 0;
8110
+ transform: translateX(100%); /* Hidden off-screen right */
7939
8111
  border-right: none;
7940
8112
  border-left: 1px solid var(--dm-border, #dee2e6);
7941
8113
  }
7942
8114
 
8115
+ /* Mobile: slide in when open */
8116
+ .sidebar-fixed.open {
8117
+ transform: translateX(0);
8118
+ box-shadow: var(--dm-shadow-xl, 0 10px 40px rgba(0,0,0,0.2));
8119
+ }
8120
+
7943
8121
  /* Position variants */
7944
8122
  .sidebar-left {
7945
8123
  left: 0;
@@ -7977,8 +8155,11 @@ code {
7977
8155
  color: var(--dm-text, #212529);
7978
8156
  }
7979
8157
 
8158
+ /* Toggle button - Visible on mobile by default */
7980
8159
  .sidebar-toggle-btn {
7981
- display: none; /* Shown on mobile */
8160
+ display: flex;
8161
+ align-items: center;
8162
+ justify-content: center;
7982
8163
  flex-shrink: 0;
7983
8164
  width: 32px;
7984
8165
  height: 32px;
@@ -8156,7 +8337,7 @@ code {
8156
8337
  color: var(--dm-text-muted, #6c757d);
8157
8338
  }
8158
8339
 
8159
- /* Overlay (mobile) */
8340
+ /* Overlay - Visible on mobile */
8160
8341
  .sidebar-overlay {
8161
8342
  position: fixed;
8162
8343
  top: 0;
@@ -8168,6 +8349,7 @@ code {
8168
8349
  opacity: 0;
8169
8350
  visibility: hidden;
8170
8351
  transition: opacity 0.3s ease, visibility 0.3s ease;
8352
+ display: block;
8171
8353
  }
8172
8354
 
8173
8355
  .sidebar-overlay.active {
@@ -8231,30 +8413,118 @@ code {
8231
8413
  border-color: var(--dm-border, #dee2e6);
8232
8414
  }
8233
8415
 
8234
- /* Mobile/Tablet: Slide-out drawer */
8235
- @media (max-width: 768px) {
8416
+ /* ============================================
8417
+ SIDEBAR - DESKTOP ENHANCEMENTS
8418
+ ============================================ */
8419
+
8420
+ /* Desktop (≥769px) */
8421
+ @media (min-width: 769px) {
8422
+ /* Desktop: Sidebar always visible */
8236
8423
  .sidebar-fixed {
8237
- transform: translateX(-100%);
8424
+ transform: translateX(0);
8238
8425
  box-shadow: none;
8239
8426
  }
8240
8427
 
8241
8428
  .sidebar-fixed.sidebar-right {
8242
- transform: translateX(100%);
8243
- }
8244
-
8245
- .sidebar-fixed.open {
8246
8429
  transform: translateX(0);
8247
- box-shadow: var(--dm-shadow-xl, 0 10px 40px rgba(0,0,0,0.2));
8248
8430
  }
8249
8431
 
8432
+ /* Desktop: Hide toggle button (unless desktop collapsible) */
8250
8433
  .sidebar-toggle-btn {
8434
+ display: none;
8435
+ }
8436
+
8437
+ /* Show toggle button on desktop when collapsibleDesktop enabled */
8438
+ .sidebar.sidebar-desktop-collapsible .sidebar-toggle-btn {
8251
8439
  display: flex;
8440
+ }
8441
+
8442
+ /* Desktop: Hide overlay */
8443
+ .sidebar-overlay {
8444
+ display: none;
8445
+ }
8446
+
8447
+ /* Desktop collapsed state - Fully hidden */
8448
+ .sidebar.sidebar-collapsed {
8449
+ transform: translateX(-100%);
8450
+ }
8451
+
8452
+ .sidebar.sidebar-collapsed.sidebar-right {
8453
+ transform: translateX(100%);
8454
+ }
8455
+
8456
+ /* Floating toggle button - appears when sidebar is collapsed */
8457
+ .sidebar-floating-toggle {
8458
+ position: fixed;
8459
+ top: 50%;
8460
+ left: 0;
8461
+ transform: translateY(-50%);
8462
+ z-index: 1001;
8463
+ display: none; /* Hidden by default */
8252
8464
  align-items: center;
8253
8465
  justify-content: center;
8466
+ width: 40px;
8467
+ height: 40px;
8468
+ background: var(--dm-primary, #007bff);
8469
+ color: var(--dm-white, #fff);
8470
+ border: none;
8471
+ border-radius: 0 var(--dm-radius-md, 0.375rem) var(--dm-radius-md, 0.375rem) 0;
8472
+ cursor: pointer;
8473
+ transition: all 0.2s ease;
8474
+ box-shadow: var(--dm-shadow-lg, 0 4px 12px rgba(0,0,0,0.15));
8254
8475
  }
8255
8476
 
8256
- .sidebar-overlay {
8257
- display: block;
8477
+ .sidebar-floating-toggle:hover {
8478
+ background: var(--dm-primary-dark, #0056b3);
8479
+ width: 48px;
8480
+ box-shadow: var(--dm-shadow-xl, 0 8px 20px rgba(0,0,0,0.2));
8481
+ }
8482
+
8483
+ .sidebar-floating-toggle.show {
8484
+ display: flex;
8485
+ }
8486
+
8487
+ .sidebar-floating-toggle.right {
8488
+ left: auto;
8489
+ right: 0;
8490
+ border-radius: var(--dm-radius-md, 0.375rem) 0 0 var(--dm-radius-md, 0.375rem);
8491
+ }
8492
+ }
8493
+
8494
+ /* ============================================
8495
+ Floating Sidebar Variant
8496
+ (bottom-left positioned sidebar)
8497
+ ============================================ */
8498
+ .sidebar-floating {
8499
+ position: fixed;
8500
+ left: 2px;
8501
+ bottom: 8px;
8502
+ top: auto !important;
8503
+ height: auto;
8504
+ max-height: 400px;
8505
+ width: 220px;
8506
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
8507
+ z-index: 100;
8508
+ }
8509
+
8510
+ .sidebar-floating .sidebar-header {
8511
+ font-size: 0.875rem;
8512
+ text-transform: uppercase;
8513
+ letter-spacing: 0.05em;
8514
+ }
8515
+
8516
+ @media (max-width: 992px) {
8517
+ .sidebar-floating {
8518
+ left: 0.5rem;
8519
+ bottom: 0.5rem;
8520
+ width: 180px;
8521
+ max-height: 300px;
8522
+ }
8523
+ }
8524
+
8525
+ @media (max-width: 576px) {
8526
+ .sidebar-floating {
8527
+ display: none;
8258
8528
  }
8259
8529
  }
8260
8530
 
@@ -8447,6 +8717,33 @@ code {
8447
8717
  color: rgba(255, 255, 255, 0.8);
8448
8718
  }
8449
8719
 
8720
+ /* ============================================
8721
+ SIDEBAR - PUSH MODE
8722
+ ============================================ */
8723
+
8724
+ /* Content wrapper when sidebar pushes it (left position) */
8725
+ .sidebar-push-active {
8726
+ margin-left: var(--sidebar-push-width, 250px);
8727
+ transition: margin-left var(--dm-transition-normal, 0.3s) ease;
8728
+ }
8729
+
8730
+ /* Content wrapper when sidebar pushes it (right position) */
8731
+ .sidebar-push-active-right {
8732
+ margin-right: var(--sidebar-push-width, 250px);
8733
+ margin-left: 0;
8734
+ transition: margin-right var(--dm-transition-normal, 0.3s) ease;
8735
+ }
8736
+
8737
+ /* Mobile: Allow custom push width for mobile */
8738
+ @media (max-width: 768px) {
8739
+ .sidebar-push-active {
8740
+ margin-left: var(--sidebar-push-width-mobile, var(--sidebar-push-width, 250px));
8741
+ }
8742
+
8743
+ .sidebar-push-active-right {
8744
+ margin-right: var(--sidebar-push-width-mobile, var(--sidebar-push-width, 250px));
8745
+ }
8746
+ }
8450
8747
 
8451
8748
 
8452
8749
  /* ============================================
@@ -8481,20 +8778,20 @@ code {
8481
8778
  z-index: 100;
8482
8779
  }
8483
8780
 
8484
- /* Container */
8781
+ /* Container - Mobile Default */
8485
8782
  .footer-container {
8486
8783
  max-width: var(--dm-container-lg, 1200px);
8487
8784
  margin: 0 auto;
8488
- padding: var(--dm-space-6, 1.5rem) var(--dm-space-4, 1rem);
8785
+ padding: var(--dm-space-4, 1rem); /* Mobile: compact padding */
8489
8786
  }
8490
8787
 
8491
- /* ========== Simple Layout ========== */
8788
+ /* ========== Simple Layout - Mobile Default ========== */
8492
8789
 
8493
8790
  .footer-simple .footer-simple-content {
8494
8791
  display: flex;
8495
8792
  flex-wrap: wrap;
8496
- align-items: center;
8497
- justify-content: space-between;
8793
+ flex-direction: column; /* Mobile: vertical stacking */
8794
+ align-items: flex-start; /* Mobile: left-aligned */
8498
8795
  gap: var(--dm-space-4, 1rem);
8499
8796
  }
8500
8797
 
@@ -8525,8 +8822,9 @@ code {
8525
8822
  .footer-nav {
8526
8823
  display: flex;
8527
8824
  flex-wrap: wrap;
8528
- gap: var(--dm-space-4, 1rem);
8529
- align-items: center;
8825
+ flex-direction: column; /* Mobile: vertical nav */
8826
+ align-items: flex-start; /* Mobile: left-aligned */
8827
+ gap: var(--dm-space-2, 0.5rem); /* Mobile: compact spacing */
8530
8828
  }
8531
8829
 
8532
8830
  .footer-link {
@@ -8573,12 +8871,12 @@ code {
8573
8871
  color: var(--dm-text-muted, #6c757d);
8574
8872
  }
8575
8873
 
8576
- /* ========== Columns Layout ========== */
8874
+ /* ========== Columns Layout - Mobile Default ========== */
8577
8875
 
8578
8876
  .footer-columns .footer-columns-content {
8579
8877
  display: grid;
8580
- grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
8581
- gap: var(--dm-space-6, 1.5rem);
8878
+ grid-template-columns: 1fr; /* Mobile: single column */
8879
+ gap: var(--dm-space-4, 1rem); /* Mobile: compact spacing */
8582
8880
  padding-bottom: var(--dm-space-4, 1rem);
8583
8881
  margin-bottom: var(--dm-space-4, 1rem);
8584
8882
  border-bottom: 1px solid var(--dm-border, #dee2e6);
@@ -8604,6 +8902,15 @@ code {
8604
8902
  line-height: 1.6;
8605
8903
  }
8606
8904
 
8905
+ .footer-column-brand .footer-brand-description {
8906
+ display: block;
8907
+ margin: var(--dm-space-2, 0.5rem) 0 0;
8908
+ color: var(--dm-text-muted, #6c757d);
8909
+ font-size: var(--dm-font-size-sm, 0.875rem);
8910
+ line-height: 1.5;
8911
+ opacity: 0.8;
8912
+ }
8913
+
8607
8914
  .footer-column-title {
8608
8915
  margin: 0 0 var(--dm-space-3, 0.75rem);
8609
8916
  font-size: var(--dm-font-size-base, 1rem);
@@ -8636,19 +8943,23 @@ code {
8636
8943
  .footer-columns .footer-bottom {
8637
8944
  display: flex;
8638
8945
  flex-wrap: wrap;
8639
- align-items: center;
8640
- justify-content: space-between;
8946
+ flex-direction: column; /* Mobile: vertical stacking */
8947
+ align-items: flex-start; /* Mobile: left-aligned */
8641
8948
  gap: var(--dm-space-4, 1rem);
8642
8949
  }
8643
8950
 
8644
8951
  .footer-columns .footer-copyright {
8645
- width: auto;
8952
+ width: 100%; /* Mobile: full width */
8646
8953
  padding: 0;
8647
8954
  margin: 0;
8648
8955
  border: none;
8649
8956
  text-align: left;
8650
8957
  }
8651
8958
 
8959
+ .footer-social {
8960
+ width: 100%; /* Mobile: full width */
8961
+ }
8962
+
8652
8963
  /* ========== Minimal Layout ========== */
8653
8964
 
8654
8965
  .footer-minimal .footer-minimal-content {
@@ -8685,6 +8996,10 @@ code {
8685
8996
  color: var(--dm-white, #fff);
8686
8997
  }
8687
8998
 
8999
+ .footer-dark .footer-brand-description {
9000
+ color: var(--dm-gray-300, #dee2e6);
9001
+ }
9002
+
8688
9003
  .footer-dark .footer-link {
8689
9004
  color: var(--dm-gray-400, #adb5bd);
8690
9005
  }
@@ -8735,41 +9050,50 @@ code {
8735
9050
  border-color: transparent;
8736
9051
  }
8737
9052
 
8738
- /* ========== Responsive ========== */
9053
+ /* ============================================
9054
+ FOOTER - DESKTOP ENHANCEMENTS
9055
+ ============================================ */
8739
9056
 
8740
- @media (max-width: 768px) {
9057
+ /* Desktop (≥769px) */
9058
+ @media (min-width: 769px) {
9059
+ /* Desktop: More generous padding */
8741
9060
  .footer-container {
8742
- padding: var(--dm-space-4, 1rem);
9061
+ padding: var(--dm-space-6, 1.5rem) var(--dm-space-4, 1rem);
8743
9062
  }
8744
9063
 
9064
+ /* Desktop: Horizontal simple layout */
8745
9065
  .footer-simple .footer-simple-content {
8746
- flex-direction: column;
8747
- align-items: flex-start;
9066
+ flex-direction: row;
9067
+ align-items: center;
9068
+ justify-content: space-between;
8748
9069
  }
8749
9070
 
9071
+ /* Desktop: Horizontal navigation */
8750
9072
  .footer-nav {
8751
- flex-direction: column;
8752
- align-items: flex-start;
8753
- gap: var(--dm-space-2, 0.5rem);
9073
+ flex-direction: row;
9074
+ align-items: center;
9075
+ gap: var(--dm-space-4, 1rem);
8754
9076
  }
8755
9077
 
9078
+ /* Desktop: Multi-column grid */
8756
9079
  .footer-columns .footer-columns-content {
8757
- grid-template-columns: 1fr;
8758
- gap: var(--dm-space-4, 1rem);
9080
+ grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
9081
+ gap: var(--dm-space-6, 1.5rem);
8759
9082
  }
8760
9083
 
9084
+ /* Desktop: Horizontal bottom section */
8761
9085
  .footer-columns .footer-bottom {
8762
- flex-direction: column;
8763
- align-items: flex-start;
9086
+ flex-direction: row;
9087
+ align-items: center;
9088
+ justify-content: space-between;
8764
9089
  }
8765
9090
 
8766
9091
  .footer-columns .footer-copyright {
8767
- width: 100%;
8768
- text-align: left;
9092
+ width: auto;
8769
9093
  }
8770
9094
 
8771
9095
  .footer-social {
8772
- width: 100%;
9096
+ width: auto;
8773
9097
  }
8774
9098
  }
8775
9099
  /* ============================================
@@ -9055,7 +9379,7 @@ code {
9055
9379
 
9056
9380
  /* Timer display */
9057
9381
  .dm-timer-display {
9058
- font-size: 2.5rem;
9382
+ font-size: 2rem; /* Mobile default */
9059
9383
  font-weight: 600;
9060
9384
  font-family: 'Courier New', monospace;
9061
9385
  color: var(--dm-slate-900);
@@ -9157,16 +9481,18 @@ code {
9157
9481
  display: none !important;
9158
9482
  }
9159
9483
 
9160
- /* Responsive timer styles */
9161
- @media (max-width: 576px) {
9484
+ /* Mobile-first: Timer base styles are already mobile-optimized above */
9485
+
9486
+ /* Desktop (≥577px) - Timer enhancements */
9487
+ @media (min-width: 577px) {
9162
9488
  .dm-timer-display {
9163
- font-size: 2rem;
9489
+ font-size: 3rem; /* Larger on desktop */
9164
9490
  }
9165
9491
 
9166
9492
  .dm-timer-button {
9167
- padding: 0.375rem 0.75rem;
9168
- font-size: 0.8125rem;
9169
- min-width: 70px;
9493
+ padding: 0.5rem 1rem;
9494
+ font-size: 0.875rem;
9495
+ min-width: 80px;
9170
9496
  }
9171
9497
  }
9172
9498
 
@@ -9433,14 +9759,14 @@ code {
9433
9759
 
9434
9760
  .dm-back-to-top {
9435
9761
  position: fixed;
9436
- bottom: 2rem;
9437
- right: 2rem;
9762
+ bottom: 1rem; /* Mobile default: compact positioning */
9763
+ right: 1rem;
9438
9764
  z-index: 1000;
9439
9765
  display: flex;
9440
9766
  align-items: center;
9441
9767
  justify-content: center;
9442
- width: 3rem;
9443
- height: 3rem;
9768
+ width: 2.5rem; /* Mobile default: smaller button */
9769
+ height: 2.5rem;
9444
9770
  padding: 0;
9445
9771
  background-color: var(--dm-primary);
9446
9772
  color: var(--dm-white);
@@ -9474,12 +9800,13 @@ code {
9474
9800
  box-shadow: 0 0 0 3px var(--dm-focus-ring);
9475
9801
  }
9476
9802
 
9477
- @media (max-width: 576px) {
9803
+ /* Desktop (≥577px) - Back to Top enhancements */
9804
+ @media (min-width: 577px) {
9478
9805
  .dm-back-to-top {
9479
- bottom: 1rem;
9480
- right: 1rem;
9481
- width: 2.5rem;
9482
- height: 2.5rem;
9806
+ bottom: 1.5rem; /* More spacing on desktop */
9807
+ right: 1.5rem;
9808
+ width: 3rem; /* Larger button on desktop */
9809
+ height: 3rem;
9483
9810
  }
9484
9811
  }
9485
9812
 
@@ -10308,41 +10635,48 @@ code {
10308
10635
  /* Default styles already applied above */
10309
10636
  }
10310
10637
 
10311
- /* Centered Layout */
10638
+ /* Centered Layout - Mobile default: left-aligned */
10312
10639
  .dm-timeline-centered::before {
10313
10640
  content: '';
10314
10641
  position: absolute;
10315
- left: 50%;
10642
+ left: 30px; /* Mobile default: left-aligned line */
10316
10643
  top: 0;
10317
10644
  bottom: 0;
10318
10645
  width: 2px;
10319
10646
  background: var(--dm-gray-300);
10320
- transform: translateX(-50%);
10647
+ transform: none;
10321
10648
  }
10322
10649
 
10323
10650
  .dm-timeline-centered .dm-timeline-item {
10324
- width: 50%;
10325
- padding-right: var(--dm-space-8);
10326
- justify-content: flex-end;
10651
+ width: 100%; /* Mobile default: full width */
10652
+ left: 0;
10653
+ padding-left: var(--dm-space-16); /* Mobile: space for left line */
10654
+ padding-right: 0;
10655
+ justify-content: flex-start;
10327
10656
  }
10328
10657
 
10329
10658
  .dm-timeline-centered .dm-timeline-item:nth-child(even) {
10330
- left: 50%;
10331
- padding-left: var(--dm-space-8);
10659
+ width: 100%; /* Mobile: same as odd items */
10660
+ left: 0;
10661
+ padding-left: var(--dm-space-16);
10332
10662
  padding-right: 0;
10333
10663
  justify-content: flex-start;
10334
10664
  }
10335
10665
 
10336
10666
  .dm-timeline-centered .dm-timeline-year {
10337
- order: 2;
10338
- margin-left: var(--dm-space-6);
10339
- margin-right: 0;
10667
+ order: 0; /* Mobile: year badge on left */
10668
+ margin-right: var(--dm-space-6);
10669
+ margin-left: 0;
10670
+ position: absolute;
10671
+ left: 0;
10340
10672
  }
10341
10673
 
10342
10674
  .dm-timeline-centered .dm-timeline-item:nth-child(even) .dm-timeline-year {
10343
- order: 0;
10344
- margin-left: 0;
10675
+ order: 0; /* Mobile: same as odd items */
10345
10676
  margin-right: var(--dm-space-6);
10677
+ margin-left: 0;
10678
+ position: absolute;
10679
+ left: 0;
10346
10680
  }
10347
10681
 
10348
10682
  /* Horizontal Layout */
@@ -10390,33 +10724,34 @@ code {
10390
10724
  border-color: var(--dm-slate-200);
10391
10725
  }
10392
10726
 
10393
- /* Responsive Design */
10394
- @media (max-width: 768px) {
10395
- .dm-timeline-centered {
10396
- /* Switch to vertical layout on mobile */
10727
+ /* Desktop (≥769px) - Timeline/Progression centered enhancements */
10728
+ @media (min-width: 769px) {
10729
+ .dm-timeline-centered::before {
10730
+ left: 50%; /* Center line on desktop */
10731
+ transform: translateX(-50%);
10397
10732
  }
10398
10733
 
10399
- .dm-timeline-centered::before {
10400
- left: 30px;
10401
- transform: none;
10734
+ .dm-timeline-centered .dm-timeline-item {
10735
+ width: 50%; /* Half width for alternating layout */
10736
+ left: 0;
10737
+ padding-left: 0;
10738
+ padding-right: var(--dm-space-8);
10739
+ justify-content: flex-end;
10402
10740
  }
10403
10741
 
10404
- .dm-timeline-centered .dm-timeline-item,
10405
10742
  .dm-timeline-centered .dm-timeline-item:nth-child(even) {
10406
- width: 100%;
10407
- left: 0;
10408
- padding-left: var(--dm-space-16);
10743
+ left: 50%;
10744
+ padding-left: var(--dm-space-8);
10409
10745
  padding-right: 0;
10410
10746
  justify-content: flex-start;
10411
10747
  }
10412
10748
 
10413
- .dm-timeline-centered .dm-timeline-year,
10414
- .dm-timeline-centered .dm-timeline-item:nth-child(even) .dm-timeline-year {
10415
- order: 0;
10416
- margin-right: var(--dm-space-6);
10417
- margin-left: 0;
10418
- position: absolute;
10419
- left: 0;
10749
+ .dm-timeline-centered .dm-timeline-year {
10750
+ order: 1;
10751
+ margin-right: 0;
10752
+ margin-left: var(--dm-space-6);
10753
+ position: relative;
10754
+ left: auto;
10420
10755
  width: 80px;
10421
10756
  }
10422
10757
 
@@ -10462,6 +10797,385 @@ code {
10462
10797
  border-color: var(--dm-slate-600);
10463
10798
  }
10464
10799
 
10800
+ /* ==============================================
10801
+ Progression Component (Timeline + Roadmap)
10802
+ ============================================== */
10803
+
10804
+ /* Base Progression styles */
10805
+ .dm-progression {
10806
+ width: 100%;
10807
+ position: relative;
10808
+ }
10809
+
10810
+ .dm-progression-item {
10811
+ display: flex;
10812
+ gap: var(--dm-space-4);
10813
+ position: relative;
10814
+ margin-bottom: var(--dm-space-6);
10815
+ }
10816
+
10817
+ .dm-progression-marker {
10818
+ flex-shrink: 0;
10819
+ display: flex;
10820
+ align-items: center;
10821
+ justify-content: center;
10822
+ font-weight: 600;
10823
+ font-size: var(--dm-font-size-sm);
10824
+ z-index: 2;
10825
+ }
10826
+
10827
+ .dm-progression-content {
10828
+ flex-grow: 1;
10829
+ background: var(--dm-surface, #fff);
10830
+ border: 1px solid var(--dm-border-color, #e0e0e0);
10831
+ border-radius: var(--dm-radius-md);
10832
+ padding: var(--dm-space-4);
10833
+ box-shadow: 0 2px 4px rgba(0, 0, 0, 0.06);
10834
+ transition: all 0.2s ease;
10835
+ }
10836
+
10837
+ .dm-progression-title {
10838
+ margin: 0 0 var(--dm-space-2);
10839
+ font-size: var(--dm-font-size-lg);
10840
+ font-weight: 600;
10841
+ color: var(--dm-text-primary);
10842
+ }
10843
+
10844
+ .dm-progression-description {
10845
+ margin: 0;
10846
+ font-size: var(--dm-font-size-base);
10847
+ color: var(--dm-text-secondary);
10848
+ line-height: 1.6;
10849
+ }
10850
+
10851
+ /* Vertical layout (default) */
10852
+ .dm-progression-vertical .dm-progression-item::before {
10853
+ content: '';
10854
+ position: absolute;
10855
+ left: 2rem;
10856
+ top: 3rem;
10857
+ bottom: -1.5rem;
10858
+ width: 2px;
10859
+ background: var(--dm-border-color, #e0e0e0);
10860
+ z-index: 1;
10861
+ }
10862
+
10863
+ .dm-progression-vertical .dm-progression-item:last-child::before {
10864
+ display: none;
10865
+ }
10866
+
10867
+ /* Centered layout */
10868
+ .dm-progression-centered {
10869
+ max-width: 1200px;
10870
+ margin: 0 auto;
10871
+ }
10872
+
10873
+ .dm-progression-centered .dm-progression-item {
10874
+ width: 100%;
10875
+ }
10876
+
10877
+ .dm-progression-centered .dm-progression-item:nth-child(odd) {
10878
+ flex-direction: row;
10879
+ }
10880
+
10881
+ .dm-progression-centered .dm-progression-item:nth-child(even) {
10882
+ flex-direction: row-reverse;
10883
+ }
10884
+
10885
+ /* Horizontal layout */
10886
+ .dm-progression-horizontal {
10887
+ display: flex;
10888
+ flex-direction: column; /* Mobile default: vertical stacking */
10889
+ overflow-x: auto;
10890
+ padding-bottom: var(--dm-space-4);
10891
+ }
10892
+
10893
+ .dm-progression-horizontal .dm-progression-item {
10894
+ flex-direction: column;
10895
+ min-width: 100%; /* Mobile default: full width stacking */
10896
+ margin-right: 0;
10897
+ margin-bottom: var(--dm-space-4);
10898
+ }
10899
+
10900
+ /* Progress bar (Roadmap mode) */
10901
+ .dm-progression-progress {
10902
+ margin-bottom: var(--dm-space-6);
10903
+ padding: var(--dm-space-4);
10904
+ background: var(--dm-surface, #fff);
10905
+ border-radius: var(--dm-radius-md);
10906
+ border: 1px solid var(--dm-border-color, #e0e0e0);
10907
+ }
10908
+
10909
+ .dm-progression-progress-bar {
10910
+ height: 8px;
10911
+ background: linear-gradient(90deg, var(--dm-success, #22c55e), var(--dm-primary, #3b82f6));
10912
+ border-radius: var(--dm-radius-full);
10913
+ transition: width 0.6s ease;
10914
+ margin-bottom: var(--dm-space-2);
10915
+ }
10916
+
10917
+ .dm-progression-progress-text {
10918
+ font-size: var(--dm-font-size-sm);
10919
+ color: var(--dm-text-secondary);
10920
+ font-weight: 500;
10921
+ }
10922
+
10923
+ /* Roadmap-specific styles */
10924
+ .dm-progression-status-marker {
10925
+ width: 40px;
10926
+ height: 40px;
10927
+ border-radius: 50%;
10928
+ position: relative;
10929
+ }
10930
+
10931
+ .dm-progression-status-dot {
10932
+ width: 16px;
10933
+ height: 16px;
10934
+ border-radius: 50%;
10935
+ display: block;
10936
+ }
10937
+
10938
+ .dm-progression-status-icon {
10939
+ font-size: 20px;
10940
+ }
10941
+
10942
+ /* Status colours */
10943
+ .dm-progression-status-planned .dm-progression-status-marker {
10944
+ background: var(--dm-gray-100);
10945
+ border: 2px solid var(--dm-gray-400);
10946
+ }
10947
+
10948
+ .dm-progression-status-planned .dm-progression-status-dot {
10949
+ background: var(--dm-gray-400);
10950
+ }
10951
+
10952
+ .dm-progression-status-in-progress .dm-progression-status-marker {
10953
+ background: var(--dm-primary-light, rgba(59, 130, 246, 0.1));
10954
+ border: 2px solid var(--dm-primary, #3b82f6);
10955
+ position: relative;
10956
+ }
10957
+
10958
+ .dm-progression-status-in-progress .dm-progression-status-marker::after {
10959
+ content: '';
10960
+ position: absolute;
10961
+ inset: -4px;
10962
+ border: 2px solid var(--dm-primary, #3b82f6);
10963
+ border-radius: 50%;
10964
+ animation: progressPulse 2s infinite;
10965
+ }
10966
+
10967
+ @keyframes progressPulse {
10968
+ 0%, 100% {
10969
+ opacity: 0.6;
10970
+ transform: scale(1);
10971
+ }
10972
+ 50% {
10973
+ opacity: 0;
10974
+ transform: scale(1.3);
10975
+ }
10976
+ }
10977
+
10978
+ .dm-progression-status-in-progress .dm-progression-status-dot {
10979
+ background: var(--dm-primary, #3b82f6);
10980
+ }
10981
+
10982
+ .dm-progression-status-completed .dm-progression-status-marker {
10983
+ background: var(--dm-success-light, rgba(34, 197, 94, 0.1));
10984
+ border: 2px solid var(--dm-success, #22c55e);
10985
+ }
10986
+
10987
+ .dm-progression-status-completed .dm-progression-status-dot {
10988
+ background: var(--dm-success, #22c55e);
10989
+ }
10990
+
10991
+ .dm-progression-status-blocked .dm-progression-status-marker {
10992
+ background: var(--dm-danger-light, rgba(239, 68, 68, 0.1));
10993
+ border: 2px solid var(--dm-danger, #ef4444);
10994
+ }
10995
+
10996
+ .dm-progression-status-blocked .dm-progression-status-dot {
10997
+ background: var(--dm-danger, #ef4444);
10998
+ }
10999
+
11000
+ .dm-progression-status-cancelled .dm-progression-status-marker {
11001
+ background: var(--dm-gray-100);
11002
+ border: 2px solid var(--dm-gray-500);
11003
+ opacity: 0.6;
11004
+ }
11005
+
11006
+ .dm-progression-status-cancelled .dm-progression-status-dot {
11007
+ background: var(--dm-gray-500);
11008
+ }
11009
+
11010
+ /* Date/phase display */
11011
+ .dm-progression-date {
11012
+ font-size: var(--dm-font-size-sm);
11013
+ color: var(--dm-text-tertiary);
11014
+ font-weight: 500;
11015
+ margin-bottom: var(--dm-space-2);
11016
+ text-transform: uppercase;
11017
+ letter-spacing: 0.05em;
11018
+ }
11019
+
11020
+ /* Item progress bar */
11021
+ .dm-progression-item-progress {
11022
+ height: 6px;
11023
+ background: var(--dm-gray-200);
11024
+ border-radius: var(--dm-radius-full);
11025
+ overflow: hidden;
11026
+ margin-top: var(--dm-space-3);
11027
+ }
11028
+
11029
+ .dm-progression-item-progress-bar {
11030
+ height: 100%;
11031
+ background: var(--dm-primary, #3b82f6);
11032
+ border-radius: var(--dm-radius-full);
11033
+ transition: width 0.3s ease;
11034
+ }
11035
+
11036
+ .dm-progression-item-progress-text {
11037
+ font-size: var(--dm-font-size-xs);
11038
+ color: var(--dm-text-tertiary);
11039
+ margin-top: var(--dm-space-1);
11040
+ }
11041
+
11042
+ /* Priority badges */
11043
+ .dm-progression-priority {
11044
+ display: inline-flex;
11045
+ align-items: center;
11046
+ padding: 2px 8px;
11047
+ border-radius: var(--dm-radius-full);
11048
+ font-size: var(--dm-font-size-xs);
11049
+ font-weight: 600;
11050
+ text-transform: uppercase;
11051
+ letter-spacing: 0.05em;
11052
+ margin-top: var(--dm-space-2);
11053
+ }
11054
+
11055
+ .dm-progression-priority-low {
11056
+ background: var(--dm-gray-200);
11057
+ color: var(--dm-gray-700);
11058
+ }
11059
+
11060
+ .dm-progression-priority-medium {
11061
+ background: var(--dm-info-light, rgba(59, 130, 246, 0.1));
11062
+ color: var(--dm-info, #3b82f6);
11063
+ }
11064
+
11065
+ .dm-progression-priority-high {
11066
+ background: var(--dm-warning-light, rgba(245, 158, 11, 0.1));
11067
+ color: var(--dm-warning, #f59e0b);
11068
+ }
11069
+
11070
+ .dm-progression-priority-critical {
11071
+ background: var(--dm-danger-light, rgba(239, 68, 68, 0.1));
11072
+ color: var(--dm-danger, #ef4444);
11073
+ }
11074
+
11075
+ /* Tags */
11076
+ .dm-progression-tags {
11077
+ display: flex;
11078
+ flex-wrap: wrap;
11079
+ gap: var(--dm-space-2);
11080
+ margin-top: var(--dm-space-3);
11081
+ }
11082
+
11083
+ .dm-progression-tag {
11084
+ background: var(--dm-primary-light, rgba(59, 130, 246, 0.1));
11085
+ color: var(--dm-primary, #3b82f6);
11086
+ padding: 2px 8px;
11087
+ border-radius: var(--dm-radius-sm);
11088
+ font-size: var(--dm-font-size-xs);
11089
+ font-weight: 500;
11090
+ }
11091
+
11092
+ /* Assignee */
11093
+ .dm-progression-assignee {
11094
+ font-size: var(--dm-font-size-sm);
11095
+ color: var(--dm-text-tertiary);
11096
+ margin-top: var(--dm-space-2);
11097
+ font-style: italic;
11098
+ }
11099
+
11100
+ /* Current item highlight */
11101
+ .dm-progression-current .dm-progression-content {
11102
+ border-color: var(--dm-primary, #3b82f6);
11103
+ box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.1);
11104
+ }
11105
+
11106
+ /* Themes */
11107
+ .dm-progression-minimal .dm-progression-content {
11108
+ background: var(--dm-gray-50);
11109
+ border-color: transparent;
11110
+ box-shadow: none;
11111
+ }
11112
+
11113
+ .dm-progression-corporate .dm-progression-content {
11114
+ background: var(--dm-slate-50);
11115
+ border-color: var(--dm-slate-200);
11116
+ }
11117
+
11118
+ .dm-progression-modern .dm-progression-content {
11119
+ background: linear-gradient(135deg, var(--dm-surface, #fff) 0%, var(--dm-gray-50) 100%);
11120
+ border-color: var(--dm-border-color, #e0e0e0);
11121
+ box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05);
11122
+ }
11123
+
11124
+ /* Dark theme support */
11125
+ [data-theme="dark"] .dm-progression-content {
11126
+ background: var(--dm-slate-800);
11127
+ border-color: var(--dm-slate-700);
11128
+ color: var(--dm-slate-100);
11129
+ }
11130
+
11131
+ [data-theme="dark"] .dm-progression-title {
11132
+ color: var(--dm-slate-100);
11133
+ }
11134
+
11135
+ [data-theme="dark"] .dm-progression-description {
11136
+ color: var(--dm-slate-300);
11137
+ }
11138
+
11139
+ [data-theme="dark"] .dm-progression-minimal .dm-progression-content {
11140
+ background: var(--dm-slate-900);
11141
+ border-color: transparent;
11142
+ }
11143
+
11144
+ [data-theme="dark"] .dm-progression-corporate .dm-progression-content {
11145
+ background: var(--dm-slate-800);
11146
+ border-color: var(--dm-slate-600);
11147
+ }
11148
+
11149
+ [data-theme="dark"] .dm-progression-modern .dm-progression-content {
11150
+ background: linear-gradient(135deg, var(--dm-slate-800) 0%, var(--dm-slate-900) 100%);
11151
+ }
11152
+
11153
+ [data-theme="dark"] .dm-progression-item-progress {
11154
+ background: var(--dm-slate-700);
11155
+ }
11156
+
11157
+ [data-theme="dark"] .dm-progression-progress {
11158
+ background: var(--dm-slate-800);
11159
+ border-color: var(--dm-slate-700);
11160
+ }
11161
+
11162
+ /* Desktop (≥769px) - Progression enhancements */
11163
+ @media (min-width: 769px) {
11164
+ .dm-progression-centered .dm-progression-item:nth-child(even) {
11165
+ flex-direction: row-reverse; /* Alternate direction on desktop */
11166
+ }
11167
+
11168
+ .dm-progression-horizontal {
11169
+ flex-direction: row; /* Horizontal on desktop */
11170
+ }
11171
+
11172
+ .dm-progression-horizontal .dm-progression-item {
11173
+ min-width: auto;
11174
+ margin-right: var(--dm-space-6);
11175
+ margin-bottom: 0;
11176
+ }
11177
+ }
11178
+
10465
11179
  /* ==============================================
10466
11180
  Cookie Consent Component
10467
11181
  ============================================== */
@@ -10488,14 +11202,16 @@ code {
10488
11202
 
10489
11203
  .dm-cookie-consent-bottom-left {
10490
11204
  bottom: 20px;
10491
- left: 20px;
10492
- max-width: 400px;
11205
+ left: 10px; /* Mobile default: minimal margins */
11206
+ right: 10px; /* Mobile: full width minus margins */
11207
+ max-width: none; /* Mobile: no width constraint */
10493
11208
  }
10494
11209
 
10495
11210
  .dm-cookie-consent-bottom-right {
10496
11211
  bottom: 20px;
10497
- right: 20px;
10498
- max-width: 400px;
11212
+ left: 10px; /* Mobile default: minimal margins */
11213
+ right: 10px; /* Mobile: full width minus margins */
11214
+ max-width: none; /* Mobile: no width constraint */
10499
11215
  }
10500
11216
 
10501
11217
  .dm-cookie-consent-center-modal {
@@ -10509,8 +11225,8 @@ code {
10509
11225
  /* Layout variants */
10510
11226
  .dm-cookie-consent-bar .dm-cookie-consent-content {
10511
11227
  display: flex;
10512
- align-items: center;
10513
- justify-content: space-between;
11228
+ flex-direction: column; /* Mobile default: vertical stacking */
11229
+ align-items: stretch;
10514
11230
  padding: 16px 20px;
10515
11231
  gap: 20px;
10516
11232
  }
@@ -10551,7 +11267,8 @@ code {
10551
11267
  /* Message styles */
10552
11268
  .dm-cookie-consent-message {
10553
11269
  flex: 1;
10554
- margin-right: 20px;
11270
+ margin-right: 0; /* Mobile default: no right margin */
11271
+ margin-bottom: 16px; /* Mobile default: bottom spacing */
10555
11272
  }
10556
11273
 
10557
11274
  .dm-cookie-consent-message a {
@@ -10566,6 +11283,7 @@ code {
10566
11283
  /* Button styles */
10567
11284
  .dm-cookie-consent-buttons {
10568
11285
  display: flex;
11286
+ flex-direction: column; /* Mobile default: vertical buttons */
10569
11287
  gap: 12px;
10570
11288
  flex-shrink: 0;
10571
11289
  }
@@ -10731,27 +11449,32 @@ code {
10731
11449
  gap: 12px;
10732
11450
  }
10733
11451
 
10734
- /* Responsive */
10735
- @media (max-width: 640px) {
11452
+ /* Desktop (≥641px) - Cookie Consent enhancements */
11453
+ @media (min-width: 641px) {
10736
11454
  .dm-cookie-consent-bar .dm-cookie-consent-content {
10737
- flex-direction: column;
10738
- align-items: stretch;
11455
+ flex-direction: row; /* Horizontal on desktop */
11456
+ align-items: center;
10739
11457
  }
10740
11458
 
10741
11459
  .dm-cookie-consent-message {
10742
- margin-right: 0;
10743
- margin-bottom: 16px;
11460
+ margin-right: 24px;
11461
+ margin-bottom: 0;
10744
11462
  }
10745
11463
 
10746
11464
  .dm-cookie-consent-buttons {
10747
- flex-direction: column;
11465
+ flex-direction: row; /* Horizontal buttons on desktop */
11466
+ }
11467
+
11468
+ .dm-cookie-consent-bottom-left {
11469
+ left: 20px;
11470
+ right: auto;
11471
+ max-width: 600px;
10748
11472
  }
10749
11473
 
10750
- .dm-cookie-consent-bottom-left,
10751
11474
  .dm-cookie-consent-bottom-right {
10752
- left: 10px;
10753
- right: 10px;
10754
- max-width: none;
11475
+ left: auto;
11476
+ right: 20px;
11477
+ max-width: 600px;
10755
11478
  }
10756
11479
  }
10757
11480
 
@@ -10762,11 +11485,11 @@ code {
10762
11485
  ============================================ */
10763
11486
 
10764
11487
  /*!
10765
- * Domma Themes v0.7.6-alpha
11488
+ * Domma Themes v0.9.2-alpha
10766
11489
  * Dynamic Object Manipulation & Modeling API
10767
11490
  * (c) 2026 Darryl Waterhouse & DCBW-IT
10768
- * Built: 2026-01-09T13:59:21.866Z
10769
- * Commit: 5527c59
11491
+ * Built: 2026-01-11T18:01:20.167Z
11492
+ * Commit: 136342c
10770
11493
  */
10771
11494
 
10772
11495
  /**