body .enosi-cup,
body .enosi-cup * { box-sizing: border-box; }

body .enosi-cup {
    --enosi-cup-winner: color-mix(in srgb, var(--enosi-ui-accent) 9%, var(--enosi-ui-surface));
    --enosi-cup-sheet-size: 32px;
    --enosi-cup-toggle-size: 28px;
    --enosi-cup-card-inset: 12px;
    width: 100%;
    min-width: 0;
    color: var(--enosi-ui-ink);
}

body .enosi-cup [hidden] { display: none !important; }

body .enosi-cup .enosi-cup__phases {
    display: flex;
    flex-wrap: nowrap;
    width: 100%;
    max-width: 100%;
    overflow-x: auto;
    overscroll-behavior-x: contain;
    scrollbar-width: thin;
    gap: 4px;
    margin: 0 0 16px;
    padding: 5px;
    border: 0;
    border-radius: var(--enosi-ui-radius-sm);
    background: var(--enosi-ui-surface-soft);
}

body .enosi-cup a.enosi-cup__phase-link {
    display: grid;
    flex: 1 0 88px;
    align-content: center;
    gap: 3px;
    min-width: 0;
    min-height: 54px;
    margin: 0;
    padding: 9px 5px;
    border: 0;
    border-radius: var(--enosi-ui-radius-sm);
    color: var(--enosi-ui-muted);
    background: transparent;
    font-size: .85rem;
    line-height: 1.4;
    text-align: center;
    text-decoration: none;
    white-space: nowrap;
}

body .enosi-cup .enosi-cup__phase-link small { font-size: .72rem; color: inherit; }
body .enosi-cup .enosi-cup__phase-link[aria-current="true"] {
    color: var(--enosi-ui-accent-contrast);
    background: var(--enosi-ui-accent);
}
body .enosi-cup .enosi-cup__phase-link:not([aria-current="true"]):hover {
    color: var(--enosi-ui-ink);
    background: var(--enosi-ui-surface);
}

body .enosi-cup .enosi-cup__phase { margin: 0 0 28px; scroll-margin-top: 100px; }
body .enosi-cup .enosi-cup__phase:last-child { margin-bottom: 0; }
body .enosi-cup .enosi-cup__phase-heading { display: grid; gap: 4px; margin-bottom: 12px; }
body .enosi-cup .enosi-cup__phase-heading h3 { margin: 0; color: var(--enosi-ui-ink); font-size: 1.65rem; line-height: 1.25; }
body .enosi-cup .enosi-cup__phase-heading > span { color: var(--enosi-ui-muted); font-size: .82rem; }
body .enosi-cup .enosi-cup__fixtures {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: start;
    gap: 12px 22px;
}

body .enosi-cup .enosi-cup-card { position: relative; min-width: 0; }
body .enosi-cup .enosi-cup-card > .enosi-cup-sheet-link { position: absolute; top: 6px; right: calc(var(--enosi-cup-card-inset) + var(--enosi-cup-toggle-size) + 5px); z-index: 1; }
body .enosi-cup .enosi-cup-pair__sheet-slot { width: var(--enosi-cup-sheet-size); height: var(--enosi-cup-sheet-size); }
body .enosi-cup .enosi-cup-pair {
    min-width: 0;
    margin: 0;
    padding: 0;
    border: 1px solid var(--enosi-ui-border);
    border-radius: var(--enosi-ui-radius-sm);
    color: var(--enosi-ui-ink);
    background: var(--enosi-ui-surface);
    overflow: hidden;
}
body .enosi-cup .enosi-cup-pair[open] { border-color: var(--enosi-ui-accent); }
body .enosi-cup .enosi-cup-pair > summary {
    display: block;
    margin: 0;
    padding: 0;
    color: inherit;
    background: transparent;
    list-style: none;
    cursor: pointer;
}
body .enosi-cup .enosi-cup-pair > summary::-webkit-details-marker { display: none; }
body .enosi-cup .enosi-cup-pair > summary::marker { content: ''; }
body .enosi-cup .enosi-cup-pair > summary::after { content: none; }
body .enosi-cup .enosi-cup-pair__meta {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 4px 8px;
    padding: 5px 12px 3px;
    color: var(--enosi-ui-muted);
    font-size: .72rem;
    line-height: 1.4;
}
body .enosi-cup .enosi-cup-pair__number { margin-right: auto; }
body .enosi-cup .enosi-cup-pair__date { overflow-wrap: anywhere; }
body .enosi-cup .enosi-cup-pair__actions { display: inline-flex; align-items: center; gap: 4px; margin-left: auto; }
body .enosi-cup .enosi-cup-pair__toggle { position: relative; display: block; width: 28px; height: 32px; color: var(--enosi-ui-accent); }
body .enosi-cup .enosi-cup-pair__toggle::before,
body .enosi-cup .enosi-cup-pair__toggle::after { content: ''; position: absolute; top: 15px; left: 8px; width: 12px; height: 1px; background: currentColor; }
body .enosi-cup .enosi-cup-pair__toggle::after { transform: rotate(90deg); }
body .enosi-cup .enosi-cup-pair[open] .enosi-cup-pair__toggle::after { display: none; }
body .enosi-cup .enosi-cup-pair__teams { display: grid; padding: 0 7px 7px; }
body .enosi-cup .enosi-cup-pair__team {
    display: grid;
    grid-template-columns: 26px minmax(0, 1fr) auto;
    align-items: center;
    gap: 9px;
    min-height: 38px;
    padding: 6px 8px;
    border-radius: 5px;
}
body .enosi-cup .enosi-cup-pair__team.is-winner { background: var(--enosi-cup-winner); }
body .enosi-cup .enosi-cup-pair__name { color: var(--enosi-ui-ink); font-size: .87rem; font-weight: 400; line-height: 1.4; white-space: normal; overflow-wrap: anywhere; }
body .enosi-cup .is-winner .enosi-cup-pair__name { font-weight: 700; }
body .enosi-cup .enosi-cup-pair__score { color: var(--enosi-ui-ink); text-align: right; font-size: 1.15rem; line-height: 1.25; font-weight: 700; font-variant-numeric: tabular-nums; white-space: nowrap; }
body .enosi-cup .enosi-cup-pair__score small { color: var(--enosi-ui-muted); font-size: .7rem; font-weight: 400; }
body .enosi-cup .enosi-cup-pair__crest { display: grid; place-items: center; width: 26px; height: 28px; padding: 2px; border-radius: 5px; background: var(--enosi-ui-surface-soft); color: var(--enosi-ui-muted); font-size: .6rem; font-weight: 600; }
body .enosi-cup .enosi-cup-pair__crest img { display: block; width: 24px; height: 26px; max-width: 100%; margin: 0; border: 0; border-radius: 0; object-fit: contain; }
body .enosi-cup .enosi-cup-pair__details { display: grid; gap: 12px; padding: 12px 14px; border-top: 1px solid var(--enosi-ui-border); background: var(--enosi-ui-surface-soft); }
body .enosi-cup .enosi-cup-leg { margin: 0; padding: 0; min-width: 0; }
body .enosi-cup .enosi-cup-leg + .enosi-cup-leg { padding-top: 12px; border-top: 1px solid var(--enosi-ui-border); }
body .enosi-cup .enosi-cup-leg__header { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; color: var(--enosi-ui-muted); font-size: .75rem; }
body .enosi-cup .enosi-cup-leg__header > strong { margin-left: auto; color: var(--enosi-ui-ink); font-size: .95rem; }
body .enosi-cup .enosi-cup-leg__teams { margin: 5px 0; color: var(--enosi-ui-ink); font-size: .82rem; line-height: 1.5; overflow-wrap: anywhere; }
body .enosi-cup .enosi-cup-leg__meta { margin: 0; color: var(--enosi-ui-muted); font-size: .75rem; line-height: 1.5; overflow-wrap: anywhere; }
body .enosi-cup a.enosi-cup-sheet-link { display: inline-flex; flex: 0 0 32px; align-items: center; justify-content: center; width: 32px; height: 32px; margin: 0; padding: 5px; border: 1px solid var(--enosi-ui-border); border-radius: 50%; color: var(--enosi-ui-accent); background: var(--enosi-ui-surface); text-decoration: none; }
body .enosi-cup a.enosi-cup-sheet-link:hover { border-color: var(--enosi-ui-accent); }
body .enosi-cup .enosi-cup-sheet-link svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
body .enosi-cup :is(a, summary):focus-visible { outline: 2px solid var(--enosi-ui-accent); outline-offset: -2px; }

body .enosi-bridge--cup-competition {
    width: min(1180px, calc(100vw - 48px));
    margin-block: 16px 32px;
}
body .enosi-bridge--cup-competition .enosi-bridge-competition__back-nav { margin: 0 0 16px; }
body .enosi-bridge--cup-competition .enosi-bridge-competition__hero { margin-bottom: 16px; }
body .enosi-bridge--cup-competition .enosi-bridge-competition__panel { padding-top: 16px !important; }
body .enosi-bridge--cup-competition .enosi-bridge-competition__hero h2 { font-size: clamp(2.5rem, 4vw, 3.75rem); line-height: 1.1; }

@media (max-width: 650px) {
    body .enosi-cup { --enosi-cup-card-inset: 10px; }
    body .enosi-bridge--cup-competition { width: calc(100vw - 32px); }
    body .enosi-cup .enosi-cup__fixtures { grid-template-columns: minmax(0, 1fr); gap: 12px; }
    body .enosi-cup .enosi-cup__phase-link { font-size: .8rem; }
    body .enosi-cup .enosi-cup-pair__meta { padding-inline: 10px; }
    body .enosi-cup .enosi-cup-pair__name { font-size: .88rem; }
}
@media (pointer: coarse) {
    body .enosi-cup { --enosi-cup-sheet-size: 44px; --enosi-cup-toggle-size: 44px; }
    body .enosi-cup a.enosi-cup-sheet-link { width: 44px; height: 44px; flex-basis: 44px; }
    body .enosi-cup .enosi-cup-pair__toggle { width: 44px; height: 44px; }
    body .enosi-cup .enosi-cup-pair__toggle::before,
    body .enosi-cup .enosi-cup-pair__toggle::after { top: 21px; left: 16px; }
}

@media print {
    body .enosi-cup .enosi-cup__phases,
    body .enosi-cup .enosi-cup-sheet-link,
    body .enosi-cup .enosi-cup-pair__actions { display: none; }
    body .enosi-cup .enosi-cup__phase[hidden] { display: block !important; }
    body .enosi-cup .enosi-cup-pair { break-inside: avoid; }
}
