new raceday and backup
This commit is contained in:
@@ -3842,3 +3842,90 @@ select:focus {
|
||||
grid-row: 2;
|
||||
}
|
||||
}
|
||||
|
||||
/* Race Day keeps the operator focused on session safety and the next heats. */
|
||||
.race-day-hero {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
gap: 24px;
|
||||
padding: 22px 24px;
|
||||
border: 1px solid var(--line);
|
||||
border-left: 5px solid var(--danger);
|
||||
border-radius: 18px;
|
||||
background: linear-gradient(110deg, color-mix(in srgb, var(--danger) 15%, var(--surface-card)), var(--surface-card) 54%);
|
||||
}
|
||||
|
||||
.race-day-hero.is-ready {
|
||||
border-left-color: var(--success);
|
||||
background: linear-gradient(110deg, color-mix(in srgb, var(--success) 13%, var(--surface-card)), var(--surface-card) 54%);
|
||||
}
|
||||
|
||||
.race-day-hero h2,
|
||||
.race-day-hero p { margin: 0; }
|
||||
.race-day-hero h2 { margin-top: 4px; font-family: Orbitron, sans-serif; }
|
||||
.race-day-hero p { margin-top: 5px; color: var(--muted); }
|
||||
.race-day-kicker { color: var(--muted); font-size: 0.72rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; }
|
||||
.race-day-clock { text-align: right; }
|
||||
.race-day-clock strong { display: block; font: 700 clamp(1.8rem, 4vw, 3.4rem)/1 Orbitron, sans-serif; }
|
||||
.race-day-clock span { color: var(--muted); font-size: 0.72rem; text-transform: uppercase; }
|
||||
|
||||
.race-day-layout { display: grid; grid-template-columns: minmax(0, 1.7fr) minmax(280px, 0.8fr); gap: 16px; margin-top: 16px; }
|
||||
.race-day-main { display: grid; gap: 16px; min-width: 0; }
|
||||
.race-day-side { min-width: 0; }
|
||||
.race-day-control-panel .panel-header { align-items: flex-start; }
|
||||
.race-day-actions,
|
||||
.race-day-shortcuts { display: flex; flex-wrap: wrap; gap: 8px; }
|
||||
.race-day-actions .btn { min-width: 126px; }
|
||||
.race-day-shortcuts { margin-top: 14px; }
|
||||
|
||||
.race-day-checks { display: grid; gap: 7px; }
|
||||
.race-day-check { display: grid; grid-template-columns: 12px minmax(0, 1fr); gap: 9px; align-items: center; padding: 8px 9px; border: 1px solid var(--line); border-radius: 10px; background: var(--surface-card); }
|
||||
.race-day-check > span { width: 10px; height: 10px; border-radius: 50%; background: var(--muted); }
|
||||
.race-day-check.is-ok > span { background: var(--success); box-shadow: 0 0 10px color-mix(in srgb, var(--success) 65%, transparent); }
|
||||
.race-day-check.is-warning > span { background: #e6a93c; }
|
||||
.race-day-check.is-error > span { background: var(--danger); box-shadow: 0 0 10px color-mix(in srgb, var(--danger) 65%, transparent); }
|
||||
.race-day-check strong,
|
||||
.race-day-check small { display: block; }
|
||||
.race-day-check strong { font-size: 0.78rem; }
|
||||
.race-day-check small { margin-top: 1px; color: var(--muted); font-size: 0.68rem; }
|
||||
|
||||
.race-day-grid-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 8px; }
|
||||
.race-day-grid-list article { display: grid; grid-template-columns: 30px minmax(0, 1fr); gap: 2px 8px; align-items: center; padding: 8px 10px; border: 1px solid var(--line); border-radius: 10px; background: var(--surface-card); }
|
||||
.race-day-grid-list article > span { grid-row: 1 / 3; font: 700 1rem Orbitron, sans-serif; color: var(--accent); }
|
||||
.race-day-grid-list strong,
|
||||
.race-day-grid-list small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
||||
.race-day-grid-list small { color: var(--muted); }
|
||||
|
||||
.race-day-queue { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
|
||||
.race-day-queue-card { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 5px 8px; padding: 12px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface-card); }
|
||||
.race-day-queue-card > span:first-child { grid-column: 1 / -1; color: var(--muted); font-size: 0.65rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; }
|
||||
.race-day-queue-card > strong,
|
||||
.race-day-queue-card > small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
||||
.race-day-queue-card > small { color: var(--muted); }
|
||||
.race-day-queue-card .btn { justify-self: end; }
|
||||
.race-day-queue-card.is-empty { opacity: 0.58; }
|
||||
|
||||
.backup-manager { padding: 14px; border: 1px solid var(--line); border-radius: 14px; background: var(--surface-card); }
|
||||
.backup-manager-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
|
||||
.backup-manager-header p { margin: 4px 0 0; }
|
||||
.backup-list { display: grid; gap: 6px; margin: 12px 0; }
|
||||
.backup-row { display: grid; grid-template-columns: minmax(0, 1fr) 110px 74px; gap: 10px; align-items: center; padding: 8px 10px; border: 1px solid var(--line); border-radius: 9px; }
|
||||
.backup-row strong,
|
||||
.backup-row small { display: block; }
|
||||
.backup-row small { overflow: hidden; color: var(--muted); font-size: 0.66rem; text-overflow: ellipsis; white-space: nowrap; }
|
||||
.backup-row > span { color: var(--muted); font-size: 0.72rem; text-align: right; }
|
||||
|
||||
@media (max-width: 980px) {
|
||||
.race-day-layout { grid-template-columns: 1fr; }
|
||||
.race-day-queue { grid-template-columns: 1fr; }
|
||||
}
|
||||
|
||||
@media (max-width: 620px) {
|
||||
.race-day-hero,
|
||||
.backup-manager-header { align-items: stretch; flex-direction: column; }
|
||||
.race-day-clock { text-align: left; }
|
||||
.race-day-actions .btn { flex: 1 1 120px; }
|
||||
.backup-row { grid-template-columns: 1fr auto; }
|
||||
.backup-row > span:first-of-type { display: none; }
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user