:root {
    --bg: #ffffff;
    --surface: #f7f7f7;
    --surface-2: #eeeeee;
    --surface-3: #e2e2e2;
    --text: #1a1a1a;
    --text-muted: #666666;
    --text-light: #999999;
    --accent: #ff6600;
    --accent-hover: #e55b00;
    --green: #22aa22;
    --yellow: #eebb00;
    --red: #cc2222;
    --border: #dddddd;
    --header-dark: #2a2a2a;
    --header-text: #ffffff;
    --link: #0066cc;
    --radius: 3px;
}

* { box-sizing: border-box; }

body {
    margin: 0;
    font-family: "Segoe UI", Tahoma, Arial, sans-serif;
    background: var(--bg);
    color: var(--text);
    font-size: 14px;
    line-height: 1.4;
}

.container {
    width: min(900px, 98%);
    margin: 0 auto;
}

/* Header */
.site-header {
    background: var(--header-dark);
    color: var(--header-text);
    border-bottom: 3px solid var(--accent);
}

.header-inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0.6rem 0;
    flex-wrap: wrap;
}

.logo {
    font-size: 1.6rem;
    font-weight: 800;
    color: var(--accent);
    text-decoration: none;
    letter-spacing: -0.5px;
}

.logo span { color: var(--header-text); }

.header-actions {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    margin-left: auto;
}

/* Support ticket language badge (I18N stage 3). */
.support-locale-badge {
    display: inline-block;
    padding: 1px 6px;
    border-radius: 999px;
    border: 1px solid var(--border);
    background: var(--bg-alt, #f3f4f6);
    color: var(--muted, #6b7280);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.04em;
    line-height: 1.6;
    vertical-align: middle;
}

/* Global RU | EN switch (I18N stage 1). Active language = brand orange. */
.fq-lang-switch {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    font-size: 0.82rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    line-height: 1;
}

.fq-lang-btn {
    background: none;
    border: 0;
    margin: 0;
    padding: 0.15rem 0.1rem;
    font: inherit;
    color: #9aa3ad;
    cursor: pointer;
    text-transform: uppercase;
    transition: color 0.15s ease;
}

.fq-lang-btn:hover { color: #ffffff; }
.fq-lang-btn.is-active { color: var(--accent); }
.fq-lang-sep { color: #5b6570; }

.main-nav a {
    color: #cccccc;
    text-decoration: none;
    margin-left: 1.2rem;
    font-size: 0.85rem;
}

.main-nav a:hover { color: #ffffff; }

/* Sport subnav */
.sport-nav {
    background: #4a4a4a;
    padding: 0.35rem 0;
    font-size: 0.85rem;
}

.sport-nav-inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    flex-wrap: nowrap;
}

.sport-links {
    display: flex;
    gap: 1.2rem;
    align-items: center;
    flex-wrap: wrap;
}

.sport-nav a {
    color: #dddddd;
    text-decoration: none;
    font-size: 0.85rem;
}

.sport-nav a.active {
    color: var(--accent);
    font-weight: 700;
}

.sport-calendar-link { color: #dddddd; text-decoration: none; font-size: 0.85rem; white-space: nowrap; }
.sport-calendar-link:hover { color: var(--accent); }

.sports-settings-list {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.55rem 1.25rem;
}

.sport-setting-row {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    white-space: nowrap;
    cursor: pointer;
}

.sport-setting-status {
    font-weight: 700;
    color: var(--text-muted, #777);
}

.maintenance-settings-block {
    display: grid;
    gap: 1rem;
}

.maintenance-settings-heading,
.maintenance-settings-actions {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
}

.maintenance-settings-heading .settings-block-title,
.maintenance-settings-heading .admin-hint {
    margin: 0;
}

.maintenance-toggle {
    display: inline-flex;
    align-items: center;
    gap: 0.55rem;
    padding: 0.55rem 0.75rem;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: var(--bg);
    font-weight: 600;
    cursor: pointer;
}

.maintenance-toggle input { accent-color: var(--accent); }

.maintenance-settings-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.8rem 1rem;
}

.maintenance-setting-field {
    display: grid;
    gap: 0.35rem;
    color: var(--text-muted);
    font-size: 0.82rem;
}

.maintenance-setting-field input {
    width: 100%;
    padding: 0.6rem 0.7rem;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: var(--bg);
    color: var(--text);
    font: inherit;
}

.maintenance-setting-field-wide { grid-column: 1 / -1; }

.maintenance-setting-field input[readonly] {
    background: var(--surface, #f5f5f5);
    color: var(--text-muted);
}

.maintenance-settings-actions { justify-content: flex-start; }

@media (max-width: 720px) {
    .maintenance-settings-grid { grid-template-columns: 1fr; }
    .maintenance-setting-field-wide { grid-column: auto; }
}

.sport-tools {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    flex-shrink: 0;
}

.icon-btn {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    background: transparent;
    border: none;
    color: #e8e8e8;
    cursor: pointer;
    padding: 0.2rem 0.4rem;
    font-size: 0.85rem;
    border-radius: var(--radius);
}

.icon-btn:hover {
    background: rgba(255,255,255,0.12);
    color: #fff;
}

.site-search {
    display: flex;
    align-items: center;
    position: relative;
}

.search-input {
    width: 0;
    padding: 0.25rem 0;
    border: none;
    border-bottom: 1px solid rgba(255,255,255,0.4);
    background: transparent;
    color: #fff;
    font-size: 0.85rem;
    outline: none;
    transition: width 0.25s ease, padding 0.25s ease;
    margin-left: 0.3rem;
}

.search-input::placeholder {
    color: rgba(255,255,255,0.55);
}

.search-input.expanded {
    width: 170px;
    padding: 0.25rem 0.4rem;
}

.timezone-control {
    position: relative;
}

.timezone-popup {
    display: none;
    position: absolute;
    top: calc(100% + 8px);
    right: 0;
    background: #fff;
    color: var(--text);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    box-shadow: 0 4px 12px rgba(0,0,0,0.15);
    padding: 0.6rem;
    min-width: 520px;
    z-index: 1000;
}

.timezone-popup.open {
    display: block;
}

.timezone-header {
    font-weight: 700;
    margin-bottom: 0.6rem;
    font-size: 1rem;
}

.timezone-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 0.3rem;
}

.timezone-item {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.35rem 0.45rem;
    border-radius: var(--radius);
    cursor: pointer;
    font-size: 0.85rem;
    transition: background 0.15s;
}

.timezone-item:hover,
.timezone-item.active {
    background: var(--green);
    color: #fff;
}

.timezone-item .time-preview {
    font-weight: 700;
    min-width: 42px;
    text-align: center;
}

.timezone-item .utc-label {
    color: var(--text-muted);
    font-size: 0.8rem;
}

.timezone-item:hover .utc-label,
.timezone-item.active .utc-label {
    color: rgba(255,255,255,0.85);
}

/* Page title */
.page-title {
    font-size: 1.2rem;
    font-weight: 600;
    margin: 1rem 0 0.8rem;
    color: var(--text);
}

/* Matches control panel */
.matches-control-panel {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: nowrap;
    gap: 0.5rem;
    margin-bottom: 0.85rem;
}

.matches-panel-left,
.matches-panel-right {
    display: flex;
    align-items: center;
    flex-wrap: nowrap;
    position: relative;
}

.matches-panel-left { gap: 0.3rem; }
.matches-panel-right { gap: 0.3rem; }


.matches-control-panel .statistics-sort-options > button:first-child {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 27px;
    height: 27px;
    padding: 0;
    line-height: 1;
}

.matches-control-panel .statistics-sort-options > button:first-child svg {
    display: block;
    margin: 0;
    padding: 0;
}

.matches-control-panel .statistics-sort-options > button:first-child[aria-expanded="true"] {
    color: #fff;
    background: var(--accent);
}


.matches-control-panel .date-nav {
    flex-shrink: 0;
    padding: 0 0.25rem;
    gap: 0.3rem;
    border: none;
    background: transparent;
    border-radius: 0;
    box-shadow: none;
}

.matches-control-panel .date-nav .date-nav-current {
    position: relative;
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    width: 50px;
    height: 33px;
    min-width: 50px;
    min-height: 33px;
    padding: 0;
    line-height: 1;
    background: #fff;
    border: 1px solid var(--border);
    border-radius: 4px;
}

.matches-control-panel .date-nav .date-nav-current .date-nav-day {
    position: absolute;
    top: 0;
    left: 50%;
    transform: translate(-50%, -50%);
    padding: 0 0.2rem;
    font-size: 0.55rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--text-muted);
    background: #fff;
    white-space: nowrap;
}

.matches-control-panel .date-nav .date-nav-current .date-nav-number {
    font-size: 0.9rem;
    font-weight: 700;
    color: var(--text);
    line-height: 1;
}

.matches-control-panel .date-nav .date-nav-chevron {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    width: 31px;
    height: 33px;
    min-width: 31px;
    min-height: 33px;
    padding: 0;
    background: #fff;
    border: 1px solid var(--border);
    border-radius: 4px;
    color: var(--text-muted);
    cursor: pointer;
    transition: color 0.12s ease, background-color 0.12s ease, border-color 0.12s ease;
}

.matches-control-panel .date-nav .date-nav-chevron:hover {
    color: var(--accent);
    background: #fff8f3;
    border-color: rgba(255, 102, 0, 0.35);
}

.matches-control-panel .date-nav .date-nav-chevron:active {
    color: #fff;
    background: var(--accent);
    border-color: var(--accent);
}

.matches-control-panel .date-nav .date-nav-chevron svg {
    display: block;
}

.hidden-date-input {
    position: absolute;
    width: 0;
    height: 0;
    opacity: 0;
    pointer-events: none;
}

.settings-popup {
    position: absolute;
    top: calc(100% + 6px);
    left: 0;
    z-index: 100;
    min-width: 260px;
    padding: 0.5rem 0.7rem;
    background: #fff;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.1);
    display: none;
}

.settings-popup.open {
    display: block;
}

.settings-popup-section {
    padding: 0.55rem 0;
    border-bottom: 1px solid var(--border);
}

.settings-popup-section:last-child {
    border-bottom: none;
}

.settings-section-title {
    font-size: 0.75rem;
    font-weight: 700;
    color: var(--text);
    margin-bottom: 0.4rem;
    text-transform: none;
}

.settings-toggle-label {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.8rem;
    font-size: 0.82rem;
    color: var(--text);
    cursor: pointer;
    user-select: none;
}

.settings-toggle-label input {
    position: absolute;
    opacity: 0;
    width: 0;
    height: 0;
}

.toggle-switch {
    position: relative;
    width: 36px;
    height: 20px;
    flex-shrink: 0;
    background: #d0d5dd;
    border-radius: 999px;
    transition: background-color 0.15s ease;
}

.toggle-switch::after {
    content: '';
    position: absolute;
    top: 2px;
    left: 2px;
    width: 16px;
    height: 16px;
    background: #fff;
    border-radius: 50%;
    transition: transform 0.15s ease;
}

.settings-toggle-label input:checked + .toggle-switch {
    background: #e06c00;
}

.settings-toggle-label input:checked + .toggle-switch::after {
    transform: translateX(16px);
}

.settings-radio-label {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    font-size: 0.8rem;
    color: var(--text);
    cursor: pointer;
    margin-bottom: 0.35rem;
}

.settings-radio-label input {
    accent-color: #e06c00;
}

.settings-popup-hint {
    margin-top: 0.5rem;
    padding: 0.45rem 0.55rem;
    font-size: 0.72rem;
    color: var(--text-muted);
    background: var(--surface-2);
    border-radius: calc(var(--radius) - 2px);
    line-height: 1.35;
}

@media (max-width: 820px) {
    .matches-control-panel {
        flex-wrap: wrap;
    }
    .matches-panel-right {
        width: 100%;
        justify-content: flex-start;
    }
    .matches-control-panel .date-nav {
        flex: 1 1 auto;
    }
}

/* Matches */
.matches-section {
    margin-bottom: 2rem;
}

.league-header {
    background: var(--surface-2);
    padding: 0.5rem 0.7rem;
    font-weight: 700;
    font-size: 0.9rem;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    border-top: 1px solid var(--border);
    border-bottom: 1px solid var(--border);
}

.league-flag {
    width: 20px;
    height: 14px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
    flex-shrink: 0;
}

.league-flag img {
    width: 20px;
    height: 14px;
    object-fit: cover;
    border: 1px solid rgba(0, 0, 0, 0.15);
}

.match-row {
    display: grid;
    grid-template-columns: 112px minmax(150px, 1fr) 55px minmax(150px, 1fr) 126px 52px;
    align-items: center;
    min-height: 38px;
    border-bottom: 1px solid #e5e5e5;
    background: var(--bg);
}

.match-row:hover { background: #fafafa; }

.match-date {
    font-size: 0.8rem;
    color: #888;
    padding-left: 0.5rem;
}

.match-date.live-state {
    color: var(--red);
    font-weight: 700;
}

.match-latest-odds {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 3px;
    padding: 3px 4px;
}

.match-odd {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-width: 36px;
    font-size: 0.78rem;
    line-height: 1.1;
    font-variant-numeric: tabular-nums;
    position: relative;
}

.match-odd-label {
    color: var(--text-muted);
    font-size: 0.65rem;
    font-weight: 700;
}

.match-odd.has-history {
    cursor: help;
    border-radius: 3px;
}

.match-odd.has-history:hover,
.match-odd.has-history:focus,
.match-odd.has-history:focus-visible {
    background: var(--surface-2);
    outline: none;
}

.odds-history-tooltip {
    display: none;
    position: fixed;
    z-index: 1000;
    width: max-content;
    min-width: 76px;
    padding: 5px 7px;
    border: 1px solid var(--border);
    border-radius: 4px;
    background: var(--bg);
    box-shadow: 0 2px 7px rgba(0, 0, 0, 0.12);
    color: var(--text);
    font-size: 0.72rem;
    pointer-events: none;
}

.match-odd.has-history:hover .odds-history-tooltip,
.match-odd.has-history:focus .odds-history-tooltip,
.match-odd.has-history:focus-visible .odds-history-tooltip {
    display: block;
}

.odds-history-row {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    line-height: 1.35;
    white-space: nowrap;
}

.odds-history-row strong { font-weight: 600; }

.match-row-link {
    color: var(--link);
    font-size: 1.35rem;
    line-height: 1;
    text-align: center;
    text-decoration: none;
}

.team-name.disabled { color: var(--text); }

.match-access-disabled {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 2px;
    min-width: 0;
    cursor: not-allowed;
}

.completion-percent {
    color: var(--text-muted);
    font-size: 0.62rem;
    font-variant-numeric: tabular-nums;
}

.match-row-link.disabled {
    color: #b8b8b8;
}

.availability-tooltip {
    display: none;
    position: fixed;
    z-index: 1000;
    width: max-content;
    padding: 5px 7px;
    border: 1px solid var(--border);
    border-radius: 4px;
    background: var(--bg);
    box-shadow: 0 2px 7px rgba(0, 0, 0, 0.12);
    color: var(--text);
    font-size: 0.72rem;
    pointer-events: none;
}

.match-access-disabled:hover .availability-tooltip,
.match-access-disabled:focus .availability-tooltip,
.match-access-disabled:focus-visible .availability-tooltip {
    display: block;
}

.match-access-disabled:focus-visible {
    outline: 1px solid var(--link);
    outline-offset: 1px;
}

.home-team {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 5px;
    padding-right: 0.5rem;
    white-space: nowrap;
}

.away-team {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 5px;
    padding-left: 0.5rem;
    white-space: nowrap;
}

.team-text {
    position: relative;
    display: inline-flex;
    align-items: center;
}

.penalty-label {
    position: absolute;
    bottom: 100%;
    font-size: 9px;
    line-height: 10px;
    color: #999;
    font-weight: normal;
    white-space: nowrap;
}

.home-team .penalty-label {
    right: 0;
}

.away-team .penalty-label {
    left: 0;
}

.team-logo-small {
    width: 18px;
    height: 18px;
    object-fit: contain;
    flex-shrink: 0;
}

.team-logo-placeholder {
    width: 18px;
    height: 18px;
    background: #ddd;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 10px;
    color: #888;
    flex-shrink: 0;
}

.team-name {
    color: var(--link);
    text-decoration: none;
    font-size: 0.85rem;
    font-weight: 500;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.team-name:hover { text-decoration: underline; }

.score {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 2px;
}

.score span {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 27px;
    height: 22px;
    background: #36a852;
    color: #fff;
    font-weight: bold;
    font-size: 0.8rem;
    line-height: 1;
    padding: 0;
    margin: 0;
    vertical-align: middle;
}

/* Forecast / action cell */
.forecast-cell {
    text-align: right;
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 0.5rem;
}

.forecast-pill {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.35rem 0.6rem;
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    font-size: 0.8rem;
    color: var(--text-muted);
}

.forecast-pill.green { border-color: var(--green); color: var(--green); background: #f0fff0; }
.forecast-pill.yellow { border-color: var(--yellow); color: #8a6d00; background: #fffbe6; }
.forecast-pill.red { border-color: var(--red); color: var(--red); background: #fff0f0; }

.forecast-value {
    font-weight: 700;
    color: var(--text);
}

.card-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    background: var(--accent);
    color: #ffffff;
    text-decoration: none;
    border-radius: var(--radius);
    font-size: 0.75rem;
    font-weight: 700;
}

.card-btn:hover { background: var(--accent-hover); }

/* Dots */
.dot {
    display: inline-block;
    width: 8px;
    height: 8px;
    border-radius: 50%;
}

.dot.green { background: var(--green); }
.dot.yellow { background: var(--yellow); }
.dot.red { background: var(--red); }

/* Buttons */
.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    box-sizing: border-box;
    min-height: 36px;
    padding: 0 14px;
    background: var(--accent);
    color: #ffffff;
    text-decoration: none;
    border: 1px solid transparent;
    border-radius: 6px;
    font-family: inherit;
    font-size: 13px;
    font-weight: 600;
    line-height: 1;
    white-space: nowrap;
    cursor: pointer;
    transition: background-color .15s ease, border-color .15s ease, color .15s ease, opacity .15s ease;
}

.btn:not(:disabled):hover { background: var(--accent-hover); }

.btn:focus-visible {
    outline: 2px solid #ff9a4d;
    outline-offset: 2px;
}

.btn:disabled,
.btn[disabled] {
    opacity: .55;
    cursor: not-allowed;
}

/* Footer */
.site-footer {
    background: var(--surface);
    border-top: 1px solid var(--border);
    padding: 1rem 0;
    color: var(--text-muted);
    font-size: 0.8rem;
    text-align: center;
    margin-top: 2rem;
}

/* Admin forms */
.admin-form {
    background: var(--bg);
    padding: 1rem 0;
}

.form-group {
    margin-bottom: 0.8rem;
}

.form-group label {
    display: block;
    margin-bottom: 0.25rem;
    color: var(--text-muted);
    font-size: 0.85rem;
}

.form-group input,
.form-group select,
.form-group textarea {
    width: 100%;
    padding: 0.5rem 0.6rem;
    background: var(--bg);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    color: var(--text);
    font-size: 0.9rem;
}

.form-row {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1rem;
}

/* Match detail / audit */
.audit-section {
    background: var(--bg);
    border: 1px solid var(--border);
    padding: 1rem;
    margin-bottom: 1rem;
}

.audit-section h2 {
    margin-top: 0;
    font-size: 1.1rem;
    border-bottom: 1px solid var(--border);
    padding-bottom: 0.5rem;
}

.prob-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(130px, 1fr));
    gap: 0.5rem;
}

.prob-item {
    background: var(--surface);
    padding: 0.5rem;
    text-align: center;
    border: 1px solid var(--border);
}

.prob-item .label {
    font-size: 0.75rem;
    color: var(--text-muted);
}

.prob-item .value {
    font-size: 1.1rem;
    font-weight: 700;
}

/* Evaluation table */
.eval-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.9rem;
}

.eval-table th,
.eval-table td {
    padding: 0.5rem 0.6rem;
    border-bottom: 1px solid var(--border);
    text-align: left;
}

.eval-table th {
    background: var(--surface-2);
    color: var(--text-muted);
    font-weight: 600;
    font-size: 0.75rem;
    text-transform: uppercase;
}

.eval-table tr.green td:first-child { color: var(--green); font-weight: 700; }
.eval-table tr.yellow td:first-child { color: #8a6d00; font-weight: 700; }
.eval-table tr.red td:first-child { color: var(--red); font-weight: 700; }

/* Mobile */
@media (max-width: 640px) {
    .header-inner {
        flex-direction: column;
        gap: 0.5rem;
        text-align: center;
    }

    .header-actions {
        margin-left: 0;
        justify-content: center;
    }

    .main-nav { display: flex; gap: 0.75rem; flex-wrap: wrap; justify-content: center; }
    .main-nav a { margin: 0; }

    .sport-nav .container { justify-content: center; }

    .matches-control-panel {
        flex-wrap: wrap;
        gap: 8px;
    }
    .matches-panel-left,
    .matches-panel-right {
        width: 100%;
    }
    .matches-control-panel .statistics-sort-options > button:first-child {
        width: 25px;
        height: 25px;
        padding: 0;
    }
    .matches-control-panel .date-nav {
        flex: 1 1 auto;
    }

    .match-row {
        grid-template-columns: 58px minmax(90px, 1fr) 48px minmax(90px, 1fr) 108px 46px;
        padding: 0.5rem 0.4rem;
        font-size: 0.85rem;
    }

    .match-latest-odds { gap: 1px; padding-inline: 2px; }
    .match-odd { min-width: 32px; font-size: 0.72rem; }

    .forecast-cell { flex-direction: column; gap: 0.3rem; align-items: flex-end; }
    .forecast-pill { font-size: 0.75rem; }

    .form-row { grid-template-columns: 1fr; }
    .btn { width: 100%; text-align: center; }
}

@media (max-width: 420px) {
    .match-row {
        grid-template-columns: 52px minmax(72px, 1fr) 44px minmax(72px, 1fr) 96px 42px;
        font-size: 0.8rem;
    }
}

/* Match card header */
.match-card-header {
    background: var(--bg);
    border: 1px solid var(--border);
    border-radius: 16px;
    padding: 1.25rem;
    margin: 1rem 0;
    box-shadow: 0 2px 8px rgba(0,0,0,0.06);
}

.match-card-meta {
    text-align: center;
    color: var(--text-muted);
    font-size: 0.9rem;
    margin-bottom: 1rem;
}

.match-card-teams {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: 1rem;
}

.team-block {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.team-block.home {
    justify-content: flex-start;
    flex-direction: row;
}

.team-block.away {
    justify-content: flex-end;
    flex-direction: row;
    text-align: right;
}

.team-logo {
    width: 56px;
    height: 56px;
    background: var(--surface-2);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.7rem;
    color: var(--text-light);
    flex-shrink: 0;
}

.team-logo-img {
    width: 80px;
    height: 80px;
    object-fit: contain;
    flex-shrink: 0;
    margin-bottom: 0.5rem;
}

.team-name-lg {
    font-size: 1.3rem;
    font-weight: 700;
}

.team-city {
    color: var(--text-muted);
    font-size: 0.85rem;
}

.team-side {
    font-size: 0.7rem;
    font-weight: 700;
    margin-top: 0.2rem;
}

.team-block.home .team-side { color: var(--green); }
.team-block.away .team-side { color: var(--red); }

.odds-block {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.6rem;
}

.odds-row {
    display: flex;
    border: 1px solid var(--border);
    border-radius: 8px;
    overflow: hidden;
}

.odd-box {
    padding: 0.6rem 0.9rem;
    text-align: center;
    min-width: 80px;
    border-right: 1px solid var(--border);
    background: var(--surface);
}

.odd-box:last-child { border-right: none; }

.odd-label {
    font-size: 0.7rem;
    color: var(--text-muted);
    margin-bottom: 0.2rem;
}

.odd-value {
    font-size: 1.2rem;
    font-weight: 700;
}

.odd-home { color: var(--green); }
.odd-draw { color: var(--yellow); }
.odd-away { color: var(--red); }

.bet-of-day {
    font-size: 0.8rem;
    color: var(--accent);
    font-weight: 600;
}

/* Match card v2 */
.match-card-header.v2 {
    position: relative;
    overflow: hidden;
    border: 2px solid var(--border);
    border-radius: 24px;
    padding: 1.5rem;
    margin: 4px 0;
    background: #ffffff;
}

.card-side {
    position: absolute;
    top: 0;
    bottom: 0;
    width: 90px;
    opacity: 0.25;
    pointer-events: none;
}

.card-side.left {
    left: 0;
    background: repeating-linear-gradient(
        -55deg,
        var(--green),
        var(--green) 14px,
        #ffffff 14px,
        #ffffff 28px
    );
}

.card-side.right {
    right: 0;
    background: repeating-linear-gradient(
        55deg,
        var(--red),
        var(--red) 14px,
        #ffffff 14px,
        #ffffff 28px
    );
}

.match-card-header.v2 .match-card-meta {
    position: relative;
    z-index: 1;
    font-size: 0.85rem;
    color: var(--text-muted);
    text-align: center;
}

.match-card-date {
    color: var(--text);
    font-weight: 500;
}

.match-card-competition {
    margin-top: 0.25rem;
    color: var(--text-muted);
}

.match-status-badge {
    position: absolute;
    top: 1rem;
    right: 6.6rem;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    min-height: 26px;
    padding: 0.25rem 0.65rem;
    border: 1px solid #c8cdd3;
    border-radius: 999px;
    background: rgb(255 255 255 / 92%);
    color: #6b7280;
    font-size: 0.72rem;
    font-weight: 600;
    line-height: 1;
    white-space: nowrap;
}

.match-status-badge--live {
    border-color: #34a853;
    color: #21863b;
    font-weight: 700;
}

.match-status-badge--live::before {
    content: '';
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #2aaa4b;
    animation: live-status-pulse 1.8s ease-in-out infinite;
}

.match-status-badge--finished {
    border-color: #aeb4bb;
    color: #4b5563;
}

.match-status-badge--cancelled {
    border-color: #d46b6b;
    background: rgb(255 248 248 / 94%);
    color: #b33a3a;
}

@keyframes live-status-pulse {
    0%, 100% { opacity: 0.45; transform: scale(0.9); }
    50% { opacity: 1; transform: scale(1); }
}

@media (prefers-reduced-motion: reduce) {
    .match-status-badge--live::before { animation: none; }
}

.match-card-header.v2 .match-card-teams {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: 1.5rem;
    margin-top: 1rem;
}

.match-card-header.v2 .team-block {
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    gap: 0.3rem;
}

.match-card-header.v2 .team-block.away {
    flex-direction: column;
    text-align: center;
}

.match-card-header.v2 .team-logo-img {
    width: 90px;
    height: 90px;
    object-fit: contain;
    margin-bottom: 0.3rem;
}

.match-center {
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.5rem;
}

.match-scoreboard {
    position: relative;
    display: grid;
    place-items: center;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 56px;
}

.score-main,
.score-detail-cells {
    display: flex;
    align-items: center;
    gap: 0.3rem;
}

.score-main {
    position: relative;
    gap: 0.15rem;
}

.score-cell {
    display: grid;
    place-items: center;
    flex: 0 0 auto;
    border: 1px solid var(--border);
    border-radius: 7px;
    background: #ffffff;
    color: var(--text);
    font-weight: 700;
}

.score-cell-main {
    width: 56px;
    height: 56px;
    font-size: 2.3rem;
}

.score-details {
    position: absolute;
    left: calc(50% + 66px);
    bottom: 0;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.25rem;
}

.score-detail-row {
    display: grid;
    grid-template-columns: max-content auto;
    align-items: center;
    gap: 0.35rem;
}

.score-main[data-tooltip]::after {
    content: attr(data-tooltip);
    position: absolute;
    bottom: calc(100% + 9px);
    left: 50%;
    z-index: 30;
    transform: translate(-50%, 3px);
    width: max-content;
    padding: 0.45rem 0.65rem;
    border: 1px solid var(--border);
    border-radius: 7px;
    background: #ffffff;
    box-shadow: 0 5px 14px rgb(0 0 0 / 14%);
    color: var(--text);
    font-size: 0.7rem;
    font-weight: 500;
    line-height: 1.45;
    text-align: left;
    white-space: pre-line;
    pointer-events: none;
    opacity: 0;
    visibility: hidden;
    transition: opacity 120ms ease, transform 120ms ease;
}

.score-main[data-tooltip]:hover::after,
.score-main[data-tooltip]:focus-visible::after {
    opacity: 1;
    visibility: visible;
    transform: translate(-50%, 0);
}

.score-main:focus-visible {
    outline: 2px solid var(--accent);
    outline-offset: 4px;
    border-radius: 8px;
}

.score-detail-label {
    color: var(--text-muted);
    font-size: 0.65rem;
    line-height: 1;
    text-align: right;
    white-space: nowrap;
}

.score-cell-small {
    width: 23px;
    height: 23px;
    border-radius: 5px;
    font-size: 0.72rem;
}

.odds-row-v2 {
    display: flex;
    border: 1px solid var(--border);
    border-radius: 12px;
    overflow: hidden;
    background: #ffffff;
}

.odds-row-v2 .odd-box {
    padding: 0.7rem 1.1rem;
    min-width: 90px;
    border-right: 1px solid var(--border);
    background: #ffffff;
}

.odds-row-v2 .odd-box:last-child { border-right: none; }

.odds-row-v2 .odd-label {
    font-size: 0.75rem;
    color: var(--text-muted);
    margin-bottom: 0.3rem;
}

.odds-row-v2 .odd-value {
    font-size: 1.45rem;
    font-weight: 700;
}

.match-score-line {
    font-size: 0.85rem;
    color: var(--text-muted);
    font-weight: 500;
}

@media (max-width: 768px) {
    .match-card-header.v2 .match-card-meta {
        padding-right: 0;
        margin-top: 2.25rem;
    }

    .match-status-badge {
        right: 1rem;
    }

    .match-card-header.v2 .match-card-teams {
        grid-template-columns: 1fr;
        gap: 1rem;
    }

    .match-card-header.v2 .team-block.home,
    .match-card-header.v2 .team-block.away {
        flex-direction: column;
        text-align: center;
        justify-content: center;
    }

    .match-center {
        order: -1;
    }

    .odds-row-v2 .odd-box {
        padding: 0.6rem 0.8rem;
        min-width: 70px;
    }

    .odds-row-v2 .odd-value {
        font-size: 1.2rem;
    }
}

/* Match page content tabs */
.match-tabs-section {
    margin: 0 0 4px;
    border-radius: 12px;
    background: var(--bg);
    box-shadow: 0 2px 8px rgba(0,0,0,0.06);
}

.match-tabs-section > .match-tabs {
    display: flex;
    align-items: flex-end;
    gap: 0;
    overflow-x: auto;
    border: 1px solid var(--border);
    border-bottom: 0;
    border-radius: 12px 12px 0 0;
    background: #fff;
    margin-bottom: 0;
}

.match-tab {
    position: relative;
    min-width: 108px;
    padding: 0.78rem 1.15rem 0.72rem;
    border: 0;
    border-right: 1px solid var(--border);
    background: #fff;
    color: var(--text);
    font: inherit;
    font-size: 0.88rem;
    font-weight: 600;
    line-height: 1;
    cursor: pointer;
}

.match-tab::after {
    content: '';
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    height: 3px;
    background: transparent;
}

.match-tab:hover {
    color: var(--accent);
}

.match-tab.is-active {
    color: var(--accent);
}

.match-tab.is-active::after {
    background: var(--accent);
}

.match-tab:focus-visible {
    z-index: 1;
    outline: 2px solid rgb(255 102 0 / 35%);
    outline-offset: -3px;
}

.match-tab-content {
    min-height: 150px;
    border: 1px solid var(--border);
    border-radius: 0 0 12px 12px;
    background: #fff;
}

.match-news-content {
    padding: 0.85rem 1rem;
}

.match-news-list {
    margin: 0;
    padding: 0;
    list-style: none;
}

.match-news-item {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    padding: 0.55rem 0;
    border-bottom: 1px solid var(--border);
    font-size: 0.86rem;
    line-height: 1.25;
}

.match-news-item:last-child {
    border-bottom: 0;
}

.match-news-time {
    flex: 0 0 52px;
    color: var(--text-muted);
    font-size: 0.78rem;
    font-weight: 600;
    text-align: left;
    white-space: nowrap;
}

.match-news-title {
    flex: 1 1 auto;
    min-width: 0;
    color: var(--text);
    font-weight: 600;
    text-decoration: none;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.match-news-title:hover,
.match-news-title:focus-visible {
    color: var(--accent);
}

.match-news-source {
    flex: 0 0 auto;
    margin-left: auto;
    color: var(--text-muted);
    font-size: 0.74rem;
    white-space: nowrap;
}

.match-news-empty {
    margin: 1.2rem 0 0.5rem;
    color: var(--text-muted);
    font-size: 0.9rem;
    text-align: center;
}

.statistics-toolbar {
    padding: 1rem;
}


.statistics-range-row {
    display: grid;
    grid-template-columns: auto minmax(180px, 1fr);
    align-items: center;
    gap: 1rem;
    padding-bottom: 0.9rem;
    border-bottom: 1px solid var(--border);
}

.statistics-range-label {
    min-width: 145px;
    color: var(--text);
    font-size: 0.88rem;
    font-weight: 600;
    white-space: nowrap;
}

.statistics-range-label output { color: var(--accent); }

.statistics-range {
    width: 100%;
    accent-color: var(--accent);
    cursor: pointer;
}

.statistics-control-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.8rem 1.25rem;
    padding-top: 0.9rem;
    flex-wrap: wrap;
}

.statistics-context-row {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.8rem;
    padding-top: 0.9rem;
}

.statistics-context { position: relative; }

.statistics-context-toggle {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    min-height: 27px;
    padding: 4.48px 7.68px;
    border: 1px solid var(--border);
    border-radius: 4px;
    background: #fff;
    color: var(--text);
    font: inherit;
    font-size: 10.88px;
    line-height: 15.232px;
    font-weight: 400;
    cursor: pointer;
    white-space: nowrap;
}

.statistics-context-toggle:hover { border-color: var(--accent); color: var(--accent); }
.statistics-context-toggle[aria-expanded="true"] { border-color: var(--accent); color: var(--accent); }
.statistics-context-toggle.is-selected { border-color: var(--accent); background: #fff3eb; color: var(--accent); }
.statistics-context-toggle.is-selected .statistics-context-prefix,
.statistics-context-toggle.is-selected .statistics-context-caret { color: var(--accent); }
.statistics-context-toggle:focus-visible { outline: 2px solid rgb(255 102 0 / 35%); outline-offset: -2px; }
.statistics-context-prefix { color: var(--text-muted); font-weight: 400; }
.statistics-context-caret { color: var(--text-muted); font-size: 8px; line-height: 1; }

.statistics-context-menu {
    position: absolute;
    top: calc(100% + 6px);
    left: 0;
    z-index: 20;
    min-width: 200px;
    max-height: 300px;
    overflow-y: auto;
    padding: 2px;
    border: 1px solid var(--border);
    border-radius: 6px;
    background: #fff;
    box-shadow: 0 4px 12px rgb(0 0 0 / 12%);
}

.statistics-context-option {
    display: block;
    width: 100%;
    padding: 4.48px 7.68px;
    border: 0;
    border-radius: 4px;
    background: transparent;
    color: var(--text);
    font: inherit;
    font-size: 10.88px;
    line-height: 15.232px;
    text-align: left;
    white-space: nowrap;
    cursor: pointer;
}

.statistics-context-option:hover,
.statistics-context-option:focus-visible { background: #fff3eb; color: var(--accent); }
.statistics-context-option.is-active { background: var(--accent); color: #fff; }
.statistics-context-option:disabled { background: transparent; color: #c4c9d0; cursor: not-allowed; }
.statistics-context-note { display: block; padding: 0.38rem 0.55rem 0.2rem; color: var(--text-muted); font-size: 0.68rem; line-height: 1.35; white-space: normal; }

.statistics-choice-group {
    display: inline-flex;
    align-items: center;
    border: 1px solid var(--border);
    border-radius: 8px;
    background: #fff;
}

.statistics-choice {
    min-height: 34px;
    padding: 0.48rem 0.8rem;
    border: 0;
    border-right: 1px solid var(--border);
    background: transparent;
    color: var(--text-muted);
    font: inherit;
    font-size: 0.8rem;
    font-weight: 600;
    cursor: pointer;
    white-space: nowrap;
}

.statistics-choice-group > .statistics-choice:first-child { border-radius: 7px 0 0 7px; }
.statistics-choice-group > .statistics-choice:last-child,
.statistics-more:last-child .statistics-choice { border-right: 0; border-radius: 0 7px 7px 0; }

.statistics-choice:hover,
.statistics-choice:focus-visible { color: var(--accent); }

.statistics-choice:focus-visible { outline: 2px solid rgb(255 102 0 / 35%); outline-offset: -2px; }

.statistics-choice.is-active {
    background: var(--accent);
    color: #fff;
}

/* MATCH-STATS-UI-01: match-statistics top controls reuse the approved H2H
   passability compact standard (.statistics-sort-options): 27px height,
   0.68rem type, 4px radius, neutral inactive, accent+white active. */
.statistics-control-row .statistics-choice-group,
.fq-segmented-control {
    display: inline-flex;
    align-items: center;
    gap: 2px;
    padding: 2px;
    border: 1px solid var(--border);
    border-radius: 6px;
    background: #fff;
}

.statistics-control-row .statistics-choice,
.fq-segmented-choice {
    min-height: 27px;
    padding: 0.28rem 0.48rem;
    border: 0;
    border-radius: 4px;
    color: #555;
    background: transparent;
    font-family: inherit;
    font-size: 0.68rem;
    font-weight: 600;
    line-height: 1.4;
}

.statistics-control-row .statistics-choice-group > .statistics-choice,
.statistics-control-row .statistics-choice-group > .statistics-more .statistics-choice {
    border-right: 0;
    border-radius: 4px;
}

.statistics-control-row .statistics-choice.is-active,
.fq-segmented-choice.is-active {
    color: #fff;
    background: var(--accent);
}

.fq-segmented-choice:hover:not(:disabled),
.fq-segmented-choice:focus-visible { color: var(--accent); }
.fq-segmented-choice.is-active:hover,
.fq-segmented-choice.is-active:focus-visible { color: #fff; }
.fq-segmented-choice:disabled { color: #bbb; background: #f5f5f5; cursor: not-allowed; }

.statistics-control-row .statistics-more-toggle {
    width: 110px;
    min-width: 110px;
    max-width: 110px;
}

.statistics-more { position: relative; }
.statistics-more-toggle {
    width: 180px;
    min-width: 180px;
    max-width: 180px;
    overflow: hidden;
    text-overflow: ellipsis;
}

.statistics-more-menu {
    position: absolute;
    top: calc(100% + 6px);
    right: 0;
    z-index: 20;
    min-width: 210px;
    padding: 0.65rem 0.75rem;
    border: 1px solid var(--border);
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 4px 12px rgb(0 0 0 / 12%);
    color: var(--text-muted);
    font-size: 0.76rem;
}

.statistics-more-menu button {
    display: block;
    width: 100%;
    padding: 0.48rem 0.55rem;
    border: 0;
    border-radius: 5px;
    background: transparent;
    color: var(--text);
    font: inherit;
    text-align: left;
    cursor: pointer;
}

.statistics-more-menu button:hover,
.statistics-more-menu button:focus-visible { background: #fff3eb; color: var(--accent); }

.statistics-workspace { margin-top: 0.9rem; }

.statistics-team-filters,
.statistics-tables,
.statistics-summaries {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.8rem;
}

.statistics-team-panel,
.statistics-table-wrap,
.statistics-summary {
    min-width: 0;
    border: 1px solid var(--border);
    border-radius: 10px;
    background: #fff;
}

.statistics-team-panel { padding: 0.8rem; }
.statistics-team-panel h3,
.statistics-summary h4 { margin: 0 0 0.65rem; text-align: center; font-size: 0.92rem; }
/* TEAM-LOGOS-01: small canonical team logos in statistics panels and match/H2H rows. */
.statistics-team-panel h3,
.statistics-summary h4,
.statistics-overview h4 { display: flex; align-items: center; justify-content: center; gap: 0.42rem; }
.statistics-team-logo { width: 22px; height: 22px; flex: 0 0 22px; object-fit: contain; }
.statistics-team-logo.is-row { width: 16px; height: 16px; flex: 0 0 16px; margin-right: 0.35rem; vertical-align: middle; }
.statistics-filter-label { margin: 0.55rem 0 0.3rem; color: var(--text-muted); font-size: 0.69rem; text-transform: uppercase; }
.statistics-filter-buttons { display: flex; flex-wrap: wrap; gap: 0.3rem; }
/* MATCH-STATS-UI-02: fixed-width per-team dropdown toggles (no layout shift on selection). */
.statistics-team-panel .statistics-context { width: 210px; max-width: 100%; }
.statistics-team-panel .statistics-context-toggle { width: 100%; justify-content: space-between; }
.statistics-team-panel .statistics-context-value { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.statistics-team-panel .statistics-context-menu { min-width: 100%; max-width: 280px; }
.statistics-team-panel .statistics-context-option { overflow: hidden; text-overflow: ellipsis; }
.statistics-empty-note { color: var(--text-muted); font-size: 0.72rem; }

.statistics-tables { margin-top: 0.8rem; align-items: start; }
.statistics-table-wrap { overflow: hidden; }
.statistics-overview { padding: 0.6rem 0.55rem 0.55rem; border-bottom: 1px solid var(--border); }
.statistics-overview h4 { margin: 0 0 0.12rem; text-align: center; font-size: 0.82rem; }
.statistics-overview-metric { margin: 0 0 0.42rem; color: var(--text-muted); font-size: 0.58rem; text-align: center; }
.statistics-overview-grid { display: grid; grid-template-columns: repeat(8, minmax(0, 1fr)); gap: 0.22rem; }
.statistics-overview-item {
    min-width: 0;
    padding: 0.36rem 0.1rem;
    border: 1px solid rgb(0 0 0 / 7%);
    border-radius: 6px;
    background: #fafafa;
    text-align: center;
}
.statistics-overview-item span { display: block; min-height: 1.6em; overflow: hidden; color: var(--text-muted); font-size: 0.56rem; line-height: 1.15; text-overflow: ellipsis; white-space: nowrap; }
.statistics-overview-item span small {
    display: inline-block;
    margin-left: 0.16rem;
    padding: 0.04rem 0.12rem;
    border-radius: 3px;
    background: #eceff1;
    color: #777;
    font-size: 0.43rem;
    font-weight: 700;
    line-height: 1.1;
    vertical-align: 0.08rem;
}
.statistics-overview-item strong { display: block; margin-top: 0.18rem; color: var(--text); font-size: 0.8rem; line-height: 1; }
.statistics-overview-item strong.is-win { color: #159447; }
.statistics-overview-item strong.is-draw { color: #6d747b; }
.statistics-overview-item strong.is-loss { color: #c62d2d; }
.statistics-history-table { width: 100%; border-collapse: collapse; table-layout: fixed; font-size: 0.7rem; }
.statistics-history-table caption { padding: 0.55rem; font-weight: 700; text-align: left; }
.statistics-history-table th { padding: 0.42rem 0.35rem; background: #f6f6f6; color: var(--text-muted); font-size: 0.63rem; text-align: left; }
.statistics-history-table th:nth-child(1) { width: 22%; }
.statistics-history-table th:nth-child(2) { width: 12%; }
.statistics-history-table th:nth-child(3),
.statistics-history-table th:nth-child(5) { width: 25%; }
.statistics-history-table th:nth-child(4) { width: 10%; text-align: center; }
.statistics-history-table td { height: 34px; padding: 0.4rem 0.35rem; border-top: 1px solid rgb(0 0 0 / 6%); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.statistics-history-table .statistics-score { font-weight: 700; text-align: center; }
.statistics-history-table .statistics-score.is-xg { font-size: 11px; letter-spacing: -0.25px; white-space: nowrap; }
.statistics-team-with-card { display: inline-flex; align-items: center; gap: 5px; }
.statistics-red-card { display: inline-flex; align-items: center; justify-content: center; width: 9px; height: 13px; border-radius: 2px; background: #c93232; color: #fff; font-size: 8px; font-style: normal; font-weight: 700; line-height: 1; box-shadow: 0 0 0 1px rgb(120 20 20 / 15%); }
/* STAT-RESULT-COLOR-01: the W/D/L row highlight alpha is scaled by the user-selected
   --fq-result-intensity (0..100, default 50). 50 reproduces the historical look exactly
   (8% / 7% / 7%), 0 switches the highlight off and 100 doubles it. Only the background
   alpha changes; the W/D/L definition, row text, score, logos and data are untouched. */
.statistics-match-row.is-win { background: rgb(39 174 96 / calc(8% * var(--fq-result-intensity, 50) / 50)); }
.statistics-match-row.is-draw { background: rgb(90 100 110 / calc(7% * var(--fq-result-intensity, 50) / 50)); }
.statistics-match-row.is-loss { background: rgb(220 53 69 / calc(7% * var(--fq-result-intensity, 50) / 50)); }
.statistics-match-row.is-empty { background: transparent; }
.statistics-coach-row td { height: 25px; padding: 0.28rem 0.5rem; background: #fff8f2; color: var(--accent); font-size: 0.65rem; font-weight: 600; }
.statistics-tooltip { cursor: help; }
.statistics-no-data { padding: 1rem !important; color: var(--text-muted); text-align: center; }

.statistics-summaries { margin-top: 0.8rem; }
.statistics-summary { padding: 0.7rem; }
.statistics-lower-panel {
    margin-top: 1rem;
    padding: 0.9rem;
    border: 1px solid var(--border);
    border-radius: 10px;
    background: #fff;
}
.statistics-lower-heading { margin-bottom: 0.75rem; }
.statistics-lower-heading h3 { margin: 0; font-size: 1rem; }
.statistics-lower-heading p { margin: 0.28rem 0 0; color: var(--text-muted); font-size: 0.72rem; }
.statistics-hit-rate-control {
    display: grid;
    grid-template-columns: auto minmax(160px, 1fr) auto;
    align-items: center;
    gap: 0.8rem;
    margin-top: 0;
    padding: 0.65rem 0.8rem;
    border: 1px solid rgb(0 0 0 / 8%);
    border-radius: 8px;
    background: #fafafa;
}
.statistics-sort-control { display: flex; align-items: center; gap: 0.4rem; white-space: nowrap; font-size: 0.68rem; }
.statistics-sort-control > span { color: var(--text-muted); }
.statistics-sort-options { display: inline-flex; padding: 2px; border: 1px solid var(--border); border-radius: 6px; background: #fff; }
.statistics-sort-options button,
.statistics-sort-direction {
    min-height: 27px;
    padding: 0.28rem 0.48rem;
    border: 0;
    border-radius: 4px;
    color: #555;
    background: transparent;
    font: inherit;
    cursor: pointer;
}
.statistics-sort-options button.is-active { color: #fff; background: var(--accent); }
.statistics-sort-direction { display: inline-flex; align-items: center; justify-content: center; gap: 0.25rem; width: 104px; flex: 0 0 104px; border: 1px solid var(--border); background: #fff; }
.statistics-sort-direction > span:first-child { color: var(--accent); font-size: 0.9rem; font-weight: 700; }
.statistics-outcomes { display: grid; gap: 0.2rem; }
.statistics-outcome-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 42px auto 42px;
    align-items: center;
    gap: 0.45rem;
    padding: 0.34rem 0.4rem 0.42rem;
    border-bottom: 1px solid rgb(0 0 0 / 6%);
    font-size: 0.7rem;
}
.statistics-outcome-row:last-child { border-bottom: 0; }
.statistics-outcome-name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.statistics-outcome-count { color: var(--text-muted); white-space: nowrap; }
.statistics-outcome-row b { color: var(--accent); text-align: right; }
.statistics-outcome-row-corners { grid-template-columns: minmax(0, 1fr) 42px auto 42px; }
.statistics-outcome-odds {
    display: inline-flex;
    width: 42px;
    min-height: 20px;
    align-items: center;
    justify-content: center;
    border: 1px solid transparent;
    border-radius: 5px;
    background: #fff7f1;
    color: #d95700;
    font-weight: 700;
    line-height: 1;
    white-space: nowrap;
}
.statistics-outcome-odds.is-success { border-color: #bcdcc4; background: #f2faf4; color: #397848; }
.statistics-outcome-odds.is-fail { border-color: #efc2c2; background: #fff5f5; color: #bd3f3f; }
.statistics-outcome-odds.is-push { border-color: #b9d4ec; background: #f1f7fc; color: #2873b9; }
.statistics-outcome-odds.is-missing { border-color: #e1e3e6; background: #f7f7f8; color: #9a9da3; }
.statistics-outcome-progress {
    grid-column: 1 / -1;
    height: 2px;
    overflow: hidden;
    border-radius: 999px;
    background: #eee;
}
.statistics-outcome-progress i { display: block; height: 100%; border-radius: inherit; background: var(--accent); }
.standings-preview {
    margin-top: 0.8rem;
    overflow: hidden;
    border: 1px solid rgb(0 0 0 / 9%);
    border-radius: 10px;
    background: #fff;
}
.standings-preview-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.8rem;
    padding: 0.7rem 0.8rem;
    border-bottom: 1px solid var(--border);
    background: #fff;
}
.standings-preview-heading > div:first-child { display: flex; align-items: center; gap: 0.55rem; }
.standings-preview-heading h3 { margin: 0; font-size: 0.9rem; }
.standings-competition { padding: 0.18rem 0.38rem; border: 1px solid rgb(255 102 0 / 24%); border-radius: 5px; background: #fff3eb; color: var(--accent); font-size: 0.62rem; font-weight: 700; }
.standings-preview-controls { display: flex; align-items: center; gap: 0.5rem; }
.standings-switch { display: inline-flex; align-items: center; overflow: hidden; padding: 2px; border: 1px solid var(--border); border-radius: 6px; background: #fff; }
.standings-switch button { min-height: 27px; padding: 4.48px 7.68px; border: 0; border-radius: 4px; background: transparent; color: #555; font: inherit; font-size: 10.88px; line-height: 15.232px; font-weight: 400; cursor: pointer; white-space: nowrap; }
.standings-switch button:hover { color: var(--accent); }
.standings-switch button:focus-visible { outline: 2px solid rgb(255 102 0 / 35%); outline-offset: -2px; }
.standings-switch button.is-active { background: var(--accent); color: #fff; }
.standings-preview-table-wrap { overflow-x: auto; }
.standings-preview-table { width: 100%; min-width: 650px; border-collapse: collapse; table-layout: fixed; font-size: 0.7rem; }
.standings-preview-table th { padding: 0.42rem 0.35rem; background: #f5f5f5; color: var(--text-muted); font-size: 0.61rem; font-weight: 600; text-align: center; }
.standings-preview-table th:nth-child(1) { width: 5%; }
.standings-preview-table th:nth-child(2) { width: 34%; text-align: left; }
.standings-preview-table th:nth-child(7) { width: 10%; }
.standings-preview-table th:nth-child(9) { width: 18%; }
.standings-preview-table td { position: relative; height: 31px; padding: 0.32rem 0.35rem; border-top: 1px solid rgb(0 0 0 / 6%); text-align: center; }
.standings-preview-table td:nth-child(2) { text-align: left; }
.standings-position i { position: absolute; inset: 4px auto 4px 0; width: 3px; border-radius: 0 2px 2px 0; }
/* MATCH-STANDINGS-01: competition+season zones are config-driven; marker colour by zone key. */
.standings-preview-table tr[data-zone="promotion"] .standings-position i { background: #25a34a; }
.standings-preview-table tr[data-zone="promotion_playoff"] .standings-position i { background: #6aa84f; }
.standings-preview-table tr[data-zone="champions"] .standings-position i { background: #5277c9; }
.standings-preview-table tr[data-zone="champions_qualifying"] .standings-position i { background: #7f9dd6; }
.standings-preview-table tr[data-zone="europa"] .standings-position i { background: #e58a2b; }
.standings-preview-table tr[data-zone="conference"] .standings-position i { background: #2f9e8f; }
.standings-preview-table tr[data-zone="relegation_playoff"] .standings-position i { background: #d69e2e; }
.standings-preview-table tr[data-zone="relegation"] .standings-position i { background: #cf3b3b; }
/* Current match teams: soft semantic highlight, zone marker on the left stays intact. */
.standings-preview-table tr.is-home-team { background: rgb(34 170 34 / 7%); }
.standings-preview-table tr.is-away-team { background: rgb(204 34 34 / 7%); }
.standings-team { display: flex; min-width: 0; align-items: center; gap: 0.42rem; }
.standings-team img { width: 20px; height: 20px; flex: 0 0 20px; object-fit: contain; }
.standings-team b { overflow: hidden; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
.standings-team-role { flex: 0 0 auto; font-size: 0.53rem; font-style: normal; font-weight: 700; letter-spacing: 0.02em; text-transform: uppercase; }
.standings-team-role.is-home { color: var(--green); }
.standings-team-role.is-away { color: var(--red); }
.standings-form { display: inline-flex; gap: 0.18rem; vertical-align: middle; }
.standings-form i { width: 10px; height: 10px; border-radius: 3px; }
.standings-form i.is-w { background: #25a34a; }
.standings-form i.is-d { background: #a3a8ad; }
.standings-form i.is-l { background: #d93636; }
.standings-preview-legend { display: flex; flex-wrap: wrap; gap: 0.8rem; padding: 0.5rem 0.8rem; border-top: 1px solid rgb(0 0 0 / 6%); color: var(--text-muted); font-size: 0.61rem; }
.standings-preview-legend span { display: inline-flex; align-items: center; gap: 0.3rem; }
.standings-preview-legend i { width: 3px; height: 12px; border-radius: 2px; }
.statistics-kpis { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 0.35rem; }
.statistics-kpis > div { padding: 0.48rem 0.25rem; border-radius: 7px; background: #f7f7f7; text-align: center; }
.statistics-kpis span { display: block; min-height: 24px; color: var(--text-muted); font-size: 0.62rem; }
.statistics-kpis b { font-size: 0.88rem; }
.statistics-thresholds { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0.5rem; margin-top: 0.6rem; }
.statistics-thresholds section { padding: 0.55rem; border: 1px solid var(--border); border-radius: 7px; }
.statistics-thresholds h5 { margin: 0 0 0.4rem; font-size: 0.68rem; }
.statistics-thresholds section div { display: flex; justify-content: space-between; padding: 0.15rem 0; font-size: 0.7rem; }

.statistics-choice:disabled { color: #bbb; background: #f5f5f5; cursor: not-allowed; }

@media (max-width: 620px) {
    .statistics-range-row { grid-template-columns: 1fr; gap: 0.55rem; }
    .statistics-hit-rate-control { grid-template-columns: 1fr; gap: 0.45rem; }
    .statistics-sort-control { flex-wrap: wrap; }
    .statistics-choice-group { max-width: 100%; overflow-x: auto; }
    .statistics-team-filters,
    .statistics-tables,
    .statistics-summaries { grid-template-columns: 1fr; }
    .statistics-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .standings-preview-heading { align-items: flex-start; flex-direction: column; }
    .standings-preview-controls { flex-wrap: wrap; }
}

@media (max-width: 560px) {
    .match-tab {
        min-width: 92px;
        padding-inline: 0.85rem;
    }
}

/* Form section */
.form-section {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1fr) 72px minmax(0, 1fr);
    align-items: center;
    gap: 0;
    background: var(--bg);
    border: 1px solid var(--border);
    border-radius: 18px;
    padding: 2.5rem 1rem 1.4rem;
    margin-bottom: 4px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.06);
}

.form-block {
    min-width: 0;
}

.form-mode-title,
.form-side-title {
    position: absolute;
    top: 0.75rem;
    color: var(--text-muted);
    font-size: 0.75rem;
    font-weight: 600;
    line-height: 1;
}

.form-mode-title {
    left: 50%;
    transform: translateX(-50%);
}

.form-side-title {
    display: none;
}

.form-section[data-mode="home_away"] .form-side-title {
    display: block;
    transform: translateX(-50%);
    white-space: nowrap;
}

.form-section[data-mode="home_away"] .form-block-home .form-side-title {
    left: 25%;
}

.form-section[data-mode="home_away"] .form-block-away .form-side-title {
    left: 75%;
}

.form-results {
    display: grid;
    grid-template-columns: repeat(6, minmax(36px, 1fr));
    align-items: start;
    gap: 0.55rem;
    width: 88%;
    margin-inline: auto;
}

.form-item {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.45rem;
    min-width: 0;
}

.form-item::before,
.form-item::after {
    position: absolute;
    left: 50%;
    z-index: 20;
    pointer-events: none;
    opacity: 0;
    visibility: hidden;
    transition: opacity 120ms ease, transform 120ms ease;
}

.form-item::after {
    content: attr(data-tooltip);
    bottom: calc(100% + 9px);
    transform: translate(-50%, 3px);
    width: max-content;
    max-width: 190px;
    padding: 0.45rem 0.6rem;
    border: 1px solid var(--border);
    border-radius: 7px;
    background: var(--bg);
    box-shadow: 0 5px 14px rgb(0 0 0 / 14%);
    color: var(--text);
    font-size: 0.7rem;
    font-weight: 500;
    line-height: 1.35;
    text-align: center;
    white-space: pre-line;
}

.form-item::before {
    content: '';
    bottom: calc(100% + 4px);
    transform: translate(-50%, 3px);
    border: 5px solid transparent;
    border-top-color: var(--border);
}

.form-item:hover::before,
.form-item:hover::after,
.form-item:focus-visible::before,
.form-item:focus-visible::after {
    opacity: 1;
    visibility: visible;
    transform: translate(-50%, 0);
}

.form-item:focus-visible {
    outline: 2px solid var(--accent);
    outline-offset: 3px;
    border-radius: 5px;
}

.form-item .result {
    display: grid;
    place-items: center;
    width: 28px;
    height: 28px;
    font-size: 0.8rem;
    font-weight: 700;
    border-radius: 7px;
    color: #ffffff;
    box-shadow: inset 0 1px 0 rgb(255 255 255 / 35%), 0 2px 4px rgb(0 0 0 / 10%);
}

.form-item .result.w { background: var(--green); }
.form-item .result.d { background: var(--yellow); color: #000; }
.form-item .result.l { background: var(--red); }

.form-item .score {
    font-size: 0.84rem;
    line-height: 1;
    font-weight: 600;
    color: var(--text);
}

.form-separator {
    position: relative;
    align-self: stretch;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    border: 0;
    background: transparent;
    color: inherit;
    cursor: pointer;
}

.form-separator::before {
    content: '';
    position: absolute;
    inset: -0.65rem auto;
    width: 1px;
    background: var(--border);
}

.form-separator-icon {
    position: relative;
    display: grid;
    place-items: center;
    width: 48px;
    height: 48px;
    border: 1px solid var(--border);
    border-radius: 50%;
    background: var(--bg);
    color: var(--text-light);
}

.form-separator:hover .form-separator-icon,
.form-separator:focus-visible .form-separator-icon,
.form-separator:hover .form-separator-split,
.form-separator:focus-visible .form-separator-split {
    border-color: var(--text-light);
    box-shadow: 0 2px 8px rgb(0 0 0 / 12%);
}

.form-separator:focus-visible {
    outline: 2px solid var(--accent);
    outline-offset: 4px;
    border-radius: 999px;
}

.form-separator-icon svg {
    width: 24px;
    height: 18px;
    fill: currentColor;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.form-separator-icon polyline {
    fill: none;
}

.form-separator-split {
    position: relative;
    display: none;
    width: 56px;
    height: 38px;
    border: 1px solid var(--border);
    border-radius: 19px;
    overflow: hidden;
    background: var(--bg);
    color: var(--text-muted);
}

.form-separator-split b {
    display: grid;
    place-items: center;
    flex: 1;
    font-size: 0.72rem;
}

.form-separator-split b + b {
    border-left: 1px solid var(--border);
}

.form-section[data-mode="home_away"] .form-separator-all {
    display: none;
}

.form-section[data-mode="home_away"] .form-separator-split {
    display: flex;
}

.form-empty {
    grid-column: 1 / -1;
    align-self: center;
    color: var(--text-light);
    font-size: 0.75rem;
    text-align: center;
}

/* Tabs */
.match-tabs {
    display: flex;
    gap: 0.2rem;
    border-bottom: 1px solid var(--border);
    margin-bottom: 1rem;
    overflow-x: auto;
}

.tab-btn {
    padding: 0.7rem 1rem;
    background: transparent;
    border: none;
    border-bottom: 2px solid transparent;
    cursor: pointer;
    font-size: 0.9rem;
    color: var(--text-muted);
    white-space: nowrap;
}

.tab-btn.active {
    color: var(--accent);
    border-bottom-color: var(--accent);
    font-weight: 700;
}

.tab-content {
    display: none;
    padding: 1rem 0;
}

.tab-content.active {
    display: block;
}

.tab-content h3 {
    margin-top: 0;
    font-size: 1rem;
    color: var(--text);
    border-bottom: 1px solid var(--border);
    padding-bottom: 0.5rem;
    margin-bottom: 1rem;
}

@media (max-width: 768px) {
    .match-card-teams {
        grid-template-columns: 1fr;
        text-align: center;
    }

    .team-block.home,
    .team-block.away {
        justify-content: center;
        flex-direction: column;
        text-align: center;
    }

    .odds-block {
        order: -1;
    }

    .form-section {
        grid-template-columns: 1fr;
    }

    .form-separator {
        transform: rotate(90deg);
        margin: 0 auto;
    }

    .match-tabs {
        gap: 0;
    }

    .tab-btn {
        padding: 0.6rem 0.8rem;
        font-size: 0.85rem;
    }
}

/* Match center block */
.match-center {
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.4rem;
}

.match-score {
    font-size: 2.4rem;
    font-weight: 800;
    color: var(--text);
    letter-spacing: 2px;
}

.match-score-ht {
    font-size: 0.8rem;
    color: var(--text-muted);
}

.match-odds {
    display: flex;
    gap: 0.3rem;
    justify-content: center;
    margin-top: 0.3rem;
}

.match-odds .odd-mini {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: 6px;
    padding: 0.3rem 0.5rem;
    font-size: 0.75rem;
    min-width: 44px;
}

.match-odds .odd-mini .label {
    color: var(--text-muted);
    font-size: 0.65rem;
    display: block;
}

.match-odds .odd-mini .value {
    font-weight: 700;
    font-size: 0.85rem;
}

.match-odds .odd-mini.home { color: var(--green); }
.match-odds .odd-mini.draw { color: var(--yellow); }
.match-odds .odd-mini.away { color: var(--red); }

@media (max-width: 768px) {
    .match-score {
        font-size: 2rem;
    }
}

/* Admin login / dashboard */
.admin-card {
    max-width: 420px;
    margin: 3rem auto;
    background: var(--bg);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 2rem;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
}

.admin-title {
    font-size: 1.4rem;
    font-weight: 700;
    margin: 0 0 1.5rem;
    text-align: center;
}

.admin-form .form-group {
    margin-bottom: 1rem;
}

.admin-form label {
    display: block;
    font-weight: 600;
    margin-bottom: 0.35rem;
    font-size: 0.9rem;
}

.admin-form input {
    width: 100%;
    padding: 0.6rem 0.75rem;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    font-size: 1rem;
    font-family: inherit;
    background: var(--bg);
    color: var(--text);
}

.admin-form input:focus {
    outline: none;
    border-color: var(--accent);
    box-shadow: 0 0 0 2px rgba(255, 102, 0, 0.15);
}

.form-error {
    color: var(--red);
    font-size: 0.9rem;
    min-height: 1.3rem;
    margin-bottom: 0.75rem;
}

.btn-block {
    width: 100%;
}

.btn-primary {
    background: var(--accent);
    color: #fff;
    border-color: transparent;
}

.btn-primary:not(:disabled):hover {
    background: var(--accent-hover);
    border-color: transparent;
}

.btn-secondary {
    background: #ffffff;
    color: #374151;
    border-color: #e5e7eb;
}

.btn-secondary:not(:disabled):hover {
    background: #f9fafb;
    border-color: #d0d5dd;
    color: #111827;
}

.btn-secondary:not(:disabled):active {
    background: #f3f4f6;
}

.admin-status {
    text-align: center;
    color: var(--green);
    font-weight: 600;
    margin-bottom: 1rem;
}

.admin-hint {
    text-align: center;
    color: var(--text-muted);
    font-size: 0.9rem;
}

@media (max-width: 480px) {
    .admin-card {
        margin: 1.5rem auto;
        padding: 1.5rem;
    }
}

/* Admin dashboard layout */
.admin-body {
    background: var(--surface);
    min-height: 100vh;
    display: flex;
    flex-direction: column;
}

.admin-layout {
    display: flex;
    flex: 1;
    min-height: 0;
}

.admin-sidebar {
    width: 190px;
    min-width: 180px;
    max-width: 200px;
    background: var(--bg);
    border-right: 1px solid var(--border);
    flex-shrink: 0;
    overflow-y: auto;
}

.admin-nav {
    display: flex;
    flex-direction: column;
    padding: 0.5rem 0;
}

.admin-nav-item {
    background: none;
    border: none;
    border-left: 3px solid transparent;
    padding: 0.55rem 0.9rem;
    text-align: left;
    font-size: 0.9rem;
    color: var(--text);
    cursor: pointer;
    font-family: inherit;
    line-height: 1.2;
    transition: background 0.12s ease;
}

.admin-nav-item:hover {
    background: var(--surface);
}

.admin-nav-item.active {
    background: var(--surface);
    border-left-color: var(--accent);
    font-weight: 600;
}

.admin-nav-subitem {
    padding-left: 1.7rem;
    font-size: 0.84rem;
    color: var(--text-muted);
    border-left-color: transparent;
}

.admin-nav-subitem:hover {
    background: var(--surface);
    color: var(--text);
}

.admin-nav-subitem.active {
    background: var(--surface);
    border-left-color: var(--accent);
    color: var(--text);
    font-weight: 600;
}

.admin-main {

    flex: 1;
    padding: 1rem;
    overflow-y: auto;
    min-width: 0;
    background: var(--surface);
}

.admin-section {
    display: none;
}

.admin-section.active {
    display: block;
}

.admin-page-title {
    font-size: 1.25rem;
    font-weight: 700;
    margin: 0 0 0.5rem;
}

.admin-status {
    color: var(--green);
    font-weight: 600;
    font-size: 0.9rem;
    margin: 0;
}

.admin-hint {
    color: var(--text-muted);
    font-size: 0.9rem;
    margin: 0;
}

.admin-table-wrap {
    overflow-x: auto;
    margin-top: 0.75rem;
}

.admin-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.85rem;
    background: var(--bg);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    overflow: hidden;
}

.admin-table th,
.admin-table td {
    padding: 0.55rem 0.7rem;
    text-align: left;
    border-bottom: 1px solid var(--border);
    white-space: nowrap;
}

.admin-table th {
    background: var(--header-dark);
    color: var(--header-text);
    font-weight: 600;
    font-size: 0.8rem;
}

.admin-table tbody tr:last-child td {
    border-bottom: none;
}

.admin-table tbody tr:hover {
    background: var(--surface);
}

.admin-toolbar {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 0.75rem;
    margin: 0.75rem 0 0.5rem;
}

.rss-sources-table .rss-source-url {
    max-width: 260px;
}

.rss-url-text {
    display: inline-block;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    vertical-align: bottom;
    color: var(--text-muted);
    font-size: 0.8rem;
}

.rss-status {
    display: inline-block;
    padding: 0.15rem 0.45rem;
    border-radius: var(--radius);
    font-size: 0.75rem;
    font-weight: 600;
    white-space: nowrap;
}

.rss-status.is-active {
    background: #eaf7ed;
    color: #207534;
}

.rss-status.is-inactive {
    background: #f1f3f5;
    color: #6c757d;
}

.rss-source-actions {
    display: flex;
    flex-wrap: nowrap;
    gap: 0.4rem;
    min-width: 160px;
}

.rss-unmatched-actions {
    display: flex;
    flex-wrap: nowrap;
    gap: 0.4rem;
    min-width: 140px;
}

.btn-rss {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 28px;
    min-height: 28px;
    padding: 0 0.7rem;
    border: 1px solid transparent;
    border-radius: var(--radius);
    font: inherit;
    font-size: 0.75rem;
    font-weight: 600;
    line-height: 1;
    white-space: nowrap;
    cursor: pointer;
    transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease, box-shadow 0.15s ease;
}

.btn-rss:disabled {
    opacity: 0.55;
    cursor: not-allowed;
}

.btn-rss-primary {
    background: #e06c00;
    border-color: #e06c00;
    color: #fff;
}

.btn-rss-primary:hover,
.btn-rss-primary:focus {
    background: #c85e00;
    border-color: #c85e00;
    box-shadow: 0 2px 6px rgba(224, 108, 0, 0.25);
}

.btn-rss-secondary {
    background: transparent;
    border-color: var(--border);
    color: var(--text);
}

.btn-rss-secondary:hover,
.btn-rss-secondary:focus {
    background: var(--surface);
    border-color: var(--text-muted);
    color: var(--text);
}

.btn-rss-ignore {
    background: transparent;
    border-color: #e06c6c;
    color: #c55215;
}

.btn-rss-ignore:hover,
.btn-rss-ignore:focus {
    background: rgba(197, 82, 21, 0.08);
    border-color: #c55215;
    color: #a33f0e;
}

.rss-interval-cell {
    display: flex;
    align-items: center;
    gap: 0.3rem;
    white-space: nowrap;
}

.rss-interval-select {
    min-width: 60px;
    width: auto;
    padding: 0.25rem 0.4rem;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: var(--surface);
    color: var(--text);
    font: inherit;
    font-size: 0.85rem;
    cursor: pointer;
}

.rss-interval-label {
    font-size: 0.8rem;
    color: var(--text-muted);
}

.rss-next-fetch {
    white-space: nowrap;
}

.rss-last-error {
    max-width: 180px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: #c55215;
    font-size: 0.8rem;
}

.rss-unmatched-table .rss-unmatched-title {
    max-width: 320px;
}

.rss-unmatched-date {
    white-space: nowrap;
    font-size: 0.85rem;
    color: var(--text-muted);
    text-align: center;
}

.rss-title-text {
    display: inline-block;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    vertical-align: bottom;
    color: var(--text);
    text-decoration: none;
}

.rss-title-text:hover {
    text-decoration: underline;
}

.rss-team-select {
    min-width: 200px;
    max-width: 260px;
    padding: 0.35rem 0.5rem;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: var(--surface);
    color: var(--text);
    font: inherit;
    font-size: 0.85rem;
}

.rss-alias-input {
    width: 100%;
    min-width: 100px;
    max-width: 150px;
    padding: 0.35rem 0.5rem;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: var(--surface);
    color: var(--text);
    font: inherit;
    font-size: 0.85rem;
}

.admin-section-title {
    margin: 1.5rem 0 0.75rem;
    font-size: 1.05rem;
    font-weight: 700;
    color: var(--text);
}

.parser-status {

    display: inline-block;
    padding: 0.15rem 0.45rem;
    border-radius: var(--radius);
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.3px;
}

.parser-status-idle {
    background: #e9ecef;
    color: #495057;
}

.parser-status-running {
    background: #cfe2ff;
    color: #0a58ca;
}

.parser-status-success {
    background: #d1e7dd;
    color: #0f5132;
}

.parser-status-partial {
    background: #fff3cd;
    color: #664d03;
}

.parser-status-failed {
    background: #f8d7da;
    color: #842029;
}

.field-status-configured {
    background: #d1e7dd;
    color: #0f5132;
}

.field-status-missing {
    background: #f8d7da;
    color: #842029;
}

.parser-block-wide {
    grid-column: 1 / -1;
}

.parser-fields-table,
.parser-schedule-table,
.parser-runs-table,
.parser-errors-table,
.parser-workflow-table {
    margin-top: 0.5rem;
}

.parser-controls {
    display: flex;
    gap: 0.75rem;
    flex-wrap: wrap;
    margin-bottom: 1rem;
}

.parser-controls .btn {
    min-width: 160px;
}

.parser-summary {
    display: flex;
    gap: 1.5rem;
    flex-wrap: wrap;
    margin: 0.75rem 0 1rem;
    padding: 0.75rem 1rem;
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius);
}

.parser-workflow-config {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 0.75rem;
    margin: 0.75rem 0 1rem;
    padding: 0.75rem 1rem;
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius);
}

.parser-workflow-item {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
}

.parser-workflow-label {
    font-size: 0.75rem;
    color: var(--text-muted);
}

.parser-workflow-value {
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--text);
}

.parser-summary-item {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
}

.parser-summary-label {
    font-size: 0.75rem;
    color: var(--text-muted);
}

.parser-summary-value {
    font-size: 1rem;
    font-weight: 700;
    color: var(--text);
}

/* Admin data section */
.data-nav {
    display: flex;
    gap: 0.25rem;
    margin-bottom: 1rem;
    border-bottom: 1px solid var(--border);
}

.data-nav-item {
    background: none;
    border: none;
    border-bottom: 2px solid transparent;
    padding: 0.5rem 1rem;
    font-size: 0.9rem;
    color: var(--text);
    cursor: pointer;
    font-family: inherit;
}

.data-nav-item:hover {
    background: var(--bg);
}

.data-nav-item.active {
    border-bottom-color: var(--accent);
    font-weight: 600;
}

.data-tab {
    display: none;
}

.data-tab.active {
    display: block;
}

.data-section-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 0.75rem;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.data-section-title {
    font-size: 1.1rem;
    font-weight: 700;
    margin: 0;
}

.table-flag {
    width: 28px;
    height: 21px;
    object-fit: contain;
    border-radius: 2px;
    border: 1px solid var(--border);
    background: var(--bg);
}

/* Modals */
.modal {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.5);
    display: none;
    align-items: center;
    justify-content: center;
    z-index: 200;
    padding: 1rem;
}

.modal-content {
    background: var(--bg);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    width: min(480px, 100%);
    max-height: 90vh;
    overflow-y: auto;
    box-shadow: 0 10px 30px rgba(0,0,0,0.3);
}

.modal-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 1rem;
    border-bottom: 1px solid var(--border);
}

.modal-title {
    font-size: 1.1rem;
    font-weight: 700;
    margin: 0;
}

.modal-close {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    padding: 0;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    background: #ffffff;
    color: #6b7280;
    font-size: 20px;
    line-height: 1;
    cursor: pointer;
}

.modal-close:hover {
    background: #f9fafb;
    color: #18181b;
}

.modal-close:focus-visible {
    outline: 2px solid #ff9a4d;
    outline-offset: 2px;
}

.modal-form {
    padding: 1rem;
}

.form-group {
    margin-bottom: 0.75rem;
}

.form-group label {
    display: block;
    font-size: 0.8rem;
    font-weight: 600;
    margin-bottom: 0.35rem;
    color: var(--text);
}

.form-group input,
.form-group select {
    width: 100%;
    padding: 0.5rem;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: var(--surface);
    color: var(--text);
    font-family: inherit;
    font-size: 0.9rem;
}

.form-group input[type="file"] {
    padding: 0.3rem;
    font-size: 0.8rem;
}

.form-checkbox label {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-weight: 500;
    cursor: pointer;
}

.form-checkbox input {
    width: auto;
}

.form-hint {
    font-size: 0.75rem;
    color: var(--text-muted);
    margin: 0.25rem 0 0;
}

.flag-preview-wrap {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 0.5rem;
}

.flag-preview {
    width: 64px;
    height: 48px;
    object-fit: contain;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: var(--surface);
}

.flag-placeholder {
    color: var(--text-muted);
    font-size: 0.85rem;
}

.modal-actions {
    display: flex;
    justify-content: flex-end;
    gap: 0.5rem;
    margin-top: 1rem;
}

.form-radio-group {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 0.35rem 0;
}

.form-radio-label {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.85rem;
    font-weight: 500;
    color: var(--text);
    cursor: pointer;
    user-select: none;
}

.form-radio-label input[type="radio"] {
    width: auto;
    margin: 0;
    accent-color: var(--accent);
}

.btn-danger {
    background: var(--red);
    color: #fff;
    border-color: var(--red);
}

.btn-danger:not(:disabled):hover {
    background: #a81b1b;
    border-color: #a81b1b;
}

@media (max-width: 768px) {
    .admin-layout {
        flex-direction: column;
    }

    .admin-sidebar {
        width: 100%;
        min-width: auto;
        max-width: none;
        border-right: none;
        border-bottom: 1px solid var(--border);
    }

    .admin-nav {
        flex-direction: row;
        flex-wrap: wrap;
        padding: 0.4rem;
        gap: 0.2rem;
    }

    .admin-nav-item {
        border-left: none;
        border-bottom: 3px solid transparent;
        padding: 0.45rem 0.7rem;
        text-align: center;
        flex: 1;
        min-width: 90px;
        font-size: 0.85rem;
    }

    .admin-nav-item.active {
        border-left-color: transparent;
        border-bottom-color: var(--accent);
    }

    .parser-blocks,
    .parser-card {
        margin-left: 0;
        margin-right: 0;
    }
}

/* Parser detail page */
.parser-detail-header {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-bottom: 1rem;
    flex-wrap: wrap;
}

.parser-detail-header .admin-page-title {
    margin: 0;
}

.parser-card {
    background: var(--bg);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 1rem;
    margin-bottom: 1rem;
}

.parser-field {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0.5rem 0;
    border-bottom: 1px solid var(--border);
    gap: 1rem;
}

.parser-field:last-child {
    border-bottom: none;
}

.parser-label {
    color: var(--text-muted);
    font-size: 0.85rem;
    flex-shrink: 0;
}

.parser-value {
    font-size: 0.9rem;
    text-align: right;
    word-break: break-word;
}

.parser-blocks {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 1rem;
}

.parser-block {
    background: var(--bg);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 1rem;
}

.parser-block-title {
    font-size: 1rem;
    font-weight: 700;
    margin: 0 0 0.5rem;
}

.admin-sidebar .admin-nav-item {
    display: block;
    text-decoration: none;
    color: var(--text);
}

/* Admin Shell / Sidebar v1 */
.admin-body {
    --admin-sidebar-width: 272px;
    background: #ffffff;
    color: var(--text);
    display: block;
    font-family: Inter, "Segoe UI", Tahoma, Arial, sans-serif;
    min-height: 100vh;
}

.admin-icon-sprite {
    position: absolute;
    width: 0;
    height: 0;
    overflow: hidden;
}

.admin-shell {
    display: flex;
    width: 100%;
    height: 100vh;
    min-width: 0;
    overflow: hidden;
}

.admin-shell.sidebar-collapsed {
    --admin-sidebar-width: 72px;
}

.admin-body .admin-sidebar {
    display: flex;
    flex: 0 0 var(--admin-sidebar-width);
    flex-direction: column;
    width: var(--admin-sidebar-width);
    min-width: var(--admin-sidebar-width);
    max-width: var(--admin-sidebar-width);
    height: 100vh;
    overflow: visible;
    color: #d9dadd;
    background: #1f2022;
    border: 0;
    transition: width 180ms ease, min-width 180ms ease, flex-basis 180ms ease;
}

.admin-sidebar-logo,
.admin-sidebar-footer {
    flex: 0 0 72px;
    padding: 0 16px;
}

.admin-sidebar-logo {
    display: flex;
    align-items: center;
}

.admin-brand {
    display: flex;
    align-items: center;
    min-width: 0;
    color: #ffffff;
    font-size: 18px;
    font-weight: 600;
    line-height: 24px;
    text-decoration: none;
    white-space: nowrap;
}

.admin-brand span span {
    color: #ff6b00;
}

.admin-brand-short {
    display: none;
    width: 40px;
    text-align: center;
}

.admin-body .admin-nav {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    gap: 12px;
    min-height: 0;
    padding: 0 16px 12px;
    overflow-x: hidden;
    overflow-y: auto;
    scrollbar-color: #55585e transparent;
    scrollbar-width: thin;
}

.admin-body .admin-nav::-webkit-scrollbar {
    width: 6px;
}

.admin-body .admin-nav::-webkit-scrollbar-track {
    background: transparent;
}

.admin-body .admin-nav::-webkit-scrollbar-thumb {
    background: #55585e;
    border-radius: 999px;
}

.admin-nav-group,
.admin-nav-submenu {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.admin-nav-submenu[hidden] {
    display: none;
}

.admin-body .admin-sidebar .admin-nav-item,
.admin-collapse-button {
    position: relative;
    display: flex;
    align-items: center;
    width: 100%;
    height: 44px;
    min-height: 44px;
    gap: 12px;
    padding: 0 12px;
    overflow: hidden;
    color: #d9dadd;
    background: transparent;
    border: 0;
    border-radius: 8px;
    font-family: Inter, "Segoe UI", Tahoma, Arial, sans-serif;
    font-size: 14px;
    font-weight: 500;
    line-height: 20px;
    text-align: left;
    white-space: nowrap;
    cursor: pointer;
    transition: color 120ms ease, background-color 120ms ease;
}

.admin-body .admin-sidebar .admin-nav-item::before {
    content: "";
    position: absolute;
    top: 8px;
    bottom: 8px;
    left: 0;
    width: 3px;
    border-radius: 0 3px 3px 0;
    background: transparent;
}

.admin-body .admin-sidebar .admin-nav-item:hover,
.admin-collapse-button:hover {
    color: #ffffff;
    background: #2b2d31;
}

.admin-body .admin-sidebar .admin-nav-item.active {
    color: #ffffff;
    background: #34363a;
    border: 0;
    font-weight: 600;
}

.admin-body .admin-sidebar .admin-nav-item.active::before {
    background: #ff6b00;
}

.admin-body .admin-sidebar .admin-nav-item:focus-visible,
.admin-collapse-button:focus-visible,
.admin-brand:focus-visible {
    outline: 2px solid #ff9a4d;
    outline-offset: 2px;
}

.admin-nav-item > svg,
.admin-collapse-button > svg {
    flex: 0 0 20px;
    width: 20px;
    height: 20px;
    fill: none;
    stroke: #a8acb2;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.admin-body .admin-sidebar .admin-nav-item.active > svg:first-child {
    stroke: #ff6b00;
}

.admin-nav-label {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
}

.admin-nav-chevron {
    margin-left: auto;
    transition: transform 150ms ease;
}

.admin-nav-parent[aria-expanded="true"] .admin-nav-chevron {
    transform: rotate(90deg);
}

.admin-body .admin-sidebar .admin-nav-child {
    padding-left: 36px;
}

.admin-body .admin-sidebar .admin-nav-child > svg {
    width: 18px;
    height: 18px;
    flex-basis: 18px;
}

.admin-sidebar-footer {
    display: flex;
    align-items: center;
    border-top: 1px solid #2b2d31;
}

.admin-collapse-button {
    color: #a8acb2;
}

.admin-sidebar-tooltip {
    position: fixed;
    z-index: 2000;
    padding: 7px 10px;
    color: #ffffff;
    background: #34363a;
    border: 1px solid #494c51;
    border-radius: 6px;
    font: 500 13px/18px Inter, "Segoe UI", sans-serif;
    white-space: nowrap;
    pointer-events: none;
    opacity: 0;
    transform: translateY(-50%) translateX(-4px);
    transition: opacity 100ms ease, transform 100ms ease;
}

.admin-sidebar-tooltip.visible {
    opacity: 1;
    transform: translateY(-50%) translateX(0);
}

.sidebar-collapsed .admin-brand-full,
.sidebar-collapsed .admin-nav-label,
.sidebar-collapsed .admin-nav-chevron {
    display: none;
}

.sidebar-collapsed .admin-brand-short {
    display: block;
}

.sidebar-collapsed .admin-brand {
    justify-content: center;
    width: 40px;
}

.sidebar-collapsed .admin-body .admin-nav-submenu,
.sidebar-collapsed .admin-nav-submenu {
    display: none;
}

.sidebar-collapsed .admin-body .admin-sidebar .admin-nav-item,
.sidebar-collapsed .admin-collapse-button {
    justify-content: center;
    gap: 0;
    padding-right: 10px;
    padding-left: 10px;
}

.sidebar-collapsed .admin-collapse-button > svg {
    transform: scaleX(-1);
}

.admin-workspace {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    min-width: 0;
    height: 100vh;
    overflow: hidden;
    background: #ffffff;
    container-type: inline-size;
}

.admin-body .admin-topbar {
    flex: 0 0 64px;
    height: 64px;
    color: var(--text);
    background: #ffffff;
    border: 0;
    border-bottom: 1px solid var(--border);
}

.admin-topbar-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    height: 100%;
    gap: 24px;
    padding: 0 24px;
}

.admin-topbar .sport-links {
    display: flex;
    min-width: 0;
    overflow: hidden;
}

.admin-topbar .admin-open-site {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 36px;
    gap: 8px;
    padding: 0 14px;
    color: #18181b;
    background: #ffffff;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    font: 500 14px/20px Inter, "Segoe UI", sans-serif;
    text-decoration: none;
    white-space: nowrap;
    transition: border-color 120ms ease, background-color 120ms ease;
}

.admin-topbar .admin-open-site svg {
    width: 16px;
    height: 16px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.admin-topbar .admin-open-site:hover {
    background: #f9fafb;
    border-color: #cbd5e1;
}

.admin-topbar .admin-open-site:focus-visible {
    outline: 2px solid #ff9a4d;
    outline-offset: 2px;
}

.admin-topbar .sport-tools {
    display: flex;
    align-items: center;
    flex: 0 0 auto;
    gap: 12px;
}

.admin-topbar .icon-btn {
    height: 36px;
    color: #4f5359;
}

.admin-topbar .icon-btn:hover {
    color: #1f2022;
    background: #f1f2f3;
}

.admin-topbar .search-input {
    color: #1f2022;
    border-bottom-color: #a8acb2;
}

.admin-topbar .search-input::placeholder {
    color: #747980;
}

.admin-topbar .admin-header-nav a {
    color: var(--text);
}

.admin-body .admin-main {
    flex: 1 1 auto;
    min-width: 0;
    min-height: 0;
    padding: 24px;
    overflow: auto;
    background: #ffffff;
}

.admin-placeholder-section {
    max-width: 720px;
}

.admin-placeholder-kicker {
    margin: 0 0 6px;
    color: #ff6b00;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

/* ADM-001 operational overview */
.admin-dashboard {
    width: 100%;
    color: #18181b;
}

.admin-dashboard-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    height: 56px;
    gap: 24px;
}

.admin-dashboard-heading h1,
.admin-dashboard-heading p,
.admin-dashboard-attention h2,
.admin-dashboard-attention p {
    margin: 0;
}

.admin-dashboard-heading h1 {
    color: #18181b;
    font: 600 28px/36px Inter, "Segoe UI", sans-serif;
}

.admin-dashboard-heading p {
    color: #6b7280;
    font: 400 14px/20px Inter, "Segoe UI", sans-serif;
}

.admin-dashboard-heading-actions {
    display: flex;
    align-items: flex-end;
    flex: 0 0 auto;
    flex-direction: column;
    gap: 2px;
}

.admin-dashboard-heading-actions > span {
    color: #6b7280;
    font: 400 12px/16px Inter, "Segoe UI", sans-serif;
}

.admin-dashboard-refresh {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 36px;
    width: 120px;
    height: 36px;
    gap: 8px;
    padding: 0 14px;
    color: #18181b;
    background: #ffffff;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    font: 500 14px/20px Inter, "Segoe UI", sans-serif;
    cursor: pointer;
    transition: border-color 120ms ease, background-color 120ms ease;
}

.admin-dashboard-refresh svg {
    width: 16px;
    height: 16px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.admin-dashboard-refresh:hover:not(:disabled) {
    background: #f9fafb;
    border-color: #cbd5e1;
}

.admin-dashboard-refresh:disabled {
    color: #9ca3af;
    cursor: wait;
}

.admin-dashboard-refresh:focus-visible,
.admin-dashboard-card:focus-visible,
.admin-dashboard-attention-row:focus-visible {
    outline: 2px solid #ff9a4d;
    outline-offset: 2px;
}

.admin-dashboard-cards {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
    margin-top: 16px;
}

.admin-dashboard-card {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    min-width: 0;
    height: 96px;
    padding: 12px;
    color: #18181b;
    background: #ffffff;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    box-shadow: none;
    text-align: left;
    cursor: pointer;
    transition: border-color 120ms ease, background-color 120ms ease;
}

.admin-dashboard-card:hover {
    background: #f9fafb;
    border-color: #cbd5e1;
}

.admin-dashboard-card-title {
    display: flex;
    align-items: center;
    min-width: 0;
    gap: 8px;
    font: 500 14px/20px Inter, "Segoe UI", sans-serif;
}

.admin-dashboard-card-title svg {
    flex: 0 0 20px;
    width: 20px;
    height: 20px;
    fill: none;
    stroke: #ff6b00;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.admin-dashboard-card-summary {
    display: flex;
    align-items: flex-end;
    min-width: 0;
    gap: 10px;
}

.admin-dashboard-card-metric-block {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.admin-dashboard-card-label {
    color: #6b7280;
    font: 400 12px/16px Inter, "Segoe UI", sans-serif;
    white-space: nowrap;
}

.admin-dashboard-card-metric {
    flex: 0 0 auto;
    color: #18181b;
    font: 600 24px/28px Inter, "Segoe UI", sans-serif;
}

.admin-dashboard-card-meta {
    min-width: 0;
    overflow: hidden;
    color: #6b7280;
    font: 400 12px/16px Inter, "Segoe UI", sans-serif;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.admin-dashboard-card-meta .admin-dashboard-stale {
    color: #92400e;
    font-weight: 600;
}

.admin-dashboard-attention {
    width: 100%;
    max-height: 356px;
    margin-top: 24px;
    overflow: hidden;
    background: #ffffff;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
}

.admin-dashboard-attention-header {
    display: flex;
    align-items: center;
    height: 56px;
    padding: 0 16px;
    border-bottom: 1px solid #e5e7eb;
}

.admin-dashboard-attention-header h2 {
    color: #18181b;
    font: 600 16px/24px Inter, "Segoe UI", sans-serif;
}

.admin-dashboard-attention-header p {
    color: #6b7280;
    font: 400 12px/16px Inter, "Segoe UI", sans-serif;
}

.admin-dashboard-attention-list {
    max-height: 260px;
    overflow: hidden;
}

.admin-dashboard-attention-row {
    display: grid;
    grid-template-columns: 92px minmax(260px, 1fr) 112px 88px 82px;
    align-items: center;
    width: 100%;
    min-height: 52px;
    gap: 12px;
    padding: 8px 16px;
    color: #18181b;
    background: #ffffff;
    border: 0;
    border-bottom: 1px solid #e5e7eb;
    font-family: Inter, "Segoe UI", sans-serif;
    text-align: left;
    cursor: pointer;
}

.admin-dashboard-attention-row:hover {
    background: #f9fafb;
}

.admin-dashboard-severity {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: fit-content;
    min-width: 72px;
    height: 24px;
    padding: 0 8px;
    border-radius: 999px;
    font: 600 12px/16px Inter, "Segoe UI", sans-serif;
}

.admin-dashboard-severity.critical {
    color: #b91c1c;
    background: #fef2f2;
}

.admin-dashboard-severity.high {
    color: #c2410c;
    background: #fff7ed;
}

.admin-dashboard-severity.warning {
    color: #92400e;
    background: #fffbeb;
}

.admin-dashboard-attention-problem {
    display: flex;
    flex-direction: column;
    min-width: 0;
    overflow: hidden;
}

.admin-dashboard-attention-problem strong {
    overflow: hidden;
    color: #18181b;
    font: 500 14px/20px Inter, "Segoe UI", sans-serif;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.admin-dashboard-attention-problem small {
    overflow: hidden;
    color: #6b7280;
    font: 400 12px/16px Inter, "Segoe UI", sans-serif;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.admin-dashboard-attention-domain,
.admin-dashboard-attention-count,
.admin-dashboard-attention-age,
.admin-dashboard-attention-action {
    min-width: 0;
    overflow: hidden;
    color: #6b7280;
    font: 400 12px/16px Inter, "Segoe UI", sans-serif;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.admin-dashboard-attention-count {
    color: #18181b;
}

.admin-dashboard-attention-action {
    color: #ff6b00;
    font-weight: 500;
    text-align: right;
}

.admin-dashboard-attention-footer {
    display: flex;
    align-items: center;
    height: 40px;
    padding: 0 16px;
    color: #6b7280;
    background: #f9fafb;
    font: 400 12px/16px Inter, "Segoe UI", sans-serif;
}

.admin-dashboard-empty,
.admin-dashboard-local-error {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    min-height: 104px;
    padding: 20px;
    text-align: center;
}

.admin-dashboard-empty strong,
.admin-dashboard-local-error strong {
    color: #18181b;
    font: 500 14px/20px Inter, "Segoe UI", sans-serif;
}

.admin-dashboard-empty span,
.admin-dashboard-local-error span {
    color: #6b7280;
    font: 400 12px/16px Inter, "Segoe UI", sans-serif;
}

.admin-dashboard-healthy {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    min-height: 104px;
    padding: 20px;
    background: #f0fdf4;
    text-align: center;
}

.admin-dashboard-healthy strong {
    color: #15803d;
    font: 600 15px/22px Inter, "Segoe UI", sans-serif;
}

.admin-dashboard-healthy span {
    color: #166534;
    font: 400 12px/18px Inter, "Segoe UI", sans-serif;
}

.admin-dashboard-healthy span:last-child {
    margin-top: 2px;
    color: #15803d;
    font-weight: 500;
}

.admin-dashboard-attention-skeleton {
    height: 52px;
    margin: 0 16px;
    border-bottom: 1px solid #e5e7eb;
    background: linear-gradient(90deg, #f9fafb 25%, #eef0f2 50%, #f9fafb 75%);
    background-size: 200% 100%;
    animation: admin-dashboard-shimmer 1.2s linear infinite;
}

.admin-dashboard-card-metric.is-skeleton,
.admin-dashboard-card-meta.is-skeleton {
    display: block;
    height: 16px;
    border-radius: 4px;
    background: linear-gradient(90deg, #f9fafb 25%, #eef0f2 50%, #f9fafb 75%);
    background-size: 200% 100%;
    animation: admin-dashboard-shimmer 1.2s linear infinite;
}

.admin-dashboard-card-metric.is-skeleton {
    width: 42px;
    height: 24px;
}

.admin-dashboard-card-meta.is-skeleton {
    width: 112px;
}

@keyframes admin-dashboard-shimmer {
    to { background-position: -200% 0; }
}

/* ADM-002 Sports catalog */
.sports-catalog,
.sports-detail {
    width: 100%;
    color: #18181b;
}

.sports-breadcrumb {
    display: flex;
    align-items: center;
    gap: 6px;
    height: 24px;
    color: #6b7280;
    font: 400 12px/16px Inter, "Segoe UI", sans-serif;
}

.sports-breadcrumb-sep {
    color: #cbd5e1;
}

.sports-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: 52px;
    gap: 16px;
}

.sports-heading-title {
    display: flex;
    align-items: baseline;
    gap: 12px;
    min-width: 0;
}

.sports-heading-title h1 {
    margin: 0;
    color: #18181b;
    font: 600 28px/36px Inter, "Segoe UI", sans-serif;
}

.sports-heading-count {
    color: #6b7280;
    font: 400 12px/16px Inter, "Segoe UI", sans-serif;
}

.sports-toolbar {
    display: flex;
    align-items: center;
    gap: 12px;
    height: 44px;
}

.sports-search {
    width: 320px;
    height: 36px;
    padding: 0 12px;
    color: #18181b;
    background: #ffffff;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    font: 400 14px/20px Inter, "Segoe UI", sans-serif;
}

.sports-search:focus-visible {
    outline: 2px solid #ff9a4d;
    outline-offset: 2px;
}

.sports-filters {
    display: flex;
    align-items: center;
    gap: 8px;
}

.sports-filter {
    height: 36px;
    padding: 0 10px;
    color: #18181b;
    background: #ffffff;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    font: 400 14px/20px Inter, "Segoe UI", sans-serif;
}

.sports-table-wrap {
    margin-top: 16px;
    overflow-x: auto;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
}

.sports-table {
    width: 100%;
    border-collapse: collapse;
    background: #ffffff;
    font: 400 14px/20px Inter, "Segoe UI", sans-serif;
}

.sports-table thead th {
    position: sticky;
    top: 0;
    z-index: 1;
    height: 40px;
    padding: 0 16px;
    color: #6b7280;
    background: #f9fafb;
    border-bottom: 1px solid #e5e7eb;
    font: 600 12px/16px Inter, "Segoe UI", sans-serif;
    text-align: left;
    white-space: nowrap;
}

.sports-table tbody td {
    height: 52px;
    padding: 0 16px;
    color: #18181b;
    border-bottom: 1px solid #e5e7eb;
    white-space: nowrap;
}

.sports-table tbody tr:last-child td {
    border-bottom: none;
}

.sports-table tbody tr:hover {
    background: #f9fafb;
}

.sports-cell-main {
    display: block;
    color: #18181b;
    font-weight: 500;
}

.sports-cell-sub {
    display: block;
    color: #6b7280;
    font: 400 12px/16px Inter, "Segoe UI", sans-serif;
}

.sports-badge {
    display: inline-flex;
    align-items: center;
    height: 24px;
    padding: 0 8px;
    color: #6b7280;
    background: #f9fafb;
    border: 1px solid #e5e7eb;
    border-radius: 999px;
    font: 500 12px/16px Inter, "Segoe UI", sans-serif;
}

.sports-badge-positive {
    color: #15803d;
    background: #f0fdf4;
    border-color: #bbf7d0;
}

.sports-crest {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    overflow: hidden;
    border-radius: 4px;
    background: #f9fafb;
}

.sports-crest img {
    width: 28px;
    height: 28px;
    object-fit: contain;
}

.sports-crest-placeholder {
    color: #cbd5e1;
    font: 500 12px/16px Inter, "Segoe UI", sans-serif;
}

.sports-actions {
    text-align: right;
}

.sports-action-btn {
    height: 36px;
    padding: 0 12px;
    color: #18181b;
    background: #ffffff;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    font: 500 14px/20px Inter, "Segoe UI", sans-serif;
    cursor: pointer;
}

.sports-action-btn:hover {
    background: #f9fafb;
    border-color: #cbd5e1;
}

.sports-action-btn:focus-visible {
    outline: 2px solid #ff9a4d;
    outline-offset: 2px;
}

.sports-pagination {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    height: 52px;
    color: #6b7280;
    font: 400 12px/16px Inter, "Segoe UI", sans-serif;
}

.sports-empty {
    padding: 24px 16px;
    text-align: center;
}

.sports-empty strong {
    display: block;
    color: #18181b;
    font: 500 14px/20px Inter, "Segoe UI", sans-serif;
}

.sports-empty span {
    color: #6b7280;
    font: 400 12px/16px Inter, "Segoe UI", sans-serif;
}

.sports-skeleton-row {
    height: 20px;
    margin: 8px 0;
    border-radius: 4px;
    background: linear-gradient(90deg, #f9fafb 25%, #eef0f2 50%, #f9fafb 75%);
    background-size: 200% 100%;
    animation: admin-dashboard-shimmer 1.2s linear infinite;
}

.sports-detail-form {
    max-width: 880px;
    margin-top: 8px;
}

.sports-form-section {
    margin-bottom: 24px;
}

.sports-form-section h3 {
    margin: 0 0 12px;
    color: #18181b;
    font: 600 18px/24px Inter, "Segoe UI", sans-serif;
}

.sports-form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

.sports-form-grid label {
    display: flex;
    flex-direction: column;
    gap: 6px;
    color: #6b7280;
    font: 400 12px/16px Inter, "Segoe UI", sans-serif;
}

.sports-form-grid input,
.sports-form-grid select {
    height: 36px;
    padding: 0 10px;
    color: #18181b;
    background: #ffffff;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    font: 400 14px/20px Inter, "Segoe UI", sans-serif;
}

.sports-form-grid input[type="checkbox"] {
    width: 18px;
    height: 18px;
    accent-color: #ff6b00;
}

.sports-form-grid input:focus-visible,
.sports-form-grid select:focus-visible {
    outline: 2px solid #ff9a4d;
    outline-offset: 2px;
}

.sports-detail-savebar {
    position: sticky;
    bottom: 0;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 12px;
    height: 64px;
    padding: 0 16px;
    background: #ffffff;
    border-top: 1px solid #e5e7eb;
}

.sports-drawer-backdrop {
    position: fixed;
    inset: 0;
    z-index: 1000;
    background: rgba(0, 0, 0, 0.4);
}

.sports-drawer {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    z-index: 1001;
    width: 720px;
    max-width: 100vw;
    background: #ffffff;
    box-shadow: -8px 0 24px rgba(0, 0, 0, 0.12);
}

.sports-drawer-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: 56px;
    padding: 0 16px;
    border-bottom: 1px solid #e5e7eb;
}

.sports-drawer-header h2 {
    margin: 0;
    color: #18181b;
    font: 600 18px/24px Inter, "Segoe UI", sans-serif;
}

.sports-drawer-close {
    width: 36px;
    height: 36px;
    color: #6b7280;
    background: none;
    border: 0;
    border-radius: 6px;
    font-size: 20px;
    cursor: pointer;
}

.sports-drawer-close:hover {
    background: #f9fafb;
}

.sports-drawer-body {
    padding: 16px;
    overflow-y: auto;
    height: calc(100% - 56px);
}

@media (max-width: 900px) {
    .sports-form-grid {
        grid-template-columns: 1fr;
    }
    .sports-search {
        width: 100%;
    }
    .sports-toolbar {
        flex-wrap: wrap;
        height: auto;
        padding: 8px 0;
    }
}

@container (min-width: 1200px) {
    .admin-body .admin-main {
        padding-right: 32px;
        padding-left: 32px;
    }
}

@container (max-width: 900px) {
    .admin-dashboard-attention-row {
        grid-template-columns: 84px minmax(180px, 1fr) 120px 88px 74px;
    }

    .admin-dashboard-attention-age {
        display: none;
    }
}

@media (max-width: 768px) {
    .admin-body .admin-sidebar {
        position: fixed;
        inset: 0 auto 0 0;
        z-index: 1000;
        box-shadow: 8px 0 24px rgba(0, 0, 0, 0.16);
    }

    .admin-workspace {
        width: calc(100% - 72px);
        margin-left: 72px;
    }

    .admin-topbar-inner {
        gap: 12px;
        padding: 0 12px;
    }

    .admin-body .admin-main {
        padding: 16px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .admin-body .admin-sidebar,
    .admin-nav-chevron,
    .admin-sidebar-tooltip {
        transition: none;
    }

    .admin-dashboard-attention-skeleton,
    .admin-dashboard-card-metric.is-skeleton,
    .admin-dashboard-card-meta.is-skeleton {
        animation: none;
    }
}

/* Admin logs section */
.logs-filters {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    align-items: flex-end;
    margin-bottom: 1rem;
    padding: 0.75rem;
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius);
}

.logs-filters .form-group {
    display: flex;
    flex-direction: column;
    min-width: 140px;
}

.logs-filters label {
    font-size: 12px;
    color: var(--text-muted);
    margin-bottom: 0.25rem;
}

.logs-filters select {
    padding: 0.4rem 0.5rem;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: var(--bg);
}

.logs-table th,
.logs-table td {
    font-size: 13px;
    padding: 0.55rem 0.6rem;
}

.log-message {
    max-width: 320px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.log-badge,
.log-status {
    display: inline-block;
    padding: 0.15rem 0.4rem;
    border-radius: 2px;
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
}

.badge-debug { background: var(--surface-3); color: var(--text-muted); }
.badge-info { background: #e6f2ff; color: #0055aa; }
.badge-warning { background: #fff6d6; color: #aa7700; }
.badge-error { background: #ffe6e6; color: var(--red); }

.status-success { background: #e6f7e6; color: #1a7a1a; }
.status-warning { background: #fff6d6; color: #aa7700; }
.status-failed { background: #ffe6e6; color: var(--red); }

.logs-empty {
    text-align: center;
    color: var(--text-muted);
    padding: 2rem;
}

.logs-pagination {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 1rem;
    margin-top: 1rem;
}

/* Admin logs section */
.logs-filters { display: flex; flex-wrap: wrap; gap: 1rem; align-items: flex-end; margin-bottom: 1rem; padding: 0.75rem; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); }
.logs-filters .form-group { display: flex; flex-direction: column; min-width: 140px; }
.logs-filters label { font-size: 12px; color: var(--text-muted); margin-bottom: 0.25rem; }
.logs-filters select,
.logs-filters input[type="date"],
.logs-filters input[type="time"] { padding: 0.4rem 0.5rem; border: 1px solid var(--border); border-radius: var(--radius); background: var(--bg); }
.logs-filters .form-row { display: flex; flex-wrap: wrap; gap: 1rem; align-items: flex-end; width: 100%; }
.logs-filters .form-row + .form-row { margin-top: 0.75rem; }
.logs-filter-actions { display: flex; flex-wrap: wrap; gap: 0.5rem; width: 100%; margin-top: 0.75rem; }
.logs-table th, .logs-table td { font-size: 13px; padding: 0.55rem 0.6rem; }
.log-message { max-width: 320px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.log-badge, .log-status { display: inline-block; padding: 0.15rem 0.4rem; border-radius: 2px; font-size: 11px; font-weight: 600; text-transform: uppercase; }
.badge-debug { background: var(--surface-3); color: var(--text-muted); }
.badge-info { background: #e6f2ff; color: #0055aa; }
.badge-warning { background: #fff6d6; color: #aa7700; }
.badge-error { background: #ffe6e6; color: var(--red); }
.status-success { background: #e6f7e6; color: #1a7a1a; }
.status-warning { background: #fff6d6; color: #aa7700; }
.status-failed { background: #ffe6e6; color: var(--red); }
.status-partial { background: #fff6d6; color: #aa7700; }

/* Odds history on match page */
.odds-history-section { margin: 1.5rem 0; padding: 1rem; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); }
.odds-current-box { display: flex; gap: 0.75rem; align-items: center; margin-bottom: 1rem; padding: 0.75rem; background: var(--bg); border-radius: var(--radius); }
.odds-current-label { color: var(--text-muted); font-size: 0.9rem; }
.odds-current-values { font-size: 1.1rem; font-weight: 700; }
.odds-history-table th, .odds-history-table td { text-align: center; }
.odds-history-table td:first-child, .odds-history-table th:first-child { text-align: left; }
.logs-empty { text-align: center; color: var(--text-muted); padding: 2rem; }
.logs-pagination { display: flex; justify-content: center; align-items: center; gap: 1rem; margin-top: 1rem; }

/* Admin matches section */
.odds-heading { margin-bottom:12px; }.odds-heading .admin-page-title { margin:0; font-size:28px;line-height:36px;font-weight:600; }.odds-heading p,.odds-toolbar-note { margin:4px 0 0;color:#6b7280;font-size:14px;line-height:20px; }.odds-provider-bar { min-height:56px; display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 -16px 12px;padding:0 16px;border-bottom:1px solid #e5e7eb;background:#f9fafb;font-size:12px;line-height:16px;color:#4b5563; }.odds-provider-bar button,.odds-detail-controls button { height:32px;padding:0 10px;border:1px solid #e5e7eb;background:#fff;color:#4b5563;font:500 14px/20px Inter,sans-serif;cursor:pointer; }.odds-provider-bar button:first-child { border-radius:6px 0 0 6px; }.odds-provider-bar button:last-child { border-radius:0 6px 6px 0; }.odds-provider-bar button.is-active,.odds-detail-controls button.is-active { border-color:#ff6b00;color:#b94800;background:#fff7ed; }.odds-toolbar { min-height:44px;display:flex;flex-wrap:wrap;align-items:center;gap:8px; }.odds-toolbar input,.odds-toolbar select,.odds-detail-controls select { height:36px;padding:0 10px;border:1px solid #e5e7eb;border-radius:6px;background:#fff;font:14px/20px Inter,sans-serif; }.odds-toolbar input[type="search"] { width:260px; }.odds-toolbar-note { margin:8px 0 12px;font-size:12px;line-height:16px; }.odds-summary { margin:12px 0;color:#4b5563;font-size:14px;line-height:20px; }.odds-table { min-width:1240px;border-radius:8px; }.odds-table th { height:40px;background:#f9fafb;color:#4b5563;font-size:12px; }.odds-table td { height:56px;padding:8px 16px;vertical-align:middle;font-size:14px;line-height:20px; }.odds-table td:first-child,.odds-table td:nth-child(2) { position:sticky;background:#fff;z-index:1; }.odds-table td:first-child { left:0; }.odds-table td:nth-child(2) { left:118px; }.odds-table td small { display:block;color:#6b7280;font-size:12px;line-height:16px; }.odds-number { font-variant-numeric:tabular-nums;white-space:nowrap; }.odds-status { display:inline-flex;padding:2px 7px;border-radius:4px;font-size:12px;font-weight:600; }.odds-status.fresh { color:#15803d;background:#f0fdf4; }.odds-workspace { max-width:1280px; }.odds-detail-header { padding:16px;border:1px solid #e5e7eb;border-radius:8px;background:#fff; }.odds-detail-header p,.odds-detail-header span { display:block;margin:0;color:#6b7280;font-size:12px;line-height:16px; }.odds-detail-header h1 { margin:6px 0;font-size:18px;line-height:24px;font-weight:600; }.odds-detail-header a { display:inline-block;margin-top:8px;color:#b94800;font-size:14px; }.odds-detail-controls { display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin:16px 0; }.odds-detail-controls > div { display:flex; }.odds-market { margin-bottom:10px;border:1px solid #e5e7eb;border-radius:8px;background:#fff; }.odds-market summary { padding:12px 16px;cursor:pointer;font-size:14px;font-weight:600; }.odds-market-scroll { overflow-x:auto; }.odds-market-table { width:100%;min-width:700px;border-collapse:collapse;font-size:14px;line-height:20px; }.odds-market-table th,.odds-market-table td { padding:10px 16px;text-align:left;border-top:1px solid #e5e7eb; }.odds-market-table th { background:#f9fafb;color:#4b5563;font-size:12px; }.odds-drawer { position:fixed;z-index:1000;top:0;right:0;width:min(480px,100vw);height:100vh;overflow:auto;padding:24px;background:#fff;border-left:1px solid #e5e7eb;box-shadow:-8px 0 24px rgb(17 24 39 / 12%); }.odds-drawer h2 { margin:0 0 8px;font-size:18px;line-height:24px; }.odds-drawer p { color:#6b7280;font-size:12px;line-height:16px; }
.odds-toolbar label,.odds-detail-controls label,.odds-provider-bar label { display:flex;flex-direction:column;gap:4px;color:#4b5563;font-size:12px;line-height:16px; }
.odds-toolbar .odds-search { flex:1 1 260px; }
.odds-toolbar .odds-search input[type="search"] { width:100%; }
.odds-toolbar .btn { align-self:flex-end;height:36px; }
.odds-provider-bar select { height:36px;padding:0 10px;border:1px solid #e5e7eb;border-radius:6px;background:#fff;font:14px/20px Inter,sans-serif; }
.odds-provider-bar button,.odds-detail-controls button { height:36px; }
.odds-provider-bar button:focus-visible,.odds-detail-controls button:focus-visible,.odds-price:focus-visible,.odds-catalog-row:focus-visible { outline:2px solid #ff9a4d;outline-offset:2px; }
.odds-catalog-row { cursor:pointer; }
.odds-catalog-row:hover td,.odds-catalog-row:focus td { background:#f9fafb; }
.odds-table th,.odds-table td { padding-left:16px;padding-right:16px; }
.odds-table th:first-child,.odds-table th:nth-child(2) { position:static;background:#f9fafb; }
.odds-pagination { min-height:52px;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 16px;border:1px solid #e5e7eb;border-top:0;border-radius:0 0 8px 8px;color:#4b5563;font-size:12px;line-height:16px; }
.odds-pagination > div { display:flex;gap:8px; }
.odds-detail-header { display:flex;align-items:center;justify-content:space-between;gap:16px; }
.odds-detail-provider { margin:16px 0 0; }
.odds-detail-controls { min-height:44px; }
.odds-detail-controls label { margin-left:auto; }
.odds-mode-switch button:first-child { border-radius:6px 0 0 6px; }
.odds-mode-switch button:last-child { border-radius:0 6px 6px 0; }
.odds-market summary { display:grid;grid-template-columns:minmax(130px,1fr) minmax(180px,2fr) auto;align-items:center;gap:12px; }
.odds-market summary small { color:#6b7280;font-size:12px;font-weight:400; }
.odds-market-table th:first-child,.odds-market-table td:first-child { position:sticky;left:0;z-index:1;background:#fff; }
.odds-market-table th:first-child { background:#f9fafb;z-index:2; }
.odds-price { min-width:54px;padding:5px 8px;border:1px solid #e5e7eb;border-radius:6px;background:#fff;color:#111827;font:600 14px/20px Inter,sans-serif;font-variant-numeric:tabular-nums;cursor:pointer; }
.odds-price:hover { border-color:#cbd5e1;background:#f9fafb; }
.odds-status.neutral { color:#4b5563;background:#f3f4f6; }
.odds-quality-note { display:flex;align-items:flex-start;gap:12px;margin-top:16px;padding:12px 16px;border:1px solid #e5e7eb;border-radius:8px;background:#f9fafb;color:#4b5563;font-size:12px;line-height:16px; }
.odds-quality-note strong { color:#111827;white-space:nowrap; }
.odds-drawer .modal-close { min-width:44px;min-height:44px; }
.odds-drawer .match-unavailable { margin-top:16px; }
@media (max-width:900px) { .odds-toolbar label { flex:1 1 180px; }.odds-toolbar .odds-search { flex-basis:100%; }.odds-detail-header { align-items:flex-start; }.odds-detail-controls label { width:100%;margin-left:0; }.odds-detail-controls select { width:100%; }.odds-quality-note { flex-direction:column;gap:4px; } }
.matches-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; margin-bottom:16px; }
.matches-heading .admin-page-title { margin:0; font-size:28px; line-height:36px; font-weight:600; }
.matches-heading p { margin:4px 0 0; font-size:14px; line-height:20px; color:#6b7280; }
.matches-quick-views { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:12px; }
.matches-quick-views button { height:36px; padding:0 12px; border:1px solid #e5e7eb; border-radius:6px; background:#fff; color:#374151; font:500 14px/20px Inter, sans-serif; cursor:pointer; }
.matches-quick-views button:hover { background:#f9fafb; border-color:#cbd5e1; }.matches-quick-views button.is-active { border-color:#ff6b00; color:#b94800; background:#fff7ed; }
.matches-filters { display: flex; flex-direction: column; gap: 0.75rem; margin-bottom: 1rem; padding: 0.75rem; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); }
.matches-filters .form-row { display: flex; flex-wrap: wrap; gap: 1rem; align-items: flex-end; }
.matches-filters .form-group { display: flex; flex-direction: column; min-width: 140px; }
.matches-filters label { font-size: 12px; color: var(--text-muted); margin-bottom: 0.25rem; }
.matches-filters select,
.matches-filters input[type="date"],
.matches-filters input[type="text"] { padding: 0.4rem 0.5rem; border: 1px solid var(--border); border-radius: var(--radius); background: var(--bg); }
.matches-filter-actions { width: 100%; margin-top: 0.25rem; }
.matches-summary { margin-bottom: 0.75rem; font-size: 14px; color: var(--text-muted); }
.matches-table td { font-size: 13px; }
.matches-more-filters { padding:10px 12px; border-top:1px solid #e5e7eb; color:#6b7280; font-size:12px; line-height:16px; }
.matches-table { min-width:1180px; border-radius:8px; }.matches-table th { height:40px; background:#f9fafb; color:#374151; font-size:12px; }.matches-table td { height:56px; padding:8px 16px; vertical-align:middle; }.matches-table td small { display:block; color:#6b7280; font-size:12px; line-height:16px; }.matches-table td strong { display:block; font-size:14px; line-height:20px; }.match-indicator { display:inline-flex; align-items:center; height:22px; padding:0 7px; border-radius:4px; font-size:12px; font-weight:600; }.match-indicator.live { color:#b91c1c; background:#fef2f2; }.match-indicator.warning { color:#92400e; background:#fffbeb; }
.match-workspace { max-width:1280px; }.match-back { height:36px; margin-bottom:16px; padding:0 10px; border:1px solid #e5e7eb; border-radius:6px; background:#fff; color:#374151; font:500 14px/20px Inter,sans-serif; cursor:pointer; }.match-detail-header { padding:16px; border:1px solid #e5e7eb; border-radius:8px; background:#fff; }.match-detail-header p { margin:0 0 6px; color:#6b7280; font-size:12px; line-height:16px; }.match-detail-header h1 { margin:0; font-size:18px; line-height:24px; font-weight:600; }.match-detail-header h1 strong { margin:0 10px; }.match-detail-header div { display:flex; flex-wrap:wrap; gap:12px; margin-top:10px; color:#4b5563; font-size:12px; line-height:16px; }.match-tabs { display:flex; overflow-x:auto; gap:4px; margin:16px 0 0; border-bottom:1px solid #e5e7eb; }.match-tabs button { height:40px; padding:0 12px; border:0; border-bottom:2px solid transparent; background:#fff; color:#6b7280; font:500 14px/20px Inter,sans-serif; white-space:nowrap; cursor:pointer; }.match-tabs button.is-active { color:#b94800; border-bottom-color:#ff6b00; }.match-tab-panel { margin-top:16px; padding:16px; border:1px solid #e5e7eb; border-radius:8px; background:#fff; }.match-tab-panel h2 { margin:0 0 16px; font-size:18px; line-height:24px; font-weight:600; }.match-overview-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }.match-overview-grid > div { min-width:0; }.match-overview-grid h2 { margin-bottom:10px; font-size:14px; line-height:20px; }.match-tab-panel dl { display:grid; grid-template-columns:minmax(100px, 1fr) minmax(120px, 1.5fr); gap:8px 16px; margin:0; font-size:14px; line-height:20px; }.match-tab-panel dt { color:#6b7280; }.match-tab-panel dd { margin:0; color:#111827; }.match-unavailable { display:flex; flex-direction:column; gap:4px; padding:12px; border-radius:6px; background:#f9fafb; color:#6b7280; font-size:14px; line-height:20px; }.match-unavailable strong { color:#374151; }.match-meta { margin:-8px 0 12px; color:#6b7280; font-size:12px; line-height:16px; }.match-fact-table { width:100%; border-collapse:collapse; font-size:14px; line-height:20px; }.match-fact-table th,.match-fact-table td { padding:10px 16px; text-align:left; border-bottom:1px solid #e5e7eb; }.match-fact-table th { color:#6b7280; font-size:12px; font-weight:600; background:#f9fafb; }.match-loading { padding:32px 0; color:#6b7280; font-size:14px; }
.matches-heading { min-height:52px;margin-bottom:8px; }
.matches-quick-views button:disabled { border-style:dashed;color:#9ca3af;background:#f9fafb;cursor:not-allowed; }
.matches-filters { display:flex;flex-flow:row wrap;align-items:flex-end;gap:8px;margin:0 0 8px;padding:12px 0;border:0;border-top:1px solid #e5e7eb;border-bottom:1px solid #e5e7eb;border-radius:0;background:#fff; }
.matches-filters .form-group { flex:0 1 140px;min-width:128px;gap:4px; }
.matches-filters .matches-search { flex:0 1 260px;min-width:240px; }
.matches-filters label { margin:0;color:#4b5563;font-size:12px;line-height:16px; }
.matches-filters select,.matches-filters input[type="date"],.matches-filters input[type="search"] { width:100%;height:36px;padding:0 10px;border:1px solid #e5e7eb;border-radius:6px;background:#fff;font:14px/20px Inter,sans-serif; }
.matches-filter-actions { display:flex;align-items:center;align-self:flex-start;gap:8px;width:auto;margin:20px 0 0; }
.matches-filter-actions .btn { height:36px; }
.matches-filters select:focus-visible,.matches-filters input:focus-visible,.matches-quick-views button:focus-visible,.match-catalog-row:focus-visible,.match-tabs button:focus-visible,.match-back:focus-visible { outline:2px solid #ff9a4d;outline-offset:2px; }
.matches-summary { margin:12px 0;color:#4b5563;font-size:14px;line-height:20px; }
.match-catalog-row { cursor:pointer; }
.match-catalog-row td { font-size:14px;line-height:20px; }
.match-catalog-row:hover td,.match-catalog-row:focus td { background:#f9fafb; }
.match-readonly { color:#9ca3af; }
.match-quality { display:inline-flex;padding:2px 7px;border-radius:4px;font-size:12px;font-weight:600; }
.match-quality.fresh { color:#15803d;background:#f0fdf4; }.match-quality.warning { color:#92400e;background:#fffbeb; }.match-quality.critical { color:#b91c1c;background:#fef2f2; }
.matches-pagination { min-height:52px;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 16px;border:1px solid #e5e7eb;border-top:0;border-radius:0 0 8px 8px;color:#4b5563;font-size:12px;line-height:16px; }
.matches-pagination > div { display:flex;gap:8px; }
.match-detail-header { display:grid;grid-template-columns:minmax(320px,1.4fr) minmax(460px,1fr);align-items:center;gap:24px; }
.match-detail-header .match-detail-identity { display:block;margin:0; }
.match-detail-header .match-detail-identity h1 { display:flex;align-items:center;gap:12px; }
.match-detail-header .match-detail-identity h1 strong { margin:0;padding:4px 9px;border-radius:6px;background:#f3f4f6;font-variant-numeric:tabular-nums; }
.match-detail-header .match-detail-facts { display:grid;grid-template-columns:repeat(5,minmax(74px,1fr));gap:12px;margin:0; }
.match-detail-header .match-detail-facts span { color:#111827;font-size:12px;line-height:16px;font-variant-numeric:tabular-nums; }
.match-detail-header .match-detail-facts small { display:block;color:#6b7280;font-size:11px;line-height:16px; }
.match-overview { display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:16px; }
.match-overview-card { min-width:0;padding:16px;border:1px solid #e5e7eb;border-radius:8px;background:#fff; }
.match-overview-card h2 { margin:0 0 10px;color:#6b7280;font-size:12px;line-height:16px;font-weight:600;text-transform:uppercase;letter-spacing:.03em; }
.match-overview-card > strong { display:block;min-height:24px;margin-bottom:12px;color:#111827;font-size:14px;line-height:20px; }
.match-overview-card dl { display:grid;grid-template-columns:minmax(80px,1fr) minmax(90px,1.4fr);gap:6px 10px;margin:0;font-size:12px;line-height:16px; }
.match-overview-card dt { color:#6b7280; }.match-overview-card dd { margin:0;overflow-wrap:anywhere; }
.match-odds-summary > span { display:block;margin:-6px 0 10px;color:#6b7280;font-size:12px;line-height:16px; }
.match-table-scroll { overflow-x:auto; }
.match-lineups { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px; }
.match-lineups article { padding:12px;border:1px solid #e5e7eb;border-radius:8px; }.match-lineups h3 { margin:0 0 12px;font-size:16px;line-height:24px; }.match-lineups h4 { margin:12px 0 6px;color:#6b7280;font-size:12px;line-height:16px;text-transform:uppercase; }
.match-lineup-list { display:grid;gap:4px; }.match-lineup-list > span { display:grid;grid-template-columns:28px 1fr auto;gap:8px;padding:5px 8px;border-radius:4px;font-size:13px;line-height:20px; }.match-lineup-list > span:nth-child(odd) { background:#f9fafb; }.match-lineup-list small,.match-lineup-list em { color:#6b7280;font-size:12px; }
.match-publication-actions { display:flex;flex-wrap:wrap;gap:8px;margin:16px 0; }
.match-source-boundary { margin:16px 0 0; }
@media (max-width:1200px) { .match-detail-header { grid-template-columns:1fr; }.match-overview { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:760px) { .matches-heading { flex-direction:column; }.match-overview-grid,.match-overview,.match-lineups { grid-template-columns:1fr; }.match-detail-header h1 { font-size:16px; }.match-detail-header .match-detail-facts { grid-template-columns:repeat(2,minmax(0,1fr)); }.match-tab-panel { padding:12px; } }
.admin-match-title-line {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    white-space: nowrap;
}
.admin-public-match-link {
    display: inline-grid;
    place-items: center;
    width: 20px;
    height: 20px;
    flex: 0 0 20px;
    border: 1px solid #e65219;
    border-radius: 4px;
    background: #f36b21;
    color: #fff;
    font-size: 13px;
    font-weight: 700;
    line-height: 1;
    text-decoration: none;
}
.admin-public-match-link:hover,
.admin-public-match-link:focus-visible {
    background: #d94a12;
    border-color: #c6410f;
    color: #fff;
}
.admin-public-match-link:focus-visible {
    outline: 2px solid rgb(243 107 33 / 35%);
    outline-offset: 2px;
}
.snapshot-status { display: inline-flex; gap: 0.35rem; font-size: 11px; }
.snapshot-dot { width: 7px; height: 7px; border-radius: 50%; display: inline-block; }
.snapshot-dot.ok { background: #1a7a1a; }
.snapshot-dot.pending { background: var(--text-muted); }
.snapshot-dot.failed { background: var(--red); }

/* Completeness indicator in admin matches table */
.completeness-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.2rem 0.5rem;
    border-radius: var(--radius);
    font-size: 12px;
    font-weight: 600;
    cursor: help;
}
.completeness-ready { background: #e6f7e6; color: #1a7a1a; }
.completeness-partial { background: #fff6d6; color: #aa7700; }
.completeness-error { background: #ffe6e6; color: var(--red); }


/* Publication status in admin matches table */
.publication-status { font-size: 12px; font-weight: 600; padding: 0.15rem 0.4rem; border-radius: var(--radius); }
.publication-status.draft { background: #e9ecef; color: #495057; }
.publication-status.ready { background: #e6f7e6; color: #1a7a1a; }
.publication-status.published { background: #d1e7dd; color: #0f5132; }
.publication-status.hidden { background: #f8d7da; color: #842029; }
.matches-table td button { margin-right: 0.3rem; }


/* Match details modal */
.modal-content-wide { max-width: 900px; width: 90%; }

.match-lifecycle-demo { margin: 0 0 1rem; padding: .8rem .9rem; border: 1px solid #e1e3e6; border-radius: 10px; background: #fafafa; }
.match-lifecycle-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: .65rem; }
.match-lifecycle-head h4 { margin: 0; color: #242424; font-size: .95rem; }
.match-lifecycle-head p { margin: .12rem 0 0; color: #8a8f98; font-size: .7rem; }
.match-lifecycle-demo-badge { padding: .14rem .38rem; border: 1px solid #ffb482; border-radius: 4px; color: #e85f00; background: #fff7f1; font-size: .58rem; font-weight: 800; letter-spacing: .08em; }
.match-lifecycle-layout { display: grid; grid-template-columns: minmax(0, 1fr) 152px; gap: .85rem; align-items: stretch; }
.match-lifecycle-scroll { min-width: 0; overflow-x: auto; overflow-y: visible; padding: .15rem 0 .35rem; scrollbar-width: thin; scrollbar-color: #d4d6da transparent; }
.match-lifecycle-track { display: flex; min-width: 600px; align-items: flex-start; }
.lifecycle-step { position: relative; flex: 1 0 64px; min-width: 64px; color: #747980; text-align: center; outline: none; }
.lifecycle-step:not(:last-child)::before { content: ''; position: absolute; z-index: 0; top: 9px; left: calc(50% + 10px); width: calc(100% - 20px); height: 1px; background: #d8dadd; }
.lifecycle-dot { position: relative; z-index: 1; display: flex; width: 19px; height: 19px; margin: 0 auto .26rem; align-items: center; justify-content: center; border: 2px solid #c9ccd1; border-radius: 50%; background: #fafafa; color: #969ba2; font-size: .65rem; font-weight: 800; }
.lifecycle-step b { display: block; color: #3b3e43; font-size: .61rem; line-height: 1.2; letter-spacing: .015em; }
.lifecycle-step small { display: block; margin-top: .12rem; font-size: .57rem; line-height: 1.1; }
.lifecycle-step.is-completed .lifecycle-dot { border-color: #639b73; color: #427d53; }
.lifecycle-step.is-processing .lifecycle-dot { border-color: #ff6b18; color: #e85f00; }
.lifecycle-step.is-processing small { color: #e85f00; }
.lifecycle-step.is-missed .lifecycle-dot,
.lifecycle-step.is-skipped .lifecycle-dot { border-color: #d59a32; color: #a86c08; }
.lifecycle-step.is-error .lifecycle-dot { border-color: #d65a5a; color: #be3535; }
.lifecycle-step.is-unavailable { opacity: .55; }
.lifecycle-step::after { content: attr(data-tooltip); position: absolute; z-index: 20; bottom: calc(100% + 8px); left: 50%; width: 230px; padding: .48rem .58rem; border: 1px solid #3d4147; border-radius: 6px; background: #292c31; color: #fff; font-size: .66rem; font-weight: 400; line-height: 1.35; text-align: left; box-shadow: 0 5px 16px rgba(0,0,0,.18); opacity: 0; visibility: hidden; pointer-events: none; transform: translate(-50%, 4px); transition: opacity .14s ease, transform .14s ease; }
.lifecycle-step:hover::after,
.lifecycle-step:focus::after { opacity: 1; visibility: visible; transform: translate(-50%, 0); }
.match-lifecycle-summary { display: grid; margin: 0; padding-left: .8rem; border-left: 1px solid #e1e3e6; align-content: center; gap: .27rem; }
.match-lifecycle-summary div { display: flex; align-items: baseline; justify-content: space-between; gap: .4rem; }
.match-lifecycle-summary dt { color: #92969d; font-size: .61rem; }
.match-lifecycle-summary dd { margin: 0; color: #33363a; font-size: .65rem; font-weight: 650; text-align: right; white-space: nowrap; }
.summary-status-dot { display: inline-block; width: 6px; height: 6px; margin-right: .25rem; border-radius: 50%; background: #ff6b18; vertical-align: 1px; }

@media (max-width: 760px) {
    .match-lifecycle-layout { grid-template-columns: minmax(0, 1fr); }
    .match-lifecycle-summary { grid-template-columns: repeat(5, minmax(90px, 1fr)); overflow-x: auto; padding: .55rem 0 0; border-top: 1px solid #e1e3e6; border-left: 0; }
    .match-lifecycle-summary div { display: block; }
    .match-lifecycle-summary dd { display: block; margin-top: .08rem; text-align: left; }
}

/* ADM-005 Content and SEO */
.content-catalog,.content-workspace{width:100%;max-width:1500px;color:#18181b;font-family:Inter,"Segoe UI",sans-serif}.content-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;min-height:52px;margin-bottom:8px}.content-heading .admin-page-title{margin:0;font-size:28px;line-height:36px;font-weight:600}.content-heading p{margin:4px 0 0;color:#6b7280;font-size:14px}.content-root-tabs,.content-detail-tabs{display:flex;gap:4px;overflow-x:auto;border-bottom:1px solid #e5e7eb}.content-root-tabs button,.content-detail-tabs button{height:40px;padding:0 12px;border:0;border-bottom:2px solid transparent;background:#fff;color:#6b7280;font:500 14px/20px Inter,sans-serif;white-space:nowrap;cursor:pointer}.content-root-tabs button.is-active,.content-detail-tabs button.is-active{color:#b94800;border-bottom-color:#ff6b00}.content-root-tabs span{display:inline-flex;min-width:20px;justify-content:center;margin-left:4px;padding:0 5px;border-radius:999px;background:#fff1e6;color:#b94800;font-size:11px}.content-toolbar{display:flex;flex-flow:row wrap;align-items:flex-end;gap:8px;padding:12px 0;border-bottom:1px solid #e5e7eb}.content-toolbar label{display:flex;flex-direction:column;gap:4px;min-width:120px;color:#4b5563;font-size:12px;line-height:16px}.content-toolbar .content-search{flex:1 1 230px}.content-toolbar input,.content-toolbar select{height:36px;min-width:120px;padding:0 10px;border:1px solid #e5e7eb;border-radius:6px;background:#fff;color:#111827;font:14px/20px Inter,sans-serif}.content-toolbar .btn{height:36px}.content-check{display:flex!important;flex-direction:row!important;align-items:center;align-self:center;gap:8px!important;min-width:auto!important;height:36px;white-space:nowrap}.content-check input{width:16px;min-width:16px;height:16px;accent-color:#ff6b00}.content-quick-filters{display:flex;flex-wrap:wrap;gap:8px;padding:10px 0}.content-quick-filters button{height:32px;padding:0 10px;border:1px solid #e5e7eb;border-radius:6px;background:#fff;color:#4b5563;font:500 12px/16px Inter,sans-serif;cursor:pointer}.content-quick-filters button.is-active{border-color:#ff6b00;background:#fff7ed;color:#b94800}.content-table-wrap{margin-top:0;border:1px solid #e5e7eb;border-radius:8px}.content-table{min-width:1300px;border:0;border-radius:8px;font:400 14px/20px Inter,sans-serif}.content-table th{height:40px;padding:0 12px;background:#f9fafb;color:#6b7280;border-bottom:1px solid #e5e7eb;font-size:12px}.content-table td{height:56px;padding:8px 12px;vertical-align:middle;border-bottom:1px solid #e5e7eb;color:#18181b}.content-table tr:last-child td{border-bottom:0}.content-row,.incoming-row{cursor:pointer}.content-row:hover td,.content-row:focus td,.incoming-row:hover td,.incoming-row:focus td{background:#f9fafb}.content-table td strong,.content-table td small{display:block}.content-table td small{color:#6b7280;font-size:12px;line-height:16px}.content-type,.content-status,.content-locale-chip,.content-seo-state,.content-link-pill{display:inline-flex;align-items:center;min-height:24px;padding:0 8px;border-radius:5px;font-size:12px;line-height:16px;font-weight:500;white-space:nowrap}.content-type{background:#f3f4f6;color:#4b5563}.content-status{background:#f3f4f6;color:#4b5563}.content-status.is-approved,.content-status.is-published,.content-status.is-converted,.content-seo-state.is-ready{background:#f0fdf4;color:#15803d}.content-status.is-in_review,.content-status.is-reviewed,.content-status.is-scheduled{background:#fff7ed;color:#c2410c}.content-status.is-needs_changes,.content-status.is-rejected,.content-status.is-withdrawn{background:#fef2f2;color:#b91c1c}.content-locales{display:flex;gap:4px}.content-locale-chip{border:1px solid #e5e7eb;background:#f9fafb;color:#9ca3af}.content-locale-chip.is-present{border-color:#bbf7d0;background:#f0fdf4;color:#15803d}.content-publication{display:grid;gap:2px;color:#4b5563;font-size:12px;line-height:16px}.content-publication b{display:inline-block;width:22px;color:#9ca3af;font-size:10px}.content-link-pill{margin:2px 3px 2px 0;background:#f3f4f6;color:#4b5563}.content-muted{color:#9ca3af}.content-seo-state{background:#fff7ed;color:#c2410c}.content-actions-btn{height:32px;padding:0 10px;border:1px solid #e5e7eb;border-radius:6px;background:#fff;color:#374151;font:500 12px/16px Inter,sans-serif;cursor:pointer}.content-actions-btn:hover{border-color:#ff9a4d;color:#b94800}.content-pagination{display:flex;align-items:center;justify-content:space-between;min-height:52px;padding:0 12px;color:#6b7280;font-size:12px}.content-pagination>div{display:flex;gap:8px}.content-empty{padding:28px 16px!important;text-align:center}.content-empty strong,.content-empty span{display:block}.content-empty strong{margin-bottom:4px}.content-empty span{color:#6b7280;font-size:12px}.content-warning{display:inline-flex;padding:3px 6px;border-radius:4px;background:#fffbeb;color:#92400e;font-size:11px}.content-workspace{max-width:1280px}.content-back{height:36px;margin-bottom:16px;padding:0 10px;border:1px solid #e5e7eb;border-radius:6px;background:#fff;color:#374151;font:500 14px/20px Inter,sans-serif;cursor:pointer}.content-detail-header{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:16px;border:1px solid #e5e7eb;border-radius:8px;background:#fff}.content-eyebrow{display:block;margin-bottom:4px;color:#b94800;font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.content-detail-title h1{margin:0 0 10px;font-size:22px;line-height:28px;font-weight:600}.content-detail-title>div{display:flex;flex-wrap:wrap;align-items:center;gap:10px;color:#6b7280;font-size:12px}.content-detail-actions{display:flex;gap:8px}.content-detail-tabs{margin-top:16px}.content-tab-panel{margin-top:16px}.content-overview-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:16px}.content-overview-grid article,.content-links-layout>section,.content-links-layout>form,.content-seo-form section,.content-versions section{min-width:0;padding:16px;border:1px solid #e5e7eb;border-radius:8px;background:#fff}.content-overview-grid h2,.content-links-layout h2,.content-seo-form h2,.content-versions h2{margin:0 0 10px;color:#6b7280;font-size:12px;line-height:16px;font-weight:600;text-transform:uppercase}.content-overview-grid strong{display:block;margin-bottom:8px}.content-overview-grid p{margin:4px 0;color:#6b7280;font-size:13px;line-height:20px}.content-inline-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}.content-inline-actions .btn{height:32px;min-height:32px;padding:0 9px;font-size:12px}.content-ok{color:#15803d!important}.content-draft-strip{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:16px 0;padding:10px 12px;border:1px solid #fed7aa;border-radius:6px;background:#fff7ed;color:#9a3412;font-size:13px}.content-draft-strip button{border:0;background:none;color:#b94800;text-decoration:underline;cursor:pointer}.content-locale-switch{display:flex;gap:0;margin:16px 0;border-bottom:1px solid #e5e7eb}.content-locale-switch button{height:36px;padding:0 14px;border:1px solid #e5e7eb;border-bottom:0;background:#f9fafb;color:#6b7280;font:600 12px/16px Inter,sans-serif;cursor:pointer}.content-locale-switch button:first-child{border-radius:6px 0 0 0}.content-locale-switch button:last-child{border-radius:0 6px 0 0}.content-locale-switch button.is-active{background:#fff;color:#b94800;border-top:2px solid #ff6b00}.content-editor{display:grid;gap:16px;max-width:900px;padding:16px;border:1px solid #e5e7eb;border-radius:8px;background:#fff}.content-editor label,.content-seo-form>label,.content-links-layout form label{display:flex;flex-direction:column;gap:6px;color:#4b5563;font-size:12px}.content-editor input,.content-editor textarea,.content-seo-form input,.content-seo-form textarea,.content-links-layout input,.content-links-layout select{width:100%;padding:9px 10px;border:1px solid #e5e7eb;border-radius:6px;background:#fff;color:#111827;font:14px/20px Inter,sans-serif}.content-editor input{height:36px}.content-editor textarea,.content-seo-form textarea{resize:vertical}.content-editor small{color:#6b7280}.content-editor-toolbar{display:flex;gap:4px;margin-bottom:6px}.content-editor-toolbar button{height:32px;padding:0 9px;border:1px solid #e5e7eb;border-radius:5px;background:#f9fafb;color:#4b5563;cursor:pointer}.content-rich-editor{min-height:220px;padding:12px;border:1px solid #e5e7eb;border-radius:6px;color:#111827;font:15px/24px Inter,sans-serif}.content-rich-editor:focus{outline:2px solid #ff9a4d;outline-offset:2px}.content-readonly{display:flex;flex-direction:column;gap:4px;padding:12px;border-radius:6px;background:#f9fafb;color:#6b7280;font-size:13px}.content-readonly b{color:#374151}.content-savebar{position:sticky;bottom:0;z-index:2;display:flex;justify-content:flex-end;gap:8px;margin-top:12px;padding:12px 0;background:#fff;border-top:1px solid #e5e7eb}.content-links-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(300px,1fr);gap:16px;margin-top:16px}.content-link-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 0;border-bottom:1px solid #e5e7eb}.content-link-row span{display:flex;gap:8px;align-items:center}.content-link-row button{width:32px;height:32px;border:1px solid #e5e7eb;border-radius:6px;background:#fff;color:#6b7280;cursor:pointer}.content-links-layout form{display:grid;gap:10px;align-content:start}.content-links-layout form h2{margin-bottom:0}.content-links-layout form button{justify-self:start}.content-link-results{display:grid;gap:4px}.content-links-layout form #contentLinkResults button{padding:7px 9px;border:1px solid #e5e7eb;border-radius:5px;background:#fff;text-align:left;color:#374151;cursor:pointer}.content-links-layout form #contentLinkResults button.is-active{border-color:#ff6b00;background:#fff7ed;color:#b94800}.content-seo-form{display:grid;gap:12px;max-width:900px;margin-top:16px}.content-seo-form section{display:grid;gap:12px}.content-seo-summary{padding:12px;border:1px solid #fed7aa;border-radius:6px;background:#fff7ed;color:#9a3412}.content-seo-summary strong{display:block;margin-bottom:6px}.content-seo-summary ul{margin:0;padding-left:20px}.content-seo-form dl{display:grid;grid-template-columns:100px 1fr;gap:10px 16px;margin:0;font-size:13px;line-height:20px}.content-seo-form dt{color:#6b7280}.content-seo-form dd{margin:0;color:#111827}.content-seo-form dd label{margin-bottom:6px}.content-seo-form details{padding:10px;border:1px solid #e5e7eb;border-radius:6px}.content-seo-form summary{cursor:pointer;color:#4b5563;font-size:13px}.content-seo-form details input{margin-top:10px}.content-version-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.content-version-cards article{padding:12px;border:1px solid #e5e7eb;border-radius:6px;background:#f9fafb}.content-version-cards span,.content-version-cards strong,.content-version-cards small{display:block}.content-version-cards span,.content-version-cards small{color:#6b7280;font-size:12px}.content-version-cards strong{margin:5px 0}.content-version-event{border-top:1px solid #e5e7eb;padding:10px 0}.content-version-event summary{display:grid;grid-template-columns:1fr auto auto;gap:10px;align-items:center;cursor:pointer;font-size:13px}.content-version-event small{color:#6b7280}.content-version-event pre{max-height:260px;overflow:auto;margin:10px 0 0;padding:10px;background:#f9fafb;font-size:11px}.content-warning-block{padding:10px;border:1px solid #fed7aa;border-radius:6px;background:#fff7ed;color:#92400e;font-size:13px;line-height:20px}.content-warning-block small{display:block;margin-top:6px;color:#9a3412}.content-drawer-backdrop{position:fixed;inset:0;z-index:1100;background:rgba(15,23,42,.35)}.content-drawer{position:fixed;top:0;right:0;bottom:0;z-index:1101;display:flex;flex-direction:column;width:480px;max-width:100vw;background:#fff;box-shadow:-12px 0 32px rgba(15,23,42,.18)}.content-drawer[hidden],.content-drawer-backdrop[hidden]{display:none}.content-drawer>header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:18px 20px;border-bottom:1px solid #e5e7eb}.content-drawer h2{margin:2px 0 0;font-size:18px;line-height:24px}.content-drawer>header button{width:36px;height:36px;border:1px solid #e5e7eb;border-radius:6px;background:#fff;color:#6b7280;font-size:20px;cursor:pointer}.content-drawer-body{flex:1;overflow:auto;padding:20px}.content-drawer-body section{padding:16px 0;border-top:1px solid #e5e7eb}.content-drawer-body section:first-of-type{border-top:0;padding-top:0}.content-drawer-body h3{margin:0 0 8px;font-size:14px}.content-drawer-body p{margin:0 0 8px;color:#6b7280;font-size:13px;line-height:20px}.content-drawer-body a{color:#b94800}.content-drawer-facts{display:grid;grid-template-columns:120px 1fr;gap:8px 12px;margin:0 0 12px;font-size:13px}.content-drawer-facts dt{color:#6b7280}.content-drawer-facts dd{margin:0;color:#111827}.content-drawer-footer,.content-drawer>footer{display:flex;flex-wrap:wrap;gap:8px;padding:14px 20px;border-top:1px solid #e5e7eb}.content-drawer>footer .btn{flex:1 1 auto}.rss-management{margin-top:18px}.rss-management-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.rss-management-heading .settings-block-title{margin-bottom:4px}
@media(max-width:1050px){.content-overview-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.content-links-layout{grid-template-columns:1fr}.content-detail-header{align-items:flex-start;flex-direction:column}.content-detail-actions{width:100%}}
@media(max-width:760px){.content-heading{flex-direction:column}.content-heading .btn{width:100%}.content-toolbar label{flex:1 1 140px}.content-overview-grid,.content-version-cards{grid-template-columns:1fr}.content-detail-title h1{font-size:18px;line-height:24px}.content-drawer{width:100%}.content-drawer>footer .btn{min-height:36px}.content-seo-form dl{grid-template-columns:1fr}.content-seo-form dt{font-weight:600}.content-version-event summary{grid-template-columns:1fr}.rss-management-heading{flex-direction:column}.rss-management-heading .btn{width:100%}}

/* API source control center */
.api-source-cards { display: grid; gap: 18px; }
.api-source-card { border: 1px solid #dedede; border-radius: 14px; background: #fff; box-shadow: 0 5px 16px rgba(24, 24, 24, .07); overflow: hidden; }
.api-source-card-head { display: flex; justify-content: space-between; gap: 20px; padding: 20px 22px; border-bottom: 1px solid #ececec; background: linear-gradient(100deg, #fff 70%, #fff6f0); }
.api-source-card-head h3 { margin: 3px 0 7px; font-size: 22px; }
.api-source-card-head code { color: #666; word-break: break-all; }
.api-source-eyebrow { color: #f06722; font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.api-source-head-status { display: flex; align-items: flex-start; gap: 8px; flex-wrap: wrap; justify-content: flex-end; }
.source-state, .scheduler-state { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; font-weight: 700; }
.source-state::before, .scheduler-state::before { content: ''; width: 8px; height: 8px; border-radius: 50%; background: #999; }
.source-state.is-on::before, .scheduler-state.is-running::before { background: #1eae50; box-shadow: 0 0 0 3px rgba(30,174,80,.12); }
.source-state.is-off::before { background: #d62929; }
.api-source-kpis { display: grid; grid-template-columns: repeat(6, minmax(120px, 1fr)); border-bottom: 1px solid #ececec; }
.api-source-kpis > div { padding: 13px 15px; border-right: 1px solid #ececec; }
.api-source-kpis > div:last-child { border-right: 0; }
.api-source-kpis span, .api-source-error span { display: block; margin-bottom: 4px; color: #818181; font-size: 11px; }
.api-source-kpis b, .api-source-error b { font-size: 12px; font-weight: 600; }
.api-source-error { display: grid; grid-template-columns: 130px 1fr; align-items: center; padding: 10px 15px; background: #fafafa; border-bottom: 1px solid #ececec; }
.api-source-error span { margin: 0; }.api-source-error b { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.api-source-actions { display: flex; flex-wrap: wrap; gap: 8px; padding: 14px 18px; border-bottom: 1px solid #ececec; }
.footystats-source-card .api-source-card-head { background: linear-gradient(100deg,#fff 70%,#fff8f2); }
.footystats-kpis { grid-template-columns: repeat(6,minmax(125px,1fr)); }
.footystats-status-panel { background: linear-gradient(180deg,#fff,#fffaf6); }
.footystats-source-label { display:flex;align-items:center;gap:18px;margin-bottom:12px;padding:8px 10px;border-radius:7px;background:#fff4eb;color:#795037;font-size:11px; }
.footystats-source-label span { margin-left:auto; }
.footystats-coverage-grid { display:grid;grid-template-columns:repeat(7,minmax(105px,1fr));gap:7px; }
.footystats-coverage-grid>div { display:grid;grid-template-columns:1fr auto;gap:2px 8px;padding:8px 9px;border:1px solid #e7e7e7;border-radius:7px;background:#fff; }
.footystats-coverage-grid span { grid-column:1/-1;color:#777;font-size:9px; }
.footystats-coverage-grid b { color:#222;font-size:11px; }
.footystats-coverage-grid em { color:#e9631c;font-size:10px;font-style:normal;font-weight:700; }
.footystats-access-list { display:grid;grid-template-columns:repeat(2,minmax(180px,1fr));gap:7px; }
.footystats-access-list>div { padding:8px 10px;border:1px solid #ececec;border-radius:6px;background:#fafafa; }
.footystats-access-list b,.footystats-access-list span { display:block;font-size:10px; }.footystats-access-list span{margin-top:3px;color:#777;}
.api-source-subpanel { padding: 18px 20px; border-bottom: 1px solid #ececec; }
.api-source-subpanel h4 { margin: 0 0 12px; font-size: 15px; }
.source-history-import { background: linear-gradient(180deg, #fff, #fffaf6); }
.history-import-scope { display: grid; grid-template-columns: repeat(4, minmax(150px, 1fr)); margin-bottom: 12px; border: 1px solid #e6e1dc; border-radius: 8px; overflow: hidden; }
.history-import-scope > div { padding: 10px 12px; border-right: 1px solid #ece7e2; background: rgba(255,255,255,.82); }
.history-import-scope > div:last-child { border-right: 0; }
.history-import-scope span { display: block; margin-bottom: 4px; color: #888; font-size: 9px; text-transform: uppercase; letter-spacing: .04em; }
.history-import-scope b { font-size: 12px; }
.history-import-types { display: grid; grid-template-columns: repeat(4, minmax(160px, 1fr)); gap: 6px; }
.history-import-types span { display: flex; align-items: center; gap: 7px; min-height: 30px; padding: 6px 9px; border: 1px solid #ececec; border-radius: 6px; background: #fff; color: #555; font-size: 10px; }
.history-import-types i { width: 7px; height: 7px; flex: 0 0 auto; border-radius: 50%; background: #f06722; }
.history-import-actions { display: flex; align-items: center; gap: 8px; margin-top: 12px; }
.history-import-actions small { margin-left: auto; color: #888; font-size: 10px; }
.history-import-report { margin-top: 12px; padding: 13px; border: 1px solid #ead9cc; border-radius: 8px; background: #fff; }
.history-import-report.is-loading { color: #9a5a27; }
.history-import-report.is-error { border-color: #edcccc; background: #fff5f5; color: #a32626; }
.history-report-heading { display: flex; justify-content: space-between; align-items: center; margin-bottom: 10px; }
.history-report-heading b { color: #d75d16; font-size: 13px; }
.history-report-heading span { color: #888; font-size: 10px; }
.history-report-grid { display: grid; grid-template-columns: repeat(5, minmax(105px, 1fr)); border: 1px solid #ececec; border-radius: 7px; overflow: hidden; }
.history-report-grid > div { padding: 8px 9px; border-right: 1px solid #ececec; border-bottom: 1px solid #ececec; }
.history-report-grid span { display: block; margin-bottom: 3px; color: #888; font-size: 9px; }
.history-report-grid b { font-size: 13px; }
.history-report-availability { display: grid; grid-template-columns: repeat(4, minmax(150px, 1fr)); gap: 5px; margin-top: 9px; }
.history-report-availability span { display: flex; justify-content: space-between; gap: 8px; padding: 6px 8px; border-radius: 5px; background: #f7f7f7; color: #666; font-size: 9px; }
.history-report-availability b { color: #222; font-size: 10px; }
.history-import-report details { margin-top: 9px; color: #9a3131; font-size: 10px; }
.history-import-report pre { max-height: 180px; overflow: auto; white-space: pre-wrap; }
.source-capability-legend { display: flex; flex-wrap: wrap; gap: 7px; margin: -3px 0 12px; }.source-capability-legend span { padding: 4px 7px; border-radius: 999px; font-size: 9px; font-weight: 700; }.source-capability-legend .is-on { background: #eaf8ee; color: #168940; }.source-capability-legend .is-available { background: #fff4e9; color: #b95b13; }.source-capability-legend .is-plan-blocked { background: #fff0f0; color: #b52424; }.source-capability-legend .is-not-provided { background: #eee; color: #777; }
.source-capability-grid { display: grid; grid-template-columns: repeat(3, minmax(220px, 1fr)); gap: 7px; }
.source-capability { display: grid; grid-template-columns: 10px 1fr auto; align-items: center; gap: 7px; min-height: 42px; padding: 8px 10px; border: 1px solid #e4e4e4; border-radius: 7px; background: #fafafa; font-size: 12px; }.source-capability > i { width: 8px; height: 8px; border-radius: 50%; background: #999; }.source-capability em { max-width: 135px; color: #777; font-size: 9px; font-style: normal; font-weight: 700; text-align: right; }.source-capability small { grid-column: 2 / -1; padding-top: 3px; color: #666; font-size: 9px; line-height: 1.45; }.source-capability small b { color: #168940; }.source-capability small strong { color: #b52424; }.source-capability.is-on > i { background: #1eae50; }.source-capability.is-on em { color: #159140; }.source-capability.is-available > i { background: #f08a38; }.source-capability.is-available em { color: #b95b13; }.source-capability.is-plan_blocked > i { background: #d62929; }.source-capability.is-plan_blocked em { color: #b52424; }.source-capability.is-not_provided { color: #888; background: #f5f5f5; }.source-capability.is-not_provided em { color: #888; }
.source-panel-heading { display: flex; justify-content: space-between; gap: 20px; align-items: flex-start; }.source-panel-heading p { margin: -6px 0 12px; color: #777; font-size: 12px; }
.interface-note { padding: 4px 8px; border-radius: 999px; background: #f2f2f2; color: #777; font-size: 10px; }
.source-schedule-table { border: 1px solid #e4e4e4; border-radius: 8px; overflow: hidden; }
.source-schedule-row { display: grid; grid-template-columns: minmax(175px,1.25fr) 58px 125px 155px 75px minmax(245px,1.8fr) 82px; align-items: center; min-height: 46px; border-top: 1px solid #ececec; font-size: 10px; }
.source-schedule-row:first-child { border-top: 0; }.source-schedule-row > span { padding: 8px 10px; }.source-schedule-row.is-head { min-height: 32px; background: #f4f4f4; color: #777; font-weight: 700; }
.source-schedule-row span small { display: block; margin-top: 2px; color: #888; font-size: 9px; }.source-schedule-row select { width: 100%; min-height: 28px; padding: 4px; border: 1px solid #ddd; border-radius: 5px; background: #fff; font-size: 9px; }.scheduler-result { line-height: 1.45; }.scheduler-budget { display: flex; gap: 16px; margin-bottom: 9px; padding: 7px 10px; border-radius: 6px; background: #fff5eb; color: #75431d; font-size: 10px; }.scheduler-budget span { margin-left: auto; }.scheduler-run-result { display: flex; flex-wrap: wrap; gap: 8px 16px; margin-top: 10px; padding: 10px 12px; border: 1px solid #ead8c8; border-radius: 7px; background: #fff8f2; color: #70401a; font-size: 10px; }.scheduler-run-result.is-loading { opacity: .75; }.scheduler-run-result.is-error { border-color: #eccaca; background: #fff3f3; color: #a72c2c; }
.mini-switch input { position: absolute; opacity: 0; }.mini-switch i { display: block; width: 31px; height: 17px; border-radius: 20px; background: #ccc; position: relative; cursor: pointer; }.mini-switch i::after { content: ''; position: absolute; top: 2px; left: 2px; width: 13px; height: 13px; border-radius: 50%; background: #fff; transition: .18s; }.mini-switch input:checked + i { background: #f06722; }.mini-switch input:checked + i::after { transform: translateX(14px); }
.api-run-result { display: flex; flex-wrap: wrap; gap: 12px 20px; align-items: center; padding: 13px 20px; background: #eff9f2; color: #196b34; font-size: 12px; }.api-run-result.is-loading { background: #fff8ed; color: #8a5a00; }.api-run-result.is-error { background: #fff0f0; color: #a11; }
.source-recovery { background: linear-gradient(180deg, #fff, #fbfbfb); }.source-recovery-chain { display: flex; align-items: center; gap: 7px; margin-bottom: 13px; color: #888; font-size: 10px; text-transform: uppercase; letter-spacing: .03em; }.source-recovery-chain span { padding: 5px 8px; border: 1px solid #e1e1e1; border-radius: 5px; background: #fff; }.source-recovery-chain i { color: #f06722; font-style: normal; font-weight: 700; }.source-recovery-kpis { display: grid; grid-template-columns: repeat(6, minmax(125px, 1fr)); border: 1px solid #e3e3e3; border-radius: 8px; overflow: hidden; }.source-recovery-kpis > div { padding: 11px 12px; border-right: 1px solid #e8e8e8; }.source-recovery-kpis > div:last-child { border-right: 0; }.source-recovery-kpis span { display: block; margin-bottom: 5px; color: #858585; font-size: 10px; }.source-recovery-kpis b { font-size: 12px; }.source-recovery-actions { display: flex; align-items: center; gap: 8px; margin-top: 12px; }.source-recovery-actions small { margin-left: auto; color: #888; font-size: 10px; }.source-recovery-result { display: flex; flex-wrap: wrap; gap: 10px 18px; margin-top: 10px; padding: 11px 12px; border-radius: 7px; background: #fff5e9; color: #71420f; font-size: 11px; }.source-recovery-result em { margin-left: auto; color: #a85217; font-style: normal; font-weight: 700; }
.api-source-dialog { width: min(1180px, 94vw); max-height: 86vh; padding: 0; border: 0; border-radius: 12px; box-shadow: 0 22px 70px rgba(0,0,0,.32); }.api-source-dialog::backdrop { background: rgba(0,0,0,.48); }
.api-source-dialog-head { display: flex; align-items: center; justify-content: space-between; padding: 16px 20px; border-bottom: 1px solid #ddd; }.api-source-dialog-head h3 { margin: 0; }.api-source-dialog #api-source-dialog-content { max-height: calc(86vh - 64px); padding: 18px; overflow: auto; }
.source-api-log { min-width: 1050px; }.source-history-table { min-width: 900px; }.source-raw-detail { min-height: 100px; margin: 14px 0 0; padding: 14px; overflow: auto; border-radius: 8px; background: #242424; color: #eee; font-size: 11px; white-space: pre-wrap; }
@media (max-width: 1050px) { .api-source-kpis { grid-template-columns: repeat(3, 1fr); }.footystats-coverage-grid{grid-template-columns:repeat(4,1fr)}.source-capability-grid { grid-template-columns: repeat(2, 1fr); }.history-import-types,.history-report-availability { grid-template-columns: repeat(3, 1fr); }.history-report-grid { grid-template-columns: repeat(3, 1fr); }.source-schedule-table { overflow-x: auto; }.source-schedule-row { min-width: 900px; }.source-recovery-kpis { grid-template-columns: repeat(3, 1fr); }.source-recovery-kpis > div:nth-child(3) { border-right: 0; }.source-recovery-actions { align-items: flex-start; flex-wrap: wrap; }.source-recovery-actions small { width: 100%; margin-left: 0; } }
.match-detail-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem; }
.match-detail-grid .form-group-wide { grid-column: 1 / -1; }
.detail-value { padding: 0.4rem 0; font-size: 14px; color: var(--text); min-height: 1.6rem; }
.match-odds-block { margin-top: 1.25rem; padding-top: 1rem; border-top: 1px solid var(--border); }
.match-odds-block h4 { margin-bottom: 0.75rem; font-size: 1rem; }
.odds-snapshots-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0.75rem; }
.odds-snapshot-card { border: 1px solid var(--border); border-radius: var(--radius); padding: 0.75rem; background: var(--bg); }
.odds-snapshot-card .snapshot-point { font-weight: 700; font-size: 14px; }
.odds-snapshot-card .snapshot-count { font-size: 13px; color: var(--text-muted); }
.odds-snapshot-card .snapshot-time { font-size: 12px; color: var(--text-muted); }
.match-sync-block { margin-top: 1rem; padding: 14px; border: 1px solid #ead9cc; border-radius: var(--radius); background: #fffaf6; }
.match-sync-heading { display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.match-sync-heading h4 { margin: 0 0 3px; font-size: 14px; }
.match-sync-heading p { margin: 0; color: var(--text-muted); font-size: 11px; }
.match-sync-report { margin-top: 12px; padding: 11px; border: 1px solid #eadfd7; border-radius: 7px; background: #fff; font-size: 11px; }
.match-sync-report.is-loading { color: #99511b; }
.match-sync-report.is-error { border-color: #efcccc; background: #fff4f4; color: #a92525; }
.match-sync-summary { display: grid; grid-template-columns: repeat(3, 1fr); gap: 7px; }
.match-sync-summary span { padding: 7px 8px; border-radius: 5px; background: #f7f7f7; }
.match-sync-summary small { display: block; margin-bottom: 2px; color: #888; font-size: 9px; }
.match-sync-summary b { font-size: 11px; }
.match-sync-fields { margin-top: 8px; }
.match-sync-fields p { margin: 4px 0; line-height: 1.45; }
.match-odds-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 10px; }
.match-odds-heading h4 { margin: 0; }
.normalized-odds-view { margin-top: 12px; border: 1px solid #e3e3e3; border-radius: 8px; overflow: hidden; background: #fff; }
.normalized-odds-tabs { display: flex; border-bottom: 1px solid #e7e7e7; background: #fafafa; }
.normalized-odds-tabs button { padding: 9px 14px; border: 0; border-right: 1px solid #e7e7e7; background: transparent; color: #555; font-size: 11px; cursor: pointer; }
.normalized-odds-tabs button.active { background: #fff; color: #e96119; box-shadow: inset 0 -2px #f06722; font-weight: 700; }
.normalized-odds-status { display: flex; flex-wrap: wrap; gap: 7px 16px; padding: 9px 12px; border-bottom: 1px solid #f0e2d7; background: #fff8f1; color: #7d491f; font-size: 10px; }
.normalized-odds-status.is-error { background: #fff2f2; color: #a72727; }
.normalized-odds-content { max-height: 430px; overflow: auto; padding: 11px; }
.odds-snapshot-state + .odds-snapshot-state { margin-top: 14px; padding-top: 14px; border-top: 2px solid #eee; }
.odds-snapshot-state > header { display: flex; justify-content: space-between; margin-bottom: 9px; font-size: 11px; }
.odds-snapshot-state > header span { color: #888; }
.odds-market-group + .odds-market-group { margin-top: 10px; }
.odds-market-group h5 { margin: 0 0 5px; color: #e96119; font-size: 11px; }
.odds-normalized-table { border: 1px solid #ececec; border-radius: 6px; overflow: hidden; }
.odds-normalized-table > div { display: grid; grid-template-columns: 1.5fr .8fr .45fr .45fr 1fr; align-items: center; min-height: 28px; border-bottom: 1px solid #eee; }
.odds-normalized-table > div:last-child { border-bottom: 0; }
.odds-normalized-table > div:nth-child(even):not(.is-head) { background: #fafafa; }
.odds-normalized-table span,.odds-normalized-table b { padding: 5px 7px; font-size: 9px; }
.odds-normalized-table span small { margin-left: 4px; color: #999; font-size: 8px; }
.odds-normalized-table .is-head { background: #f3f3f3; color: #777; font-weight: 700; }
.queue-competition-tabs{display:flex;gap:6px;margin:10px 0}.queue-competition-tabs button{padding:6px 12px;border:1px solid #ddd;border-radius:6px;background:#fff;color:#444;font-size:10px;cursor:pointer}.queue-competition-tabs button.is-active{border-color:#f06722;background:#fff4ec;color:#d95513}.queue-summary-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:8px 0 12px}.queue-summary-card{padding:10px;border:1px solid #e2e2e2;border-radius:8px;background:#fff}.queue-summary-card header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.queue-summary-card header b{font-size:12px}.queue-summary-card header button,.queue-details-close{border:0;background:none;color:#e65e19;font-size:9px;cursor:pointer}.queue-summary-card>div{display:grid;grid-template-columns:repeat(2,1fr);gap:5px 8px}.queue-summary-card span{color:#777;font-size:9px}.queue-summary-card span b{float:right;color:#222}.queue-details{margin-top:12px;border:1px solid #ddd;border-radius:8px;background:#fff;overflow:hidden}.queue-details-head{display:flex;justify-content:space-between;padding:10px 12px;border-bottom:1px solid #eee}.queue-filters{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;padding:9px 12px;background:#fafafa}.queue-filters select{min-height:29px;border:1px solid #ddd;border-radius:5px;background:#fff;font-size:9px}.queue-table-wrap{overflow-x:auto}.queue-table{width:100%;min-width:1050px;border-collapse:collapse;font-size:9px}.queue-table th,.queue-table td{padding:7px 8px;border-bottom:1px solid #eee;text-align:left;white-space:nowrap}.queue-table td:nth-child(2){max-width:220px;overflow:hidden;text-overflow:ellipsis}.queue-table td:nth-child(10){max-width:170px;overflow:hidden;text-overflow:ellipsis}.queue-state{padding:3px 6px;border-radius:4px;background:#eee}.queue-state.is-done{background:#eaf7ed;color:#207534}.queue-state.is-processing{background:#fff1e6;color:#c55215}.queue-state.is-deferred{background:#fff7da;color:#806300}.queue-state.is-error{background:#fdecec;color:#a82b2b}
.queue-state.is-missed{background:#fff1e6;color:#a84d18}.queue-state.is-skipped{background:#f1f1f1;color:#666}
@media(max-width:1050px){.queue-summary-grid{grid-template-columns:repeat(2,1fr)}}


/* Directory (Справочник) section */
.directory-module-card {
    background: #fff;
    border: 1px solid var(--border);
    border-radius: 10px;
    padding: 1.2rem;
}
.directory-module-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 1.2rem;
    flex-wrap: wrap;
    gap: 0.75rem;
}
.directory-module-title {
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--text);
}
.directory-module-status {
    display: inline-flex;
    align-items: center;
    gap: 0.75rem;
}
.directory-status-label {
    font-size: 0.78rem;
    color: var(--accent);
    font-weight: 600;
}
.directory-status-label.directory-status-off {
    color: var(--text-muted);
}
.directory-status-toggle {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    cursor: pointer;
    font-size: 0.78rem;
    color: var(--text);
}
.directory-status-toggle input {
    accent-color: var(--accent);
}
.directory-stats-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
    gap: 1rem;
}
.directory-stat-card {
    background: #fff;
    border: 1px solid var(--border);
    border-radius: 8px;
    padding: 1rem;
    text-align: center;
}
.directory-stat-value {
    font-size: 1.6rem;
    font-weight: 700;
    color: var(--accent);
    line-height: 1;
    margin-bottom: 0.35rem;
}
.directory-stat-label {
    font-size: 0.75rem;
    color: var(--text-muted);
}
.directory-empty {
    color: var(--text-muted);
    padding: 2rem 0;
    text-align: center;
}

/* Football section */
.football-subnav {
    display: flex;
    gap: 0.4rem;
    margin-bottom: 1rem;
    border-bottom: 1px solid var(--border);
}
.football-subnav-item {
    padding: 0.5rem 0.9rem;
    border: 0;
    border-bottom: 2px solid transparent;
    background: transparent;
    color: var(--text-muted);
    cursor: pointer;
    font-size: 0.82rem;
}
.football-subnav-item:hover {
    color: var(--accent);
}
.football-subnav-item.active {
    color: var(--accent);
    border-bottom-color: var(--accent);
    font-weight: 600;
}
.football-tab {
    display: none;
}
.football-tab.active {
    display: block;
}
.football-tab-hint {
    color: var(--text-muted);
    margin-bottom: 1rem;
    font-size: 0.8rem;
}

/* Cascade navigation */
.cascade-nav {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1rem;
}
@media (max-width: 1100px) {
    .cascade-nav {
        grid-template-columns: repeat(2, 1fr);
    }
}
@media (max-width: 640px) {
    .cascade-nav {
        grid-template-columns: 1fr;
    }
}
.cascade-step {
    background: #fff;
    border: 1px solid var(--border);
    border-radius: 8px;
    padding: 0.8rem;
    min-height: 180px;
}
.cascade-step-title {
    font-size: 0.85rem;
    font-weight: 600;
    margin-bottom: 0.7rem;
    color: var(--text);
}
.cascade-list {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
    max-height: 360px;
    overflow-y: auto;
}
.cascade-item {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    width: 100%;
    text-align: left;
    padding: 0.4rem 0.5rem;
    border: 1px solid var(--border);
    border-radius: 5px;
    background: #fff;
    color: var(--text);
    cursor: pointer;
    font-size: 0.78rem;
}
.cascade-item:hover {
    background: #fff8f3;
    border-color: rgba(255, 102, 0, 0.35);
}
.cascade-item.active {
    background: var(--accent);
    border-color: var(--accent);
    color: #fff;
}
.cascade-flag {
    width: 18px;
    height: 14px;
    object-fit: contain;
    flex-shrink: 0;
}
.cascade-empty {
    color: var(--text-muted);
    font-size: 0.75rem;
    margin: 0;
    padding: 0.5rem 0;
}
.cascade-team-item {
    padding: 0.35rem 0.5rem;
    font-size: 0.78rem;
    border-bottom: 1px solid rgb(0 0 0 / 5%);
}
.cascade-team-item:last-child {
    border-bottom: 0;
}

/* Football context panel */
.football-context-panel {
    display: flex;
    align-items: flex-end;
    gap: 0.75rem;
    margin-bottom: 1rem;
    padding: 0.75rem;
    background: #fff;
    border: 1px solid var(--border);
    border-radius: 6px;
    flex-wrap: wrap;
}
.football-context-select {
    min-width: 180px;
    margin-bottom: 0;
}
.football-context-select label {
    font-size: 0.72rem;
    color: var(--text-muted);
    margin-bottom: 0.25rem;
    display: block;
}
.football-context-select select {
    width: 100%;
    padding: 0.35rem 0.5rem;
    border: 1px solid var(--border);
    border-radius: 4px;
    background: #fff;
    font-size: 0.8rem;
    color: var(--text);
}
.football-logo-status {
    display: inline-block;
    padding: 0.15rem 0.4rem;
    border-radius: 4px;
    font-size: 0.72rem;
    background: #e8f5e9;
    color: #2e7d32;
}
.football-logo-status.football-logo-missing {
    background: #f5f5f5;
    color: var(--text-muted);
}
.football-filter-notice {
    margin: 0;
    padding: 0.5rem 0;
    color: var(--text-muted);
    font-size: 0.75rem;
    font-style: italic;
}

/* Team card */
.team-card-header {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-bottom: 1rem;
    flex-wrap: wrap;
}
.team-card-tabs {
    display: flex;
    gap: 0.4rem;
    margin-bottom: 1rem;
    border-bottom: 1px solid var(--border);
}
.team-card-tab {
    padding: 0.5rem 0.9rem;
    border: 0;
    border-bottom: 2px solid transparent;
    background: transparent;
    color: var(--text-muted);
    cursor: pointer;
    font-size: 0.82rem;
}
.team-card-tab:hover:not(:disabled) {
    color: var(--accent);
}
.team-card-tab.active {
    color: var(--accent);
    border-bottom-color: var(--accent);
    font-weight: 600;
}
.team-card-tab:disabled {
    color: var(--text-muted);
    cursor: not-allowed;
    opacity: 0.6;
}
.team-card-panel {
    display: none;
}
.team-card-panel.active {
    display: block;
}
.team-card-form {
    background: #fff;
    border: 1px solid var(--border);
    border-radius: 6px;
    padding: 1rem;
}
.team-card-form .form-row {
    display: flex;
    gap: 1rem;
    flex-wrap: wrap;
    margin-bottom: 0.75rem;
}
.team-card-form .form-group {
    flex: 1 1 220px;
    margin-bottom: 0.5rem;
}
.team-card-form .form-group label {
    display: block;
    font-size: 0.72rem;
    color: var(--text-muted);
    margin-bottom: 0.25rem;
}
.team-card-form .form-group input[readonly] {
    background: #f5f5f5;
    color: var(--text-muted);
}
.team-card-logo-group {
    flex: 1 1 100%;
}
.team-card-logo-preview {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-top: 0.5rem;
    min-height: 48px;
}
.team-card-logo-preview img {
    max-width: 64px;
    max-height: 64px;
    object-fit: contain;
    border: 1px solid var(--border);
    border-radius: 4px;
    padding: 2px;
    background: #fff;
}
.team-card-logo-status {
    font-size: 0.75rem;
    padding: 0.2rem 0.45rem;
    border-radius: 4px;
}
.team-card-logo-status.ok {
    background: #e8f5e9;
    color: #2e7d32;
}
.team-card-logo-status.placeholder {
    background: #fff8e1;
    color: #f57f17;
}
.team-card-logo-status.missing {
    background: #f5f5f5;
    color: var(--text-muted);
}

.football-empty-state {
    text-align: center;
    padding: 2rem;
    color: var(--text-muted);
    background: #fff;
    border: 1px dashed var(--border);
    border-radius: 6px;
}
.football-team-card-wrapper {
    margin-top: 1rem;
}
.team-card-alias-chip {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    padding: 0.25rem 0.55rem;
    background: #f5f5f5;
    border: 1px solid var(--border);
    border-radius: 4px;
    font-size: 0.75rem;
    margin: 0.15rem;
}
.team-card-alias-chip code {
    background: #fff;
    padding: 0.05rem 0.2rem;
    border-radius: 3px;
    font-size: 0.7rem;
}
.team-card-filters {
    margin-bottom: 0.75rem;
}
.team-card-filters .form-group {
    flex: 0 1 200px;
}
.stat-card-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
    gap: 0.75rem;
    margin-bottom: 1rem;
}
.stat-card {
    background: #fff;
    border: 1px solid var(--border);
    border-radius: 6px;
    padding: 0.6rem;
    text-align: center;
}
.stat-card span {
    display: block;
    font-size: 0.7rem;
    color: var(--text-muted);
    margin-bottom: 0.2rem;
}
.stat-card b {
    font-size: 1.1rem;
    color: var(--text);
}

/* ADM-007 data sources, ADM-012 monitoring, ADM-013 system */
.sources-page,.monitoring-page,.system-page{width:100%;max-width:1600px;color:#18181b;font-family:Inter,"Segoe UI",sans-serif}.source-page-heading{display:flex;min-height:56px;align-items:flex-start;justify-content:space-between;gap:24px}.source-page-heading h1,.source-page-heading p{margin:0}.source-page-heading h1{font-size:28px;line-height:36px;font-weight:600}.source-page-heading p{margin-top:2px;color:#667085;font-size:14px;line-height:20px}.source-page-heading .btn{height:36px}.source-root-tabs,.source-detail-tabs{display:flex;gap:4px;border-bottom:1px solid #e5e7eb}.source-root-tabs{margin-top:8px}.source-root-tabs button,.source-detail-tabs button{height:40px;padding:0 14px;border:0;border-bottom:2px solid transparent;background:#fff;color:#667085;font:500 14px/20px Inter,sans-serif;white-space:nowrap;cursor:pointer}.source-root-tabs button:hover,.source-detail-tabs button:hover{color:#b94800}.source-root-tabs button:focus-visible,.source-detail-tabs button:focus-visible,.source-rail-item:focus-visible,.runtime-summary button:focus-visible{outline:2px solid #ff9a4d;outline-offset:2px}.source-root-tabs button.is-active,.source-detail-tabs button.is-active{border-bottom-color:#ff6b00;color:#b94800}.source-root-panel{padding-top:16px}.source-api-layout{display:grid;grid-template-columns:252px minmax(0,1fr);gap:16px;align-items:start}.source-rail{position:sticky;top:0;max-height:calc(100vh - 150px);padding:8px;border:1px solid #e5e7eb;border-radius:8px;background:#f8f9fa;overflow-y:auto}.source-rail-label{padding:6px 8px 10px;color:#8a9099;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.source-rail-item{display:grid;width:100%;min-height:76px;margin-bottom:4px;padding:10px;border:1px solid transparent;border-radius:8px;background:transparent;color:#18181b;text-align:left;cursor:pointer}.source-rail-item:hover{background:#fff;border-color:#e5e7eb}.source-rail-item.is-active{border-color:#ffc9a3;background:#fff;box-shadow:inset 3px 0 #ff6b00}.source-rail-item>span{display:flex;align-items:center;justify-content:space-between;gap:8px}.source-rail-item b{overflow:hidden;font-size:13px;text-overflow:ellipsis;white-space:nowrap}.source-rail-item>span i{width:7px;height:7px;flex:0 0 7px;border-radius:50%;background:#d14343}.source-rail-item em{margin-top:4px;color:#667085;font-size:11px;font-style:normal;font-weight:600}.source-rail-item em.is-connected{color:#16794a}.source-rail-item em.is-degraded,.source-rail-item em.is-auth,.source-rail-item em.is-rate{color:#b42318}.source-rail-item small{margin-top:4px;color:#8a9099;font-size:10px}.source-rail-item.is-future{opacity:.6;cursor:not-allowed}.source-detail-workspace{min-width:0;border:1px solid #e5e7eb;border-radius:8px;background:#fff;overflow:hidden}.source-detail-header{display:flex;min-height:88px;padding:18px 20px;align-items:flex-start;justify-content:space-between;gap:20px;background:linear-gradient(105deg,#fff 72%,#fff6ef)}.source-detail-header h2{margin:2px 0 5px;font-size:22px;line-height:28px}.source-detail-header code{display:block;max-width:800px;overflow:hidden;color:#667085;font:12px/18px ui-monospace,SFMono-Regular,Consolas,monospace;text-overflow:ellipsis;white-space:nowrap}.source-connection{display:inline-flex;min-height:28px;padding:0 10px;align-items:center;gap:7px;border:1px solid #d0d5dd;border-radius:999px;background:#fff;color:#475467;font-size:12px;font-weight:650;white-space:nowrap}.source-connection i{width:8px;height:8px;border-radius:50%;background:#98a2b3}.source-connection.is-connected{border-color:#a6dfc2;color:#16794a}.source-connection.is-connected i{background:#1b9a5d}.source-connection.is-disabled{color:#667085}.source-connection.is-degraded,.source-connection.is-auth,.source-connection.is-rate{border-color:#f6b5b0;color:#b42318}.source-connection.is-degraded i,.source-connection.is-auth i,.source-connection.is-rate i{background:#d14343}.source-connection.is-plan{border-color:#f4cf8a;color:#8a5a00}.source-connection.is-plan i{background:#d69e2e}.source-detail-tabs{padding:0 10px;background:#fff}.source-detail-body{padding:16px 20px 20px}.source-kpi-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid #e5e7eb;border-radius:8px;overflow:hidden}.source-kpi-grid>div{min-height:66px;padding:10px 12px;border-right:1px solid #e5e7eb;border-bottom:1px solid #e5e7eb}.source-kpi-grid>div:nth-child(3n){border-right:0}.source-kpi-grid span,.source-count-strip span,.monitoring-status-grid span{display:block;margin-bottom:5px;color:#667085;font-size:11px}.source-kpi-grid b{display:block;overflow:hidden;font-size:12px;font-weight:650;text-overflow:ellipsis;white-space:nowrap}.source-detail-body .api-source-error{margin-top:12px;border:1px solid #e5e7eb;border-radius:8px;background:#f9fafb}.runtime-summary{display:flex;min-height:44px;margin-top:12px;padding:0 12px;align-items:center;justify-content:space-between;border:1px solid #e5e7eb;border-radius:8px;background:#fff}.runtime-summary span{display:flex;align-items:center;gap:8px;color:#475467;font-size:12px;font-weight:600}.runtime-summary i{width:8px;height:8px;border-radius:50%;background:#d14343}.runtime-summary i.is-ok{background:#1b9a5d}.runtime-summary button{border:0;background:transparent;color:#c34f00;font:600 12px Inter,sans-serif;cursor:pointer}.source-detail-body>.api-source-actions{padding:14px 0 0;border:0}.source-panel{min-width:0}.source-panel h3,.monitoring-panel h2{margin:0 0 12px;font-size:16px}.source-panel-heading h3,.monitoring-panel .source-panel-heading h2{margin-bottom:0}.budget-warning,.provider-note{display:flex;margin-top:12px;padding:10px 12px;align-items:center;gap:12px;border:1px solid #f1cfad;border-radius:8px;background:#fff8f1;color:#75431d;font-size:11px}.budget-warning span,.provider-note span{color:#795b45}.source-count-strip,.queue-total-strip{display:grid;grid-template-columns:repeat(5,1fr);margin-top:12px;border:1px solid #e5e7eb;border-radius:8px;overflow:hidden}.source-count-strip>div,.queue-total-strip>div{min-height:62px;padding:10px 12px;border-right:1px solid #e5e7eb}.source-count-strip>div:last-child,.queue-total-strip>div:last-child{border-right:0}.source-count-strip b,.queue-total-strip b{display:block;margin-bottom:4px;font-size:18px}.coverage-filter{display:flex;min-height:36px;align-items:center;gap:7px;color:#475467;font-size:12px}.coverage-filter input{accent-color:#ff6b00}.coverage-table-wrap{border:1px solid #e5e7eb;border-radius:8px}.coverage-table{border:0}.coverage-table th{height:40px;background:#f2f4f7;color:#475467}.coverage-table td{height:52px}.coverage-state{display:inline-flex;padding:4px 8px;border-radius:999px;font-size:11px;font-weight:650}.coverage-state.is-complete{background:#eaf7ef;color:#16794a}.coverage-state.is-partial{background:#fff4db;color:#8a5a00}.coverage-state.is-missing{background:#fbeceb;color:#b42318}.rss-management{min-width:0}.rss-management-heading{display:flex;min-height:52px;align-items:flex-start;justify-content:space-between;gap:16px}.rss-management-heading h2{margin:0;font-size:18px}.rss-management .admin-table-wrap{margin-top:8px;border:1px solid #e5e7eb;border-radius:8px}.rss-management .admin-table{min-width:1420px;border:0}.rss-management .admin-table th{height:40px;background:#f2f4f7;color:#475467}.rss-management .admin-table td{height:52px}.rss-source-actions{min-width:360px}.btn-rss-link{border:0;background:transparent;color:#c34f00}.form-hint.is-success{color:#16794a}.form-hint.is-error{color:#b42318}.monitoring-status-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:16px}.monitoring-status-grid article{min-height:76px;padding:14px;border:1px solid #e5e7eb;border-radius:8px;background:#fff}.monitoring-status-grid b{font-size:14px}.monitoring-status-grid b.is-ok{color:#16794a}.monitoring-status-grid b.is-error{color:#b42318}.monitoring-panel{margin-top:16px;padding:16px;border:1px solid #e5e7eb;border-radius:8px;background:#fff}.monitoring-panel .source-recovery-chain{margin-top:12px}.monitoring-panel .queue-summary-grid{margin-top:12px}.monitoring-panel .admin-table-wrap{max-height:430px;overflow:auto}.system-page>.settings-block{margin-top:16px;border:1px solid #e5e7eb;border-radius:8px;background:#fff}.system-page .maintenance-setting-field input{height:36px;padding:0 10px}.source-empty{display:grid;min-height:280px;place-content:center;gap:6px;text-align:center}.source-empty span{color:#667085;font-size:13px}
.admin-topbar-left{display:flex;align-items:center;min-width:0}
.admin-topbar-center{display:flex;align-items:center;justify-content:center;gap:10px;flex:1 1 auto;min-width:0}
.admin-topbar-right{display:flex;align-items:center;gap:12px;flex:0 0 auto}
.admin-topbar .timezone-popup{min-width:300px;max-width:340px;padding:8px}
.admin-topbar .timezone-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.admin-status-indicator{display:inline-flex;align-items:center;gap:8px;height:36px;padding:0 14px;border:1px solid #d0d5dd;border-radius:999px;background:#fff;color:#475467;font:600 12px/16px Inter,"Segoe UI",sans-serif;white-space:nowrap}
.admin-status-indicator i{width:9px;height:9px;flex:0 0 9px;border-radius:50%;background:#98a2b3}
.admin-status-indicator.is-ok{border-color:#a6dfc2;background:#f0fdf4;color:#15803d}
.admin-status-indicator.is-ok i{background:#1b9a5d}
.admin-status-indicator.is-warning{border-color:#f4cf8a;background:#fffbeb;color:#8a5a00}
.admin-status-indicator.is-warning i{background:#d69e2e}
.admin-status-indicator.is-critical{border-color:#f6b5b0;background:#fef2f2;color:#b42318}
.admin-status-indicator.is-critical i{background:#d14343}
.admin-status-indicator.is-unknown{color:#667085}
.admin-sound-control{display:inline-flex;align-items:center;gap:8px;height:36px}
.admin-sound-icon{font-size:14px;line-height:1}
.admin-sound-label{color:#475467;font:600 12px/16px Inter,"Segoe UI",sans-serif}
.admin-sound-seg{display:inline-flex;padding:2px;border:1px solid #d7dbe0;border-radius:6px;background:#f4f5f6}
.admin-sound-option{width:44px;height:28px;border:0;border-radius:4px;background:transparent;color:#667085;font:600 12px/16px Inter,"Segoe UI",sans-serif;cursor:pointer;transition:background-color 120ms ease,color 120ms ease}
.admin-sound-option:hover:not(:disabled){color:#18181b}
.admin-sound-option.is-active{background:#ff6b00;color:#fff}
.admin-sound-option:focus-visible{outline:2px solid #ff9a4d;outline-offset:1px}
.admin-sound-option:disabled{cursor:not-allowed;color:#9ca3af}
.admin-sound-option.is-active:disabled{background:#ffb27a;color:#fff}
.admin-sound-seg.is-blocked{border-style:dashed}
.admin-sound-seg.is-pending{border-style:dashed}
.admin-local-clock{color:#18181b;font:600 14px/20px Inter,"Segoe UI",sans-serif;font-variant-numeric:tabular-nums;white-space:nowrap}
.admin-user-control{position:relative}
.admin-user-trigger{display:inline-flex;align-items:center;gap:6px;max-width:260px;height:36px;padding:0 12px;border:1px solid #e5e7eb;border-radius:6px;background:#fff;color:#18181b;font:500 13px/18px Inter,"Segoe UI",sans-serif;cursor:pointer;transition:border-color 120ms ease,background-color 120ms ease}
.admin-user-trigger:hover{background:#f9fafb;border-color:#cbd5e1}
.admin-user-trigger:focus-visible{outline:2px solid #ff9a4d;outline-offset:2px}
.admin-user-role{color:#b94800;font-weight:600;white-space:nowrap}
.admin-user-sep{color:#98a2b3}
.admin-user-name{overflow:hidden;font-weight:600;text-overflow:ellipsis;white-space:nowrap}
.admin-user-popup{position:absolute;top:calc(100% + 8px);right:0;z-index:1000;width:260px;padding:14px;border:1px solid var(--border);border-radius:var(--radius);background:#fff;color:var(--text);box-shadow:0 4px 12px rgba(0,0,0,0.15)}
.admin-user-popup-head{display:flex;flex-direction:column;gap:2px;padding-bottom:10px;border-bottom:1px solid #eef0f2}
.admin-user-popup-head strong{font:600 14px/20px Inter,"Segoe UI",sans-serif}
.admin-user-popup-head span{color:#b94800;font:600 12px/16px Inter,"Segoe UI",sans-serif}
.admin-user-popup-facts{margin:10px 0 12px}
.admin-user-popup-facts>div{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-top:6px}
.admin-user-popup-facts dt{color:#8a9099;font:400 12px/16px Inter,"Segoe UI",sans-serif}
.admin-user-popup-facts dd{margin:0;overflow:hidden;color:#18181b;font:500 12px/16px Inter,"Segoe UI",sans-serif;text-overflow:ellipsis;white-space:nowrap}
.admin-user-logout{width:100%}
@media(max-width:1100px){.admin-local-clock{display:none}}
@media(max-width:980px){.admin-user-role,.admin-user-sep{display:none}}
@media(max-width:820px){.admin-topbar-center{display:none}}
.monitoring-attention{margin-top:16px;border:1px solid #e5e7eb;border-radius:8px;background:#fff;overflow:hidden}
.monitoring-attention-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px;border-bottom:1px solid #e5e7eb}
.monitoring-attention-head h2{margin:0;font-size:16px}
.monitoring-attention-head p{margin:2px 0 0;color:#667085;font-size:12px}
.monitoring-new-badge{display:inline-flex;align-items:center;height:24px;padding:0 10px;border-radius:999px;background:#fff1e6;color:#b94800;font:600 12px/16px Inter,"Segoe UI",sans-serif;white-space:nowrap}
.monitoring-new-badge.is-empty{background:#f2f4f7;color:#667085}
.monitoring-attention-list{display:flex;flex-direction:column}
.monitoring-attention-row{display:grid;grid-template-columns:92px minmax(220px,1fr) 132px 64px 96px;align-items:center;gap:12px;min-height:56px;padding:8px 16px;border-bottom:1px solid #e5e7eb}
.monitoring-attention-row:last-child{border-bottom:0}
.monitoring-attention-row.is-new{background:#fff8f1;box-shadow:inset 3px 0 0 #ff6b00}
.monitoring-attention-row.is-upgraded{background:#fff5f5;box-shadow:inset 3px 0 0 #d14343}
.monitoring-attention-main{display:flex;flex-direction:column;min-width:0}
.monitoring-attention-main strong{overflow:hidden;font:500 14px/20px Inter,"Segoe UI",sans-serif;text-overflow:ellipsis;white-space:nowrap}
.monitoring-attention-main small{overflow:hidden;color:#667085;font:400 12px/16px Inter,"Segoe UI",sans-serif;text-overflow:ellipsis;white-space:nowrap}
.monitoring-attention-component{color:#475467;font:400 12px/16px Inter,"Segoe UI",sans-serif}
.monitoring-attention-count{color:#18181b;font:650 12px/16px Inter,"Segoe UI",sans-serif}
.monitoring-attention-open{justify-self:end}
.monitoring-healthy{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:2px;min-height:84px;padding:18px;background:#f0fdf4;text-align:center}
.monitoring-healthy strong{color:#15803d;font:600 15px/22px Inter,"Segoe UI",sans-serif}
.monitoring-healthy span{color:#166534;font:400 12px/18px Inter,"Segoe UI",sans-serif}
@media(max-width:760px){.monitoring-attention-row{grid-template-columns:84px minmax(0,1fr);grid-auto-rows:auto;gap:6px 10px;padding:10px 14px}.monitoring-attention-component,.monitoring-attention-count{display:none}.monitoring-attention-open{grid-column:2;justify-self:start}}

@media(max-width:1200px){.source-api-layout{grid-template-columns:232px minmax(0,1fr)}.source-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.source-kpi-grid>div:nth-child(3n){border-right:1px solid #e5e7eb}.source-kpi-grid>div:nth-child(2n){border-right:0}.monitoring-status-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.source-page-heading{flex-direction:column}.source-page-heading .btn{width:100%}.source-root-tabs,.source-detail-tabs{overflow-x:auto}.source-api-layout{grid-template-columns:1fr}.source-rail{position:static;display:block;max-height:none;overflow-x:auto;white-space:nowrap}.source-rail-label{display:none}.source-rail #apiSourceRail{display:flex;gap:6px}.source-rail-item{display:inline-grid;width:210px;min-height:72px;margin:0;white-space:normal}.source-detail-header{flex-direction:column}.source-detail-header code{max-width:100%}.source-detail-body{padding:14px}.source-kpi-grid{grid-template-columns:1fr}.source-kpi-grid>div,.source-kpi-grid>div:nth-child(2n),.source-kpi-grid>div:nth-child(3n){border-right:0}.source-count-strip,.queue-total-strip{grid-template-columns:repeat(2,1fr)}.source-count-strip>div,.queue-total-strip>div{border-bottom:1px solid #e5e7eb}.history-import-scope,.history-import-types{grid-template-columns:1fr}.history-import-actions,.budget-warning,.provider-note{align-items:flex-start;flex-direction:column}.history-import-actions small{margin-left:0}.monitoring-status-grid{grid-template-columns:1fr}.source-recovery-chain{overflow-x:auto}.system-page .maintenance-settings-grid{grid-template-columns:1fr}}

/* Admin public footer settings. Uses the Admin visual language, never public Footer classes. */
.footer-settings-card{display:flex;align-items:center;justify-content:space-between;gap:24px}.footer-settings-path{display:block;margin-bottom:6px;color:#b94800;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.footer-settings-meta{margin:10px 0 0;color:#8a9099;font-size:12px}.footer-settings-drawer{width:min(680px,100vw)}.footer-settings-drawer>footer{justify-content:flex-end}.footer-dirty-status{margin-right:auto;color:#667085;font-size:12px}.footer-locale-bar{position:sticky;z-index:2;top:0;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 0;background:#fff;border-bottom:1px solid #e5e7eb}.footer-locale-bar>div{display:inline-flex;padding:2px;border:1px solid #d9dde3;border-radius:6px}.footer-locale-bar button{min-width:56px;height:32px;border:0;border-radius:4px;background:#fff;color:#667085;cursor:pointer}.footer-locale-bar button.is-active{background:#ff6600;color:#fff}.footer-editor-section{padding:20px 0;border-bottom:1px solid #e5e7eb}.footer-editor-section h3{margin:0 0 14px;color:#18181b;font-size:15px}.footer-editor-section>label,.footer-link-row>label,.footer-link-options>label{display:flex;flex-direction:column;gap:5px;margin-top:12px;color:#4b5563;font-size:12px}.footer-editor-section input,.footer-editor-section textarea,.footer-editor-section select{box-sizing:border-box;width:100%;min-height:36px;padding:8px 10px;border:1px solid #d9dde3;border-radius:6px;background:#fff;color:#18181b;font:14px/20px Inter,"Segoe UI",sans-serif}.footer-editor-section textarea{resize:vertical}.footer-editor-section input:focus,.footer-editor-section textarea:focus,.footer-editor-section select:focus{outline:2px solid #ffb078;outline-offset:1px;border-color:#ff6600}.footer-form-grid,.footer-toggle-grid,.footer-link-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.footer-toggle-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.footer-section-head,.footer-link-row-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.footer-section-head h3{margin:0}.footer-section-head .btn{height:34px;min-height:34px}.footer-link-list{display:grid;gap:10px;margin-top:14px}.footer-link-row{padding:12px;border:1px solid #e5e7eb;border-radius:8px;background:#f8f9fa}.footer-link-row-head strong{font-size:13px}.footer-link-row-head span{display:flex;gap:4px}.footer-link-row-head button{width:30px;height:30px;border:1px solid #d9dde3;border-radius:5px;background:#fff;color:#4b5563;cursor:pointer}.footer-link-options{grid-template-columns:minmax(110px,1fr) auto auto;align-items:end}.footer-assets-status dl{display:grid;grid-template-columns:100px 1fr;gap:8px;margin:0;font-size:12px}.footer-assets-status dt{color:#667085}.footer-assets-status dd{margin:0;color:#18181b;font-family:ui-monospace,monospace;overflow-wrap:anywhere}
@media(max-width:760px){.footer-settings-card{align-items:flex-start;flex-direction:column}.footer-settings-card .btn{width:100%}.footer-settings-drawer>footer{flex-wrap:wrap}.footer-dirty-status{width:100%;margin:0}.footer-form-grid,.footer-toggle-grid,.footer-link-options{grid-template-columns:1fr}.footer-locale-bar{align-items:flex-start;flex-direction:column}.footer-locale-bar .content-check{min-height:36px}}

/* ADM-007 final composition follows ADM-003/004/005 primitives. */
.sources-page {
    max-width: 1600px;
}

.sources-heading {
    min-height: 52px;
    margin-bottom: 8px;
}

.sources-heading .btn[hidden] {
    display: none;
}

.source-root-tabs {
    margin-top: 0;
}

.source-api-layout {
    grid-template-columns: 252px minmax(0, 1fr);
    gap: 16px;
}

.source-rail {
    padding: 8px;
    border-color: #e5e7eb;
    background: #f9fafb;
}

.source-rail-item {
    min-height: 72px;
    padding: 10px 12px;
    font-family: Inter, "Segoe UI", sans-serif;
}

.source-rail-item.is-active {
    border-color: #fdba74;
    background: #ffffff;
    box-shadow: inset 3px 0 #ff6b00;
}

.source-rail-item b {
    font-size: 14px;
    line-height: 20px;
}

.source-rail-item em,
.source-rail-item small {
    font-size: 12px;
    line-height: 16px;
}

.source-detail-workspace {
    border: 0;
    border-radius: 0;
    container: source-workspace / inline-size;
    overflow: visible;
}

.source-detail-header {
    min-height: 88px;
    padding: 16px;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    background: #ffffff;
}

.source-detail-header h2 {
    margin: 2px 0 4px;
    font: 600 20px/28px Inter, "Segoe UI", sans-serif;
}

.source-detail-header code {
    color: #6b7280;
    font-size: 12px;
    line-height: 16px;
}

.source-detail-tabs {
    margin-top: 16px;
    padding: 0;
}

.source-detail-body.match-tab-panel {
    min-width: 0;
    margin-top: 16px;
    padding: 16px;
}

.source-detail-body h2 {
    margin: 0 0 4px;
    font: 600 18px/24px Inter, "Segoe UI", sans-serif;
}

.source-overview-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
}

.source-info-card {
    min-width: 0;
    padding: 16px;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    background: #ffffff;
}

.source-info-card h3,
.source-capability-card h3,
.source-category-card h3 {
    margin: 0 0 12px;
    color: #18181b;
    font: 600 14px/20px Inter, "Segoe UI", sans-serif;
}

.source-info-card dl {
    display: grid;
    grid-template-columns: minmax(100px, 0.8fr) minmax(0, 1.2fr);
    gap: 8px 12px;
    margin: 0;
    font: 400 13px/18px Inter, "Segoe UI", sans-serif;
}

.source-info-card dt {
    color: #6b7280;
}

.source-info-card dd {
    min-width: 0;
    margin: 0;
    color: #18181b;
    font-weight: 500;
    text-align: right;
}

.source-info-card code,
.source-error-copy {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.source-budget-value.is-near {
    color: #92400e;
}

.source-budget-value.is-exhausted {
    color: #b91c1c;
}

.source-badge {
    display: inline-flex;
    min-height: 24px;
    padding: 0 8px;
    align-items: center;
    gap: 6px;
    border: 1px solid #e5e7eb;
    border-radius: 999px;
    background: #f9fafb;
    color: #4b5563;
    font: 500 12px/16px Inter, "Segoe UI", sans-serif;
    white-space: nowrap;
}

.source-badge i {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: currentColor;
}

.source-badge.is-connected,
.source-badge.is-complete {
    border-color: #bbf7d0;
    background: #f0fdf4;
    color: #15803d;
}

.source-badge.is-degraded,
.source-badge.is-auth,
.source-badge.is-rate,
.source-badge.is-missing {
    border-color: #fecaca;
    background: #fef2f2;
    color: #b91c1c;
}

.source-badge.is-plan,
.source-badge.is-partial {
    border-color: #fde68a;
    background: #fffbeb;
    color: #92400e;
}

.source-badge.is-disabled,
.source-badge.is-neutral {
    color: #6b7280;
    background: #f9fafb;
}

.runtime-summary {
    margin-top: 16px;
    min-height: 44px;
}

.source-action-bar {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 16px;
}

.source-action-bar .btn {
    height: 36px;
}

.source-action-note {
    margin: 8px 0 0;
    color: #6b7280;
    font-size: 12px;
    line-height: 16px;
}

.source-capability-legend {
    margin: 12px 0;
}

.source-capability-legend span {
    min-height: 24px;
    padding: 4px 8px;
    font-size: 11px;
    line-height: 16px;
}

.source-capability-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(320px, 0.8fr);
    gap: 16px;
}

.source-capability-card,
.source-category-card {
    padding: 16px;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    background: #ffffff;
}

.source-capability-row {
    display: flex;
    min-height: 40px;
    padding: 8px 0;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    border-top: 1px solid #eef0f2;
    font-size: 13px;
    line-height: 18px;
}

.source-capability-row:first-child {
    border-top: 0;
}

.source-capability-row > span {
    display: flex;
    align-items: center;
    gap: 8px;
}

.source-capability-row i {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #9ca3af;
}

.source-capability-row i.is-on {
    background: #16a34a;
}

.source-capability-row i.is-plan_blocked {
    background: #d97706;
}

.source-capability-row em {
    color: #6b7280;
    font-size: 12px;
    font-style: normal;
    text-align: right;
}

.source-capability-row em.is-on {
    color: #15803d;
}

.source-capability-card footer {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    padding-top: 12px;
    border-top: 1px solid #eef0f2;
}

.source-scope-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
    margin-top: 16px;
}

.source-scope-grid > div {
    min-width: 0;
    padding: 12px;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    background: #f9fafb;
}

.source-scope-grid span {
    display: block;
    margin-bottom: 4px;
    color: #6b7280;
    font-size: 12px;
    line-height: 16px;
}

.source-scope-grid b {
    font-size: 14px;
    line-height: 20px;
}

.source-category-card {
    margin-top: 16px;
}

.source-category-card > div {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
}

.source-category-card span {
    display: flex;
    min-height: 36px;
    padding: 0 10px;
    align-items: center;
    gap: 8px;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    color: #374151;
    font-size: 12px;
}

.source-category-card i {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #ff6b00;
}

.source-callout {
    display: flex;
    margin-top: 16px;
    padding: 12px;
    align-items: flex-start;
    gap: 12px;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    background: #f9fafb;
    color: #374151;
    font-size: 13px;
    line-height: 18px;
}

.source-callout span {
    color: #6b7280;
}

.source-callout.is-warning {
    border-color: #fed7aa;
    background: #fff7ed;
    color: #9a3412;
}

.source-divider {
    height: 1px;
    margin: 24px 0;
    background: #e5e7eb;
}

.source-budget-bar {
    display: flex;
    min-height: 44px;
    margin: 16px 0 12px;
    padding: 0 12px;
    align-items: center;
    gap: 16px;
    border: 1px solid #fed7aa;
    border-radius: 6px;
    background: #fff7ed;
    color: #7c2d12;
    font-size: 12px;
}

.source-budget-bar b {
    margin-left: auto;
}

.source-budget-bar em {
    font-style: normal;
}

.source-table-wrap {
    width: 100%;
    overflow-x: auto;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
}

.source-table {
    width: 100%;
    border-collapse: collapse;
    background: #ffffff;
    color: #18181b;
    font: 400 14px/20px Inter, "Segoe UI", sans-serif;
}

.source-table th {
    height: 40px;
    padding: 0 16px;
    color: #6b7280;
    background: #f9fafb;
    border-bottom: 1px solid #e5e7eb;
    font: 600 12px/16px Inter, "Segoe UI", sans-serif;
    text-align: left;
    white-space: nowrap;
}

.source-table td {
    height: 52px;
    padding: 8px 16px;
    border-bottom: 1px solid #e5e7eb;
    vertical-align: middle;
    white-space: nowrap;
}

.source-table tbody tr:last-child td {
    border-bottom: 0;
}

.source-table tbody tr:hover {
    background: #f9fafb;
}

.source-table td small {
    display: block;
    color: #6b7280;
    font-size: 12px;
    line-height: 16px;
}

.source-jobs-table {
    min-width: 1120px;
}

.source-job-result {
    max-width: 300px;
    overflow: hidden;
    color: #4b5563;
    font-size: 12px;
    text-overflow: ellipsis;
}

.source-jobs-table select,
.rss-interval-select {
    height: 36px;
    padding: 0 10px;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    background: #ffffff;
    color: #18181b;
    font: 400 14px/20px Inter, "Segoe UI", sans-serif;
}

.source-jobs-table select:focus-visible,
.rss-interval-select:focus-visible,
.source-switch input:focus-visible + span {
    outline: 2px solid #ff9a4d;
    outline-offset: 2px;
}

.source-switch {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    cursor: pointer;
}

.source-switch input {
    position: absolute;
    opacity: 0;
}

.source-switch > span {
    position: relative;
    width: 36px;
    height: 20px;
    border-radius: 999px;
    background: #d1d5db;
}

.source-switch > span::after {
    position: absolute;
    top: 3px;
    left: 3px;
    width: 14px;
    height: 14px;
    border-radius: 50%;
    background: #ffffff;
    content: "";
    transition: transform 120ms ease;
}

.source-switch input:checked + span {
    background: #ff6b00;
}

.source-switch input:checked + span::after {
    transform: translateX(16px);
}

.source-switch em {
    color: #6b7280;
    font-size: 12px;
    font-style: normal;
}

.source-count-strip {
    margin-top: 16px;
}

.rss-management-heading {
    align-items: flex-start;
}

.rss-management .admin-table-wrap {
    margin-top: 16px;
}

.rss-sources-table {
    min-width: 1420px;
}

.rss-sources-table tr.is-attention {
    background: #fff7ed;
    box-shadow: inset 3px 0 0 #f97316;
}

.rss-source-actions {
    min-width: 580px;
}

.rss-source-actions .sports-action-btn {
    margin-right: 4px;
}

.source-header-actions {
    display: flex;
    align-items: center;
    gap: 12px;
}

.source-audit-link {
    padding: 0;
    border: 0;
    background: transparent;
    color: #b94800;
    font: 600 12px/18px Inter, "Segoe UI", sans-serif;
    cursor: pointer;
}

.source-audit-link:focus-visible {
    outline: 2px solid #ff9a4d;
    outline-offset: 2px;
}

@container source-workspace (max-width: 900px) {
    .source-overview-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .source-overview-grid > :last-child:nth-child(odd) {
        grid-column: 1 / -1;
    }
    .source-capability-layout {
        grid-template-columns: 1fr;
    }
}

@container source-workspace (max-width: 560px) {
    .source-overview-grid {
        grid-template-columns: 1fr;
    }
    .source-overview-grid > :last-child:nth-child(odd) {
        grid-column: auto;
    }
}

@media (max-width: 1200px) {
    .source-api-layout {
        grid-template-columns: 236px minmax(0, 1fr);
    }
    .source-overview-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .source-capability-layout {
        grid-template-columns: 1fr;
    }
    .source-category-card > div {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 900px) {
    .source-api-layout {
        grid-template-columns: 1fr;
    }
    .source-rail {
        position: static;
        max-height: none;
    }
    .source-rail #apiSourceRail {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .source-rail-item {
        width: 100%;
    }
    .source-scope-grid,
    .source-category-card > div {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 760px) {
    .sources-heading {
        flex-direction: column;
    }
    .sources-heading .btn {
        width: 100%;
    }
    .source-rail #apiSourceRail,
    .source-overview-grid,
    .source-scope-grid,
    .source-category-card > div {
        grid-template-columns: 1fr;
    }
    .source-detail-header,
    .source-callout,
    .source-budget-bar {
        flex-direction: column;
        align-items: flex-start;
    }
    .source-budget-bar b {
        margin-left: 0;
    }
    .source-info-card dl {
        grid-template-columns: 1fr;
    }
    .source-info-card dd {
        text-align: left;
    }
    .source-action-bar .btn {
        width: 100%;
    }
}


/* ADM-011 immutable audit catalog */
.audit-page{width:100%;max-width:1600px;color:#18181b;font-family:Inter,"Segoe UI",sans-serif}.audit-heading{display:flex;min-height:64px;align-items:flex-start;justify-content:space-between;gap:24px}.audit-heading h1,.audit-heading p{margin:0}.audit-heading h1{font-size:28px;line-height:36px;font-weight:600}.audit-heading p{margin-top:2px;color:#667085;font-size:14px;line-height:20px}.audit-heading>div>span{display:block;margin-top:4px;color:#8a9099;font-size:12px;line-height:16px}.audit-export-actions,.audit-related-actions,.audit-badge-row{display:flex;flex-wrap:wrap;gap:8px}.audit-export-actions .btn,.audit-toolbar .btn,.audit-related-actions .btn{height:36px}.audit-export-actions details{position:relative}.audit-export-actions summary{display:inline-flex;align-items:center;list-style:none;cursor:pointer}.audit-export-actions details>button{position:absolute;top:40px;right:0;z-index:8;width:120px;height:36px;border:1px solid #e5e7eb;border-radius:6px;background:#fff;color:#18181b;font:500 14px/20px Inter,"Segoe UI",sans-serif;box-shadow:0 8px 20px rgba(17,24,39,.12);cursor:pointer}.audit-saved-filters{display:flex;gap:6px;margin-top:12px;padding-bottom:12px;border-bottom:1px solid #e5e7eb}.audit-saved-filters button{height:32px;padding:0 12px;border:1px solid #e5e7eb;border-radius:999px;background:#fff;color:#667085;font:500 13px/18px Inter,"Segoe UI",sans-serif;cursor:pointer}.audit-saved-filters button.is-active{border-color:#fdba74;background:#fff7ed;color:#b94800}.audit-toolbar,.audit-more-filters{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px;align-items:flex-end}.audit-toolbar label,.audit-more-filters label{display:flex;min-width:132px;flex-direction:column;gap:4px;color:#667085;font-size:12px;line-height:16px}.audit-toolbar input,.audit-toolbar select,.audit-more-filters input,.audit-more-filters select{height:36px;min-width:0;padding:0 10px;border:1px solid #d0d5dd;border-radius:6px;background:#fff;color:#18181b;font:400 14px/20px Inter,"Segoe UI",sans-serif}.audit-toolbar .audit-search{flex:1 1 260px}.audit-toolbar .audit-search input{width:100%}.audit-toggle{min-width:auto!important;height:36px;padding:0 10px;flex-direction:row!important;align-items:center;border:1px solid #d0d5dd;border-radius:6px;color:#374151!important;cursor:pointer}.audit-toggle input{width:16px;height:16px;padding:0;accent-color:#ff6b00}.audit-more-filters{padding:12px;border:1px solid #e5e7eb;border-radius:8px;background:#f9fafb}.audit-more-filters label{flex:1 1 180px}.audit-more-filters[hidden]{display:none}.audit-table-wrap{width:100%;margin-top:16px;overflow-x:auto;border:1px solid #e5e7eb;border-radius:8px 8px 0 0}.audit-table{width:100%;min-width:1240px;border-collapse:collapse;background:#fff;font-size:13px;line-height:18px}.audit-table th{height:40px;padding:0 12px;border-bottom:1px solid #e5e7eb;background:#f9fafb;color:#667085;font-size:12px;font-weight:600;text-align:left;white-space:nowrap}.audit-table td{height:52px;max-width:260px;padding:8px 12px;border-bottom:1px solid #e5e7eb;vertical-align:middle}.audit-table tbody tr:last-child td{border-bottom:0}.audit-table tbody tr[data-audit-event]{cursor:pointer}.audit-table tbody tr[data-audit-event]:hover,.audit-table tbody tr[data-audit-event]:focus{background:#f9fafb;outline:0}.audit-table time,.audit-table td>strong,.audit-table td>small{display:block;white-space:nowrap}.audit-table td>small{color:#8a9099;font-size:11px;line-height:16px}.audit-summary{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.audit-domain,.audit-protected,.audit-muted{display:inline-flex;min-height:24px;padding:0 8px;align-items:center;border:1px solid #e5e7eb;border-radius:999px;color:#4b5563;background:#f9fafb;font-size:11px;font-weight:600;white-space:nowrap}.audit-domain.is-sources{border-color:#fed7aa;background:#fff7ed;color:#9a3412}.audit-domain.is-content{border-color:#bfdbfe;background:#eff6ff;color:#1d4ed8}.audit-domain.is-system{border-color:#ddd6fe;background:#f5f3ff;color:#6d28d9}.audit-protected{border-color:#fecaca;background:#fef2f2;color:#b91c1c}.audit-muted{border:0;background:transparent;color:#9ca3af}.status-requested{background:#eff6ff;color:#1d4ed8}.audit-pagination{display:flex;min-height:52px;padding:0 12px;align-items:center;justify-content:space-between;gap:16px;border:1px solid #e5e7eb;border-top:0;border-radius:0 0 8px 8px;color:#667085;font-size:12px}.audit-pagination>div{display:flex;gap:8px}.audit-drawer-backdrop{position:fixed;inset:0;z-index:70;background:rgba(17,24,39,.34)}.audit-drawer{position:fixed;top:0;right:0;z-index:71;width:min(560px,calc(100vw - 40px));height:100vh;overflow-y:auto;background:#fff;border-left:1px solid #e5e7eb;box-shadow:-12px 0 32px rgba(17,24,39,.16)}.audit-drawer[hidden],.audit-drawer-backdrop[hidden]{display:none}.audit-drawer>header{position:sticky;top:0;z-index:2;display:flex;min-height:76px;padding:16px 20px;align-items:flex-start;justify-content:space-between;gap:16px;border-bottom:1px solid #e5e7eb;background:#fff}.audit-drawer>header span{color:#ff6b00;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.audit-drawer>header h2{margin:3px 0 0;font-size:20px;line-height:28px}.audit-drawer>header button{width:36px;height:36px;border:1px solid #e5e7eb;border-radius:6px;background:#fff;font-size:22px;cursor:pointer}.audit-drawer-body{padding:4px 20px 28px}.audit-drawer-body section{padding:16px 0;border-bottom:1px solid #e5e7eb}.audit-drawer-body h3{margin:0 0 12px;font-size:14px;line-height:20px}.audit-drawer-summary{margin:0 0 12px;color:#374151;font-size:15px;line-height:22px}.audit-drawer-body dl{display:grid;grid-template-columns:148px minmax(0,1fr);gap:8px 16px;margin:0;font-size:13px;line-height:18px}.audit-drawer-body dt{color:#667085}.audit-drawer-body dd{margin:0;overflow-wrap:anywhere}.audit-change-table{overflow:hidden;border:1px solid #e5e7eb;border-radius:6px}.audit-change-table>div{display:grid;grid-template-columns:1fr 1fr 1fr;min-height:40px;border-top:1px solid #e5e7eb}.audit-change-table>div:first-child{border-top:0}.audit-change-table>div.is-head{min-height:32px;background:#f9fafb;color:#667085;font-size:11px;font-weight:600}.audit-change-table span{padding:8px;overflow-wrap:anywhere;border-left:1px solid #e5e7eb;font-size:12px}.audit-change-table span:first-child{border-left:0;font-weight:600}.audit-empty-copy{margin:0;color:#667085;font-size:12px;line-height:18px}.audit-text-action{margin-top:10px;padding:0;border:0;background:transparent;color:#b94800;font:600 12px/18px Inter,"Segoe UI",sans-serif;cursor:pointer}.audit-related-actions{margin-top:12px}.audit-toolbar input:focus-visible,.audit-toolbar select:focus-visible,.audit-more-filters input:focus-visible,.audit-more-filters select:focus-visible,.audit-saved-filters button:focus-visible,.audit-table tr:focus-visible,.audit-drawer button:focus-visible{outline:2px solid #ff9a4d;outline-offset:2px}
.audit-table .logs-empty strong,.audit-table .logs-empty span{display:block}.audit-table .logs-empty span{margin-top:4px;font-size:12px}
@media(max-width:1600px){.audit-drawer{width:min(480px,calc(100vw - 32px))}.audit-toolbar .audit-search{flex-basis:220px}}
@media(max-width:760px){.audit-heading{flex-direction:column}.audit-export-actions{width:100%}.audit-export-actions .btn,.audit-export-actions details{flex:1 1 140px}.audit-export-actions summary{justify-content:center}.audit-saved-filters{overflow-x:auto}.audit-saved-filters button{flex:0 0 auto}.audit-toolbar label,.audit-toolbar .btn,.audit-more-filters label{flex:1 1 100%}.audit-drawer{width:100%}.audit-drawer-body dl{grid-template-columns:1fr}.audit-change-table{overflow-x:auto}.audit-change-table>div{min-width:480px}.source-header-actions{width:100%;justify-content:space-between}}

/* Public schedule V1 */
.schedule-body{font-family:Inter,"Segoe UI",Tahoma,Arial,sans-serif}.schedule-body .container{width:min(1280px,calc(100% - 40px))}.schedule-page{padding-bottom:32px}.schedule-title{margin:28px 0 18px;font-size:25.6px;line-height:35.84px;font-weight:650;letter-spacing:-.02em}.schedule-sticky{position:sticky;top:0;z-index:30;margin:0 -10px 16px;padding:10px;background:rgba(255,255,255,.97);border-bottom:1px solid #e5e7eb}.schedule-date-row,.schedule-filter-row,.schedule-view-controls,.schedule-control-group{display:flex;align-items:center}.schedule-date-row{gap:8px;min-height:40px}.schedule-date-row .date-nav{display:flex;align-items:center;border:1px solid #d7dbe0;border-radius:6px;background:#fff}.schedule-icon-button,.schedule-secondary-button,.schedule-top-toggle,.schedule-status-tabs button,.schedule-segmented button,.schedule-load-more,.schedule-empty-action{font:600 14px/20px Inter,"Segoe UI",sans-serif;cursor:pointer;touch-action:manipulation}.schedule-icon-button{display:inline-flex;width:40px;height:38px;align-items:center;justify-content:center;padding:0;border:0;background:#fff;color:#4b5563}.schedule-icon-button:hover,.schedule-secondary-button:hover{background:#f7f7f7;color:#ff6b00}.date-nav-current{display:flex;min-width:176px;height:38px;align-items:center;justify-content:center;padding:0 16px;border-inline:1px solid #e5e7eb;color:#18181b;font-weight:650;font-variant-numeric:tabular-nums}.schedule-secondary-button{height:40px;padding:0 14px;border:1px solid #d7dbe0;border-radius:6px;background:#fff;color:#34383f}.schedule-secondary-button:disabled{cursor:default;opacity:.42;background:#f7f7f7}.schedule-filter-row{justify-content:space-between;gap:16px;margin-top:8px}.schedule-status-tabs,.schedule-segmented{display:flex;align-items:center;gap:2px}.schedule-status-tabs{min-width:0;overflow-x:auto;scrollbar-width:none;border-bottom:1px solid #e5e7eb}.schedule-status-tabs::-webkit-scrollbar{display:none}.schedule-status-tabs button{position:relative;height:40px;flex:0 0 auto;padding:0 13px;border:0;background:transparent;color:#667085;white-space:nowrap}.schedule-status-tabs button::after{content:"";position:absolute;right:12px;bottom:-1px;left:12px;height:2px;background:transparent}.schedule-status-tabs button:hover{color:#18181b}.schedule-status-tabs button.is-active{color:#18181b}.schedule-status-tabs button.is-active::after{background:#ff6b00}.live-filter-dot{display:inline-block;width:6px;height:6px;margin-right:6px;border-radius:50%;background:#ff6b00;vertical-align:2px}.live-filter-dot[hidden]{display:none}.schedule-view-controls{justify-content:flex-end;gap:12px}.schedule-control-group,.schedule-sort-control{gap:7px}.schedule-control-group>span,.schedule-sort-control>span{color:#667085;font-size:12px;font-weight:600;white-space:nowrap}.schedule-segmented{padding:2px;border:1px solid #d7dbe0;border-radius:6px;background:#f4f5f6}.schedule-segmented button{height:32px;padding:0 10px;border:0;border-radius:4px;background:transparent;color:#667085;white-space:nowrap}.schedule-segmented button.is-active{background:#fff;color:#18181b;box-shadow:0 1px 2px rgba(16,24,40,.08)}.schedule-sort-control{display:flex;align-items:center}.schedule-sort-control select{height:38px;max-width:220px;padding:0 32px 0 10px;border:1px solid #d7dbe0;border-radius:6px;background:#fff;color:#34383f;font:500 13px/20px Inter,"Segoe UI",sans-serif}.schedule-sort-control.is-disabled{opacity:.48}.schedule-top-toggle{display:inline-flex;height:38px;align-items:center;gap:7px;padding:0 12px;border:1px solid #d7dbe0;border-radius:6px;background:#fff;color:#34383f;white-space:nowrap}.schedule-top-toggle:hover{border-color:#ffb27a;color:#c95000}.schedule-top-toggle.is-active{border-color:#ff9a52;background:#fff7f0;color:#bd4c00}.schedule-icon-button:focus-visible,.schedule-secondary-button:focus-visible,.schedule-status-tabs button:focus-visible,.schedule-segmented button:focus-visible,.schedule-sort-control select:focus-visible,.schedule-top-toggle:focus-visible,.schedule-load-more:focus-visible,.schedule-empty-action:focus-visible,.timezone-item:focus-visible{outline:2px solid #ff6b00;outline-offset:2px}.hidden-date-input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.schedule-list{min-height:260px;margin-bottom:32px;scroll-margin-top:126px}.schedule-league-group,.schedule-flat-list{display:block;margin:0 0 12px;border:1px solid #dde1e6;border-radius:6px;overflow:hidden;background:#fff}.schedule-league-group summary{list-style:none;cursor:pointer}.schedule-league-group summary::-webkit-details-marker{display:none}.schedule-league-header{display:grid;grid-template-columns:24px minmax(0,1fr) auto repeat(3,68px) 40px;min-height:40px;align-items:center;gap:0;padding:0 8px;background:#f3f4f5;border-bottom:1px solid #dde1e6;color:#26292e}.schedule-league-group:not([open]) .schedule-league-header{border-bottom:0}.schedule-league-header:focus-visible{outline:2px solid #ff6b00;outline-offset:-2px}.league-flag{display:inline-flex;width:20px;height:16px;align-items:center;justify-content:center}.league-flag img{width:20px;height:14px;object-fit:cover;border:1px solid rgba(0,0,0,.12)}.league-flag-fallback{display:inline-flex;color:#8b929c}.schedule-league-name{display:flex;min-width:0;align-items:center;gap:7px;overflow:hidden;font-size:13px;line-height:18px;font-weight:600;white-space:nowrap;text-overflow:ellipsis}.schedule-league-name small{overflow:hidden;color:#89909a;font-size:10.5px;line-height:14px;font-weight:500;text-overflow:ellipsis}.schedule-top-marker{display:inline-flex;flex:0 0 auto;color:#c95000}.schedule-match-count{padding:0 14px;color:#737b86;font-size:10.5px;line-height:14px;font-weight:400;white-space:nowrap}.schedule-odds-label{color:#747c87;font-size:11px;font-weight:700;text-align:center}.schedule-group-chevron{position:relative;width:40px;height:40px}.schedule-group-chevron.is-visible::after{content:"";position:absolute;top:14px;left:15px;width:7px;height:7px;border-right:1.5px solid #737b86;border-bottom:1.5px solid #737b86;transform:rotate(45deg);transition:transform .15s ease}.schedule-league-group:not([open]) .schedule-group-chevron::after{top:17px;transform:rotate(-45deg)}.schedule-match-row{position:relative;display:grid;grid-template-columns:96px minmax(0,1fr) 84px minmax(0,1fr) repeat(3,68px) 40px;min-height:56px;align-items:center;border-bottom:1px solid #eaecf0;background:#fff;color:#202226;text-decoration:none}.schedule-match-row:last-child{border-bottom:0}.schedule-match-row:hover{background:#fafafa}.schedule-match-row:focus-visible{z-index:2;outline:2px solid #ff6b00;outline-offset:-2px}.schedule-match-row.is-live{border-left:2px solid #ff6b00}.schedule-match-row.is-disabled{cursor:not-allowed}.schedule-match-state{display:flex;min-width:0;flex-direction:column;justify-content:center;padding:0 10px;color:#667085;font-size:13px;font-weight:600;font-variant-numeric:tabular-nums}.schedule-match-state small{color:#ff6b00;font-size:9px;line-height:12px}.is-live>.schedule-match-state{color:#e85f00}.schedule-row-competition{overflow:hidden;margin-top:2px;color:#8b929c;font-size:10px;font-weight:500;line-height:13px;text-overflow:ellipsis;white-space:nowrap}.schedule-team{display:flex;min-width:0;align-items:center;gap:9px}.schedule-team strong{min-width:0;overflow:hidden;font-size:12.8px;line-height:18px;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.schedule-team-logo,.schedule-team-logo-placeholder{width:26px;height:26px;flex:0 0 26px}.schedule-team-logo{object-fit:contain}.schedule-team-logo-placeholder{display:inline-flex;align-items:center;justify-content:center;border:1px solid #d9dde2;border-radius:50%;background:#f6f7f8;color:#9aa1aa}.schedule-home-team{justify-content:flex-end}.schedule-home-team .schedule-team-logo{order:0}.schedule-home-team strong{order:1;text-align:right}.schedule-away-team{justify-content:flex-start}.schedule-score{display:flex;align-items:center;justify-content:center;gap:8px;color:#202226;font-size:14px;line-height:18px;font-weight:700;font-variant-numeric:tabular-nums}.score-separator{color:#8a929c;font-weight:500}.schedule-row-odds{display:contents}.schedule-odd{display:flex;height:100%;align-items:center;justify-content:center;color:#2f3338;font-size:13px;font-weight:600;font-variant-numeric:tabular-nums}.schedule-odd small{display:none}.schedule-row-chevron{color:#8d949d;font-size:24px;text-align:center}.schedule-match-row:hover .schedule-row-chevron{color:#ff6b00}.schedule-flat-header{display:grid;grid-template-columns:minmax(0,1fr) repeat(3,68px) 40px;min-height:32px;align-items:center;margin-bottom:6px;padding:0 8px;border-bottom:1px solid #e1e4e8;color:#747c87;font-size:11px;font-weight:700}.schedule-flat-header>span:first-child{padding-left:2px;text-transform:uppercase;letter-spacing:.04em}.schedule-load-more{display:flex;min-width:220px;height:44px;align-items:center;justify-content:center;gap:8px;margin:20px auto 0;padding:0 20px;border:1px solid #cfd4da;border-radius:6px;background:#fff;color:#24272c}.schedule-load-more:hover{border-color:#ff9a52;background:#fff8f3}.schedule-load-more span{color:#8b929c;font-size:12px}.schedule-empty{display:flex;min-height:260px;flex-direction:column;align-items:center;justify-content:center;padding:32px;color:#7b838d;text-align:center}.schedule-empty svg{margin-bottom:12px}.schedule-empty strong{color:#292c31;font-size:17px}.schedule-empty>span{margin-top:5px}.schedule-empty-action{height:42px;margin-top:18px;padding:0 16px;border:1px solid #d2d6dc;border-radius:6px;background:#fff;color:#292c31}.schedule-empty-action:hover{border-color:#ff9a52;color:#c95000}.schedule-empty.is-error strong{color:#8f2d20}.schedule-skeleton{display:grid;gap:8px}.schedule-skeleton span{display:block;height:56px;border-radius:6px;background:linear-gradient(90deg,#f2f3f4 25%,#e7e9eb 50%,#f2f3f4 75%);background-size:200% 100%;animation:schedule-shimmer 1.2s linear infinite}.schedule-skeleton span:first-child{height:40px}@keyframes schedule-shimmer{to{background-position:-200% 0}}.timezone-item{width:100%;border:0;background:#fff;text-align:left}.timezone-item.active{background:#ff6b00}.timezone-item:hover{background:#fff3ea;color:#18181b}.timezone-item.active:hover{background:#ff6b00;color:#fff}

@media(max-width:1050px){.schedule-filter-row{align-items:flex-start;flex-direction:column}.schedule-view-controls{width:100%;justify-content:flex-start}.schedule-list{scroll-margin-top:170px}}
@media(max-width:760px){.schedule-body .container{width:min(100% - 24px,1280px)}.schedule-title{margin:20px 0 12px;font-size:25.6px;line-height:35.84px}.schedule-sticky{margin:0 -6px 12px;padding:8px 6px}.schedule-date-row{gap:6px}.date-nav-current{min-width:0;flex:1;padding:0 8px;font-size:13px}.schedule-date-row .date-nav{min-width:0;flex:1}.schedule-icon-button{width:40px;flex:0 0 40px}.schedule-secondary-button{padding:0 10px}.schedule-filter-row{gap:8px}.schedule-status-tabs{width:100%}.schedule-status-tabs button{height:44px;padding:0 12px}.schedule-view-controls{display:grid;grid-template-columns:1fr auto;gap:8px}.schedule-control-group{grid-column:1/-1;justify-content:space-between}.schedule-segmented{flex:1}.schedule-segmented button{min-height:38px;flex:1}.schedule-sort-control>span{display:none}.schedule-sort-control select{width:100%;max-width:none;height:44px;font-size:13px}.schedule-top-toggle{height:44px}.schedule-list{scroll-margin-top:190px}.schedule-league-group,.schedule-flat-list{margin-bottom:10px}.schedule-league-header{grid-template-columns:24px minmax(0,1fr) auto 32px;min-height:42px;padding:0 7px}.schedule-league-header .schedule-odds-label{display:none}.schedule-match-count{padding:0 8px;font-size:10.5px;line-height:14px}.schedule-group-chevron{width:32px}.schedule-group-chevron.is-visible::after{left:11px}.schedule-league-name{font-size:13px}.schedule-league-name small{display:none}.schedule-match-row{grid-template-columns:58px minmax(0,1fr) 54px minmax(0,1fr) 28px;grid-template-rows:minmax(48px,auto) 40px;min-height:88px;padding:0 4px}.schedule-match-state{grid-column:1;grid-row:1;padding:0 5px;font-size:12px}.schedule-home-team{grid-column:2;grid-row:1;justify-content:flex-end}.schedule-score{grid-column:3;grid-row:1;gap:4px;font-size:14px}.schedule-away-team{grid-column:4;grid-row:1}.schedule-row-chevron{grid-column:5;grid-row:1}.schedule-team{gap:5px}.schedule-team strong{font-size:12.8px;line-height:18px}.schedule-team-logo,.schedule-team-logo-placeholder{width:24px;height:24px;flex-basis:24px}.schedule-row-odds{display:grid;grid-column:2/5;grid-row:2;grid-template-columns:repeat(3,minmax(0,1fr));align-self:stretch;border-top:1px solid #f0f1f2}.schedule-odd{gap:5px;font-size:13px}.schedule-odd small{display:inline;color:#8b929c;font-size:10px}.schedule-flat-header{display:none}.schedule-row-competition{max-width:54px}.schedule-load-more{width:100%;margin-top:14px}.timezone-popup{position:fixed;top:64px;right:12px;left:12px;min-width:0}.timezone-grid{grid-template-columns:repeat(2,1fr)}}
@media(prefers-reduced-motion:reduce){.schedule-skeleton span{animation:none}.schedule-group-chevron.is-visible::after{transition:none}}

/* Public schedule final UI correction: 900px hard reference */
.schedule-body .container{width:min(900px,calc(100% - 32px))}.schedule-shell{display:grid;align-items:start;column-gap:24px;margin:0 auto}.schedule-page{width:900px;min-width:0;padding-bottom:32px}.schedule-rail{min-width:0;min-height:1px}.schedule-sticky{width:900px;margin:0 0 16px;padding:10px}.schedule-filter-row{flex-wrap:wrap}.schedule-view-controls{margin-left:auto}.date-nav-current.is-active,.schedule-secondary-button.is-active{border-color:#ff6b00;background:#fff4eb;color:#c95000}.schedule-secondary-button.is-active:disabled{opacity:1;color:#c95000;background:#fff4eb}.schedule-segmented button.is-active{border:1px solid #ff6b00;background:#fff4eb;color:#c95000;box-shadow:none}.schedule-list{width:900px}.schedule-league-group,.schedule-flat-list{width:900px}.schedule-league-header{width:900px;min-height:40px;margin-left:-1px;padding:0 16px;grid-template-columns:24px minmax(0,1fr) auto repeat(3,56px) 24px;column-gap:8px}.schedule-match-row{width:900px;min-height:64px;margin-left:-1px;padding:0 16px;grid-template-columns:96px 210px 84px 210px 184px 24px;column-gap:12px}.schedule-match-state{padding:0;line-height:18px}.schedule-match-date{color:#34383f;font-size:11.5px;line-height:16px;font-weight:500}.schedule-match-status{color:#7b838d;font-size:11px;font-weight:600;line-height:16px}.schedule-match-row.is-live .schedule-match-status{color:#e85f00}.schedule-team{gap:8px}.schedule-home-team strong{order:0}.schedule-home-team .schedule-team-logo,.schedule-home-team .schedule-team-logo-placeholder{order:1}.schedule-team-logo,.schedule-team-logo-placeholder{width:24px;height:24px;flex-basis:24px}.schedule-row-odds{display:grid;grid-template-columns:repeat(3,56px);gap:8px}.schedule-odd{width:56px;height:36px;border-radius:4px}.schedule-odd.is-resolved{background:#e8f5ec;color:#16803c}.schedule-row-chevron{width:24px}.schedule-flat-header{width:900px;grid-template-columns:minmax(0,1fr) repeat(3,56px) 24px;column-gap:8px;padding:0 16px}
@media(min-width:1600px){.schedule-shell{width:1428px;grid-template-columns:240px 900px 240px}}
@media(min-width:1340px) and (max-width:1599px){.schedule-shell{width:1308px;grid-template-columns:180px 900px 180px}}
@media(max-width:1339px){.schedule-shell{display:block;width:900px}.schedule-rail{display:none}}
@media(min-width:761px) and (max-width:947px){.schedule-shell,.schedule-page,.schedule-sticky,.schedule-list,.schedule-league-group,.schedule-flat-list{width:min(900px,calc(100vw - 32px))}.schedule-league-header,.schedule-match-row{width:calc(100% + 2px)}.schedule-match-row{padding-inline:12px;grid-template-columns:96px minmax(140px,1fr) 84px minmax(140px,1fr) 184px 24px;column-gap:8px}.schedule-filter-row{align-items:flex-start;flex-direction:column}.schedule-view-controls{width:100%;margin-left:0;justify-content:flex-start}}
@media(max-width:760px){.schedule-shell,.schedule-page,.schedule-sticky,.schedule-list,.schedule-league-group,.schedule-flat-list{width:min(900px,calc(100vw - 32px))}.schedule-sticky{margin-bottom:12px}.schedule-view-controls{margin-left:0}.schedule-league-header{width:calc(100% + 2px);min-height:42px;margin-left:-1px;padding:0 7px;grid-template-columns:24px minmax(0,1fr) auto 32px;column-gap:0}.schedule-match-row{width:calc(100% + 2px);min-height:88px;margin-left:-1px;padding:0 4px;grid-template-columns:58px minmax(0,1fr) 54px minmax(0,1fr) 28px;column-gap:0}.schedule-match-state{padding:0 5px}.schedule-match-date{font-size:11.5px;line-height:16px;font-weight:500}.schedule-match-status{font-size:10px}.schedule-row-odds{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0}.schedule-odd{width:auto;height:100%}.schedule-flat-header{display:none;width:auto}}

/* Public schedule controls polish: statistics filter reference */
.schedule-heading-row{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:28px 0 18px}.schedule-heading-row .schedule-title{margin:0}.schedule-date-row{min-height:0;gap:6.4px}.schedule-date-row .date-nav,.schedule-status-tabs,.schedule-segmented{display:inline-flex;align-items:center;gap:0;padding:2px;border:1px solid #ddd;border-radius:6px;background:#fff}.schedule-status-tabs{width:auto;overflow:visible}.schedule-status-tabs button::after{display:none}.schedule-icon-button,.schedule-secondary-button,.schedule-top-toggle,.schedule-status-tabs button,.schedule-segmented button,.date-nav-current,.schedule-sort-control select{min-height:27px;height:auto;padding:4.48px 7.68px;border:1px solid #ddd;border-radius:4px;background:#fff;color:#555;font:400 10.88px/15.232px Inter,"Segoe UI",sans-serif}.schedule-date-row .date-nav .schedule-icon-button,.schedule-status-tabs button,.schedule-segmented button{border-color:transparent;background:transparent}.schedule-icon-button{width:27px}.schedule-date-row .date-nav .schedule-icon-button{padding:0}.date-nav-current{min-width:132px;border-color:transparent;font-variant-numeric:tabular-nums}.schedule-top-toggle{gap:4px}.schedule-status-tabs button.is-active,.schedule-segmented button.is-active,.schedule-top-toggle.is-active,.date-nav-current.is-active,.schedule-secondary-button.is-active,.schedule-secondary-button.is-active:disabled{border-color:#ff6600;background:#ff6600;color:#fff;opacity:1}.schedule-icon-button:hover,.schedule-secondary-button:hover,.schedule-top-toggle:hover,.schedule-status-tabs button:hover,.schedule-segmented button:hover{border-color:#ddd;background:#fff;color:#555}.schedule-status-tabs button.is-active:hover,.schedule-segmented button.is-active:hover,.schedule-top-toggle.is-active:hover,.schedule-secondary-button.is-active:hover{border-color:#ff6600;background:#ff6600;color:#fff}.schedule-filter-row{display:block;margin-top:0}.schedule-view-controls{justify-content:flex-end;margin-top:8px;margin-left:0;gap:6.4px}.schedule-control-group,.schedule-sort-control{gap:6.4px;font-size:10.88px}.schedule-control-group>span,.schedule-sort-control>span{color:#555}.schedule-sort-control select{width:auto;max-width:220px}.schedule-sticky{padding-top:8px}.schedule-icon-button:focus-visible,.schedule-secondary-button:focus-visible,.schedule-top-toggle:focus-visible,.schedule-status-tabs button:focus-visible,.schedule-segmented button:focus-visible,.schedule-sort-control select:focus-visible{outline:2px solid #ff6b00;outline-offset:2px}
@media(max-width:760px){.schedule-heading-row{align-items:flex-start;flex-direction:column;gap:10px;margin:20px 0 12px}.schedule-heading-row .schedule-title{margin:0}.schedule-date-row{width:100%;gap:6.4px}.schedule-date-row .date-nav{min-width:0;flex:1}.date-nav-current{min-width:0;flex:1;padding:4.48px 7.68px;font-size:10.88px}.schedule-icon-button{width:27px;flex:0 0 27px}.schedule-secondary-button,.schedule-status-tabs button,.schedule-segmented button,.schedule-sort-control select,.schedule-top-toggle{min-height:27px;height:auto;padding:4.48px 7.68px;font-size:10.88px}.schedule-status-tabs{width:100%;overflow-x:auto}.schedule-status-tabs button{flex:1 0 auto}.schedule-view-controls{display:flex;align-items:center;flex-wrap:wrap;gap:6.4px}.schedule-control-group{grid-column:auto;justify-content:flex-start}.schedule-segmented{flex:0 1 auto}.schedule-segmented button{flex:0 0 auto}.schedule-sort-control>span{display:inline}.schedule-sort-control select{width:auto;max-width:180px}.schedule-top-toggle{height:auto}.schedule-list{scroll-margin-top:150px}}
@media(min-width:948px){.schedule-filter-row{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:nowrap}.schedule-view-controls{margin-top:0;margin-left:auto;flex-wrap:nowrap}}
@media(max-width:947px){.schedule-filter-row{display:flex;align-items:stretch;flex-direction:column;gap:8px}.schedule-view-controls{width:100%;margin-top:0;flex-wrap:nowrap;justify-content:flex-end}.schedule-view-controls .schedule-control-group>span,.schedule-view-controls .schedule-sort-control>span{display:none}.schedule-view-controls .schedule-sort-control{min-width:0;flex:1}.schedule-view-controls .schedule-sort-control select{width:100%;min-width:0}}

/* FootballQuant Public UI Standard. Public-only: do not use in Admin. */
.fq-public-surface{--fq-public-control-min-height:27px;--fq-public-control-padding:4.48px 7.68px;--fq-public-control-radius:4px;--fq-public-control-font-size:10.88px;--fq-public-control-font-weight:400;--fq-public-control-line-height:15.232px;--fq-public-control-color:#555;--fq-public-control-border:#ddd;--fq-public-control-background:#fff;--fq-public-control-active:#ff6600;--fq-public-focus:#ff6b00;--fq-public-group-padding:2px;--fq-public-group-radius:6px;--fq-public-schedule-width:900px;--fq-public-schedule-gap:24px;--fq-public-schedule-rail-wide:240px;--fq-public-schedule-rail-compact:180px;--fq-public-match-row-height:64px;--fq-public-logo-slot:24px}
.fq-public-surface .fq-public-control{box-sizing:border-box;min-height:var(--fq-public-control-min-height);height:auto;padding:var(--fq-public-control-padding);border:1px solid var(--fq-public-control-border);border-radius:var(--fq-public-control-radius);background:var(--fq-public-control-background);color:var(--fq-public-control-color);font:var(--fq-public-control-font-weight) var(--fq-public-control-font-size)/var(--fq-public-control-line-height) Inter,"Segoe UI",sans-serif}.fq-public-surface .fq-public-control--standalone{border-color:var(--fq-public-control-border);background:var(--fq-public-control-background)}.fq-public-surface .fq-public-control-group{display:inline-flex;align-items:center;gap:0;padding:var(--fq-public-group-padding);border:1px solid var(--fq-public-control-border);border-radius:var(--fq-public-group-radius);background:var(--fq-public-control-background)}.fq-public-surface .fq-public-control-group>.fq-public-control{border-color:transparent;background:transparent}.fq-public-surface .fq-public-control.is-active,.fq-public-surface .fq-public-control.is-active:disabled{border-color:var(--fq-public-control-active);background:var(--fq-public-control-active);color:#fff;opacity:1}.fq-public-surface .fq-public-control:hover{border-color:var(--fq-public-control-border);background:var(--fq-public-control-background);color:var(--fq-public-control-color)}.fq-public-surface .fq-public-control.is-active:hover{border-color:var(--fq-public-control-active);background:var(--fq-public-control-active);color:#fff}.fq-public-surface .fq-public-control:focus-visible{outline:2px solid var(--fq-public-focus);outline-offset:2px}

/* Public Footer. Scoped away from Admin; content hooks are reserved for Footer settings. */
.fq-public-surface .public-footer{--footer-ink:#07111a;--footer-surface:#0a1721;--footer-line:rgb(183 199 211 / 32%);position:relative;isolation:isolate;min-height:470px;margin-top:56px;padding:0;overflow:hidden;border:0;background:var(--footer-ink) url("/images/footer/stadium.webp?v=2") center 48%/cover no-repeat;color:#edf2f5;font:400 15px/1.55 Inter,"Segoe UI",sans-serif;text-align:left}
.fq-public-surface .public-footer::before{position:absolute;z-index:-1;inset:0;background:linear-gradient(90deg,rgb(5 14 22 / 94%) 0%,rgb(7 17 26 / 91%) 42%,rgb(7 17 26 / 68%) 70%,rgb(6 13 19 / 42%) 100%),linear-gradient(0deg,rgb(4 10 15 / 94%) 0%,transparent 38%,rgb(5 13 20 / 35%) 100%);content:""}
.fq-public-surface .public-footer a:not(.logo){color:inherit;text-decoration:none}
.fq-public-surface .public-footer-shell{position:relative;width:min(1760px,calc(100% - 32px));min-height:470px;margin:0 auto;padding:64px 0 48px;display:grid;grid-template-columns:250px 390px minmax(430px,1fr) 320px;grid-template-rows:1fr auto;column-gap:36px;align-items:start}
.fq-public-surface .public-footer-age{height:236px;display:flex;flex-direction:column;justify-content:space-between;padding:24px 16px 16px;border:1px solid #9f3038;border-radius:20px;background:radial-gradient(circle at 48% 40%,rgb(193 30 42 / 80%),rgb(82 13 23 / 75%) 58%,rgb(30 12 20 / 90%) 100%);box-shadow:inset 0 0 28px rgb(255 59 69 / 15%),0 14px 42px rgb(0 0 0 / 25%)}
.fq-public-surface .public-footer-age>strong{display:block;color:#05070a;font:900 72px/.95 Inter,"Segoe UI",sans-serif;letter-spacing:-.06em;text-align:center;text-shadow:0 1px 0 rgb(255 255 255 / 8%)}
.fq-public-surface .public-footer-age>a{min-height:56px;display:grid;grid-template-columns:22px 1fr auto;align-items:center;gap:10px;padding:0 13px;border:1px solid #bb3540;border-radius:14px;background:rgb(22 8 14 / 58%);font-size:13px;font-weight:600;transition:border-color .16s ease,background-color .16s ease}
.fq-public-surface .public-footer-age>a:hover{border-color:#df5961;background:rgb(39 9 17 / 78%)}
.fq-public-surface .public-footer-age svg{width:20px;height:20px;fill:currentColor}
.fq-public-surface .public-footer-legal{min-height:236px;padding:4px 34px 0 0;border-right:1px solid var(--footer-line);display:flex;flex-direction:column;justify-content:space-between}
.fq-public-surface .public-footer-disclaimer{max-width:360px;color:#e0e7eb;font-size:16px;line-height:1.55}
.fq-public-surface .public-footer-disclaimer p{margin:0 0 20px}
.fq-public-surface .public-footer-registration{padding-top:15px;border-top:1px solid var(--footer-line);color:#91a0ac;font-size:14px}
.fq-public-surface .public-footer-registration p{margin:0}.fq-public-surface .public-footer-registration p+p{margin-top:3px}
.fq-public-surface .public-footer-registration p:first-child{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.fq-public-surface .public-footer-registration i{width:1px;height:17px;background:var(--footer-line)}
.fq-public-surface .public-footer-registration a:hover,.fq-public-surface .public-footer-links a:hover{color:#ff6600}
.fq-public-surface .public-footer-connect{position:relative;z-index:2;min-width:0;padding-top:3px}
.fq-public-surface .public-footer-heading{display:flex;align-items:center;gap:24px;color:#9eafbc;font-size:11px;font-weight:600;letter-spacing:.34em;white-space:nowrap}.fq-public-surface .public-footer-heading i{height:1px;flex:1;background:var(--footer-line)}
.fq-public-surface .public-footer-socials{display:flex;align-items:flex-start;gap:20px;margin-top:19px}
.fq-public-surface .public-footer-socials>a{min-width:64px;display:flex;flex-direction:column;align-items:center;gap:8px;color:#eff3f5;font-size:13px;text-align:center;transition:color .16s ease}
.fq-public-surface .public-footer-socials>a>span{width:52px;height:52px;display:grid;place-items:center;border:1px solid #536472;border-radius:50%;background:rgb(6 15 23 / 34%);transition:border-color .16s ease,color .16s ease,background-color .16s ease}
.fq-public-surface .public-footer-socials svg{width:23px;height:23px;fill:currentColor}.fq-public-surface .public-footer-socials b{font:500 13px/1.3 Inter,"Segoe UI",sans-serif}
.fq-public-surface .public-footer-socials>a:hover{color:#ff6600}.fq-public-surface .public-footer-socials>a:hover>span{border-color:#ff6600;background:rgb(255 102 0 / 7%)}
.fq-public-surface .public-footer-links-heading{margin-top:38px}
.fq-public-surface .public-footer-links{display:flex;align-items:center;flex-wrap:wrap;gap:9px 0;margin-top:17px;font-size:13px}.fq-public-surface .public-footer-links a{transition:color .16s ease}.fq-public-surface .public-footer-links a+a{margin-left:15px;padding-left:15px;border-left:1px solid var(--footer-line)}
.fq-public-surface .public-footer-visual{position:absolute;z-index:0;right:max(22px,calc((100vw - 1760px)/2 + 20px));bottom:0;width:370px;height:450px;pointer-events:none}.fq-public-surface .public-footer-visual img{width:100%;height:100%;display:block;object-fit:contain;object-position:right bottom;filter:drop-shadow(0 0 24px rgb(255 108 17 / 13%));opacity:.9}
.fq-public-surface .public-footer-branding{position:absolute;z-index:2;right:146px;bottom:83px;text-align:center}.fq-public-surface .public-footer-branding .logo{font-size:30px;line-height:1}.fq-public-surface .public-footer-branding p{margin:10px 0 0;color:#aebac3;font-size:8px;font-weight:600;letter-spacing:.31em;white-space:nowrap}
.fq-public-surface .public-footer-top{position:absolute;z-index:3;right:54px;bottom:70px;display:flex;flex-direction:column;align-items:center;gap:6px;color:#dfe5e9;font-size:12px}.fq-public-surface .public-footer-top>span{width:52px;height:52px;display:grid;place-items:center;border:1px solid #ff6600;border-radius:50%;background:rgb(5 14 22 / 58%);transition:background-color .16s ease,color .16s ease}.fq-public-surface .public-footer-top svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.fq-public-surface .public-footer-top b{font-weight:500}.fq-public-surface .public-footer-top:hover>span{background:#ff6600;color:#fff}
.fq-public-surface .public-footer a:focus-visible{outline:2px solid #ff6600;outline-offset:4px}
.fq-public-surface .public-footer-bottom{grid-column:1/-1;align-self:end;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:26px;padding-top:30px;color:#9aabb7;font-size:9px;font-weight:600;letter-spacing:.42em;white-space:nowrap}.fq-public-surface .public-footer-bottom i{height:1px;background:rgb(205 215 222 / 62%)}
@media(max-width:1500px){.fq-public-surface .public-footer{min-height:450px}.fq-public-surface .public-footer-shell{width:min(1280px,calc(100% - 32px));min-height:450px;padding:58px 0 44px;grid-template-columns:195px 300px minmax(390px,1fr) 240px;column-gap:24px}.fq-public-surface .public-footer-age{height:220px;padding:22px 13px 13px;border-radius:17px}.fq-public-surface .public-footer-age>strong{font-size:62px}.fq-public-surface .public-footer-age>a{padding-inline:10px;font-size:12px}.fq-public-surface .public-footer-legal{min-height:220px;padding-right:22px}.fq-public-surface .public-footer-disclaimer{font-size:14px}.fq-public-surface .public-footer-registration{font-size:12px}.fq-public-surface .public-footer-socials{gap:10px}.fq-public-surface .public-footer-socials>a{min-width:58px;font-size:12px}.fq-public-surface .public-footer-socials>a>span{width:44px;height:44px}.fq-public-surface .public-footer-socials svg{width:20px;height:20px}.fq-public-surface .public-footer-links-heading{margin-top:32px}.fq-public-surface .public-footer-links{font-size:12px}.fq-public-surface .public-footer-visual{right:8px;width:286px;height:345px}.fq-public-surface .public-footer-branding{right:96px;bottom:78px}.fq-public-surface .public-footer-branding .logo{font-size:24px}.fq-public-surface .public-footer-top{right:26px;bottom:63px}.fq-public-surface .public-footer-top>span{width:46px;height:46px}}
@media(max-width:1180px){.fq-public-surface .public-footer-shell{padding-inline:28px;grid-template-columns:200px minmax(280px,1fr) minmax(390px,1.2fr);grid-template-rows:auto auto auto;gap:34px}.fq-public-surface .public-footer-connect{padding-right:0}.fq-public-surface .public-footer-visual{z-index:-1;right:-15px;opacity:.34}.fq-public-surface .public-footer-branding{position:static;grid-column:2/4;justify-self:end;margin-right:85px}.fq-public-surface .public-footer-top{right:28px}.fq-public-surface .public-footer-bottom{grid-row:3}}
@media(max-width:820px){.fq-public-surface .public-footer{min-height:0;margin-top:40px;background-position:44% center}.fq-public-surface .public-footer::before{background:linear-gradient(180deg,rgb(5 14 22 / 84%),rgb(5 14 22 / 96%) 38%,rgb(4 10 15 / 98%))}.fq-public-surface .public-footer-shell{min-height:0;padding:40px 20px 28px;display:flex;flex-direction:column;gap:30px}.fq-public-surface .public-footer-visual{top:0;right:-48px;bottom:auto;width:230px;height:280px;opacity:.22}.fq-public-surface .public-footer-age{width:min(250px,100%);height:220px}.fq-public-surface .public-footer-legal{width:100%;min-height:0;padding:0 0 26px;border-right:0;border-bottom:1px solid var(--footer-line);gap:12px}.fq-public-surface .public-footer-disclaimer{font-size:15px}.fq-public-surface .public-footer-registration{border-top:0}.fq-public-surface .public-footer-connect{width:100%}.fq-public-surface .public-footer-socials{justify-content:flex-start;flex-wrap:wrap;gap:16px 10px}.fq-public-surface .public-footer-links{align-items:flex-start;flex-direction:column;gap:10px}.fq-public-surface .public-footer-links a+a{margin:0;padding:0;border:0}.fq-public-surface .public-footer-branding{position:static;align-self:flex-start;margin:0;text-align:left}.fq-public-surface .public-footer-top{top:40px;right:20px;bottom:auto}.fq-public-surface .public-footer-bottom{width:100%;display:flex;gap:18px;padding-top:20px;border-top:1px solid var(--footer-line)}.fq-public-surface .public-footer-bottom i{flex:1}.fq-public-surface .public-footer-bottom span:last-child{display:none}}
@media(max-width:430px){.fq-public-surface .public-footer-shell{padding-inline:16px}.fq-public-surface .public-footer-heading{gap:14px;letter-spacing:.24em}.fq-public-surface .public-footer-socials{display:grid;grid-template-columns:repeat(3,1fr)}.fq-public-surface .public-footer-socials>a{min-width:0}.fq-public-surface .public-footer-top{right:16px}.fq-public-surface .public-footer-bottom{font-size:8px;letter-spacing:.28em}}
@media(min-width:1181px){.fq-public-surface .public-footer{min-height:420px;border-top:3px solid var(--accent)}.fq-public-surface .public-footer-shell{min-height:417px;padding:42px 0 28px;grid-template-columns:minmax(0,1fr) 180px 320px 352px minmax(0,1fr);column-gap:24px}.fq-public-surface .public-footer-age{grid-column:2;grid-row:1;height:212px;padding:18px 12px 12px;border-radius:16px}.fq-public-surface .public-footer-age>strong{font-size:58px}.fq-public-surface .public-footer-age>a{min-height:52px;padding-inline:9px;gap:7px;font-size:11.5px}.fq-public-surface .public-footer-legal{grid-column:3;grid-row:1;min-height:212px;padding:3px 20px 0 0}.fq-public-surface .public-footer-disclaimer{font-size:14px;line-height:1.5}.fq-public-surface .public-footer-disclaimer p{margin-bottom:16px}.fq-public-surface .public-footer-registration{font-size:12px}.fq-public-surface .public-footer-registration p:last-child{white-space:nowrap}.fq-public-surface .public-footer-connect{grid-column:4;grid-row:1}.fq-public-surface .public-footer-socials{gap:8px}.fq-public-surface .public-footer-socials>a{min-width:56px;font-size:12px}.fq-public-surface .public-footer-socials>a>span{width:clamp(44px,2.5vw,48px);height:clamp(44px,2.5vw,48px)}.fq-public-surface .public-footer-socials svg{width:21px;height:21px}.fq-public-surface .public-footer-links-heading{margin-top:22px}.fq-public-surface .public-footer-links{font-size:10.5px;white-space:nowrap}.fq-public-surface .public-footer-links a+a{margin-left:5px;padding-left:5px}.fq-public-surface .public-footer-branding{bottom:135px}.fq-public-surface .public-footer-bottom{grid-column:1/-1;grid-row:2}}

/* Public policy content; the global footer remains unchanged. */
.fq-public-surface .public-policy-page{min-height:62vh;padding:72px 20px 40px;background:#f5f6f7}.fq-public-surface .public-policy-page article{width:min(760px,100%);margin:0 auto}.fq-public-surface .public-policy-kicker{margin:0 0 10px;color:#b94800;font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.fq-public-surface .public-policy-page h1{margin:0 0 20px;color:#111827;font-size:clamp(34px,5vw,56px);line-height:1.05;letter-spacing:-.04em}.fq-public-surface .public-policy-lead{margin:0 0 42px;color:#374151;font-size:20px;line-height:1.55}.fq-public-surface .public-policy-page section{padding:24px 0;border-top:1px solid #d7dbe0}.fq-public-surface .public-policy-page h2{margin:0 0 8px;color:#111827;font-size:20px}.fq-public-surface .public-policy-page section p{margin:0;color:#4b5563;font-size:16px;line-height:1.7}.fq-public-surface .public-policy-back{display:inline-flex;min-height:44px;align-items:center;margin-top:20px;padding:0 18px;border-radius:6px;background:#ff6600;color:#fff;text-decoration:none;font-weight:600}.fq-public-surface .public-policy-back:focus-visible{outline:2px solid #111827;outline-offset:3px}
@media(max-width:760px){.fq-public-surface .public-policy-page{padding:48px 16px 24px}.fq-public-surface .public-policy-lead{font-size:18px;margin-bottom:30px}}

/* Season overview grid */
.season-teams-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 0.75rem;
}
.season-team-card {
    background: #fff;
    border: 1px solid var(--border);
    border-radius: 6px;
    padding: 0.75rem;
    cursor: pointer;
    font-size: 0.85rem;
    transition: border-color 0.15s, box-shadow 0.15s;
}
.season-team-card:hover {
    border-color: var(--accent);
    box-shadow: 0 2px 6px rgba(0,0,0,0.06);
}
.team-card-aliases-group {
    flex: 1 1 100%;
}
.team-card-aliases {
    display: flex;
    flex-wrap: wrap;
    gap: 0.3rem;
    margin-top: 0.25rem;
}

.footer-settings-card>div:first-child{min-width:0}
.footer-settings-actions { display: flex; flex-wrap: wrap; flex: 0 0 auto; gap: 8px; }

.fq-public-surface .public-footer-social-icon,.footer-social-icon{display:block;object-fit:contain}.fq-public-surface .public-footer-social-icon{width:23px;height:23px;filter:invert(1)}.fq-public-surface .public-footer-socials>a:hover .public-footer-social-icon{filter:invert(45%) sepia(97%) saturate(3586%) hue-rotate(1deg) brightness(102%) contrast(106%)}.footer-social-icon{width:20px;height:20px;flex:0 0 20px}.footer-link-row-head strong{display:flex;align-items:center;gap:8px}
@media(max-width:1500px){.fq-public-surface .public-footer-social-icon{width:20px;height:20px}}
@media(min-width:1181px){.fq-public-surface .public-footer-social-icon{width:21px;height:21px}}

/* ADM-013 System control center: unified ordered-list UX for sports and match tabs. Admin primitives only. */
/* Each System subsection is its own card module (container + border + radius + padding + gap),
   with a faint hairline in the gap so consecutive modules never read as one list. */
.system-page .settings-block{position:relative;padding:20px 22px;margin:0 0 20px;border:1px solid #e6e8ec;border-radius:12px;background:#ffffff;box-shadow:0 1px 2px rgba(16,24,40,.04)}
.system-page .settings-block + .settings-block::before{content:"";position:absolute;left:0;right:0;top:-10px;height:1px;background:#eef0f3}
.system-page .settings-block .footer-settings-meta{margin-top:6px}
.system-page .settings-block-title{margin:0 0 4px;color:#18181b;font-size:18px;line-height:24px;font-weight:600}
.system-page .admin-hint{text-align:left;color:#667085;font-size:13px;line-height:18px}
.ordered-list-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px}
.ordered-list{display:flex;flex-direction:column;border:1px solid #e5e7eb;border-radius:8px;background:#fff;overflow:hidden}
.ordered-row{display:grid;grid-template-columns:44px 108px minmax(0,1fr) 32px 76px;align-items:center;gap:12px;min-height:56px;padding-right:12px;border-bottom:1px solid #e5e7eb;background:#fff}
.ordered-row:last-child{border-bottom:0}
.ordered-row:hover{background:#f9fafb}
.ordered-row.is-dragging{background:#fff7ed}
.ordered-pos{display:flex;align-items:center;justify-content:center;align-self:stretch;border-right:1px solid #e5e7eb;background:#f9fafb;color:#667085;font-size:13px;font-weight:700;font-variant-numeric:tabular-nums}
.ordered-row.is-on .ordered-pos{background:#fff7ed;color:#b94800}
.ordered-toggle{display:inline-flex;align-items:center;gap:8px;cursor:pointer;user-select:none}
.ordered-toggle input{appearance:none;-webkit-appearance:none;position:relative;width:36px;height:20px;margin:0;border:0;border-radius:999px;background:#d0d5dd;cursor:pointer;transition:background .15s ease}
.ordered-toggle input::after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 2px rgba(16,24,40,.25);transition:transform .15s ease}
.ordered-toggle input:checked{background:#ff6b00}
.ordered-toggle input:checked::after{transform:translateX(16px)}
.ordered-toggle input:focus-visible{outline:2px solid #ff9a4d;outline-offset:2px}
.ordered-toggle span{min-width:26px;color:#98a2b3;font-size:11px;font-weight:700;letter-spacing:.04em}
.ordered-row.is-on .ordered-toggle span{color:#b94800}
.ordered-name{min-width:0;overflow:hidden;color:#18181b;font-size:14px;font-weight:600;text-overflow:ellipsis;white-space:nowrap}
.ordered-row:not(.is-on) .ordered-name{color:#667085;font-weight:500}
.ordered-drag{display:flex;align-items:center;justify-content:center;width:28px;height:32px;border-radius:6px;color:#98a2b3;font-size:14px;letter-spacing:-2px;line-height:1;cursor:grab;user-select:none}
.ordered-drag:hover{background:#f2f4f7;color:#475467}
.ordered-drag:active{cursor:grabbing}
.ordered-arrows{display:inline-flex;justify-content:flex-end;gap:4px}
.ordered-arrows button{width:30px;height:30px;padding:0;border:1px solid #e5e7eb;border-radius:6px;background:#fff;color:#475467;font-size:13px;line-height:1;cursor:pointer}
.ordered-arrows button:hover:not(:disabled){border-color:#ff9a4d;background:#fff7ed;color:#b94800}
.ordered-arrows button:focus-visible{outline:2px solid #ff9a4d;outline-offset:2px}
.ordered-arrows button:disabled{color:#d0d5dd;cursor:default}
.ordered-hint{margin:12px 0 0;color:#8a9099;font-size:12px;line-height:18px}
@media(max-width:760px){.system-page .settings-block{padding:16px}.ordered-row{grid-template-columns:36px 96px minmax(0,1fr) 28px 72px;gap:8px;padding-right:8px}}

/* ADM-013: public match tabs follow System visibility/order. */
.match-tabs-section[hidden],.match-tabs[hidden],.match-tab[hidden],.match-tab-content[hidden]{display:none!important}

/* ADM-013: maintenance drawer read-only socials and fixed assets. */
.maintenance-social-list{display:grid;gap:8px;margin:14px 0 0;padding:0;list-style:none}
.maintenance-social-list li{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid #e5e7eb;border-radius:8px;background:#f9fafb;font-size:13px}
.maintenance-social-list li span{flex:1 1 auto;color:#18181b;font-weight:600}
.maintenance-social-list li b{font-size:12px;font-weight:700}
.maintenance-social-list li b.is-on{color:#15803d}
.maintenance-social-list li b.is-off{color:#b42318}
.maintenance-assets{display:flex;flex-wrap:wrap;gap:12px;margin-top:12px}
.maintenance-assets figure{width:158px;margin:0;border:1px solid #e5e7eb;border-radius:8px;overflow:hidden;background:#f9fafb;text-align:center}
.maintenance-assets img{display:block;width:100%;height:88px;object-fit:cover;background:#e5e7eb}
.maintenance-assets figcaption{padding:7px 8px;color:#6b7280;font-size:12px}
.maintenance-asset-logo{display:grid;place-items:center;height:88px;color:#b94800;font-weight:800;font-size:16px}
.maintenance-asset-logo span{color:#ff6b00}

/* ADM-014 Phase 1: security policy + owner sessions + employee access. */
.btn.btn-sm{min-height:32px;padding:0 10px;font-size:12px}
.access-page{width:100%;max-width:1600px;color:#18181b;font-family:Inter,"Segoe UI",sans-serif}
.access-placeholder{display:grid;gap:6px;margin-top:16px;padding:28px 20px;border:1px solid #e5e7eb;border-radius:8px;background:#f9fafb;text-align:center}
.access-placeholder strong{font-size:15px;color:#18181b}
.access-placeholder span{color:#667085;font-size:13px;line-height:20px}
.access-accounts-table td small{display:block;color:#6b7280;font-size:12px;line-height:16px}
.security-policy-head,.footer-section-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.security-policy-head h3{margin:0 0 14px}
.security-policy-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.security-policy-grid .content-check{align-self:center}
.security-owner-facts{display:grid;grid-template-columns:160px 1fr;gap:8px 14px;margin:0 0 12px;font-size:13px;line-height:20px}
.security-owner-facts dt{color:#6b7280}
.security-owner-facts dd{margin:0;color:#111827}
.security-session-actions{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}
.security-session-list{display:grid;gap:8px;margin:0;padding:0;list-style:none}
.security-session-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border:1px solid #e5e7eb;border-radius:8px;background:#f9fafb}
.security-session-row.is-current{border-color:#ffc9a3;background:#fff7ed}
.security-session-main{display:grid;gap:3px;min-width:0}
.security-session-main strong{font-size:13px;color:#18181b}
.security-session-main span{color:#6b7280;font-size:12px;line-height:16px;overflow-wrap:anywhere}
@media(max-width:760px){.security-policy-grid{grid-template-columns:1fr}.security-owner-facts{grid-template-columns:120px 1fr}.security-session-row{flex-direction:column;align-items:flex-start}}

/* ADM-014 Phase 2: TOTP setup inside the security drawer. */
.security-totp-actions{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}
.security-totp-setup{display:grid;justify-items:center;gap:10px;margin:8px 0;padding:14px;border:1px solid #e5e7eb;border-radius:8px;background:#f9fafb}
.security-totp-setup label{width:100%;display:flex;flex-direction:column;gap:5px;color:#4b5563;font-size:12px}
.security-totp-setup input{width:100%;height:36px;padding:0 10px;border:1px solid #d9dde3;border-radius:6px;font:14px/20px Inter,sans-serif}
.security-totp-setup .security-totp-actions{width:100%;justify-content:center}
.security-qr{width:210px;height:210px;border:1px solid #e5e7eb;border-radius:12px;background:#fff}
.security-manual{width:100%;padding:10px 12px;border:1px dashed #d9dde3;border-radius:8px;background:#fff;font-family:ui-monospace,Consolas,monospace;font-size:13px;text-align:center;word-break:break-all}
.security-codes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:12px 0;padding:0;list-style:none}
.security-codes li{padding:8px 10px;border:1px solid #e5e7eb;border-radius:6px;background:#f9fafb;font-family:ui-monospace,Consolas,monospace;font-size:13px;text-align:center;letter-spacing:.05em}

/* ADM-014 Staff Access V1: accounts, invitations, roles & access. */
.access-toolbar{align-items:flex-end;border-bottom:0}
.access-toolbar .content-search{flex:1 1 260px}
.access-accounts-table{min-width:1080px}
.access-invites-table{min-width:1080px}
.access-accounts-table td strong,.access-invites-table td strong{display:block;color:#18181b}
.access-accounts-table td small,.access-invites-table td small{display:block;color:#6b7280;font-size:12px;line-height:16px}
.access-footnote{margin:12px 0 0;color:#9ca3af;font-size:12px;line-height:16px}
.access-type{display:inline-flex;align-items:center;min-height:24px;padding:0 8px;border-radius:5px;font-size:12px;line-height:16px;font-weight:600;white-space:nowrap}
.access-type.is-owner{background:#fff1e6;color:#b94800}
.access-type.is-staff{background:#f3f4f6;color:#4b5563}
.access-session-count{display:inline-flex;min-width:26px;justify-content:center;padding:2px 8px;border-radius:999px;background:#f3f4f6;color:#374151;font-size:12px;font-weight:600}
.access-session-count.is-none{color:#9ca3af}
.access-row-actions{display:flex;align-items:center;gap:6px}
.access-open-btn,.access-menu-btn{height:32px;border:1px solid #e5e7eb;border-radius:6px;background:#fff;color:#374151;font:500 12px/16px Inter,"Segoe UI",sans-serif;cursor:pointer}
.access-open-btn{padding:0 10px}
.access-menu-btn{width:32px;padding:0;font-size:16px;line-height:1;color:#6b7280}
.access-open-btn:hover,.access-menu-btn:hover{border-color:#ff9a4d;color:#b94800}
.access-open-btn:focus-visible,.access-menu-btn:focus-visible{outline:2px solid #ff9a4d;outline-offset:2px}
.access-menu-popup{position:fixed;z-index:1300;display:grid;gap:2px;min-width:210px;padding:6px;border:1px solid #e5e7eb;border-radius:8px;background:#fff;box-shadow:0 12px 28px rgba(15,23,42,.16)}
.access-menu-popup button{display:flex;width:100%;min-height:34px;padding:0 10px;align-items:center;border:0;border-radius:6px;background:transparent;color:#374151;font:500 13px/18px Inter,"Segoe UI",sans-serif;text-align:left;cursor:pointer}
.access-menu-popup button:hover{background:#f9fafb}
.access-menu-popup button.is-danger{color:#b42318}
.access-menu-popup button:disabled{color:#9ca3af;cursor:not-allowed}
.access-menu-popup hr{margin:4px 0;border:0;border-top:1px solid #f1f5f9}
.access-drawer-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:6px;color:#6b7280;font-size:12px;line-height:16px}
.access-drawer-tabs{padding:0 20px;background:#fff}
.access-drawer .content-drawer-body{padding-top:16px}
.access-facts{display:grid;grid-template-columns:160px 1fr;gap:8px 14px;margin:0 0 12px;font-size:13px;line-height:20px}
.access-facts dt{color:#6b7280}
.access-facts dd{margin:0;color:#111827;overflow-wrap:anywhere}
.access-block{display:grid;gap:10px}
.access-block-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px}
.access-block-head h3{margin:0}
.access-block-actions{display:flex;flex-wrap:wrap;gap:8px}
.access-history-list{display:grid;gap:8px;margin:0;padding:0;list-style:none}
.access-history-item{display:grid;gap:3px;padding:10px 12px;border:1px solid #e5e7eb;border-radius:8px;background:#f9fafb}
.access-history-item b{font-size:13px;color:#18181b}
.access-history-item span{color:#6b7280;font-size:12px;line-height:16px}
.access-history-item time{color:#9ca3af;font-size:11px}
.access-roles-heading{display:flex;min-height:52px;align-items:flex-start;justify-content:space-between;gap:16px}
.access-roles-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:8px}
.access-role-card{display:grid;gap:8px;padding:16px;border:1px solid #e5e7eb;border-radius:8px;background:#fff}
.access-role-card-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.access-role-card-head h3{margin:0;font-size:15px}
.access-role-card p{margin:0;color:#6b7280;font-size:13px;line-height:20px}
.access-role-card-foot{color:#9ca3af;font-size:12px;line-height:16px}
.access-drawer .access-roles-grid{grid-template-columns:1fr}
.access-drawer .btn:disabled{opacity:.6;cursor:not-allowed}
.access-drawer .btn-primary:disabled,.access-drawer .btn-primary:disabled:hover{background:#ffb98c}
.access-invite-form{display:grid;gap:14px}
.access-invite-form>label{display:flex;flex-direction:column;gap:6px;color:#4b5563;font-size:12px}
.access-invite-form input,.access-invite-form select{height:36px;padding:0 10px;border:1px solid #e5e7eb;border-radius:6px;background:#fff;color:#111827;font:14px/20px Inter,"Segoe UI",sans-serif}
.access-invite-term{display:grid;gap:8px}
.access-term-options{display:flex;flex-wrap:wrap;gap:8px}
.access-term-options label{display:inline-flex;flex-direction:row;align-items:center;gap:6px;min-height:34px;padding:0 12px;border:1px solid #e5e7eb;border-radius:999px;background:#fff;color:#4b5563;font-size:13px;cursor:pointer}
.access-term-options input{width:16px;height:16px;accent-color:#ff6b00}
.access-invite-note{display:grid;gap:6px;padding:12px;border:1px solid #e5e7eb;border-radius:8px;background:#f9fafb;color:#4b5563;font-size:13px;line-height:20px}
.access-invite-note b{color:#18181b}
.access-readiness{display:grid;gap:8px;padding:12px;border:1px solid #e5e7eb;border-radius:8px;background:#fff}
.access-readiness div{display:flex;justify-content:space-between;gap:12px;font-size:12px;color:#4b5563}
.access-readiness b{color:#111827;font-weight:600}
@media(max-width:1050px){.access-roles-grid{grid-template-columns:1fr}}
@media(max-width:760px){.access-toolbar label{flex:1 1 140px}.access-facts{grid-template-columns:120px 1fr}.access-role-card-head{flex-wrap:wrap}}

/* ADM-016 Advertising V1: partners, campaigns, creatives, placements, compliance. */
.advertising-page{width:100%;max-width:1600px;color:#18181b;font-family:Inter,"Segoe UI",sans-serif}
.adv-root-tabs{margin-top:8px}
.adv-campaigns-table{min-width:1320px}
.adv-partners-table{min-width:1120px}
.adv-creatives-table{min-width:920px}
.adv-placements-table{min-width:820px}
.adv-toolbar .content-search{flex:1 1 240px}
.adv-principle{display:flex;flex-direction:column;gap:4px;padding:12px 14px;border:1px solid #fed7aa;border-radius:8px;background:#fff7ed;color:#9a3412;font-size:13px;line-height:20px}
.adv-principle b{color:#9a3412}
.adv-principle.is-danger{border-color:#f6b5b0;background:#fef2f2;color:#b42318}
.adv-principle.is-danger b{color:#b42318}
.adv-chip{display:inline-flex;align-items:center;min-height:22px;padding:0 8px;border-radius:5px;background:#f3f4f6;color:#4b5563;font-size:12px;font-weight:600;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.02em;white-space:nowrap}
.adv-chip.is-allow{background:#f0fdf4;color:#15803d}
.adv-chip.is-exclude{background:#fef2f2;color:#b91c1c}
.adv-chip.is-locale{background:#fff1e6;color:#b94800}
.adv-chip.is-muted{opacity:.55}
.adv-chip-list{display:flex;flex-wrap:wrap;gap:6px}
.adv-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:16px}
.adv-kpi-grid article{min-height:84px;padding:14px;border:1px solid #e5e7eb;border-radius:8px;background:#fff}
.adv-kpi-grid span{display:block;margin-bottom:6px;color:#667085;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}
.adv-kpi-grid b{font-size:22px;font-weight:650}
.adv-kpi-grid small{display:block;margin-top:4px;color:#6b7280;font-size:12px}
.adv-panel{margin-top:16px;padding:16px;border:1px solid #e5e7eb;border-radius:8px;background:#fff}
.adv-panel:first-child{margin-top:0}
.adv-panel h3{margin:0 0 12px;font-size:16px}
.adv-detail-header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:16px;border:1px solid #e5e7eb;border-radius:8px;background:#fff}
.adv-detail-header h1{margin:6px 0;font-size:20px;line-height:26px;font-weight:600}
.adv-detail-actions{display:flex;flex-wrap:wrap;gap:8px}
.adv-tabs{margin-top:16px}
.adv-grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.adv-grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.adv-field{display:flex;flex-direction:column;gap:6px;color:#4b5563;font-size:12px}
.adv-field input,.adv-field select,.adv-field textarea{min-height:36px;padding:0 10px;border:1px solid #e5e7eb;border-radius:6px;background:#fff;color:#111827;font:14px/20px Inter,"Segoe UI",sans-serif}
.adv-field textarea{min-height:80px;padding:8px 10px;resize:vertical}
.adv-form-section{display:grid;gap:12px;padding:16px 0;border-top:1px solid #e5e7eb}
.adv-form-section:first-child{border-top:0;padding-top:0}
.adv-form-section h3{margin:0;font-size:14px}
.adv-check-grid{display:flex;flex-wrap:wrap;gap:8px;margin-top:2px}
.adv-check{display:inline-flex;align-items:center;gap:6px;min-height:34px;padding:0 11px;border:1px solid #e5e7eb;border-radius:999px;background:#fff;color:#4b5563;font-size:13px;cursor:pointer}
.adv-check input{width:16px;height:16px;accent-color:#ff6b00}
.adv-toggle-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px solid #f1f5f9}
.adv-toggle-row:last-child{border-bottom:0}
.adv-toggle-row b{font-size:13px;color:#18181b}
.adv-toggle-row .admin-hint{margin:2px 0 0}
.adv-preview-result{display:grid;gap:8px;margin-top:12px;padding:14px;border:1px solid #e5e7eb;border-radius:8px;background:#f9fafb}
.adv-outcome{display:inline-flex;align-items:center;gap:8px;font-size:14px;font-weight:650}
.adv-outcome.is-serve{color:#15803d}
.adv-outcome.is-nofill{color:#b42318}
.adv-empty-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:16px}
.adv-empty-metrics article{padding:14px;border:1px dashed #d9dde3;border-radius:8px;background:#f9fafb}
.adv-empty-metrics span{display:block;color:#667085;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}
.adv-empty-metrics b{display:block;margin-top:6px;font-size:18px;color:#9ca3af}
.adv-key-value{display:grid;grid-template-columns:190px 1fr;gap:8px 14px;margin:0;font-size:13px;line-height:20px}
.adv-key-value dt{color:#6b7280}
.adv-key-value dd{margin:0;color:#111827;overflow-wrap:anywhere}
.adv-status-dot{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:#4b5563}
.adv-status-dot i{width:8px;height:8px;border-radius:50%;background:#98a2b3}
.adv-status-dot.is-on i{background:#1b9a5d}
.adv-status-dot.is-off i{background:#d14343}
.adv-drawer .btn:disabled{opacity:.6;cursor:not-allowed}
@media(max-width:1100px){.adv-kpi-grid,.adv-empty-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.adv-grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}.adv-grid-2{grid-template-columns:1fr}}
@media(max-width:760px){.adv-kpi-grid,.adv-empty-metrics,.adv-grid-3{grid-template-columns:1fr}.adv-key-value{grid-template-columns:1fr}.adv-detail-header{flex-direction:column}.adv-toggle-row{flex-direction:column;align-items:flex-start}}
.adv-empty-copy{display:grid;gap:4px;margin-top:16px;padding:24px;border:1px solid #e5e7eb;border-radius:8px;background:#fff;text-align:center}
.adv-empty-copy strong{color:#18181b;font-size:14px}
.adv-empty-copy span{color:#6b7280;font-size:12px}

/* Advertising V1 Phase 2: public first-party ad slots (contextual only, no third-party JS). */
.fq-public-ad-slot{margin:0 0 16px}
.fq-public-ad-slot[hidden]{display:none}
.fq-public-ad-card{position:relative;display:grid;gap:10px;padding:14px 16px;border:1px solid #e5e7eb;border-radius:8px;background:#fff;box-shadow:0 1px 2px rgba(16,24,40,.04)}
.fq-public-ad-label{font:600 10px/14px Inter,"Segoe UI",sans-serif;letter-spacing:.08em;text-transform:uppercase;color:#9ca3af}
.fq-public-ad-body{display:flex;gap:14px;align-items:center;color:inherit;text-decoration:none}
.fq-public-ad-image{width:132px;height:78px;flex:0 0 132px;object-fit:cover;border-radius:6px;background:#f3f4f6}
.fq-public-ad-copy{min-width:0}
.fq-public-ad-headline{font:600 15px/20px Inter,"Segoe UI",sans-serif;color:#18181b}
.fq-public-ad-text{margin-top:4px;font:400 13px/18px Inter,"Segoe UI",sans-serif;color:#667085}
.fq-public-ad-cta-row{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between}
.fq-public-ad-cta{display:inline-flex;min-height:34px;align-items:center;padding:0 14px;border-radius:6px;background:#ff6600;color:#fff;font:600 13px/16px Inter,"Segoe UI",sans-serif;text-decoration:none}
.fq-public-ad-cta:hover{background:#e65c00}
.fq-public-ad-cta:focus-visible{outline:2px solid #ff6b00;outline-offset:2px}
.fq-public-ad-disclosure{flex:1 1 220px;font:400 11px/15px Inter,"Segoe UI",sans-serif;color:#9ca3af}
.fq-public-ad-body:hover .fq-public-ad-headline{color:#b94800}
@media(max-width:760px){.fq-public-ad-body{align-items:flex-start}.fq-public-ad-image{width:96px;height:64px;flex-basis:96px}}
.adv-report-table{min-width:640px}

/* ------------------------------------------------------------------
   COACH-ANALYTICS-02 — «Тренерская доска» (trainer board)

   One team compared with itself: current season vs previous season.
   League position is the geometric frame (grid of square cells,
   Y = table position, X = round); a single selected metric fills the
   cell content. No coach data is rendered anywhere in this block.
------------------------------------------------------------------ */

.coach-analytics-content {
    padding: 0.85rem 1rem 1.1rem;
}

/* ---- head ---- */
.board-head {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem 1rem;
    align-items: flex-start;
    justify-content: space-between;
    margin-bottom: 0.65rem;
}

.board-head-main { min-width: 0; }

.board-title {
    margin: 0;
    color: var(--text);
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.25;
}

.board-subtitle {
    margin: 0.2rem 0 0;
    color: var(--text-muted);
    font-size: 0.78rem;
    line-height: 1.3;
}

.board-controls {
    display: flex;
    flex: 1 1 320px;
    min-width: 0;
    flex-wrap: wrap;
    gap: 0.5rem 0.9rem;
    align-items: flex-end;
    justify-content: flex-end;
}

/* ---- phase switch ---- */
.board-phase-switch {
    display: inline-flex;
    padding: 2px;
    border: 1px solid var(--border);
    border-radius: 999px;
    background: var(--surface);
}

.board-phase-switch button {
    padding: 0.3rem 0.7rem;
    border: 0;
    border-radius: 999px;
    background: transparent;
    color: var(--text-muted);
    font: 600 0.76rem/1.1 inherit;
    white-space: nowrap;
    cursor: pointer;
}

.board-phase-switch button.is-active {
    background: #fff;
    color: var(--accent);
    box-shadow: 0 1px 2px rgb(0 0 0 / 10%);
}

.board-phase-switch button:disabled { opacity: 0.4; cursor: not-allowed; }

.board-phase-switch button:focus-visible {
    outline: 2px solid rgb(255 102 0 / 35%);
    outline-offset: 1px;
}

/* ---- season control ---- */
.board-season-control { position: relative; display: flex; flex-direction: column; gap: 0.2rem; }
.board-season-label { color: var(--text-muted); font-size: 0.66rem; font-weight: 600; white-space: nowrap; }

/* Fixed width so the control never resizes when the selected option changes
   (e.g. «Без сравнения» -> «2025/26»). Sized for the longest option + caret. */
.board-season-toggle {
    box-sizing: border-box;
    width: 142px;
    display: inline-flex;
    gap: 0.4rem;
    align-items: center;
    justify-content: space-between;
    padding: 0.32rem 0.65rem;
    border: 1px solid var(--border);
    border-radius: 6px;
    background: #fff;
    color: var(--text);
    font: 600 0.78rem/1.1 inherit;
    cursor: pointer;
}

#boardSeasonValue,
#boardCompareValue {
    flex: 1 1 auto;
    min-width: 0;
    overflow: hidden;
    text-align: left;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.board-season-toggle:hover { border-color: var(--accent); }

.board-season-toggle:focus-visible {
    outline: 2px solid rgb(255 102 0 / 35%);
    outline-offset: 1px;
}

.board-season-menu {
    position: absolute;
    z-index: 20;
    top: calc(100% + 4px);
    right: 0;
    min-width: 142px;
    padding: 4px;
    border: 1px solid var(--border);
    border-radius: 6px;
    background: #fff;
    box-shadow: 0 6px 18px rgb(0 0 0 / 12%);
}

.board-season-option {
    display: block;
    width: 100%;
    padding: 0.35rem 0.55rem;
    border: 0;
    border-radius: 4px;
    background: transparent;
    color: var(--text);
    font: 500 0.78rem/1.2 inherit;
    text-align: left;
    cursor: pointer;
}

.board-season-option:hover { background: var(--surface); }
.board-season-option.is-active { color: var(--accent); font-weight: 700; }
.board-season-option:disabled { opacity: 0.4; cursor: not-allowed; }

.board-season-note {
    display: block;
    padding: 0.35rem 0.55rem;
    color: var(--text-muted);
    font-size: 0.76rem;
}

/* ---- team switch (one active team) ---- */
.board-team-switch {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-bottom: 0.6rem;
}

.board-team-option {
    display: flex;
    flex-direction: column;
    gap: 1px;
    min-width: 156px;
    padding: 0.45rem 0.7rem;
    border: 1px solid var(--border);
    border-left: 3px solid var(--border);
    border-radius: 6px;
    background: #fff;
    text-align: left;
    cursor: pointer;
}

.board-team-option:hover { border-color: var(--accent); }

.board-team-option.is-active {
    border-left-color: var(--accent);
    background: #fff8f3;
}

.board-team-option:focus-visible {
    outline: 2px solid rgb(255 102 0 / 35%);
    outline-offset: 1px;
}

.board-team-role {
    color: var(--text-light);
    font-size: 0.66rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.board-team-name { color: var(--text); font-size: 0.86rem; font-weight: 700; }
.board-team-option.is-active .board-team-name { color: var(--accent); }

.board-team-note {
    color: var(--text-light);
    font-size: 0.68rem;
    font-style: normal;
}

/* ---- legend ---- */
.board-legend {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem 1rem;
    align-items: center;
    margin-bottom: 0.5rem;
    color: var(--text-muted);
    font-size: 0.76rem;
}

.board-legend-item { display: inline-flex; gap: 0.35rem; align-items: center; padding: 0.15rem 0.4rem; border: 1px solid transparent; border-radius: 5px; background: transparent; color: var(--text); font: inherit; cursor: pointer; }
.board-legend-item:hover { border-color: var(--border); background: var(--surface); }
.board-legend-item:focus-visible { outline: 2px solid rgb(255 102 0 / 35%); outline-offset: 1px; }
.board-legend-item b { color: var(--text); font-weight: 600; }
.board-legend-item em { color: var(--text-light); font-style: normal; }
.board-legend-item.is-muted { color: var(--text-light); }
.board-legend-item.is-off { opacity: 0.4; }
.board-legend-item.is-off b { text-decoration: line-through; }
.board-legend-item.is-empty { opacity: 0.55; cursor: default; }
.board-legend-item.is-empty em { margin-left: .3rem; color: var(--text-light); font-size: .72rem; font-style: normal; }

.board-legend-cell {
    display: inline-block;
    width: 13px;
    height: 13px;
    border: 1px solid transparent;
    border-radius: 2px;
}

.board-legend-cell.is-current {
    background: rgb(255 102 0 / 14%);
    border-color: var(--accent);
}

.board-legend-cell.is-previous { border: 1px dashed #9aa4b0; }
.board-legend-cell.is-frame { border-color: #e2e6ea; }

/* ---- board canvas ---- */
.board-canvas-wrap { position: relative; }

.board-canvas {
    display: flex;
    justify-content: center;
    overflow-x: auto;
    padding: 2px 0 4px;
}

.board-svg { display: block; max-width: 100%; height: auto; }

.board-axis-label {
    fill: var(--text-light);
    font: 500 10px "Segoe UI", Tahoma, Arial, sans-serif;
}

/* chain connecting the cells */
.board-chain { fill: none; stroke-linejoin: round; stroke-linecap: round; }
.board-chain.is-current { stroke: var(--accent); stroke-width: 2.5; opacity: 0.85; }

.board-chain.is-previous {
    stroke: #9aa4b0;
    stroke-width: 1.5;
    stroke-dasharray: 4 3;
    opacity: 0.55;
}

/* cells */
.board-cell.is-current rect {
    fill: rgb(255 102 0 / 12%);
    stroke: var(--accent);
    stroke-width: 1.4;
}

.board-cell.is-previous rect {
    fill: transparent;
    stroke: #9aa4b0;
    stroke-width: 1.2;
    stroke-dasharray: 3 2.5;
}

.board-cell-value {
    fill: var(--text);
    font: 700 10px "Segoe UI", Tahoma, Arial, sans-serif;
    pointer-events: none;
}

.board-cell-value.is-compact { font-size: 8.5px; }

.board-cell.is-previous .board-cell-value { fill: #8b95a1; font-weight: 600; }
.board-cell.is-empty .board-cell-value { fill: var(--text-light); }

/* same position as the previous season */
.board-cell-match {
    fill: none;
    stroke: var(--accent);
    stroke-width: 1;
    stroke-dasharray: 2 2;
    opacity: 0.5;
}

/* selected round */
.board-guide {
    stroke: var(--accent);
    stroke-width: 1;
    stroke-dasharray: 3 3;
    opacity: 0.4;
}

.board-cell-focus { fill: none; stroke: var(--accent); stroke-width: 2; }

.board-hit { fill: transparent; cursor: pointer; }

.board-hit:focus-visible {
    outline: none;
    stroke: var(--accent);
    stroke-width: 2;
    fill: rgb(255 102 0 / 10%);
}

/* ---- round timeline ---- */
.board-timeline {
    display: flex;
    gap: 0.6rem;
    align-items: center;
    margin: 0.7rem 0 0.45rem;
}

.board-timeline-label {
    color: var(--text-muted);
    font-size: 0.72rem;
    font-weight: 600;
}

.board-round-range { flex: 1 1 auto; min-width: 0; accent-color: var(--accent); }
.board-round-range:disabled { opacity: 0.45; }

.board-timeline-value {
    flex: 0 0 auto;
    min-width: 58px;
    color: var(--text);
    font-size: 0.76rem;
    font-weight: 700;
    text-align: right;
}

/* ---- round detail ---- */
.board-round-detail {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem 0.8rem;
    align-items: center;
    padding: 0.5rem 0.65rem;
    border: 1px solid var(--border);
    border-radius: 6px;
    background: var(--surface);
    color: var(--text-muted);
    font-size: 0.76rem;
}

.board-round-chip {
    padding: 0.1rem 0.45rem;
    border-radius: 999px;
    background: var(--accent);
    color: #fff;
    font-size: 0.7rem;
    font-weight: 700;
}

.board-round-item b { color: var(--text); }
.board-round-item em { margin-left: 0.25rem; color: var(--text-light); font-style: normal; }
.board-round-item.is-muted { color: var(--text-light); }

.board-round-result {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    border-radius: 3px;
    color: #fff;
    font-size: 0.66rem;
    font-weight: 700;
}

.board-round-result.is-w { background: var(--green); }
.board-round-result.is-d { background: #9aa4b0; }
.board-round-result.is-l { background: var(--red); }

.board-round-delta.is-up { color: var(--green); font-weight: 600; }
.board-round-delta.is-down { color: var(--red); font-weight: 600; }
.board-round-delta.is-flat { color: var(--text-muted); }
.board-round-empty { color: var(--text-muted); }

/* ---- metric toolbar (single select) ---- */
.board-metric-bar {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    margin: 0.85rem 0 0;
}

.board-metric-option {
    padding: 0.32rem 0.6rem;
    border: 1px solid var(--border);
    border-radius: 999px;
    background: #fff;
    color: var(--text);
    font: 600 0.74rem/1.1 inherit;
    cursor: pointer;
}

.board-metric-option:hover:not(:disabled) { border-color: var(--accent); }

.board-metric-option.is-active {
    background: var(--accent);
    border-color: var(--accent);
    color: #fff;
}

/* available only in the previous season */
.board-metric-option.is-partial { border-style: dashed; color: var(--text-muted); }
.board-metric-option.is-partial.is-active { color: #fff; }

.board-metric-option:disabled {
    opacity: 0.42;
    cursor: not-allowed;
    text-decoration: line-through;
}

.board-metric-option:focus-visible {
    outline: 2px solid rgb(255 102 0 / 35%);
    outline-offset: 1px;
}

.board-metric-note {
    box-sizing: border-box;
    min-height: 35px;
    margin: 0.5rem 0 0;
    padding: 0.5rem 0.65rem;
    border: 1px solid #ffd9b8;
    border-radius: 6px;
    background: #fff6ed;
    color: #8a4b12;
    font-size: 0.75rem;
    line-height: 1.4;
}

.board-metric-note[hidden] { display: block; visibility: hidden; }

.board-metric-note b { font-weight: 700; }

/* ---- metric table ---- */
.board-table-wrap { margin-top: 0.75rem; max-height: 440px; overflow: auto; }

.board-table { width: 100%; border-collapse: collapse; font-size: 0.78rem; }

.board-table-caption {
    caption-side: top;
    padding: 0 0 0.4rem;
    color: var(--text-muted);
    font-size: 0.74rem;
    text-align: left;
}

.board-table th {
    position: sticky;
    top: 0;
    z-index: 1;
    padding: 0.35rem 0.5rem;
    border-bottom: 1px solid var(--border);
    background: #fff;
    color: var(--text-muted);
    font-size: 0.7rem;
    font-weight: 600;
    text-align: left;
    white-space: nowrap;
}

.board-table td {
    padding: 0.35rem 0.5rem;
    border-bottom: 1px solid #f2f4f7;
    color: var(--text);
    white-space: nowrap;
}

.board-table tr.is-active td { background: #fff8f3; }
.board-table tr[data-board-row] { cursor: pointer; }
.board-table tr[data-board-row]:hover td { background: var(--surface); }

.board-table-opponent { max-width: 190px; overflow: hidden; text-overflow: ellipsis; }

.board-table-metric { font-weight: 700; color: var(--accent); }
.board-table-metric.is-empty { color: var(--text-light); font-weight: 400; }

.board-table-delta { margin-left: 0.3rem; font-size: 0.68rem; font-weight: 600; }
.board-table-delta.is-up { color: var(--green); }
.board-table-delta.is-down { color: var(--red); }
.board-table-delta.is-flat { color: var(--text-light); }

.board-table-empty {
    padding: 1rem 0;
    color: var(--text-muted);
    text-align: center;
}

/* ---- tooltip ---- */
.board-tooltip {
    position: absolute;
    z-index: 30;
    min-width: 170px;
    padding: 0.5rem 0.6rem;
    border: 1px solid var(--border);
    border-radius: 6px;
    background: #fff;
    box-shadow: 0 8px 20px rgb(0 0 0 / 14%);
    transform: translate(-50%, -100%);
    pointer-events: none;
}

.board-tooltip.is-below { transform: translate(-50%, 0); }

.board-tooltip-head {
    display: flex;
    gap: 0.4rem;
    align-items: baseline;
    margin-bottom: 0.35rem;
}

.board-tooltip-head b { color: var(--text); font-size: 0.8rem; font-weight: 700; }

.board-tooltip-head em {
    margin-left: auto;
    color: var(--text-light);
    font-size: 0.7rem;
    font-style: normal;
}

.board-tooltip dl {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 2px 10px;
    margin: 0;
    font-size: 0.74rem;
    line-height: 1.35;
}

.board-tooltip dl > div { display: contents; }
.board-tooltip dt { color: var(--text-muted); }

.board-tooltip dd {
    margin: 0;
    color: var(--text);
    font-weight: 600;
    text-align: right;
}

/* ---- empty / loading ---- */
.board-empty {
    margin: 0.9rem 0 0.2rem;
    padding: 0.75rem;
    border-radius: 6px;
    background: var(--surface);
    color: var(--text-muted);
    font-size: 0.84rem;
}

@media (max-width: 760px) {
    .board-head { flex-direction: column; }
    .board-team-option { min-width: 0; flex: 1 1 140px; }
    .board-canvas { justify-content: flex-start; }
    .board-table-opponent { max-width: 120px; }
}

/* TRAINER BOARD — production top-board visual redesign */
.coach-analytics-content { padding: 1.15rem 1rem; background: linear-gradient(180deg,#fff 0,#f9fbfe 72%); }
.board-block { color: #0b1735; }
.board-head { margin-bottom: .9rem; }
.board-title { font-size: 1.55rem; font-weight: 800; letter-spacing: -.035em; color: #0b1735; }
.board-subtitle { margin-top: .15rem; font-size: .86rem; color: #627595; }
.board-controls { gap: .45rem; }
.board-phase-switch { gap:2px; padding:2px; border:1px solid var(--border); border-radius:6px; background:#fff; }
.board-phase-switch button { min-height:27px; padding:.28rem .48rem; border:0; border-radius:4px; background:transparent; color:#555; font:600 .68rem/1.4 inherit; }
.board-phase-switch button.is-active { border-color:transparent; background:var(--accent); color:#fff; box-shadow:none; }
.board-season-toggle { box-sizing:border-box; height:27px; min-height:27px; padding:4.48px 7.68px; border-color:var(--border); border-radius:4px; font:400 10.88px/15.232px inherit; }
.board-team-switch { gap: .65rem; margin-bottom: .7rem; }
.board-team-option { position: relative; display: grid; grid-template-columns: 3px 38px minmax(0,1fr) 16px; align-items: center; gap: .65rem; min-width: 260px; padding: .55rem .75rem; border: 1px solid #dbe4ef; border-radius: 9px; }
.board-team-option.is-active { border-color: #dbe4ef; background: #fff; }
.board-team-option.is-hidden { opacity: .46; background: #f8fafc; }
.board-team-option.is-hidden .board-team-marker { background: #a9b5c5; }
.board-team-marker { align-self: stretch; border-radius: 999px; background: #d64541; }
.board-team-option[data-board-team="away"] .board-team-marker { background: #2f6fb0; }
.board-team-logo { width: 38px; height: 38px; object-fit: contain; }
.board-team-copy { display: flex; flex-direction: column; min-width: 0; }
.board-team-name { color: #0b1735!important; font-size: .86rem; }
.board-team-note { color: #8495af; font-size: .66rem; }
.board-team-mode { position:absolute; top:.76rem; right:2.25rem; color:#ff6600; font-size:.62rem; font-style:normal; font-weight:600; line-height:1.2; white-space:nowrap; }
.board-team-mode.is-muted { color:#8495af; }
.board-team-chevron { justify-self: end; color: #102445; font-size: 1rem; }
.board-view-controls { display: flex; flex: 1 1 100%; min-width: 0; flex-wrap: wrap; justify-content: flex-end; gap: .55rem 1rem; margin: -.15rem 0 .45rem; }
.board-view-group { display: flex; flex-wrap: wrap; align-items: center; gap: .42rem; }
/* Author `display:flex` beats the UA [hidden] rule — force the groups (and any
   control container) to fully disappear when hidden (no empty strip/placeholder). */
.board-view-group[hidden], .board-view-switch[hidden], .board-controls [hidden] { display: none !important; }
.board-view-group > span { color: #8292aa; font-size: .64rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; }
.board-view-switch { display:inline-grid; grid-auto-flow:column; grid-auto-columns:1fr; box-sizing:border-box; overflow:hidden; gap:2px; padding:2px; border:1px solid var(--border); border-radius:6px; background:#fff; }
.board-view-switch button { box-sizing:border-box; width:100%; min-width:0; height:27px; padding:0 .3rem; border:0; border-radius:4px; background:transparent; color:#555; font:600 .68rem/1 inherit; text-align:center; white-space:nowrap; cursor:pointer; }
/* Fixed, equal button geometry per group — nothing moves on active/inactive. */
#boardDirectionSwitch { width: 176px; }
#boardYMode { width: 176px; }
#boardColorMode { width: 200px; }
#boardCoverageSwitch { width: 232px; }
#boardWindowSwitch { width: 300px; }
/* Disabled options keep the exact same geometry and get a subdued look. */
.board-view-switch button:disabled { opacity: .5; color: #9aa1aa !important; background: transparent !important; cursor: not-allowed; }
.board-view-switch button:disabled.is-active { opacity: .5; }
.board-view-switch button.is-active { background: var(--accent); color: #fff; }
/* BOARD-GRADIENT-INTENSITY-01: compact gradient intensity slider sits directly
   above the «Цвет» group. It is taken OUT OF FLOW (absolute) so the existing
   control geometry/wrap is byte-for-byte unchanged; it only reuses the
   Statistics W/D/L slider style (same .statistics-intensity* classes). */
.board-color-group { position: relative; }
.board-intensity {
    position: absolute;
    right: 0;
    bottom: calc(100% + 4px);
    z-index: 3;
}
.board-intensity .statistics-intensity-label { color: #8292aa; }
.board-intensity.is-disabled { opacity: .5; }
.board-intensity .statistics-intensity-range:disabled { cursor: not-allowed; }
@media(max-width:760px){
    /* Stack instead of float so the slider cannot overlap a wrapped row. */
    .board-color-group { flex-direction: column; align-items: flex-start; }
    .board-intensity { position: static; right: auto; bottom: auto; }
}
.board-canvas-wrap { padding: .35rem .45rem .1rem; border: 1px solid #dbe4ef; border-radius: 10px; background: #fff; }
.board-canvas { overflow-x: hidden; padding: 0; }
.board-svg { width: 100%; max-width: 100%; }
.board-axis-label { fill: #50627e; font-size: 11px; }
.board-ruler-title { fill: #243957; font: 600 12px "Segoe UI",Tahoma,Arial,sans-serif; }
.board-ruler-line { stroke: #ff7623; stroke-width: .8; }
.board-ruler-round { cursor: pointer; }
.board-ruler-round text { fill: #173052; font: 600 11px "Segoe UI",Tahoma,Arial,sans-serif; }
.board-round-badge { fill: #2f3e52; }
.board-ruler-round.is-selected text { fill: #fff; font-size: 13px; font-weight: 700; }
.board-ruler-dot { fill: #ff7623; }
.board-ruler-round.is-outside { opacity: .8; }
.board-chain { stroke-width: 1.2; }
/* Main season: thin but prominent solid line (non-position metrics only). */
.board-chain.is-current.is-home { stroke: #d64541; opacity: .95; stroke-width: 1.6; }
.board-chain.is-current.is-away { stroke: #2f6fb0; opacity: .95; stroke-width: 1.6; }
/* Comparison season: same team colour, solid (NOT dashed), clearly weaker. */
.board-chain.is-previous { stroke-width: 1.3; stroke-dasharray: none; opacity: .32; }
.board-chain.is-previous.is-home { stroke: #d64541; }
.board-chain.is-previous.is-away { stroke: #2f6fb0; }
.board-chain-segment.is-venue-muted { opacity:.12; }
.board-chain-segment.is-previous.is-venue-muted { opacity:.08; }
.board-cell rect { stroke-width: 1.1; }
.board-cell.is-home rect { stroke: #d64541; }
.board-cell.is-away rect { stroke: #2f6fb0; }
.board-cell.is-current.is-home rect { fill: rgb(214 69 65 / var(--board-alpha,.88)); }
.board-cell.is-current.is-away rect { fill: rgb(47 111 176 / var(--board-alpha,.88)); }
.board-cell.is-previous rect { fill: #fff; stroke-dasharray: none; opacity: .5; }
.board-cell.is-current.is-venue-muted { opacity:.14; }
.board-cell.is-previous.is-venue-muted { opacity:.1; }
.board-cell.is-result-w rect { fill: #20ad63!important; }
.board-cell.is-result-d rect { fill: #a7b4c5!important; }
.board-cell.is-result-l rect { fill: #e64141!important; }
.board-cell-value { fill: #fff; font-size: 8px; font-weight: 800; }
.board-cell.is-previous .board-cell-value { fill: #6c7d95; font-size: 7px; }
/* Position metric: small round markers only; position is read off the Y axis,
   so no number is drawn inside the marker and no connecting line is drawn. */
.board-dot { pointer-events: none; }
.board-dot.is-current { opacity: .95; }
.board-dot.is-current.is-home { fill: #d64541; }
.board-dot.is-current.is-away { fill: #2f6fb0; }
.board-dot.is-previous { opacity: .3; }
.board-dot.is-previous.is-home { fill: #d64541; }
.board-dot.is-previous.is-away { fill: #2f6fb0; }
.board-dot.is-venue-muted { opacity: .12; }
/* Metric modes: the same round marker, with the numeric value inside. */
.board-marker circle { fill: #d64541; }
.board-marker.is-home circle { fill: rgb(214 69 65 / var(--board-alpha, .9)); }
.board-marker.is-away circle { fill: rgb(47 111 176 / var(--board-alpha, .9)); }
/* Main marker opacity is variable so gradient mode can reach a true full
   colour at intensity 100 while comparison (.is-previous) stays muted. */
.board-marker.is-current { opacity: var(--board-current-opacity, .96); }
.board-marker.is-previous { opacity: .34; }
.board-marker.is-result-w circle { fill: #20ad63; }
.board-marker.is-result-d circle { fill: #a7b4c5; }
.board-marker.is-result-l circle { fill: #e64141; }
.board-marker.is-venue-muted { opacity: .14; }
.board-marker-value { fill: #fff; font: 700 9.5px "Segoe UI",Tahoma,Arial,sans-serif; dominant-baseline: central; pointer-events: none; }
.board-marker-value.is-compact { font-size: 8px; }
.board-marker.is-previous .board-marker-value { fill: rgb(255 255 255 / 88%); }
.board-marker.is-empty .board-marker-value { fill: rgb(255 255 255 / 60%); }
/* Stability "%" summary slot (inside the existing right padding). */
.board-stability { cursor: pointer; }
.board-stability.is-previous { opacity: .32; }
.board-stability:focus-visible { outline: 2px solid rgb(255 102 0 / 35%); outline-offset: 1px; }
.board-summary-head { fill: #50627e; font: 700 9px "Segoe UI",Tahoma,Arial,sans-serif; }
.board-stability-tag { stroke: #fff; stroke-width: 1.2; }
.board-stability-tag-text { fill: #fff; font: 700 13px "Segoe UI",Tahoma,Arial,sans-serif; }
.board-stability-note { align-self: center; color: var(--text-muted); font-size: 0.72rem; }
.board-cell-position,.board-cell-previous-value { fill: rgb(255 255 255 / 80%); font: 700 5.5px "Segoe UI",Tahoma,Arial,sans-serif; pointer-events: none; }
.board-cell-previous-value { fill: #18365e; }
.board-guide { stroke: var(--accent); stroke-width: .8; stroke-dasharray: none; opacity: .7; }
/* Real league qualification/relegation zones (main season only). */
.board-zone-label { font: 600 11.5px "Segoe UI",Tahoma,Arial,sans-serif; dominant-baseline: middle; pointer-events: none; }
/* Separate legend card below the chart (thin light border, rounded). */
.board-legend { justify-content: center; gap: 0; margin: .8rem 0 0; padding: .45rem .8rem; border: 1px solid #dbe4ef; border-radius: 10px; background: #fff; font-size: .84rem; }
.board-legend-item { padding: .3rem .95rem; border-radius: 6px; }
.board-legend-item + .board-legend-item { border-left: 1px solid #edf1f6; }
.board-legend-line { position: relative; display: inline-block; width: 14px; height: 14px; border-radius: 50%; background: #d64541; }
.board-legend-line::before { content: none; }
.board-legend-item.is-away .board-legend-line { background: #2f6fb0; }
.board-legend-line.is-previous { opacity: .3; }
.board-timeline { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); }
.board-round-detail { margin-top:.55rem; padding:.4rem .55rem; background:#fbfcfe; border-color:#e4ebf3; }
.board-metric-bar { width:100%; flex-wrap:wrap; gap:2px; margin-top:.65rem; padding:2px; border:1px solid var(--border); border-radius:6px; background:#fff; }
.board-metric-option { display:inline-flex; min-width:0; min-height:27px; flex:0 0 auto; align-items:center; justify-content:center; gap:.28rem; padding:.28rem .48rem; border:0; border-radius:4px; color:#555; font:600 .68rem/1.4 inherit; white-space:nowrap; }
.board-metric-option.is-active { box-shadow:none; }
.board-metric-option.is-planned { opacity:1; text-decoration:none; border-style:solid; background:#f5f5f5; color:#bbb; }
.board-metric-option:disabled { opacity:1; text-decoration:none; background:#f5f5f5; color:#bbb; }
.board-metric-icon { width:14px; height:14px; flex:0 0 14px; overflow:visible; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.board-metric-icon.is-yellow_cards,.board-metric-icon.is-red_cards { stroke:none; }
.board-metric-icon.is-yellow_cards { fill:#e3ae00; }
.board-metric-icon.is-red_cards { fill:#d93636; }
.board-metric-option.is-active .board-metric-icon { color:inherit; fill:none; stroke:currentColor; }
.board-metric-option.is-active .board-metric-icon.is-yellow_cards,.board-metric-option.is-active .board-metric-icon.is-red_cards { fill:#fff; stroke:none; }

.board-comparison { margin-top:.7rem; overflow:hidden; border:1px solid var(--border); border-radius:10px; background:#fff; font-family:"Segoe UI",Tahoma,Arial,sans-serif; }
.board-comparison-head { display:flex; min-height:38px; align-items:center; justify-content:space-between; gap:1rem; padding:.42rem .7rem; border-bottom:1px solid var(--border); }
.board-comparison-head > div { display:flex; align-items:baseline; gap:.65rem; }
.board-comparison-head b { color:var(--text); font-size:.78rem; }
.board-comparison-head span { color:var(--text-muted); font-size:.64rem; }
.board-comparison-note { text-align:right; }
.board-scoring { display:grid; grid-template-columns:auto minmax(0,1fr); align-items:center; gap:.55rem; padding:.34rem .7rem; background:#fafafa; border-bottom:1px solid rgb(0 0 0 / 7%); }
.board-scoring-label { display:block; margin:0; color:var(--text-muted); font-size:.58rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; }
.board-scoring-cards { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.35rem; }
.board-scoring-card { display:grid; grid-template-columns:minmax(90px,1fr) minmax(0,2fr); align-items:center; gap:.35rem; min-height:31px; padding:.24rem .4rem; border:1px solid var(--border); border-radius:6px; background:#fff; box-shadow:none; }
.board-scoring-card > div { display:flex; align-items:center; gap:.35rem; margin:0; }
.board-scoring-card b { color:var(--text); font-size:.69rem; font-weight:600; }
.board-scoring-dot { width:7px; height:7px; border-radius:50%; background:#d64541; }
.board-scoring-card.is-away .board-scoring-dot { background:#2f6fb0; }
.board-scoring-card dl { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.4rem; margin:0; }
.board-scoring-card dl div { display:flex; align-items:baseline; justify-content:space-between; gap:.3rem; padding:.12rem .3rem; border-left:1px solid rgb(0 0 0 / 7%); background:#fff; }
.board-scoring-card dt { color:var(--text-muted); font-size:.58rem; }
.board-scoring-card dd { margin:0; color:var(--text); font-size:.68rem; font-weight:700; }
.board-comparison-table-wrap { overflow-x:auto; }
.board-comparison-table { width:100%; min-width:600px; border-collapse:collapse; table-layout:fixed; font-size:.7rem; }
.board-comparison-table th,.board-comparison-table td { height:31px; padding:.32rem .72rem; border-bottom:1px solid rgb(0 0 0 / 6%); }
.board-comparison-table thead th { background:#f5f5f5; color:var(--text-muted); font-size:.61rem; font-weight:600; text-align:left; }
.board-comparison-table thead th:not(:first-child),.board-comparison-table tbody td { text-align:center; }
.board-comparison-table tbody th { display:flex; align-items:center; gap:.4rem; color:var(--text); font-size:.68rem; font-weight:500; text-align:left; }
.board-comparison-table tbody td { color:var(--text); font-size:.7rem; font-weight:600; font-variant-numeric:tabular-nums; }
.board-comparison-table tbody tr.is-active > * { background:rgb(255 102 0 / 7%); }
.board-comparison-table tbody tr.is-active th { box-shadow:inset 3px 0 0 var(--accent); color:var(--accent); font-weight:600; }
.board-comparison-table tbody tr:last-child > * { border-bottom:0; }
.board-comparison-team { display:flex; flex-direction:column; gap:.15rem; }
.board-comparison-team b { color:var(--text); font-size:.68rem; }
.board-comparison-team span { color:var(--text-muted); font-size:.58rem; font-weight:400; }
.board-result-badge { display:inline-block; min-width:15px; padding:1px 4px; border-radius:3px; color:#fff; font-size:.53rem; font-style:normal; font-weight:700; line-height:1.25; }
.board-result-badge.is-w { background:#25a34a; }
.board-result-badge.is-d { background:#a3a8ad; }
.board-result-badge.is-l { background:#d93636; }
.board-value { display:inline-flex; min-width:28px; align-items:center; justify-content:center; gap:4px; }
.board-value::before { width:4px; height:4px; flex:0 0 4px; border-radius:50%; background:currentColor; content:""; opacity:0; }
.board-value.is-strong { color:#168a42; }
.board-value.is-weak { color:#c73333; }
.board-value.is-neutral { color:#555; }
.board-value.is-strong::before,.board-value.is-weak::before { opacity:1; }

@media(max-width:760px){
    .board-view-controls{justify-content:flex-start;flex-wrap:wrap}.board-team-option{min-width:0;flex:1 1 240px}
    .board-canvas{overflow-x:auto}.board-svg{min-width:860px}.board-metric-option{flex:0 0 auto}
    .board-comparison-head{align-items:flex-start;flex-direction:column}.board-scoring{grid-template-columns:1fr}.board-scoring-cards{grid-template-columns:1fr}
}

/* ============================================================
   EXTERNAL-API-ADMIN-00 — Admin → «Внешний API» (V0, visual only)
   Раздел является картой готовности будущего публичного API.
   Реального API, клиентов, ключей, тарифов и трафика не существует.
   ============================================================ */
.ext-api-page{width:100%;max-width:1600px;color:#18181b;font-family:Inter,"Segoe UI",Tahoma,Arial,sans-serif}
.ext-api-heading-badges{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.ext-api-badge{display:inline-flex;align-items:center;gap:6px;min-height:26px;padding:0 10px;border:1px solid #e5e7eb;border-radius:999px;background:#fff;color:#4b5563;font-size:12px;font-weight:600;white-space:nowrap}
.ext-api-badge i{width:8px;height:8px;border-radius:50%;background:#98a2b3}
.ext-api-badge.is-stage{border-color:#f4cf8a;background:#fff8f1;color:#8a5a00}
.ext-api-badge.is-off{border-color:#e5e7eb;background:#f9fafb;color:#6b7280}
.ext-api-badge.is-off i{background:#d14343}
.ext-api-badge.is-review{border-color:#f1cfad;background:#fff8f1;color:#75431d}
.ext-api-badge.is-draft{border-color:#e5e7eb;background:#f3f4f6;color:#4b5563}
.ext-api-summary{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin-top:16px}
.ext-api-summary article{min-height:88px;padding:14px;border:1px solid #e5e7eb;border-radius:8px;background:#fff}
.ext-api-summary span{display:block;margin-bottom:6px;color:#667085;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}
.ext-api-summary b{display:block;font-size:20px;line-height:26px;font-weight:650}
.ext-api-summary b.is-muted{color:#6b7280}
.ext-api-summary small{display:block;margin-top:4px;color:#9ca3af;font-size:12px;line-height:16px}
.ext-api-tabs{margin-top:8px}
.ext-api-note{display:flex;flex-direction:column;gap:4px;margin-top:16px;padding:12px 14px;border:1px solid #e5e7eb;border-left:3px solid #ff6b00;border-radius:8px;background:#f9fafb;color:#4b5563;font-size:13px;line-height:20px}
.ext-api-note b{color:#18181b}
.ext-api-panel{margin-top:16px;padding:16px;border:1px solid #e5e7eb;border-radius:8px;background:#fff}
.ext-api-panel.is-compliance{border-color:#f1cfad;background:#fffdfa}
.ext-api-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:12px}
.ext-api-panel-head h2{margin:0;font-size:16px;line-height:24px}
.ext-api-panel-head p{margin:4px 0 0;color:#6b7280;font-size:13px;line-height:20px}
.ext-api-eyebrow{display:block;margin-bottom:4px;color:#b94800;font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase}
.ext-api-table-resources{min-width:900px}
.ext-api-table-licensing{min-width:940px}
.ext-api-table-endpoints{min-width:1240px}
.ext-api-table-access{min-width:1180px}
.ext-api-state{display:inline-flex;align-items:center;min-height:24px;padding:0 8px;border-radius:5px;background:#f3f4f6;color:#4b5563;font-size:12px;line-height:16px;font-weight:500;white-space:nowrap}
.ext-api-state.is-ready{background:#f0fdf4;color:#15803d}
.ext-api-state.is-review{background:#fff7ed;color:#c2410c}
.ext-api-state.is-restricted{background:#fef2f2;color:#b91c1c}
.ext-api-state.is-partial{background:#fffbeb;color:#92400e}
.ext-api-state.is-planned{background:#f3f4f6;color:#4b5563}
.ext-api-state.is-future{border:1px dashed #d9dde3;background:#f9fafb;color:#9ca3af}
.ext-api-code{display:block!important;margin-top:3px;color:#9ca3af;font:600 10px/14px ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.06em}
.ext-api-layer{display:inline-flex;align-items:center;min-height:22px;padding:0 8px;border-radius:5px;background:#f3f4f6;color:#4b5563;font:600 11px/16px ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.02em;white-space:nowrap}
.ext-api-layer.is-derived{background:#fff1e6;color:#b94800}
.ext-api-method{display:inline-flex;align-items:center;min-height:22px;padding:0 8px;border-radius:5px;background:#f0fdf4;color:#15803d;font:700 11px/16px ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.04em}
.ext-api-endpoint{color:#18181b;font:12px/18px ui-monospace,SFMono-Regular,Consolas,monospace}
.ext-api-scope{color:#475467;font:12px/18px ui-monospace,SFMono-Regular,Consolas,monospace}
.ext-api-footnote{margin:12px 0 0;color:#9ca3af;font-size:12px;line-height:16px}
.ext-api-steps{display:grid;gap:0;margin:0;padding:0;list-style:none;counter-reset:extstep}
.ext-api-steps li{display:grid;grid-template-columns:28px minmax(0,1fr);gap:2px 10px;padding:12px 0;border-top:1px solid #f1f5f9}
.ext-api-steps li:first-child{padding-top:0;border-top:0}
.ext-api-steps li::before{grid-row:1/3;display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;background:#fff1e6;color:#b94800;font-size:12px;font-weight:700;counter-increment:extstep;content:counter(extstep)}
.ext-api-steps b{font-size:14px;color:#18181b}
.ext-api-steps span{color:#6b7280;font-size:13px;line-height:20px}
.ext-api-plan-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-top:16px}
.ext-api-plan{display:flex;flex-direction:column;gap:12px;padding:16px;border:1px solid #e5e7eb;border-radius:8px;background:#fff}
.ext-api-plan header{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.ext-api-plan h3{margin:0;font-size:16px;line-height:24px}
.ext-api-plan header p{margin:2px 0 0;color:#6b7280;font-size:12px;line-height:16px}
.ext-api-plan-facts{display:grid;gap:0;margin:0;padding:0}
.ext-api-plan-facts>div{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding:7px 0;border-top:1px solid #f1f5f9}
.ext-api-plan-facts>div:first-child{border-top:0}
.ext-api-plan-facts dt{color:#6b7280;font-size:12px;line-height:16px}
.ext-api-plan-facts dd{margin:0;color:#9ca3af;font-size:12px;line-height:16px;text-align:right}
.ext-api-plan .btn{margin-top:auto;justify-content:center}
.ext-api-plan .btn:disabled,.ext-api-toolbar-actions .btn:disabled{opacity:.6;cursor:not-allowed}
.ext-api-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid #e5e7eb}
.ext-api-toolbar-note{color:#6b7280;font-size:13px;line-height:20px}
.ext-api-toolbar-actions{display:flex;flex-wrap:wrap;gap:8px}
.ext-api-metrics{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-top:16px}
.ext-api-metrics article{padding:14px;border:1px dashed #d9dde3;border-radius:8px;background:#f9fafb}
.ext-api-metrics span{display:block;color:#667085;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}
.ext-api-metrics b{display:block;margin-top:6px;font-size:18px;color:#9ca3af}
.ext-api-empty{display:grid;gap:4px;place-content:center;min-height:180px;padding:24px;text-align:center}
.ext-api-empty strong{color:#18181b;font-size:14px}
.ext-api-empty span{color:#6b7280;font-size:12px}
.ext-api-reserved{margin-top:16px;padding-top:16px;border-top:1px solid #e5e7eb}
.ext-api-reserved-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.ext-api-reserved-head h2{margin:0;font-size:16px;line-height:24px}
.ext-api-reserved p{margin:6px 0 0;color:#6b7280;font-size:13px;line-height:20px}
.ext-api-reserved-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:12px}
.ext-api-reserved-grid>div{height:72px;border:1px dashed #e5e7eb;border-radius:8px;background:#fcfcfd}
@media(max-width:1280px){
    .ext-api-summary{grid-template-columns:repeat(3,minmax(0,1fr))}
    .ext-api-plan-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
    .ext-api-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:760px){
    .ext-api-heading{flex-direction:column}
    .ext-api-summary,.ext-api-plan-grid,.ext-api-metrics,.ext-api-reserved-grid{grid-template-columns:1fr}
    .ext-api-panel-head,.ext-api-toolbar{flex-direction:column;align-items:flex-start}
    .ext-api-tabs{overflow-x:auto}
}

/* STAT-RESULT-COLOR-01: compact W/D/L highlight-intensity control above the two team
   history tables. One thin slider drives both tables through --fq-result-intensity. */
:root { --fq-result-intensity: 50; }

.statistics-tables-head {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    min-height: 16px;
    margin: 0.6rem 0 0;
}
.statistics-tables-head + .statistics-tables { margin-top: 0.2rem; }

.statistics-intensity {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    color: var(--text-muted);
    font-size: 0.66rem;
    line-height: 1;
    white-space: nowrap;
}
.statistics-intensity-label { color: var(--text-muted); font-size: 0.66rem; cursor: pointer; }
.statistics-intensity-value {
    min-width: 1.6em;
    color: var(--accent);
    font-size: 0.66rem;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    text-align: right;
}

/* Thin track + small thumb instead of the default browser range. */
.statistics-intensity-range {
    -webkit-appearance: none;
    appearance: none;
    width: 88px;
    height: 14px;
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
    cursor: pointer;
}
.statistics-intensity-range::-webkit-slider-runnable-track {
    height: 3px;
    border-radius: 999px;
    background: #dfe3e8;
}
.statistics-intensity-range::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 10px;
    height: 10px;
    margin-top: -3.5px;
    border: 1px solid #fff;
    border-radius: 50%;
    background: var(--accent);
    box-shadow: 0 1px 2px rgb(0 0 0 / 22%);
}
.statistics-intensity-range::-moz-range-track {
    height: 3px;
    border-radius: 999px;
    background: #dfe3e8;
}
.statistics-intensity-range::-moz-range-thumb {
    width: 10px;
    height: 10px;
    border: 1px solid #fff;
    border-radius: 50%;
    background: var(--accent);
    box-shadow: 0 1px 2px rgb(0 0 0 / 22%);
}
.statistics-intensity-range:focus-visible {
    outline: 2px solid rgb(255 107 0 / 30%);
    outline-offset: 1px;
    border-radius: 999px;
}

@media (max-width: 620px) {
    .statistics-tables-head { margin-top: 0.5rem; }
}

/* ============================================================
   ACCOUNT-01 — Public user auth: header widget, auth modal,
   auth pages and account cabinet.
   Appended component styles; reuses the existing palette
   (--accent, --header-dark, --border, --text, --radius).
   ============================================================ */

.fq-auth {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-shrink: 0;
    min-height: 28px;
}

.fq-auth-btn {
    padding: 0.3rem 0.7rem;
    border: 1px solid transparent;
    border-radius: var(--radius);
    font: inherit;
    font-size: 0.82rem;
    font-weight: 600;
    line-height: 1.2;
    cursor: pointer;
    white-space: nowrap;
    transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}

.fq-auth-btn--primary {
    background: var(--accent);
    color: #ffffff;
}

.fq-auth-btn--primary:hover { background: var(--accent-hover); }

.fq-auth-btn--ghost {
    background: transparent;
    border-color: rgb(255 255 255 / 38%);
    color: var(--header-text);
}

.fq-auth-btn--ghost:hover {
    background: rgb(255 255 255 / 14%);
    border-color: rgb(255 255 255 / 65%);
}

.fq-auth-user {
    position: relative;
}

.fq-auth-trigger {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 0.2rem 0.5rem 0.2rem 0.2rem;
    border: 1px solid transparent;
    border-radius: 999px;
    background: transparent;
    color: var(--header-text);
    font: inherit;
    font-size: 0.85rem;
    cursor: pointer;
    max-width: 230px;
}

.fq-auth-trigger:hover,
.fq-auth-trigger[aria-expanded="true"] {
    background: rgb(255 255 255 / 14%);
    border-color: rgb(255 255 255 / 30%);
}

.fq-auth-avatar {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: var(--accent);
    color: #ffffff;
    font-size: 0.8rem;
    font-weight: 700;
    text-transform: uppercase;
    flex-shrink: 0;
}

.fq-auth-label {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.fq-auth-caret {
    width: 0;
    height: 0;
    border-left: 4px solid transparent;
    border-right: 4px solid transparent;
    border-top: 5px solid currentColor;
    opacity: 0.75;
    flex-shrink: 0;
}

.fq-auth-menu {
    position: absolute;
    right: 0;
    top: calc(100% + 8px);
    min-width: 220px;
    padding: 6px;
    border: 1px solid var(--border);
    border-radius: 8px;
    background: #ffffff;
    box-shadow: 0 12px 32px rgb(0 0 0 / 20%);
    z-index: 220;
}

.fq-auth-menu[hidden] { display: none; }

.fq-auth-menu-head {
    padding: 8px 10px 10px;
    border-bottom: 1px solid var(--border);
    margin-bottom: 6px;
}

.fq-auth-menu-name {
    font-size: 0.86rem;
    font-weight: 600;
    color: var(--text);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.fq-auth-menu-email {
    font-size: 0.76rem;
    color: var(--text-muted);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.fq-auth-menu-item {
    display: block;
    width: 100%;
    padding: 8px 10px;
    border: 0;
    border-radius: var(--radius);
    background: none;
    color: var(--text);
    font: inherit;
    font-size: 0.85rem;
    text-align: left;
    text-decoration: none;
    cursor: pointer;
}

.fq-auth-menu-item:hover { background: var(--surface-2); }

.fq-auth-menu-item--danger { color: var(--red); }

/* ---- auth modal ---- */

.fq-auth-overlay {
    position: fixed;
    inset: 0;
    z-index: 400;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    padding: 64px 16px 32px;
    background: rgb(18 18 18 / 58%);
    overflow-y: auto;
}

.fq-auth-overlay[hidden] { display: none; }

.fq-auth-modal {
    position: relative;
    width: 100%;
    max-width: 392px;
    padding: 20px;
    border-top: 3px solid var(--accent);
    border-radius: 10px;
    background: #ffffff;
    box-shadow: 0 26px 64px rgb(0 0 0 / 30%);
}

.fq-auth-modal h2 {
    margin: 0 0 4px;
    font-size: 1.05rem;
    font-weight: 700;
    color: var(--text);
}

.fq-auth-modal-close {
    position: absolute;
    top: 8px;
    right: 8px;
    width: 28px;
    height: 28px;
    border: 0;
    border-radius: var(--radius);
    background: none;
    color: var(--text-muted);
    font-size: 1.1rem;
    line-height: 1;
    cursor: pointer;
}

.fq-auth-modal-close:hover { background: var(--surface-2); color: var(--text); }

.fq-auth-hint {
    margin: 0 0 14px;
    color: var(--text-muted);
    font-size: 0.83rem;
    line-height: 1.45;
}

.fq-auth-tabs {
    display: flex;
    gap: 4px;
    margin: 0 0 16px;
    padding: 3px;
    border-radius: 8px;
    background: var(--surface-2);
}

.fq-auth-tab {
    flex: 1;
    padding: 7px 10px;
    border: 0;
    border-radius: 6px;
    background: none;
    color: var(--text-muted);
    font: inherit;
    font-size: 0.85rem;
    font-weight: 600;
    cursor: pointer;
}

.fq-auth-tab[aria-selected="true"] {
    background: #ffffff;
    color: var(--text);
    box-shadow: 0 1px 3px rgb(0 0 0 / 12%);
}

/* Author `display` rules (flex/grid/block) would otherwise beat the [hidden] attribute. */
.fq-auth-modal [hidden],
.fq-auth-page [hidden],
.fq-account [hidden] { display: none !important; }

.fq-auth-step[hidden],
.fq-auth-form[hidden] { display: none; }

.fq-auth-inline-link {
    display: block;
    margin: 10px auto 0;
    padding: 2px;
    border: 0;
    background: none;
    color: var(--accent-hover);
    font: inherit;
    font-size: 0.82rem;
    cursor: pointer;
    text-decoration: underline;
}

.fq-auth-inline-link--right { margin-left: auto; margin-right: 0; }

.fq-auth-actions {
    display: flex;
    gap: 8px;
    margin: 14px 0 0;
}

.fq-auth-actions .btn { flex: 1; margin: 0; }

.fq-auth-notice {
    margin: 0 0 14px;
    padding: 10px 12px;
    border: 1px solid #cfe6d4;
    border-radius: 8px;
    background: #f2faf4;
    color: #1f6b33;
    font-size: 0.85rem;
    line-height: 1.45;
}

.fq-auth-notice--error {
    border-color: #f0c9c9;
    background: #fdf3f3;
    color: var(--red);
}

.fq-auth-notice--info {
    border-color: #d9dde3;
    background: var(--surface);
    color: var(--text);
}

.fq-auth-qr {
    display: block;
    width: 196px;
    height: 196px;
    margin: 0 auto 12px;
    border: 1px solid var(--border);
    border-radius: 10px;
    background: #ffffff;
}

.fq-auth-manual {
    margin: 0 0 14px;
    padding: 9px 11px;
    border: 1px dashed #d9dde3;
    border-radius: 8px;
    background: var(--surface);
    font-family: ui-monospace, Consolas, monospace;
    font-size: 0.85rem;
    text-align: center;
    word-break: break-all;
}

.fq-auth-codes {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    margin: 0 0 12px;
    padding: 0;
    list-style: none;
}

.fq-auth-codes li {
    padding: 7px 9px;
    border: 1px solid var(--border);
    border-radius: 6px;
    background: var(--surface);
    font-family: ui-monospace, Consolas, monospace;
    font-size: 0.85rem;
    text-align: center;
    letter-spacing: 0.05em;
}

/* ---- standalone auth pages ---- */

.fq-auth-page {
    padding: 32px 0 56px;
}

.fq-auth-page .admin-card { max-width: 392px; }

.fq-auth-page .fq-auth-tabs { max-width: 392px; }

.fq-auth-page-foot {
    max-width: 392px;
    margin: 14px auto 0;
    color: var(--text-muted);
    font-size: 0.83rem;
    text-align: center;
}

.fq-auth-page-foot a { color: var(--accent-hover); }

/* ---- account cabinet ---- */

.fq-account {
    padding: 24px 0 56px;
}

.fq-account-head {
    display: flex;
    align-items: center;
    gap: 14px;
    margin: 0 0 18px;
    padding: 16px 18px;
    border: 1px solid var(--border);
    border-left: 3px solid var(--accent);
    border-radius: 8px;
    background: var(--surface);
}

.fq-account-avatar {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 46px;
    height: 46px;
    border-radius: 50%;
    background: var(--accent);
    color: #ffffff;
    font-size: 1.15rem;
    font-weight: 700;
    text-transform: uppercase;
    flex-shrink: 0;
}

.fq-account-head h1 {
    margin: 0 0 2px;
    font-size: 1.15rem;
    font-weight: 700;
}

.fq-account-head p {
    margin: 0;
    color: var(--text-muted);
    font-size: 0.85rem;
}

.fq-account-tabs {
    display: flex;
    gap: 4px;
    margin: 0 0 20px;
    padding: 3px;
    border-radius: 8px;
    background: var(--surface-2);
    overflow-x: auto;
}

.fq-account-tab {
    padding: 8px 14px;
    border: 0;
    border-radius: 6px;
    background: none;
    color: var(--text-muted);
    font: inherit;
    font-size: 0.86rem;
    font-weight: 600;
    white-space: nowrap;
    text-decoration: none;
    cursor: pointer;
}

.fq-account-tab[aria-selected="true"] {
    background: #ffffff;
    color: var(--text);
    box-shadow: 0 1px 3px rgb(0 0 0 / 12%);
}

.fq-account-panel[hidden] { display: none; }

.fq-account-card {
    margin: 0 0 18px;
    padding: 18px;
    border: 1px solid var(--border);
    border-radius: 8px;
    background: #ffffff;
}

.fq-account-card h2 {
    margin: 0 0 4px;
    font-size: 0.98rem;
    font-weight: 700;
}

.fq-account-card .fq-auth-hint { margin-bottom: 14px; }

.fq-account-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 12px 18px;
}

.fq-account-field-label {
    display: block;
    margin: 0 0 3px;
    color: var(--text-muted);
    font-size: 0.76rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.fq-account-field-value {
    font-size: 0.9rem;
    color: var(--text);
    word-break: break-word;
}

.fq-account-badge {
    display: inline-block;
    padding: 2px 8px;
    border-radius: 999px;
    background: var(--surface-2);
    color: var(--text-muted);
    font-size: 0.74rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.fq-account-badge--on {
    background: #e7f5ea;
    color: #1f6b33;
}

.fq-account-badge--off {
    background: var(--surface-2);
    color: var(--text-muted);
}

.fq-account-rows {
    margin: 0;
    padding: 0;
    list-style: none;
}

.fq-account-rows li {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 11px 0;
    border-bottom: 1px solid var(--border);
}

.fq-account-rows li:last-child { border-bottom: 0; }

.fq-account-row-main { min-width: 0; }

.fq-account-row-title {
    font-size: 0.88rem;
    color: var(--text);
}

.fq-account-row-sub {
    color: var(--text-muted);
    font-size: 0.79rem;
    word-break: break-word;
}

.fq-account-row-action {
    flex-shrink: 0;
}

.fq-account-row-action .btn {
    padding: 0.28rem 0.65rem;
    font-size: 0.79rem;
}

.fq-account-form-actions {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    margin: 14px 0 0;
}

.fq-account-form-actions .btn { margin: 0; }

.fq-account-empty {
    padding: 10px 0;
    color: var(--text-muted);
    font-size: 0.85rem;
}

.fq-account-plan {
    display: flex;
    align-items: baseline;
    gap: 10px;
    margin: 0 0 6px;
}

.fq-account-plan strong {
    font-size: 1.35rem;
    color: var(--accent);
}

.fq-account-plan span { color: var(--text-muted); font-size: 0.85rem; }

.fq-account-feature-list {
    margin: 12px 0 0;
    padding: 0;
    list-style: none;
}

.fq-account-feature-list li {
    padding: 7px 0 7px 22px;
    position: relative;
    color: var(--text);
    font-size: 0.87rem;
}

.fq-account-feature-list li::before {
    content: "";
    position: absolute;
    left: 4px;
    top: 12px;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--accent);
}

.fq-account-feature-list li.is-muted { color: var(--text-muted); }

.fq-account-feature-list li.is-muted::before { background: var(--surface-3); }

/* ---- ACCOUNT-02: external login providers ------------------------------- */

.fq-auth-providers { margin: 16px 0 0; }

.fq-auth-divider {
    position: relative;
    margin: 0 0 14px;
    text-align: center;
    color: var(--text-muted);
    font-size: 0.78rem;
}

.fq-auth-divider::before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: 50%;
    height: 1px;
    background: var(--border);
}

.fq-auth-divider span {
    position: relative;
    padding: 0 10px;
    /* The auth card is always white (see .fq-auth-modal), so the label masks
       the rule behind it rather than sitting on a transparent background. */
    background: #ffffff;
}

.fq-auth-provider-list {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    justify-content: center;
    align-items: center;
}

/* External sign-in is a row of four round brand icons (Telegram, Google, VK,
   Яндекс). No text labels: the accessible name lives in aria-label/title. */
.fq-auth-provider-round {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 46px;
    height: 46px;
    padding: 0;
    border: 1px solid var(--border);
    border-radius: 50%;
    background: #ffffff;
    color: #4b5563;
    font: inherit;
    text-decoration: none;
    cursor: pointer;
    transition: border-color 0.15s, background 0.15s, transform 0.1s;
}

.fq-auth-provider-round svg {
    width: 22px;
    height: 22px;
    display: block;
}

.fq-auth-provider-round:hover {
    border-color: var(--accent);
    background: var(--surface-2);
    transform: translateY(-1px);
}

.fq-auth-provider-round:focus-visible {
    outline: 2px solid #ff9a4d;
    outline-offset: 2px;
    border-color: var(--accent);
}

.fq-auth-provider-round.is-telegram { color: #229ED9; }
.fq-auth-provider-round.is-google { color: #4285F4; }
.fq-auth-provider-round.is-vk { color: #0077FF; }
.fq-auth-provider-round.is-yandex { color: #FC3F1D; }

/* A provider whose credentials are not configured stays visible but obviously
   inactive: it cannot start any OAuth flow. */
.fq-auth-provider-round.is-unavailable,
.fq-auth-provider-round:disabled {
    color: #b6bcc6;
    background: #f9fafb;
    border-color: #eceef1;
    cursor: not-allowed;
    filter: grayscale(1);
    opacity: .75;
}
.fq-auth-provider-round.is-unavailable:hover,
.fq-auth-provider-round:disabled:hover {
    border-color: #eceef1;
    background: #f9fafb;
    transform: none;
}

.fq-account-provider-mark {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 22px;
    height: 22px;
    border-radius: 5px;
    background: var(--surface-3);
    color: var(--text);
    font-size: 0.74rem;
    font-weight: 700;
    line-height: 1;
}

.fq-account-provider-mark {
    margin-right: 8px;
    vertical-align: -5px;
}

.fq-auth-field-hint {
    margin: 5px 0 0;
    color: var(--text-muted);
    font-size: 0.76rem;
    line-height: 1.4;
}

/* A provider that cannot be used must look inert, not like a live primary
   button — the product must never appear to offer a method it cannot serve. */
.fq-account-row-action .btn:disabled {
    opacity: 0.6;
    cursor: not-allowed;
}

.fq-account-row-action .btn-primary:disabled,
.fq-account-row-action .btn-primary:disabled:hover {
    border-color: var(--border);
    background: var(--surface-2);
    color: var(--text-muted);
}

@media (max-width: 760px) {
    .fq-auth-trigger { max-width: 44px; padding: 0.2rem; border-color: transparent; }
    .fq-auth-label,
    .fq-auth-caret { display: none; }
    .fq-auth-overlay { padding: 24px 12px 32px; }
    .fq-account-head { flex-wrap: wrap; }
}

@media (max-width: 480px) {
    .fq-auth-btn { padding: 0.28rem 0.55rem; font-size: 0.78rem; }
    .fq-auth { gap: 6px; }
    .fq-account-tabs { border-radius: 6px; }
    .fq-account-rows li { flex-wrap: wrap; }
    .fq-account-row-action { width: 100%; }
    .fq-account-row-action .btn { flex: 1; }
}

/* ==========================================================================
   ЭТАП 2 — GRANULAR ACCESS: Admin «Пользователи и доступ» (#section-public)
   Staff-only «Доступ сотрудников» (#section-access) is a different section and
   must never share these styles.
   ========================================================================== */

.fq-pa {
    display: flex; flex-direction: column; gap: 14px;
    font-family: Inter, "Segoe UI", sans-serif; color: #18181b;
}

/* Built-in help panel: a short, plain-language note on what a section is for
   and what can be changed there. Used across the admin tabs. */
.admin-help {
    margin: 12px 0 0;
    padding: 10px 12px;
    border: 1px solid #e5e7eb;
    border-left: 3px solid #ff6b00;
    border-radius: 6px;
    background: #f9fafb;
    color: #4b5563;
    font-size: 12.5px;
    line-height: 1.5;
}
.admin-help b { color: #18181b; }
.admin-help p { margin: 0; }
.admin-help p + p { margin-top: 4px; }

/* Toolbars reuse the .content-toolbar visual language: white 36px controls,
   #e5e7eb hairlines, orange focus ring. No browser-default field is left. */
.fq-pa-toolbar {
    display: flex; flex-flow: row wrap; align-items: flex-end; gap: 8px;
    padding: 12px 0; border-bottom: 1px solid #e5e7eb; width: 100%;
}
.fq-pa-toolbar label {
    display: flex; flex-direction: column; gap: 4px; min-width: 120px;
    color: #4b5563; font-size: 12px; line-height: 16px;
}
.fq-pa-toolbar input[type="search"],
.fq-pa-toolbar select {
    height: 36px; min-width: 200px; padding: 0 10px;
    border: 1px solid #e5e7eb; border-radius: 6px; background: #fff;
    color: #111827; font: 14px/20px Inter, sans-serif;
}
.fq-pa-toolbar .btn { height: 36px; }
.fq-pa-toolbar select {
    /* A clean custom chevron instead of the OS arrow. */
    appearance: none; -webkit-appearance: none; padding-right: 32px;
    background-image:
        linear-gradient(45deg, transparent 50%, #6b7280 50%),
        linear-gradient(135deg, #6b7280 50%, transparent 50%);
    background-position: calc(100% - 16px) 15px, calc(100% - 11px) 15px;
    background-size: 5px 5px, 5px 5px; background-repeat: no-repeat;
}
.fq-pa-toolbar input[type="search"]:focus,
.fq-pa-toolbar select:focus {
    outline: none; border-color: #ff9a4d; box-shadow: 0 0 0 3px #fff1e6;
}
.fq-pa-toolbar .fq-pa-toolbar-actions { display: flex; gap: 8px; margin-left: auto; }

.fq-pa-hint { font-size: 12px; color: #6b7280; margin: 0; }
.fq-pa-note {
    font-size: 12.5px; line-height: 1.45; margin: 0;
    padding: 9px 12px; border-radius: 6px;
    background: #f9fafb; color: #4b5563;
    border-left: 3px solid #e5e7eb;
}
.fq-pa-note.is-warn { background: #fffbeb; border-left-color: #e0a800; color: #92400e; }
.fq-pa-note a { color: #b94800; }

.fq-pa-matrix-wrap { overflow-x: auto; border: 1px solid #e5e7eb; border-radius: 8px; background: #fff; }
.fq-pa-matrix { width: 100%; border-collapse: collapse; font-size: 13px; }
.fq-pa-matrix th, .fq-pa-matrix td { padding: 8px 12px; border-bottom: 1px solid #e5e7eb; text-align: left; }
.fq-pa-matrix thead th {
    position: sticky; top: 0; z-index: 2;
    background: #f9fafb; color: #4b5563; font-weight: 600; white-space: nowrap;
}
.fq-pa-matrix tbody tr:last-child td { border-bottom: 0; }
.fq-pa-matrix td.fq-pa-center, .fq-pa-matrix th.fq-pa-center { text-align: center; }
.fq-pa-matrix tbody tr:hover { background: #f9fafb; }
.fq-pa-matrix tr.is-dirty { background: #fff9e8; }

.fq-pa-group-row td {
    background: #f3f4f6; font-weight: 600;
    padding: 0;
}
.fq-pa-group-head {
    display: flex; align-items: center; gap: 10px;
    padding: 8px 12px; flex-wrap: wrap;
}
.fq-pa-group-title { flex: 1 1 auto; display: flex; align-items: center; gap: 8px; }
.fq-pa-group-desc { font-weight: 400; font-size: 12px; color: #6b7280; }
.fq-pa-group-actions { display: flex; gap: 6px; flex-wrap: wrap; }
.fq-pa-group-actions .btn { font-size: 11.5px; min-height: 28px; padding: 0 8px; }
.fq-pa-caret {
    border: none; background: none; cursor: pointer; padding: 0 2px;
    font-size: 11px; color: #6b7280; line-height: 1;
}
.fq-pa-feature-note { display: block; font-size: 11.5px; color: #9ca3af; }

.fq-pa-toggle {
    display: inline-flex; align-items: center; gap: 7px;
    font-size: 12px; cursor: pointer; user-select: none;
}
.fq-pa-toggle input[type="checkbox"] {
    appearance: none; -webkit-appearance: none; position: relative;
    flex: 0 0 auto; width: 34px; height: 20px; margin: 0;
    border: 1px solid #d1d5db; border-radius: 999px; background: #e5e7eb;
    cursor: pointer; transition: background .15s ease, border-color .15s ease;
}
.fq-pa-toggle input[type="checkbox"]::after {
    content: ""; position: absolute; top: 1px; left: 1px;
    width: 16px; height: 16px; border-radius: 50%; background: #fff;
    box-shadow: 0 1px 2px rgb(0 0 0 / 25%); transition: transform .15s ease;
}
.fq-pa-toggle input[type="checkbox"]:checked {
    background: #15803d; border-color: #15803d;
}
.fq-pa-toggle input[type="checkbox"]:checked::after { transform: translateX(14px); }
.fq-pa-toggle input[type="checkbox"]:focus-visible {
    outline: 2px solid #ff9a4d; outline-offset: 2px;
}
.fq-pa-toggle input[type="checkbox"]:disabled { opacity: .5; cursor: not-allowed; }
.fq-pa-state { font-weight: 700; font-size: 11px; letter-spacing: .03em; }
.fq-pa-state.is-allow { color: #15803d; }
.fq-pa-state.is-deny  { color: #b91c1c; }

select.fq-pa-tri {
    min-width: 118px; height: 30px; padding: 0 26px 0 8px;
    border: 1px solid #e5e7eb; border-radius: 6px; background-color: #fff;
    color: #4b5563; font: 600 12px/16px Inter, sans-serif;
    appearance: none; -webkit-appearance: none;
    background-image:
        linear-gradient(45deg, transparent 50%, #6b7280 50%),
        linear-gradient(135deg, #6b7280 50%, transparent 50%);
    background-position: calc(100% - 14px) 12px, calc(100% - 9px) 12px;
    background-size: 5px 5px, 5px 5px; background-repeat: no-repeat;
    cursor: pointer;
}
select.fq-pa-tri:focus { outline: none; border-color: #ff9a4d; box-shadow: 0 0 0 3px #fff1e6; }
select.fq-pa-tri.is-allow { border-color: #bbf7d0; background-color: #f0fdf4; color: #15803d; }
select.fq-pa-tri.is-deny  { border-color: #fecaca; background-color: #fef2f2; color: #b91c1c; }
select.fq-pa-tri.is-inherit { color: #6b7280; }

.fq-pa-eff { display: block; margin-top: 3px; font-size: 11px; color: #6b7280; }
.fq-pa-eff.is-allow { color: #15803d; }
.fq-pa-eff.is-deny  { color: #b91c1c; }

.fq-pa-chips { display: flex; flex-wrap: wrap; gap: 4px; }
.fq-chip {
    display: inline-block; padding: 2px 8px; border-radius: 999px;
    font-size: 11px; line-height: 1.5; white-space: nowrap;
    border: 1px solid #e5e7eb; background: #f9fafb; color: #6b7280;
}
.fq-chip.is-on  { background: #f0fdf4; border-color: #bbf7d0; color: #15803d; }
.fq-chip.is-off { background: #f9fafb; color: #6b7280; }
.fq-chip.is-warn { background: #fff7ed; border-color: #fed7aa; color: #b94800; }
.fq-chip.is-danger { background: #fef2f2; border-color: #fecaca; color: #b91c1c; }

.fq-pa-actions-cell { display: flex; gap: 4px; flex-wrap: wrap; }
.fq-pa-actions-cell .btn { font-size: 11.5px; min-height: 28px; padding: 0 8px; }

.fq-pa-card {
    border: 1px solid #e5e7eb; border-radius: 8px; padding: 14px;
    display: flex; flex-direction: column; gap: 10px; background: #fff;
}
.fq-pa-card-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 8px 16px; }
.fq-pa-card-grid div { display: flex; flex-direction: column; gap: 1px; }
.fq-pa-card-grid dt { font-size: 11px; color: var(--text-muted); }
.fq-pa-card-grid dd { margin: 0; font-size: 13px; }

.fq-pa-radio-row { display: flex; flex-wrap: wrap; gap: 8px; }
.fq-pa-radio {
    display: flex; align-items: center; gap: 6px;
    border: 1px solid #e5e7eb; border-radius: 8px;
    padding: 8px 12px; cursor: pointer; font-size: 13px;
    background: #fff;
}
.fq-pa-radio:has(input:checked) { border-color: #ff6b00; background: #fff7ed; font-weight: 600; }
.fq-pa-radio input { cursor: pointer; }

.fq-pa-selected {
    display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
    padding: 8px 10px; border-radius: 6px; background: #f9fafb;
    font-size: 13px;
}
.fq-pa-match-list { max-height: 240px; overflow-y: auto; border: 1px solid #e5e7eb; border-radius: 8px; }
.fq-pa-match-list button {
    display: flex; width: 100%; gap: 10px; align-items: center;
    padding: 8px 10px; border: none; border-bottom: 1px solid #e5e7eb;
    background: none; cursor: pointer; text-align: left; font-size: 13px; color: inherit;
}
.fq-pa-match-list button:hover { background: #f9fafb; }
.fq-pa-match-list button.is-active { background: #fff7ed; box-shadow: inset 3px 0 0 #ff6b00; }
.fq-pa-match-list .fq-pa-match-meta { margin-left: auto; font-size: 11.5px; color: #6b7280; white-space: nowrap; }

.fq-pa-empty { padding: 18px; text-align: center; color: #6b7280; font-size: 13px; }

/* Plan / audience badges — Guest, Free, Full are visually distinct. */
.fq-pa-badge {
    display: inline-flex; align-items: center; min-height: 24px; padding: 0 8px;
    border-radius: 5px; font: 600 11.5px/16px Inter, sans-serif;
    letter-spacing: .03em; text-transform: uppercase; white-space: nowrap;
}
.fq-pa-badge.is-guest { background: #f3f4f6; color: #4b5563; }
.fq-pa-badge.is-free  { background: #eef2ff; color: #4338ca; }
.fq-pa-badge.is-full  { background: #fff1e6; color: #b94800; }
.fq-pa-badge.is-off   { background: #f3f4f6; color: #9ca3af; }

/* ---- E. Preview: the owner-facing control must be unmissable ------------ */
.fq-pa-preview {
    display: flex; flex-direction: column; gap: 14px;
    padding: 18px; border: 1px solid #e5e7eb; border-radius: 8px; background: #fff;
}
.fq-pa-preview-head h2 { margin: 0 0 4px; font-size: 16px; line-height: 22px; font-weight: 600; }
.fq-pa-preview-head p { margin: 0; color: #6b7280; font-size: 13px; line-height: 20px; }
.fq-pa-seg { display: flex; flex-wrap: wrap; gap: 8px; }
.fq-pa-seg button {
    flex: 1 1 130px; min-height: 60px; padding: 10px 14px; cursor: pointer;
    display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px;
    border: 1px solid #e5e7eb; border-radius: 8px; background: #fff; color: #4b5563;
    font: 600 14px/20px Inter, sans-serif;
}
.fq-pa-seg button small { font-weight: 400; font-size: 11px; color: #9ca3af; }
.fq-pa-seg button:hover { border-color: #ff9a4d; }
.fq-pa-seg button:focus-visible { outline: 2px solid #ff9a4d; outline-offset: 2px; }
.fq-pa-seg button.is-active { border-color: #ff6b00; background: #fff7ed; color: #b94800; }
.fq-pa-seg button.is-active small { color: #b94800; }
.fq-pa-seg button[disabled] { opacity: .55; cursor: not-allowed; }
.fq-pa-preview-actions { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.fq-pa-preview-actions .btn { min-height: 40px; padding: 0 16px; }
.fq-pa-open { display: inline-flex; align-items: center; gap: 6px; }
.fq-pa-info {
    display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
    gap: 10px 18px; margin: 0; padding: 12px 14px; border-radius: 6px; background: #f9fafb;
}
.fq-pa-info > div { display: flex; flex-direction: column; gap: 2px; }
.fq-pa-info dt { font-size: 11px; color: #6b7280; text-transform: uppercase; letter-spacing: .04em; }
.fq-pa-info dd { margin: 0; font-size: 14px; color: #111827; }

/* ---- Owner quick-preview shortcut in the admin topbar ------------------- */
/* Owner preview shortcut in the topbar. `data-fqpa-quick` uses the SAME
   backend preview state as tab E — there is no second preview system. */
.fq-pa-quick {
    display: inline-flex; align-items: center; gap: 6px;
    padding: 3px 6px; border: 1px solid #e5e7eb; border-radius: 999px; background: #fff;
}
.fq-pa-quick[hidden] { display: none; }
.fq-pa-quick-label {
    display: inline-flex; align-items: center; justify-content: center;
    width: 22px; height: 22px; padding: 0; border: 0; border-radius: 50%;
    background: transparent; font-size: 13px; line-height: 1; color: #6b7280; cursor: pointer;
}
.fq-pa-quick-label:hover { background: #fff1e6; }
.fq-pa-quick-label.is-active { background: #ff6b00; color: #fff; }
.fq-pa-quick-label:focus-visible { outline: 2px solid #ff9a4d; outline-offset: 2px; }
.fq-pa-quick-seg { display: inline-flex; border: 1px solid #e5e7eb; border-radius: 999px; overflow: hidden; }
.fq-pa-quick-seg button {
    height: 24px; padding: 0 8px; border: 0; background: #fff; color: #6b7280;
    font: 600 10.5px/16px Inter, sans-serif; cursor: pointer;
}
.fq-pa-quick-seg button + button { border-left: 1px solid #e5e7eb; }
.fq-pa-quick-seg button:hover { background: #fff7ed; color: #b94800; }
.fq-pa-quick-seg button.is-active { background: #ff6b00; color: #fff; }
.fq-pa-quick-seg button:disabled { opacity: .5; cursor: not-allowed; }
.fq-pa-quick-open {
    display: inline-flex; align-items: center; justify-content: center;
    width: 24px; height: 24px; border-radius: 50%;
    color: #b94800; font: 700 13px/16px Inter, sans-serif; text-decoration: none;
}
.fq-pa-quick-open:hover { background: #fff1e6; }

@media (max-width: 760px) {
    .fq-pa-matrix { font-size: 12px; }
    .fq-pa-matrix th, .fq-pa-matrix td { padding: 5px 7px; }
    .fq-pa-toolbar select, .fq-pa-toolbar input[type="search"] { min-width: 140px; width: 100%; }
    .fq-pa-toolbar label { width: 100%; }
    .fq-pa-group-actions { width: 100%; }
    .fq-pa-seg button { flex: 1 1 calc(50% - 4px); min-height: 52px; }
    .fq-pa-preview { padding: 14px; }
}

/* The full mode switch needs topbar room; below it the eye button remains a
   one-click jump to tab E, so the shortcut never disappears. */
@media (max-width: 1700px) {
    .fq-pa-quick-seg, .fq-pa-quick-open { display: none !important; }
    .fq-pa-quick { padding: 3px; }
}

/* ==========================================================================
   GRANULAR ACCESS (Stage 3) — public lock states + gate card
   A locked control stays visible, marked with a lock badge and aria-disabled,
   and its action is intercepted by js/access.js. Nothing is hidden with CSS.
   ========================================================================== */

.is-locked {
    position: relative;
    cursor: not-allowed;
    opacity: .62;
}

.is-locked.is-active,
.is-locked[aria-pressed="true"] {
    opacity: .78;
}

.fq-lock-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-left: 6px;
    color: #7b5c00;
    vertical-align: middle;
    flex: 0 0 auto;
}

.fq-auth-provider .fq-lock-badge,
.fq-auth-menu-item .fq-lock-badge { margin-left: auto; }

.statistics-choice.is-locked,
.fq-segmented-choice.is-locked {
    box-shadow: inset 0 0 0 1px rgb(0 0 0 / 12%);
}

input[type="range"].is-locked {
    cursor: not-allowed;
    filter: grayscale(.5);
}

.fq-locked-surface {
    position: relative;
}

.fq-surface-lock {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    padding: 26px 18px;
    text-align: center;
    color: var(--text-muted);
    font-size: 13.5px;
    border: 1px dashed var(--border);
    border-radius: 10px;
    background: var(--surface-2, rgb(0 0 0 / 2%));
}

.fq-surface-lock .fq-surface-lock-icon { color: #7b5c00; }
.fq-surface-lock b { color: inherit; }

/* Gate card shown when a locked control is activated. */
.fq-gate {
    position: fixed;
    z-index: 4000;
    max-width: 320px;
    padding: 14px 16px;
    border-radius: 12px;
    background: #fff;
    border: 1px solid var(--border);
    box-shadow: 0 12px 34px rgb(0 0 0 / 18%);
}
.fq-gate[hidden] { display: none; }
.fq-gate-text { margin: 0 0 12px; font-size: 13.5px; line-height: 1.5; color: var(--text); }
.fq-gate-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.fq-gate-actions .btn { flex: 1 1 auto; white-space: nowrap; text-align: center; }
.fq-gate-actions .btn[hidden] { display: none; }

/* Header plan badge + preview marker.
   FREE = solid blue, FULL = solid green; both white text, identical geometry. */
.fq-auth-badge {
    display: inline-flex;
    align-items: center;
    padding: 1px 7px;
    border-radius: 999px;
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: .4px;
    text-transform: uppercase;
    background: #2563eb;
    color: #fff;
    border: 1px solid #1d4ed8;
}
.fq-auth-badge.is-premium { background: #22c55e; color: #fff; border-color: #16a34a; }
.fq-auth-menu-preview {
    font-size: 11.5px;
    color: #9a6200;
    background: #fff7e6;
    border: 1px solid #f2d9a8;
    border-radius: 6px;
    padding: 3px 7px;
    margin-top: 4px;
    display: inline-block;
}

@media (max-width: 560px) {
    .fq-gate { left: 8px !important; right: 8px; max-width: none; width: auto; }
}

/* --------------------------------------------------------------------------
   «Моя подписка» — public cabinet
   -------------------------------------------------------------------------- */
.fq-sub-plan {
    display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap;
    padding: 12px 14px; border-radius: 10px; background: var(--surface-2);
    border: 1px solid var(--border); margin-bottom: 14px;
}
.fq-sub-plan b { font-size: 18px; }
.fq-sub-plan span { color: var(--text-muted); font-size: 13px; }
.fq-sub-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 10px 18px; margin-bottom: 6px; }
.fq-sub-grid > div { display: flex; flex-direction: column; gap: 2px; }
.fq-sub-grid dt { font-size: 11.5px; color: var(--text-muted); text-transform: uppercase; letter-spacing: .3px; }
.fq-sub-grid dd { margin: 0; font-size: 14px; }
.fq-sub-features { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 6px 14px; margin: 12px 0 0; padding: 0; list-style: none; }
.fq-sub-features li { display: flex; align-items: center; gap: 7px; font-size: 13px; }
.fq-sub-features li.is-locked { opacity: .6; }
.fq-sub-group-title { margin: 18px 0 6px; font-size: 13px; text-transform: uppercase; letter-spacing: .4px; color: var(--text-muted); }


/* QUANT-ODDS-PROFILE-01 - Quant tab coefficient profile */
.quant-profile-content { padding: 0.85rem 1rem 1.1rem; }
.quant-module { display: grid; gap: 0.8rem; }
.quant-module-head { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: 0.75rem 1rem; }
.quant-module-title { margin: 0; font-size: 1.05rem; }
.quant-module-subtitle { margin: 0.2rem 0 0; color: var(--text-muted); font-size: 0.72rem; }
.quant-side-switch { display: inline-flex; padding: 2px; border: 1px solid var(--border); border-radius: 6px; background: #fff; }
.quant-side-switch button { min-height: 28px; padding: 0.3rem 0.7rem; border: 0; border-radius: 4px; background: transparent; color: #555; font: inherit; font-size: 0.72rem; cursor: pointer; }
.quant-side-switch button.is-active { color: #fff; background: var(--accent); }
.quant-threshold-row { display: grid; grid-template-columns: auto minmax(160px, 1fr); align-items: center; gap: 0.8rem; padding: 0.6rem 0.8rem; border: 1px solid rgb(0 0 0 / 8%); border-radius: 8px; background: #fafafa; }
.quant-threshold-label { color: var(--text-muted); font-size: 0.72rem; white-space: nowrap; }
.quant-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 0.5rem; }
.quant-card { display: grid; gap: 0.2rem; padding: 0.6rem 0.7rem; border: 1px solid var(--border); border-radius: 8px; background: #fff; text-align: left; font: inherit; cursor: pointer; transition: border-color 0.12s ease, box-shadow 0.12s ease; }
.quant-card:hover { border-color: var(--accent); }
.quant-card.is-selected { border-color: var(--accent); box-shadow: inset 0 0 0 1px var(--accent); }
.quant-card-name { font-weight: 600; font-size: 0.78rem; }
.quant-card-count { color: var(--text-muted); font-size: 0.7rem; }
.quant-card-odds { color: #d95700; font-weight: 700; font-size: 0.72rem; }
.quant-card-odds.is-missing { color: var(--text-light); font-weight: 500; }
.quant-empty { margin: 0; padding: 1rem; border: 1px dashed var(--border); border-radius: 8px; color: var(--text-muted); text-align: center; font-size: 0.75rem; }
.quant-profile { padding: 0.8rem; border: 1px solid var(--border); border-radius: 10px; background: #fff; }
.quant-profile-head { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 0.6rem; }
.quant-profile-head h4 { margin: 0; font-size: 0.95rem; }
.quant-profile-close { width: 28px; height: 28px; border: 1px solid var(--border); border-radius: 6px; background: #fff; color: var(--text-muted); font-size: 1rem; line-height: 1; cursor: pointer; }
.quant-summary { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 0.45rem; margin-bottom: 0.55rem; }
.quant-summary-item { padding: 0.45rem 0.55rem; border: 1px solid rgb(0 0 0 / 7%); border-radius: 6px; background: #fafafa; }
.quant-summary-item span { display: block; color: var(--text-muted); font-size: 0.62rem; }
.quant-summary-item b { display: block; margin-top: 0.15rem; font-size: 0.82rem; }
.quant-summary-item.is-fail b { color: #bd3f3f; }
.quant-coverage { margin: 0 0 0.4rem; color: var(--text-muted); font-size: 0.72rem; }
.quant-provenance-note { margin: 0 0 0.45rem; color: var(--text-light); font-size: 0.68rem; line-height: 1.4; }
.quant-warning { margin: 0 0 0.4rem; padding: 0.5rem 0.6rem; border: 1px solid #f0c36d; border-radius: 6px; background: #fffaf0; color: #8a5a00; font-size: 0.74rem; }
.quant-interpretation { margin: 0 0 0.6rem; padding: 0.5rem 0.6rem; border-left: 3px solid var(--accent); background: #fff7f1; font-size: 0.78rem; }
.quant-table-wrap { overflow-x: auto; }
.quant-table { width: 100%; border-collapse: collapse; font-size: 0.72rem; }
.quant-table th { padding: 0.4rem; background: #f6f6f6; color: var(--text-muted); font-size: 0.63rem; text-align: left; }
.quant-table td { padding: 0.4rem; border-top: 1px solid rgb(0 0 0 / 6%); }
.quant-table tr.is-pass { background: rgb(39 174 96 / 6%); }
.quant-table tr.is-fail { background: rgb(220 53 69 / 5%); }
.quant-score { font-weight: 700; text-align: center; }
.quant-stat-column { white-space: nowrap; }
.quant-stat-cell { font-weight: 700; color: #2f3338; }
.quant-stat-cell small { color: var(--text-light); font-weight: 500; }
.quant-mark { display: inline-flex; min-width: 52px; justify-content: center; padding: 0.1rem 0.35rem; border-radius: 4px; font-size: 0.62rem; font-weight: 700; }
.quant-mark.is-pass { background: #eaf7ee; color: #2f7d43; }
.quant-mark.is-fail { background: #fdeeee; color: #bd3f3f; }
.quant-mark.is-push { background: #eaf2fb; color: #2873b9; }
.quant-odds-cell { white-space: nowrap; }
.quant-odds-cell small { display: block; color: var(--text-light); font-size: 0.55rem; }
.quant-odds { font-weight: 700; color: #2f3338; }
.quant-odds.is-missing { color: var(--text-light); font-weight: 500; }
.quant-help { border: 1px solid var(--border); border-radius: 8px; background: #fff; }
.quant-help summary { padding: 0.55rem 0.7rem; font-size: 0.78rem; font-weight: 600; cursor: pointer; }
.quant-help-body { padding: 0 0.8rem 0.7rem; color: var(--text-muted); font-size: 0.74rem; line-height: 1.5; }
.quant-help-body p { margin: 0 0 0.5rem; }
.quant-help-final { color: var(--text); font-weight: 600; }
@media (max-width: 560px) {
    .quant-threshold-row { grid-template-columns: 1fr; }
    .quant-cards { grid-template-columns: 1fr 1fr; }
}

/* ============================================================
   QUANT CONTROL SHELL V0 — visual prototype only (no calculations).
   Reuses the existing FootballQuant segmented-control + small-slider
   vocabulary; two compact rows, stable geometry, no layout shift.
   ============================================================ */
.quant-shell {
    display: flex;
    flex-direction: column;
    gap: 0.7rem;
    max-width: 100%;
    box-sizing: border-box;
    padding: 0.9rem 1rem;
    border: 1px solid var(--border);
    border-radius: 10px;
    background: #fff;
}
.quant-shell-head { display: flex; flex-direction: column; gap: 0.1rem; }
.quant-shell-title { margin: 0; font-size: 1.05rem; font-weight: 700; color: #0b1735; }
.quant-shell-subtitle { margin: 0; color: var(--text-muted); font-size: 0.72rem; }
.quant-shell-row { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 0.55rem 1.4rem; max-width: 100%; }
.quant-shell-group { display: flex; flex-direction: column; gap: 0.3rem; min-width: 0; max-width: 100%; }
.quant-shell-label {
    color: #8292aa;
    font-size: 0.64rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    white-space: nowrap;
}
.quant-shell-group .fq-segmented-control { flex-wrap: wrap; max-width: 100%; }
/* The preserved legacy module is author-display:grid, which would beat the UA
   [hidden] rule — force it off while the V0 shell is the visible surface. */
.quant-module[hidden] { display: none !important; }
.quant-shell-group--market { flex: 0 1 auto; }
.quant-shell-range-wrap { display: inline-flex; align-items: center; gap: 0.5rem; min-height: 27px; }
.quant-shell-range {
    -webkit-appearance: none;
    appearance: none;
    width: 140px;
    height: 14px;
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
    cursor: pointer;
}
.quant-shell-range::-webkit-slider-runnable-track { height: 3px; border-radius: 999px; background: #dfe3e8; }
.quant-shell-range::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 12px;
    height: 12px;
    margin-top: -4.5px;
    border: 1px solid #fff;
    border-radius: 50%;
    background: var(--accent);
    box-shadow: 0 1px 2px rgb(0 0 0 / 22%);
}
.quant-shell-range::-moz-range-track { height: 3px; border-radius: 999px; background: #dfe3e8; }
.quant-shell-range::-moz-range-thumb {
    width: 12px;
    height: 12px;
    border: 1px solid #fff;
    border-radius: 50%;
    background: var(--accent);
    box-shadow: 0 1px 2px rgb(0 0 0 / 22%);
}
.quant-shell-range:focus-visible { outline: 2px solid rgb(255 107 0 / 30%); outline-offset: 1px; border-radius: 999px; }
.quant-shell-range-value {
    min-width: 2.9em;
    color: var(--accent);
    font-size: 0.72rem;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    text-align: right;
    white-space: nowrap;
}
/* QUANT 1X2 first live slice — results table + coefficient-profile panel. */
.quant-shell-results { margin-top: 0.15rem; }
.quant-shell-placeholder {
    margin: 0;
    padding: 1rem;
    border: 1px dashed #e3e8ef;
    border-radius: 8px;
    background: #fafbfc;
    color: var(--text-muted);
    text-align: center;
    font-size: 0.78rem;
}
.quant-shell-table th, .quant-shell-table td { white-space: nowrap; }
.quant-shell-row-item { cursor: pointer; }
.quant-shell-row-item:hover { background: #fff7f1; }
.quant-shell-row-item:focus-visible { outline: 2px solid rgb(255 102 0 / 35%); outline-offset: -2px; }
.quant-shell-row-item.is-selected { box-shadow: inset 3px 0 0 var(--accent); }
.quant-shell-row-item.is-filtered { opacity: 0.5; }
.quant-shell-row-item.is-filtered .quant-shell-outcome { text-decoration: line-through; }
.quant-shell-outcome { font-weight: 700; }
.quant-shell-na { color: var(--text-light); }
.quant-shell-pass { color: var(--text-muted); font-variant-numeric: tabular-nums; }
.quant-dot { display: inline-block; width: 10px; height: 10px; border-radius: 50%; background: #b9c2cf; }
.quant-dot.is-neutral { background: #b9c2cf; }
.quant-dot.is-green { background: #20ad63; }
.quant-dot.is-yellow { background: #e6a700; }
.quant-dot.is-red { background: #e64141; }
.quant-shell-profile { margin-top: 0.3rem; }

/* QUANT 1X2 PROFILE STRUCTURE V2 — two team sections, season groups, gradient. */
.quant-profile-head { align-items: flex-start; flex-wrap: wrap; }
.quant-profile-gradient { display: inline-flex; align-items: center; gap: 0.45rem; flex-wrap: wrap; }
.quant-profile-gradient .quant-shell-range { width: 120px; max-width: 100%; }
.quant-profile-scope { margin: 0 0 0.5rem; max-width: 100%; }
.quant-profile-total { margin: 0 0 0.5rem; color: var(--text-light); font-size: 0.68rem; }
.quant-profile-teams { display: flex; flex-direction: column; min-width: 0; }
.quant-profile-team { border: 1px solid var(--border); border-radius: 8px; overflow: hidden; background: #fff; min-width: 0; }
.quant-profile-team .quant-table-wrap { max-width: 100%; }
.quant-profile-team-head {
    display: flex; align-items: baseline; gap: 0.5rem; flex-wrap: wrap;
    padding: 0.5rem 0.7rem; background: #fff; border-bottom: 1px solid var(--border);
}
.quant-profile-team-side { color: #8292aa; font-size: 0.62rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; }
.quant-profile-team-name { font-size: 0.86rem; font-weight: 600; color: #0b1735; }
.quant-profile-team-role { color: var(--text-muted); font-size: 0.68rem; font-weight: 600; }
.quant-profile-team-count { margin-left: auto; color: var(--text-muted); font-size: 0.68rem; font-variant-numeric: tabular-nums; }
.quant-profile-team-divider { height: 3px; margin: 0.6rem 0; border-radius: 999px; background: linear-gradient(90deg, var(--accent), #ffb27a); }
.quant-profile-table { width: 100%; }
.quant-profile-table th, .quant-profile-table td { white-space: nowrap; }
.quant-pos-cell { color: var(--text-muted); font-variant-numeric: tabular-nums; }
.quant-pos-zone { font-weight: 700; color: var(--text-muted); }
.quant-profile-season-row td {
    padding: 0.4rem 0.5rem !important; background: #f6f6f6 !important; color: var(--text-muted) !important;
    font-size: 0.62rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em;
}
/* Gradient intensity controls ONLY the PASS/FAIL tint (never the data). */
.quant-shell-profile .quant-profile-table tr.is-pass { background: rgb(39 174 96 / var(--quant-pass-alpha, 0)); }
.quant-shell-profile .quant-profile-table tr.is-fail { background: rgb(220 53 69 / var(--quant-fail-alpha, 0)); }
/* Relegation standings context — a separate pale-blue highlight, independent of
   the PASS/FAIL gradient: visible at gradient 0 and kept identifiable (blue left
   accent) when a PASS/FAIL tint is applied. */
.quant-shell-profile .quant-profile-table tr.is-relegation-context {
    background: #e8f1fb;
    box-shadow: inset 3px 0 0 #6f9fce;
}
.quant-shell-profile .quant-profile-table tr.is-relegation-context.is-pass {
    background: linear-gradient(rgb(39 174 96 / var(--quant-pass-alpha, 0)), rgb(39 174 96 / var(--quant-pass-alpha, 0))), #e8f1fb;
}
.quant-shell-profile .quant-profile-table tr.is-relegation-context.is-fail {
    background: linear-gradient(rgb(220 53 69 / var(--quant-fail-alpha, 0)), rgb(220 53 69 / var(--quant-fail-alpha, 0))), #e8f1fb;
}
@media (max-width: 620px) {
    .quant-shell { padding: 0.75rem; }
    .quant-shell-row { gap: 0.5rem 1rem; }
    .quant-shell-range { width: 100%; max-width: 200px; }
}

/* --- Admin: HTTPS / SSL (Система → HTTPS / SSL) ------------------------- */
.system-view[hidden] { display: none; }

/* Home card: compact, multi-line, status-coloured */
.admin-dashboard-card.is-ssl { height: auto; min-height: 96px; }
.admin-dashboard-card.is-ssl .admin-dashboard-card-summary { align-items: flex-start; }
.admin-dashboard-card.is-ssl .admin-dashboard-card-metric {
    font-size: 15px;
    line-height: 20px;
    white-space: normal;
}
.admin-dashboard-card.is-ssl .admin-dashboard-card-meta {
    white-space: normal;
    overflow: visible;
    text-overflow: clip;
    line-height: 15px;
}
.admin-dashboard-card.is-ssl.is-ssl-not_configured .admin-dashboard-card-metric { color: #b45309; }
.admin-dashboard-card.is-ssl.is-ssl-healthy .admin-dashboard-card-metric { color: #16794a; }
.admin-dashboard-card.is-ssl.is-ssl-warning .admin-dashboard-card-metric { color: #b45309; }
.admin-dashboard-card.is-ssl.is-ssl-critical .admin-dashboard-card-metric { color: #b42318; }
.admin-dashboard-card.is-ssl.is-ssl-expired .admin-dashboard-card-metric { color: #b42318; }
.admin-dashboard-card.is-ssl.is-ssl-error .admin-dashboard-card-metric { color: #b42318; }
.admin-dashboard-card.is-ssl.is-ssl-unavailable .admin-dashboard-card-metric { color: #667085; font-size: 13px; }

/* Status pill */
.ssl-status-pill {
    display: inline-block;
    padding: 2px 8px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 600;
    line-height: 18px;
}
.ssl-status-pill.is-not_configured { background: #fef3c7; color: #92400e; }
.ssl-status-pill.is-healthy { background: #dcfce7; color: #166534; }
.ssl-status-pill.is-warning { background: #fef3c7; color: #92400e; }
.ssl-status-pill.is-critical { background: #fee2e2; color: #991b1b; }
.ssl-status-pill.is-expired { background: #fecaca; color: #7f1d1d; }
.ssl-status-pill.is-error { background: #fee2e2; color: #991b1b; }
.ssl-status-pill.is-unknown { background: #e5e7eb; color: #374151; }

/* Light, readable field table — overrides the dark .admin-table header style
   for row labels (th[scope="row"]) so nothing is a black block. */
.ssl-table { background: #fff; }
.ssl-table th,
.ssl-table td {
    white-space: normal;
    color: #111827;
    border-bottom: 1px solid #e5e7eb;
}
.ssl-table th[scope="row"] {
    width: 240px;
    background: transparent;
    color: #111827;
    font-weight: 600;
    font-size: 0.85rem;
    vertical-align: top;
}
.ssl-table td { color: #1f2937; }
.ssl-table tbody tr:last-child th,
.ssl-table tbody tr:last-child td { border-bottom: none; }

/* --- STABLE-MATCH-SHELL-01: reserved geometry + tab transitions ---------- */
/* Keep the tab bar height stable so switching tabs never moves the nav. */
.match-tabs { min-height: 44px; }

/* Panels fade/translate in WITHOUT animating height/width/top/left, so the
   page geometry never moves when a tab is shown. */
.match-tab-content > [data-match-tab-content]:not([hidden]) {
    animation: fq-tab-in 180ms ease-out both;
}
@keyframes fq-tab-in {
    from { opacity: 0; transform: translateY(6px); }
    to   { opacity: 1; transform: translateY(0); }
}
@media (prefers-reduced-motion: reduce) {
    .match-tab-content > [data-match-tab-content]:not([hidden]) { animation: none; }
}

/* Below-the-fold panels of the default tab reserve a small, honest shell so a
   late or gated render cannot collapse them to zero; real content grows inside. */
#matchTabContent { min-height: 520px; }
#statisticsWorkspace { min-height: 220px; }
#standingsPreview { min-height: 280px; }
.statistics-lower-panel { min-height: 150px; }

/* Stable sizing for the header team-name controls. The width is measured for
   THIS match from the real text (js/match.js) and frozen here, so hover /
   active / loading / tab or scope switches never move neighbours. Capped to the
   container so a pathologically long name can never break the viewport. */
.team-name-lg { min-width: min(var(--fq-team-name-width, 0px), 100%); }

/* ---------- Cabinet: subscription (SUPPORT-01 / PAYMENTS-01) ---------- */
/* Hero card: paid subscription — content + decorative FULL art (CSS only). */
.fq-sub-card-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; }
.fq-sub-hero { display: grid; grid-template-columns: minmax(0, 1fr) 300px; border: 1px solid var(--line, #e5e7eb); border-radius: 16px; overflow: hidden; background: var(--surface, #fff); }
.fq-sub-hero-main { padding: 22px 24px; }
.fq-sub-hero-top { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; margin-bottom: 14px; }
.fq-sub-hero-title { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.fq-sub-hero-title h2 { margin: 0; font-size: 24px; }
.fq-sub-plan-title { color: var(--text-2, #6b7280); font-size: 13px; text-align: right; }
.fq-sub-status { display: inline-block; padding: 3px 12px; border-radius: 999px; font-size: 12px; font-weight: 700; }
.fq-sub-status.is-active { background: #dcfce7; color: #166534; }
.fq-sub-status.is-free { background: #f1f5f9; color: #475569; }
.fq-sub-status.is-expired, .fq-sub-status.is-none { background: #e5e7eb; color: #374151; }
.fq-sub-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 12px 18px; margin: 0 0 14px; }
.fq-sub-grid dt { font-size: 12px; color: var(--text-2, #6b7280); margin-bottom: 2px; }
.fq-sub-grid dd { margin: 0; font-size: 15px; font-weight: 600; }
.fq-sub-billing-note { margin: 0; font-size: 12px; color: var(--text-2, #6b7280); }
.fq-sub-hero-art { position: relative; padding: 22px 22px 18px; color: #fff; background: linear-gradient(140deg, #1d4ed8 0%, #7c3aed 55%, #db2777 100%); display: flex; flex-direction: column; gap: 14px; }
.fq-sub-hero-art::after { content: ""; position: absolute; inset: 0; background: radial-gradient(circle at 82% 12%, rgba(255,255,255,0.35), transparent 42%); pointer-events: none; }
.fq-sub-full-badge { align-self: flex-start; position: relative; z-index: 1; padding: 4px 14px; border: 1px solid rgba(255,255,255,0.7); border-radius: 999px; font-weight: 800; letter-spacing: 0.12em; font-size: 13px; }
.fq-sub-value { position: relative; z-index: 1; margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 9px; font-size: 14px; }
.fq-sub-value li { position: relative; padding-left: 22px; }
.fq-sub-value li::before { content: "✓"; position: absolute; left: 0; font-weight: 800; }
.fq-sub-note { border-radius: 10px; padding: 10px 14px; font-size: 13px; }
.fq-sub-note--preview { background: #f8fafc; border: 1px solid #e2e8f0; color: #475569; }
.fq-sub-periods { display: flex; flex-wrap: wrap; gap: 10px; margin: 12px 0; }
.fq-sub-period { display: flex; flex-direction: column; align-items: center; gap: 2px; min-width: 104px; padding: 12px 14px; border: 1px solid var(--line, #e5e7eb); border-radius: 12px; background: var(--surface, #fff); cursor: pointer; transition: border-color .15s ease, background .15s ease, box-shadow .15s ease; }
.fq-sub-period:hover { border-color: #fdba74; background: rgba(255, 102, 0, 0.04); }
.fq-sub-period.is-active { border-color: var(--accent, #ff6600); box-shadow: 0 0 0 1px var(--accent, #ff6600) inset; background: rgba(255, 102, 0, 0.08); }
.fq-sub-period:focus-visible { outline: 2px solid var(--accent, #ff6600); outline-offset: 2px; }
.fq-sub-period-label { font-weight: 700; font-size: 14px; }
.fq-sub-period-discount { font-size: 12px; font-weight: 700; color: #166534; background: #dcfce7; border-radius: 999px; padding: 0 8px; }
.fq-sub-promo { display: flex; align-items: center; gap: 8px; width: 100%; margin-top: 12px; padding: 5px 5px 5px 12px; border: 1px solid var(--border, #e5e7eb); border-radius: 12px; background: #fff; transition: border-color .15s ease, box-shadow .15s ease; }
.fq-sub-promo:focus-within { border-color: var(--accent, #ff6600); box-shadow: 0 0 0 3px rgba(255, 102, 0, 0.15); }
.fq-sub-promo-icon { display: inline-flex; flex: 0 0 auto; color: #9ca3af; transition: color .15s ease; }
.fq-sub-promo:focus-within .fq-sub-promo-icon { color: var(--accent, #ff6600); }
.fq-sub-promo-icon svg { width: 18px; height: 18px; display: block; }
.fq-sub-promo-input { flex: 1 1 auto; min-width: 0; height: 42px; border: 0; background: transparent; padding: 0 4px; font-size: 15px; color: inherit; outline: none; }
.fq-sub-promo-input::placeholder { color: #9ca3af; }
.fq-sub-promo-btn { flex: 0 0 auto; width: auto; height: 42px; padding: 0 20px; border: 0; border-radius: 9px; background: var(--accent, #ff6600); color: #fff; font-weight: 700; font-size: 14px; white-space: nowrap; cursor: pointer; transition: background .15s ease, transform .05s ease; }
.fq-sub-promo-btn:hover { background: var(--accent-hover, #e55b00); }
.fq-sub-promo-btn:active { transform: translateY(1px); }
.fq-sub-promo-btn:focus-visible { outline: 2px solid var(--accent, #ff6600); outline-offset: 2px; }
.fq-sub-promo-hint { margin: 8px 0 0; font-size: 12px; color: var(--text-2, #6b7280); }
.fq-sub-promo + .fq-auth-notice { margin-top: 8px; }
.fq-sub-empty { display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 26px 16px; text-align: center; border: 1px dashed var(--line, #d1d5db); border-radius: 12px; color: var(--text-2, #6b7280); }
.fq-sub-empty b { color: var(--text-1, #111827); }
.fq-sub-empty-icon { display: inline-flex; align-items: center; justify-content: center; width: 42px; height: 42px; border-radius: 50%; background: var(--surface-2, #f3f4f6); font-size: 20px; font-weight: 700; }
.fq-sub-payments { overflow-x: auto; }
.fq-sub-payments-table { width: 100%; border-collapse: collapse; font-size: 14px; }
.fq-sub-payments-table th, .fq-sub-payments-table td { text-align: left; padding: 8px 10px; border-bottom: 1px solid var(--line, #e5e7eb); }
.fq-sub-payments-table th { color: var(--text-2, #6b7280); font-weight: 600; font-size: 12px; text-transform: uppercase; letter-spacing: 0.03em; }
@media (max-width: 720px) { .fq-sub-hero { grid-template-columns: 1fr; } }

/* ---------- Cabinet: support (SUPPORT-01) ---------- */
.fq-account-rows li.is-unread { background: rgba(37, 99, 235, 0.06); }
.fq-support-unread-dot { display: inline-block; width: 8px; height: 8px; margin-right: 8px; border-radius: 50%; background: #2563eb; vertical-align: middle; }
.fq-account-tab-badge { display: inline-block; min-width: 18px; height: 18px; margin-left: 6px; padding: 0 5px; border-radius: 9px; background: #2563eb; color: #fff; font-size: 11px; line-height: 18px; text-align: center; vertical-align: middle; }
.fq-support-messages { display: flex; flex-direction: column; gap: 10px; margin: 14px 0; padding: 0; list-style: none; }
.fq-support-message { max-width: 80%; padding: 10px 12px; border-radius: 12px; background: var(--surface-2, #f3f4f6); }
.fq-support-message.is-staff { align-self: flex-start; background: #eef2ff; }
.fq-support-message.is-user { align-self: flex-end; background: #ecfdf5; }
.fq-support-message.is-internal { background: #fef9c3; border: 1px dashed #eab308; }
.fq-support-message-head { font-size: 12px; color: var(--text-2, #6b7280); margin-bottom: 4px; }
.fq-support-message-body { white-space: pre-wrap; word-break: break-word; }
.fq-support-attachment { display: inline-block; margin-top: 8px; font-size: 13px; }

/* ---------- Admin: support (SUPPORT-01) ---------- */
.admin-nav-badge { min-width: 18px; height: 18px; margin-left: 8px; padding: 0 5px; border-radius: 9px; background: #ef4444; color: #fff; font-size: 11px; line-height: 18px; text-align: center; }
.support-admin-layout { display: grid; grid-template-columns: minmax(280px, 360px) 1fr; gap: 18px; align-items: start; }
.support-admin-list { display: flex; flex-direction: column; gap: 6px; max-height: 70vh; overflow-y: auto; }
.support-list-item { display: flex; flex-direction: column; gap: 3px; text-align: left; padding: 10px 12px; border: 1px solid var(--line, #e5e7eb); border-radius: 8px; background: var(--surface, #fff); cursor: pointer; }
.support-list-item:hover { border-color: #93c5fd; }
.support-list-item.is-active { border-color: #2563eb; background: rgba(37, 99, 235, 0.06); }
.support-list-item.is-unread { font-weight: 600; }
.support-list-subject { font-size: 14px; }
.support-list-meta { font-size: 12px; color: var(--text-2, #6b7280); }
.support-cat { display: inline-block; padding: 1px 8px; border-radius: 999px; font-size: 11px; font-weight: 600; vertical-align: middle; }
.support-cat.is-payment { background: #fef3c7; color: #92400e; }
.support-cat.is-general { background: #f1f5f9; color: #475569; }
.support-list-item.is-payment { border-left: 3px solid #f59e0b; }
.support-dot { display: inline-block; width: 8px; height: 8px; margin-right: 6px; border-radius: 50%; background: #2563eb; }
.support-status { display: inline-block; align-self: flex-start; margin-top: 4px; padding: 2px 10px; border-radius: 999px; font-size: 11px; font-weight: 600; }
.support-status.is-needs-reply { background: #dcfce7; color: #166534; }   /* требует ответа — зелёный */
.support-status.is-answered { background: #dbeafe; color: #1e40af; }      /* ответ дан / ждём пользователя — синий */
.support-status.is-closed { background: #e5e7eb; color: #374151; }        /* закрыто — серый */
.support-admin-detail { border: 1px solid var(--line, #e5e7eb); border-radius: 8px; padding: 16px; }
.support-detail-head h2 { margin: 0 0 4px; }
.support-detail-meta { display: flex; align-items: center; gap: 10px; color: var(--text-2, #6b7280); font-size: 13px; }
.support-detail-actions { display: flex; align-items: center; gap: 10px; margin: 12px 0; flex-wrap: wrap; }
.support-detail-actions-label { font-size: 12px; color: var(--text-2, #6b7280); }
.support-status-pills { display: inline-flex; gap: 6px; flex-wrap: wrap; }
.support-pill { border: 1px solid var(--line, #e5e7eb); background: var(--surface, #fff); color: var(--text-2, #6b7280); border-radius: 999px; padding: 4px 12px; font-size: 12px; cursor: pointer; }
.support-pill.is-needs-reply.is-active { background: #16a34a; border-color: #16a34a; color: #fff; }
.support-pill.is-answered.is-active { background: #2563eb; border-color: #2563eb; color: #fff; }
.support-pill.is-closed.is-active { background: #6b7280; border-color: #6b7280; color: #fff; }
.support-templates { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 8px; }
.support-template { border: 1px dashed var(--line, #d1d5db); background: transparent; color: #2563eb; border-radius: 999px; padding: 3px 10px; font-size: 12px; cursor: pointer; }
.support-template:hover { background: rgba(37, 99, 235, 0.08); }
.support-file { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.support-file-name { font-size: 12px; color: var(--text-2, #6b7280); }
.support-file-btn { white-space: nowrap; }
.support-thread { display: flex; flex-direction: column; gap: 10px; margin: 14px 0; padding: 0; list-style: none; }
.support-msg { max-width: 82%; padding: 10px 12px; border-radius: 12px; background: var(--surface-2, #f3f4f6); }
.support-msg.is-user { align-self: flex-start; background: #ecfdf5; }
.support-msg.is-staff { align-self: flex-end; background: #eef2ff; }
.support-msg.is-internal { background: #fef9c3; border: 1px dashed #eab308; }
.support-msg-head { font-size: 12px; color: var(--text-2, #6b7280); margin-bottom: 4px; }
.support-msg-body { white-space: pre-wrap; word-break: break-word; }
.support-attachment { display: inline-block; margin-top: 6px; font-size: 13px; }
.support-reply { margin-top: 16px; }

/* ---------- Cabinet: support thread head / compact back (SUPPORT-01 polish) ---------- */
.fq-support-thread-head { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.support-back { align-self: flex-start; padding: 4px 12px; font-size: 13px; }
.fq-support-hint { margin-top: 6px; }
.fq-support-priority { display: block; margin-top: 6px; padding-left: 8px; border-left: 2px solid #f59e0b; color: #92400e; font-weight: 600; }

/* SEO stage 2: SSR match H1 + crawlable home discovery list */
.match-ssr-heading{font-size:1.25rem;line-height:1.3;font-weight:700;color:var(--fq-text,#111827);text-align:center;margin:0.5rem auto 0;max-width:46rem;overflow-wrap:anywhere}
.ssr-match-list{display:flex;flex-direction:column;gap:0.35rem;margin:0.75rem 0}
.ssr-match-link{display:flex;align-items:baseline;gap:0.6rem;padding:0.45rem 0.6rem;border-radius:8px;background:#fff;border:1px solid var(--fq-border,#e5e7eb);color:#111827;text-decoration:none}
.ssr-match-link:hover{background:#f3f4f6}
.ssr-match-league{font-size:0.78rem;color:#6b7280;min-width:9rem}
.ssr-match-teams{font-weight:600;flex:1}
.ssr-match-score{font-weight:700;color:#111827}
.ssr-match-date{font-size:0.8rem;color:#6b7280}

/* SEO stage 6: entity hub pages (league/team) */
.entity-page{max-width:1100px;margin:0 auto;padding:1.25rem 1rem 3rem}
.entity-breadcrumb{font-size:0.85rem;color:#6b7280;margin-bottom:0.5rem}
.entity-breadcrumb a{color:#b94800;text-decoration:none}
.entity-intro{color:#374151;max-width:60rem}
.entity-block{margin:1.5rem 0}
.entity-block h2{font-size:1.15rem;border-bottom:1px solid #e5e7eb;padding-bottom:0.4rem}
.entity-standings{width:100%;border-collapse:collapse;font-size:0.9rem}
.entity-standings th,.entity-standings td{padding:0.4rem 0.6rem;border-bottom:1px solid #eef0f3;text-align:left}
.entity-standings th{color:#6b7280;font-weight:600}
.entity-standings td:first-child{color:#6b7280}
.entity-standings a{color:#111827;text-decoration:none}
.entity-standings a:hover{text-decoration:underline}
.entity-teams{display:flex;flex-wrap:wrap;gap:0.5rem}
.entity-team-link{display:inline-block;padding:0.35rem 0.7rem;background:#f3f4f6;border:1px solid #e5e7eb;border-radius:999px;color:#111827;text-decoration:none;font-size:0.9rem}
.entity-team-link:hover{background:#fff1e6;border-color:#ff6b00;color:#b94800}
.entity-matches{display:flex;flex-direction:column;gap:0.4rem}
.entity-match{display:flex;flex-wrap:wrap;align-items:baseline;gap:0.5rem;padding:0.5rem 0.6rem;border:1px solid #e5e7eb;border-radius:8px;background:#fff}
.entity-match-title{font-weight:600;color:#111827;text-decoration:none}
.entity-match-title:hover{color:#b94800}
.entity-match-meta{font-size:0.8rem;color:#6b7280}
.entity-match-teams{font-size:0.8rem;color:#6b7280}
.entity-match-teams a{color:#b94800;text-decoration:none}
.entity-form{color:#374151}

/* SEO stage 6: home discovery card entity links */
.ssr-match-main{font-weight:600;color:#111827;text-decoration:none;flex:1}
.ssr-match-main:hover{color:#b94800}
.ssr-match-league{font-size:0.78rem;color:#6b7280;min-width:9rem;text-decoration:none}
.ssr-match-league:hover{color:#b94800;text-decoration:underline}
