| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261 |
- /* Container for 2 synced rows */
- .steps { margin-bottom: 1rem; }
- /* Top row = your existing arrows (kept as-is) */
- .step-menu {
- display: flex;
- flex-wrap: wrap;
- padding: 0;
- list-style: none;
- justify-content: center;
- margin: 0 0 .25rem 0;
- }
- .step-menu li {
- position: relative;
- flex: 1 1 auto;
- min-width: 120px;
- max-width: 160px; /* match date row to keep columns aligned */
- text-align: center;
- background: #e9ecef;
- color: #6c757d;
- font-weight: 600;
- padding: .8rem 1rem 1rem 2rem;
- margin: .25rem;
- transition: all .3s ease;
- z-index: 1;
- }
- .step-menu li:before {
- content: '';
- position: absolute;
- border: 27px solid transparent;
- border-left-color: #fff;
- top:0; right: -60px;
- }
- .step-menu li:after {
- content: '';
- position: absolute;
- border: 26px solid transparent;
- border-left-color: #ddd;
- top:0; right: -50px;
- }
- /* keep your special paddings so arrows look right */
- .step-menu li:nth-child(1){ z-index:700; margin-left:0; padding-left:50px; }
- .step-menu li:nth-child(2){ z-index:600; }
- .step-menu li:nth-child(3){ z-index:500; }
- .step-menu li:nth-child(4){ z-index:400; }
- .step-menu li:nth-child(5){ z-index:300; }
- .step-menu li:nth-child(6){ z-index:200; }
- .step-menu li:nth-child(7){ z-index:100; padding-right:10px; }
- .step-menu li:nth-child(7):after,
- .step-menu li:nth-child(7):before { border:none; }
- /* State colours (same as you had) */
- .step-menu li.current { background:#97846E; color:#EADFD7; }
- .step-menu li.current:after { border-left-color:#97846E; }
- .step-menu li.pending { background:#e9ecef; color:#055160; }
- .step-menu li.pending:after { border-left-color:#e9ecef; }
- .step-menu li.complete { background:#d1e7dd; color:#0f5132; }
- .step-menu li.complete:after { border-left-color:#d1e7dd; }
- .step-menu li.upcoming { background:#dee2e6; color:#495057; }
- .step-menu li.upcoming:after { border-left-color:#dee2e6; }
- /* Bottom row = dates */
- .step-dates{
- display:flex;
- flex-wrap:wrap;
- padding:0;
- list-style:none;
- justify-content:center;
- margin: 0;
- }
- .step-dates li{
- flex: 1 1 auto;
- min-width: 120px;
- max-width: 160px; /* == step-menu li */
- text-align:center;
- margin: .25rem;
- padding: .25rem 1rem .5rem 1rem; /* mirror left pad so column widths match */
- font-size: .95rem;
- line-height: 1.2;
- white-space: nowrap;
- }
- .step-dates li:nth-child(1){ padding-left:50px; }
- .step-dates li:nth-child(7){ padding-right:10px; }
- /* Date colours by state */
- .step-dates li.complete { color:#0f5132; }
- .step-dates li.current { color:#7c6a57; font-weight:600; }
- .step-dates li.pending,
- .step-dates li.upcoming { color:#6c757d; }
- /* Mobile: stack nicely */
- @media (max-width: 1399px) {
- .step-menu li, .step-dates li { flex: 1 1 100%; max-width: 100%; }
- .step-menu li, .step-dates li { padding-left: 1rem; padding-right: 1rem; }
- .step-menu li::before,
- .step-menu li::after {
- content: none !important; /* removes the generated box */
- /* fallback (older browsers): */
- display: none !important;
- border: 0 !important;
- }
- }
- .step-menu li.complete.current {
- background-color: #d1e7dd; /* keep the 'complete' green */
- color: #0f5132;
- box-shadow: 0 0 0.5rem rgba(99, 90, 74, .35);
- border: 2px solid #97846E; /* subtle emphasis */
- }
- /* inline date under each arrow on mobile */
- .date-inline { display:block; }
- @media (max-width: 1399px) {
- .step-menu li {
- flex: 1 1 100%;
- margin: 0.5rem 0;
- }
- }
- /* Countdown container */
- .countdown{
- --number-color: #635A4A;
- --text-color: #D9CCC1;
- --dot-color: #635A4A;
- --dot-color-remaining: #D9CCC1;
- --dot-color-active: green;
- font-family: system-ui, sans-serif;
- display: grid;
- grid-template-columns: repeat(4, 1fr);
- gap: 1rem;
- width: min(40rem, 100%);
- margin-inline: auto;
- container: inline-size;
- > .part {
- aspect-ratio: 1/1;
- display: grid;
- place-items: center;
- > .remaining {
- grid-area: 1/1;
- color: hsl(0 0% 100%);
- display: grid;
- text-align: center;
- font-size: 3cqi;
- >.number {
- color: var(--number-color);
- line-height: 5rem;
- }
- >.text {
- color: var(--text-color);
- text-transform: uppercase;
- font-size: 0.2em;
- font-weight: bold;
- }
- }
- > .dot-container {
- grid-area: 1/1;
- height: 100%;
- width: 4%;
- rotate: calc(360deg / var(--dots) * var(--dot-idx));
- > .dot {
- width: 100%;
- aspect-ratio: 1/1;
- background-color: var(--dot-color);
- border-radius: 50%;
- transition: background-color .25s;
- &[data-active=true]{
- background-color: var(--dot-color-remaining);
- &[data-lastactive=true]{
- background-color: var(--dot-color-active);
- }
- }
- }
- }
- }
- }
- /* Timeline base */
- .timeline {
- position: relative;
- padding: 1rem 0;
- }
- .timeline::before {
- content: '';
- position: absolute;
- top: 0; bottom: 0; left: 50%;
- width: 2px; background: #e9ecef;
- transform: translateX(-50%);
- }
- .timeline-item {
- position: relative;
- display: flex;
- margin: 1rem 0;
- }
- .timeline-badge {
- position: absolute;
- left: 50%; transform: translate(-50%, 0);
- z-index: 2;
- background: #fff; border: 2px solid #dee2e6; color: #6c757d;
- width: 38px; height: 38px; border-radius: 50%;
- display: grid; place-items: center;
- }
- .timeline-panel {
- width: 46%;
- background: #fff;
- border: 1px solid #e9ecef;
- border-radius: 0;
- padding: .75rem .9rem;
- box-shadow: 0 2px 6px rgba(16,24,40,.04);
- }
- /* Left/right alternation on xl+ */
- @media (min-width: 1200px) {
- .timeline-item:nth-child(odd) .timeline-panel { margin-right: auto; }
- .timeline-item:nth-child(even) .timeline-panel { margin-left: auto; }
- }
- /* Pinned accent */
- .timeline-item.pinned .timeline-badge {
- border-color: #f7e7a7;
- background: #fff8dc;
- color: #856404;
- }
- /* Mobile: single column, line on the left */
- @media (max-width: 1199.98px) {
- .timeline::before { left: 20px; transform: none; }
- .timeline-badge { left: 20px; transform: none; }
- .timeline-panel { width: 100%; margin-left: 56px; }
- }
- /* base */
- .timeline-panel {
- border-left: 3px solid transparent;
- background: #fff;
- }
- /* incoming (council -> you) */
- .timeline-panel.type-incoming {
- border-left-color: var(--bs-primary);
- background-image: linear-gradient(to right, rgba(13,110,253,.06), rgba(13,110,253,0));
- }
- /* outgoing (you -> council) */
- .timeline-panel.type-outgoing {
- border-left-color: var(--bs-success);
- background-image: linear-gradient(to right, rgba(25,135,84,.07), rgba(25,135,84,0));
- }
- /* notes */
- .timeline-panel.type-note {
- border-left-color: var(--bs-warning);
- background-image: linear-gradient(to right, rgba(255,193,7,.10), rgba(255,193,7,0));
- }
- /* optional: tint the badge ring to match (if you added type-* to .timeline-item too) */
- .timeline-item.type-incoming .timeline-badge { border-color: rgba(13,110,253,.35); }
- .timeline-item.type-outgoing .timeline-badge { border-color: rgba(25,135,84,.35); }
- .timeline-item.type-note .timeline-badge { border-color: rgba(255,193,7,.45); }
|