:root{--ink:#101726;--ink-2:#26334d;--muted:#6d7890;--paper:#f4f6fa;--card:#fff;--line:#dce2ec;--mint:#39c995;--mint-dark:#117a5a;--blue:#4263eb;--amber:#f4b740;--red:#d94c62;--shadow:0 16px 45px rgba(25,37,62,.10);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--paper);font-size:16px}
*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(circle at 88% -10%,rgba(66,99,235,.12),transparent 28rem),var(--paper)}button,input,textarea{font:inherit}button{cursor:pointer}.topbar{height:72px;padding:0 clamp(18px,4vw,56px);display:flex;align-items:center;justify-content:space-between;background:rgba(16,23,38,.97);color:#fff;position:sticky;top:0;z-index:20;box-shadow:0 8px 24px rgba(11,18,32,.18)}.brand{display:flex;align-items:center;gap:12px;color:#fff;text-decoration:none;font-weight:760;letter-spacing:-.02em}.brand-mark{display:grid;place-items:center;width:36px;height:36px;border:1px solid rgba(255,255,255,.22);border-radius:10px;color:var(--mint);font-weight:900}.top-actions{display:flex;align-items:center;gap:14px}.live-status{display:flex;align-items:center;gap:7px;color:#cdd5e4;font-size:.875rem}.live-status i{width:8px;height:8px;border-radius:50%;background:var(--mint);box-shadow:0 0 0 4px rgba(57,201,149,.13)}.live-status.offline i{background:var(--amber)}.shell{width:min(1500px,100%);margin:0 auto;padding:clamp(24px,4vw,56px)}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:28px}.page-head h1{font-size:clamp(2rem,5vw,4.2rem);line-height:.98;letter-spacing:-.055em;margin:4px 0 0;max-width:900px}.eyebrow{text-transform:uppercase;letter-spacing:.14em;font-size:.74rem;font-weight:800;color:var(--mint-dark);margin:0 0 6px}.muted{color:var(--muted)}.button{border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--ink);padding:10px 15px;font-weight:700;min-height:42px}.button:hover{border-color:#aeb8ca}.button:focus-visible,.icon-button:focus-visible,.team-slot:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid rgba(66,99,235,.28);outline-offset:2px}.button-primary{background:var(--mint);border-color:var(--mint);color:#082b20}.button-primary:hover{background:#55d7a8;border-color:#55d7a8}.button-danger{color:var(--red)}.button:disabled{opacity:.48;cursor:not-allowed}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:16px}.tournament-card{display:block;text-decoration:none;color:inherit;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:20px;box-shadow:0 2px 4px rgba(20,30,50,.02);transition:transform .18s,border-color .18s,box-shadow .18s}.tournament-card:hover{transform:translateY(-3px);border-color:#b8c3d5;box-shadow:var(--shadow)}.card-top,.meta-row,.toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px}.tournament-card h2{font-size:1.15rem;margin:26px 0 8px;letter-spacing:-.025em}.meta-row{justify-content:flex-start;color:var(--muted);font-size:.86rem}.status{display:inline-flex;align-items:center;border-radius:999px;padding:5px 9px;font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.07em;background:#edf0f5;color:#536078}.status-active{background:#daf8ec;color:#08724f}.status-complete{background:#e7ecff;color:#334fc1}.type-mark{font-size:.8rem;color:var(--muted);font-weight:700}.empty{background:var(--card);border:1px dashed #b9c3d2;border-radius:18px;padding:56px 24px;text-align:center}.empty h2{margin:0 0 8px}.loading-card{min-height:50vh;display:grid;place-content:center;justify-items:center;color:var(--muted)}.spinner{width:30px;height:30px;border:3px solid var(--line);border-top-color:var(--mint);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.back{display:inline-flex;color:var(--muted);text-decoration:none;font-weight:700;margin-bottom:22px}.back:hover{color:var(--ink)}.summary{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}.summary span{background:#fff;border:1px solid var(--line);padding:7px 10px;border-radius:9px;color:var(--ink-2);font-size:.86rem}.setup-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr);gap:22px}.panel{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:20px}.panel h2{font-size:1.05rem;margin:0}.team-list{display:grid;gap:9px;margin-top:16px}.team-row{display:grid;grid-template-columns:38px 1fr auto;gap:12px;align-items:center;padding:11px;border:1px solid var(--line);border-radius:11px}.seed{display:grid;place-items:center;width:30px;height:30px;background:#eef2f7;border-radius:8px;color:var(--muted);font-weight:800;font-size:.78rem}.team-name{font-weight:750}.member-list{display:block;color:var(--muted);font-size:.8rem;margin-top:3px}.row-actions{display:flex;gap:5px}.icon-button{border:0;background:transparent;color:var(--muted);font-size:1.35rem;padding:5px 8px;border-radius:8px}.icon-button:hover{background:#edf0f5;color:var(--ink)}.setup-note{color:var(--muted);line-height:1.55}.setup-actions{display:grid;gap:10px;margin-top:20px}.bracket-section{margin-top:34px}.section-title{display:flex;align-items:center;gap:12px;margin-bottom:14px}.section-title h2{font-size:1.1rem;margin:0}.section-title:after{content:"";height:1px;flex:1;background:var(--line)}.bracket-scroll{overflow-x:auto;padding:3px 3px 22px;scrollbar-color:#aeb8ca transparent}.rounds{display:flex;align-items:stretch;gap:24px;min-width:max-content}.round{width:245px;display:flex;flex-direction:column}.round-head{height:40px;color:var(--muted);font-size:.76rem;text-transform:uppercase;letter-spacing:.1em;font-weight:800;padding:0 4px}.match-stack{display:flex;flex:1;flex-direction:column;justify-content:space-around;gap:16px}.match{background:var(--card);border:1px solid var(--line);border-radius:13px;padding:8px;box-shadow:0 4px 18px rgba(24,34,55,.05);position:relative}.match-ready{border-color:#81d9ba;box-shadow:0 0 0 2px rgba(57,201,149,.12)}.match-label{display:flex;justify-content:space-between;padding:2px 5px 7px;color:var(--muted);font-size:.69rem;font-weight:750;text-transform:uppercase;letter-spacing:.06em}.team-slot{width:100%;min-height:38px;display:grid;grid-template-columns:1fr auto;align-items:center;text-align:left;border:0;border-radius:8px;background:#f5f7fa;color:var(--ink-2);padding:8px 10px;margin:3px 0;font-size:.87rem}.team-slot[disabled]{cursor:default}.team-slot.selectable:hover{background:#ddf8ed;color:#07553d}.team-slot.winner{background:#ddf8ed;color:#07553d;font-weight:800}.team-slot.loser{opacity:.55}.team-slot.empty-slot{color:#98a2b5;font-style:italic}.slot-seed{font-size:.7rem;color:var(--muted)}.champion{display:flex;align-items:center;gap:14px;background:linear-gradient(135deg,#101726,#1d2b47);color:#fff;border-radius:16px;padding:18px 22px;margin:0 0 24px;box-shadow:var(--shadow)}.trophy{font-size:1.8rem}.champion small{display:block;color:#98a9c4;text-transform:uppercase;letter-spacing:.11em;font-weight:800}.champion strong{font-size:1.25rem}.dialog{border:0;border-radius:18px;width:min(520px,calc(100% - 28px));padding:0;box-shadow:0 25px 80px rgba(9,16,30,.3)}.dialog::backdrop{background:rgba(9,16,30,.62);backdrop-filter:blur(3px)}.dialog form{padding:24px}.dialog-small{max-width:440px}.dialog-heading{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:20px}.dialog h2{margin:0;letter-spacing:-.03em}.dialog label:not(.choice){display:grid;gap:7px;font-weight:750;font-size:.86rem;margin:15px 0}.dialog input[type=text],.dialog input:not([type]),.dialog textarea{width:100%;border:1px solid #cbd3df;border-radius:10px;padding:11px 12px;background:#fff;color:var(--ink);resize:vertical}.dialog fieldset{border:0;padding:0;margin:18px 0}.dialog legend{font-weight:750;font-size:.86rem;margin-bottom:8px}.choice{display:flex;gap:11px;padding:12px;border:1px solid var(--line);border-radius:11px;margin:8px 0}.choice input{margin-top:4px}.choice span{display:grid;gap:2px}.choice small,label small{color:var(--muted);font-weight:500}.dialog-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:22px}.toast{position:fixed;right:24px;bottom:24px;z-index:50;background:var(--ink);color:#fff;border-radius:11px;padding:12px 16px;box-shadow:var(--shadow);transform:translateY(20px);opacity:0;pointer-events:none;transition:.2s}.toast.show{transform:none;opacity:1}.toast.error{background:#861d32}.noscript{position:fixed;inset:auto 15px 15px;background:#861d32;color:#fff;padding:12px;border-radius:8px}
@media(max-width:760px){.topbar{height:64px;padding:0 16px}.live-status{display:none}.shell{padding:22px 14px}.page-head{display:block}.page-head .button{margin-top:16px}.page-head h1{font-size:2.35rem}.setup-grid{grid-template-columns:1fr}.toolbar{align-items:flex-start;flex-direction:column}.team-row{grid-template-columns:32px 1fr}.row-actions{grid-column:2}.round{width:220px}.button{min-height:44px}.dialog form{padding:20px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}
.preview-pairs{display:grid;gap:7px;margin-top:18px}.preview-pair{display:grid;grid-template-columns:1fr 28px 1fr;align-items:center;gap:5px;padding:9px 10px;border:1px solid var(--line);border-radius:9px;background:#f7f9fc;font-size:.8rem}.preview-pair span:last-child{text-align:right}.preview-pair i{text-align:center;color:var(--muted);font-size:.68rem;font-style:normal;text-transform:uppercase}
.alert{display:grid;gap:4px;margin:0 0 20px;padding:14px 16px;border:1px solid #efb4be;border-left:4px solid var(--red);border-radius:10px;background:#fff1f3;color:#6f1728}.alert span{font-size:.9rem}
.scroll-frame{position:relative;border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.42);box-shadow:inset 18px 0 22px -25px rgba(16,23,38,.65),inset -18px 0 22px -25px rgba(16,23,38,.65)}.scroll-frame:before,.scroll-frame:after{content:"";position:absolute;top:0;bottom:13px;width:42px;z-index:5;pointer-events:none;transition:opacity .2s}.scroll-frame:before{left:0;background:linear-gradient(90deg,var(--paper),transparent)}.scroll-frame:after{right:0;background:linear-gradient(-90deg,var(--paper),transparent)}.scroll-frame.at-start:before,.scroll-frame.at-end:after,.scroll-frame.no-overflow:before,.scroll-frame.no-overflow:after{opacity:0}.scroll-arrow{position:absolute;top:50%;z-index:8;display:grid;place-items:center;width:38px;height:54px;margin-top:-27px;border:1px solid #b7c2d3;border-radius:11px;background:rgba(255,255,255,.96);color:var(--ink);font-size:1.8rem;line-height:1;box-shadow:0 8px 22px rgba(16,23,38,.16);transition:opacity .2s,transform .2s}.scroll-arrow:hover{transform:scale(1.05)}.scroll-arrow-left{left:8px}.scroll-arrow-right{right:8px}.scroll-frame.at-start .scroll-arrow-left,.scroll-frame.at-end .scroll-arrow-right,.scroll-frame.no-overflow .scroll-arrow{opacity:0;pointer-events:none}.scroll-frame .bracket-scroll{padding:18px 48px 20px;scrollbar-width:auto;scrollbar-color:var(--blue) #dce2ec}.scroll-frame .bracket-scroll::-webkit-scrollbar{height:13px}.scroll-frame .bracket-scroll::-webkit-scrollbar-track{background:#dce2ec;border-radius:999px}.scroll-frame .bracket-scroll::-webkit-scrollbar-thumb{background:var(--blue);border:3px solid #dce2ec;border-radius:999px}.scroll-guide{display:flex;justify-content:space-between;gap:16px;padding:7px 4px 0;color:var(--muted);font-size:.74rem;font-weight:700}.scroll-frame.no-overflow+.scroll-guide{display:none}.rounds{position:relative}.match{z-index:2;transition:opacity .2s,transform .2s,box-shadow .2s}.match.journey-muted{opacity:.2}.match.journey-active{transform:translateY(-2px);border-color:var(--blue);box-shadow:0 0 0 3px rgba(66,99,235,.16),0 10px 28px rgba(30,50,100,.13)}.team-slot.traceable{cursor:pointer}.team-slot.traceable:hover{background:#e8edff;color:#293f9f}.team-slot.journey-team{box-shadow:inset 4px 0 0 var(--blue);font-weight:800}.journey-lines{position:absolute;inset:0;z-index:1;overflow:visible;pointer-events:none}.journey-lines path{fill:none;stroke:var(--blue);stroke-width:4;stroke-linecap:round;stroke-dasharray:8 7;animation:journey-dash .65s linear infinite;filter:drop-shadow(0 2px 2px rgba(66,99,235,.22))}@keyframes journey-dash{to{stroke-dashoffset:-15}}.trace-status{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 20px;padding:12px 14px;border:1px solid #b8c5f8;border-radius:12px;background:#eef1ff;color:#263a92}.trace-status[hidden]{display:none}.trace-status .button{min-height:36px;padding:7px 11px}.confetti-layer{position:fixed;inset:0;z-index:100;overflow:hidden;pointer-events:none}.confetti-layer i{position:absolute;left:var(--x);top:-18px;width:9px;height:16px;border-radius:2px;background:var(--color);animation:confetti-fall var(--duration) cubic-bezier(.18,.7,.25,1) var(--delay) forwards}@keyframes confetti-fall{0%{transform:translate3d(0,-5vh,0) rotate(0);opacity:1}100%{transform:translate3d(var(--drift),105vh,0) rotate(var(--spin));opacity:.85}}
@media(max-width:760px){.scroll-frame .bracket-scroll{padding-left:42px;padding-right:42px}.scroll-arrow{width:34px;height:48px}.scroll-guide{font-size:.68rem}.trace-status{align-items:flex-start;flex-direction:column}.trace-status .button{width:100%}}
@media(prefers-reduced-motion:reduce){.journey-lines path{animation:none}.confetti-layer{display:none}}
.header-link,.header-button{color:#dbe3f1;font-size:.82rem;font-weight:750}.header-link{text-decoration:none}.header-link:hover{color:#fff}.header-button{border:1px solid rgba(255,255,255,.22);border-radius:9px;background:transparent;padding:8px 10px}.header-button:hover{border-color:rgba(255,255,255,.48);color:#fff}.dialog input[type=email],.dialog input[type=password]{width:100%;border:1px solid #cbd3df;border-radius:10px;padding:11px 12px;background:#fff;color:var(--ink)}
html[data-theme=dark]{color-scheme:dark;--ink:#f2f5fb;--ink-2:#d8dfec;--muted:#9ba8bd;--paper:#0a101c;--card:#121b2b;--line:#29364c;--mint:#4bd5a3;--mint-dark:#67ddb2;--blue:#7890ff;--amber:#f4c45c;--red:#ff7890;--shadow:0 16px 45px rgba(0,0,0,.34);background:var(--paper)}html[data-theme=dark] body{background:radial-gradient(circle at 88% -10%,rgba(66,99,235,.2),transparent 30rem),var(--paper)}html[data-theme=dark] .button{background:#172338;border-color:#35445d;color:var(--ink)}html[data-theme=dark] .button-primary{background:var(--mint);border-color:var(--mint);color:#06261b}html[data-theme=dark] .summary span,html[data-theme=dark] .tournament-card,html[data-theme=dark] .panel,html[data-theme=dark] .empty,html[data-theme=dark] .match{background:var(--card)}html[data-theme=dark] .seed,html[data-theme=dark] .icon-button:hover{background:#1b2940}html[data-theme=dark] .team-slot{background:#172337;color:var(--ink-2)}html[data-theme=dark] .team-slot.selectable:hover,html[data-theme=dark] .team-slot.winner{background:#14382e;color:#8ef0ca}html[data-theme=dark] .team-slot.traceable:hover{background:#202e55;color:#bdc8ff}html[data-theme=dark] .dialog{background:var(--card);color:var(--ink)}html[data-theme=dark] .dialog input[type=text],html[data-theme=dark] .dialog input:not([type]),html[data-theme=dark] .dialog input[type=email],html[data-theme=dark] .dialog input[type=password],html[data-theme=dark] .dialog textarea{background:#0e1726;border-color:#3a4962;color:var(--ink)}html[data-theme=dark] .preview-pair{background:#172337}html[data-theme=dark] .scroll-frame{background:rgba(18,27,43,.6)}html[data-theme=dark] .scroll-arrow{background:rgba(18,27,43,.97);border-color:#42516a;color:var(--ink)}html[data-theme=dark] .alert{background:#351722;border-color:#6e2b3b;color:#ffb5c2}html[data-theme=dark] .trace-status{background:#17214a;border-color:#43549d;color:#cbd3ff}html[data-theme=dark] .status{background:#202b3d;color:#aeb9ca}html[data-theme=dark] .status-active{background:#12382d;color:#7de6bd}html[data-theme=dark] .status-complete{background:#202d5c;color:#bec8ff}
@media(max-width:760px){.brand>span:last-child{display:none}.top-actions{gap:7px}.header-link,.header-button{font-size:.72rem}.header-button{padding:7px 8px}.top-actions .button-primary{padding:8px 9px;font-size:.74rem}}
.page-actions{display:flex;align-items:center;justify-content:flex-end;gap:9px;flex-wrap:wrap}.archive-note{display:flex;align-items:center;gap:9px;margin:0 0 22px;padding:13px 15px;border:1px solid #d2b46d;border-radius:11px;background:#fff8e8;color:#674c0c}.archive-note span{color:#7c6326;font-size:.9rem}.status-archived{background:#fff0ca;color:#72520a}html[data-theme=dark] .archive-note{background:#332a16;border-color:#705b2c;color:#ffe09a}html[data-theme=dark] .archive-note span{color:#d4bd87}html[data-theme=dark] .status-archived{background:#3b3018;color:#f3d384}@media(max-width:760px){.page-actions{justify-content:flex-start;margin-top:16px}.page-head .page-actions .button{margin-top:0}.archive-note{align-items:flex-start;flex-direction:column}}
.login-help{display:grid;gap:4px;margin:16px 0 0;font-size:.88rem}.login-help a{color:var(--blue);font-weight:800}.login-help span{color:var(--muted);font-size:.8rem}
.match.match-ready{border:3px solid #17a975;padding:6px;box-shadow:0 0 0 5px rgba(23,169,117,.2),0 13px 32px rgba(10,112,78,.2);animation:ready-glow 1.8s ease-in-out infinite}.match-ready .match-label{color:#08724f;font-weight:900}.match-ready .match-label span:last-child{border-radius:999px;background:#17a975;color:#fff;padding:3px 8px;letter-spacing:.09em}.match-ready .team-slot.selectable{background:#ecfff7;font-weight:800;box-shadow:inset 4px 0 0 #17a975}.match-ready .team-slot.selectable:hover{background:#c9f8e5;transform:translateX(2px)}@keyframes ready-glow{50%{box-shadow:0 0 0 8px rgba(23,169,117,.1),0 15px 36px rgba(10,112,78,.24)}}html[data-theme=dark] .match.match-ready{border-color:#4be0ad;box-shadow:0 0 0 5px rgba(75,224,173,.2),0 13px 32px rgba(0,0,0,.35)}html[data-theme=dark] .match-ready .match-label{color:#87f2cc}html[data-theme=dark] .match-ready .match-label span:last-child{background:#36c895;color:#06261b}html[data-theme=dark] .match-ready .team-slot.selectable{background:#123b30;color:#a2f5d7;box-shadow:inset 4px 0 0 #4be0ad}@media(prefers-reduced-motion:reduce){.match.match-ready{animation:none}}
.account-form{display:grid;gap:16px;margin-top:22px}.account-form label{display:grid;gap:7px;font-weight:750;font-size:.88rem}.account-form input[type=text],.account-form input[type=email],.account-form input[type=password],.account-form input[type=tel],.account-form input:not([type]){width:100%;border:1px solid #cbd3df;border-radius:10px;padding:11px 12px;background:#fff;color:var(--ink)}.account-form label:has(input[type=checkbox]){display:flex;align-items:flex-start;gap:9px;line-height:1.45;font-weight:500}.account-form input[type=checkbox]{margin-top:4px}.account-form a{color:var(--blue)}html[data-theme=dark] .account-form input[type=text],html[data-theme=dark] .account-form input[type=email],html[data-theme=dark] .account-form input[type=password],html[data-theme=dark] .account-form input[type=tel],html[data-theme=dark] .account-form input:not([type]){background:#0e1726;border-color:#3a4962;color:var(--ink)}
