COS498-Group7 / client /src /components /Chat /StepSequencePanel.css
izzicooki's picture
feat: add visual guide system (Task 9)
15926a2
/* ============================================================
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%;
}
}