/* ============================================================ StepSequencePanel — fixed bottom panel for guided step sequences Elderly-friendly: high contrast, large buttons, clear progress ============================================================ */ .step-panel { flex-shrink: 0; background-color: var(--color-surface); border-top: 3px solid var(--color-primary); padding: var(--spacing-md) var(--spacing-lg); display: flex; flex-direction: column; gap: var(--spacing-md); box-shadow: 0 -4px 16px var(--color-shadow); animation: slideUp 300ms ease forwards; } /* ---- Header row ---- */ .step-panel__header { display: flex; align-items: center; justify-content: space-between; gap: var(--spacing-md); flex-wrap: wrap; } .step-panel__task-name { font-size: var(--font-size-md); font-weight: 700; color: var(--color-primary); } .step-panel__step-count { font-size: var(--font-size-base); font-weight: 600; color: var(--color-text-light); white-space: nowrap; } /* ---- Progress bar ---- */ .step-panel__progress { display: flex; gap: 4px; height: 10px; border-radius: var(--radius-full); overflow: hidden; } .step-panel__progress-segment { flex: 1; background-color: var(--color-border); border-radius: var(--radius-full); transition: background-color var(--transition); } .step-panel__progress-segment--filled { background-color: var(--color-primary); } /* ---- Current step box ---- */ .step-panel__current-step { background-color: var(--color-primary-light); border: 2px solid var(--color-primary); border-radius: var(--radius-md); padding: var(--spacing-md) var(--spacing-lg); } .step-panel__step-text { font-size: var(--font-size-md); font-weight: 600; color: var(--color-text); line-height: var(--line-height); margin: 0; } /* ---- Action buttons ---- */ .step-panel__actions { display: flex; gap: var(--spacing-md); flex-wrap: wrap; } .step-panel__btn { flex: 1; min-width: 180px; font-size: var(--font-size-md); font-weight: 700; padding: var(--spacing-md) var(--spacing-lg); min-height: 56px; border-radius: var(--radius-md); cursor: pointer; transition: background-color var(--transition), box-shadow var(--transition), transform var(--transition); } .step-panel__btn--primary { background-color: var(--color-primary); color: var(--color-white); border: none; } .step-panel__btn--primary:hover:not(:disabled) { background-color: var(--color-primary-dark); box-shadow: 0 4px 12px var(--color-shadow); } .step-panel__btn--secondary { background-color: var(--color-white); color: var(--color-text); border: 2px solid var(--color-border); } .step-panel__btn--secondary:hover:not(:disabled) { background-color: var(--color-surface-alt); border-color: var(--color-primary); } .step-panel__btn:focus-visible { outline: 3px solid var(--color-primary); outline-offset: 3px; } .step-panel__btn:active { transform: scale(0.98); } /* ---- Responsive: stack buttons vertically on narrow screens ---- */ @media (max-width: 480px) { .step-panel__actions { flex-direction: column; } .step-panel__btn { min-width: 0; width: 100%; } }