/**
 * Frontend critical CSS — served at /critical.css so styles apply
 * even when the combined server serves the app (Tailwind bundle may load from different path).
 * Keep in sync with frontend/styles/critical-full.css
 */
/* === Layout & box === */
.min-h-screen{min-height:100vh}
.mx-auto{margin-left:auto;margin-right:auto}
.max-w-5xl{max-width:64rem}
.flex{display:flex}
.flex-col{flex-direction:column}
.flex-wrap{flex-wrap:wrap}
.flex-1{flex:1 1 0%}
.flex-shrink-0{flex-shrink:0}
.items-center{align-items:center}
.items-end{align-items:flex-end}
.justify-between{justify-content:space-between}
.justify-end{justify-content:flex-end}
.justify-center{justify-content:center}
.gap-1{gap:.25rem}
.gap-2{gap:.5rem}
.gap-3{gap:.75rem}
.gap-4{gap:1rem}
.gap-6{gap:1.5rem}
.gap-px{gap:1px}
.px-4{padding-left:1rem;padding-right:1rem}
.py-6{padding-top:1.5rem;padding-bottom:1.5rem}
.px-2{padding-left:.5rem;padding-right:.5rem}
.py-1{padding-top:.25rem;padding-bottom:.25rem}
.py-2{padding-top:.5rem;padding-bottom:.5rem}
.p-1\.5{padding:.375rem}
.p-2{padding:.5rem}
.p-4{padding:1rem}
.p-6{padding:1.5rem}
.px-3{padding-left:.75rem;padding-right:.75rem}
.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}
.pb-2{padding-bottom:.5rem}
.pb-8{padding-bottom:2rem}
.pt-2{padding-top:.5rem}
.pt-4{padding-top:1rem}
.mb-4{margin-bottom:1rem}
.mt-4{margin-top:1rem}
.mt-auto{margin-top:auto}
.ml-1{margin-left:.25rem}
.ml-1\.5{margin-left:.375rem}
.ml-2{margin-left:.5rem}
.ml-auto{margin-left:auto}
.mt-1{margin-top:.25rem}
.mt-2{margin-top:.5rem}
.mt-3{margin-top:.75rem}
.space-y-2>*+*{margin-top:.5rem}
.space-y-3>*+*{margin-top:.75rem}
.space-y-4>*+*{margin-top:1rem}
.space-y-5>*+*{margin-top:1.25rem}
.space-y-6>*+*{margin-top:1.5rem}
.space-y-8>*+*{margin-top:2rem}
.mb-2{margin-bottom:.5rem}
/* === Grid === */
.grid{display:grid}
.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.text-center{text-align:center}
.text-right{text-align:right}
/* === Typography === */
.text-xs{font-size:.75rem;line-height:1rem}
.text-sm{font-size:.875rem;line-height:1.25rem}
.text-base{font-size:1rem;line-height:1.5rem}
.text-lg{font-size:1.125rem;line-height:1.75rem}
.text-xl{font-size:1.25rem;line-height:1.75rem}
.text-2xl{font-size:1.5rem;line-height:2rem}
.font-medium{font-weight:500}
.font-semibold{font-weight:600}
.font-bold{font-weight:700}
.font-black{font-weight:900}
.leading-tight{line-height:1.25}
.tracking-tight{letter-spacing:-.025em}
.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.whitespace-nowrap{white-space:nowrap}
/* === Colors === */
.text-slate-100{color:#f1f5f9}
.text-slate-200{color:#e2e8f0}
.text-slate-300{color:#cbd5e1}
.text-slate-400{color:#94a3b8}
.text-slate-500{color:#64748b}
.text-slate-600{color:#475569}
.bg-slate-700{background-color:#334155}
.bg-slate-800{background-color:#1e293b}
.bg-slate-900{background-color:#0f172a}
.border-slate-600{border-color:#475569}
.border-slate-700{border-color:#334155}
.text-emerald-200{color:#a7f3d0}
.text-emerald-300{color:#6ee7b7}
.text-emerald-400{color:#34d399}
.bg-emerald-500{background-color:#10b981}
.hover\:text-emerald-300:hover{color:#6ee7b7}
.hover\:text-emerald-400:hover{color:#34d399}
.hover\:bg-emerald-400:hover{background-color:#34d399}
.text-amber-200{color:#fde68a}
.text-amber-300{color:#fcd34d}
.text-amber-400{color:#fbbf24}
/* === Opacity variants === */
.border-slate-700\/60{border-color:rgba(51,65,85,.6)}
.border-slate-700\/80{border-color:rgba(51,65,85,.8)}
.bg-slate-700\/40{background-color:rgba(51,65,85,.4)}
.bg-slate-700\/50{background-color:rgba(51,65,85,.5)}
.bg-slate-700\/60{background-color:rgba(51,65,85,.6)}
.bg-slate-700\/80{background-color:rgba(51,65,85,.8)}
.bg-slate-700\/90{background-color:rgba(51,65,85,.9)}
.bg-slate-800\/40{background-color:rgba(30,41,59,.4)}
.bg-slate-800\/50{background-color:rgba(30,41,59,.5)}
.bg-slate-800\/60{background-color:rgba(30,41,59,.6)}
.bg-slate-800\/80{background-color:rgba(30,41,59,.8)}
.bg-slate-800\/90{background-color:rgba(30,41,59,.9)}
.bg-slate-900\/60{background-color:rgba(15,23,42,.6)}
.bg-slate-900\/80{background-color:rgba(15,23,42,.8)}
.bg-emerald-500\/20{background-color:rgba(16,185,129,.2)}
.bg-emerald-500\/25{background-color:rgba(16,185,129,.25)}
.bg-emerald-500\/30{background-color:rgba(16,185,129,.3)}
.bg-amber-500\/25{background-color:rgba(245,158,11,.25)}
.bg-amber-500\/30{background-color:rgba(245,158,11,.3)}
.ring-amber-500\/50{box-shadow:0 0 0 1px rgba(245,158,11,.5)}
.ring-1{box-shadow:0 0 0 1px}
.ring-2{box-shadow:0 0 0 2px}
.ring-slate-600{box-shadow:0 0 0 2px #475569}
.ring-emerald-500\/50{box-shadow:0 0 0 1px rgba(16,185,129,.5)}
.border-emerald-500\/30{border-color:rgba(16,185,129,.3)}
.bg-emerald-950\/20{background-color:rgba(6,78,59,.2)}
.bg-emerald-950\/40{background-color:rgba(6,78,59,.4)}
.bg-emerald-950\/50{background-color:rgba(6,78,59,.5)}
.border-amber-800\/50{border-color:rgba(146,64,14,.5)}
.bg-amber-950\/20{background-color:rgba(69,26,3,.2)}
.focus\:border-emerald-500\/50:focus{border-color:rgba(16,185,129,.5)}
.focus\:ring-emerald-500\/50:focus{box-shadow:0 0 0 1px rgba(16,185,129,.5)}
/* === Borders & radius === */
.border{border-width:1px;border-style:solid}
.border-b{border-bottom-width:1px;border-bottom-style:solid}
.border-r{border-right-width:1px;border-right-style:solid}
.border-2{border-width:2px;border-style:solid}
.border-emerald-500\/40{border-color:rgba(16,185,129,.4)}
.hover\:border-emerald-500\/60:hover{border-color:rgba(16,185,129,.6)}
.rounded-md{border-radius:.375rem}
.rounded-lg{border-radius:.5rem}
.rounded-xl{border-radius:.75rem}
.rounded-full{border-radius:9999px}
.overflow-hidden{overflow:hidden}
.overflow-auto{overflow:auto}
.overflow-x-auto{overflow-x:auto}
/* === Position & display === */
.relative{position:relative}
.absolute{position:absolute}
.inset-0{top:0;right:0;bottom:0;left:0}
.top-full{top:100%}
.left-0{left:0}
.right-0{right:0}
.z-10{z-index:10}
.z-50{z-index:50}
.z-\[1\]{z-index:1}
.w-full{width:100%}
.min-w-0{min-width:0}
.min-w-\[1\.25rem\]{min-width:1.25rem}
.min-h-\[180px\]{min-height:180px}
.min-h-0{min-height:0}
.h-full{height:100%}
.h-5{height:1.25rem}
.h-10{height:2.5rem}
.w-10{width:2.5rem}
.h-14{height:3.5rem}
.w-14{width:3.5rem}
.max-w-full{max-width:100%}
.max-h-full{max-height:100%}
.object-cover{object-fit:cover}
.object-contain{object-fit:contain}
.object-right{object-position:right}
/* === Header & nav === */
header .flex-wrap{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem}
header a{color:#cbd5e1;text-decoration:none}
header a:hover{color:#6ee7b7}
header nav{display:flex;gap:1.5rem;font-size:.875rem;font-weight:500}
header .text-2xl{font-size:1.5rem;font-weight:900;letter-spacing:-.025em}
.opacity-90{opacity:.9}
/* === Search bar === */
input[type="search"]{width:100%;border-radius:.5rem;border:1px solid #475569;background:rgba(30,41,59,.8);padding:.625rem 1rem;color:#f1f5f9;font-size:.875rem}
input[type="search"]::placeholder{color:#64748b}
input[type="search"]:focus{outline:none;border-color:rgba(16,185,129,.5);box-shadow:0 0 0 1px rgba(16,185,129,.5)}
/* === Sport tabs === */
.flex-nowrap{flex-wrap:nowrap}
.scrollbar-thin{scrollbar-width:thin}
.rounded-full.bg-emerald-500\/80{background-color:rgba(16,185,129,.8);color:#fff;font-size:10px;font-weight:700;padding:0 .375rem;min-width:1.25rem;height:1.25rem;display:inline-flex;align-items:center;justify-content:center}
/* === Cards === */
.backdrop-blur-sm{backdrop-filter:blur(4px)}
.shadow-lg{box-shadow:0 10px 15px -3px rgb(0 0 0/.1),0 4px 6px -4px rgb(0 0 0/.1)}
.shadow-xl{box-shadow:0 20px 25px -5px rgb(0 0 0/.1)}
.min-h-\[2\.75rem\]{min-height:2.75rem}
.pb-3{padding-bottom:.75rem}
.py-3{padding-top:.75rem;padding-bottom:.75rem}
.inline-block{display:inline-block}
.text-left{text-align:left}
.object-center{object-position:center}
.max-h-72{max-height:18rem}
.transition-colors{transition-property:color,background-color,border-color;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:150ms}
.hover\:bg-slate-800:hover{background-color:#1e293b}
.hover\:underline:hover{text-decoration:underline}
.underline{text-decoration:underline}
/* === Responsive === */
@media (min-width:640px){
.sm\:flex-row{flex-direction:row}
.sm\:items-center{align-items:center}
.sm\:justify-end{justify-content:flex-end}
.sm\:gap-6{gap:1.5rem}
.sm\:gap-8{gap:2rem}
.sm\:text-2xl{font-size:1.5rem}
}
@media (min-width:768px){
.md\:flex-row{flex-direction:row}
.md\:flex-wrap{flex-wrap:wrap}
.md\:border-b-0{border-bottom-width:0}
.md\:border-r{border-right-width:1px;border-right-style:solid;border-right-color:rgba(51,65,85,.8)}
.md\:min-w-\[220px\]{min-width:220px}
.md\:gap-6{gap:1.5rem}
}
.odd\:bg-slate-800\/40:nth-child(odd){background-color:rgba(30,41,59,.4)}
.focus\:outline-none:focus{outline:none}
.focus\:ring-1:focus{box-shadow:0 0 0 1px}
