:root{--nhl-positive:#22c55e;--nhl-negative:#ef4444;--nhl-neutral:#f59e0b;--nhl-accent:#0ea5e9;--nhl-surface:#0d1117;--nhl-surface-raised:#161b22;--nhl-border:#21262d;--nhl-text:#e6edf3;--nhl-text-muted:#7d8590}.nhl-card{background:var(--nhl-surface-raised);border:1px solid var(--nhl-border);border-radius:8px;padding:14px}@media (min-width:640px){.nhl-card{padding:16px}}.nhl-card-accent{background:var(--nhl-surface-raised);border:1px solid var(--nhl-border);border-left:3px solid var(--nhl-accent);border-radius:8px;padding:14px}@media (min-width:640px){.nhl-card-accent{padding:16px}}.nhl-card-accent-green{border-left-color:var(--nhl-positive)}.nhl-card-accent-amber{border-left-color:var(--nhl-neutral)}.nhl-card-accent-red{border-left-color:var(--nhl-negative)}.nhl-card-accent-blue{border-left-color:var(--nhl-accent)}.nhl-card-flat{padding:12px 14px;border-bottom:1px solid var(--nhl-border)}.nhl-card-flat:last-child{border-bottom:none}.nhl-card-hover{transition:background-color .15s ease,border-color .15s ease;cursor:pointer}.nhl-card-hover:hover{background:#1c2333;border-color:#30363d}.nhl-module{background:var(--nhl-surface-raised);border:1px solid var(--nhl-border);border-radius:8px;overflow:hidden}.nhl-module-header{padding:12px 16px;border-bottom:1px solid var(--nhl-border);display:flex;align-items:center;justify-content:space-between}.nhl-module-body{padding:0}.nhl-module-blue{border-top:3px solid var(--nhl-accent)}.nhl-module-green{border-top:3px solid var(--nhl-positive)}.nhl-module-amber{border-top:3px solid var(--nhl-neutral)}.nhl-table{width:100%;font-size:13px}.nhl-table thead th{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--nhl-text-muted);padding:8px 12px;border-bottom:1px solid var(--nhl-border);text-align:left}.nhl-table tbody tr{border-bottom:1px solid rgba(33,38,45,.5);transition:background-color .1s}.nhl-table tbody tr:hover{background:rgba(22,27,34,.8)}.nhl-table tbody tr:nth-child(2n){background:rgba(13,17,23,.4)}.nhl-table tbody td{padding:10px 12px;vertical-align:middle}.nhl-kpi-strip{display:flex;align-items:center;justify-content:center;gap:16px;flex-wrap:wrap;padding:12px 0;border-bottom:1px solid var(--nhl-border);margin-bottom:16px}@media (min-width:640px){.nhl-kpi-strip{gap:24px}}.nhl-kpi-strip-mobile{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:10px 0;border-bottom:1px solid var(--nhl-border);margin-bottom:12px}.nhl-kpi-strip-mobile .nhl-kpi-item{text-align:center;padding:8px 4px;background:var(--nhl-surface);border-radius:6px;border:1px solid var(--nhl-border)}.nhl-kpi-strip-mobile .nhl-kpi-value{font-size:18px}.nhl-kpi-strip-mobile .nhl-kpi-label{font-size:9px}.nhl-kpi-item{text-align:center}.nhl-kpi-value{font-size:20px;font-weight:700;font-variant-numeric:tabular-nums;line-height:1.2}.nhl-kpi-label{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--nhl-text-muted);margin-top:2px}.nhl-kpi-divider{width:1px;height:32px;background:var(--nhl-border)}.nhl-grade{display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;width:32px;height:32px;border-radius:6px}.nhl-grade-a{background:rgba(34,197,94,.15);color:#22c55e}.nhl-grade-b{background:rgba(245,158,11,.15);color:#f59e0b}.nhl-grade-c{background:rgba(148,163,184,.15);color:#94a3b8}.nhl-grade-d{background:rgba(239,68,68,.15);color:#ef4444}.nhl-game-card{background:var(--nhl-surface-raised);border:1px solid var(--nhl-border);border-radius:8px;padding:12px;transition:border-color .15s}.nhl-game-card:hover{border-color:#30363d}.nhl-row-striped:nth-child(2n){background:rgba(13,17,23,.3)}.nhl-text-positive{color:var(--nhl-positive)}.nhl-text-negative{color:var(--nhl-negative)}.nhl-text-neutral{color:var(--nhl-neutral)}.nhl-text-accent{color:var(--nhl-accent)}.nhl-scroll::-webkit-scrollbar{height:4px;width:4px}.nhl-scroll::-webkit-scrollbar-track{background:transparent}.nhl-scroll::-webkit-scrollbar-thumb{background:#30363d;border-radius:4px}.nhl-glass{background:var(--nhl-surface-raised);border:1px solid var(--nhl-border);border-radius:8px;padding:16px}.nhl-glow{transition:border-color .15s ease,background-color .15s ease}.nhl-glow:hover{border-color:#30363d;background:#1c2333}.nhl-glow:after,.nhl-glow:before{display:none}.nhl-gold-glow{transition:border-color .15s ease}.nhl-gold-glow:hover{border-color:rgba(245,158,11,.3)}.nhl-gold-glow:after,.nhl-gold-glow:before{display:none}.nhl-gold{color:#f59e0b}.nhl-gold-bg{background:rgba(245,158,11,.1)}.nhl-pill{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border-radius:9999px;border:1px solid var(--nhl-border);background:var(--nhl-surface-raised);font-size:13px;font-weight:500;color:var(--nhl-text-muted);transition:all .15s ease;white-space:nowrap;cursor:pointer}.nhl-pill:hover{border-color:#30363d;color:var(--nhl-accent)}.nhl-stat-counter{font-variant-numeric:tabular-nums}.nhl-pulse{animation:nhl-badge-pulse 2s ease-in-out 1}@keyframes nhl-badge-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.nhl-live-dot{width:6px;height:6px;background:#22c55e;border-radius:50%;animation:nhl-live-pulse 2s ease-in-out infinite}@keyframes nhl-live-pulse{0%,to{box-shadow:0 0 0 0 rgba(34,197,94,.4)}50%{box-shadow:0 0 0 6px rgba(34,197,94,0)}}.nhl-gradient-text{background:linear-gradient(135deg,#0ea5e9,#8b5cf6,#f59e0b);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.nhl-section-divider{height:1px;background:var(--nhl-border);border:none}.nhl-card-glass{background:rgba(22,27,34,.7);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(14,165,233,.15);border-radius:10px;padding:14px}@media (min-width:640px){.nhl-card-glass{padding:16px}}.nhl-card-glass:hover{border-color:rgba(14,165,233,.3);background:rgba(28,35,51,.8)}.nhl-grade-aplus{animation:nhl-grade-glow 2s ease-in-out infinite}@keyframes nhl-grade-glow{0%,to{box-shadow:0 0 0 0 rgba(34,197,94,.3)}50%{box-shadow:0 0 8px 2px rgba(34,197,94,.2)}}.nhl-game-card-colored{background:var(--nhl-surface-raised);border:1px solid var(--nhl-border);border-radius:8px;padding:12px;transition:border-color .15s,transform .15s;position:relative;overflow:hidden}.nhl-game-card-colored:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:var(--team-color,var(--nhl-accent));opacity:.7}.nhl-game-card-colored:hover{border-color:#30363d;transform:translateY(-1px)}.scrollbar-hide::-webkit-scrollbar{display:none}.scrollbar-hide{-ms-overflow-style:none;scrollbar-width:none}.nhl-record-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:9999px;font-size:11px;font-weight:600;border:1px solid var(--nhl-border);background:var(--nhl-surface)}