:root {
    --tl-ink: #08283a;
    --tl-muted: #52798a;
    --tl-primary: #008fb8;
    --tl-primary-dark: #006f8f;
    --tl-lime: #ff6a00;
    --tl-surface: #ffffff;
    --tl-bg: #f1fbff;
    --tl-border: #9dd8e5;
    --tl-radius: 22px;
    --tl-shadow: 0 18px 50px rgba(26, 20, 67, .09);
}

* { box-sizing: border-box; }
body { background: var(--tl-bg); color: var(--tl-ink); font-family: Inter, ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif; }
a { transition: color .18s ease, transform .18s ease, box-shadow .18s ease; }
.navbar-tournlive { background: rgba(255,255,255,.92); backdrop-filter: blur(16px); border-bottom: 1px solid rgba(230,232,239,.85); }
.navbar-organizer { background:linear-gradient(90deg,#008fb8,#006f8f); box-shadow:0 3px 10px rgba(8,40,58,.3); min-height:76px; }
.navbar-organizer .brand-icon { background:rgba(255,255,255,.18); }
.organizer-actions { align-items:center; display:flex; gap:1.25rem; }
.organizer-link { align-items:center; background:transparent; color:#fff; display:inline-flex; font-size:.86rem; font-weight:800; gap:.45rem; text-decoration:none; text-transform:uppercase; }
.organizer-link i { font-size:1.25rem; }.organizer-link:hover { color:var(--tl-lime); }
.brand-mark { align-items:center; display:inline-flex; gap:.65rem; font-size:1.15rem; font-weight:800; letter-spacing:-.03em; }
.brand-icon { align-items:center; background:var(--tl-primary); border-radius:11px; color:#fff; display:inline-flex; height:36px; justify-content:center; width:36px; }
.navbar .nav-link { border-radius:10px; color:#08283a; font-weight:600; padding:.55rem .8rem !important; }
.navbar .nav-link:hover { background:#e4f8fc; color:var(--tl-primary); }
.btn { border-radius:12px; font-weight:700; padding:.65rem 1rem; }
.btn-primary { background:var(--tl-primary); border-color:var(--tl-primary); box-shadow:0 7px 18px rgba(0,143,184,.18); }
.btn-primary:hover { background:var(--tl-primary-dark); border-color:var(--tl-primary-dark); transform:translateY(-1px); }
.btn-outline-primary { border-color:#9dd8e5; color:var(--tl-primary); }
.text-primary { color:var(--tl-primary) !important; }
.bg-white.border.rounded-3, .tl-card { border:1px solid var(--tl-border) !important; border-radius:var(--tl-radius) !important; box-shadow:0 5px 20px rgba(29,28,51,.035); }
.form-control, .form-select { border-color:#9dd8e5; border-radius:12px; min-height:46px; }
.form-control:focus, .form-select:focus { border-color:#00c7df; box-shadow:0 0 0 .23rem rgba(0,143,184,.11); }
.table > :not(caption) > * > * { border-bottom-color:#eceef4; padding:.9rem .85rem; }
.badge { border-radius:999px; padding:.48em .72em; }

.hero { background:radial-gradient(circle at 83% 18%, rgba(255,106,0,.34), transparent 23%), radial-gradient(circle at 55% 5%, rgba(0,199,223,.23), transparent 30%), #f1fbff; overflow:hidden; padding:6.2rem 0 5rem; position:relative; }
.hero-kicker { align-items:center; background:#e4f8fc; border-radius:999px; color:var(--tl-primary); display:inline-flex; font-size:.82rem; font-weight:800; gap:.5rem; letter-spacing:.03em; padding:.55rem .85rem; text-transform:uppercase; }
.hero h1 { font-size:clamp(2.35rem, 4.6vw, 4.25rem); font-weight:850; letter-spacing:-.052em; line-height:1.02; max-width:760px; }
.hero h1 span { color:var(--tl-primary); }
.hero-copy { color:var(--tl-muted); font-size:1.08rem; line-height:1.65; max-width:650px; }
.hero-product { background:#08283a; border:8px solid rgba(255,255,255,.8); border-radius:30px; box-shadow:0 35px 90px rgba(24,15,69,.25); color:#fff; min-height:360px; padding:1.25rem; transform:rotate(1.5deg); }
.hero-product .score-card { background:#fff; border-radius:18px; color:var(--tl-ink); padding:1.35rem; }
.score-team { font-size:1.05rem; font-weight:800; }
.score-value { color:var(--tl-primary); font-size:2.2rem; font-weight:900; }
.live-pill { background:#ff4d67; border-radius:999px; color:#fff; font-size:.72rem; font-weight:800; padding:.35rem .65rem; }
.metric { background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.1); border-radius:16px; padding:1rem; }
.trust-strip { background:#fff; border-bottom:1px solid var(--tl-border); border-top:1px solid var(--tl-border); padding:1.2rem 0; }
.feature-section { padding:5.5rem 0; }
.section-kicker { color:var(--tl-primary); font-size:.8rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.section-title { font-size:clamp(1.85rem, 3.2vw, 2.8rem); font-weight:850; letter-spacing:-.04em; line-height:1.08; }
.feature-card { background:#fff; border:1px solid var(--tl-border); border-radius:24px; height:100%; padding:1.65rem; }
.feature-card:hover { box-shadow:var(--tl-shadow); transform:translateY(-4px); }
.feature-icon { align-items:center; background:#e4f8fc; border-radius:14px; color:var(--tl-primary); display:flex; font-size:1.3rem; height:48px; justify-content:center; margin-bottom:1.2rem; width:48px; }
.cta-panel { background:var(--tl-primary); border-radius:30px; color:#fff; overflow:hidden; padding:clamp(2rem,5vw,4.5rem); position:relative; }
.cta-panel:after { background:var(--tl-lime); border-radius:50%; content:""; height:220px; position:absolute; right:-70px; top:-90px; width:220px; }
.app-footer { background:#08283a; color:#b8b5c6; margin-top:5rem; }
.organizer-page { background:#fafafa; min-height:calc(100vh - 76px); padding:2.1rem 1.25rem 5rem; }
.organizer-container { margin:0 auto; max-width:960px; }
.organizer-heading { align-items:center; display:flex; justify-content:space-between; margin-bottom:1.7rem; }
.organizer-heading h1 { font-size:1.55rem; font-weight:750; margin:0; }
.btn-new-event { background:#fff; border:1px solid #cfd1d8; border-radius:6px; color:#191b22; font-size:.85rem; text-transform:uppercase; }
.btn-new-event:hover { border-color:var(--tl-primary); color:var(--tl-primary); }
.event-toolbar { align-items:center; display:grid; gap:1.25rem; grid-template-columns:1fr 235px; margin-bottom:1.8rem; }
.event-search { align-items:center; border-bottom:1px solid #aeb2bb; display:flex; gap:.75rem; padding:.65rem .2rem; }
.event-search i { font-size:1.25rem; }.event-search input { background:transparent; border:0; font-size:1rem; outline:0; width:100%; }
.event-sort { background:transparent; border:0; border-bottom:1px solid #aeb2bb; min-height:45px; outline:0; }
.event-list { display:flex; flex-direction:column; gap:.65rem; }
.organizer-event { align-items:center; background:#fff; border:1px solid #e1e2e7; border-radius:5px; box-shadow:0 2px 3px rgba(0,0,0,.1); display:flex; min-height:112px; padding:.9rem 1.1rem; }
.event-main-link { align-items:center; color:inherit; display:flex; flex:1; gap:1.4rem; min-width:0; text-decoration:none; }
.event-avatar { align-items:center; background:#008fb8; border-radius:18px; color:#ffd83d; display:flex; flex:none; font-size:1.65rem; height:70px; justify-content:center; width:70px; }
.event-avatar-1 { background:#ff9d42; }.event-avatar-2 { background:#ca42cf; }.event-avatar-3 { background:#42bfb4; }
.event-copy h2 { font-size:1.12rem; font-weight:600; margin:0 0 .65rem; }
.event-meta { align-items:center; display:flex; flex-wrap:wrap; gap:.6rem; }.event-date { background:#eceef1; border-radius:5px; font-size:.82rem; font-weight:750; padding:.32rem .55rem; }.event-sport { color:#666; font-size:.83rem; }.event-plan { background:#fff0bd; border-radius:5px; color:#e57400; font-size:.78rem; font-weight:700; padding:.32rem .55rem; }
.event-menu { align-items:center; background:#f7f7f8; border:0; border-radius:50%; color:#999; display:flex; height:38px; justify-content:center; width:38px; }.event-menu:hover { background:#e4f8fc; color:var(--tl-primary); }
.organizer-empty { background:#fff; border:1px solid var(--tl-border); border-radius:8px; padding:4rem; text-align:center; }
.wizard-page { align-items:flex-start; background:#fafafa; display:flex; justify-content:center; min-height:calc(100vh - 76px); padding:2.7rem 1rem; }
.wizard-card { background:#fff; border:1px solid #dddfe5; border-radius:5px; box-shadow:0 2px 4px rgba(0,0,0,.12); min-height:640px; overflow:hidden; padding:3rem 2.7rem 1.8rem; position:relative; width:min(100%,500px); }
.wizard-progress { background:#b7aaff; height:5px; left:0; position:absolute; right:0; top:0; }.wizard-progress span { background:var(--tl-primary); display:block; height:100%; transition:width .25s ease; }
.wizard-step { display:none; }.wizard-step.active { display:block; }.wizard-step h1 { font-size:1.8rem; font-weight:850; letter-spacing:-.035em; margin-bottom:.85rem; }.wizard-step > p { font-size:1.02rem; line-height:1.65; margin-bottom:2rem; }.wizard-fields .form-label { color:#687080; font-size:.78rem; margin-bottom:.2rem; }.wizard-fields .form-control,.wizard-fields .form-select { border:0; border-bottom:1px solid #9fa3ab; border-radius:0; box-shadow:none; padding-left:0; }.wizard-fields .mb-3 { margin-bottom:1.5rem!important; }
.wizard-actions { align-items:center; bottom:1.8rem; display:flex; justify-content:flex-end; left:2.7rem; position:absolute; right:2.7rem; }.wizard-actions .btn-primary { border-radius:5px; min-width:112px; text-transform:uppercase; }
.tournament-topbar { align-items:center; background:linear-gradient(90deg,#008fb8,#006f8f); color:#fff; display:flex; gap:1.1rem; min-height:76px; padding:0 2rem; position:sticky; top:76px; z-index:1010; }.tournament-topbar a { color:#fff; font-weight:700; margin-left:1rem; text-decoration:none; }.tournament-topbar > a { font-size:1.4rem; margin-left:0; }.tournament-topbar strong { font-size:1.15rem; }
.tournament-workspace { display:grid; grid-template-columns:110px minmax(0,1fr); min-height:calc(100vh - 152px); }.tournament-sidebar { background:#fff; border-right:1px solid var(--tl-border); padding-top:1rem; }.tournament-sidebar a { align-items:center; color:#74777f; display:flex; flex-direction:column; font-size:.73rem; gap:.3rem; padding:.75rem .25rem; text-decoration:none; }.tournament-sidebar a i { font-size:1.35rem; }.tournament-sidebar a:hover,.tournament-sidebar a.active { color:var(--tl-primary); }.tournament-main { background:#fafafa; min-width:0; overflow:hidden; }.tournament-main > .container-fluid { margin:0 auto; max-width:1320px; padding-left:2rem; padding-right:2rem; }
.workspace-content { margin:0 auto; max-width:1120px; padding:2.1rem 2rem 5rem; }.workspace-heading { align-items:center; display:flex; justify-content:space-between; margin-bottom:1.7rem; }.workspace-heading h1 { font-size:1.65rem; font-weight:800; letter-spacing:-.03em; margin:0 0 .25rem; }.workspace-heading p { color:var(--tl-muted); margin:0; }.workspace-panel { background:#fff; border:1px solid var(--tl-border); border-radius:8px; margin-bottom:1rem; padding:1.35rem; }.workspace-panel h2 { font-size:1.15rem; font-weight:800; margin-bottom:1.1rem; }.settings-grid { display:grid; gap:1rem; grid-template-columns:repeat(2,1fr); }.settings-grid div { border-bottom:1px solid var(--tl-border); padding-bottom:.75rem; }.settings-grid span,.day-row small { color:var(--tl-muted); display:block; font-size:.78rem; }.settings-grid strong { display:block; margin-top:.2rem; }.day-row { align-items:center; border:1px solid var(--tl-border); border-radius:6px; display:flex; gap:1rem; min-height:62px; padding:.65rem 1rem; }.day-number { align-items:center; background:#c5c6ca; border-radius:5px; display:flex; font-size:1.05rem; font-weight:800; height:44px; justify-content:center; width:44px; }.category-color-0 { background:#ff8581; }.category-color-1 { background:#ffd06d; }.category-color-2 { background:#7ee0c3; }
.workspace-tabs { background:#fff; border:1px solid var(--tl-border); border-radius:7px; display:flex; margin-bottom:1.5rem; }.workspace-tabs a { border-bottom:3px solid transparent; color:var(--tl-ink); flex:1; font-weight:750; padding:1rem; text-align:center; text-decoration:none; }.workspace-tabs a.active { border-color:var(--tl-primary); color:var(--tl-primary); }.workspace-tabs span { background:#e4f8fc; border-radius:999px; font-size:.72rem; margin-left:.35rem; padding:.2rem .45rem; }.participant-card,.schedule-row,.score-row { align-items:center; background:#fff; border:1px solid var(--tl-border); border-radius:7px; display:flex; gap:1rem; margin-bottom:.65rem; padding:1rem; }.team-avatar { align-items:center; background:#e4f8fc; border-radius:12px; color:var(--tl-primary); display:flex; font-size:1.25rem; height:50px; justify-content:center; width:50px; }.participant-card h2 { font-size:1rem; font-weight:800; margin:0 0 .2rem; }.participant-card p { color:var(--tl-muted); font-size:.82rem; margin:0; }.workspace-empty { padding:5rem 1rem; text-align:center; }.workspace-empty.compact { padding:2rem 1rem; }.workspace-empty-icon { align-items:center; background:#e4f8fc; border-radius:20px; color:var(--tl-primary); display:flex; font-size:2.2rem; height:82px; justify-content:center; margin:0 auto 1.3rem; width:82px; }.workspace-empty-icon.green { background:#ddf9e5; color:#24b94d; }.workspace-empty h2 { font-size:1.3rem; font-weight:800; }
.format-grid { display:grid; gap:1rem; grid-template-columns:repeat(3,1fr); }.format-card { background:#fff; border:2px solid var(--tl-border); border-radius:10px; padding:1.5rem; text-align:center; }.format-card.featured { border-color:var(--tl-primary); }.format-card i { color:var(--tl-primary); font-size:3rem; }.format-card h2 { font-size:1rem; font-weight:800; margin-top:1rem; }.format-card p { color:var(--tl-muted); font-size:.83rem; margin:0; }.schedule-date { border-right:1px solid var(--tl-border); display:flex; flex-direction:column; min-width:70px; }.schedule-date small,.score-row small { color:var(--tl-muted); }.schedule-teams { display:flex; flex:1; gap:.7rem; justify-content:center; }.schedule-teams span { color:var(--tl-muted); }.schedule-field { color:var(--tl-muted); font-size:.84rem; min-width:130px; }.presentation-grid { display:grid; gap:1rem; grid-template-columns:repeat(2,1fr); }.status-title { align-items:center; display:flex; gap:.65rem; }.status-pill { background:#ffd8d5; border-radius:999px; color:#c9433b; font-size:.75rem; font-weight:800; padding:.3rem .55rem; }.status-pill.on { background:#dff6e5; color:#198754; }.score-row { min-height:85px; }.score-teams { align-items:center; display:flex; gap:1rem; margin-top:.45rem; }.score-box { background:#e4f8fc; border-radius:6px; color:var(--tl-primary); font-size:1.05rem; font-weight:850; padding:.45rem .75rem; }

.app-page { padding-bottom:3rem; padding-top:2.25rem; }
.page-header { align-items:flex-start; display:flex; gap:1.5rem; justify-content:space-between; margin-bottom:2rem; }
.page-eyebrow { color:var(--tl-primary); font-size:.75rem; font-weight:850; letter-spacing:.09em; margin-bottom:.35rem; text-transform:uppercase; }
.page-title { font-size:clamp(1.75rem,3vw,2.45rem); font-weight:850; letter-spacing:-.04em; line-height:1.08; margin-bottom:.45rem; }
.page-subtitle { color:var(--tl-muted); margin:0; }
.stat-card { background:#fff; border:1px solid var(--tl-border); border-radius:18px; height:100%; padding:1.25rem; position:relative; }
.stat-card .stat-icon { align-items:center; background:#e4f8fc; border-radius:12px; color:var(--tl-primary); display:flex; font-size:1.1rem; height:40px; justify-content:center; margin-bottom:1rem; width:40px; }
.stat-label { color:var(--tl-muted); font-size:.82rem; font-weight:650; }
.stat-value { font-size:2rem; font-weight:850; letter-spacing:-.04em; }
.content-panel { background:#fff; border:1px solid var(--tl-border); border-radius:20px; overflow:hidden; }
.panel-header { align-items:center; border-bottom:1px solid var(--tl-border); display:flex; justify-content:space-between; padding:1.2rem 1.35rem; }
.panel-title { font-size:1rem; font-weight:800; margin:0; }
.event-card { background:#fff; border:1px solid var(--tl-border); border-radius:20px; color:inherit; display:block; height:100%; overflow:hidden; padding:1.3rem; text-decoration:none; }
.event-card:hover { border-color:#bdb4ff; box-shadow:var(--tl-shadow); color:inherit; transform:translateY(-3px); }
.event-card-accent { background:linear-gradient(90deg,var(--tl-primary),#8a73ff); border-radius:999px; height:5px; margin-bottom:1.15rem; width:48px; }
.empty-state { padding:4rem 1.5rem; text-align:center; }
.empty-icon { align-items:center; background:#e4f8fc; border-radius:18px; color:var(--tl-primary); display:flex; font-size:1.5rem; height:58px; justify-content:center; margin:0 auto 1rem; width:58px; }
.setup-step { align-items:center; background:#fff; border:1px solid var(--tl-border); border-radius:18px; display:flex; gap:1rem; justify-content:space-between; padding:1.25rem; }
.setup-step:hover { border-color:#c9c1ff; }
.setup-number { align-items:center; background:#e4f8fc; border-radius:12px; color:var(--tl-primary); display:flex; flex:none; font-weight:850; height:42px; justify-content:center; width:42px; }
.setup-number.complete { background:#e8f8ec; color:#198754; }
.list-group-item { border-color:var(--tl-border); padding:1rem 1.25rem; }
.accordion-button:not(.collapsed) { background:#e4f8fc; color:var(--tl-primary-dark); }

@media (max-width: 767px) { .page-header { align-items:stretch; flex-direction:column; } .page-header .btn { width:100%; } .setup-step { align-items:flex-start; flex-direction:column; } .organizer-heading { align-items:stretch; flex-direction:column; gap:1rem; }.event-toolbar { grid-template-columns:1fr; }.organizer-event { min-height:96px; }.event-avatar { height:54px; width:54px; }.organizer-actions { align-items:flex-start; flex-direction:column; padding:1rem 0; }.navbar-organizer .navbar-toggler { background:#fff; }.wizard-card { min-height:680px; padding:2rem 1.4rem; }.wizard-actions { left:1.4rem; right:1.4rem; }.tournament-topbar { padding:0 1rem; top:76px; }.tournament-topbar .ms-auto a { font-size:0; }.tournament-topbar .ms-auto i { font-size:1.15rem; }.tournament-workspace { grid-template-columns:1fr; }.tournament-sidebar { border-bottom:1px solid var(--tl-border); border-right:0; display:flex; overflow-x:auto; padding:0; position:sticky; top:152px; z-index:1000; }.tournament-sidebar a { flex:0 0 84px; }.tournament-main > .container-fluid { padding-left:1rem; padding-right:1rem; } }

@media (max-width: 991px) { .hero { padding-top:4rem; } .hero-product { margin-top:2rem; transform:none; } }
@media (max-width: 575px) { .hero { padding:3.25rem 0 3.5rem; } .hero h1 { font-size:2.25rem; letter-spacing:-.04em; } .hero-copy { font-size:1rem; } }
@media (max-width:767px) { .workspace-content { padding:1.5rem 1rem 4rem; }.workspace-heading { align-items:stretch; flex-direction:column; gap:1rem; }.settings-grid,.format-grid,.presentation-grid { grid-template-columns:1fr; }.schedule-row,.score-row { align-items:flex-start; flex-direction:column; }.schedule-teams { justify-content:flex-start; }.participant-card { flex-wrap:wrap; }.tournament-sidebar { top:76px; } }
.quick-modal{border:0;border-radius:20px;box-shadow:0 24px 80px rgba(20,15,70,.24);overflow:hidden}.quick-modal .modal-header{padding:1.35rem 1.5rem;border-bottom:1px solid #eceaf6}.quick-modal .modal-body{padding:1.5rem}.modal-dialog:has(.quick-modal){max-width:620px}.modal-eyebrow{font-size:.7rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--tl-primary,#008fb8);margin-bottom:.2rem}.quick-modal-loading{min-height:210px;display:grid;place-content:center;text-align:center;gap:.75rem;color:#52798a}.quick-modal form>div:last-child{margin-top:1.25rem}.quick-modal .form-control,.quick-modal .form-select{min-height:46px;border-radius:10px}.quick-modal .btn{border-radius:10px}
.roster-summary{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.15rem;background:#f2efff;border-radius:14px}.roster-summary small,.roster-player small{display:block;color:#52798a}.roster-count{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:#008fb8;color:#fff;font-weight:800}.roster-list{display:grid;gap:.55rem;max-height:280px;overflow:auto}.roster-player{display:flex;align-items:center;gap:.75rem;padding:.7rem;border:1px solid #ebe9f4;border-radius:12px}.roster-player form{margin:0}.player-number{display:grid;place-items:center;min-width:34px;height:34px;border-radius:10px;background:#f4f3f8;font-weight:800;color:#008fb8}
.public-link-input{display:flex;align-items:center;gap:.5rem;border-bottom:2px solid #aaa;padding:.55rem 0;color:#555}.public-link-input:focus-within{border-color:#008fb8}.public-link-input i{font-size:1.35rem}.public-link-input span{white-space:nowrap}.public-link-input input{min-width:80px;flex:1;border:0;outline:0;font-size:1.05rem;background:transparent}.public-link-ready{display:flex;align-items:center;gap:.65rem;padding:.7rem .8rem;background:#e4f8fc;border-radius:10px;overflow:hidden}.public-link-ready span{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:.85rem;color:#008fb8}
.live-score-control{display:grid;grid-template-columns:42px 1fr 42px;gap:.4rem;align-items:center;margin-top:.35rem}.live-score-control button{height:46px;border:0;border-radius:11px;background:#e4f8fc;color:#008fb8;font-size:1.4rem;font-weight:800}.live-score-control input{min-width:0;font-size:1.45rem!important;font-weight:800}
.data-table-wrap{overflow-x:auto;background:#fff;border:1px solid #e7e5ef;border-radius:14px}.workspace-data-table{width:100%;min-width:880px;border-collapse:collapse}.workspace-data-table th{padding:.9rem 1rem;background:#f1fbff;color:#666;font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap}.workspace-data-table td{padding:.85rem 1rem;border-top:1px solid #eceaf1;vertical-align:middle}.workspace-data-table tbody tr:hover{background:#f1fbff}.workspace-data-table input[type=checkbox]{width:18px;height:18px;accent-color:#008fb8}.table-team,.table-actions{display:flex;align-items:center;gap:.65rem}.team-avatar.small{width:34px;height:34px;font-size:.85rem}.table-count{display:inline-flex;align-items:center;gap:.4rem;font-weight:800;text-decoration:none;color:#008fb8}.table-pill{display:inline-block;padding:.25rem .55rem;border-radius:999px;background:#e4f8fc;color:#008fb8;font-size:.75rem;font-weight:700;margin:.1rem}.table-actions{justify-content:flex-end}.table-actions form{margin:0}.permissions-table th:not(:first-child),.permissions-table td:not(:first-child){text-align:center}.permissions-table td:first-child small{display:block;color:#52798a}.permission-on{color:#159447;font-size:1.05rem}
.structure-board{display:flex;align-items:flex-start;gap:1rem;overflow-x:auto;padding:.25rem .15rem 1rem}.structure-column{flex:0 0 285px}.knockout-column{flex-basis:270px}.structure-column-title{display:flex;align-items:center;justify-content:space-between;min-height:60px}.structure-column-title span{font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:#52798a}.structure-column-title h2{font-size:1.05rem;margin:.1rem 0 0}.phase-card,.bracket-card{background:#fff;border:1px solid #dedbe9;border-radius:12px;overflow:hidden;box-shadow:0 3px 10px rgba(30,22,72,.06)}.phase-card header,.bracket-card header{display:flex;justify-content:space-between;align-items:center;padding:.65rem .8rem;background:#008fb8;color:#fff;font-weight:800}.phase-card header span{font-size:.7rem;opacity:.8}.phase-card footer{padding:.55rem .8rem;background:#f1fbff;color:#52798a;font-size:.78rem}.phase-teams div{display:flex;gap:.6rem;padding:.6rem .75rem;border-bottom:1px solid #efedf4}.phase-teams div span{display:grid;place-items:center;width:22px;height:22px;background:#e4f8fc;color:#008fb8;border-radius:7px;font-size:.72rem;font-weight:800}.bracket-card{margin-bottom:.7rem}.bracket-card header i{color:#9ff2ba}.bracket-card>div span{display:flex;justify-content:space-between;padding:.55rem .7rem;border-bottom:1px solid #e4f8fc}.bracket-card>div span.winner{font-weight:800;color:#2815ba;background:#e4f8fc}.bracket-card>a{display:block;padding:.5rem .7rem;text-align:right;font-size:.75rem;font-weight:700;text-decoration:none}
.score-progress{margin-bottom:1.25rem;padding:1.1rem 1.2rem;background:#fff;border:1px solid #9dd8e5;border-radius:14px}.score-progress h2{font-size:1rem;margin-bottom:.85rem}.score-progress-track{display:flex;align-items:center;gap:.75rem;overflow-x:auto}.score-progress article{flex:0 0 180px;padding:.75rem;background:#f1fbff;border-radius:11px}.score-progress article>div:first-child{display:flex;justify-content:space-between;gap:.5rem;font-size:.78rem}.score-progress article span{font-weight:800;color:#008fb8}.progress-line{height:5px;margin-top:.65rem;background:#ddd9ec;border-radius:999px;overflow:hidden}.progress-line i{display:block;height:100%;background:#008fb8;border-radius:inherit}.progress-arrow{color:#aaa}
.public-event-page{min-height:100vh;padding:0 2vw 4rem;background:radial-gradient(circle at 15% 10%,rgba(104,255,170,.2),transparent 28%),linear-gradient(135deg,#062233,#0b4a66 50%,#062233);color:#08283a}.public-event-hero{position:relative;min-height:370px;margin:0 -2vw;display:grid;place-items:center;overflow:hidden;background:linear-gradient(115deg,rgba(7,57,34,.88),rgba(14,28,22,.6)),radial-gradient(ellipse at 45% 90%,#3d9d52 0,#1b6539 38%,#183c2b 70%)}.public-event-hero:before{content:"";position:absolute;inset:auto -10% -45% -10%;height:85%;border-radius:50%;border:4px solid rgba(255,255,255,.18);box-shadow:0 0 0 80px rgba(255,255,255,.025),0 0 0 160px rgba(255,255,255,.02)}.public-event-hero-overlay{position:absolute;inset:0;background:linear-gradient(180deg,transparent,rgba(8,6,30,.52))}.public-event-identity{position:relative;text-align:center;color:#fff}.public-event-logo{display:grid;place-items:center;width:92px;height:92px;margin:0 auto 1rem;border-radius:28px;background:rgba(255,255,255,.16);backdrop-filter:blur(8px);font-size:2.6rem;color:#ff6a00}.public-event-sport{text-transform:uppercase;letter-spacing:.15em;font-size:.75rem;font-weight:800;color:#ff6a00}.public-event-identity h1{margin:.3rem 0;font-size:clamp(2rem,4vw,3.4rem);font-weight:900}.public-event-identity p{font-size:1.1rem}.public-event-shell{position:relative;max-width:1500px;margin:-40px auto 0;background:#fff;border-radius:24px;overflow:hidden;box-shadow:0 28px 80px rgba(4,3,18,.35)}.public-event-nav{display:flex;gap:.3rem;padding:1rem max(1rem,calc((100% - 1120px)/2));overflow-x:auto;background:#008fb8}.public-event-nav a{display:flex;align-items:center;gap:.5rem;padding:.85rem 1rem;border-radius:12px;color:#fff;text-decoration:none;font-weight:800;white-space:nowrap}.public-event-nav a.active,.public-event-nav a:hover{background:rgba(255,255,255,.2)}.public-event-content{max-width:1120px;min-height:480px;margin:auto;padding:2rem 1.25rem 3.5rem}.public-overview-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(260px,1fr);gap:1.25rem}.public-white-card,.public-info-card,.public-standing,.public-match-day{border:1px solid #9dd8e5;border-radius:16px;background:#fff;box-shadow:0 4px 14px rgba(40,30,90,.06)}.public-white-card{padding:1.5rem}.public-card-kicker{color:#008fb8;font-size:.75rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.public-white-card h2{margin:.4rem 0 1rem;font-size:1.55rem}.public-description{white-space:pre-line;color:#65606f}.public-stats{display:flex;gap:1rem;margin-top:1.5rem}.public-stats div{flex:1;padding:.8rem;background:#f5f3ff;border-radius:12px;text-align:center}.public-stats strong,.public-stats span{display:block}.public-stats strong{font-size:1.35rem;color:#008fb8}.public-info-card{padding:1.1rem}.public-info-card span{display:block;color:#52798a;font-size:.78rem;text-transform:uppercase}.public-info-card strong{display:block;margin-top:.6rem}.public-register-cta,.public-closed{display:block;margin-top:1rem;padding:1rem;text-align:center;border-radius:12px;font-weight:800;text-decoration:none}.public-register-cta{background:#008fb8;color:#fff}.public-closed{background:#f1f0f5;color:#52798a}.public-search{display:flex;align-items:center;gap:.7rem;margin-bottom:1.4rem;padding:.8rem 1rem;border:1px solid #9dd8e5;border-radius:13px}.public-search input{flex:1;border:0;outline:0}.public-team-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.8rem}.public-team-grid article{display:flex;align-items:center;gap:.8rem;padding:1rem;border:1px solid #9dd8e5;border-radius:14px}.public-team-grid article>span{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;background:#e4f8fc;color:#008fb8}.public-team-grid small{display:block;color:#52798a}.public-section-title{margin-bottom:1.2rem}.public-section-title h2{margin:0}.public-section-title p{color:#52798a}.public-standing{overflow:hidden;margin-bottom:1.2rem}.public-standing>header,.public-match-day>header{padding:.8rem 1rem;background:#e4f8fc;color:#006f8f;font-weight:800}.public-standing table{width:100%;border-collapse:collapse}.public-standing th,.public-standing td{padding:.7rem .8rem;border-top:1px solid #e4f8fc;text-align:center}.public-standing th:nth-child(2),.public-standing td:nth-child(2){text-align:left}.public-standing .points{background:#008fb8;color:#fff;font-weight:900}.public-schedule{display:grid;gap:.85rem}.public-match-day{overflow:hidden}.public-match-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.8rem;padding:.85rem}.public-match-grid article{padding:.8rem;border:1px solid #9dd8e5;border-radius:12px}.public-match-meta,.public-match-team{display:flex;justify-content:space-between;gap:.5rem}.public-match-meta{padding-bottom:.5rem;color:#52798a;font-size:.72rem}.public-match-team{padding:.38rem 0;border-top:1px solid #f0eef4}.public-match-team b{display:grid;place-items:center;width:30px;height:30px;border-radius:8px;background:#008fb8;color:#fff}.public-empty{padding:3rem;text-align:center;color:#52798a}@media(max-width:900px){.public-overview-grid{grid-template-columns:1fr}.public-team-grid,.public-match-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:600px){.public-event-page{padding-left:0;padding-right:0}.public-event-hero{margin:0;min-height:300px}.public-event-shell{margin-top:-20px;border-radius:20px 20px 0 0}.public-event-nav{padding:.7rem}.public-event-nav a{font-size:.75rem;padding:.7rem}.public-event-content{padding:1.25rem .8rem 2.5rem}.public-team-grid,.public-match-grid{grid-template-columns:1fr}.public-stats{gap:.4rem}.public-standing th,.public-standing td{padding:.55rem .45rem;font-size:.76rem}}
.public-event-hero.compact{min-height:330px}.public-registration{display:grid;grid-template-columns:minmax(260px,.75fr) minmax(0,1.25fr);gap:2rem;max-width:900px;margin:auto}.public-registration h2{margin:.4rem 0}.public-registration>div:first-child>p{color:#52798a}.public-capacity{display:grid;grid-template-columns:auto 1fr;gap:.1rem .7rem;margin-top:1.2rem;padding:1rem;border-radius:12px;background:#e4f8fc}.public-capacity i{grid-row:1/3;font-size:1.5rem;color:#008fb8}.public-capacity span{font-size:.75rem;color:#52798a}.public-registration-form{padding:1.4rem;border:1px solid #e7e4ee;border-radius:16px;box-shadow:0 8px 30px rgba(40,30,90,.08)}.public-registration-form .form-control,.public-registration-form .form-select{min-height:46px;border-radius:10px;margin-bottom:.3rem}@media(max-width:760px){.public-registration{grid-template-columns:1fr}}
.event-match-summary{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:.8rem;margin-bottom:1rem;padding:1rem;border-radius:14px;background:#e4f8fc;text-align:center}.event-match-summary span{padding:.45rem .7rem;border-radius:10px;background:#008fb8;color:#fff;font-size:1.2rem;font-weight:900}.match-timeline-panel{margin-top:1rem;padding:1rem;background:#fff;border:1px solid #e4e1ec;border-radius:14px}.timeline-heading{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.8rem}.timeline-heading h2{font-size:1rem;margin:0}.timeline-heading p{font-size:.78rem;color:#52798a;margin:0}.match-timeline{display:grid;gap:.45rem;max-height:300px;overflow:auto}.timeline-event{display:flex;align-items:center;gap:.65rem;padding:.65rem .7rem;border-radius:11px;background:#f1fbff}.timeline-event>i{display:grid;place-items:center;width:30px;height:30px;border-radius:9px;background:#e4f8fc;color:#008fb8}.timeline-event.type-yellow_card>i{color:#e5b700}.timeline-event.type-red_card>i{color:#d73333}.timeline-event.type-goal>i{color:#159447}.timeline-minute{width:34px;font-weight:900;color:#008fb8}.timeline-event small{display:block;color:#52798a}.timeline-event form{margin:0}.timeline-empty{display:flex;align-items:center;justify-content:center;gap:.6rem;padding:1.5rem;color:#888}
.public-team-grid>a{display:flex;align-items:center;gap:.8rem;padding:1rem;border:1px solid #9dd8e5;border-radius:14px;text-decoration:none;color:inherit}.public-team-grid>a>span{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;background:#e4f8fc;color:#008fb8}.public-team-grid>a:hover{border-color:#008fb8;background:#faf9ff}.public-back{display:inline-flex;align-items:center;gap:.4rem;margin-bottom:.8rem;padding:.5rem .75rem;border-radius:10px;background:#f3f1f8;color:#514b5c;text-decoration:none;font-size:.78rem;font-weight:800}.public-team-heading{display:flex;align-items:center;justify-content:space-between;padding:1.1rem 1.25rem;border:1px solid #9dd8e5;border-radius:15px 15px 0 0}.public-team-heading span{font-size:.72rem;text-transform:uppercase;color:#52798a}.public-team-heading h2{margin:.1rem 0 0}.team-big-icon{font-size:2rem;color:#008fb8}.public-team-tabs{display:grid;grid-template-columns:repeat(4,1fr);margin-bottom:1.25rem;background:#f1eff6;border-radius:0 0 14px 14px;overflow:hidden}.public-team-tabs a{padding:.8rem;text-align:center;text-decoration:none;color:#555;font-size:.78rem;font-weight:800;text-transform:uppercase}.public-team-tabs a.active{background:#008fb8;color:#fff}.team-matches{padding:0}.public-player-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.7rem}.public-player-grid article{display:flex;align-items:center;gap:.8rem;padding:1rem;border:1px solid #9dd8e5;border-radius:13px}.player-shirt{display:grid;place-items:center;width:42px;height:42px;border-radius:13px;background:#008fb8;color:#fff;font-weight:900}.public-player-grid small{display:block;color:#52798a}.team-stat-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:.7rem}.team-stat-cards div{padding:1rem;border-radius:13px;background:#e4f8fc;text-align:center}.team-stat-cards strong,.team-stat-cards span{display:block}.team-stat-cards strong{font-size:1.5rem;color:#008fb8}.team-stat-cards span{font-size:.75rem;color:#52798a}.highlight-team{outline:2px solid #008fb8;outline-offset:-2px;background:#e4f8fc}@media(max-width:700px){.public-team-tabs{grid-template-columns:repeat(2,1fr)}.public-player-grid{grid-template-columns:1fr}.team-stat-cards{grid-template-columns:repeat(2,1fr)}}
/* Champ piège anti-robot : hors écran, hors tabulation, ignoré des lecteurs d'écran. */
.form-trap{position:absolute!important;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}
/* Feuille de match numérique */
.sheet-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:.6rem;list-style:none;margin:0 0 1rem;padding:0}.sheet-steps li{display:grid;gap:.1rem;padding:.7rem .9rem;border:1px solid #9dd8e5;border-radius:12px;background:#fff;color:#6b7280}.sheet-steps li span{font-size:.8rem}.sheet-steps li.done{border-color:#b7e4c7;background:#f1faf4;color:#1b5e20}.sheet-steps li.active{border-color:#008fb8;background:#e4f8fc;color:#006f8f}
.sheet-validation.is-valid{border-color:#b7e4c7!important;background:#f6fcf8}.sheet-validation.has-reserve{border-color:#ffd666!important;background:#fffbea}
@media (max-width:575.98px){.sheet-steps{grid-template-columns:1fr}}
/* Ajout de plusieurs équipes */
.bulk-teams{margin-bottom:1rem;padding:.8rem 1rem;border:1px solid #9dd8e5;border-radius:14px;background:#fff}.bulk-teams summary{cursor:pointer;font-weight:600;color:#006f8f}.bulk-teams form{margin-top:1rem}
/* Inscription publique : étape de vérification */
.registration-review h3{font-size:1.25rem;font-weight:700;margin-bottom:1rem}.registration-review dl{display:grid;grid-template-columns:minmax(120px,40%) 1fr;gap:.5rem 1rem;margin:0 0 1.5rem;padding:1rem;border-radius:14px;background:#f1fbff}.registration-review dt{font-weight:600;color:#52798a}.registration-review dd{margin:0;word-break:break-word}.registration-review-total{font-weight:700;font-size:1.1rem}.registration-review-actions{display:flex;gap:.75rem;justify-content:space-between;flex-wrap:wrap}
/* Calendrier : journées, terrains et matchs à planifier */
.planning-days{display:flex;flex-wrap:wrap;gap:.6rem;align-items:stretch;margin-bottom:1.25rem}.planning-day{display:grid;gap:.1rem;padding:.55rem .9rem;border:1px solid #9dd8e5;border-radius:12px;background:#fff;color:#08283a;text-decoration:none;min-width:120px}.planning-day span{font-size:.78rem;color:#52798a}.planning-day.active{border-color:#008fb8;background:#e4f8fc;color:#006f8f}.planning-day-add{display:flex;gap:.5rem;align-items:center;padding:.4rem .6rem;border:1px dashed #9dd8e5;border-radius:12px}
.planning{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:1.25rem;align-items:start}.planning-fields{display:flex;gap:1rem;overflow-x:auto;padding-bottom:.5rem;align-items:flex-start}.planning-field{flex:0 0 270px;border:1px solid #9dd8e5;border-radius:16px;background:#fff;overflow:visible}.planning-field>header{display:flex;justify-content:space-between;align-items:center;gap:.5rem;padding:.75rem .9rem;border-bottom:1px solid #e4f8fc;background:#f1fbff;border-radius:16px 16px 0 0}.planning-field>header div{display:grid}.planning-field>header span{font-size:.78rem;color:#52798a}.planning-field.is-target{border-color:#008fb8;box-shadow:0 0 0 3px rgba(0,143,184,.15)}.planning-dropzone{display:grid;gap:.5rem;padding:.75rem;min-height:140px;align-content:start}.planning-field-new{padding:.9rem;border-style:dashed;background:#f1fbff}
.planning-field-menu{position:relative}.planning-field-menu summary{list-style:none;cursor:pointer;padding:.25rem .45rem;border-radius:8px;color:#52798a}.planning-field-menu summary::-webkit-details-marker{display:none}.planning-field-menu[open]>form:first-of-type{margin-top:.5rem}.planning-field-menu[open]{position:absolute;right:.6rem;z-index:5;width:230px;padding:.75rem;border:1px solid #9dd8e5;border-radius:12px;background:#fff;box-shadow:0 12px 30px rgba(30,20,80,.12)}.planning-field>header{position:relative}
.planning-match{display:flex;gap:.6rem;align-items:flex-start;padding:.6rem .7rem;border:1px solid #e9e6f2;border-radius:12px;background:#fff}.planning-match[draggable=true]{cursor:grab}.planning-match.is-dragging{opacity:.45}.planning-match time{font-weight:700;color:#006f8f;font-variant-numeric:tabular-nums}.planning-match>div{flex:1;display:grid;gap:.25rem;min-width:0}.planning-match strong{font-size:.9rem;overflow-wrap:anywhere}.planning-tag{justify-self:start;display:inline-block;padding:.05rem .5rem;border-radius:999px;background:#e4f8fc;color:#3b2dad;font-size:.72rem}.planning-tag.done{background:#e6f6ec;color:#17603a}.planning-icon{border:0;background:none;color:#52798a;padding:.1rem .3rem;border-radius:6px}.planning-icon:hover,.planning-icon:focus-visible{background:#fdecec;color:#b42318}.planning-hint{margin:0;padding:1rem .5rem;text-align:center;color:#52798a;font-size:.85rem}
.planning-side{position:sticky;top:5rem;padding:1rem;border:1px solid #9dd8e5;border-radius:16px;background:#fff}.planning-side h2{display:flex;justify-content:space-between;align-items:baseline;font-size:1.05rem;font-weight:700;margin-bottom:.8rem}.planning-side h2 span{font-size:.85rem;color:#52798a;font-weight:600}.planning-unplanned{display:grid;gap:.5rem;max-height:52vh;overflow-y:auto}.planning-unplanned .planning-match{flex-direction:column}.planning-quick{display:flex;gap:.4rem;width:100%}.planning-settings{margin-top:1rem;padding-top:.8rem;border-top:1px solid #e4f8fc}.planning-settings summary{cursor:pointer;font-weight:600;color:#08283a;margin-bottom:.6rem}
@media (max-width:991.98px){.planning{grid-template-columns:1fr}.planning-side{position:static}}
/* Classement : phases et poules */
.phase-board{margin-bottom:1.5rem;padding:1rem;border:1px solid #9dd8e5;border-radius:18px;background:#fff}.phase-board-title{display:flex;justify-content:space-between;align-items:flex-end;gap:1rem;margin-bottom:1rem}.phase-board-title span{font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;color:#52798a}.phase-board-title h2{font-size:1.2rem;font-weight:700;margin:0}.phase-columns{display:flex;gap:1rem;overflow-x:auto;align-items:flex-start;padding-bottom:.5rem}.phase-column{flex:0 0 300px;display:grid;gap:.75rem;padding:.85rem;border-radius:14px;background:#f1fbff}.phase-column-new{border:1px dashed #9dd8e5;background:#f1fbff}.phase-rename{display:flex;gap:.4rem}.phase-rename input{font-weight:700}
.pool-card{border:1px solid #e3e0ef;border-radius:12px;background:#fff;overflow:hidden}.pool-card>header{display:grid;padding:.6rem .8rem;background:#e4f8fc;color:#006f8f}.pool-card>header span{font-size:.75rem;color:#52798a}.pool-table{width:100%;font-size:.85rem}.pool-table th,.pool-table td{padding:.3rem .5rem;border-bottom:1px solid #e4f8fc;text-align:center}.pool-table th:nth-child(2),.pool-table td:nth-child(2){text-align:left}.pool-table thead th{font-weight:600;color:#52798a;font-size:.72rem}.pool-empty{margin:0;padding:.8rem;font-size:.82rem;color:#52798a}.pool-card>footer{display:flex;justify-content:space-between;align-items:center;gap:.5rem;padding:.6rem .8rem;font-size:.8rem;color:#52798a}.pool-edit{padding:.5rem .8rem .8rem;border-top:1px solid #e4f8fc}.pool-edit summary{cursor:pointer;font-size:.82rem;font-weight:600;color:#08283a;margin-bottom:.5rem}.pool-teams{max-height:190px;overflow-y:auto;padding:.4rem .6rem;border:1px solid #e4f8fc;border-radius:10px}
/* Scores : saisie rapide du résultat */
.quick-result{display:inline-flex;align-items:center;gap:.35rem}.quick-result input{width:3.4rem;padding:.3rem .2rem;border:1px solid #9dd8e5;border-radius:10px;text-align:center;font-weight:700;font-size:1.05rem;font-variant-numeric:tabular-nums}.quick-result input:focus-visible{outline:2px solid #008fb8;outline-offset:1px}
/* Tableau final dans une phase */
.bracket-pool>header{background:#e6f6ec;color:#17603a}.bracket-list{list-style:none;margin:0;padding:.5rem .8rem;display:grid;gap:.5rem}.bracket-list li{display:grid;gap:.15rem;padding:.45rem .6rem;border:1px solid #e4f8fc;border-radius:10px;font-size:.85rem}.bracket-list small{color:#52798a;font-weight:600}.bracket-list span{display:flex;justify-content:space-between;gap:.5rem}.bracket-list .winner{font-weight:700;color:#17603a}.bracket-start{padding:.6rem .8rem;border-top:1px solid #e4f8fc}
/* Classement : ajustement manuel des points */
.pool-points form{display:inline-flex;align-items:center;gap:.25rem}.pool-points button{width:1.4rem;height:1.4rem;padding:0;border:1px solid #9dd8e5;border-radius:6px;background:#fff;color:#52798a;line-height:1}.pool-points button:hover,.pool-points button:focus-visible{background:#e4f8fc;color:#006f8f}.pool-points sup{color:#b45309;font-weight:600}
/* Page publique : journées repliables, résultats et matchs de poule */
details.public-match-day>summary{cursor:pointer;list-style:none;font-weight:700;padding:.6rem .9rem;border-radius:12px;background:rgba(0,143,184,.07);margin-bottom:.6rem}details.public-match-day>summary::-webkit-details-marker{display:none}details.public-match-day>summary::after{content:"▾";float:right}details.public-match-day:not([open])>summary::after{content:"▸"}
.public-match-team b.is-win{background:#1f9d55;color:#fff}.public-match-team b.is-loss{background:#e5484d;color:#fff}.public-match-team b.is-draw{background:#f59e0b;color:#fff}.public-match-team b.is-win,.public-match-team b.is-loss,.public-match-team b.is-draw{display:inline-block;min-width:1.7rem;padding:.05rem .35rem;border-radius:6px;text-align:center}
.public-pool-matches{margin-top:.6rem}.public-pool-matches summary{cursor:pointer;font-weight:600;padding:.4rem 0}.public-pool-matches ul{list-style:none;margin:0;padding:0;display:grid;gap:.3rem}.public-pool-matches li{display:grid;grid-template-columns:6.5rem 1fr auto 1fr;gap:.6rem;align-items:center;padding:.35rem .5rem;border-radius:8px;background:rgba(0,0,0,.03);font-size:.9rem}.public-pool-matches li span:nth-child(2){text-align:right}.public-pool-date{color:#6b7280;font-size:.8rem}.public-pool-matches b.is-played{color:#17603a}
/* Espace de gestion : le menu latéral reste visible pendant le défilement (ordinateur et tablette, pas sur téléphone) */
@media (min-width:768px){.tournament-sidebar{position:sticky;top:152px;align-self:start;height:calc(100vh - 152px);overflow-y:auto}}
.planning-tag:empty{display:none}
@media (max-width:767px){.tournament-sidebar{position:static!important}}
/* Calendrier : pauses, événements et ordre des matchs */
.planning-block{display:flex;gap:.6rem;align-items:flex-start;padding:.5rem .7rem;border:1px dashed #9dd8e5;border-radius:12px;background:#f1fbff;color:#52798a}.planning-block.is-event{border-style:solid;border-color:#ffd666;background:#fffbea;color:#7a4b00}.planning-block time{font-weight:700;font-variant-numeric:tabular-nums}.planning-block>div{flex:1;display:grid;gap:.2rem}.planning-block-add{padding:.5rem .75rem .75rem;border-top:1px solid #e4f8fc}.planning-block-add summary{cursor:pointer;font-size:.85rem;font-weight:600;color:#08283a}.planning-block-add form{margin-top:.6rem}.planning-match.is-planned{flex-wrap:wrap}.planning-match.is-planned>form{display:inline-flex}
.team-tracking{position:relative}.team-tracking summary{list-style:none}.team-tracking summary::-webkit-details-marker{display:none}.team-tracking[open] form{position:absolute;right:0;z-index:5;width:240px;margin-top:.4rem;padding:.75rem;border:1px solid #9dd8e5;border-radius:12px;background:#fff;box-shadow:0 12px 30px rgba(30,20,80,.12);text-align:left}
/* Formules */
.plan-notice{background:#f7f6ff;border-color:#d9d3ff!important}.pricing-card{display:flex;flex-direction:column;height:100%;padding:1.75rem;border:1px solid #9dd8e5;border-radius:20px;background:#fff}.pricing-card.is-featured{border-color:#008fb8;box-shadow:0 14px 40px rgba(0,143,184,.14)}.pricing-price{font-size:2.4rem;font-weight:800;line-height:1.1}.pricing-price small{display:block;font-size:.9rem;font-weight:500;color:#52798a}.pricing-card ul{list-style:none;padding:0;margin:1.25rem 0;display:grid;gap:.55rem}.pricing-card li{display:flex;gap:.55rem;align-items:flex-start}.pricing-card li i{color:#1f9d55;margin-top:.15rem}.pricing-card li.is-off{color:#9a96ad}.pricing-card li.is-off i{color:#c4c1d4}.pricing-card .btn{margin-top:auto}
.pricing-tax{font-size:.45em;font-weight:600;color:#52798a;text-decoration:none;vertical-align:middle}
/* Écran direct de l'organisateur */
.live-header{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:1rem;margin:.75rem 0 .25rem;padding:1rem;border-radius:18px;background:#08283a;color:#fff;text-align:center}.live-team{font-size:1.15rem;font-weight:700;overflow-wrap:anywhere}.live-score{display:grid;justify-items:center;gap:.2rem}.live-score strong{font-size:2.6rem;line-height:1;font-variant-numeric:tabular-nums}.live-score>span{display:none}.live-score{grid-template-columns:auto auto;column-gap:1rem}.live-score em{grid-column:1/-1;font-style:normal}
.live-controls{display:flex;flex-wrap:wrap;gap:.6rem;justify-content:center;margin-bottom:1rem}.live-context{position:sticky;top:76px;z-index:20;display:flex;gap:.75rem;align-items:flex-end;padding:.75rem;margin-bottom:.5rem;border:1px solid #9dd8e5;border-radius:14px;background:#fff}.live-context input[type=number]{width:6.5rem}
.live-roster{padding:.9rem;border:1px solid #9dd8e5;border-radius:16px;background:#fff}.live-player{display:grid;grid-template-columns:2.4rem 1fr;gap:.5rem;align-items:center;padding:.5rem 0;border-top:1px solid #e4f8fc}.live-player.is-substitute{background:#f1fbff}.live-number{display:grid;place-items:center;width:2.2rem;height:2.2rem;border-radius:10px;background:#e4f8fc;color:#006f8f;font-weight:700}.live-name{font-weight:600;overflow-wrap:anywhere}.live-actions{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:.4rem}.live-actions .btn{min-height:2.4rem;min-width:3.4rem}.live-yellow{background:#ffd43b;color:#3d2f00;border:1px solid #e0b400}.live-red{background:#e03131;color:#fff;border:1px solid #b02525}
.live-timeline{padding:1rem;border:1px solid #9dd8e5;border-radius:16px;background:#fff}.live-event{display:flex;justify-content:space-between;gap:1rem;padding:.45rem 0;border-top:1px solid #e4f8fc;font-size:.92rem}
@media (min-width:768px){.live-player{grid-template-columns:2.4rem 1fr auto}.live-actions{grid-column:auto}}
/* Page publique : pied de page et bouton du diaporama */
.public-event-footer{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;max-width:1120px;margin:1.5rem auto 0;padding:1rem;color:#6b7280;font-size:.85rem}.public-slideshow-button{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem .9rem;border:1px solid currentColor;border-radius:999px;color:inherit;font-weight:600;text-decoration:none}.public-slideshow-button:hover,.public-slideshow-button:focus-visible{background:rgba(0,0,0,.06)}
.match-clock{display:inline-flex;align-items:center;gap:.3rem;font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}.match-clock.is-running i{color:#ff4d67}.live-score .match-clock{display:inline-flex;justify-content:center;grid-column:1/-1;font-size:1.25rem}.public-match-scoreboard .match-clock{display:flex;justify-content:center;margin-top:.35rem;font-size:1.1rem}
.app-footer .app-footer-link { color: inherit; text-decoration: underline; text-underline-offset: 2px; }
.app-footer .app-footer-link:hover { color: #fff; }
.terms-body h2 { color: #08283a; font-size: 1.15rem; font-weight: 800; margin: 2rem 0 .6rem; }
.terms-body p, .terms-body li { color: #3d5f6e; line-height: 1.65; }
.terms-body a { color: #007a9e; }
.event-avatar.has-logo { background:#fff; border:1px solid #d6e0e6; overflow:hidden; padding:6px; } .event-avatar.has-logo img { height:100%; object-fit:contain; width:100%; }
.brand-logo { border-radius:9px; display:block; flex:none; height:36px; width:36px; }
.admin-brand-logo { border-radius:11px; display:block; flex:none; height:42px; width:42px; }
.navbar-organizer .brand-logo, .admin-brand-logo { box-shadow:0 0 0 1px rgba(255,255,255,.22); }
.app-footer .app-footer-links { display:inline-flex; flex-wrap:wrap; gap:.25rem; }
