295 lines
5.4 KiB
CSS
295 lines
5.4 KiB
CSS
:root {
|
|
--bg: #111;
|
|
--card: #1c1c1c;
|
|
--card-border: #2a2a2a;
|
|
--badge-bg: #2a2a2a;
|
|
--text: #f0f0f0;
|
|
--text-muted: #777;
|
|
--green-bg: #14532d;
|
|
--green-text: #86efac;
|
|
--red: #ef4444;
|
|
--gap: 0.875rem;
|
|
--radius: 10px;
|
|
--card-w: 250px;
|
|
}
|
|
|
|
*, *::before, *::after {
|
|
box-sizing: border-box;
|
|
margin: 0;
|
|
padding: 0;
|
|
}
|
|
|
|
body {
|
|
background: var(--bg);
|
|
color: var(--text);
|
|
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
|
|
min-height: 100vh;
|
|
}
|
|
|
|
/* ── Header ─────────────────────────────────────── */
|
|
|
|
header {
|
|
padding: 1rem 1.25rem 0.25rem;
|
|
text-align: center;
|
|
}
|
|
|
|
.header-title {
|
|
font-size: 2rem;
|
|
font-weight: 700;
|
|
color: var(--text);
|
|
}
|
|
|
|
/* ── Layout ─────────────────────────────────────── */
|
|
|
|
main {
|
|
padding: 0.75rem 1.25rem 2rem;
|
|
}
|
|
|
|
.section {
|
|
margin-bottom: 2rem;
|
|
}
|
|
|
|
.section.hidden {
|
|
display: none;
|
|
}
|
|
|
|
.section-heading {
|
|
font-size: 2rem;
|
|
font-weight: 700;
|
|
text-align: center;
|
|
color: var(--text);
|
|
margin-bottom: 1rem;
|
|
margin-top: 0.5rem;
|
|
}
|
|
|
|
.games-grid {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: var(--gap);
|
|
justify-content: center;
|
|
}
|
|
|
|
/* ── Game Card ──────────────────────────────────── */
|
|
|
|
.game-box {
|
|
background: var(--card);
|
|
border: 1px solid var(--card-border);
|
|
border-radius: var(--radius);
|
|
padding: 0.875rem;
|
|
width: var(--card-w);
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
/* ── Card Header (badges + live dot) ───────────── */
|
|
|
|
.card-header {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
margin-bottom: 0.5rem;
|
|
min-height: 1.25rem;
|
|
}
|
|
|
|
.badges {
|
|
display: flex;
|
|
gap: 0.3rem;
|
|
align-items: center;
|
|
flex-wrap: wrap;
|
|
}
|
|
|
|
.badge {
|
|
font-size: 0.65rem;
|
|
font-weight: 700;
|
|
padding: 0.2rem 0.45rem;
|
|
border-radius: 4px;
|
|
text-transform: uppercase;
|
|
letter-spacing: 0.05em;
|
|
background: var(--badge-bg);
|
|
color: var(--text);
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.badge-live {
|
|
background: var(--green-bg);
|
|
color: var(--green-text);
|
|
}
|
|
|
|
.badge-muted {
|
|
color: var(--text-muted);
|
|
}
|
|
|
|
.live-dot {
|
|
width: 7px;
|
|
height: 7px;
|
|
background: var(--red);
|
|
border-radius: 50%;
|
|
flex-shrink: 0;
|
|
animation: pulse 1.8s ease-in-out infinite;
|
|
}
|
|
|
|
@keyframes pulse {
|
|
0%, 100% { opacity: 1; }
|
|
50% { opacity: 0.4; }
|
|
}
|
|
|
|
/* ── Team Rows ──────────────────────────────────── */
|
|
|
|
.team-row {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 0.5rem;
|
|
padding: 0.45rem 0;
|
|
}
|
|
|
|
.team-row + .team-row {
|
|
border-top: 1px solid var(--card-border);
|
|
}
|
|
|
|
.team-logo {
|
|
width: 30px;
|
|
height: 30px;
|
|
object-fit: contain;
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
.team-meta {
|
|
flex: 1;
|
|
min-width: 0;
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 0.1rem;
|
|
}
|
|
|
|
.team-name {
|
|
font-size: 0.825rem;
|
|
font-weight: 600;
|
|
white-space: nowrap;
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
}
|
|
|
|
.team-sog {
|
|
font-size: 0.68rem;
|
|
color: var(--text-muted);
|
|
}
|
|
|
|
.team-pp {
|
|
font-size: 0.68rem;
|
|
color: var(--red);
|
|
font-weight: 600;
|
|
}
|
|
|
|
.team-score {
|
|
font-size: 1.2rem;
|
|
font-weight: 700;
|
|
margin-left: auto;
|
|
flex-shrink: 0;
|
|
min-width: 1.5rem;
|
|
text-align: right;
|
|
}
|
|
|
|
.team-record {
|
|
font-size: 0.72rem;
|
|
color: var(--text-muted);
|
|
margin-left: auto;
|
|
flex-shrink: 0;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
/* ── Shots Bar ──────────────────────────────────── */
|
|
|
|
.shots-bar {
|
|
margin-top: 0.75rem;
|
|
}
|
|
|
|
.shots-row {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 0.4rem;
|
|
}
|
|
|
|
.shots-track {
|
|
flex: 1;
|
|
height: 5px;
|
|
border-radius: 99px;
|
|
overflow: hidden;
|
|
display: flex;
|
|
background: var(--badge-bg);
|
|
}
|
|
|
|
.shots-fill {
|
|
height: 100%;
|
|
transition: width 0.5s ease;
|
|
}
|
|
|
|
.shots-fill-away {
|
|
background: #22d3ee;
|
|
border-radius: 99px 0 0 99px;
|
|
}
|
|
|
|
.shots-fill-home {
|
|
background: #a3e635;
|
|
border-radius: 0 99px 99px 0;
|
|
}
|
|
|
|
.shots-num {
|
|
font-size: 0.72rem;
|
|
font-weight: 700;
|
|
color: var(--text);
|
|
min-width: 1.25rem;
|
|
text-align: center;
|
|
}
|
|
|
|
.shots-label {
|
|
display: block;
|
|
font-size: 0.6rem;
|
|
font-weight: 700;
|
|
text-transform: uppercase;
|
|
letter-spacing: 0.1em;
|
|
color: var(--text-muted);
|
|
margin-top: 0.25rem;
|
|
text-align: center;
|
|
}
|
|
|
|
/* ── Hype Meter ─────────────────────────────────── */
|
|
|
|
.hype-meter {
|
|
margin-top: 0.75rem;
|
|
}
|
|
|
|
.hype-label {
|
|
display: block;
|
|
font-size: 0.6rem;
|
|
font-weight: 700;
|
|
text-transform: uppercase;
|
|
letter-spacing: 0.1em;
|
|
color: var(--text-muted);
|
|
margin-bottom: 0.3rem;
|
|
}
|
|
|
|
.gauge-track {
|
|
height: 4px;
|
|
background: var(--badge-bg);
|
|
border-radius: 99px;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.gauge {
|
|
height: 100%;
|
|
border-radius: 99px;
|
|
width: 0;
|
|
transition: width 0.5s ease;
|
|
}
|
|
|
|
/* ── Mobile ─────────────────────────────────────── */
|
|
|
|
@media (max-width: 640px) {
|
|
:root {
|
|
--card-w: 100%;
|
|
}
|
|
|
|
.games-grid {
|
|
flex-direction: column;
|
|
}
|
|
}
|