update
dongho-repo/worldcup2026/pipeline/head This commit looks good

This commit is contained in:
Dongho Kim
2026-06-12 22:53:08 +02:00
parent 805248f6d2
commit d5c9765970
4 changed files with 765 additions and 58 deletions
+360
View File
@@ -808,6 +808,366 @@ body {
.modal-group-id { font-size: 36px; }
}
/* ── Reset Button in Header/Filter Bar ── */
.reset-simulation-btn {
background: var(--bg-element);
border: 1px dashed var(--border);
border-radius: 20px;
color: var(--text-muted);
cursor: pointer;
font-family: inherit; font-size: 12px; font-weight: 600;
padding: 6px 14px;
transition: all var(--transition);
margin-left: auto;
display: flex;
align-items: center;
gap: 6px;
}
.reset-simulation-btn:hover {
background: rgba(239, 68, 68, 0.1);
border-color: rgba(239, 68, 68, 0.4);
color: #ef4444;
transform: translateY(-1px);
}
/* ── Group Card Ranks & Points ── */
.team-rank {
font-size: 11px;
font-weight: 800;
width: 18px;
height: 18px;
display: flex;
align-items: center;
justify-content: center;
border-radius: 50%;
margin-right: 4px;
flex-shrink: 0;
}
.team-rank.rank-adv {
background: rgba(34, 197, 94, 0.15);
color: #22c55e;
}
.team-rank.rank-pot {
background: rgba(245, 158, 11, 0.15);
color: #f59e0b;
}
.team-rank.rank-el {
background: rgba(239, 68, 68, 0.15);
color: #ef4444;
}
.team-pts-badge {
font-size: 11px;
font-weight: 800;
color: var(--gold);
background: rgba(255, 215, 0, 0.1);
padding: 2px 6px;
border-radius: 4px;
margin-left: auto;
letter-spacing: 0.5px;
}
/* ── Standings Table in Modal ── */
.standings-wrapper {
margin-bottom: 16px;
}
.standings-table {
width: 100%;
border-collapse: collapse;
margin-top: 10px;
font-size: 14px;
}
.standings-table th, .standings-table td {
padding: 12px 10px;
text-align: center;
border-bottom: 1px solid var(--border-light);
}
.standings-table th {
font-weight: 700;
color: var(--text-muted);
font-size: 11px;
text-transform: uppercase;
letter-spacing: 1px;
background: var(--bg-element);
}
.standings-table tbody tr {
transition: background var(--transition);
}
.standings-table tbody tr:hover {
background: var(--bg-element);
}
.standings-table td.col-team {
text-align: left;
display: flex;
align-items: center;
gap: 8px;
}
.table-flag {
font-size: 20px;
line-height: 1;
}
.table-team-name {
font-weight: 600;
color: var(--text-primary);
}
.table-host-badge {
font-size: 12px;
cursor: help;
}
.col-pos {
width: 40px;
}
.table-rank-num {
width: 22px;
height: 22px;
display: inline-flex;
align-items: center;
justify-content: center;
border-radius: 50%;
font-weight: 800;
font-size: 12px;
}
.table-rank-num.rank-adv {
background: rgba(34, 197, 94, 0.2);
color: #4ade80;
}
.table-rank-num.rank-pot {
background: rgba(245, 158, 11, 0.2);
color: #facc15;
}
.table-rank-num.rank-el {
background: rgba(239, 68, 68, 0.2);
color: #f87171;
}
.col-pts {
font-weight: 800;
color: var(--gold);
}
.font-w-600 {
font-weight: 600;
}
/* Row-based visual indicators */
.standings-table tbody tr.row-adv td.col-team {
border-left: 3px solid #22c55e;
}
.standings-table tbody tr.row-pot td.col-team {
border-left: 3px solid #f59e0b;
}
.standings-table tbody tr.row-el td.col-team {
border-left: 3px solid #ef4444;
}
.standings-legend {
display: flex;
gap: 20px;
margin-top: 18px;
padding: 10px 14px;
background: var(--bg-element);
border-radius: 8px;
flex-wrap: wrap;
}
.legend-item {
display: flex;
align-items: center;
gap: 8px;
}
.legend-dot {
width: 8px;
height: 8px;
border-radius: 50%;
}
.legend-dot.dot-adv {
background: #22c55e;
}
.legend-dot.dot-pot {
background: #f59e0b;
}
.legend-text {
font-size: 12px;
color: var(--text-muted);
font-weight: 500;
}
/* Hide some columns on mobile */
@media (max-width: 640px) {
.text-hide-mobile {
display: none;
}
.standings-table th, .standings-table td {
padding: 10px 6px;
font-size: 13px;
}
.reset-simulation-btn {
margin-left: 0;
margin-top: 10px;
width: 100%;
justify-content: center;
}
}
/* ── Match Score Displays ── */
.mc-score-wrap {
display: flex;
align-items: center;
gap: 6px;
background: var(--bg-card);
padding: 4px 12px;
border-radius: 20px;
border: 1px solid var(--border);
box-shadow: var(--shadow-md);
position: relative;
}
.mc-score {
font-size: 18px;
font-weight: 800;
line-height: 1;
}
.mc-score.mc-team-winner {
color: var(--gold);
}
.mc-score.mc-team-loser {
color: var(--text-muted);
}
.mc-score.mc-team-draw {
color: var(--text-primary);
}
.mc-score-dash {
font-size: 14px;
color: var(--text-faint);
font-weight: 700;
}
.mc-status-badge {
font-size: 9px;
font-weight: 900;
background: var(--border-hover);
color: var(--text-primary);
padding: 2px 6px;
border-radius: 10px;
margin-left: 4px;
text-transform: uppercase;
}
.match-finished {
background: color-mix(in srgb, var(--match-color, var(--gold)) 3%, var(--bg-element));
}
.match-finished .home-col .mc-name,
.match-finished .away-col .mc-name {
font-weight: 550;
}
/* Scorers list */
.match-scorers-panel {
display: flex;
justify-content: space-between;
padding: 10px 22px;
font-size: 12px;
color: var(--text-muted);
background: var(--bg-element);
border-bottom: 1px solid var(--border-light);
gap: 16px;
}
.scorers-team {
flex: 1;
font-weight: 500;
}
.home-scorers {
text-align: right;
}
.away-scorers {
text-align: left;
}
.scorers-divider {
width: 1px;
background: var(--border-light);
}
/* ── Score Simulator Panel ── */
.simulator-section {
padding: 16px 22px;
background: linear-gradient(180deg, transparent, color-mix(in srgb, var(--match-color, var(--gold)) 5%, transparent));
border-top: 1px dashed var(--border-light);
display: flex;
flex-direction: column;
align-items: center;
gap: 12px;
}
.simulator-title {
font-size: 11px;
font-weight: 800;
letter-spacing: 1.5px;
text-transform: uppercase;
color: var(--match-color, var(--gold));
}
.simulator-row {
display: flex;
align-items: center;
gap: 14px;
}
.sim-team {
display: flex;
align-items: center;
gap: 8px;
}
.sim-flag {
font-size: 24px;
}
.sim-input {
width: 60px;
height: 38px;
background: var(--bg-card);
border: 2px solid var(--border);
border-radius: 8px;
color: var(--text-primary);
text-align: center;
font-family: inherit;
font-size: 16px;
font-weight: 800;
outline: none;
transition: all var(--transition);
}
.sim-input:focus {
border-color: var(--match-color, var(--gold));
box-shadow: 0 0 0 3px color-mix(in srgb, var(--match-color, var(--gold)) 20%, transparent);
}
.sim-vs {
font-size: 18px;
font-weight: 700;
color: var(--text-faint);
}
.simulator-actions {
display: flex;
gap: 8px;
}
.sim-btn {
font-family: inherit;
font-size: 12px;
font-weight: 700;
padding: 8px 16px;
border-radius: 20px;
cursor: pointer;
border: 1px solid transparent;
transition: all var(--transition);
}
.sim-btn-save {
background: var(--match-color, var(--gold));
color: #000000;
font-weight: 800;
}
.sim-btn-save:hover {
filter: brightness(1.1);
transform: translateY(-1px);
}
.sim-btn-clear {
background: transparent;
border-color: var(--border-hover);
color: var(--text-secondary);
}
.sim-btn-clear:hover {
background: rgba(239, 68, 68, 0.1);
border-color: rgba(239, 68, 68, 0.3);
color: #ef4444;
}
@media (min-width: 1200px) {
.groups-grid { grid-template-columns: repeat(4, 1fr); }
}