| 3 |
3 |
|
|
| 4 |
4 |
|
Build new UI by COMPOSING the existing vocabulary, in this order of preference:
|
| 5 |
5 |
|
|
| 6 |
|
- |
1. Use a UTILITY class for one-off adjustments (.mb-1, .mb-2, .flex-1,
|
|
6 |
+ |
1. Use a UTILITY class for one-off adjustments (.mb-section, .mb-peer, .flex-1,
|
| 7 |
7 |
|
.text-sm-secondary, .hidden)
|
| 8 |
|
- |
2. Use a LAYOUT PRIMITIVE to position content (.row-flex + .row-flex-{2,3,4},
|
| 9 |
|
- |
.row, .stack-{2,3,4})
|
|
8 |
+ |
2. Use a LAYOUT PRIMITIVE to position content (.row-flex + .row-flex-{peer,
|
|
9 |
+ |
group,section}, .row,
|
|
10 |
+ |
.stack-{peer,group,section})
|
| 10 |
11 |
|
3. Use a COMPONENT PRIMITIVE for a UI element (.card, .btn, .form-input,
|
| 11 |
12 |
|
.form-select, .modal, .badge,
|
| 12 |
13 |
|
.tag, .toggle-switch)
|
| 265 |
266 |
|
|
| 266 |
267 |
|
/* --- APP-LOCAL (not theme intents)
|
| 267 |
268 |
|
GoingsOn's component CSS references the intent tokens above directly;
|
| 268 |
|
- |
no brand aliases. Geometry stays app-local by contract: a theme
|
| 269 |
|
- |
overrides color only, so border width, bevel thickness, radius,
|
| 270 |
|
- |
density and type never leave this file. */
|
|
269 |
+ |
no brand aliases. None of this is themeable: a theme overrides color
|
|
270 |
+ |
only, so border width, bevel thickness, radius and type stay here and
|
|
271 |
+ |
no theme can reach them.
|
|
272 |
+ |
|
|
273 |
+ |
Spacing used to live here too and no longer does. It is the same
|
|
274 |
+ |
contract from the other side -- invariant, so it belongs to every app
|
|
275 |
+ |
equally rather than to this one -- and it now comes from
|
|
276 |
+ |
makeover-geometry via css/geometry.css, which build.rs generates.
|
|
277 |
+ |
Use --gap-* by relationship; --step-* only where no relationship
|
|
278 |
+ |
describes the distance. */
|
| 271 |
279 |
|
--border-width: 1px;
|
| 272 |
280 |
|
--border-width-sm: 1px;
|
| 273 |
281 |
|
|
| 311 |
319 |
|
--width-modal: 560px;
|
| 312 |
320 |
|
--width-sidebar: 280px;
|
| 313 |
321 |
|
|
| 314 |
|
- |
/* Spacing scale */
|
| 315 |
|
- |
--space-1: 0.25rem;
|
| 316 |
|
- |
--space-2: 0.5rem;
|
| 317 |
|
- |
--space-3: 0.75rem;
|
| 318 |
|
- |
--space-4: 1rem;
|
| 319 |
|
- |
--space-5: 1.25rem;
|
| 320 |
|
- |
--space-6: 1.5rem;
|
| 321 |
|
- |
/* The tail is coarser on purpose. Steps 1 to 6 climb by 0.25rem because
|
| 322 |
|
- |
that is the granularity UI density needs; above 1.5rem the values are
|
| 323 |
|
- |
layout gutters and page shells, where a 4px distinction is noise.
|
| 324 |
|
- |
1.75rem and 2.5rem each had a single site and snap into this. */
|
| 325 |
|
- |
--space-7: 2rem;
|
| 326 |
|
- |
--space-8: 3rem;
|
|
322 |
+ |
/* Spacing: see css/geometry.css. --gap-bound, --gap-peer, --gap-group,
|
|
323 |
+ |
--gap-section, --gap-pane, --gap-page, over a --step-* scale. */
|
| 327 |
324 |
|
|
| 328 |
325 |
|
--font-sans: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
|
| 329 |
326 |
|
--font-serif: Georgia, 'Times New Roman', serif;
|
| 365 |
362 |
|
.text-sm-secondary { font-size: 0.875rem; color: var(--content-secondary); }
|
| 366 |
363 |
|
.text-xs-secondary { font-size: 0.75rem; color: var(--content-secondary); }
|
| 367 |
364 |
|
.text-accent-red { color: var(--danger); }
|
| 368 |
|
- |
.mb-1 { margin-bottom: 1rem; }
|
| 369 |
|
- |
.mb-2 { margin-bottom: var(--space-2); }
|
|
365 |
+ |
.mb-section { margin-bottom: var(--gap-section); }
|
|
366 |
+ |
.mb-peer { margin-bottom: var(--gap-peer); }
|
| 370 |
367 |
|
|
| 371 |
368 |
|
/* --- FORM SIZING UTILITIES */
|
| 372 |
369 |
|
.form-select--compact { width: auto; min-width: 120px; }
|
| 373 |
370 |
|
|
| 374 |
371 |
|
/* --- SETTINGS UTILITIES */
|
| 375 |
|
- |
.settings-divider { margin-top: var(--space-6); padding-top: var(--space-6); border-top: var(--border-width) solid var(--border); }
|
| 376 |
|
- |
.settings-heading { margin-bottom: 1rem; font-family: var(--font-heading); }
|
| 377 |
|
- |
.settings-desc { font-size: 0.875rem; color: var(--content-secondary); margin-bottom: 1rem; }
|
|
372 |
+ |
.settings-divider { margin-top: var(--gap-pane); padding-top: var(--gap-pane); border-top: var(--border-width) solid var(--border); }
|
|
373 |
+ |
.settings-heading { margin-bottom: var(--gap-section); font-family: var(--font-heading); }
|
|
374 |
+ |
.settings-desc { font-size: 0.875rem; color: var(--content-secondary); margin-bottom: var(--gap-section); }
|
| 378 |
375 |
|
|
| 379 |
376 |
|
/* --- SUBTASK UTILITIES */
|
| 380 |
377 |
|
/* .subtask-item is the base row; --linked is a modifier for subtasks that
|
| 383 |
380 |
|
.subtask-item {
|
| 384 |
381 |
|
display: flex;
|
| 385 |
382 |
|
align-items: center;
|
| 386 |
|
- |
gap: 0.5rem;
|
| 387 |
|
- |
padding: 0.5rem;
|
|
383 |
+ |
gap: var(--gap-bound);
|
|
384 |
+ |
padding: var(--gap-peer);
|
| 388 |
385 |
|
background: var(--surface-overlay);
|
| 389 |
386 |
|
border-radius: var(--radius-sm);
|
| 390 |
|
- |
margin-bottom: 0.5rem;
|
|
387 |
+ |
margin-bottom: var(--gap-peer);
|
| 391 |
388 |
|
}
|
| 392 |
389 |
|
.subtask-item--linked {
|
| 393 |
390 |
|
background: var(--surface-sunken);
|
| 445 |
442 |
|
.ui-mode-desktop .app-header {
|
| 446 |
443 |
|
background: var(--surface-raised);
|
| 447 |
444 |
|
border-bottom: var(--border-width) solid var(--border);
|
| 448 |
|
- |
padding: var(--space-3) var(--space-6);
|
|
445 |
+ |
padding: var(--gap-group) var(--gap-pane);
|
| 449 |
446 |
|
display: flex;
|
| 450 |
447 |
|
justify-content: space-between;
|
| 451 |
448 |
|
align-items: center;
|
| 454 |
451 |
|
.ui-mode-desktop .header-content {
|
| 455 |
452 |
|
display: flex;
|
| 456 |
453 |
|
align-items: center;
|
| 457 |
|
- |
gap: 0.75rem;
|
|
454 |
+ |
gap: var(--gap-bound);
|
| 458 |
455 |
|
}
|
| 459 |
456 |
|
|
| 460 |
457 |
|
.ui-mode-desktop .header-actions {
|
| 461 |
458 |
|
display: flex;
|
| 462 |
459 |
|
align-items: center;
|
| 463 |
|
- |
gap: 0.5rem;
|
|
460 |
+ |
gap: var(--gap-peer);
|
| 464 |
461 |
|
}
|
| 465 |
462 |
|
|
| 466 |
463 |
|
.ui-mode-desktop .app-title {
|
| 487 |
484 |
|
.ui-mode-desktop .tab-navigation {
|
| 488 |
485 |
|
display: flex;
|
| 489 |
486 |
|
justify-content: center;
|
| 490 |
|
- |
gap: 0.5rem;
|
|
487 |
+ |
gap: var(--gap-peer);
|
| 491 |
488 |
|
}
|
| 492 |
489 |
|
|
| 493 |
490 |
|
.ui-mode-desktop .tab {
|
| 494 |
491 |
|
display: flex;
|
| 495 |
492 |
|
align-items: center;
|
| 496 |
|
- |
gap: 0.5rem;
|
| 497 |
|
- |
padding: 0.75rem 1.25rem;
|
|
493 |
+ |
gap: var(--gap-bound);
|
|
494 |
+ |
padding: var(--gap-peer) var(--gap-section);
|
| 498 |
495 |
|
text-decoration: none;
|
| 499 |
496 |
|
color: var(--content);
|
| 500 |
497 |
|
background: var(--surface-raised);
|
| 537 |
534 |
|
.ui-mode-desktop .pill-nav {
|
| 538 |
535 |
|
display: flex;
|
| 539 |
536 |
|
align-items: center;
|
| 540 |
|
- |
gap: var(--space-1);
|
|
537 |
+ |
gap: var(--gap-peer);
|
| 541 |
538 |
|
padding: 0;
|
| 542 |
|
- |
margin-bottom: 1rem;
|
|
539 |
+ |
margin-bottom: var(--gap-section);
|
| 543 |
540 |
|
min-height: 2rem;
|
| 544 |
541 |
|
}
|
| 545 |
542 |
|
|
| 546 |
543 |
|
.ui-mode-desktop .pill {
|
| 547 |
|
- |
padding: var(--space-1) var(--space-3);
|
|
544 |
+ |
padding: var(--gap-bound) var(--gap-section);
|
| 548 |
545 |
|
border-radius: var(--radius-xl);
|
| 549 |
546 |
|
border: var(--border-width-sm) solid var(--border);
|
| 550 |
547 |
|
background: var(--surface-raised);
|
| 572 |
569 |
|
max-width: var(--width-container);
|
| 573 |
570 |
|
width: 100%;
|
| 574 |
571 |
|
margin: 0 auto;
|
| 575 |
|
- |
padding: var(--space-6) var(--space-7) var(--space-7);
|
|
572 |
+ |
padding: var(--gap-pane) var(--gap-page) var(--gap-page);
|
| 576 |
573 |
|
}
|
| 577 |
574 |
|
|
| 578 |
575 |
|
/* Page Header */
|
| 580 |
577 |
|
display: flex;
|
| 581 |
578 |
|
justify-content: space-between;
|
| 582 |
579 |
|
align-items: center;
|
| 583 |
|
- |
gap: 0.5rem;
|
| 584 |
|
- |
margin-bottom: 1rem;
|
|
580 |
+ |
gap: var(--gap-section);
|
|
581 |
+ |
margin-bottom: var(--gap-section);
|
| 585 |
582 |
|
}
|
| 586 |
583 |
|
|
| 587 |
584 |
|
.page-title {
|
| 595 |
592 |
|
.page-header-actions {
|
| 596 |
593 |
|
display: flex;
|
| 597 |
594 |
|
align-items: center;
|
| 598 |
|
- |
gap: var(--space-3);
|
|
595 |
+ |
gap: var(--gap-peer);
|
| 599 |
596 |
|
}
|
| 600 |
597 |
|
|
| 601 |
598 |
|
/* --- Merged pill + page-header toolbar --- */
|
| 620 |
617 |
|
#project-dashboard-view > .page-header,
|
| 621 |
618 |
|
#day-plan-view > .page-header {
|
| 622 |
619 |
|
position: static;
|
| 623 |
|
- |
margin-bottom: 1rem;
|
|
620 |
+ |
margin-bottom: var(--gap-section);
|
| 624 |
621 |
|
}
|
| 625 |
622 |
|
|
| 626 |
623 |
|
#project-dashboard-view .page-title {
|
| 632 |
629 |
|
display: inline-flex;
|
| 633 |
630 |
|
align-items: center;
|
| 634 |
631 |
|
justify-content: center;
|
| 635 |
|
- |
gap: 0.5rem;
|
| 636 |
|
- |
padding: 0.625rem 1.25rem;
|
|
632 |
+ |
gap: var(--gap-bound);
|
|
633 |
+ |
padding: var(--gap-peer) var(--gap-section);
|
| 637 |
634 |
|
border: var(--border-width) solid var(--border);
|
| 638 |
635 |
|
border-radius: var(--radius-sm);
|
| 639 |
636 |
|
font-size: 0.9rem;
|
| 704 |
701 |
|
}
|
| 705 |
702 |
|
|
| 706 |
703 |
|
.btn-sm {
|
| 707 |
|
- |
padding: 0.375rem 0.75rem;
|
|
704 |
+ |
padding: var(--gap-bound) var(--gap-group);
|
| 708 |
705 |
|
font-size: 0.8rem;
|
| 709 |
706 |
|
}
|
| 710 |
707 |
|
|
| 716 |
713 |
|
.cards-grid {
|
| 717 |
714 |
|
display: grid;
|
| 718 |
715 |
|
grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
|
| 719 |
|
- |
gap: 1.25rem;
|
|
716 |
+ |
gap: var(--gap-group);
|
| 720 |
717 |
|
}
|
| 721 |
718 |
|
|
| 722 |
719 |
|
.cards-grid-note,
|
| 737 |
734 |
|
background-color: var(--surface-raised);
|
| 738 |
735 |
|
border: var(--border-width) solid var(--border);
|
| 739 |
736 |
|
border-radius: var(--radius-md);
|
| 740 |
|
- |
padding: 1.25rem;
|
|
737 |
+ |
padding: var(--gap-group);
|
| 741 |
738 |
|
box-shadow: var(--bevel-raised);
|
| 742 |
739 |
|
cursor: pointer;
|
| 743 |
740 |
|
}
|
| 755 |
752 |
|
/* Compact card for use in dense vertical lists (e.g. Project Dashboard).
|
| 756 |
753 |
|
Tighter padding, adds list spacing. */
|
| 757 |
754 |
|
.card--list-item {
|
| 758 |
|
- |
padding: 0.75rem;
|
| 759 |
|
- |
margin-bottom: 0.5rem;
|
|
755 |
+ |
padding: var(--gap-peer);
|
|
756 |
+ |
margin-bottom: var(--gap-peer);
|
| 760 |
757 |
|
}
|
| 761 |
758 |
|
|
| 762 |
759 |
|
/* Container shell, keeps card chrome (border/radius/shadow) but strips
|
| 805 |
802 |
|
display: flex;
|
| 806 |
803 |
|
justify-content: space-between;
|
| 807 |
804 |
|
align-items: flex-start;
|
| 808 |
|
- |
margin-bottom: 0.75rem;
|
|
805 |
+ |
margin-bottom: var(--gap-section);
|
| 809 |
806 |
|
}
|
| 810 |
807 |
|
|
| 811 |
808 |
|
.card-title {
|
| 818 |
815 |
|
.card-description {
|
| 819 |
816 |
|
font-size: 0.9rem;
|
| 820 |
817 |
|
color: var(--content-secondary);
|
| 821 |
|
- |
margin-bottom: 1rem;
|
|
818 |
+ |
margin-bottom: var(--gap-section);
|
| 822 |
819 |
|
}
|
| 823 |
820 |
|
|
| 824 |
821 |
|
.markdown-content {
|
| 841 |
838 |
|
|
| 842 |
839 |
|
.card-meta {
|
| 843 |
840 |
|
display: flex;
|
| 844 |
|
- |
gap: 0.5rem;
|
|
841 |
+ |
gap: var(--gap-peer);
|
| 845 |
842 |
|
flex-wrap: wrap;
|
| 846 |
843 |
|
}
|
| 847 |
844 |
|
|
| 850 |
847 |
|
.tag, .badge {
|
| 851 |
848 |
|
display: inline-flex;
|
| 852 |
849 |
|
align-items: center;
|
| 853 |
|
- |
padding: 0.25rem 0.625rem;
|
|
850 |
+ |
padding: var(--step-tight) var(--step-roomy);
|
| 854 |
851 |
|
border: var(--border-width-sm) solid var(--border);
|
| 855 |
852 |
|
border-radius: var(--radius-sm);
|
| 856 |
853 |
|
font-size: 0.8125rem;
|
| 891 |
888 |
|
}
|
| 892 |
889 |
|
|
| 893 |
890 |
|
/* Size modifiers */
|
| 894 |
|
- |
.badge--xs { padding: 0.1rem 0.5rem; font-size: 0.75rem; }
|
| 895 |
|
- |
.badge--sm { padding: 0.15rem 0.55rem; font-size: 0.78rem; }
|
|
891 |
+ |
.badge--xs { padding: var(--step-hair) var(--step-base); font-size: 0.75rem; }
|
|
892 |
+ |
.badge--sm { padding: var(--step-hair) var(--step-roomy); font-size: 0.78rem; }
|
| 896 |
893 |
|
|
| 897 |
894 |
|
/* Filled intent, solid accent fill, no border. Flat by intent, so no bevel
|
| 898 |
895 |
|
either: the fill is the signal and an edge would fight it. Pairs with
|
| 913 |
910 |
|
font-family: var(--font-mono, monospace);
|
| 914 |
911 |
|
font-size: 0.65rem;
|
| 915 |
912 |
|
font-weight: 600;
|
| 916 |
|
- |
padding: 0.1rem 0.35rem;
|
| 917 |
|
- |
margin-left: 0.35rem;
|
|
913 |
+ |
padding: var(--step-hair) var(--step-snug);
|
|
914 |
+ |
margin-left: var(--gap-bound);
|
| 918 |
915 |
|
border: var(--border-width) solid currentColor;
|
| 919 |
916 |
|
border-radius: var(--radius-xs);
|
| 920 |
917 |
|
opacity: 0.6;
|
| 951 |
948 |
|
/* Inline marker on a task row whose project is shared. */
|
| 952 |
949 |
|
.shared-badge {
|
| 953 |
950 |
|
display: inline-block;
|
| 954 |
|
- |
margin-left: var(--space-2);
|
| 955 |
|
- |
padding: 0 var(--space-2);
|
|
951 |
+ |
margin-left: var(--gap-bound);
|
|
952 |
+ |
padding: 0 var(--step-base);
|
| 956 |
953 |
|
border-radius: var(--radius-sm);
|
| 957 |
954 |
|
font-size: var(--font-size-xs);
|
| 958 |
955 |
|
line-height: 1.4;
|
| 975 |
972 |
|
|
| 976 |
973 |
|
.data-table th,
|
| 977 |
974 |
|
.data-table td {
|
| 978 |
|
- |
padding: 1rem 1.25rem;
|
|
975 |
+ |
padding: var(--gap-peer) var(--gap-section);
|
| 979 |
976 |
|
text-align: left;
|
| 980 |
977 |
|
border-bottom: var(--border-width) solid var(--border);
|
| 981 |
978 |
|
}
|
| 1025 |
1022 |
|
(a single-letter H/M/L body) is widened just enough to fit "Priority". */
|
| 1026 |
1023 |
|
grid-template-columns: minmax(200px, 1fr) 140px 80px 110px 90px 100px 90px;
|
| 1027 |
1024 |
|
align-items: center;
|
| 1028 |
|
- |
gap: 0.75rem;
|
|
1025 |
+ |
gap: var(--gap-group);
|
| 1029 |
1026 |
|
}
|
| 1030 |
1027 |
|
|
| 1031 |
1028 |
|
/* Task Header Row */
|
| 1032 |
1029 |
|
.task-header-row {
|
| 1033 |
1030 |
|
background-color: var(--surface-overlay);
|
| 1034 |
1031 |
|
border-bottom: var(--border-width) solid var(--border);
|
| 1035 |
|
- |
padding: 0 1.25rem;
|
|
1032 |
+ |
padding: 0 var(--gap-section);
|
| 1036 |
1033 |
|
}
|
| 1037 |
1034 |
|
|
| 1038 |
1035 |
|
.task-header-row .task-cell {
|
| 1039 |
|
- |
padding: 0.75rem 0;
|
|
1036 |
+ |
padding: var(--gap-peer) 0;
|
| 1040 |
1037 |
|
font-size: 0.8rem;
|
| 1041 |
1038 |
|
font-weight: 700;
|
| 1042 |
1039 |
|
text-transform: uppercase;
|
| 1054 |
1051 |
|
|
| 1055 |
1052 |
|
/* Task Row */
|
| 1056 |
1053 |
|
.task-row {
|
| 1057 |
|
- |
padding: 0.75rem 1.25rem;
|
|
1054 |
+ |
padding: var(--gap-peer) var(--gap-section);
|
| 1058 |
1055 |
|
border-bottom: var(--border-width) solid var(--border);
|
| 1059 |
1056 |
|
cursor: pointer;
|
| 1060 |
1057 |
|
}
|
| 1097 |
1094 |
|
display: flex;
|
| 1098 |
1095 |
|
flex-wrap: wrap;
|
| 1099 |
1096 |
|
align-items: center;
|
| 1100 |
|
- |
gap: 0.25rem 0.5rem;
|
|
1097 |
+ |
gap: var(--gap-bound) var(--gap-peer);
|
| 1101 |
1098 |
|
}
|
| 1102 |
1099 |
|
|
| 1103 |
1100 |
|
.task-description-text {
|
| 1119 |
1116 |
|
.priority-medium,
|
| 1120 |
1117 |
|
.priority-low {
|
| 1121 |
1118 |
|
display: inline-block;
|
| 1122 |
|
- |
padding: 0.25rem 0.5rem;
|
|
1119 |
+ |
padding: var(--step-tight) var(--step-base);
|
| 1123 |
1120 |
|
border-radius: var(--radius-xs);
|
| 1124 |
1121 |
|
font-weight: 700;
|
| 1125 |
1122 |
|
text-align: center;
|
| 1156 |
1153 |
|
.sort-arrow {
|
| 1157 |
1154 |
|
display: inline-block;
|
| 1158 |
1155 |
|
width: 0.8em;
|
| 1159 |
|
- |
margin-left: 0.25rem;
|
|
1156 |
+ |
margin-left: var(--gap-bound);
|
| 1160 |
1157 |
|
opacity: 0.3;
|
| 1161 |
1158 |
|
}
|
| 1162 |
1159 |
|
|
| 1189 |
1186 |
|
|
| 1190 |
1187 |
|
.task-tags {
|
| 1191 |
1188 |
|
display: flex;
|
| 1192 |
|
- |
gap: 0.25rem;
|
|
1189 |
+ |
gap: var(--gap-peer);
|
| 1193 |
1190 |
|
flex-wrap: wrap;
|
| 1194 |
1191 |
|
}
|
| 1195 |
1192 |
|
|
| 1196 |
1193 |
|
.task-tag {
|
| 1197 |
1194 |
|
background-color: var(--surface-sunken);
|
| 1198 |
1195 |
|
color: var(--content);
|
| 1199 |
|
- |
padding: 0.125rem 0.5rem;
|
|
1196 |
+ |
padding: var(--step-hair) var(--step-base);
|
| 1200 |
1197 |
|
border-radius: var(--radius-xs);
|
| 1201 |
1198 |
|
font-size: 0.75rem;
|
| 1202 |
1199 |
|
font-weight: 600;
|
| 1212 |
1209 |
|
.annotation-badge {
|
| 1213 |
1210 |
|
background-color: var(--warning);
|
| 1214 |
1211 |
|
color: var(--content);
|
| 1215 |
|
- |
padding: 0.125rem 0.5rem;
|
|
1212 |
+ |
padding: var(--step-hair) var(--step-base);
|
| 1216 |
1213 |
|
border-radius: var(--radius-xs);
|
| 1217 |
1214 |
|
font-size: 0.7rem;
|
| 1218 |
1215 |
|
font-weight: 700;
|
| 1222 |
1219 |
|
.subtask-badge {
|
| 1223 |
1220 |
|
background-color: var(--surface-overlay);
|
| 1224 |
1221 |
|
color: var(--content);
|
| 1225 |
|
- |
padding: 0.125rem 0.5rem;
|
|
1222 |
+ |
padding: var(--step-hair) var(--step-base);
|
| 1226 |
1223 |
|
border-radius: var(--radius-xs);
|
| 1227 |
1224 |
|
font-size: 0.7rem;
|
| 1228 |
1225 |
|
font-weight: 700;
|
| 1229 |
1226 |
|
border: var(--border-width-sm) solid var(--border);
|
| 1230 |
|
- |
margin-left: 0.25rem;
|
|
1227 |
+ |
margin-left: var(--gap-bound);
|
| 1231 |
1228 |
|
}
|
| 1232 |
1229 |
|
|
| 1233 |
1230 |
|
.task-pending { }
|
| 1246 |
1243 |
|
font-weight: 700;
|
| 1247 |
1244 |
|
background: #fde8ea; /* Fallback for browsers without color-mix() */
|
| 1248 |
1245 |
|
background: color-mix(in srgb, var(--danger) 15%, var(--surface-raised));
|
| 1249 |
|
- |
padding: 0.25rem 0.5rem;
|
|
1246 |
+ |
padding: var(--step-tight) var(--step-base);
|
| 1250 |
1247 |
|
border-radius: var(--radius-xs);
|
| 1251 |
1248 |
|
}
|
| 1252 |
1249 |
|
.due-today {
|
| 1254 |
1251 |
|
font-weight: 700;
|
| 1255 |
1252 |
|
background: #fef8e6; /* Fallback for browsers without color-mix() */
|
| 1256 |
1253 |
|
background: color-mix(in srgb, var(--warning) 15%, var(--surface-raised));
|
| 1257 |
|
- |
padding: 0.25rem 0.5rem;
|
|
1254 |
+ |
padding: var(--step-tight) var(--step-base);
|
| 1258 |
1255 |
|
border-radius: var(--radius-xs);
|
| 1259 |
1256 |
|
}
|
| 1260 |
1257 |
|
.due-soon { color: var(--content-secondary); }
|
| 1266 |
1263 |
|
flex-direction: column;
|
| 1267 |
1264 |
|
flex: 1;
|
| 1268 |
1265 |
|
min-height: 0;
|
| 1269 |
|
- |
gap: 1rem;
|
|
1266 |
+ |
gap: var(--gap-peer);
|
| 1270 |
1267 |
|
}
|
| 1271 |
1268 |
|
|
| 1272 |
1269 |
|
/* Event Table - CSS Grid based for virtual scrolling */
|
| 1289 |
1286 |
|
display: grid;
|
| 1290 |
1287 |
|
grid-template-columns: 100px 80px 1fr 150px 40px;
|
| 1291 |
1288 |
|
align-items: center;
|
| 1292 |
|
- |
gap: 0.5rem;
|
|
1289 |
+ |
gap: var(--gap-group);
|
| 1293 |
1290 |
|
}
|
| 1294 |
1291 |
|
|
| 1295 |
1292 |
|
/* Event Header Row */
|
| 1300 |
1297 |
|
}
|
| 1301 |
1298 |
|
|
| 1302 |
1299 |
|
.event-header-row .event-cell {
|
| 1303 |
|
- |
padding: 1rem 1.25rem;
|
|
1300 |
+ |
padding: var(--gap-peer) var(--gap-section);
|
| 1304 |
1301 |
|
font-size: 0.8rem;
|
| 1305 |
1302 |
|
font-weight: 700;
|
| 1306 |
1303 |
|
text-transform: uppercase;
|
| 1318 |
1315 |
|
|
| 1319 |
1316 |
|
/* Event Row */
|
| 1320 |
1317 |
|
.event-row-virtual {
|
| 1321 |
|
- |
padding: 0.75rem 1.25rem;
|
|
1318 |
+ |
padding: var(--gap-peer) var(--gap-section);
|
| 1322 |
1319 |
|
border-bottom: var(--border-width) solid var(--border);
|
| 1323 |
1320 |
|
cursor: pointer;
|
| 1324 |
1321 |
|
}
|
| 1354 |
1351 |
|
font-weight: 700;
|
| 1355 |
1352 |
|
font-size: 0.9rem;
|
| 1356 |
1353 |
|
color: var(--content);
|
| 1357 |
|
- |
margin-right: 0.5rem;
|
|
1354 |
+ |
margin-right: var(--gap-bound);
|
| 1358 |
1355 |
|
}
|
| 1359 |
1356 |
|
|
| 1360 |
1357 |
|
.event-date-badge {
|
| 1361 |
1358 |
|
display: inline-block;
|
| 1362 |
|
- |
padding: 0.15rem 0.4rem;
|
|
1359 |
+ |
padding: var(--step-hair) var(--step-snug);
|
| 1363 |
1360 |
|
background: var(--success);
|
| 1364 |
1361 |
|
color: var(--content-on-action);
|
| 1365 |
1362 |
|
font-size: 0.7rem;
|
| 1366 |
1363 |
|
font-weight: 700;
|
| 1367 |
1364 |
|
text-transform: uppercase;
|
| 1368 |
1365 |
|
border-radius: var(--radius-xs);
|
| 1369 |
|
- |
margin-right: 0.5rem;
|
|
1366 |
+ |
margin-right: var(--gap-bound);
|
| 1370 |
1367 |
|
}
|
| 1371 |
1368 |
|
|
| 1372 |
1369 |
|
|
| 1410 |
1407 |
|
|
| 1411 |
1408 |
|
.no-upcoming-events {
|
| 1412 |
1409 |
|
text-align: center;
|
| 1413 |
|
- |
padding: var(--space-7);
|
|
1410 |
+ |
padding: var(--gap-pane);
|
| 1414 |
1411 |
|
color: var(--content-secondary);
|
| 1415 |
1412 |
|
font-style: italic;
|
| 1416 |
1413 |
|
}
|
| 1417 |
1414 |
|
|
| 1418 |
1415 |
|
/* Past Events Collapsible Section */
|
| 1419 |
1416 |
|
.past-events-section {
|
| 1420 |
|
- |
margin-top: 0.5rem;
|
|
1417 |
+ |
margin-top: var(--gap-section);
|
| 1421 |
1418 |
|
}
|
| 1422 |
1419 |
|
|
| 1423 |
1420 |
|
.past-events-toggle {
|
| 1424 |
1421 |
|
display: flex;
|
| 1425 |
1422 |
|
align-items: center;
|
| 1426 |
|
- |
gap: 0.75rem;
|
| 1427 |
|
- |
padding: 0.75rem 1rem;
|
|
1423 |
+ |
gap: var(--gap-bound);
|
|
1424 |
+ |
padding: var(--gap-peer) var(--gap-group);
|
| 1428 |
1425 |
|
background: var(--surface-overlay);
|
| 1429 |
1426 |
|
border: var(--border-width-sm) solid var(--border);
|
| 1430 |
1427 |
|
border-radius: var(--radius-sm);
|
| 1460 |
1457 |
|
background: var(--content-muted);
|
| 1461 |
1458 |
|
color: var(--content-on-action);
|
| 1462 |
1459 |
|
font-size: 0.75rem;
|
| 1463 |
|
- |
padding: 0.15rem 0.5rem;
|
|
1460 |
+ |
padding: var(--step-hair) var(--step-base);
|
| 1464 |
1461 |
|
border-radius: var(--radius-sm);
|
| 1465 |
1462 |
|
}
|
| 1466 |
1463 |
|
|
| 1467 |
1464 |
|
.past-events-section .event-table-past {
|
| 1468 |
|
- |
margin-top: 0.75rem;
|
|
1465 |
+ |
margin-top: var(--gap-peer);
|
| 1469 |
1466 |
|
opacity: 0.85;
|
| 1470 |
1467 |
|
}
|
| 1471 |
1468 |
|
|
| 1478 |
1475 |
|
and isn't dimmed. */
|
| 1479 |
1476 |
|
#recurring-events-section .event-table-virtual {
|
| 1480 |
1477 |
|
opacity: 1;
|
| 1481 |
|
- |
margin-top: 0.75rem;
|
|
1478 |
+ |
margin-top: var(--gap-peer);
|
| 1482 |
1479 |
|
}
|