/* ===== VARIABLES ===== */
:root {
  --blue:        #006AA7;
  --blue-dark:   #004d7a;
  --blue-darker: #003356;
  --yellow:      #FECC02;
  --yellow-dark: #e6b800;
  --white:       #ffffff;
  --light:       #f0f4f8;
  --light-2:     #e3eaf1;
  --text:        #1a2332;
  --text-muted:  #5a7491;
  --border:      #d0dae5;
  --green:       #22c55e;
  --red:         #ef4444;
  --radius:      12px;
  --radius-sm:   8px;
  --shadow:      0 2px 8px rgba(0,106,167,.10);
  --shadow-md:   0 4px 16px rgba(0,106,167,.16);
  --shadow-lg:   0 8px 32px rgba(0,106,167,.22);
  --nav-h:       64px;
  --ease:        .2s ease;
}

/* ===== RESET ===== */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{font-size:16px;scroll-behavior:smooth}
body{font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;color:var(--text);background:var(--light);line-height:1.6;min-height:100vh;display:flex;flex-direction:column}
a{color:inherit;text-decoration:none}
main{flex:1}

/* ===== NAV ===== */
.nav{background:var(--blue-darker);height:var(--nav-h);position:sticky;top:0;z-index:200;box-shadow:0 2px 12px rgba(0,0,0,.25)}
.nav-inner{max-width:1200px;margin:0 auto;padding:0 1.5rem;height:100%;display:flex;align-items:center;justify-content:space-between}
.nav-logo{display:flex;align-items:center;gap:.5rem;color:#fff;font-weight:800;font-size:1.1rem;letter-spacing:.02em}
.nav-logo .icon{font-size:1.4rem}
.nav-logo .year{color:var(--yellow)}
.nav-links{display:flex;align-items:center;gap:.15rem;list-style:none}
.nav-links a{color:rgba(255,255,255,.8);padding:.45rem 1rem;border-radius:8px;font-weight:500;font-size:.9rem;transition:all var(--ease)}
.nav-links a:hover{color:#fff;background:rgba(255,255,255,.1)}
.nav-links a.active{color:var(--yellow);background:rgba(255,255,255,.08)}
.nav-hamburger{display:none;background:none;border:none;cursor:pointer;padding:.5rem;color:#fff;flex-direction:column;gap:5px}
.nav-hamburger span{display:block;width:24px;height:2px;background:currentColor;border-radius:2px;transition:var(--ease)}

/* ===== HERO ===== */
.hero{background:linear-gradient(135deg,var(--blue-darker) 0%,var(--blue) 55%,var(--blue-dark) 100%);color:#fff;padding:3.5rem 1.5rem 3rem;text-align:center;position:relative;overflow:hidden}
.hero::before{content:'';position:absolute;inset:0;background:url("data:image/svg+xml,%3Csvg width='80' height='80' viewBox='0 0 80 80' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='40' cy='40' r='30' fill='none' stroke='%23fff' stroke-width='1' stroke-opacity='.04'/%3E%3Ccircle cx='40' cy='40' r='15' fill='none' stroke='%23fff' stroke-width='1' stroke-opacity='.04'/%3E%3C/svg%3E") repeat;pointer-events:none}
.hero-inner{max-width:860px;margin:0 auto;position:relative}
.hero-badge{display:inline-block;background:var(--yellow);color:var(--blue-darker);font-size:.72rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;padding:.3rem 1.1rem;border-radius:100px;margin-bottom:1rem}
.hero h1{font-size:clamp(1.9rem,4.5vw,3.2rem);font-weight:900;line-height:1.1;margin-bottom:.4rem;text-shadow:0 2px 12px rgba(0,0,0,.3)}
.hero-sub{color:rgba(255,255,255,.75);font-size:1.05rem;font-weight:500;margin-bottom:2.5rem}

/* COUNTDOWN */
.countdown{display:flex;gap:1rem;justify-content:center;align-items:flex-start;flex-wrap:wrap}
.cd-item{text-align:center}
.cd-val{display:block;font-size:clamp(2rem,7vw,3.8rem);font-weight:900;color:var(--yellow);line-height:1;font-variant-numeric:tabular-nums;background:rgba(0,0,0,.2);padding:.4rem .75rem;border-radius:10px;min-width:76px;text-shadow:0 2px 8px rgba(0,0,0,.3)}
.cd-lbl{display:block;font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.65);margin-top:.4rem;font-weight:700}
.cd-sep{font-size:2.8rem;font-weight:900;color:rgba(255,255,255,.3);align-self:center;padding-bottom:1.6rem;line-height:1}
.hero-date-note{font-size:.8rem;color:rgba(255,255,255,.55);margin-top:.8rem}
.vm-started-note{font-size:1.1rem;font-weight:700;color:var(--yellow);padding:.75rem 1.5rem;background:rgba(0,0,0,.2);border-radius:var(--radius);display:inline-block}

/* HERO SM */
.hero-sm{padding:2rem 1.5rem 1.75rem}
.hero-sm h1{font-size:clamp(1.4rem,3vw,2rem);margin-bottom:.2rem}
.hero-sm p{color:rgba(255,255,255,.65);font-size:.9rem}

/* ===== CONTAINER / SECTIONS ===== */
.container{max-width:1200px;margin:0 auto;padding:0 1.5rem}
.section{padding:2.5rem 0}
.section-title{font-size:1.3rem;font-weight:800;color:var(--text);margin-bottom:1.25rem;display:flex;align-items:center;gap:.6rem}
.section-title::after{content:'';flex:1;height:2px;background:linear-gradient(to right,var(--border),transparent);margin-left:.5rem}

/* ===== CARDS ===== */
.card{background:var(--white);border-radius:var(--radius);box-shadow:var(--shadow)}

/* ===== MATCH CARDS ===== */
.match-day{margin-bottom:2rem}
.match-day-header{font-size:.75rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);padding:.4rem 0;border-bottom:2px solid var(--border);margin-bottom:.75rem}
.match-list{display:flex;flex-direction:column;gap:.6rem}

.match-card{background:var(--white);border-radius:var(--radius-sm);box-shadow:var(--shadow);padding:.9rem 1.2rem;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:.75rem;border-left:4px solid transparent;transition:transform var(--ease),box-shadow var(--ease)}
.match-card:hover{transform:translateY(-1px);box-shadow:var(--shadow-md)}
.match-card.sweden{border-left-color:var(--yellow);background:linear-gradient(to right,rgba(254,204,2,.06),var(--white))}

.match-team{display:flex;align-items:center;gap:.55rem}
.match-team.away{flex-direction:row-reverse;text-align:right}
.match-flag{font-size:1.45rem;line-height:1;flex-shrink:0}
.match-name{font-weight:600;font-size:.92rem;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.match-name.sve{color:var(--blue);font-weight:800}

.match-mid{text-align:center;min-width:88px}
.match-time-val{font-size:1.15rem;font-weight:900;color:var(--blue);font-variant-numeric:tabular-nums;line-height:1.2}
.match-score-val{font-size:1.25rem;font-weight:900;color:var(--text);letter-spacing:.08em;line-height:1.2}
.match-group-tag{display:inline-block;font-size:.62rem;font-weight:800;padding:.15rem .55rem;border-radius:100px;letter-spacing:.06em;margin-top:.25rem}
.tag-default{background:var(--light-2);color:var(--text-muted)}
.tag-sweden{background:var(--yellow);color:var(--blue-darker)}
.match-city{font-size:.7rem;color:var(--text-muted);margin-top:.15rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* ===== FILTER TABS ===== */
.filter-wrap{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:1.5rem}
.ftab{background:var(--white);border:2px solid var(--border);color:var(--text-muted);padding:.35rem .9rem;border-radius:100px;font-size:.82rem;font-weight:700;cursor:pointer;transition:all var(--ease);font-family:inherit}
.ftab:hover{border-color:var(--blue);color:var(--blue)}
.ftab.active{background:var(--blue);border-color:var(--blue);color:#fff}
.ftab.ftab-sve.active{background:var(--yellow);border-color:var(--yellow);color:var(--blue-darker)}

/* ===== SVERIGE SECTION ===== */
.sve-section{background:linear-gradient(135deg,var(--blue-darker) 0%,var(--blue) 100%);padding:2.5rem 0;color:#fff}
.sve-section .section-title{color:#fff}
.sve-section .section-title::after{background:linear-gradient(to right,rgba(255,255,255,.25),transparent)}

.next-match-wrap{display:flex;justify-content:center;margin-bottom:2rem}
.next-match-card{background:rgba(254,204,2,.12);border:2px solid var(--yellow);border-radius:var(--radius);padding:1.5rem 2rem;text-align:center;min-width:280px;max-width:460px;width:100%}
.next-lbl{font-size:.65rem;font-weight:900;letter-spacing:.18em;text-transform:uppercase;color:var(--yellow);margin-bottom:.75rem}
.next-teams{display:flex;align-items:center;justify-content:center;gap:1.5rem;margin-bottom:.75rem}
.next-team{text-align:center}
.next-flag{font-size:2.8rem;line-height:1;margin-bottom:.3rem}
.next-name{font-size:.95rem;font-weight:700;color:#fff}
.next-vs{font-size:1.4rem;font-weight:900;color:rgba(255,255,255,.4)}
.next-info{font-size:.82rem;color:rgba(255,255,255,.65);line-height:1.7}
.next-time{font-size:1.5rem;font-weight:900;color:var(--yellow);font-variant-numeric:tabular-nums;display:block;margin:.15rem 0}

.sve-matches-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}
.sve-match{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.15);border-radius:var(--radius);padding:1.1rem 1.25rem;transition:all var(--ease)}
.sve-match:hover{background:rgba(255,255,255,.15);transform:translateY(-2px)}
.sve-match-date{font-size:.68rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.55);margin-bottom:.6rem}
.sve-match .match-card{background:transparent;box-shadow:none;border:none;padding:0;grid-template-columns:1fr auto 1fr}
.sve-match .match-name{color:#fff}
.sve-match .match-name.sve{color:var(--yellow)}
.sve-match .match-time-val{color:var(--yellow);font-size:1.25rem}
.sve-match .match-score-val{color:#fff;font-size:1.3rem}
.sve-match .tag-default{background:rgba(255,255,255,.15);color:rgba(255,255,255,.7)}

/* ===== GROUP TABLES ===== */
.groups-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:1.25rem}
.group-card{background:var(--white);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}
.group-card.sve-group{box-shadow:0 0 0 2px var(--yellow),var(--shadow-md)}
.group-head{background:var(--blue);color:#fff;padding:.7rem 1.2rem;display:flex;align-items:center;justify-content:space-between}
.group-head-left span{display:block;font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;opacity:.7;margin-bottom:.1rem}
.group-head-left strong{font-size:1.1rem;font-weight:800}
.sve-pill{background:var(--yellow);color:var(--blue-darker);font-size:.62rem;font-weight:900;padding:.2rem .7rem;border-radius:100px;letter-spacing:.08em;text-transform:uppercase}

.standings{width:100%;border-collapse:collapse;font-size:.83rem}
.standings th{padding:.45rem .6rem;font-size:.65rem;font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:var(--text-muted);text-align:center;border-bottom:1px solid var(--border)}
.standings th:first-child,.standings td:first-child{text-align:left;padding-left:1rem}
.standings td{padding:.55rem .6rem;text-align:center;border-bottom:1px solid var(--border);color:var(--text)}
.standings tr:last-child td{border-bottom:none}
.standings tr.sve-row{background:rgba(254,204,2,.09)}
.standings tr.qualify td:first-child{border-left:3px solid var(--green)}
.standings tr.elim td:first-child{border-left:3px solid var(--red)}
.team-cell{display:flex;align-items:center;gap:.45rem;font-weight:600;white-space:nowrap}
.team-cell .tf{font-size:.95rem}
.pts-col{font-weight:800;color:var(--blue)}
.gd-pos{color:var(--green);font-weight:700}
.gd-neg{color:var(--red);font-weight:700}

/* ===== PLAYER CAROUSEL ===== */
.players-section{background:linear-gradient(180deg,#001428 0%,var(--blue-darker) 100%);padding:3rem 0 2.5rem;overflow:hidden}
.players-section .section-title{color:#fff;margin-bottom:1.75rem}
.players-section .section-title::after{background:linear-gradient(to right,rgba(255,255,255,.2),transparent)}
.players-section .section-title a{font-size:.8rem;font-weight:700;color:var(--yellow);text-decoration:none;white-space:nowrap}
.players-section .section-title a:hover{text-decoration:underline}

/* Viewport with fade edges */
.carousel-viewport{position:relative;overflow:hidden}
.carousel-viewport::before,
.carousel-viewport::after{content:'';position:absolute;top:0;bottom:0;width:80px;z-index:3;pointer-events:none}
.carousel-viewport::before{left:0;background:linear-gradient(to right,#001428,transparent)}
.carousel-viewport::after{right:0;background:linear-gradient(to left,#001428,transparent)}

/* Scrolling track – duplicated cards for seamless loop */
.carousel-track{display:flex;gap:1.25rem;width:max-content;will-change:transform}
.carousel-track.is-playing{animation:carouselScroll 36s linear infinite}
.carousel-track.is-playing:hover{animation-play-state:paused}

@keyframes carouselScroll{
  0%  {transform:translateX(0)}
  100%{transform:translateX(calc(-50% - .625rem))} /* half the strip width */
}

/* Player card */
.player-card{position:relative;flex-shrink:0;width:clamp(260px,30vw,360px);aspect-ratio:4/3;border-radius:16px;overflow:hidden;cursor:pointer;transition:transform .3s ease,box-shadow .3s ease}
.player-card:hover{transform:translateY(-6px) scale(1.02);box-shadow:0 16px 48px rgba(0,0,0,.5)}

/* Background gradient */
.player-card-bg{position:absolute;inset:0;background:linear-gradient(145deg,var(--pc1,#001e42),var(--pc2,#0055a0))}

/* Big number decoration */
.player-num-bg{position:absolute;right:-4%;top:-8%;font-size:clamp(90px,22vw,160px);font-weight:900;color:rgba(255,255,255,.07);line-height:1;pointer-events:none;user-select:none;font-variant-numeric:tabular-nums;font-family:'Inter',sans-serif}

/* Optional photo overlay */
.player-photo-layer{position:absolute;inset:0;background-size:cover;background-position:center top}
.player-photo-layer::after{content:'';position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.85) 0%,rgba(0,0,0,.2) 55%,transparent 100%)}

/* Bottom content */
.player-card-body{position:absolute;bottom:0;left:0;right:0;padding:1.1rem 1.2rem 1rem;z-index:2}
.player-pos-badge{display:inline-block;font-size:.6rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;background:var(--yellow);color:var(--blue-darker);padding:.2rem .65rem;border-radius:100px;margin-bottom:.55rem}
.player-firstname{font-size:1rem;font-weight:600;color:rgba(255,255,255,.8);line-height:1.1;margin-bottom:.1rem}
.player-lastname{font-size:1.35rem;font-weight:900;color:#fff;line-height:1.1;letter-spacing:-.01em}
.player-card-divider{height:2px;background:var(--yellow);width:32px;margin:.6rem 0 .55rem;border-radius:2px}
.player-card-meta{display:flex;align-items:center;justify-content:space-between;gap:.5rem}
.player-club-name{font-size:.72rem;font-weight:600;color:rgba(255,255,255,.65)}
.player-stat-pills{display:flex;gap:.4rem}
.player-stat-pill{font-size:.65rem;font-weight:800;background:rgba(255,255,255,.12);color:rgba(255,255,255,.9);padding:.15rem .55rem;border-radius:100px;white-space:nowrap}

/* Hover: glow ring */
.player-card::after{content:'';position:absolute;inset:0;border-radius:16px;border:2px solid transparent;transition:border-color .3s ease}
.player-card:hover::after{border-color:var(--yellow)}

/* Spelare page grid */
.players-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.5rem}
.players-grid .player-card{width:100%;aspect-ratio:4/3;cursor:default}
.players-grid .player-card:hover{transform:translateY(-4px)}

/* Spelare page extra info (shown on page, not carousel) */
.player-fact{font-size:.78rem;color:rgba(255,255,255,.6);margin-top:.5rem;line-height:1.5;font-style:italic}

/* ===== ADMIN ===== */
.admin-page{min-height:calc(100vh - var(--nav-h));background:var(--light)}
.admin-top{background:var(--blue-darker);color:#fff;padding:1.5rem;display:flex;align-items:center;justify-content:space-between}
.admin-top h1{font-size:1.3rem;font-weight:800}
.admin-body{padding:2rem 1.5rem;max-width:1000px;margin:0 auto}
.admin-group-section{margin-bottom:2rem}
.admin-group-title{font-size:.8rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);padding:.4rem 0;border-bottom:2px solid var(--border);margin-bottom:.75rem}
.admin-match{background:var(--white);border-radius:var(--radius-sm);box-shadow:var(--shadow);padding:.85rem 1.2rem;display:flex;align-items:center;gap:1rem;margin-bottom:.5rem;flex-wrap:wrap}
.admin-match.played{opacity:.75}
.admin-match-info{flex:1;min-width:200px}
.admin-match-teams{font-weight:700;font-size:.95rem}
.admin-match-meta{font-size:.75rem;color:var(--text-muted);margin-top:.15rem}
.score-edit{display:flex;align-items:center;gap:.5rem}
.score-edit input[type=number]{width:52px;height:40px;text-align:center;font-size:1.1rem;font-weight:800;border:2px solid var(--border);border-radius:8px;font-family:inherit;outline:none;transition:border-color var(--ease)}
.score-edit input[type=number]:focus{border-color:var(--blue)}
.score-sep{font-size:1.2rem;color:var(--text-muted);font-weight:700}
.current-result{background:var(--green);color:#fff;font-size:.8rem;font-weight:800;padding:.25rem .7rem;border-radius:100px;white-space:nowrap}
.btn{display:inline-flex;align-items:center;gap:.35rem;padding:.55rem 1.2rem;border-radius:8px;font-weight:700;font-size:.88rem;cursor:pointer;border:none;font-family:inherit;transition:all var(--ease)}
.btn-primary{background:var(--blue);color:#fff}
.btn-primary:hover{background:var(--blue-dark);transform:translateY(-1px)}
.btn-sm{padding:.38rem .85rem;font-size:.8rem;border-radius:6px}
.btn-success{background:var(--green);color:#fff}
.btn-success:hover{background:#16a34a}
.btn-danger{background:var(--red);color:#fff}
.btn-danger:hover{background:#dc2626}
.btn-ghost{background:transparent;color:var(--text-muted);border:2px solid var(--border)}
.btn-ghost:hover{border-color:var(--blue);color:var(--blue)}
.admin-logout{color:rgba(255,255,255,.7);font-size:.85rem;transition:color var(--ease)}
.admin-logout:hover{color:#fff}
.stats-bar{display:flex;gap:1.5rem;background:var(--white);border-radius:var(--radius);padding:1rem 1.5rem;box-shadow:var(--shadow);margin-bottom:1.5rem;flex-wrap:wrap}
.stat-item{text-align:center}
.stat-val{display:block;font-size:1.5rem;font-weight:900;color:var(--blue)}
.stat-lbl{font-size:.72rem;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em}

/* Login */
.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--blue-darker)}
.login-card{background:#fff;border-radius:var(--radius);padding:2.5rem;width:100%;max-width:380px;box-shadow:var(--shadow-lg)}
.login-icon{text-align:center;font-size:2.5rem;margin-bottom:.5rem}
.login-title{text-align:center;font-size:1.25rem;font-weight:800;margin-bottom:1.5rem;color:var(--blue-darker)}
.form-group{margin-bottom:1rem}
.form-group label{display:block;font-size:.82rem;font-weight:700;margin-bottom:.35rem;color:var(--text-muted)}
.form-control{width:100%;padding:.65rem .9rem;border:2px solid var(--border);border-radius:8px;font-size:.95rem;font-family:inherit;outline:none;transition:border-color var(--ease)}
.form-control:focus{border-color:var(--blue)}
.btn-block{width:100%;justify-content:center;font-size:1rem;padding:.75rem}
.alert{padding:.75rem 1rem;border-radius:8px;font-size:.88rem;margin-bottom:1rem;font-weight:600}
.alert-danger{background:#fee2e2;color:#991b1b;border-left:3px solid var(--red)}
.alert-success{background:#dcfce7;color:#166534;border-left:3px solid var(--green)}
.form-hint{font-size:.75rem;color:var(--text-muted);text-align:center;margin-top:.75rem}

/* ===== FOOTER ===== */
.footer{background:var(--blue-darker);color:rgba(255,255,255,.5);text-align:center;padding:1.75rem 1.5rem;font-size:.82rem}
.footer strong{color:#fff}

/* ===== UTILITIES ===== */
.empty-state{text-align:center;padding:3rem 1rem;color:var(--text-muted)}
.empty-state .icon{font-size:2.5rem;margin-bottom:.75rem}
.badge{display:inline-block;font-size:.68rem;font-weight:800;padding:.18rem .6rem;border-radius:100px;letter-spacing:.04em}
.badge-blue{background:var(--blue);color:#fff}
.badge-yellow{background:var(--yellow);color:var(--blue-darker)}

/* ===== RESPONSIVE ===== */
@media(max-width:900px){
  .groups-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}
}
@media(max-width:768px){
  .nav-links{display:none;position:absolute;top:var(--nav-h);left:0;right:0;background:var(--blue-darker);flex-direction:column;padding:1rem;gap:.25rem;box-shadow:0 4px 20px rgba(0,0,0,.35)}
  .nav-links.open{display:flex}
  .nav-links a{padding:.75rem 1rem;border-radius:8px}
  .nav-hamburger{display:flex}
  .hero{padding:2.5rem 1rem 2rem}
  .countdown{gap:.6rem}
  .cd-val{font-size:2rem;min-width:58px;padding:.35rem .6rem}
  .cd-sep{font-size:2rem}
  .match-card{padding:.75rem .9rem;gap:.5rem}
  .match-name{font-size:.82rem}
  .match-time-val{font-size:1rem}
  .match-mid{min-width:72px}
  .match-flag{font-size:1.2rem}
  .groups-grid{grid-template-columns:1fr}
  .sve-matches-grid{grid-template-columns:1fr}
  .admin-match{gap:.75rem}
  .admin-top{flex-wrap:wrap;gap:.5rem}
}
@media(max-width:480px){
  .cd-sep{display:none}
  .filter-wrap{gap:.3rem}
  .ftab{padding:.3rem .7rem;font-size:.78rem}
  .next-match-card{padding:1.1rem}
  .next-flag{font-size:2rem}
  .standings th:nth-child(5),
  .standings td:nth-child(5),
  .standings th:nth-child(6),
  .standings td:nth-child(6){display:none}
}
