:root { --tourney-ink: #0a0e1b; --tourney-panel: #111729; --tourney-line: rgba(255,255,255,.11); --tourney-gold: #f0bd55; --tourney-mint: #75e6c2; --tourney-muted: #a8b0c4; }
* { box-sizing: border-box; }
.tourney-page { min-height: 100vh; margin: 0; color: #f7f4ee; background: radial-gradient(circle at 88% 8%, rgba(86,57,151,.28), transparent 28rem), radial-gradient(circle at 10% 42%, rgba(24,139,117,.15), transparent 30rem), var(--tourney-ink); }
.tourney-page::before { content: ""; position: fixed; inset: 0; pointer-events: none; opacity: .2; background-image: linear-gradient(rgba(255,255,255,.025) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.025) 1px, transparent 1px); background-size: 42px 42px; mask-image: linear-gradient(to bottom, black, transparent 80%); }
.tourney-header { min-height: 86px; display: flex; align-items: center; justify-content: space-between; gap: 24px; position: relative; z-index: 2; }
.tourney-header .brand { color: #fff; }
.tourney-header nav { display: flex; align-items: center; gap: 20px; }
.tourney-header nav a { color: var(--tourney-muted); font: 700 .74rem/1 var(--font-sans, sans-serif); letter-spacing: .08em; text-transform: uppercase; text-decoration: none; }
.tourney-header nav a:hover { color: #fff; }
.tourney-shell { padding-block: 36px 84px; position: relative; z-index: 1; }
.tourney-hero { display: flex; justify-content: space-between; align-items: flex-end; gap: 36px; padding: 38px 44px; border: 1px solid var(--tourney-line); border-radius: 28px; overflow: hidden; background: linear-gradient(125deg, rgba(255,255,255,.08), rgba(255,255,255,.025)); box-shadow: 0 32px 80px rgba(0,0,0,.25); }
.tourney-hero h1 { margin: 5px 0 12px; color: #fff; font: 800 clamp(3rem, 7vw, 6.4rem)/.84 var(--font-display, serif); letter-spacing: -.055em; }
.tourney-hero h1 em { color: var(--tourney-gold); font-style: italic; }
.tourney-hero p:last-child { max-width: 650px; margin: 0; color: var(--tourney-muted); font-size: 1.06rem; line-height: 1.6; }
.tourney-kicker { margin: 0; color: var(--tourney-mint); font: 800 .7rem/1 var(--font-sans, sans-serif); letter-spacing: .18em; text-transform: uppercase; }
.tourney-hero-mark { display: grid; place-items: center; width: 126px; aspect-ratio: 1; flex: 0 0 auto; border: 1px solid rgba(240,189,85,.4); border-radius: 50%; color: var(--tourney-gold); font: 900 2.2rem/1 var(--font-display, serif); box-shadow: inset 0 0 0 10px rgba(240,189,85,.04), 0 0 60px rgba(240,189,85,.12); transform: rotate(-7deg); }
.tourney-status { min-height: 24px; margin: 18px 4px; color: var(--tourney-muted); font-size: .84rem; }
.tourney-status.is-error { color: #ff9a9a; }
.tourney-status.is-success { color: var(--tourney-mint); }
.tourney-auth-gate, .tourney-empty { padding: 64px 28px; text-align: center; border: 1px dashed var(--tourney-line); border-radius: 22px; background: rgba(255,255,255,.025); }
.tourney-auth-gate h2, .tourney-empty h2 { margin: 10px 0 20px; font-size: clamp(1.8rem,4vw,3rem); }
.tourney-layout { display: grid; grid-template-columns: minmax(250px, 310px) minmax(0, 1fr); gap: 20px; }
.tourney-sidebar, .tourney-workspace, .tourney-metric, .tourney-card { border: 1px solid var(--tourney-line); background: rgba(15,21,38,.84); box-shadow: 0 20px 50px rgba(0,0,0,.14); }
.tourney-sidebar { padding: 20px; border-radius: 22px; align-self: start; position: sticky; top: 18px; }
.tourney-panel-heading { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 16px; }
.tourney-panel-heading span { color: var(--tourney-mint); font-size: .68rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.tourney-panel-heading h2 { margin: 2px 0 0; font-size: 1.35rem; }
.tourney-mini-button { border: 1px solid var(--tourney-line); border-radius: 99px; padding: 8px 12px; color: #fff; background: rgba(255,255,255,.05); font-weight: 800; cursor: pointer; }
.tourney-event-list { display: grid; gap: 8px; }
.tourney-event-button { width: 100%; padding: 14px; border: 1px solid transparent; border-radius: 13px; color: #fff; background: rgba(255,255,255,.035); text-align: left; cursor: pointer; }
.tourney-event-button strong, .tourney-event-button span { display: block; }
.tourney-event-button span { margin-top: 5px; color: var(--tourney-muted); font-size: .75rem; }
.tourney-event-button.is-active { border-color: rgba(240,189,85,.6); background: rgba(240,189,85,.09); }
.tourney-form { display: grid; gap: 13px; }
.tourney-create-form { margin-top: 20px; padding-top: 20px; border-top: 1px solid var(--tourney-line); }
.tourney-form h3 { margin: 0; }
.tourney-form label { display: grid; gap: 6px; color: var(--tourney-muted); font-size: .72rem; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.tourney-form input, .tourney-form select, .tourney-score select { width: 100%; min-height: 43px; border: 1px solid var(--tourney-line); border-radius: 10px; padding: 9px 11px; color: #fff; background: #090d19; font: inherit; color-scheme: dark; }
.tourney-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.tourney-workspace { min-height: 430px; padding: 24px; border-radius: 22px; }
.tourney-metrics { display: grid; grid-template-columns: repeat(4,1fr); gap: 12px; margin-bottom: 20px; }
.tourney-metric { padding: 16px 18px; border-radius: 16px; }
.tourney-metric span { color: var(--tourney-muted); font-size: .7rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.tourney-metric strong { display: block; margin-top: 7px; color: #fff; font-size: 1.7rem; }
.tourney-desk-head { display: flex; justify-content: space-between; gap: 20px; align-items: flex-start; padding-bottom: 20px; border-bottom: 1px solid var(--tourney-line); }
.tourney-desk-head h2 { margin: 4px 0 7px; font-size: clamp(2rem,4vw,3.4rem); line-height: .95; }
.tourney-meta { color: var(--tourney-muted); font-size: .84rem; }
.tourney-pill { display: inline-flex; align-items: center; gap: 7px; padding: 8px 11px; border-radius: 999px; color: var(--tourney-mint); background: rgba(117,230,194,.08); font-size: .7rem; font-weight: 900; letter-spacing: .09em; text-transform: uppercase; }
.tourney-pill::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: currentColor; box-shadow: 0 0 12px currentColor; }
.tourney-actions { display: flex; flex-wrap: wrap; gap: 8px; margin: 18px 0; }
.tourney-action { border: 1px solid var(--tourney-line); border-radius: 11px; padding: 10px 13px; color: #fff; background: rgba(255,255,255,.05); font-weight: 800; cursor: pointer; }
.tourney-action.is-primary { color: #10131f; border-color: var(--tourney-gold); background: var(--tourney-gold); }
.tourney-action.is-danger { color: #ff9a9a; }
.tourney-action:disabled { opacity: .45; cursor: not-allowed; }
.tourney-grid { display: grid; grid-template-columns: minmax(0,1.35fr) minmax(250px,.65fr); gap: 16px; }
.tourney-card { padding: 18px; border-radius: 16px; }
.tourney-card h3 { margin: 0 0 14px; font-size: 1rem; }
.tourney-card-wide { grid-column: 1 / -1; }
.tourney-qr-layout { display: grid; grid-template-columns: 152px 1fr; gap: 18px; align-items: center; }
.tourney-qr { width: 152px; min-height: 152px; display: grid; place-items: center; padding: 8px; border-radius: 10px; background: #fff; }
.tourney-qr img, .tourney-qr canvas { max-width: 100%; height: auto !important; }
.tourney-qr-copy p { color: var(--tourney-muted); line-height: 1.5; }
.tourney-link-field { width: 100%; border: 1px solid var(--tourney-line); border-radius: 9px; padding: 9px; color: #cbd2e2; background: #080c17; }
.tourney-table { width: 100%; border-collapse: collapse; font-size: .83rem; }
.tourney-table th { padding: 9px 7px; color: var(--tourney-muted); font-size: .65rem; letter-spacing: .1em; text-align: left; text-transform: uppercase; }
.tourney-table td { padding: 11px 7px; border-top: 1px solid rgba(255,255,255,.07); }
.tourney-table td:last-child, .tourney-table th:last-child { text-align: right; }
.tourney-player-state { color: var(--tourney-muted); font-size: .72rem; }
.tourney-round { margin-top: 14px; }
.tourney-round-heading { display: flex; justify-content: space-between; gap: 10px; color: var(--tourney-muted); font-size: .74rem; text-transform: uppercase; }
.tourney-match { display: grid; grid-template-columns: 52px minmax(0,1fr) auto; gap: 12px; align-items: center; padding: 12px 0; border-top: 1px solid rgba(255,255,255,.07); }
.tourney-table-no { color: var(--tourney-gold); font-weight: 900; }
.tourney-match-names strong { display: block; }
.tourney-match-names span { color: var(--tourney-muted); font-size: .75rem; }
.tourney-score { display: flex; align-items: center; gap: 5px; }
.tourney-score select { width: 48px; min-height: 36px; padding: 4px; }
.tourney-score button { min-height: 36px; border: 0; border-radius: 8px; padding: 0 10px; color: #111; background: var(--tourney-mint); font-weight: 900; cursor: pointer; }
.tourney-public-shell { max-width: 1020px; }
.tourney-public-hero { margin-top: 25px; padding: clamp(28px,5vw,54px); border: 1px solid var(--tourney-line); border-radius: 28px; background: linear-gradient(140deg, rgba(240,189,85,.12), rgba(255,255,255,.025)); }
.tourney-public-hero h1 { margin: 8px 0; color: #fff; font-size: clamp(2.7rem,7vw,5rem); line-height: .92; letter-spacing: -.04em; }
.tourney-public-hero p { color: var(--tourney-muted); }
.tourney-register-card { display: flex; justify-content: space-between; align-items: center; gap: 22px; margin: 18px 0; padding: 21px; border: 1px solid rgba(117,230,194,.28); border-radius: 17px; background: rgba(117,230,194,.06); }
.tourney-register-card h2 { margin: 0 0 6px; font-size: 1.15rem; }
.tourney-register-card p { margin: 0; color: var(--tourney-muted); font-size: .85rem; }
.tourney-public-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.tourney-finish { color: var(--tourney-gold); font-weight: 900; }
.tourney-achievement-row { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 16px; }
.tourney-achievement-chip { padding: 7px 10px; border: 1px solid rgba(240,189,85,.25); border-radius: 99px; color: var(--tourney-gold); background: rgba(240,189,85,.07); font-size: .7rem; font-weight: 800; }
.tourney-member-history { margin-top: 32px; }
.tourney-member-event { display: grid; grid-template-columns: auto 1fr auto; gap: 14px; align-items: center; padding: 15px 0; border-top: 1px solid rgba(0,0,0,.1); }
.tourney-member-place { display: grid; place-items: center; width: 48px; aspect-ratio: 1; border-radius: 50%; color: #fff; background: #101628; font-weight: 900; }
.tourney-member-event strong, .tourney-member-event span { display: block; }
.tourney-member-event span { margin-top: 3px; color: #676b77; font-size: .78rem; }
@media (max-width: 860px) { .tourney-layout, .tourney-grid, .tourney-public-grid { grid-template-columns: 1fr; } .tourney-sidebar { position: static; } .tourney-metrics { grid-template-columns: 1fr 1fr; } .tourney-card-wide { grid-column: auto; } }
@media (max-width: 620px) { .tourney-header { min-height: 74px; } .tourney-header nav a:not(:last-child) { display: none; } .tourney-shell { padding-top: 16px; } .tourney-hero { padding: 26px 22px; } .tourney-hero-mark { display: none; } .tourney-workspace { padding: 16px; } .tourney-desk-head, .tourney-register-card { display: grid; } .tourney-metrics { grid-template-columns: 1fr 1fr; } .tourney-qr-layout { grid-template-columns: 1fr; } .tourney-match { grid-template-columns: 42px 1fr; } .tourney-score { grid-column: 2; flex-wrap: wrap; } .tourney-table { min-width: 540px; } .tourney-table-wrap { overflow-x: auto; } }
/* Friendly admin-only member and tournament controls */
.tourney-head-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
.tourney-member-add { margin: 0 0 16px; border: 1px solid rgba(117,230,194,.22); border-radius: 14px; background: linear-gradient(135deg, rgba(117,230,194,.08), rgba(94,62,158,.08)); overflow: hidden; }
.tourney-member-add summary { display: flex; align-items: center; gap: 11px; padding: 13px; cursor: pointer; list-style: none; }
.tourney-member-add summary::-webkit-details-marker { display: none; }
.tourney-member-add summary strong, .tourney-member-add summary small { display: block; }
.tourney-member-add summary small { margin-top: 3px; color: var(--tourney-muted); font-size: .7rem; }
.tourney-add-icon { display: grid; place-items: center; width: 32px; aspect-ratio: 1; flex: 0 0 auto; border-radius: 50%; color: #07130f; background: var(--tourney-mint); font-size: 1.3rem; font-weight: 900; box-shadow: 0 0 22px rgba(117,230,194,.25); }
.tourney-member-search { display: grid; gap: 7px; padding: 0 13px 13px; }
.tourney-member-search label { color: var(--tourney-muted); font-size: .68rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.tourney-member-search > div { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 8px; }
.tourney-member-search input { min-width: 0; min-height: 44px; border: 1px solid var(--tourney-line); border-radius: 10px; padding: 10px 12px; color: #fff; background: #080c17; font: inherit; }
.tourney-member-results { display: grid; gap: 7px; padding: 0 13px 13px; }
.tourney-member-results > p, .tourney-member-locked { margin: 0 0 14px; color: var(--tourney-muted); font-size: .76rem; line-height: 1.45; }
.tourney-member-result { display: grid; grid-template-columns: auto minmax(0,1fr) auto; align-items: center; gap: 10px; padding: 10px; border: 1px solid var(--tourney-line); border-radius: 11px; background: rgba(4,8,16,.48); }
.tourney-member-result strong, .tourney-member-result small { display: block; }
.tourney-member-result small { margin-top: 2px; color: var(--tourney-muted); font-size: .68rem; }
.tourney-member-avatar { display: grid; place-items: center; width: 34px; aspect-ratio: 1; border-radius: 50%; color: var(--tourney-gold); background: rgba(240,189,85,.12); font-weight: 900; }
.tourney-inline-error { color: #ff9a9a !important; }
.tourney-delete-dialog { width: min(92vw, 510px); padding: 0; border: 1px solid rgba(255,255,255,.15); border-radius: 24px; color: #f7f4ee; background: #111729; box-shadow: 0 30px 100px rgba(0,0,0,.65); }
.tourney-delete-dialog::backdrop { background: rgba(3,5,12,.78); backdrop-filter: blur(8px); }
.tourney-delete-panel { padding: clamp(25px,5vw,38px); text-align: center; }
.tourney-delete-panel h2 { margin: 10px 0; color: #fff; font-size: clamp(1.65rem,5vw,2.25rem); }
.tourney-delete-panel p:not(.tourney-kicker) { color: var(--tourney-muted); line-height: 1.55; }
.tourney-delete-panel p strong { color: #fff; }
.tourney-delete-mark { display: grid; place-items: center; width: 56px; aspect-ratio: 1; margin: 0 auto 18px; border: 1px solid rgba(255,126,126,.45); border-radius: 50%; color: #ffaaaa; background: rgba(255,90,90,.1); font-size: 1.6rem; font-weight: 900; box-shadow: 0 0 36px rgba(255,90,90,.15); }
.tourney-delete-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 22px; }
.tourney-action.is-danger-solid { border-color: #ff7777; color: #190808; background: #ff8888; }
@media (max-width: 620px) { .tourney-head-actions, .tourney-head-actions .tourney-action { width: 100%; } .tourney-member-search > div, .tourney-delete-actions { grid-template-columns: 1fr; } .tourney-member-result { grid-template-columns: auto minmax(0,1fr); } .tourney-member-result .tourney-action { grid-column: 1 / -1; width: 100%; } }
