:root{--noir:#16140f;--noir-2:#221e15;--bronze:#8c6d2f;--or:#d4af37;--sable:#f7f5f0;--blanc:#fff;--encre:#1c1a16;--muted:#5b6b7a;--ligne:#ffffff24;--ligne-sombre:#0b1e331f;--radius:14px}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0;padding:0}body{background:var(--sable);color:var(--encre);-webkit-font-smoothing:antialiased;font-family:Manrope,sans-serif}h1,h2,h3,.display{letter-spacing:.01em;text-transform:uppercase;font-family:Anton,sans-serif;font-weight:400;line-height:.95}.mono{font-family:Space Mono,monospace}a{color:inherit;text-decoration:none}button,input,select{font-family:inherit}button{cursor:pointer;background:0 0;border:none}::selection{background:var(--or);color:var(--noir)}.btn{letter-spacing:.03em;text-transform:uppercase;border-radius:8px;justify-content:center;align-items:center;gap:8px;padding:14px 24px;font-size:14px;font-weight:800;transition:background .15s;display:inline-flex}.btn-or{background:var(--or);color:var(--noir);width:100%}.btn-or:hover{background:#c4a02f}.btn-or:disabled{opacity:.6;cursor:default}.btn-danger{color:var(--blanc);background:#b23b3b;width:auto}.btn-danger:hover{background:#962f2f}.btn-danger:disabled{opacity:.6;cursor:default}.danger-confirm{background:#b23b3b0f;border:1px solid #b23b3b4d;border-radius:8px;padding:16px}.btn-ghost-dark{color:var(--blanc);border:1px solid var(--ligne);background:0 0;padding:10px 18px}.btn-ghost-light{color:var(--encre);border:1px solid var(--ligne-sombre);background:0 0;padding:14px 24px}.auth-page{background:var(--noir);justify-content:center;align-items:center;min-height:100vh;padding:32px 16px;display:flex}.auth-card{background:var(--noir-2);border:1px solid var(--ligne);border-radius:var(--radius);width:100%;max-width:420px;color:var(--blanc);padding:36px 32px}.auth-card h1{color:var(--blanc);margin:24px 0 8px;font-size:28px}.auth-lead{color:#ffffffb8;margin:0 0 20px;font-size:14px;line-height:1.5}.auth-form{flex-direction:column;gap:16px;margin-top:8px;display:flex}.auth-form label{flex-direction:column;gap:6px;display:flex}.auth-form label>span{letter-spacing:.06em;text-transform:uppercase;color:#ffffff80;font-size:11px}.auth-form input{border:1px solid var(--ligne);color:var(--blanc);background:#ffffff0d;border-radius:8px;padding:12px 14px;font-size:15px}.auth-form input:focus{border-color:var(--or);outline:none}.auth-form .btn{margin-top:8px}.auth-error{color:#ff9b9b;background:#dc3c3c1f;border:1px solid #dc3c3c66;border-radius:8px;margin:0;padding:10px 12px;font-size:13px}.auth-switch{text-align:center;color:#fff9;margin:24px 0 0;font-size:13px}.auth-switch a{color:var(--or);font-weight:700}.logo{letter-spacing:.03em;color:var(--blanc);flex-shrink:0;align-items:center;gap:12px;font-family:Anton,sans-serif;font-size:26px;display:flex}.logo img{width:auto;height:48px}.logo b{color:var(--or);font-weight:400}.app-shell{background:var(--sable);min-height:100vh}.app-topbar{background:var(--noir);z-index:50;border-bottom:1px solid var(--ligne);justify-content:space-between;align-items:center;gap:24px;padding:14px 28px;display:flex;position:sticky;top:0}.app-topbar-left{flex:auto;align-items:center;gap:28px;min-width:0;display:flex}.app-topbar-right{flex-shrink:0;align-items:center;gap:14px;display:flex}.role-badge{letter-spacing:.03em;text-transform:uppercase;color:var(--or);background:#d4af3726;border-radius:999px;padding:4px 10px;font-size:11px}.live-indicator{color:#e17a7a;letter-spacing:.03em;text-transform:uppercase;background:#b23b3b24;border-radius:999px;align-items:center;gap:7px;padding:5px 12px;font-size:11px;font-weight:700;display:inline-flex}.live-dot{background:#e2504f;border-radius:50%;width:7px;height:7px;animation:2.2s ease-in-out infinite heroPulse}@media (prefers-reduced-motion:reduce){.live-dot{animation:none}}.social-links{align-items:center;gap:12px;display:flex}.social-links a{color:var(--blanc);transition:color .15s;display:inline-flex}.social-links a:hover{color:var(--or)}.app-user{color:var(--blanc);font-size:14px;font-weight:600}.app-nav{scrollbar-width:none;align-items:center;gap:6px;min-width:0;display:flex;overflow-x:auto}.app-nav::-webkit-scrollbar{display:none}.app-nav-link{color:var(--blanc);white-space:nowrap;border-radius:10px;flex-shrink:0;padding:10px 20px;font-size:15px;font-weight:700;text-decoration:none;transition:background .15s,color .15s;display:inline-block}.app-nav-link:hover,.app-nav-link-active{background:var(--or);color:var(--noir)}.app-main{max-width:1120px;margin:0 auto;padding:48px 28px}.hero{background:var(--noir);color:var(--blanc);width:100vw;margin:-48px calc(50% - 50vw) 40px;padding:88px 28px 72px;position:relative;overflow:hidden}.hero-inner{z-index:2;max-width:1120px;margin:0 auto;padding:0 28px;position:relative}.hero-glow{pointer-events:none;background:radial-gradient(circle,#d4af3738 0%,#d4af3700 70%);border-radius:50%;width:640px;height:640px;animation:8s ease-in-out infinite heroGlowDrift;position:absolute;top:50%;right:-10%;transform:translateY(-50%)}.eyebrow{letter-spacing:.08em;text-transform:uppercase;color:var(--or);opacity:0;align-items:center;gap:8px;margin-bottom:18px;font-family:Space Mono,monospace;font-size:12px;animation:.7s 50ms both heroFadeUp;display:inline-flex}.eyebrow:before{content:"●";font-size:8px;animation:2.4s ease-in-out infinite heroPulse}.hero h1{opacity:0;max-width:820px;margin:0 0 20px;font-size:clamp(36px,6vw,72px);animation:.7s .15s both heroFadeUp}.hero h1 span{color:var(--or)}.hero .lead{color:#ffffffb8;opacity:0;max-width:560px;margin:0 0 32px;font-size:17px;line-height:1.5;animation:.7s .28s both heroFadeUp}.hero-actions{opacity:0;flex-wrap:wrap;gap:14px;animation:.7s .4s both heroFadeUp;display:flex}@keyframes heroFadeUp{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes heroPulse{0%,to{opacity:1}50%{opacity:.35}}@keyframes heroGlowDrift{0%,to{transform:translateY(-50%)scale(1)}50%{transform:translateY(-46%)scale(1.08)}}@media (prefers-reduced-motion:reduce){.eyebrow,.hero h1,.hero .lead,.hero-actions,.hero-glow,.eyebrow:before{opacity:1;animation:none}}.section-head{border-bottom:2px solid var(--ligne-sombre);flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:24px;padding-bottom:18px;display:flex}.section-head h2{font-size:28px}.section-head .btn{width:auto}.cards{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:20px;display:grid}.card{background:var(--blanc);border-radius:var(--radius);border:1px solid var(--ligne-sombre);overflow:hidden}.card-top{background:var(--noir);padding:16px 18px;transition:filter .15s;display:block}.card-top:hover{filter:brightness(1.18)}.card-top .cat{letter-spacing:.06em;color:var(--or);font-size:12px}.card-top h3{color:var(--blanc);margin:6px 0 0;font-size:22px}.card-body{padding:16px 18px 20px}.card-row{color:var(--muted);justify-content:space-between;margin-bottom:6px;font-size:13px;display:flex}.card-row b{color:var(--encre)}.badge{letter-spacing:.03em;text-transform:uppercase;border-radius:999px;margin-top:10px;padding:4px 10px;font-size:11px;font-weight:700;display:inline-block}.badge.open{color:var(--bronze);background:#8c6d2f24}.badge.full,.badge.finished{color:var(--muted);background:#0b1e3314}.badge.draft{color:var(--muted);background:#0b1e330f}.badge.in_progress{color:var(--or);background:#d4af372e}.badge-live{color:var(--blanc);background:#b23b3b;align-items:center;gap:6px;display:inline-flex}.badge-live:before{content:"●";font-size:9px;animation:1.2s ease-in-out infinite badgeLivePulse}@keyframes badgeLivePulse{0%,to{opacity:1}50%{opacity:.25}}@media (prefers-reduced-motion:reduce){.badge-live:before{animation:none}}.registered-note{color:var(--bronze);margin:10px 0 0;font-size:12px;display:block}.card-link{letter-spacing:.02em;color:var(--bronze);margin-top:10px;font-size:12px;font-weight:700;display:block}.back-link{color:var(--muted);margin-bottom:8px;font-size:12px;display:inline-block}.panel{background:var(--blanc);border:1px solid var(--ligne-sombre);border-radius:var(--radius);margin-bottom:28px;padding:28px 32px}.panel h2{margin:0 0 8px;font-size:22px}.field-form{flex-direction:column;gap:16px;max-width:560px;margin-top:16px;display:flex}.field-form label{flex-direction:column;flex:1;gap:6px;display:flex}.field-form label>span{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-size:11px}.field-form input,.field-form select{border:1px solid var(--ligne-sombre);color:var(--encre);background:var(--blanc);border-radius:8px;padding:12px 14px;font-size:15px}.field-form input:focus,.field-form select:focus{border-color:var(--bronze);outline:none}.field-row{gap:16px;display:flex}.field-error{color:#a33;background:#be323214;border:1px solid #be32324d;border-radius:8px;margin:0;padding:10px 12px;font-size:13px}.field-actions{gap:12px;display:flex}.inline-form{flex-wrap:wrap;align-items:flex-end;gap:16px;margin-top:8px;display:flex}.inline-form label{flex-direction:column;gap:6px;display:flex}.inline-form label>span{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-size:11px}.inline-form input{border:1px solid var(--ligne-sombre);width:100px;color:var(--encre);border-radius:8px;padding:12px 14px;font-size:15px}.inline-form .btn{width:auto}.standings-table{border-collapse:collapse;width:100%;margin-bottom:20px;font-size:13px}.standings-table th{text-align:left;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--ligne-sombre);white-space:nowrap;padding:8px 6px;font-family:Space Mono,monospace;font-size:11px}.standings-table td{border-bottom:1px solid var(--ligne-sombre);padding:9px 6px}.standings-table td.num,.standings-table th.num{text-align:center;font-family:Space Mono,monospace}.standings-table tr:last-child td{border-bottom:none}.standings-empty-row td{color:var(--muted);font-style:italic}.pool-matrix{border-collapse:collapse;font-size:13px}.pool-matrix th,.pool-matrix td{border:1px solid var(--ligne-sombre);text-align:left;white-space:nowrap;padding:8px 10px}.pool-matrix thead th{color:var(--muted);background:var(--sable);font-family:Space Mono,monospace}.pool-matrix tbody th{background:var(--sable);font-weight:700}.pool-matrix td.num,.pool-matrix th.num{text-align:center;min-width:48px;font-family:Space Mono,monospace}.match-list{flex-direction:column;gap:10px;display:flex}.match-row{border:1px solid var(--ligne-sombre);border-radius:10px;padding:10px 14px}.match-row-main{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.match-teams{flex-wrap:wrap;align-items:center;gap:8px;font-size:13px;display:flex}.match-teams .winner{color:var(--bronze);font-weight:800}.match-teams .vs{color:var(--muted);font-size:10px}.match-score-display{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.match-actions{gap:12px;display:inline-flex}.link-btn{color:var(--bronze);text-underline-offset:2px;background:0 0;padding:0;font-size:12px;font-weight:700;text-decoration:underline}.link-btn-danger{color:#a33}.match-score-edit,.match-forfeit-picker{border-top:1px solid var(--ligne-sombre);flex-wrap:wrap;align-items:center;gap:10px;margin-top:10px;padding-top:10px;display:flex}.match-score-edit input{border:1px solid var(--ligne-sombre);text-align:center;border-radius:6px;width:48px;padding:6px}.match-score-edit .btn{width:auto;padding:8px 16px;font-size:12px}.tb-inputs{color:var(--muted);align-items:center;gap:4px;margin-left:8px;display:inline-flex}.tb-inputs input{border:1px solid var(--ligne-sombre);text-align:center;border-radius:6px;width:40px;padding:4px}.match-row-bye{background:#d4af370f}.match-error{margin-top:8px}.bracket-round-title{color:var(--bronze);margin:0 0 12px;font-size:15px}.bracket-third-place{border-top:1px dashed var(--ligne-sombre);margin-top:24px;padding-top:20px}.bracket-tree-wrap{padding-bottom:8px;overflow:auto visible}.bracket-tree-headers{display:flex}.bracket-tree-header{text-transform:uppercase;letter-spacing:.04em;color:var(--bronze);text-align:center;flex-shrink:0;margin-bottom:14px;font-family:Space Mono,monospace;font-size:12px}.bracket-tree-canvas,.bc-wrap{position:relative}.bc-card{background:var(--blanc);border:1px solid var(--ligne-sombre);border-radius:8px;position:relative;overflow:hidden}.bc-clickable{cursor:pointer}.bc-clickable:hover{border-color:var(--bronze)}.bc-team{border-bottom:1px solid var(--ligne-sombre);justify-content:space-between;align-items:center;gap:8px;padding:6px 10px;font-size:13px;display:flex}.bc-team:last-child{border-bottom:none}.bc-team-empty{color:var(--muted);font-style:italic}.bc-ghost{opacity:.7;border-style:dashed}.bc-pool-leaf{border-style:solid;align-items:center;height:56px;display:flex}.bc-pool-leaf .bc-team{border-bottom:none;width:100%}.bc-winner{color:var(--bronze);background:#d4af3714;font-weight:800}.bc-name{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.bc-score{color:var(--muted);flex-shrink:0;font-size:12px}.bc-forfeit-tag{text-transform:uppercase;letter-spacing:.04em;color:#a33;font-size:9px;position:absolute;top:2px;right:6px}.bc-court{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);padding:3px 10px 0;font-size:9px}.match-court{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);border:1px solid var(--ligne-sombre);border-radius:4px;padding:1px 6px;font-size:10px}.bc-popover{z-index:20;background:var(--blanc);border:1px solid var(--ligne-sombre);border-radius:10px;min-width:260px;padding:14px;position:absolute;top:calc(100% + 6px);left:0;box-shadow:0 12px 28px #0b1e3329}.bc-popover-scores{border:none;margin:0 0 10px;padding:0}.bc-forfeit-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.bracket-size-picker{align-items:center;gap:10px;margin-top:16px;display:flex}.bracket-size-picker span{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-size:11px}.bracket-size-picker select{border:1px solid var(--ligne-sombre);color:var(--encre);border-radius:8px;padding:10px 12px;font-size:14px}.page-loading{min-height:100vh;color:var(--muted);justify-content:center;align-items:center;font-family:Space Mono,monospace;display:flex}.yt-marquee{background:var(--noir);border-top:1px solid var(--ligne);padding:18px 0 22px;overflow:hidden}.yt-marquee-label{letter-spacing:.08em;text-transform:uppercase;max-width:1120px;color:var(--or);margin:0 auto 12px;padding:0 28px;font-size:11px}.yt-marquee-track-wrap{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#0000,#000 4% 96%,#0000);mask-image:linear-gradient(90deg,#0000,#000 4% 96%,#0000)}.yt-marquee-track{gap:16px;width:max-content;padding:0 28px;animation:45s linear infinite ytMarqueeScroll;display:flex}.yt-marquee-track-wrap:hover .yt-marquee-track{animation-play-state:paused}.yt-marquee-card{width:200px;color:var(--blanc);flex-direction:column;flex-shrink:0;gap:8px;display:flex}.yt-marquee-card img{object-fit:cover;border:1px solid var(--ligne);border-radius:8px;width:200px;height:112px;transition:transform .2s,border-color .2s}.yt-marquee-card:hover img{border-color:var(--or);transform:scale(1.03)}.yt-marquee-card span{-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:12px;font-weight:600;line-height:1.35;display:-webkit-box;overflow:hidden}@keyframes ytMarqueeScroll{0%{transform:translate(0)}to{transform:translate(-50%)}}@media (prefers-reduced-motion:reduce){.yt-marquee-track{animation:none}}
