:root{--bg: #f5f9fc;--bg-glow: #e7f3fa;--card: #ffffff;--card-raised: #f0f7fc;--border: #dcebf5;--border-bright: #9bc9e6;--text: #00124a;--muted: #6c7685;--accent: #0061c2;--accent-deep: #004489;--accent-dim: rgba(0, 97, 194, .08);--green: #009640;--green-lime: #95c12d;--green-dim: rgba(0, 150, 64, .32);--live: #e02d1b;--font-display: "Figtree", "Segoe UI", sans-serif;--font-body: "Figtree", "Segoe UI", sans-serif}*{box-sizing:border-box}body{margin:0;color:var(--text);font-family:var(--font-body);font-size:16px;line-height:1.4;background-color:var(--bg);background-image:radial-gradient(ellipse 120% 60% at 50% -10%,var(--bg-glow) 0%,rgba(245,249,252,0) 60%),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.02 0'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)'/%3E%3C/svg%3E");background-repeat:no-repeat,repeat}.app{max-width:1100px;margin:0 auto;padding:4.2rem .75rem 4rem}.app-header{padding:1.5rem 0 .25rem;text-align:center}.header-kicker{margin:0 0 .2rem;font-family:var(--font-display);font-size:.66rem;font-weight:600;letter-spacing:.45em;text-transform:uppercase;color:var(--accent);animation:rise .5s ease-out both}.app-header h1{margin:0;font-family:var(--font-display);font-weight:700;font-size:2rem;letter-spacing:.04em;line-height:1.05;text-transform:uppercase;animation:rise .5s ease-out .06s both}.title-year{color:var(--accent);text-shadow:0 0 24px rgba(0,97,194,.3)}.title-sweep{display:block;margin-top:.15rem;font-size:.7rem;font-weight:600;font-style:normal;letter-spacing:.55em;color:var(--muted)}@keyframes rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.tube-nav{position:fixed;top:0;left:0;right:0;z-index:50;display:flex;justify-content:center;padding:.55rem .75rem;background:#f5f9fce0;border-bottom:1px solid var(--border);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.tube-nav-inner{display:flex;align-items:center;gap:.35rem;padding:.3rem;background:#fff;border:1px solid var(--border);border-radius:999px;box-shadow:0 4px 18px #00124a14}.tube-link{position:relative;display:block;padding:.55rem 1.6rem .5rem;font-family:var(--font-display);font-size:.78rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;text-decoration:none;color:var(--muted);border-radius:999px;transition:color .2s ease}.tube-link:hover{color:var(--text)}.tube-link.active{color:var(--accent)}.tube-icon{display:none}.tube-lamp{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:999px;background:var(--accent-dim);z-index:-1}.tube-lamp-bar{position:absolute;top:-.55rem;left:50%;transform:translate(-50%);width:2rem;height:4px;background:var(--accent);border-radius:0 0 6px 6px}.tube-glow{position:absolute;background:#0061c238;border-radius:999px}.tube-glow-wide{width:3rem;height:1.5rem;top:-.5rem;left:-.5rem;filter:blur(12px)}.tube-glow-mid{width:2rem;height:1.5rem;top:-.25rem;filter:blur(10px)}.tube-glow-tight{width:1rem;height:1rem;top:0;left:.5rem;filter:blur(6px)}@media(max-width:699px){.tube-label{display:none}.tube-link{padding:.6rem 1.1rem .45rem}.tube-icon{display:inline-flex}}.updated-at{margin:.7rem 0 0;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.refresh-warning{color:var(--live)}.loading,.full-page-error,.bracket-unavailable,.no-fixtures{text-align:center;padding:4rem 1rem;font-size:1.05rem;color:var(--muted)}.full-page-error button{margin-top:1rem;padding:.6rem 2rem;border:none;border-radius:8px;background:var(--accent);color:#fff;font-family:var(--font-display);font-size:.85rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;cursor:pointer}.full-page-error button:hover{background:var(--accent-deep)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.groups-grid{display:grid;grid-template-columns:1fr;gap:.9rem;margin-top:1.25rem}.group-card{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:0;overflow:hidden;box-shadow:0 1px 2px #00124a0d;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}.group-card h2{margin:0;padding:.55rem .85rem .45rem;font-family:var(--font-display);font-weight:700;font-size:.82rem;letter-spacing:.22em;text-transform:uppercase;color:var(--accent);background:var(--card-raised);border-bottom:1px solid var(--border)}.group-card table{width:100%;border-collapse:collapse;font-size:.88rem}.group-card th,.group-card td{padding:.42rem .3rem;text-align:center}.group-card th{color:var(--muted);font-size:.66rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;border-bottom:1px solid var(--border)}.group-card tbody tr{border-bottom:1px solid #e8f1f8}.group-card tbody tr:last-child{border-bottom:none}.group-card .team-cell{text-align:left;padding-left:.7rem}.group-card .team-cell .flag{width:24px;height:auto;border-radius:3px;vertical-align:middle;margin-right:.45rem}.group-card .team-name{font-weight:600;font-size:.78rem}.group-card .owner{display:block;font-size:.72rem;font-weight:400;color:var(--muted)}.group-card tr.qualifying td:first-child{box-shadow:inset 3px 0 0 var(--green)}.group-card td.pts{font-family:var(--font-display);font-weight:700;font-size:.95rem;color:var(--accent)}.filter-chips{display:flex;justify-content:center;gap:.4rem;margin:1.25rem 0 .5rem}.filter-chips button{padding:.4rem 1.3rem .35rem;font-family:var(--font-display);font-size:.72rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;border:1px solid var(--border);border-radius:999px;background:var(--card);color:var(--muted);cursor:pointer}.filter-chips button:hover{color:var(--text);border-color:var(--border-bright)}.filter-chips button[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:#fff}.date-heading{display:flex;align-items:center;gap:.75rem;margin:1.75rem 0 .6rem;font-family:var(--font-display);font-weight:600;font-size:.74rem;letter-spacing:.22em;text-transform:uppercase;color:var(--muted)}.date-heading.today{color:var(--green)}.date-heading.today:before,.date-heading.today:after{border-color:var(--green-dim)}.date-heading:before,.date-heading:after{content:"";flex:1;border-top:1px solid var(--border)}.fixture{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:.5rem;background:linear-gradient(180deg,var(--card-raised),var(--card));border:1px solid var(--border);border-radius:14px;padding:.65rem .85rem;margin-bottom:.5rem;box-shadow:0 1px 2px #00124a0d;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}@media(hover:hover){.group-card:hover,.fixture:hover{transform:scale(1.02);border-color:var(--border-bright);box-shadow:0 6px 18px #00124a1a}}.fixture .side{min-width:0}.fixture .side.away{text-align:right}.fixture .side .team-name{font-weight:600;font-size:.95rem}.fixture .side .team-name.placeholder{color:var(--muted);font-weight:500}.fixture .side .flag{width:24px;height:auto;border-radius:3px;vertical-align:middle}.fixture .side.home .flag{margin-right:.45rem}.fixture .side.away .flag{margin-left:.45rem}.fixture .owner{display:block;font-size:.73rem;color:var(--muted)}.fixture .centre{text-align:center;min-width:6rem}.fixture .score{display:block;font-family:var(--font-display);font-weight:700;font-size:1.25rem;color:var(--text)}.fixture .kickoff-uk{font-family:var(--font-display);font-weight:600;font-size:.92rem;color:var(--accent)}.fixture .kickoff-local,.fixture .round{display:block;font-size:.68rem;font-weight:400;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.live-badge{display:block;width:fit-content;margin:0 auto .25rem;background:var(--live);color:#fff;font-family:var(--font-display);font-size:.66rem;font-weight:700;letter-spacing:.1em;border-radius:4px;padding:.12rem .45rem;animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{50%{opacity:.55}}@media(prefers-reduced-motion:reduce){.live-badge,.header-kicker,.app-header h1,.app-header nav{animation:none}.group-card,.fixture{transition:none}.group-card:hover,.fixture:hover{transform:none}}.bracket-scroller{width:100vw;margin-left:calc(50% - 50vw);overflow-x:auto;padding:0 .75rem}.bracket{display:grid;grid-template-columns:repeat(9,minmax(150px,1fr));gap:.6rem;min-width:1380px;padding:1.25rem 0 2rem;margin:0 auto;max-width:1800px}.bracket-round{display:flex;flex-direction:column;justify-content:space-around;gap:.6rem}.bracket-centre{display:flex;flex-direction:column;justify-content:center;gap:1rem}.bracket-match{position:relative;background:var(--card);border:1px solid var(--border);border-radius:10px;padding:.38rem .5rem;font-size:.78rem}.bracket-round.left .bracket-match:after,.bracket-round.right .bracket-match:before{content:"";position:absolute;top:50%;width:.6rem;border-top:2px solid var(--border-bright)}.bracket-round.left .bracket-match:after{left:100%}.bracket-round.right .bracket-match:before{right:100%}.bracket-slot{display:flex;align-items:center;gap:.35rem;padding:.15rem 0}.bracket-slot .flag{width:18px;height:auto;border-radius:2px;flex-shrink:0}.bracket-slot .slot-text{display:flex;flex-direction:column;min-width:0}.bracket-slot .slot-name{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bracket-slot .slot-name.placeholder{color:var(--muted);font-weight:500;letter-spacing:.05em}.bracket-slot .owner{font-size:.66rem;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bracket-slot .slot-score{margin-left:auto;font-family:var(--font-display);font-weight:700;font-size:.85rem;color:var(--accent)}.bracket-slot.loser{opacity:.45}.bracket-meta{border-top:1px solid var(--border);margin-top:.25rem;padding-top:.25rem;text-align:center;font-size:.64rem;font-weight:400;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.champion-slot{display:flex;flex-direction:column;align-items:center;gap:.25rem;background:var(--accent-dim);border:1px solid var(--accent);border-radius:12px;padding:.85rem .5rem;text-align:center;box-shadow:0 4px 24px #0061c226}.champion-slot.undecided{background:var(--card);border-style:dashed;border-color:var(--border-bright);box-shadow:none}.champion-slot.undecided .champion-trophy{opacity:.45}.champion-trophy{font-size:1.6rem}.champion-slot .flag{width:28px;height:auto;border-radius:3px}.champion-name{font-family:var(--font-display);font-weight:700;font-size:.88rem;letter-spacing:.12em;text-transform:uppercase;color:var(--accent)}.champion-name.placeholder{color:var(--muted)}.champion-slot .owner{font-size:.74rem;color:var(--muted)}.third-place h3{margin:0 0 .35rem;font-family:var(--font-display);font-weight:600;font-size:.66rem;letter-spacing:.22em;text-transform:uppercase;color:var(--muted);text-align:center}@media(min-width:700px){.header-kicker{font-size:.74rem}.app-header h1{font-size:2.8rem}.title-sweep{font-size:.8rem}.groups-grid{grid-template-columns:repeat(2,1fr)}.hide-narrow{display:table-cell}}@media(min-width:1000px){.groups-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:699px){.hide-narrow{display:none}}.theme-toggle{position:fixed;top:.8rem;right:.8rem;z-index:60;display:inline-flex;align-items:center;justify-content:center;width:2.4rem;height:2.4rem;border-radius:999px;border:1px solid var(--border);background:var(--card);color:var(--muted);cursor:pointer;box-shadow:0 4px 18px #00124a14;transition:color .2s ease,transform .2s ease}.theme-toggle:hover{color:var(--accent)}.theme-toggle[aria-pressed=true]{color:var(--accent);transform:rotate(45deg)}[data-theme=departures]{--bg: #0b0b0d;--bg-glow: #161619;--card: #131316;--card-raised: #18181c;--border: #232328;--border-bright: #3a3a42;--text: #e9e9e4;--muted: #8b8b92;--accent: #f2c14e;--accent-deep: #d9a32f;--accent-dim: rgba(242, 193, 78, .1);--green: #95c12d;--green-dim: rgba(149, 193, 45, .32);--live: #ff5a47;--font-display: "Space Mono", "Consolas", monospace;--font-body: "Space Mono", "Consolas", monospace}[data-theme=departures] body{background-image:none}[data-theme=departures] .tube-nav{background:#0b0b0de0}[data-theme=departures] .tube-nav-inner{background:var(--card);box-shadow:0 4px 18px #00000080}[data-theme=departures] .tube-glow{background:#f2c14e40}[data-theme=departures] .title-year{text-shadow:0 0 24px rgba(242,193,78,.35)}[data-theme=departures] .group-card tbody tr{border-bottom-color:#1e1e23}[data-theme=departures] .fixture{background:var(--card)}[data-theme=departures] .group-card,[data-theme=departures] .fixture,[data-theme=departures] .bracket-match{box-shadow:inset 0 1px #ffffff08,0 1px #0009}[data-theme=departures] .filter-chips button[aria-pressed=true],[data-theme=departures] .full-page-error button{color:#131316}[data-theme=departures] .group-card .team-name,[data-theme=departures] .fixture .team-name,[data-theme=departures] .fixture .score,[data-theme=departures] .fixture .kickoff-uk,[data-theme=departures] .bracket-slot .slot-name{display:inline-block;text-transform:uppercase;font-weight:700;letter-spacing:0}[data-theme=departures] .group-card .team-cell .team-link{display:flex;flex-wrap:wrap;align-items:flex-start}[data-theme=departures] .group-card .team-cell .flag{flex-shrink:0}[data-theme=departures] .group-card .team-name{min-width:0}[data-theme=departures] .group-card .team-cell .owner{flex-basis:100%}[data-theme=departures] .group-card td.pts,[data-theme=departures] .fixture .kickoff-uk{color:var(--accent)}@keyframes board-flip-in{0%{transform:rotateX(-90deg);opacity:0}to{transform:rotateX(0);opacity:1}}[data-theme=departures] main{perspective:900px}[data-theme=departures] .group-card tbody tr,[data-theme=departures] .fixture,[data-theme=departures] .bracket-match{animation:board-flip-in .45s cubic-bezier(.3,.9,.4,1) both;transform-origin:50% 0;backface-visibility:hidden}[data-theme=departures] .group-card tbody tr:nth-child(2){animation-delay:.07s}[data-theme=departures] .group-card tbody tr:nth-child(3){animation-delay:.14s}[data-theme=departures] .group-card tbody tr:nth-child(4){animation-delay:.21s}[data-theme=departures] .fixture:nth-of-type(2){animation-delay:.08s}[data-theme=departures] .fixture:nth-of-type(3){animation-delay:.16s}[data-theme=departures] .fixture:nth-of-type(4){animation-delay:.24s}[data-theme=departures] .fixture:nth-of-type(5){animation-delay:.32s}[data-theme=departures] .fixture:nth-of-type(6){animation-delay:.4s}@media(hover:hover){[data-theme=departures] .group-card:hover,[data-theme=departures] .fixture:hover{box-shadow:0 6px 18px #0000008c}}@media(prefers-reduced-motion:reduce){[data-theme=departures] .group-card tbody tr,[data-theme=departures] .fixture,[data-theme=departures] .bracket-match{animation:none}.theme-toggle{transition:none}}.team-link,.group-link{color:inherit;text-decoration:none;cursor:pointer}.group-link:hover,.team-link:hover .team-name{color:var(--accent);text-decoration:underline}.group-card .team-cell .team-link{display:block}.fixture .side .team-link{display:inline-flex;align-items:center;flex-wrap:wrap}.fixture .side.away .team-link{justify-content:flex-end}.fixture .side .team-link .owner{flex-basis:100%}.back-link{display:inline-flex;align-items:center;gap:.2rem;margin:.5rem 0 .25rem;font-family:var(--font-display);font-size:.74rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);text-decoration:none}.back-link:hover{color:var(--accent)}.detail-header{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;margin:.5rem 0 1.25rem}.detail-header .flag{width:34px;height:auto;border-radius:3px}.detail-header h1{margin:0;font-family:var(--font-display);font-weight:700;font-size:1.5rem;letter-spacing:.02em;text-transform:uppercase}.detail-header .owner{width:100%;font-size:.8rem;color:var(--muted)}
