.navbar {
    backdrop-filter: blur(6px);
}
.navbar-brand {
    letter-spacing: .5px;
}
.nav-link {
    position: relative;
    transition: color .25s;
}
.nav-link:not(.btn):hover { color: #0d6efd; }
.nav-link.active {
    color: #0d6efd !important;
}
.nav-link.active::after,
.nav-link:hover::after {
    content: "";
    position: absolute;
    left: 8px;
    right: 8px;
    bottom: 4px;
    height: 2px;
    background: linear-gradient(90deg,#0d6efd,#6f42c1);
    border-radius: 2px;
}
@media (max-width: 991.98px) {
    .nav-link::after { display: none !important; }
    .navbar-collapse {
        background: #ffffffeb;
        border-radius: .5rem;
        padding: .75rem .75rem 1rem;
        margin-top: .5rem;
    }
}

.auth-box {
    max-width: 300px;
    margin: 0 auto;
    height: 80vh;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    form {
        width: 100%;
    }
}
.button-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1rem;
    margin: 2rem 0;
}
.grid-btn {
    width: 100%;
    padding: 1rem;
    font-size: 1rem;
    border: none;
    border-radius: 6px;
    background: #007bff;
    color: #fff;
    cursor: pointer;
    transition: background 0.2s;
    text-decoration: none;
    text-align: center;
}
.grid-btn:hover {
    background: #0056b3;
}
@media (min-width: 600px) {
    .button-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}
@media (min-width: 900px) {
    .button-grid {
        grid-template-columns: repeat(4, 1fr);
    }
}


body {
    background: linear-gradient(155deg,#f3f6f9 0%, #eef1f5 60%, #e9edf1 100%);
    background-attachment: fixed;
    font-family: system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;
    color:#1f2429;
    min-width: 330px;
}

.container {
    max-width: 980px;
    margin: 0 auto;
    /* padding: 1.4rem 1.1rem 3rem; */
}


.festival-hero{
    --hero-padding:clamp(1rem,3vw,3rem);
    --hero-radius:1rem;
    display:flex;
    gap:2rem !important;
    flex-direction:row;
    justify-content: center;
    align-items:center;
    padding:var(--hero-padding);
    background:linear-gradient(135deg,#ffffff,#f5f8fc 50%,#eef4ff);
    color:#1f2d3b;
    border-radius:var(--hero-radius);
    position:relative;
    overflow:hidden;
    border:1px solid #d9e2ec;
    box-shadow:0 2px 6px -2px rgba(31,45,59,.18);
    padding:calc(var(--hero-padding) * .1);
    gap:.35rem;
    margin-bottom: 0.8rem;
}
.festival-hero:before{
    content:"";
    position:absolute;
    inset:0;
    background:
        radial-gradient(circle at 18% 28%,rgba(255,182,120,.25),transparent 55%),
        radial-gradient(circle at 82% 72%,rgba(120,180,255,.20),transparent 57%);
    pointer-events:none;
    mix-blend-mode:overlay;
}
.festival-hero-media{
    max-width:100px;
    max-height: 100px;
    justify-self:center;
    overflow: hidden;
    border-radius: 16px;
}
.festival-logo{
    width:100%;
    height:auto;
    object-fit:contain;
    filter:drop-shadow(0 2px 6px rgba(140,160,185,.30));
    animation:float 12s ease-in-out infinite;
}
@keyframes float{
    0%,100%{transform:translateY(0)}
    50%{transform:translateY(-3px)}
}
.festival-hero-content{text-align:left;}
.festival-name{
    font-size:clamp(1rem,2vw,1.5rem); /* increased */
    /* line-height:1.5; */
    margin:0 0 .3rem;
    letter-spacing:.4px;
    background:linear-gradient(90deg,#1f2d3b,#385372);
    -webkit-background-clip:text;
    color:transparent;
}
.festival-name::after{
    content:"Scoreboard";
    display:inline-block;
    background:linear-gradient(90deg,#ff8a3d,#ff5f7e 30%,#7b5bff 60%,#35b4ff);
    background-size:200% 100%;
    -webkit-background-clip:text;
    background-clip:text;
    color:transparent;
    font-weight:600;
    letter-spacing:.5px;
    animation:gradient-pan 6s linear infinite;
    filter:drop-shadow(0 1px 2px rgba(0,0,0,.15));
    white-space:nowrap;
    margin-left:.4ch;
}
@keyframes gradient-pan{
    0%{background-position:0 50%}
    100%{background-position:100% 50%}
}
.festival-tagline{
    font-size:clamp(.40rem,.62vw,.48rem); /* increased */
    margin:0;
    opacity:.85;
    max-width:46ch;
}
@media (max-width:780px){
    .festival-hero{grid-template-columns:1fr;text-align:center;padding:.5rem;}
    .festival-hero-content{text-align:center;}
    .festival-hero-media{max-width:92px;} /* slightly larger on mobile */
    .festival-name{font-size:clamp(.9rem,4.6vw,1.15rem);}
    .festival-tagline{font-size:clamp(.55rem,2.4vw,.72rem);}
}
@media (prefers-reduced-motion:reduce){
    .festival-logo{animation:none;}
}
@media (forced-colors:active){
    .festival-hero{background:Canvas;color:CanvasText;}
    .festival-name{color:CanvasText;background:none;}
}



.team-cards {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    padding: .5rem 0 2.4rem 0.4rem;
}

.festival-card {
    --accent: {{ team.team.color|default:'#4a6fa5' }};
    position: relative;
    background:
        linear-gradient(140deg,rgba(255,255,255,.85),rgba(255,255,255,.72)),
        radial-gradient(circle at 120% 20%, var(--accent)11%, transparent 62%);
    background-blend-mode: lighten;
    border:1px solid #dfe5ea;
    border-radius:18px;
    box-shadow:
        0 1px 2px rgba(0,0,0,.06),
        0 3px 9px -3px rgba(25,35,45,.12),
        0 6px 22px -10px rgba(25,35,45,.10);
    transition: box-shadow .35s, transform .4s, border-color .35s;
    overflow:hidden;
    isolation:isolate;
}

.festival-card::before {
    content:"";
    position:absolute;
    inset:0;
    background:
        linear-gradient(90deg,var(--accent) 0%, rgba(255,255,255,0) 65%);
    opacity:.09;
    mix-blend-mode: multiply;
    pointer-events:none;
    transition:opacity .4s;
}

.festival-card::after {
    content:"";
    position:absolute;
    left:0;
    top:0;
    bottom:0;
    width:6px;
    background:linear-gradient(180deg,var(--accent),color-mix(in srgb,var(--accent),#ffffff 30%));
    box-shadow:2px 0 6px -2px rgba(0,0,0,.18);
}

.festival-card:hover {
    border-color: color-mix(in srgb,var(--accent),#ffffff 55%);
    box-shadow:
        0 4px 10px -4px rgba(0,0,0,.14),
        0 10px 28px -12px rgba(25,35,45,.18);
    transform:translateY(-4px);
}

.festival-card:hover::before {
    opacity:.16;
}

.festival-card-inner {
    position:relative;
    padding:1rem 1.35rem 1rem 1.55rem;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:1.2rem;
}

.festival-card h2 {
    margin:0;
    font-size:1.5rem;
    font-weight:600;
    color:#222f38;
    letter-spacing:.35px;
    line-height:1.25;
    display:flex;
    align-items:center;
    gap:.55rem;
}

.festival-card h2 span.badge {
    font-size:.70rem;
    letter-spacing:.8px;
    text-transform:uppercase;
    background: color-mix(in srgb,var(--accent),#ffffff 70%);
    color: color-mix(in srgb,var(--accent),#000 15%);
    padding:.28rem .45rem .24rem;
    border-radius:6px;
    font-weight:600;
}

.score {
    text-align:right;
    font-size:.9rem;
    font-weight:600;
    letter-spacing:1px;
    text-transform:uppercase;
    color:#5a6773;
    min-width:120px;
    position:relative;
}

.score span {
    display:block;
    margin-top:.15rem;
    font-size:2.5rem;
    font-weight:700;
    letter-spacing:.6px;
    line-height:1.05;
    background:linear-gradient(90deg,var(--accent),color-mix(in srgb,var(--accent),#1a1d21 25%));
    -webkit-background-clip:text;
    color:transparent;
    filter:drop-shadow(0 1px 1px rgba(0,0,0,.10));
}

.home-buttons {
    display:flex;
    flex-direction:column;
    gap:.85rem;
    margin:.3rem 0 2.7rem;
}

.home-btn {
    text-decoration:none;
    background:#ffffff !important;
    border:1px solid #d7dde2;
    padding:.95rem 1.05rem;
    font-size:.9rem;
    font-weight:600;
    color:#23323b;
    border-radius:12px;
    letter-spacing:.45px;
    display:inline-flex;
    justify-content:center;
    align-items:center;
    gap:.55rem;
    position:relative;
    overflow:hidden;
    transition: color .35s, border-color .35s, background .35s, box-shadow .35s;
}

.home-btn::before {
    content:"";
    position:absolute;
    inset:0;
    background:linear-gradient(135deg,#ffffff 10%, #f0f4f7 90%);
    opacity:0;
    transition:opacity .4s;
}

.home-btn:hover {
    border-color:#c2ccd3;
    box-shadow:0 4px 14px -6px rgba(0,0,0,.18);
    color:#18252d;
}

@media (max-width:820px){
    .festival-card-inner {
        padding:1.05rem 1.2rem 1.25rem 1.55rem;
    }
    .score {
        text-align:left;
        min-width:0;
        margin-top:.35rem;
    }
    .score span {
        font-size:2rem;
    }
}

@media (prefers-reduced-motion:reduce){
    .festival-card,
    .home-btn {transition:none;}
}

/* Confetti overlay */
#confetti-overlay {
    position: fixed;
    inset: 0;
    pointer-events: none;
    overflow: hidden;
    z-index: 9999;
}
#confetti-overlay .piece {
    position: absolute;
    top: var(--top, 50vh);
    width: var(--w, 10px);
    height: var(--hgt, 14px);
    background: hsl(var(--hue, 0), 90%, 60%);
    border-radius: var(--rad, 2px);
    opacity: 0.95;
    will-change: transform, opacity;
    transform: translate3d(0,0,0) rotate(0);
    animation: burst var(--dur, 1.8s) cubic-bezier(.2,.7,.2,1) var(--delay, 0s) forwards;
}
#confetti-overlay .from-left { left: -12px; }
#confetti-overlay .from-right { right: -12px; }
@keyframes burst {
    0% { transform: translate3d(0,0,0) rotate(0deg); opacity: 1; }
    70% { opacity: 1; }
    100% { transform: translate3d(var(--dx, 60vw), var(--dy, -10vh), 0) rotate(var(--rot, 900deg)); opacity: 0; }
}
@media (prefers-reduced-motion: reduce) {
    #confetti-overlay { display: none !important; }
}


/* Inactive card */
.inactive-card {
    max-width: 720px;
    margin: 3rem auto;
    padding: 2rem 1.5rem;
    border-radius: 16px;
    background: linear-gradient(180deg,#ffffff,#f8fafc);
    border: 1px solid #e5e7eb;
    box-shadow: 0 10px 28px -12px rgba(0,0,0,.15);
    text-align: center;
}
.inactive-icon {
    width: 64px;
    height: 64px;
    margin: 0 auto 1rem;
    border-radius: 16px;
    display: grid;
    place-items: center;
    font-size: 28px;
    color: #0f172a;
    background: linear-gradient(135deg,#e2e8f0,#ffffff);
    border: 1px solid #e5e7eb;
}
.inactive-card h1 {
    margin: .25rem 0 .5rem;
    font-size: 1.4rem;
    font-weight: 700;
    color: #0f172a;
    letter-spacing: -.2px;
}
.inactive-card p {
    margin: 0 auto 1.2rem;
    color: #334155;
    max-width: 46ch;
    line-height: 1.5;
}
.whatsapp-btn {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    background: #25D366;
    color: #ffffff !important;
    padding: .75rem 1.1rem;
    border-radius: 12px;
    text-decoration: none;
    font-weight: 700;
    letter-spacing: .2px;
    box-shadow: 0 6px 20px -6px rgba(37,211,102,.6);
    transition: transform .2s ease, box-shadow .2s ease, filter .2s ease;
}
.whatsapp-btn:hover { transform: translateY(-2px); filter: brightness(1.03); }
.whatsapp-btn:active { transform: translateY(0); }
.whatsapp-dot {
    width: 8px; height: 8px; border-radius: 999px; background: #fff; opacity: .85;
    box-shadow: 0 0 0 3px rgba(255,255,255,.25) inset;
}
@media (prefers-color-scheme: dark) {
    .inactive-card { background: linear-gradient(180deg,#0b1624,#0f1f33); border-color:#1f2a3a; box-shadow: 0 10px 28px -12px rgba(0,0,0,.6); }
    .inactive-icon { background: linear-gradient(135deg,#12243a,#0f1f33); border-color:#1f2a3a; color:#e8f2ff; }
    .inactive-card h1 { color:#e8f2ff; }
    .inactive-card p { color:#b7c7dc; }
}

.custom-scrollbar {
    /* Hide scrollbar by default */
    scrollbar-width: none;
    scrollbar-color: transparent transparent;
}
.custom-scrollbar:has(:first-child) {
    /* Show thin transparent scrollbar only if content overflows horizontally */
    scrollbar-width: thin;
    scrollbar-color: rgba(0,0,0,0.08) transparent;
}
@media (max-width:600px) {
    .custom-scrollbar {
        scrollbar-width: thin;
        scrollbar-color: rgba(0,0,0,0.1) transparent;
    }
}
.custom-scrollbar::-webkit-scrollbar {
    height: 6px;
    background: transparent;
}
.custom-scrollbar::-webkit-scrollbar-thumb {
    background: rgba(0,0,0,0.08);
    border-radius: 6px;
}
.custom-scrollbar::-webkit-scrollbar-track {
    background: transparent;
}