:root {
    --navy: #1f3a73;
    --navy-soft: #2f5db2;
    --royal: #2d6cdf;
    --orange: #ff8f3d;
    --green: #2fbf71;
    --red: #ef5d5d;
    --teal: #20a7b6;
    --bg: #f5f9ff;
    --card: #ffffff;
    --text: #1f2b3d;
    --muted: #5f6d85;
    --border: #dae4fa;
    --shadow: 0 16px 34px rgba(58, 87, 150, 0.10);
}

body {
    font-family: 'Inter', sans-serif;
    background: linear-gradient(180deg, #f8fbff 0%, #eeeeff 100%);
    color: var(--text);
}

.public-body {
    background: linear-gradient(180deg, #f8fbff 0%, #edf3ff 100%);
    min-height: 100vh;
    display: flex;
    flex-direction: column;
}

.public-body .public-shell {
    flex: 1 0 auto;
}

.login-page {
    min-height: 100vh;
    padding: 1rem;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, #0d1b3d, #213b7d);
}

.login-card {
    width: min(100%, 440px);
    background: rgba(255, 255, 255, 0.96);
    border-radius: 22px;
    padding: 2rem;
    box-shadow: var(--shadow);
}

.login-topbar {
    text-align: center;
    margin-bottom: 2rem;
}

.brand-badge {
    width: 72px;
    height: 72px;
    border-radius: 20px;
    margin: 0 auto 1rem;
    display: grid;
    place-items: center;
    background: linear-gradient(135deg, var(--orange), var(--royal));
    color: white;
    font-size: 2rem;
}

.login-topbar h2 {
    margin: 0;
    font-weight: 800;
    color: var(--navy);
}

.login-topbar p {
    color: var(--muted);
    margin-top: 0.35rem;
}

.app-shell {
    display: flex;
    min-height: 100vh;
    background: var(--bg);
}

.sidebar {
    width: 260px;
    flex: 0 0 260px;
    background: linear-gradient(180deg, var(--navy) 0%, var(--navy-soft) 100%);
    color: white;
    padding: 1.25rem 1rem;
    position: sticky;
    top: 0;
    height: 100vh;
    height: 100dvh;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior-y: contain;
    scrollbar-width: thin;
    scrollbar-color: rgba(255, 255, 255, 0.35) transparent;
}

.sidebar::-webkit-scrollbar {
    width: 6px;
}

.sidebar::-webkit-scrollbar-thumb {
    background: rgba(255, 255, 255, 0.35);
    border-radius: 6px;
}

.brand-box {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    padding: 0.75rem 0.5rem 1.5rem;
    border-bottom: 1px solid rgba(255,255,255,0.08);
}

.brand-mark {
    width: 42px;
    height: 42px;
    border-radius: 12px;
    display: grid;
    place-items: center;
    background: linear-gradient(135deg, var(--orange), var(--royal));
    font-size: 1.2rem;
}

.brand-box h5 {
    margin: 0;
    font-size: 1rem;
}

.brand-box small {
    color: rgba(255,255,255,0.7);
}

.sidebar-nav {
    margin-top: 1.25rem;
    display: grid;
    gap: 0.5rem;
}

.nav-item {
    color: rgba(255,255,255,0.85);
    text-decoration: none;
    padding: 0.9rem 1rem;
    border-radius: 12px;
    display: flex;
    align-items: center;
    gap: 0.75rem;
    transition: .2s ease;
}

.nav-item:hover,
.nav-item.active {
    background: rgba(255,255,255,0.1);
    color: white;
}

.nav-item.logout {
    margin-top: 1rem;
    background: rgba(234, 67, 53, 0.12);
}

.main-panel {
    flex: 1;
    min-width: 0;
    padding: 1.5rem;
}

.topbar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    background: var(--card);
    border-radius: 18px;
    padding: 1rem 1.25rem;
    box-shadow: var(--shadow);
    margin-bottom: 1.5rem;
}

.topbar h2 {
    margin: 0;
    font-weight: 800;
    color: var(--navy);
}

.topbar-user {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.welcome-text {
    color: var(--muted);
    font-weight: 600;
}

.pill {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    background: rgba(43, 182, 115, 0.1);
    color: var(--green);
    border-radius: 999px;
    padding: 0.45rem 0.8rem;
    font-size: 0.82rem;
    font-weight: 700;
}

.container-fluid {
    max-width: 1400px;
}

.panel-card {
    background: var(--card);
    border: 1px solid var(--border);
    border-radius: 18px;
    box-shadow: var(--shadow);
    padding: 1.25rem;
}

.panel-header {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-bottom: 1rem;
}

.panel-header h4 {
    margin: 0;
    color: var(--navy);
    font-weight: 800;
}

.table-title-group {
    display: inline-flex;
    align-items: center;
    gap: 0.7rem;
}

.table-type-icon {
    width: 46px;
    height: 46px;
    object-fit: contain;
    border-radius: 0;
    box-shadow: none;
    background: transparent;
    padding: 0;
    filter: drop-shadow(0 3px 8px rgba(31, 58, 115, 0.12));
}

.stat-card {
    display: flex;
    align-items: center;
    gap: 1rem;
    background: var(--card);
    border-radius: 18px;
    padding: 1.2rem 1.1rem;
    box-shadow: var(--shadow);
    border: 1px solid var(--border);
}

.stat-card.navy { border-left: 6px solid var(--navy); }
.stat-card.blue { border-left: 6px solid var(--royal); }
.stat-card.orange { border-left: 6px solid var(--orange); }
.stat-card.green { border-left: 6px solid var(--green); }
.stat-card.red { border-left: 6px solid var(--red); }
.stat-card.teal { border-left: 6px solid var(--teal); }

.stat-icon {
    width: 52px;
    height: 52px;
    border-radius: 16px;
    display: grid;
    place-items: center;
    font-size: 1.4rem;
    color: white;
    background: linear-gradient(135deg, var(--royal), var(--navy));
}

.navy .stat-icon { background: linear-gradient(135deg, var(--navy), #3250a5); }
.blue .stat-icon { background: linear-gradient(135deg, var(--royal), #4ea5ff); }
.orange .stat-icon { background: linear-gradient(135deg, var(--orange), #ffba52); }
.green .stat-icon { background: linear-gradient(135deg, var(--green), #5ad79d); }
.red .stat-icon { background: linear-gradient(135deg, var(--red), #ff7d6d); }
.teal .stat-icon { background: linear-gradient(135deg, var(--teal), #67d5d0); }

.stat-label {
    color: var(--muted);
    font-size: 0.85rem;
    margin-bottom: 0.15rem;
}

.stat-value {
    font-weight: 800;
    font-size: 1.9rem;
    color: var(--navy);
}

.status-badge,
.event-badge {
    display: inline-flex;
    align-items: center;
    padding: 0.45rem 0.75rem;
    border-radius: 999px;
    font-size: 0.8rem;
    font-weight: 700;
}

.status-badge.active {
    background: rgba(43, 182, 115, 0.12);
    color: var(--green);
}

.status-badge.inactive {
    background: rgba(234, 67, 53, 0.12);
    color: var(--red);
}

.event-badge.pistol {
    background: rgba(255, 159, 28, 0.12);
    color: #b86d00;
}

.event-badge.rifle {
    background: rgba(45, 108, 223, 0.12);
    color: var(--royal);
}

.action-group {
    display: flex;
    gap: 0.5rem;
    align-items: center;
}

.score-entry-card {
    background: linear-gradient(180deg, #ffffff 0%, #f5f8ff 100%);
}

.series-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
}

.series-box {
    background: white;
    border: 1px solid var(--border);
    border-radius: 14px;
    padding: 1rem;
}

.series-box label {
    display: block;
    font-weight: 700;
    margin-bottom: 0.5rem;
    color: var(--navy);
}

.series-input,
.form-control,
.form-select {
    border-radius: 12px;
    border: 1px solid #d7dfea;
    padding: 0.75rem 0.9rem;
}

.total-row {
    background: rgba(13, 27, 61, 0.04);
    border-radius: 16px;
    padding: 1rem;
}

.total-label {
    letter-spacing: 0.1rem;
    margin: 0;
    font-weight: 800;
    color: var(--navy);
}

.total-display {
    background: linear-gradient(135deg, var(--navy), var(--royal));
    color: white;
    border-radius: 14px;
    font-size: 2rem;
    font-weight: 800;
    padding: 0.8rem 1.2rem;
    text-align: center;
    min-height: 72px;
    display: grid;
    place-items: center;
}

.tenx-wrap {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    background: white;
    border: 1px solid var(--border);
    border-radius: 12px;
    padding: 0.5rem 0.8rem;
}

.tenx-wrap label {
    font-weight: 700;
    margin: 0;
}

.event-type-box {
    min-height: 52px;
    border-radius: 12px;
    background: rgba(45, 108, 223, 0.08);
    border: 1px solid rgba(45, 108, 223, 0.15);
    display: flex;
    align-items: center;
    padding: 0.75rem 1rem;
    color: var(--navy);
    font-weight: 700;
}

.event-type-box.accent {
    background: rgba(255, 159, 28, 0.08);
    border-color: rgba(255, 159, 28, 0.18);
    color: #9a5b00;
}

.scoreboard-hero {
    background: linear-gradient(135deg, #f2f7ff 0%, #edf4ff 28%, #eef8ff 100%);
    color: var(--navy);
    padding: 1.2rem 0 1rem;
    border-bottom: 1px solid rgba(78, 102, 156, 0.12);
}

.scoreboard-header-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
}

.brand-side {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 78px;
    flex: 0 0 auto;
}

.hero-logo {
    display: block;
    object-fit: contain;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    filter: drop-shadow(0 6px 12px rgba(31, 58, 115, 0.08));
}

.champ-logo {
    width: 68px;
    height: 68px;
    padding: 0;
}

.cbse-logo {
    width: 74px;
    height: 74px;
    padding: 0;
}

.header-copy {
    text-align: center;
    flex: 1 1 260px;
}

.eyebrow {
    text-transform: uppercase;
    letter-spacing: 0.12rem;
    font-size: 0.64rem;
    opacity: 0.8;
    margin: 0;
    color: var(--royal);
    font-weight: 800;
}

.scoreboard-hero h1 {
    margin: 0.15rem 0 0;
    font-size: clamp(1.5rem, 2.4vw, 2.3rem);
    line-height: 1.15;
    font-weight: 800;
    letter-spacing: -0.03em;
    color: var(--navy);
}

.championship-info {
    display: flex;
    flex-direction: column;
    /* gap: 0.12rem;
    margin-top: 0.5rem;
    font-size: 0.78rem;
    opacity: 0.94;
    line-height: 1.4; */
}

.championship-info strong {
    font-size: 1.0rem;
}

.championship-info h3 {
    margin: 3px 0 0;
    color: var(--muted);
    font-size: 0.78rem;
    font-weight: 600;
    line-height: 1.4;
}

.championship-info .championship-event-dates {
    margin: 2px 0 0;
    color: var(--navy-soft);
    font-size: 0.76rem;
    font-weight: 700;
}

.live-pill {
    display: inline-flex;
    align-items: center;
    justify-content: flex-start;
    gap: 0.55rem;
    min-height: 44px;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--navy);
    font-size: 0.92rem;
    font-weight: 800;
    letter-spacing: 0.12rem;
    text-transform: uppercase;
    box-shadow: none;
    animation: none;
}

.summary-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
}

.scoreboard-view-switcher {
    display: inline-flex;
    align-items: center;
    gap: 0.6rem;
    flex-wrap: wrap;
}

.scoreboard-view-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    padding: 0.72rem 1.15rem;
    border-radius: 12px;
    border: 1px solid rgba(31, 58, 115, 0.16);
    background: rgba(255, 255, 255, 0.7);
    color: var(--navy);
    font-weight: 700;
    text-decoration: none;
    transition: all 0.2s ease;
}

.scoreboard-view-btn:hover,
.scoreboard-view-btn:focus-visible {
    text-decoration: none;
    color: var(--navy);
    border-color: rgba(31, 58, 115, 0.24);
    transform: translateY(-1px);
    box-shadow: 0 10px 24px rgba(31, 58, 115, 0.08);
}

.scoreboard-view-btn.active {
    background: linear-gradient(135deg, var(--royal), #2d6cdf);
    border-color: var(--royal);
    color: white;
}

.category-type-panel {
    padding: 1.25rem;
}

.category-type-panel .panel-header {
    margin-bottom: 1rem;
}

.event-ranking-card {
    background: linear-gradient(180deg, #f9fbff 0%, #f4f8ff 100%);
    border: 1px solid rgba(31, 58, 115, 0.12);
    border-radius: 16px;
    padding: 1rem;
    margin-bottom: 1rem;
}

.event-ranking-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 0.75rem;
    flex-wrap: wrap;
}

.event-ranking-header small {
    color: #536179;
    font-weight: 600;
}

.category-table {
    width: 100%;
    min-width: 760px;
    margin: 0;
    table-layout: fixed;
    border-collapse: separate;
    border-spacing: 0;
    font-size: 0.92rem;
}

.category-table thead th {
    background: #eef4ff;
    color: var(--navy);
    white-space: nowrap;
    font-size: 0.75rem;
    letter-spacing: 0.06rem;
    text-transform: uppercase;
    text-align: center;
    vertical-align: middle;
    border-bottom: 1px solid rgba(31, 58, 115, 0.18);
}

.category-table tbody td {
    vertical-align: middle;
    white-space: normal;
    overflow-wrap: anywhere;
    word-break: break-word;
    border-top: 1px solid rgba(31, 58, 115, 0.10);
    border-bottom: 1px solid rgba(31, 58, 115, 0.10);
}

.category-table th:nth-child(1),
.category-table td:nth-child(1) {
    width: 70px;
    white-space: nowrap;
    text-align: center;
}

.category-table th:nth-child(2),
.category-table td:nth-child(2),
.category-table th:nth-child(4),
.category-table td:nth-child(4) {
    width: 18%;
    white-space: normal;
    overflow-wrap: anywhere;
    word-break: break-word;
}

.category-table th:nth-child(3),
.category-table td:nth-child(3) {
    width: 20%;
    white-space: normal;
    overflow-wrap: anywhere;
    word-break: break-word;
}

.category-table th:nth-child(5),
.category-table td:nth-child(5),
.category-table th:nth-child(6),
.category-table td:nth-child(6),
.category-table th:nth-child(7),
.category-table td:nth-child(7),
.category-table th:nth-child(8),
.category-table td:nth-child(8) {
    width: 58px;
    min-width: 58px;
    text-align: center;
    white-space: nowrap;
    padding-left: 0.35rem;
    padding-right: 0.35rem;
}

.category-table th:nth-child(9),
.category-table td:nth-child(9) {
    width: 78px;
    min-width: 78px;
    text-align: center;
    white-space: nowrap;
}

.category-table th:nth-child(10),
.category-table td:nth-child(10) {
    width: 58px;
    min-width: 58px;
    text-align: center;
    white-space: nowrap;
}

.category-table tbody td:nth-child(5),
.category-table tbody td:nth-child(6),
.category-table tbody td:nth-child(7),
.category-table tbody td:nth-child(8) {
    font-weight: 700;
    font-size: 0.9rem;
    color: #1a2d59;
    background: transparent !important;
    border-top: 1px solid rgba(31, 58, 115, 0.10) !important;
    border-bottom: 1px solid rgba(31, 58, 115, 0.10) !important;
    border-radius: 0;
    box-shadow: none !important;
    font-variant-numeric: tabular-nums;
    letter-spacing: 0.01em;
    padding-top: 0.7rem;
    padding-bottom: 0.7rem;
}

.category-table .event-badge {
    display: inline-flex;
    align-items: center;
    min-height: 30px;
    padding: 0.3rem 0.7rem;
    border-radius: 999px;
    font-weight: 700;
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 0.06rem;
}

.category-table .event-badge.rifle {
    background: rgba(45, 108, 223, 0.12);
    color: #1147ad;
}

.category-table .event-badge.pistol {
    background: rgba(255, 159, 28, 0.12);
    color: #9a5b00;
}

.live-dot {
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: #ef3d4d;
    box-shadow: 0 0 10px rgba(239, 61, 77, 0.55);
    animation: liveDotBlink 0.75s steps(2, start) infinite;
    flex-shrink: 0;
}

@keyframes liveBadgeGlow {
    0%, 100% {
        box-shadow: 0 0 0 0 rgba(217, 4, 22, 0.58), 0 0 24px rgba(217, 4, 22, 0.55);
        filter: brightness(1);
    }
    50% {
        box-shadow: 0 0 0 8px rgba(217, 4, 22, 0), 0 0 34px rgba(255, 39, 51, 0.9);
        filter: brightness(1.16);
    }
}

@keyframes liveDotBlink {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.25; }
}

.scoreboard-summary {
    display: flex;
    justify-content: center;
    align-items: center;
    font-weight: 600;
    color: var(--navy);
}

.summary-group {
    width: 100%;
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 0.75rem;
}

.filter-toggle {
    display: none;
}

.table-toolbar {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex-wrap: wrap;
}

.table-panel {
    overflow: hidden;
    max-width: 100%;
}

.scoreboard-table-shell {
    display: block;
    width: 100%;
    max-width: 100%;
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    border-radius: 12px;
    box-sizing: border-box;
}

.scoreboard-table,
.scoreboard-table > thead,
.scoreboard-table > tbody,
.scoreboard-table > tfoot,
.scoreboard-table > tr,
.scoreboard-table > * {
    box-sizing: border-box;
}

.scoreboard-table {
    width: 100%;
    min-width: 760px;
    max-width: none;
    margin: 0;
    table-layout: fixed;
    border-collapse: separate;
    border-spacing: 0;
}

.scoreboard-table th,
.scoreboard-table td {
    min-width: 0;
    vertical-align: middle;
    border-bottom: 1px solid rgba(31, 58, 115, 0.12);
}

.scoreboard-table thead th {
    white-space: nowrap;
    text-align: center;
    border-bottom: 1px solid rgba(31, 58, 115, 0.18);
}

.scoreboard-table tbody td {
    white-space: normal;
    overflow-wrap: anywhere;
    word-break: break-word;
    border-bottom: 1px solid rgba(31, 58, 115, 0.10);
}

.scoreboard-table th:nth-child(6),
.scoreboard-table td:nth-child(6),
.scoreboard-table th:nth-child(7),
.scoreboard-table td:nth-child(7),
.scoreboard-table th:nth-child(8),
.scoreboard-table td:nth-child(8),
.scoreboard-table th:nth-child(9),
.scoreboard-table td:nth-child(9) {
    width: 58px;
    min-width: 58px;
    text-align: center;
    padding-left: 0.35rem;
    padding-right: 0.35rem;
}

.scoreboard-table tbody td:nth-child(6),
.scoreboard-table tbody td:nth-child(7),
.scoreboard-table tbody td:nth-child(8),
.scoreboard-table tbody td:nth-child(9) {
    font-weight: 700;
    font-size: 0.9rem;
    color: #1a2d59;
    background: transparent !important;
    border-bottom: 1px solid rgba(31, 58, 115, 0.10) !important;
    border-radius: 0;
    box-shadow: none !important;
    font-variant-numeric: tabular-nums;
    letter-spacing: 0.01em;
    padding-top: 0.7rem;
    padding-bottom: 0.7rem;
}

.scoreboard-table th:nth-child(1),
.scoreboard-table td:nth-child(1) {
    width: 70px;
    white-space: nowrap;
    text-align: center;
}

.scoreboard-table th:nth-child(2),
.scoreboard-table td:nth-child(2),
.scoreboard-table th:nth-child(4),
.scoreboard-table td:nth-child(4) {
    width: 18%;
    white-space: normal;
    overflow-wrap: anywhere;
    word-break: break-word;
}

.scoreboard-table th:nth-child(3),
.scoreboard-table td:nth-child(3) {
    width: 20%;
    white-space: normal;
    overflow-wrap: anywhere;
    word-break: break-word;
}

.data-table-search {
    max-width: 220px;
    min-width: 160px;
}

.table-pagination {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
    margin-top: 1rem;
    position: relative;
    z-index: 1;
}

.site-footer {
    background: linear-gradient(180deg, #0f1f3d 0%, #162d58 100%);
    color: rgba(255, 255, 255, 0.9);
    border-top: 1px solid rgba(255, 255, 255, 0.08);
    margin-top: 2rem;
}

.site-footer-inner {
    display: grid;
    grid-template-columns: 1.5fr 1fr 1fr;
    gap: 1.5rem;
    align-items: center;
    padding: 1.4rem 0;
}

.footer-brand,
.footer-address,
.footer-copyright {
    display: flex;
    align-items: center;
    gap: 0.9rem;
}

.footer-brand {
    align-items: center;
}

.footer-brand > div {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
}

.footer-brand strong,
.footer-brand span,
.footer-address p,
.footer-copyright p {
    margin: 0;
    color: rgba(255, 255, 255, 0.9);
}

.footer-brand strong {
    font-size: 0.96rem;
}

.footer-brand span,
.footer-address p,
.footer-copyright p {
    font-size: 0.82rem;
    opacity: 0.9;
}

.footer-logo {
    width: 58px;
    height: 58px;
    object-fit: contain;
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.08);
    padding: 0.45rem;
    box-shadow: 0 8px 18px rgba(0, 0, 0, 0.15);
}

.footer-label {
    display: block;
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 0.12rem;
    color: rgba(255, 255, 255, 0.7);
    margin-bottom: 0.25rem;
}

.footer-address,
.footer-copyright {
    display: block;
}

.page-btn {
    border: 1px solid #d7dfea;
    background: white;
    color: var(--navy);
    min-width: 40px;
    height: 36px;
    padding: 0 0.8rem;
    border-radius: 10px;
    font-weight: 700;
}

.page-btn.active {
    background: var(--royal);
    color: white;
    border-color: var(--royal);
}

.page-btn:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

.scoreboard-table thead th {
    background: #eef4ff;
    color: var(--navy);
    font-size: 0.78rem;
    letter-spacing: 0.06rem;
    text-transform: uppercase;
    cursor: pointer;
    user-select: none;
    white-space: nowrap;
}

.scoreboard-table thead th:hover {
    background: #e4edff;
}

.scoreboard-table tbody tr.hidden-row {
    display: none;
}

.rank-cell {
    font-weight: 800;
    color: var(--orange);
}

.championship-home {
    --home-ink: #112b49;
    --home-blue: #175e9b;
    --home-cyan: #5bc6d8;
    --home-orange: #ed8a46;
    --home-muted: #647487;
    color: var(--home-ink);
    background: #fbfcfa;
    font-family: 'Inter', sans-serif;
}

.home-nav-wrap {
    border-bottom: 1px solid #e6ecec;
    background: rgba(251, 252, 250, 0.96);
}

.home-nav {
    width: min(1180px, calc(100% - 48px));
    min-height: 82px;
    margin: 0 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.5rem;
}

.home-brand {
    display: inline-flex;
    align-items: center;
    gap: 0.7rem;
    color: var(--home-ink);
    text-decoration: none;
}

.home-brand img {
    width: 49px;
    height: 49px;
    object-fit: contain;
}

.home-brand span,
.home-brand strong,
.home-brand small {
    display: block;
}

.home-brand strong {
    font-size: 0.87rem;
    font-weight: 800;
}

.home-brand small {
    margin-top: 0.18rem;
    color: var(--home-muted);
    font-size: 0.62rem;
    font-weight: 700;
}

.home-nav-links {
    display: flex;
    align-items: center;
    gap: 2rem;
}

.home-nav-links a {
    color: #44566b;
    font-size: 0.85rem;
    font-weight: 650;
    text-decoration: none;
}

.home-nav-links a:hover {
    color: var(--home-blue);
}

.home-nav-links .home-nav-cta {
    display: inline-flex;
    align-items: center;
    gap: 0.65rem;
    padding: 0.75rem 1rem;
    border: 1px solid #cfdddf;
    color: var(--home-ink);
}

.home-nav-toggle {
    display: none;
    width: 42px;
    height: 42px;
    border: 1px solid #d5e0e2;
    background: transparent;
    color: var(--home-ink);
}

.home-hero {
    position: relative;
    isolation: isolate;
    display: grid;
    grid-template-columns: 1.12fr 0.88fr;
    align-items: center;
    width: min(1180px, calc(100% - 48px));
    min-height: 550px;
    margin: 0 auto;
    padding: 4.5rem 0 4rem;
}

.home-hero-copy {
    position: relative;
    z-index: 1;
    max-width: 650px;
    padding: 0 0 1.2rem;
}

.home-kicker {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    margin: 0 0 1.2rem;
    color: #567082;
    font-size: 0.69rem;
    font-weight: 800;
}

.home-kicker > span,
.home-live-label > span {
    width: 22px;
    height: 2px;
    background: var(--home-orange);
}

.home-hero h1 {
    max-width: 670px;
    margin: 0;
    color: var(--home-ink);
    font-family: Georgia, 'Times New Roman', serif;
    font-size: 4.1rem;
    font-weight: 500;
    line-height: 1.06;
}

.home-hero h1 em {
    color: var(--home-blue);
    font-weight: 500;
}

.home-hero-lede {
    max-width: 545px;
    margin: 1.45rem 0 1.7rem;
    color: var(--home-muted);
    font-size: 1rem;
    line-height: 1.75;
}

.home-hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
}

.home-button {
    display: inline-flex;
    min-height: 48px;
    align-items: center;
    justify-content: center;
    gap: 0.7rem;
    padding: 0.8rem 1.05rem;
    border: 1px solid transparent;
    font-size: 0.84rem;
    font-weight: 750;
    text-decoration: none;
    transition: transform 160ms ease, background-color 160ms ease;
}

.home-button:hover {
    transform: translateY(-2px);
}

.home-button-primary {
    background: var(--home-blue);
    color: #fff;
}

.home-button-primary:hover {
    background: #104c80;
    color: #fff;
}

.home-button-secondary {
    border-color: #d6e0e1;
    color: var(--home-ink);
}

.home-button-secondary:hover {
    background: #f0f6f4;
    color: var(--home-ink);
}

.home-hero-note {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    margin-top: 1.65rem;
    color: #73808d;
    font-size: 0.76rem;
}

.home-hero-note i {
    color: #298b72;
}

.home-hero-art {
    position: relative;
    display: grid;
    min-height: 420px;
    place-items: center;
    overflow: hidden;
    background: #eaf2ed;
}

.home-hero-art::before {
    position: absolute;
    inset: 0;
    background: linear-gradient(140deg, rgba(13, 54, 88, 0.05), rgba(48, 140, 149, 0.14));
    content: '';
}

.home-hero-art img {
    position: relative;
    z-index: 1;
    width: min(64%, 300px);
    aspect-ratio: 1;
    object-fit: contain;
    filter: drop-shadow(0 20px 20px rgba(17, 43, 73, 0.15));
}

.home-art-orbit {
    position: absolute;
    z-index: 0;
    width: 350px;
    aspect-ratio: 1;
    border: 1px solid rgba(23, 94, 155, 0.2);
    border-radius: 50%;
}

.home-art-orbit-one { width: 350px; }
.home-art-orbit-two { width: 450px; border-color: rgba(23, 94, 155, 0.12); }

.home-art-caption,
.home-art-index {
    position: absolute;
    z-index: 2;
    display: flex;
    color: var(--home-ink);
    font-weight: 800;
}

.home-art-caption {
    top: 1.5rem;
    left: 1.5rem;
    align-items: center;
    gap: 0.65rem;
    font-size: 0.66rem;
}

.home-art-caption span:first-child {
    color: var(--home-blue);
    font-family: Georgia, 'Times New Roman', serif;
    font-size: 1.8rem;
    font-weight: 500;
}

.home-art-index {
    right: 1.5rem;
    bottom: 1.35rem;
    gap: 0.4rem;
    color: #567082;
    font-size: 0.65rem;
}

.home-art-index span { color: var(--home-orange); }

.home-service-strip {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    width: min(1180px, calc(100% - 48px));
    margin: 0 auto;
    border-top: 1px solid #dfe7e5;
    border-bottom: 1px solid #dfe7e5;
}

.home-service-strip > a {
    display: flex;
    min-width: 0;
    align-items: center;
    gap: 0.9rem;
    padding: 1.3rem 1rem;
    color: var(--home-ink);
    text-decoration: none;
}

.home-service-strip > a + a { border-left: 1px solid #dfe7e5; }

.home-service-icon,
.home-step-icon,
.home-live-mark,
.home-login-icon {
    display: grid;
    flex: 0 0 auto;
    place-items: center;
}

.home-service-icon {
    width: 42px;
    height: 42px;
    background: #eaf2f5;
    color: var(--home-blue);
}

.home-live-icon { background: #e8f3ed; color: #298b72; }

.home-service-strip strong,
.home-service-strip small { display: block; }

.home-service-strip strong { font-size: 0.85rem; }

.home-service-strip small {
    margin-top: 0.25rem;
    color: var(--home-muted);
    font-size: 0.72rem;
}

.home-service-arrow {
    margin-left: auto;
    color: #80919b;
    font-size: 0.75rem;
}

.home-how {
    width: min(1180px, calc(100% - 48px));
    margin: 0 auto;
    padding: 5.7rem 0 5.3rem;
}

.home-section-heading { max-width: 550px; margin-bottom: 2.3rem; }

.home-section-heading h2,
.home-access-copy h2 {
    margin: 0;
    color: var(--home-ink);
    font-family: Georgia, 'Times New Roman', serif;
    font-size: 2.5rem;
    font-weight: 500;
}

.home-section-heading > p:last-child,
.home-access-copy > p:not(.home-kicker) {
    margin: 0.75rem 0 0;
    color: var(--home-muted);
    font-size: 0.9rem;
    line-height: 1.7;
}

.home-steps {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    border-top: 1px solid #dfe7e5;
}

.home-step {
    position: relative;
    min-height: 225px;
    padding: 1.65rem 1.5rem 0 0;
}

.home-step + .home-step {
    padding-left: 1.5rem;
    border-left: 1px solid #dfe7e5;
}

.home-step-number {
    position: absolute;
    top: 1.5rem;
    right: 1.2rem;
    color: #9aa7ad;
    font-size: 0.68rem;
    font-weight: 800;
}

.home-step-icon {
    width: 44px;
    height: 44px;
    margin-bottom: 1.2rem;
    background: #edf3ef;
    color: #2c7e78;
    font-size: 1rem;
}

.home-step h3 {
    margin: 0 0 0.55rem;
    color: var(--home-ink);
    font-size: 1rem;
    font-weight: 750;
}

.home-step p {
    max-width: 290px;
    margin: 0;
    color: var(--home-muted);
    font-size: 0.83rem;
    line-height: 1.7;
}

.home-live-banner {
    display: flex;
    width: min(1180px, calc(100% - 48px));
    align-items: center;
    gap: 1.5rem;
    margin: 0 auto;
    padding: 2rem 2.25rem;
    background: #112f4d;
    color: #fff;
}

.home-live-mark {
    width: 58px;
    height: 58px;
    border: 1px solid rgba(255, 255, 255, 0.25);
    color: #77d4d1;
    font-size: 1.25rem;
}

.home-live-banner > div:nth-child(2) { flex: 1; }

.home-live-label {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    margin: 0 0 0.55rem;
    color: #a9c1d0;
    font-size: 0.63rem;
    font-weight: 800;
}

.home-live-label > span { background: #5fd2c0; }

.home-live-banner h2 {
    margin: 0;
    font-family: Georgia, 'Times New Roman', serif;
    font-size: 1.75rem;
    font-weight: 500;
}

.home-live-banner > div:nth-child(2) > p:last-child {
    margin: 0.4rem 0 0;
    color: #c1d0d7;
    font-size: 0.8rem;
}

.home-button-light { background: #fff; color: var(--home-ink); }
.home-button-light:hover { background: #eaf4f1; color: var(--home-ink); }

.home-access {
    display: grid;
    grid-template-columns: 1fr 0.82fr;
    align-items: center;
    gap: 3rem;
    width: min(1000px, calc(100% - 48px));
    margin: 0 auto;
    padding: 6rem 0;
}

.home-access-copy { max-width: 440px; }

.home-access-copy > p:not(.home-kicker) { max-width: 410px; }

.home-access-points {
    display: grid;
    gap: 0.65rem;
    margin-top: 1.35rem;
    color: #53697b;
    font-size: 0.78rem;
    font-weight: 650;
}

.home-access-points i { width: 20px; color: #318c7d; }

.home-login-panel {
    padding: 1.6rem;
    border: 1px solid #dce5e4;
    background: #fff;
    box-shadow: 0 18px 42px rgba(17, 43, 73, 0.07);
}

.home-login-heading {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    margin-bottom: 1.25rem;
}

.home-login-icon {
    width: 42px;
    height: 42px;
    background: #eaf2f5;
    color: var(--home-blue);
}

.home-login-heading h3 {
    margin: 0;
    color: var(--home-ink);
    font-size: 1rem;
    font-weight: 800;
}

.home-login-heading p {
    margin: 0.18rem 0 0;
    color: var(--home-muted);
    font-size: 0.74rem;
}

.home-form-field { margin-bottom: 0.95rem; }

.home-form-field label {
    display: block;
    margin-bottom: 0.4rem;
    color: #42556a;
    font-size: 0.75rem;
    font-weight: 750;
}

.home-form-field input {
    width: 100%;
    min-height: 44px;
    padding: 0.65rem 0.75rem;
    border: 1px solid #d3dfe0;
    border-radius: 0;
    background: #fff;
    color: var(--home-ink);
}

.home-form-field input:focus {
    border-color: var(--home-blue);
    outline: 3px solid rgba(23, 94, 155, 0.12);
}

.home-login-submit { width: 100%; margin-top: 0.2rem; }

.home-login-panel .alert { margin-bottom: 1rem; font-size: 0.82rem; }

.footer-address a {
    color: #fff;
    font-weight: 700;
    text-decoration: none;
}

.footer-address a:hover { text-decoration: underline; }

@media (min-width: 768px) {
    .home-nav-toggle { display: none; }

    .home-nav-links.collapse:not(.show) {
        display: flex;
    }
}

@media (max-width: 767px) {
    .home-nav {
        position: relative;
        min-height: 72px;
        width: min(100% - 32px, 560px);
    }

    .home-nav-toggle { display: grid; place-items: center; }

    .home-nav-links {
        position: absolute;
        z-index: 5;
        top: calc(100% - 1px);
        right: 0;
        left: 0;
        padding: 0.5rem 1rem 1rem;
        border: 1px solid #e1e9e8;
        border-top: 0;
        background: #fbfcfa;
    }

    .home-nav-links.collapse:not(.show) { display: none; }

    .home-nav-links.show { display: grid; gap: 0; }

    .home-nav-links > a { padding: 0.85rem 0; }

    .home-nav-links .home-nav-cta {
        justify-content: space-between;
        margin-top: 0.35rem;
        padding: 0.75rem;
    }

    .home-hero {
        grid-template-columns: 1fr;
        width: min(100% - 32px, 560px);
        min-height: auto;
        padding: 2.5rem 0 2rem;
    }

    .home-hero h1 { font-size: 2.35rem; }
    .home-hero-lede { margin: 1rem 0 1.25rem; font-size: 0.94rem; }
    .home-hero-note { margin-top: 1rem; font-size: 0.72rem; }
    .home-hero-actions { gap: 0.6rem; }

    .home-hero-art {
        min-height: 290px;
        margin-top: 1.75rem;
    }

    .home-hero-art img { width: min(58%, 235px); }
    .home-art-orbit-one { width: 275px; }
    .home-art-orbit-two { width: 350px; }

    .home-service-strip {
        grid-template-columns: 1fr;
        width: min(100% - 32px, 560px);
    }

    .home-service-strip > a { padding: 1rem 0.25rem; }

    .home-service-strip > a + a {
        border-top: 1px solid #dfe7e5;
        border-left: 0;
    }

    .home-how {
        width: min(100% - 32px, 560px);
        padding: 4.3rem 0;
    }

    .home-section-heading h2,
    .home-access-copy h2 { font-size: 2.15rem; }

    .home-steps { grid-template-columns: 1fr; }

    .home-step,
    .home-step + .home-step {
        min-height: 0;
        padding: 1.3rem 2rem 1.3rem 0;
        border-bottom: 1px solid #dfe7e5;
        border-left: 0;
    }

    .home-step-icon { margin-bottom: 0.9rem; }

    .home-live-banner {
        width: min(100% - 32px, 560px);
        flex-wrap: wrap;
        gap: 1rem;
        padding: 1.5rem;
    }

    .home-live-mark { width: 48px; height: 48px; }
    .home-live-banner h2 { font-size: 1.5rem; }
    .home-live-banner > div:nth-child(2) { flex-basis: calc(100% - 68px); }
    .home-button-light { width: 100%; }

    .home-access {
        grid-template-columns: 1fr;
        gap: 2rem;
        width: min(100% - 32px, 560px);
        padding: 4.3rem 0;
    }

    .home-login-panel { padding: 1.25rem; }
}

@media (max-width: 991px) {
    .app-shell {
        display: block;
    }

    .sidebar {
        width: 100%;
        height: auto;
        position: static;
        overflow: visible;
        overscroll-behavior-y: auto;
    }

    .sidebar-nav {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .site-footer-inner {
        grid-template-columns: 1fr;
        text-align: center;
    }

    .footer-brand,
    .footer-address,
    .footer-copyright {
        justify-content: center;
        text-align: center;
    }
}

@media (max-width: 767px) {
    .booking-modal-dialog {
        width: auto;
        max-width: none;
        min-height: calc(100% - 1rem);
        margin: 0.5rem;
    }

    .booking-modal-dialog .modal-content {
        min-height: calc(100vh - 1rem);
    }

    .booking-modal-dialog .modal-header,
    .booking-modal-dialog .modal-footer {
        padding: 0.8rem 0.9rem;
    }

    .booking-modal-dialog .modal-title {
        font-size: 1.1rem;
    }

    .booking-modal-dialog .modal-body {
        padding: 0.9rem;
    }

    .booking-modal-dialog .row {
        --bs-gutter-x: 0.75rem;
        --bs-gutter-y: 0.65rem;
    }

    .booking-modal-dialog .booking-fields-row {
        display: grid;
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    }

    .booking-modal-dialog .booking-fields-row > div:nth-child(1),
    .booking-modal-dialog .booking-fields-row > div:nth-child(2),
    .booking-modal-dialog .booking-fields-row > div:nth-child(9) {
        grid-column: 1 / -1;
    }

    .booking-modal-dialog .booking-fields-row > div:nth-child(3),
    .booking-modal-dialog .booking-fields-row > div:nth-child(4),
    .booking-modal-dialog .booking-fields-row > div:nth-child(5),
    .booking-modal-dialog .booking-fields-row > div:nth-child(6),
    .booking-modal-dialog .booking-fields-row > div:nth-child(7),
    .booking-modal-dialog .booking-fields-row > div:nth-child(8) {
        grid-column: span 1;
    }

    .booking-modal-dialog .booking-fields-row > div {
        width: auto;
    }

    .booking-modal-dialog .form-label {
        margin-bottom: 0.25rem;
        font-size: 0.9rem;
    }

    .booking-modal-dialog .form-control,
    .booking-modal-dialog .form-select {
        min-height: 2.35rem;
        padding: 0.4rem 0.55rem;
        font-size: 0.95rem;
    }

    .booking-modal-dialog .form-check {
        min-height: 2.35rem;
        display: flex;
        align-items: center;
        padding-left: 1.7rem;
    }

    .booking-modal-dialog .btn {
        min-height: 2.35rem;
        font-size: 0.95rem;
    }

    .booking-modal-dialog hr {
        margin: 0.9rem 0;
    }

    .booking-modal-dialog h6 {
        font-size: 1rem;
    }

    .booking-cart-table-wrap,
    .booking-review-table {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }

    .booking-cart-table,
    .booking-review-table {
        width: max-content;
        min-width: 760px;
        margin-bottom: 0;
        font-size: 0.85rem;
    }

    .booking-cart-table th,
    .booking-cart-table td,
    .booking-review-table th,
    .booking-review-table td {
        padding: 0.35rem 0.3rem;
        white-space: nowrap;
        overflow-wrap: normal;
        word-break: normal;
        vertical-align: middle;
    }

    .booking-cart-table th,
    .booking-review-table th,
    .booked-slots-table th {
        white-space: nowrap;
    }

    .booking-modal-dialog .modal-footer {
        display: grid;
        grid-template-columns: 1fr;
        gap: 0.5rem;
    }

    .booking-modal-dialog .modal-footer .btn {
        width: 100%;
        margin: 0;
    }

    .booked-slots-table {
        width: max-content;
        min-width: 900px;
        table-layout: auto;
        font-size: 0.85rem;
    }

    .booked-slots-table th,
    .booked-slots-table td {
        padding: 0.35rem 0.2rem;
        line-height: 1.2;
        white-space: nowrap;
        overflow-wrap: normal;
        word-break: normal;
        vertical-align: middle;
    }

    .booked-slots-table th {
        font-size: 0.72rem;
    }

    .booked-slots-table th:nth-child(1),
    .booked-slots-table td:nth-child(1) { width: 14%; }

    .booked-slots-table th:nth-child(2),
    .booked-slots-table td:nth-child(2) { width: 17%; }

    .booked-slots-table th:nth-child(3),
    .booked-slots-table td:nth-child(3) { width: 14%; }

    .booked-slots-table th:nth-child(4),
    .booked-slots-table td:nth-child(4) { width: 11%; }

    .booked-slots-table th:nth-child(5),
    .booked-slots-table td:nth-child(5) { width: 8%; }

    .booked-slots-table th:nth-child(6),
    .booked-slots-table td:nth-child(6) { width: 16%; }

    .booked-slots-table th:nth-child(7),
    .booked-slots-table td:nth-child(7),
    .booked-slots-table th:nth-child(8),
    .booked-slots-table td:nth-child(8) { width: 10%; text-align: center; }

    .booked-slots-table .booking-reference-column { display: none; }

    .scoreboard-summary {
        display: flex;
        justify-content: flex-start;
    }

    .summary-group {
        width: 100%;
        justify-content: flex-start;
    }

    .live-pill {
        width: fit-content;
        max-width: 100%;
        min-height: 28px;
        padding: 0;
        font-size: 0.64rem;
        letter-spacing: 0.08rem;
        gap: 0.35rem;
        margin-right: auto;
        justify-content: flex-start;
    }

    .live-dot {
        width: 8px;
        height: 8px;
        flex-shrink: 0;
    }

    .series-grid {
        grid-template-columns: 1fr 1fr;
    }

    .topbar {
        flex-direction: column;
        align-items: flex-start;
    }

    .summary-group {
        flex-direction: column;
    }

    .scoreboard-header-row {
        align-items: center;
        text-align: center;
    }

    .brand-side {
        min-width: 70px;
    }

    .champ-logo,
    .cbse-logo {
        width: 72px;
        height: 72px;
    }

    .header-copy {
        order: 3;
        width: 100%;
    }

    .filter-toggle {
        display: inline-flex;
        justify-content: center;
        align-items: center;
    }

    .scoreboard-filters {
        display: none;
    }

    .scoreboard-filters.is-open {
        display: block;
    }

    .panel-header {
        flex-direction: column;
        align-items: flex-start;
    }

    .table-toolbar {
        width: 100%;
        justify-content: space-between;
        flex-direction: column;
        align-items: stretch;
    }

    .data-table-search {
        max-width: 100%;
        width: 100%;
    }

    .btn-group {
        width: 100%;
        display: grid;
        grid-template-columns: 1fr 1fr;
    }

    .btn-group .btn {
        width: 100%;
    }

    .scoreboard-table {
        min-width: 760px;
        table-layout: auto;
    }

    .scoreboard-table tbody td:nth-child(6),
    .scoreboard-table tbody td:nth-child(7),
    .scoreboard-table tbody td:nth-child(8),
    .scoreboard-table tbody td:nth-child(9) {
        min-width: 54px;
        font-size: 0.8rem;
        padding-top: 0.45rem;
        padding-bottom: 0.45rem;
        background: rgba(32, 167, 182, 0.06);
    }

    .category-table tbody td:nth-child(5),
    .category-table tbody td:nth-child(6),
    .category-table tbody td:nth-child(7),
    .category-table tbody td:nth-child(8),
    .category-table tbody td:nth-child(9),
    .category-table tbody td:nth-child(10) {
        min-width: 54px;
        font-size: 0.8rem;
        padding-top: 0.45rem;
        padding-bottom: 0.45rem;
        background: rgba(32, 167, 182, 0.06);
    }

    .category-table tbody td:nth-child(9) {
        min-width: 70px;
        white-space: nowrap;
    }

    .category-table tbody td:nth-child(10) {
        min-width: 54px;
        white-space: nowrap;
    }

    .scoreboard-table thead th:nth-child(2),
    .scoreboard-table tbody td:nth-child(2),
    .scoreboard-table thead th:nth-child(3),
    .scoreboard-table tbody td:nth-child(3),
    .scoreboard-table thead th:nth-child(4),
    .scoreboard-table tbody td:nth-child(4),
    .category-table thead th:nth-child(2),
    .category-table tbody td:nth-child(2),
    .category-table thead th:nth-child(3),
    .category-table tbody td:nth-child(3),
    .category-table thead th:nth-child(4),
    .category-table tbody td:nth-child(4) {
        min-width: 180px;
        width: 22%;
    }

    .table-responsive {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }

    .scoreboard-table-shell {
        overflow-x: hidden;
    }

    .scoreboard-table {
        width: 100%;
        min-width: 0;
        table-layout: fixed;
        font-size: 0.72rem;
    }

    .scoreboard-table th,
    .scoreboard-table td {
        padding: 0.45rem 0.18rem;
        overflow: hidden;
        text-overflow: ellipsis;
    }

    .scoreboard-table th:nth-child(1),
    .scoreboard-table td:nth-child(1) { width: 8%; }

    .scoreboard-table th:nth-child(2),
    .scoreboard-table td:nth-child(2),
    .scoreboard-table th:nth-child(4),
    .scoreboard-table td:nth-child(4),
    .scoreboard-table th:nth-child(5),
    .scoreboard-table td:nth-child(5) { display: none; }

    .scoreboard-table th:nth-child(3),
    .scoreboard-table td:nth-child(3) {
        display: table-cell;
        width: 28%;
        min-width: 0;
        white-space: nowrap;
    }

    .scoreboard-table th:nth-child(6),
    .scoreboard-table td:nth-child(6),
    .scoreboard-table th:nth-child(7),
    .scoreboard-table td:nth-child(7),
    .scoreboard-table th:nth-child(8),
    .scoreboard-table td:nth-child(8),
    .scoreboard-table th:nth-child(9),
    .scoreboard-table td:nth-child(9),
    .scoreboard-table th:nth-child(10),
    .scoreboard-table td:nth-child(10),
    .scoreboard-table th:nth-child(11),
    .scoreboard-table td:nth-child(11) {
        width: 10.66%;
        min-width: 0;
        text-align: center;
        white-space: nowrap;
        font-size: 0.72rem;
        padding-left: 0.05rem;
        padding-right: 0.05rem;
    }

    .scoreboard-table thead th:nth-child(1) { font-size: 0; }
    .scoreboard-table thead th:nth-child(1)::after { content: '#'; font-size: 0.68rem; }
    .scoreboard-table thead th:nth-child(3) { font-size: 0; }
    .scoreboard-table thead th:nth-child(3)::after { content: 'Shooter'; font-size: 0.68rem; }
    .scoreboard-table thead th:nth-child(6) { font-size: 0; }
    .scoreboard-table thead th:nth-child(6)::after { content: 'S1'; font-size: 0.68rem; }
    .scoreboard-table thead th:nth-child(7) { font-size: 0; }
    .scoreboard-table thead th:nth-child(7)::after { content: 'S2'; font-size: 0.68rem; }
    .scoreboard-table thead th:nth-child(8) { font-size: 0; }
    .scoreboard-table thead th:nth-child(8)::after { content: 'S3'; font-size: 0.68rem; }
    .scoreboard-table thead th:nth-child(9) { font-size: 0; }
    .scoreboard-table thead th:nth-child(9)::after { content: 'S4'; font-size: 0.68rem; }
    .scoreboard-table thead th:nth-child(10) { font-size: 0; }
    .scoreboard-table thead th:nth-child(10)::after { content: 'Total'; font-size: 0.68rem; }
    .scoreboard-table thead th:nth-child(11) { font-size: 0; }
    .scoreboard-table thead th:nth-child(11)::after { content: '10X'; font-size: 0.68rem; }

    .scoreboard-table tbody td:nth-child(6),
    .scoreboard-table tbody td:nth-child(7),
    .scoreboard-table tbody td:nth-child(8),
    .scoreboard-table tbody td:nth-child(9),
    .scoreboard-table tbody td:nth-child(10),
    .scoreboard-table tbody td:nth-child(11) {
        background: rgba(32, 167, 182, 0.06);
        font-weight: 700;
        font-variant-numeric: tabular-nums;
    }
}

@media (max-width: 575px) {
    .login-card { padding: 1.5rem; }

    .home-hero h1 { font-size: 2.2rem; }

    .home-hero-actions .home-button { width: 100%; }

    .series-grid {
        grid-template-columns: 1fr;
    }

    .sidebar-nav {
        grid-template-columns: 1fr;
    }

    .main-panel {
        padding: 1rem;
    }

    .scoreboard-hero {
        padding: 1.8rem 0 1.4rem;
    }

    .scoreboard-header-row {
        gap: 0.75rem;
    }

    .scoreboard-hero h1 {
        font-size: 2rem;
    }

    .championship-info {
        font-size: 0.82rem;
    }

    .championship-info strong {
        font-size: 0.9rem;
    }

    .eyebrow {
        letter-spacing: 0.12rem;
    }

    .champ-logo,
    .cbse-logo {
        width: 62px;
        height: 62px;
    }

    .table-title-group {
        width: 100%;
    }

    .table-type-icon {
        width: 30px;
        height: 30px;
    }

    .table-pagination {
        justify-content: center;
    }

    .page-btn {
        min-width: 36px;
        padding: 0 0.6rem;
    }
}

.zone-portal {
    --zone-navy: #061a2d;
    --zone-deep: #03111f;
    --zone-blue: #087eff;
    --zone-electric: #19a7ff;
    --zone-red: #ff2b2b;
    --zone-muted: #67798f;
    min-height: 100vh;
    overflow-x: clip;
    background: var(--zone-deep);
    color: #fff;
    font-family: 'Inter', sans-serif;
}

.zone-portal a:focus-visible,
.zone-portal button:focus-visible,
.zone-portal input:focus-visible {
    outline: 3px solid rgba(25, 167, 255, 0.75);
    outline-offset: 3px;
}

.zone-navbar {
    position: sticky;
    z-index: 20;
    top: 0;
    display: flex;
    min-height: 84px;
    align-items: center;
    justify-content: space-between;
    padding: 7px 24px;
    border-radius: 0 0 18px 18px;
    background: rgba(255, 255, 255, 0.98);
    box-shadow: 0 8px 28px rgba(1, 12, 25, 0.16);
}

.zone-logo-link {
    display: inline-flex;
    width: 164px;
    height: 70px;
    align-items: center;
}

.zone-logo-link img,
.zone-card-logo,
.zone-footer-logo {
    display: block;
    max-width: 100%;
    height: auto;
    object-fit: contain;
}

.zone-logo-link img {
    width: 100%;
    max-height: 68px;
}

.zone-menu-toggle {
    display: flex;
    width: 48px;
    height: 48px;
    flex: 0 0 48px;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 6px;
    border: 0;
    border-radius: 12px;
    background: transparent;
    cursor: pointer;
}

.zone-menu-toggle span {
    width: 29px;
    height: 3px;
    border-radius: 4px;
    background: var(--zone-navy);
    transition: transform 180ms ease, opacity 180ms ease;
}

.zone-menu-toggle.is-open span:first-child { transform: translateY(9px) rotate(45deg); }
.zone-menu-toggle.is-open span:nth-child(2) { opacity: 0; }
.zone-menu-toggle.is-open span:last-child { transform: translateY(-9px) rotate(-45deg); }

.zone-navigation {
    position: absolute;
    top: calc(100% + 8px);
    right: 16px;
    display: grid;
    width: min(290px, calc(100vw - 32px));
    padding: 8px;
    border: 1px solid #e3eaf3;
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 18px 42px rgba(3, 17, 31, 0.2);
}

.zone-navigation[hidden] { display: none; }

.zone-navigation a {
    display: flex;
    min-height: 48px;
    align-items: center;
    padding: 0 13px;
    border-radius: 10px;
    color: var(--zone-navy);
    font-size: 0.9rem;
    font-weight: 650;
    text-decoration: none;
}

.zone-navigation a:hover { background: #edf6ff; color: #056bd7; }

.zone-hero {
    position: relative;
    isolation: isolate;
    min-height: 640px;
    padding: 26px 20px 122px;
    background-color: var(--zone-navy);
    background-image: linear-gradient(90deg, rgba(3, 17, 31, 0.92) 0%, rgba(3, 17, 31, 0.72) 52%, rgba(3, 17, 31, 0.2) 100%), linear-gradient(180deg, rgba(3, 17, 31, 0.12) 45%, rgba(3, 17, 31, 0.78) 100%), url('../shooting-range-pexels-6091293.png');
    background-position: center, center, center 48%;
    background-size: cover;
}

.zone-hero::after {
    position: absolute;
    z-index: -1;
    inset: 0;
    background: linear-gradient(180deg, rgba(3, 17, 31, 0.03), rgba(3, 17, 31, 0.34));
    content: '';
}

.zone-hero-inner {
    width: min(100%, 1180px);
    margin: 0 auto;
}

.zone-event-copy {
    width: min(100%, 650px);
    animation: zone-rise-in 560ms ease-out both;
}

.zone-event-copy h1 {
    display: grid;
    gap: 1px;
    margin: 0;
    color: #fff;
    font-size: 2.38rem;
    font-weight: 800;
    line-height: 1.02;
}

.zone-event-copy h1 span { display: block; }

.zone-event-copy h1 strong {
    display: block;
    margin-top: 2px;
    color: var(--zone-electric);
    font-size: 3.5rem;
    font-weight: 850;
    line-height: 0.98;
}

.zone-portal-label {
    margin-top: 17px;
    color: #fff;
    font-size: 1.7rem;
    font-weight: 550;
    line-height: 1.2;
}

.zone-year-rule {
    width: 104px;
    height: 3px;
    margin: 15px 0 18px;
    background: var(--zone-electric);
}

.zone-event-details {
    display: grid;
    gap: 9px;
    width: min(100%, 570px);
}

.zone-detail-card {
    display: grid;
    min-height: 66px;
    grid-template-columns: 48px minmax(0, 1fr);
    align-items: center;
    gap: 10px;
    padding: 10px 12px;
    border: 1px solid rgba(142, 205, 255, 0.16);
    border-radius: 15px;
    background: rgba(5, 35, 61, 0.62);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.06);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
}

.zone-detail-icon {
    display: grid;
    width: 44px;
    height: 44px;
    place-items: center;
    color: #53c5ff;
    font-size: 1.5rem;
}

.zone-detail-card > div { min-width: 0; }

.zone-detail-label,
.zone-detail-card strong,
.zone-detail-card > div > span:last-child { display: block; }

.zone-detail-label {
    margin-bottom: 2px;
    color: #45c2ff;
    font-size: 0.88rem;
    font-weight: 750;
}

.zone-detail-card strong {
    color: #fff;
    font-size: 0.87rem;
    font-weight: 700;
    line-height: 1.35;
    overflow-wrap: anywhere;
}

.zone-detail-card > div > span:last-child {
    margin-top: 1px;
    color: rgba(235, 244, 255, 0.8);
    font-size: 0.82rem;
    line-height: 1.4;
}

.zone-login-stage {
    position: relative;
    z-index: 2;
    width: min(calc(100% - 32px), 720px);
    margin: -162px auto 0;
}

.zone-live-scoring-link {
    display: flex;
    width: 100%;
    min-height: 76px;
    align-items: center;
    gap: 14px;
    margin: 0 0 8px;
    padding: 12px 16px;
    border: 1px solid rgba(151, 207, 255, 0.45);
    border-radius: 18px;
    background: linear-gradient(110deg, #07559c, #087eff);
    box-shadow: 0 12px 28px rgba(0, 13, 30, 0.28), inset 0 1px 0 rgba(255, 255, 255, 0.14);
    color: #fff;
    text-decoration: none;
    transition: transform 160ms ease, box-shadow 160ms ease, filter 160ms ease;
}

.zone-live-scoring-mark {
    display: grid;
    width: 48px;
    height: 48px;
    flex: 0 0 48px;
    place-items: center;
    border: 1px solid rgba(255, 255, 255, 0.28);
    border-radius: 14px;
    background: rgba(255, 255, 255, 0.13);
    color: #fff;
    font-size: 1.25rem;
}

.zone-live-scoring-copy {
    display: grid;
    min-width: 0;
    flex: 1;
    gap: 3px;
}

.zone-live-scoring-copy strong {
    color: #fff;
    font-size: 0.98rem;
    font-weight: 800;
}

.zone-live-scoring-copy small {
    color: rgba(255, 255, 255, 0.82);
    font-size: 0.78rem;
    line-height: 1.35;
}

.zone-live-scoring-arrow {
    display: grid;
    width: 40px;
    height: 40px;
    flex: 0 0 40px;
    place-items: center;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.15);
    color: #fff;
}

.zone-live-scoring-link:hover {
    transform: translateY(-2px);
    box-shadow: 0 15px 32px rgba(0, 13, 30, 0.34), inset 0 1px 0 rgba(255, 255, 255, 0.14);
    filter: saturate(1.08);
    color: #fff;
}

.zone-live-scoring-link:active { transform: scale(0.98); }

.dashboard-event-strip {
    padding: 15px 24px;
    border-bottom: 1px solid #dce7f2;
    background: #f7faff;
    color: #112d4b;
}

.dashboard-event-strip-inner {
    display: flex;
    width: min(100%, 1180px);
    align-items: center;
    justify-content: space-between;
    gap: 28px;
    margin: 0 auto;
}

.dashboard-event-heading {
    min-width: 220px;
}

.dashboard-event-heading > span {
    display: block;
    margin-bottom: 4px;
    color: #0875c9;
    font-size: 0.68rem;
    font-weight: 800;
}

.dashboard-event-heading h1 {
    margin: 0;
    color: #102d4b;
    font-size: 1.08rem;
    font-weight: 800;
    line-height: 1.3;
}

.dashboard-event-meta {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
    flex: 1;
}

.dashboard-event-meta > div {
    display: grid;
    gap: 3px;
    min-width: 0;
}

.dashboard-event-meta span {
    color: #687e93;
    font-size: 0.64rem;
    font-weight: 750;
}

.dashboard-event-meta strong {
    color: #163955;
    font-size: 0.76rem;
    font-weight: 700;
    line-height: 1.35;
    overflow-wrap: anywhere;
}

.zone-dashboard-content {
    min-height: 380px;
    border-top: 1px solid #dce7f2;
    background: #f4f8fc;
    color: var(--text);
}

.zone-dashboard-content > .container { max-width: 1180px; }

.zone-dashboard-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 24px;
    padding-bottom: 20px;
    border-bottom: 1px solid #dce5ef;
}

.zone-dashboard-eyebrow {
    margin: 0 0 4px;
    color: #5b7188;
    font-size: 0.76rem;
    font-weight: 750;
}

.zone-dashboard-toolbar h2 {
    margin: 0;
    color: #112d4b;
    font-size: 1.45rem;
    font-weight: 800;
    overflow-wrap: anywhere;
}

.zone-dashboard-username {
    margin: 5px 0 0;
    color: #6b7f94;
    font-size: 0.8rem;
}

.zone-dashboard-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 9px;
}

.zone-dashboard-action {
    display: inline-flex;
    min-height: 46px;
    align-items: center;
    justify-content: center;
    gap: 9px;
    padding: 0 15px;
    border: 1px solid transparent;
    border-radius: 12px;
    font: inherit;
    font-size: 0.84rem;
    font-weight: 750;
    text-decoration: none;
    cursor: pointer;
    transition: transform 160ms ease, box-shadow 160ms ease, background-color 160ms ease;
}

.zone-dashboard-action:hover { transform: translateY(-1px); }

.zone-dashboard-action-primary {
    background: linear-gradient(105deg, #087eff, #0967f5);
    box-shadow: 0 7px 16px rgba(8, 126, 255, 0.2);
    color: #fff;
}

.zone-dashboard-action-primary:hover { color: #fff; box-shadow: 0 10px 20px rgba(8, 126, 255, 0.27); }

.zone-dashboard-action-secondary {
    border-color: #c8d8e8;
    background: #fff;
    color: #16476f;
}

.zone-dashboard-action-secondary:hover { background: #eef6ff; color: #0a64ad; }

.dashboard-portal .panel-card {
    border-color: #dce6ef;
    border-radius: 14px;
    box-shadow: 0 8px 22px rgba(15, 45, 72, 0.06);
}

.dashboard-portal .panel-header h4 { color: #112d4b; }

.dashboard-portal .booking-modal-dialog .modal-content {
    overflow: hidden;
    border: 1px solid #d6e2ee;
    border-radius: 18px;
    box-shadow: 0 24px 70px rgba(3, 22, 41, 0.28);
}

.dashboard-portal .booking-modal-header {
    min-height: 78px;
    padding: 15px 20px;
    border-bottom: 1px solid #e4ebf2;
    background: #fff;
}

.booking-modal-heading { display: flex; min-width: 0; align-items: center; gap: 12px; }

.booking-modal-heading-icon {
    display: grid;
    width: 42px;
    height: 42px;
    flex: 0 0 42px;
    place-items: center;
    border-radius: 12px;
    background: #e9f3ff;
    color: #0877dd;
}

.booking-modal-heading .modal-title { color: #102d4b; font-size: 1.08rem; font-weight: 800; }
.booking-modal-heading p { margin: 3px 0 0; color: #718399; font-size: 0.76rem; }

.dashboard-portal .booking-modal-dialog .modal-body {
    padding: 20px;
    background: #f7f9fc;
}

.booking-section-heading { display: flex; min-width: 0; align-items: center; gap: 10px; }

.booking-section-heading > span {
    display: grid;
    width: 30px;
    height: 30px;
    flex: 0 0 30px;
    place-items: center;
    border-radius: 9px;
    background: #e8f2fc;
    color: #2671a7;
    font-size: 0.68rem;
    font-weight: 800;
}

.booking-section-heading > div { display: grid; min-width: 0; gap: 2px; }
.booking-section-heading strong { color: #183a58; font-size: 0.88rem; font-weight: 800; }
.booking-section-heading small { color: #73869a; font-size: 0.72rem; line-height: 1.35; }
.dashboard-portal .booking-fields-row { margin-top: 13px; }

.dashboard-portal .booking-fields-row .form-label {
    margin-bottom: 6px;
    color: #435b72;
    font-size: 0.74rem;
    font-weight: 750;
}

.dashboard-portal .booking-fields-row .form-control,
.dashboard-portal .booking-fields-row .form-select {
    min-height: 44px;
    border-color: #d5e0ea;
    border-radius: 10px;
    background-color: #fff;
    color: #173753;
    font-size: 0.84rem;
}

.dashboard-portal .booking-fields-row .form-control:focus,
.dashboard-portal .booking-fields-row .form-select:focus {
    border-color: #66a9df;
    box-shadow: 0 0 0 3px rgba(8, 126, 255, 0.12);
}

.dashboard-portal .booking-fields-row .form-check { min-height: 44px; display: flex; align-items: center; }
.dashboard-portal .booking-fields-row .btn { min-height: 44px; border-radius: 10px; font-size: 0.8rem; font-weight: 700; }
.dashboard-portal #bookingShooterStatus { font-size: 0.7rem; }

.booking-cart-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin: 18px 0 10px;
}

.booking-cart-count {
    flex: 0 0 auto;
    padding: 5px 9px;
    border: 1px solid #dbe7f0;
    border-radius: 999px;
    background: #fff;
    color: #537087;
    font-size: 0.7rem;
    font-weight: 750;
}

.dashboard-portal .booking-modal-dialog .modal-footer {
    padding: 13px 20px;
    border-top: 1px solid #e4ebf2;
    background: #fff;
}

.dashboard-portal .booking-modal-dialog .modal-footer .btn { min-height: 42px; border-radius: 10px; font-weight: 700; }

.dashboard-portal .booking-cart-table-wrap {
    max-height: 270px;
    overflow: auto;
    border: 1px solid #dfe7ee;
    border-radius: 12px;
    background: #fff;
}

.dashboard-portal .booking-cart-table { width: max-content; min-width: 760px; margin: 0; font-size: 0.76rem; }
.dashboard-portal .booking-cart-table thead th { position: sticky; top: 0; z-index: 1; padding: 10px 9px; border-bottom: 1px solid #dce5ed; background: #f1f6fb; color: #60768b; font-size: 0.65rem; white-space: nowrap; }
.dashboard-portal .booking-cart-table tbody td { padding: 10px 9px; border-color: #edf1f5; color: #304b63; vertical-align: middle; }
.dashboard-portal .booking-cart-empty td { padding: 24px 12px !important; color: #8494a5 !important; text-align: center; }

.zone-stats-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
    margin: 0 0 22px;
}

.zone-stat-card {
    display: flex;
    min-width: 0;
    min-height: 116px;
    align-items: center;
    gap: 14px;
    padding: 18px;
    border: 1px solid #dce6ef;
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 7px 20px rgba(15, 45, 72, 0.055);
}

.zone-stat-icon {
    display: grid;
    width: 46px;
    height: 46px;
    flex: 0 0 46px;
    place-items: center;
    border-radius: 13px;
    font-size: 1.1rem;
}

.zone-stat-blue { background: #e8f3ff; color: #0877dd; }
.zone-stat-green { background: #e9f7f1; color: #20856a; }
.zone-stat-slate { background: #edf1f6; color: #4e657c; }

.zone-stat-copy {
    display: grid;
    min-width: 0;
    gap: 2px;
}

.zone-stat-copy > span { color: #687d92; font-size: 0.76rem; font-weight: 650; }
.zone-stat-copy strong { color: #102d4b; font-size: 1.55rem; font-weight: 800; line-height: 1.15; overflow-wrap: anywhere; }
.zone-stat-copy strong.zone-stat-code { font-size: 1.12rem; }
.zone-stat-copy small { color: #8797a8; font-size: 0.69rem; }

.zone-bookings-panel { margin-top: 22px; padding: 0; overflow: hidden; }

.zone-bookings-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 18px 20px;
    border-bottom: 1px solid #e3ebf2;
}

.zone-bookings-heading h3 { margin: 0; color: #112d4b; font-size: 1.05rem; font-weight: 800; }
.zone-bookings-heading p { margin: 4px 0 0; color: #718399; font-size: 0.76rem; }

.zone-bookings-count {
    display: inline-flex;
    min-height: 32px;
    align-items: center;
    gap: 5px;
    padding: 0 10px;
    border: 1px solid #dbe8f2;
    border-radius: 999px;
    background: #f5f9fd;
    color: #16476f;
    font-size: 0.8rem;
    font-weight: 800;
    white-space: nowrap;
}

.zone-bookings-count span { color: #718399; font-weight: 600; }
.zone-bookings-table-wrap { padding: 0 16px 12px; }

.dashboard-portal .zone-bookings-table {
    width: 100%;
    min-width: 0;
    table-layout: auto;
    font-size: 0.79rem;
}

.dashboard-portal .zone-bookings-table thead th {
    padding: 12px 10px;
    border-bottom: 1px solid #dce6ef;
    background: #f5f8fc;
    color: #61758a;
    font-size: 0.66rem;
    font-weight: 750;
    white-space: nowrap;
}

.dashboard-portal .zone-bookings-table tbody td {
    padding: 13px 10px;
    border-bottom: 1px solid #edf1f5;
    color: #304b63;
    vertical-align: middle;
}

.dashboard-portal .zone-bookings-table tbody tr:last-child td { border-bottom: 0; }
.dashboard-portal .zone-bookings-table tbody td strong { color: #173753; }
.dashboard-portal .zone-bookings-table code { color: #476780; font-size: 0.74rem; }

.zone-bookings-empty {
    display: flex;
    min-height: 150px;
    align-items: center;
    gap: 14px;
    padding: 22px;
}

.zone-bookings-empty-icon {
    display: grid;
    width: 44px;
    height: 44px;
    flex: 0 0 44px;
    place-items: center;
    border-radius: 13px;
    background: #edf5fc;
    color: #2479b9;
    font-size: 1.05rem;
}

.zone-bookings-empty > div { min-width: 0; flex: 1; }
.zone-bookings-empty strong { color: #173753; font-size: 0.88rem; }
.zone-bookings-empty p { margin: 3px 0 0; color: #73859a; font-size: 0.76rem; line-height: 1.5; }

.admin-login-main {
    display: grid;
    min-height: calc(100vh - 240px);
    place-items: center;
    padding: 36px 16px;
    background-color: var(--zone-navy);
    background-image: linear-gradient(rgba(3, 17, 31, 0.78), rgba(3, 17, 31, 0.84)), url('../shooting-range-pexels-6091293.png');
    background-position: center;
    background-size: cover;
}

.admin-login-stage {
    width: min(calc(100% - 32px), 480px);
    margin: 0 auto;
}

.zone-login-card {
    padding: 26px 22px 22px;
    border: 1px solid rgba(255, 255, 255, 0.85);
    border-radius: 26px;
    background: rgba(248, 251, 255, 0.97);
    box-shadow: 0 22px 60px rgba(0, 12, 27, 0.34), inset 0 1px 0 #fff;
    color: var(--zone-navy);
    text-align: center;
    animation: zone-rise-in 620ms 100ms ease-out both;
}

.zone-card-logo {
    width: 150px;
    height: 76px;
    margin: 0 auto 4px;
}

.zone-login-card h2 {
    margin: 0;
    color: #092744;
    font-size: 2rem;
    font-weight: 800;
    line-height: 1.18;
}

.zone-login-subtitle {
    margin: 4px 0 20px;
    color: #70829a;
    font-size: 0.98rem;
}

.zone-login-error {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin: 0 0 15px;
    padding: 12px 14px;
    border: 1px solid #ffd1d1;
    border-radius: 12px;
    background: #fff1f1;
    color: #a8232e;
    font-size: 0.88rem;
    text-align: left;
}

.zone-login-error > i { margin-top: 2px; }
.zone-login-error p { margin: 0; }

.zone-login-form { display: grid; gap: 13px; }

.zone-input-wrap {
    position: relative;
    display: flex;
    min-height: 60px;
    align-items: center;
    border: 1px solid #dce6f2;
    border-radius: 15px;
    background: #fff;
    box-shadow: 0 2px 5px rgba(15, 55, 91, 0.025);
    transition: border-color 160ms ease, box-shadow 160ms ease;
}

.zone-input-wrap:focus-within {
    border-color: #58aaff;
    box-shadow: 0 0 0 4px rgba(8, 126, 255, 0.12);
}

.zone-input-icon {
    display: grid;
    width: 55px;
    height: 56px;
    flex: 0 0 55px;
    place-items: center;
    color: #637990;
    font-size: 1.15rem;
}

.zone-input-wrap input {
    width: 100%;
    min-width: 0;
    min-height: 58px;
    padding: 0 12px 0 0;
    border: 0;
    outline: 0;
    background: transparent;
    color: #112d4b;
    font: inherit;
    font-size: 1rem;
}

.zone-zone-picker {
    z-index: 1;
}

.zone-zone-picker.is-open {
    z-index: 20;
    border-color: #58aaff;
}

.zone-zone-picker.has-error {
    border-color: #d15b66;
    box-shadow: 0 0 0 3px rgba(209, 91, 102, 0.1);
}

.zone-zone-picker-trigger {
    display: flex;
    width: 100%;
    min-width: 0;
    min-height: 58px;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 0 38px 0 0;
    border: 0;
    outline: 0;
    background: transparent;
    color: #112d4b;
    font: inherit;
    font-size: 1rem;
    text-align: left;
    cursor: pointer;
}

.zone-zone-picker-trigger:disabled {
    color: #8190a6;
    cursor: not-allowed;
}

.zone-zone-picker-trigger > span {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.zone-zone-picker.is-open .zone-select-chevron {
    transform: rotate(180deg);
}

.zone-zone-picker-options {
    position: absolute;
    z-index: 30;
    top: calc(100% + 7px);
    right: 8px;
    left: 8px;
    max-height: min(240px, 35vh);
    overflow-y: auto;
    padding: 6px;
    border: 1px solid #dce6f2;
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 16px 38px rgba(5, 30, 57, 0.2);
}

.zone-zone-picker-options[hidden] { display: none; }

.zone-zone-picker-option {
    display: flex;
    width: 100%;
    min-height: 48px;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 0 12px;
    border: 0;
    border-radius: 10px;
    background: transparent;
    color: #183657;
    font: inherit;
    font-size: 0.94rem;
    text-align: left;
    cursor: pointer;
}

.zone-zone-picker-option:hover,
.zone-zone-picker-option:focus-visible {
    outline: none;
    background: #edf5ff;
    color: #075fb8;
}

.zone-zone-picker-option[aria-selected="true"] {
    background: #e8f2ff;
    color: #075fb8;
    font-weight: 700;
}

.zone-zone-picker-option > i { opacity: 0; }
.zone-zone-picker-option[aria-selected="true"] > i { opacity: 1; }

.zone-zone-picker-empty {
    display: flex;
    min-height: 48px;
    align-items: center;
    padding: 0 12px;
    color: #8190a6;
    font-size: 0.9rem;
}

.zone-zone-picker-error {
    margin: -5px 4px 0;
    color: #b23b48;
    font-size: 0.78rem;
    text-align: left;
}

.zone-zone-picker-error[hidden] { display: none; }

.zone-select-chevron {
    position: absolute;
    right: 18px;
    color: #637990;
    font-size: 0.8rem;
    pointer-events: none;
}

.zone-input-wrap input::placeholder { color: #8190a6; opacity: 1; }

.zone-password-toggle {
    display: grid;
    width: 48px;
    height: 48px;
    flex: 0 0 48px;
    margin-right: 5px;
    place-items: center;
    border: 0;
    border-radius: 11px;
    background: transparent;
    color: #61768f;
    cursor: pointer;
    font-size: 1.1rem;
}

.zone-password-toggle:hover { background: #edf5fc; color: #075fb8; }

.zone-form-options {
    display: flex;
    min-height: 44px;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin: -2px 0 0;
}

.zone-remember {
    display: inline-flex;
    min-height: 44px;
    align-items: center;
    gap: 9px;
    color: #183657;
    cursor: pointer;
    font-size: 0.88rem;
    font-weight: 550;
}

.zone-remember input {
    width: 21px;
    height: 21px;
    margin: 0;
    accent-color: var(--zone-blue);
    cursor: pointer;
}

.zone-forgot-link {
    display: inline-flex;
    min-height: 44px;
    align-items: center;
    color: #0875f5;
    font-size: 0.86rem;
    font-weight: 700;
    text-decoration: none;
}

.zone-forgot-link:hover { color: #045bbf; text-decoration: underline; }

.zone-submit-button {
    position: relative;
    display: flex;
    width: 100%;
    min-height: 62px;
    align-items: center;
    justify-content: center;
    gap: 11px;
    padding: 0 52px;
    border: 0;
    border-radius: 16px;
    background: linear-gradient(105deg, #087eff, #0967f5);
    box-shadow: 0 10px 22px rgba(8, 126, 255, 0.24);
    color: #fff;
    cursor: pointer;
    font: inherit;
    font-size: 1.05rem;
    font-weight: 750;
    transition: transform 160ms ease, box-shadow 160ms ease, filter 160ms ease;
}

.zone-submit-button:hover:not(:disabled) {
    transform: translateY(-2px);
    box-shadow: 0 14px 27px rgba(8, 126, 255, 0.3);
    filter: saturate(1.08);
}

.zone-submit-button:active:not(:disabled) { transform: scale(0.985); }
.zone-submit-button:disabled { cursor: wait; opacity: 0.86; }
.zone-submit-icon { font-size: 1.15rem; }

.zone-submit-chevron {
    position: absolute;
    right: 22px;
    font-size: 1rem;
}

.zone-submit-spinner {
    display: none;
    width: 18px;
    height: 18px;
    border: 2px solid rgba(255, 255, 255, 0.45);
    border-top-color: #fff;
    border-radius: 50%;
    animation: zone-spin 700ms linear infinite;
}

.zone-submit-button.is-loading .zone-submit-spinner { display: block; }
.zone-submit-button.is-loading .zone-submit-icon,
.zone-submit-button.is-loading .zone-submit-chevron { display: none; }

.zone-security-note {
    display: flex;
    min-height: 44px;
    align-items: center;
    justify-content: center;
    gap: 9px;
    margin-top: 14px;
    border-radius: 12px;
    background: #eaf3ff;
    color: #32628f;
    font-size: 0.82rem;
    font-weight: 600;
}

.zone-security-note i { color: #0872dd; font-size: 1rem; }

.zone-support-wrap {
    width: min(calc(100% - 32px), 820px);
    margin: 22px auto 25px;
}

.zone-support-card {
    display: flex;
    min-height: 112px;
    align-items: center;
    gap: 15px;
    padding: 15px 18px;
    border: 1px solid rgba(91, 166, 230, 0.3);
    border-radius: 22px;
    background: linear-gradient(120deg, rgba(8, 35, 61, 0.96), rgba(4, 23, 42, 0.96));
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.06);
    color: #fff;
    text-decoration: none;
    transition: border-color 160ms ease, transform 160ms ease;
}

.zone-support-card:hover {
    transform: translateY(-2px);
    border-color: rgba(25, 167, 255, 0.7);
    color: #fff;
}

.zone-support-icon {
    display: grid;
    width: 64px;
    height: 64px;
    flex: 0 0 64px;
    place-items: center;
    border-radius: 50%;
    background: rgba(8, 126, 255, 0.18);
    color: #18a7ff;
    font-size: 1.75rem;
}

.zone-support-copy {
    display: grid;
    min-width: 0;
    gap: 3px;
}

.zone-support-copy strong { font-size: 0.98rem; font-weight: 750; }
.zone-support-copy > span { color: #b6c8dd; font-size: 0.87rem; }
.zone-support-copy b { color: #19a7ff; font-size: 1rem; font-weight: 750; }
.zone-support-copy b i { margin-right: 4px; font-size: 0.83rem; }
.zone-support-arrow { margin-left: auto; color: #91a9c3; }

.zone-footer {
    padding: 0 20px 24px;
    background: var(--zone-deep);
    color: #c3d1e1;
}

.zone-footer-inner {
    display: flex;
    width: min(100%, 820px);
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    margin: 0 auto;
    padding: 19px 0 18px;
    border-top: 1px solid rgba(116, 159, 202, 0.32);
}

.zone-footer-partner {
    display: grid;
    gap: 3px;
}

.zone-footer-eyebrow { color: #89a1bb; font-size: 0.78rem; }
.zone-footer-partner strong { color: #fff; font-size: 1rem; font-weight: 750; }
.zone-footer-partner > span:last-child { color: #9eb1c7; font-size: 0.83rem; }

.zone-footer-logo {
    width: 150px;
    max-height: 76px;
}

.zone-copyright {
    width: min(100%, 820px);
    margin: 4px auto 0;
    color: #91a6bd;
    font-size: 0.76rem;
    line-height: 1.5;
    text-align: center;
}

@keyframes zone-rise-in {
    from { opacity: 0; transform: translateY(12px); }
    to { opacity: 1; transform: translateY(0); }
}

@keyframes zone-spin { to { transform: rotate(360deg); } }

@media (min-width: 768px) {
    .zone-navbar { min-height: 92px; padding-right: max(32px, calc((100vw - 1180px) / 2)); padding-left: max(32px, calc((100vw - 1180px) / 2)); }
    .zone-logo-link { width: 180px; height: 76px; }
    .zone-hero { min-height: 660px; padding: 42px 32px 199px; background-position: center, center, center 52%; }
    .zone-event-copy h1 { font-size: 3.35rem; }
    .zone-event-copy h1 strong { font-size: 5rem; }
    .zone-portal-label { margin-top: 19px; font-size: 2rem; }
    .zone-year-rule { width: 128px; margin: 17px 0 20px; }
    .zone-event-details { gap: 10px; }
    .zone-detail-card { min-height: 72px; grid-template-columns: 54px minmax(0, 1fr); padding: 10px 15px; }
    .zone-detail-icon { width: 48px; height: 48px; font-size: 1.65rem; }
    .zone-detail-label { font-size: 0.94rem; }
    .zone-detail-card strong { font-size: 0.95rem; }
    .zone-detail-card > div > span:last-child { font-size: 0.88rem; }
    .zone-login-stage { margin-top: -185px; }
    .zone-login-card { padding: 31px 44px 27px; border-radius: 28px; }
    .zone-card-logo { width: 168px; height: 83px; }
    .zone-login-card h2 { font-size: 2.2rem; }
    .zone-login-subtitle { margin-bottom: 22px; font-size: 1.05rem; }
    .zone-login-form { gap: 15px; }
    .zone-input-wrap,
    .zone-input-wrap input { min-height: 64px; }
    .zone-input-icon { height: 62px; }
    .zone-submit-button { min-height: 66px; font-size: 1.12rem; }
    .zone-support-wrap { margin-top: 25px; margin-bottom: 28px; }
    .zone-support-card { min-height: 124px; padding: 18px 22px; }
    .zone-support-icon { width: 70px; height: 70px; flex-basis: 70px; }
    .zone-footer { padding-right: 32px; padding-left: 32px; }
    .dashboard-event-strip { padding-right: 32px; padding-left: 32px; }
}

@media (max-width: 430px) {
    .zone-navbar { min-height: 78px; padding: 5px 15px; border-radius: 0 0 15px 15px; }
    .zone-logo-link { width: 148px; height: 66px; }
    .zone-menu-toggle { width: 46px; height: 46px; flex-basis: 46px; }
    .zone-hero { min-height: 0; padding: 24px 16px 166px; background-position: center, center, 54% center; }
    .zone-event-copy h1 { font-size: 2.2rem; }
    .zone-event-copy h1 strong { font-size: 3.35rem; }
    .zone-portal-label { margin-top: 15px; font-size: 1.55rem; }
    .zone-year-rule { width: 94px; margin: 13px 0 15px; }
    .zone-event-details { gap: 8px; }
    .zone-detail-card { min-height: 62px; grid-template-columns: 42px minmax(0, 1fr); gap: 8px; padding: 8px 10px; border-radius: 14px; }
    .zone-detail-icon { width: 40px; height: 42px; font-size: 1.32rem; }
    .zone-detail-label { font-size: 0.8rem; }
    .zone-detail-card strong { font-size: 0.78rem; }
    .zone-detail-card > div > span:last-child { font-size: 0.73rem; }
    .zone-login-stage { width: calc(100% - 32px); margin-top: -152px; }
    .zone-live-scoring-link { min-height: 72px; gap: 10px; padding: 10px 12px; border-radius: 16px; }
    .zone-live-scoring-mark { width: 44px; height: 44px; flex-basis: 44px; border-radius: 13px; font-size: 1.1rem; }
    .zone-live-scoring-copy strong { font-size: 0.91rem; }
    .zone-live-scoring-copy small { font-size: 0.72rem; }
    .zone-live-scoring-arrow { width: 36px; height: 36px; flex-basis: 36px; }
    .zone-login-card { padding: 22px 18px 18px; border-radius: 24px; }
    .zone-card-logo { width: 142px; height: 72px; }
    .zone-login-card h2 { font-size: 1.8rem; }
    .zone-login-subtitle { margin: 3px 0 17px; font-size: 0.9rem; }
    .zone-login-form { gap: 11px; }
    .zone-input-wrap { min-height: 58px; border-radius: 14px; }
    .zone-input-icon { width: 48px; height: 56px; flex-basis: 48px; font-size: 1.05rem; }
    .zone-input-wrap input { min-height: 56px; font-size: 0.94rem; }
    .zone-zone-picker-trigger { min-height: 56px; font-size: 0.94rem; }
    .zone-password-toggle { width: 44px; height: 44px; flex-basis: 44px; }
    .zone-remember { gap: 7px; font-size: 0.82rem; }
    .zone-forgot-link { font-size: 0.8rem; }
    .zone-submit-button { min-height: 58px; padding: 0 42px; border-radius: 15px; font-size: 0.99rem; }
    .zone-submit-chevron { right: 16px; }
    .zone-security-note { margin-top: 12px; font-size: 0.76rem; }
    .zone-support-wrap { width: calc(100% - 32px); margin: 18px auto 22px; }
    .zone-support-card { min-height: 104px; gap: 11px; padding: 13px 12px; border-radius: 18px; }
    .zone-support-icon { width: 52px; height: 52px; flex-basis: 52px; font-size: 1.45rem; }
    .zone-support-copy strong { font-size: 0.85rem; }
    .zone-support-copy > span { font-size: 0.73rem; }
    .zone-support-copy b { font-size: 0.89rem; }
    .zone-support-arrow { font-size: 0.82rem; }
    .zone-footer { padding-right: 17px; padding-left: 17px; }
    .zone-footer-inner { gap: 10px; padding-top: 16px; }
    .zone-footer-eyebrow { font-size: 0.72rem; }
    .zone-footer-partner strong { font-size: 0.9rem; }
    .zone-footer-partner > span:last-child { font-size: 0.72rem; }
    .zone-footer-logo { width: 122px; max-height: 64px; }
    .zone-copyright { font-size: 0.69rem; }

    .admin-login-main { min-height: calc(100svh - 210px); padding: 30px 0; }
    .admin-login-stage { width: calc(100% - 32px); }
    .dashboard-event-strip { padding: 13px 16px; }
    .dashboard-event-strip-inner { align-items: stretch; flex-direction: column; gap: 12px; }
    .dashboard-event-heading { min-width: 0; }
    .dashboard-event-heading h1 { font-size: 0.98rem; }
    .dashboard-event-meta { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 14px; }
    .dashboard-event-meta > div:last-child { grid-column: 1 / -1; }
    .dashboard-event-meta strong { font-size: 0.72rem; }
    .zone-dashboard-content > .container { padding-top: 22px !important; }
    .zone-dashboard-toolbar { align-items: stretch; flex-direction: column; gap: 14px; margin-bottom: 18px; padding-bottom: 16px; }
    .zone-dashboard-toolbar h2 { font-size: 1.25rem; }
    .zone-dashboard-actions { display: grid; grid-template-columns: 1fr 1fr; }
    .zone-dashboard-action { min-width: 0; padding: 0 10px; font-size: 0.78rem; }
    .zone-stats-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; margin-bottom: 16px; }
    .zone-stat-card { min-height: 88px; gap: 9px; padding: 12px 10px; border-radius: 12px; }
    .zone-stat-card:last-child { grid-column: 1 / -1; }
    .zone-stat-icon { width: 35px; height: 35px; flex-basis: 35px; border-radius: 10px; font-size: 0.9rem; }
    .zone-stat-copy { gap: 2px; }
    .zone-stat-copy > span { font-size: 0.7rem; line-height: 1.3; }
    .zone-stat-copy strong { font-size: 1.25rem; }
    .zone-stat-copy strong.zone-stat-code { font-size: 0.98rem; }
    .zone-stat-copy small { display: block; font-size: 0.65rem; }
    .zone-bookings-panel { margin-top: 16px; }
    .zone-bookings-heading { padding: 15px 14px; }
    .zone-bookings-heading h3 { font-size: 0.98rem; }
    .zone-bookings-heading p { font-size: 0.7rem; }
    .zone-bookings-table-wrap { overflow: visible; padding: 0 12px 12px; }
    .dashboard-portal .zone-bookings-table,
    .dashboard-portal .zone-bookings-table tbody { display: block; width: 100%; }
    .dashboard-portal .zone-bookings-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; }
    .dashboard-portal .zone-bookings-table tbody tr { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 12px; margin-top: 12px; padding: 8px 11px; border: 1px solid #e0e8f0; border-radius: 12px; background: #fff; }
    .dashboard-portal .zone-bookings-table tbody td { display: grid; min-width: 0; gap: 3px; padding: 8px 2px; border: 0; font-size: 0.72rem; line-height: 1.35; white-space: normal; overflow-wrap: anywhere; }
    .dashboard-portal .zone-bookings-table tbody td::before { color: #74889c; content: attr(data-label); font-size: 0.61rem; font-weight: 750; }
    .dashboard-portal .zone-bookings-table tbody td[data-label="Participant"],
    .dashboard-portal .zone-bookings-table tbody td[data-label="Event"] { grid-column: 1 / -1; }
    .dashboard-portal .zone-bookings-table .booking-reference-column { display: none; }
    .zone-bookings-empty { align-items: flex-start; flex-wrap: wrap; gap: 11px; padding: 17px 14px; }
    .zone-bookings-empty > div { flex-basis: calc(100% - 58px); }
    .zone-bookings-empty .zone-dashboard-action { width: 100%; }
}

@media (max-width: 767px) {
    .dashboard-portal .booking-modal-dialog {
        width: calc(100% - 16px);
        max-width: 640px;
        max-height: calc(100dvh - 16px);
        min-height: 0;
        margin: 8px auto;
    }

    .dashboard-portal .booking-modal-dialog .modal-content { height: calc(100dvh - 16px); min-height: 0; border-radius: 17px; }
    .dashboard-portal .booking-modal-dialog .modal-header { flex: 0 0 auto; padding: 13px 14px; }
    .dashboard-portal .booking-modal-dialog .modal-body { min-height: 0; overflow-y: auto; padding: 15px 14px; }
    .booking-modal-heading-icon { width: 38px; height: 38px; flex-basis: 38px; }
    .booking-modal-heading .modal-title { font-size: 0.98rem; }
    .booking-modal-heading p { font-size: 0.68rem; }
    .dashboard-portal .booking-fields-row { display: grid; grid-template-columns: minmax(0, 1fr); gap: 11px; }
    .dashboard-portal .booking-fields-row > div { width: 100%; grid-column: 1 / -1; }
    .dashboard-portal .booking-fields-row .form-label { font-size: 0.74rem; }
    .dashboard-portal .booking-fields-row .form-control,
    .dashboard-portal .booking-fields-row .form-select { min-height: 44px; font-size: 0.9rem; }
    .dashboard-portal .booking-fields-row .form-check { min-height: 42px; padding-left: 1.75rem; }
    .booking-cart-heading { align-items: flex-start; }
    .booking-cart-heading .booking-section-heading small { max-width: 230px; }
    .booking-cart-count { font-size: 0.66rem; }
    .dashboard-portal .booking-cart-table-wrap { max-height: 260px; overflow: auto; }
    .dashboard-portal .booking-cart-table,
    .dashboard-portal .booking-cart-table tbody { display: block; width: 100%; min-width: 0; }
    .dashboard-portal .booking-cart-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; }
    .dashboard-portal .booking-cart-table tbody tr:not(.booking-cart-empty) { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 12px; margin: 9px; padding: 8px 10px; border: 1px solid #e0e8f0; border-radius: 11px; background: #fff; }
    .dashboard-portal .booking-cart-table tbody tr:not(.booking-cart-empty) td { display: grid; min-width: 0; gap: 3px; padding: 8px 2px; border: 0; font-size: 0.72rem; line-height: 1.35; white-space: normal; overflow-wrap: anywhere; }
    .dashboard-portal .booking-cart-table tbody tr:not(.booking-cart-empty) td::before { color: #74889c; content: attr(data-label); font-size: 0.6rem; font-weight: 750; }
    .dashboard-portal .booking-cart-table tbody tr:not(.booking-cart-empty) td[data-label="Participant"],
    .dashboard-portal .booking-cart-table tbody tr:not(.booking-cart-empty) td[data-label="Event"] { grid-column: 1 / -1; }
    .dashboard-portal .booking-cart-table tbody tr:not(.booking-cart-empty) td:last-child { display: flex; justify-content: flex-end; grid-column: 1 / -1; }
    .dashboard-portal .booking-modal-dialog .modal-footer { display: grid; grid-template-columns: 1fr 1fr; flex: 0 0 auto; gap: 9px; padding: 11px 14px; }
    .dashboard-portal .booking-modal-dialog .modal-footer .btn { width: 100%; min-height: 44px; margin: 0; font-size: 0.8rem; }
}

@media (max-width: 360px) {
    .zone-hero { padding-right: 13px; padding-left: 13px; }
    .zone-event-copy h1 { font-size: 2.05rem; }
    .zone-event-copy h1 strong { font-size: 3.15rem; }
    .zone-detail-card strong { font-size: 0.74rem; }
    .zone-form-options { gap: 4px; }
    .zone-remember { gap: 5px; font-size: 0.77rem; }
    .zone-forgot-link { font-size: 0.75rem; }
    .zone-support-card { gap: 8px; padding-right: 9px; padding-left: 9px; }
    .zone-support-icon { width: 46px; height: 46px; flex-basis: 46px; }
    .zone-support-copy strong { font-size: 0.8rem; }
    .zone-support-copy > span { font-size: 0.69rem; }
}

@media (prefers-reduced-motion: reduce) {
    .zone-portal *,
    .zone-portal *::before,
    .zone-portal *::after {
        scroll-behavior: auto !important;
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }
}

.relay-booking-page { min-height: 100vh; background: #f3f7fb; }
.relay-booking-navigation { display: flex; align-items: center; gap: 22px; }
.relay-booking-navigation > span { color: #62788d; font-size: 0.82rem; font-weight: 700; }
.relay-booking-navigation a,
.relay-back-link { color: #1768a7; font-size: 0.82rem; font-weight: 750; text-decoration: none; }
.relay-booking-navigation a:hover,
.relay-back-link:hover { color: #0a4f86; }
.relay-booking-main { padding: 26px 20px 54px; }
.relay-booking-container { width: min(100%, 920px); margin: 0 auto; }
.relay-back-link { display: inline-flex; align-items: center; gap: 8px; margin-bottom: 20px; }
.relay-booking-intro { margin-bottom: 22px; }
.relay-booking-kicker { display: inline-flex; align-items: center; gap: 7px; margin-bottom: 8px; color: #1974b7; font-size: 0.74rem; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; }
.relay-booking-intro h1 { margin: 0; color: #102d4b; font-size: clamp(1.65rem, 4vw, 2.15rem); font-weight: 850; letter-spacing: -0.04em; }
.relay-booking-intro p { margin: 7px 0 0; color: #718399; font-size: 0.91rem; }
.relay-booking-page > main .alert { margin-bottom: 16px; }
.relay-booking-card { margin-bottom: 16px; padding: 23px; border: 1px solid #dce6ef; border-radius: 16px; background: #fff; box-shadow: 0 8px 22px rgba(15, 45, 72, 0.055); }
.relay-card-heading { display: flex; min-width: 0; align-items: center; gap: 12px; margin-bottom: 20px; }
.relay-step-number { display: grid; width: 36px; height: 36px; flex: 0 0 36px; place-items: center; border-radius: 11px; background: #e8f2fc; color: #2671a7; font-size: 0.73rem; font-weight: 850; }
.relay-card-heading h2 { margin: 0; color: #183a58; font-size: 1rem; font-weight: 820; }
.relay-card-heading p { margin: 4px 0 0; color: #73869a; font-size: 0.76rem; line-height: 1.4; }
.relay-booking-fields { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.relay-booking-fields .relay-field { min-width: 0; }
.relay-booking-fields .relay-field-wide { grid-column: span 2; }
.relay-booking-fields .form-label { margin-bottom: 6px; color: #435b72; font-size: 0.75rem; font-weight: 750; }
.relay-booking-fields .form-control,
.relay-booking-fields .form-select { min-height: 46px; border-color: #d5e0ea; border-radius: 10px; color: #173753; font-size: 0.87rem; }
.relay-booking-fields .form-control:focus,
.relay-booking-fields .form-select:focus { border-color: #66a9df; box-shadow: 0 0 0 3px rgba(8, 126, 255, 0.12); }
.relay-booking-fields .form-control:disabled,
.relay-booking-fields .form-select:disabled { background-color: #f2f5f8; }
.relay-booking-fields #bookingShooterStatus { font-size: 0.71rem; }
.relay-field-check { display: flex; align-items: end; }
.relay-field-check .form-check { display: flex; min-height: 46px; align-items: center; margin: 0; padding-left: 1.8rem; }
.relay-field-check .form-check-label { color: #435b72; font-size: 0.82rem; font-weight: 650; }
.relay-field-action { display: flex; align-items: end; }
.relay-field-action .btn,
.relay-cart-actions .btn { min-height: 46px; border-radius: 10px; font-size: 0.83rem; font-weight: 750; }
.relay-cart-heading { margin-bottom: 14px; }
.relay-cart-heading .booking-cart-count { margin-left: auto; }
.relay-booking-page .booking-cart-table-wrap { max-height: none; overflow: auto; border: 1px solid #e1e8ef; border-radius: 12px; background: #fff; }
.relay-booking-page .booking-cart-table { width: max-content; min-width: 100%; margin: 0; font-size: 0.76rem; }
.relay-booking-page .booking-cart-table thead th { padding: 11px 10px; border-bottom: 1px solid #dce5ed; background: #f4f7fa; color: #60768b; font-size: 0.67rem; white-space: nowrap; }
.relay-booking-page .booking-cart-table tbody td { padding: 11px 10px; border-color: #edf1f5; color: #304b63; vertical-align: middle; }
.relay-booking-page .booking-cart-empty td { padding: 25px 12px !important; color: #8494a5 !important; text-align: center; }
.relay-cart-actions { display: flex; justify-content: flex-end; gap: 10px; margin-top: 16px; }
.relay-cart-actions .btn-light { border: 1px solid #dbe4ec; background: #fff; color: #435b72; }
.relay-review-card[hidden] { display: none; }
.relay-review-table-wrap { overflow: auto; border: 1px solid #e1e8ef; border-radius: 12px; }
.relay-review-table-wrap .table { min-width: 650px; margin: 0; font-size: 0.77rem; }
.relay-review-table-wrap th { background: #f4f7fa; color: #60768b; font-size: 0.68rem; white-space: nowrap; }
.relay-acknowledgement { margin-top: 16px; padding: 15px; border: 1px solid #f0dcae; border-radius: 12px; background: #fff9e9; color: #705724; }
.relay-acknowledgement > strong { display: flex; align-items: center; gap: 8px; font-size: 0.84rem; }
.relay-acknowledgement p { margin: 7px 0 12px; font-size: 0.76rem; line-height: 1.55; }
.relay-acknowledgement .form-check { display: flex; align-items: flex-start; gap: 8px; margin: 0; padding: 0; }
.relay-acknowledgement .form-check-input { flex: 0 0 auto; margin: 3px 0 0; }
.relay-acknowledgement .form-check-label { font-size: 0.75rem; line-height: 1.5; }
.relay-booking-page .zone-footer { margin-top: 20px; }

@media (max-width: 767px) {
    .relay-booking-page .zone-navbar { justify-content: space-between; }
    .relay-booking-navigation { gap: 12px; }
    .relay-booking-navigation > span { display: none; }
    .relay-booking-navigation a { font-size: 0.75rem; }
    .relay-booking-main { padding: 17px 13px 36px; }
    .relay-back-link { margin-bottom: 16px; font-size: 0.78rem; }
    .relay-booking-intro { margin-bottom: 17px; }
    .relay-booking-intro p { max-width: 310px; font-size: 0.83rem; line-height: 1.5; }
    .relay-booking-card { margin-bottom: 12px; padding: 16px 14px; border-radius: 14px; }
    .relay-card-heading { align-items: flex-start; gap: 10px; margin-bottom: 16px; }
    .relay-step-number { width: 32px; height: 32px; flex-basis: 32px; border-radius: 10px; }
    .relay-card-heading h2 { padding-top: 1px; font-size: 0.94rem; }
    .relay-card-heading p { max-width: 270px; font-size: 0.71rem; }
    .relay-booking-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 13px 10px; }
    .relay-booking-fields .relay-field { grid-column: 1 / -1; }
    .relay-booking-fields .relay-field:nth-child(5),
    .relay-booking-fields .relay-field:nth-child(6),
    .relay-booking-fields .relay-field:nth-child(7),
    .relay-booking-fields .relay-field:nth-child(8) { grid-column: span 1; }
    .relay-booking-fields .form-label { font-size: 0.72rem; }
    .relay-booking-fields .form-control,
    .relay-booking-fields .form-select { min-height: 46px; font-size: 0.88rem; }
    .relay-field-check .form-check { min-height: 46px; }
    .relay-field-action { grid-column: 1 / -1 !important; }
    .relay-field-action .btn { width: 100%; }
    .relay-cart-heading { align-items: flex-start; flex-wrap: wrap; }
    .relay-cart-heading .booking-cart-count { margin-left: auto; font-size: 0.65rem; }
    .relay-booking-page .booking-cart-table-wrap { overflow: visible; border: 0; background: transparent; }
    .relay-booking-page .booking-cart-table,
    .relay-booking-page .booking-cart-table tbody { display: block; width: 100%; min-width: 0; }
    .relay-booking-page .booking-cart-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; }
    .relay-booking-page .booking-cart-table tbody tr:not(.booking-cart-empty) { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 10px; margin: 0 0 10px; padding: 7px 10px; border: 1px solid #e0e8f0; border-radius: 11px; background: #fff; }
    .relay-booking-page .booking-cart-table tbody tr:not(.booking-cart-empty) td { display: grid; min-width: 0; gap: 3px; padding: 8px 2px; border: 0; font-size: 0.71rem; line-height: 1.35; white-space: normal; overflow-wrap: anywhere; }
    .relay-booking-page .booking-cart-table tbody tr:not(.booking-cart-empty) td::before { color: #74889c; content: attr(data-label); font-size: 0.6rem; font-weight: 750; }
    .relay-booking-page .booking-cart-table tbody tr:not(.booking-cart-empty) td[data-label="Participant"],
    .relay-booking-page .booking-cart-table tbody tr:not(.booking-cart-empty) td[data-label="Event"] { grid-column: 1 / -1; }
    .relay-booking-page .booking-cart-table tbody tr:not(.booking-cart-empty) td:last-child { display: flex; justify-content: flex-end; grid-column: 1 / -1; }
    .relay-booking-page .booking-cart-table tbody tr.booking-cart-empty { display: block; padding: 14px 10px; border: 1px dashed #ccd8e4; border-radius: 10px; color: #8494a5; font-size: 0.75rem; text-align: center; }
    .relay-booking-page .booking-cart-table tbody tr.booking-cart-empty td { display: block; padding: 0 !important; border: 0; }
    .relay-cart-actions { display: grid; grid-template-columns: 1fr; gap: 8px; margin-top: 13px; }
    .relay-cart-actions .btn { width: 100%; min-height: 46px; }
    .relay-acknowledgement { padding: 12px; }
    .relay-acknowledgement p,
    .relay-acknowledgement .form-check-label { font-size: 0.72rem; }
}

.relay-booking-page { background: #f4f8fc; color: #18344f; }
.relay-booking-page .zone-navbar { min-height: 68px; padding: 5px max(16px, calc((100vw - 980px) / 2)); border-radius: 0; }
.relay-booking-page .zone-logo-link { width: 135px; height: 56px; }
.relay-booking-page .zone-logo-link img { max-height: 54px; }
.relay-booking-main { min-height: calc(100vh - 175px); padding: 25px 16px 52px; }
.relay-booking-container { width: min(100%, 760px); }
.relay-booking-page .relay-back-link { margin-bottom: 18px; color: #5b748b; }
.relay-booking-intro { margin-bottom: 20px; }
.relay-booking-intro h1 { color: #102d4b; font-size: clamp(1.7rem, 5vw, 2.1rem); }
.relay-booking-intro p { color: #6c8094; font-size: 0.9rem; }
.relay-booking-kicker { color: #0878dc; }
.relay-stepper { position: sticky; z-index: 8; top: 68px; display: flex; align-items: flex-start; justify-content: space-between; margin: 0 -2px 18px; padding: 12px 10px 10px; border: 1px solid #e0e8f0; border-radius: 13px; background: rgba(255,255,255,.97); box-shadow: 0 4px 14px rgba(16,45,75,.05); }
.relay-stepper > i { width: 100%; height: 1px; margin: 12px -4px 0; background: #dbe4ed; }
.relay-step { display: grid; min-width: 50px; justify-items: center; gap: 4px; color: #8192a3; text-align: center; }
.relay-step > span { display: grid; width: 26px; height: 26px; place-items: center; border: 1px solid #d8e2ec; border-radius: 50%; background: #f6f8fa; color: #75889b; font-size: 0.66rem; font-weight: 800; }
.relay-step small { color: #718398; font-size: 0.61rem; line-height: 1.15; white-space: nowrap; }
.relay-step.is-active > span,
.relay-step.is-complete > span { border-color: #087eff; background: #087eff; color: #fff; box-shadow: 0 3px 8px rgba(8,126,255,.22); }
.relay-step.is-active small { color: #0967c7; font-weight: 800; }
.relay-step.is-complete small { color: #426d91; }
.relay-flow-panel { padding: 22px; border: 1px solid #dce5ee; border-radius: 16px; background: #fff; box-shadow: 0 10px 28px rgba(20,55,86,.055); color: #243d54; }
.relay-flow-panel[hidden] { display: none; }
.relay-card-heading { align-items: flex-start; gap: 12px; margin-bottom: 19px; }
.relay-step-icon { display: grid; width: 40px; height: 40px; flex: 0 0 40px; place-items: center; border-radius: 12px; background: #eaf4ff; color: #0878e5; font-size: 1rem; }
.relay-card-heading h2 { margin: 1px 0 0; color: #132f4e; font-size: 1.04rem; font-weight: 800; }
.relay-card-heading p { margin: 5px 0 0; color: #72869a; font-size: 0.78rem; line-height: 1.45; }
.relay-flow-panel .form-label { display: block; margin: 0 0 7px; color: #435b72; font-size: 0.76rem; font-weight: 750; }
.relay-flow-panel .form-label small { color: #8798a8; font-weight: 500; }
.relay-large-input { min-height: 52px; border-color: #d5e0ea; border-radius: 11px; color: #18344f; font-size: 0.92rem; }
.relay-large-input:focus,
.relay-flow-panel textarea:focus { border-color: #64a9e4; box-shadow: 0 0 0 3px rgba(8,126,255,.11); }
.relay-primary-button { display: inline-flex; min-height: 52px; align-items: center; justify-content: center; gap: 8px; padding: 10px 17px; border: 1px solid #0877ee; border-radius: 11px; background: linear-gradient(105deg,#087eff,#0967f5); box-shadow: 0 6px 14px rgba(8,126,255,.17); color: #fff; font-size: 0.83rem; font-weight: 750; text-decoration: none; }
.relay-primary-button:hover,
.relay-primary-button:focus { border-color: #0564d0; background: #0869e0; color: #fff; }
.relay-primary-button:disabled { border-color: #a9c7e6; background: #9ab9d8; box-shadow: none; color: #fff; }
.relay-search-panel > .relay-primary-button { width: 100%; margin-top: 14px; }
.relay-inline-status { margin-top: 7px; font-size: 0.73rem; line-height: 1.4; }
.relay-inline-status.is-success { color: #15804b; }
.relay-inline-status.is-error { color: #bd3b3b; }
.relay-inline-status.is-loading { color: #397aa9; }
.relay-info-note { display: flex; align-items: flex-start; gap: 9px; margin-top: 14px; padding: 12px; border: 1px solid #d8e9fc; border-radius: 11px; background: #f0f7ff; color: #386b96; font-size: 0.73rem; line-height: 1.45; }
.relay-info-note i { flex: 0 0 auto; padding-top: 1px; color: #087eff; }
.relay-manual-entry { margin-top: 16px; padding-top: 16px; border-top: 1px solid #e5ecf2; }
.relay-manual-entry p { color: #a24b34; font-size: 0.78rem; }
.relay-manual-entry .form-label:not(:first-of-type) { margin-top: 12px; }
.relay-manual-entry > .relay-primary-button { width: 100%; margin-top: 12px; }
.relay-verified-card { padding: 15px; border: 1px solid #dce8f2; border-radius: 14px; background: linear-gradient(160deg,#fff,#f8fbff); }
.relay-verified-heading { display: flex; align-items: center; gap: 11px; }
.relay-profile-icon,
.relay-summary-person-icon { display: grid; width: 48px; height: 48px; flex: 0 0 48px; place-items: center; border: 1px solid #d6eaff; border-radius: 50%; background: #eaf4ff; color: #0879e5; font-size: 1.15rem; }
.relay-verified-title { display: grid; min-width: 0; flex: 1; gap: 2px; }
.relay-verified-title > span { color: #15804b; font-size: 0.71rem; font-weight: 800; }
.relay-verified-title > span i { margin-right: 3px; }
.relay-verified-title small { color: #71859a; font-size: 0.64rem; }
.relay-verified-title h3 { overflow-wrap: anywhere; margin: 0; color: #14314f; font-size: 0.91rem; font-weight: 800; }
.relay-verified-badge { display: inline-flex; flex: 0 0 auto; align-items: center; gap: 4px; padding: 5px 8px; border-radius: 99px; background: #e5f7ed; color: #18834d; font-size: 0.62rem; font-weight: 800; }
.relay-details-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1px; margin-top: 13px; overflow: hidden; border: 1px solid #e8eef4; border-radius: 10px; background: #e8eef4; }
.relay-detail-item { display: flex; min-width: 0; align-items: flex-start; gap: 8px; padding: 10px; background: #fff; }
.relay-detail-item > i { flex: 0 0 15px; padding-top: 2px; color: #1381e8; font-size: 0.78rem; text-align: center; }
.relay-detail-item > div { display: grid; min-width: 0; gap: 3px; }
.relay-detail-item small { color: #7b8da0; font-size: 0.61rem; }
.relay-detail-item strong { overflow-wrap: anywhere; color: #203c56; font-size: 0.7rem; font-weight: 700; line-height: 1.35; }
.relay-readonly-note { display: flex; align-items: center; gap: 7px; margin-top: 11px; color: #657d92; font-size: 0.67rem; }
.relay-events-heading { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin: 18px 0 10px; }
.relay-events-heading > strong { color: #1a3550; font-size: 0.82rem; font-weight: 800; }
.relay-events-heading > span { color: #7a8da0; font-size: 0.68rem; text-align: right; }
.relay-event-options { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; }
.relay-event-card { position: relative; display: grid; min-width: 0; min-height: 95px; align-content: start; gap: 4px; padding: 12px; border: 1px solid #dfe7ef; border-radius: 12px; background: #fff; color: #263e56; text-align: left; }
.relay-event-card.is-selected { border-color: #087eff; background: #eff7ff; box-shadow: 0 0 0 1px #087eff; }
.relay-event-card > strong { padding-right: 20px; color: #18344f; font-size: 0.85rem; }
.relay-event-card > small { color: #6d8296; font-size: 0.7rem; }
.relay-event-check { position: absolute; top: 10px; right: 10px; display: grid; width: 19px; height: 19px; place-items: center; border: 1px solid #cfdbe6; border-radius: 50%; background: #fff; color: transparent; font-size: 0.61rem; }
.relay-event-card.is-selected .relay-event-check { border-color: #087eff; background: #087eff; color: #fff; }
.relay-event-registered { display: flex; align-items: center; gap: 5px; margin-top: 3px; color: #16834d; font-size: 0.62rem; }
.relay-step-actions { display: grid; grid-template-columns: minmax(105px,.75fr) minmax(0,1.4fr); gap: 9px; margin-top: 18px; }
.relay-back-button { display: inline-flex; min-height: 52px; align-items: center; justify-content: center; gap: 7px; padding: 9px 12px; border: 1px solid #d5e0e9; border-radius: 11px; background: #fff; color: #405b74; font-size: 0.78rem; font-weight: 700; text-decoration: none; }
.relay-back-button:hover { border-color: #b8d2e7; background: #f5faff; color: #164e7d; }
.relay-step-actions .relay-primary-button { width: 100%; }
.relay-date-scroller { display: flex; gap: 8px; margin: 0 -2px; padding: 1px 2px 8px; overflow-x: auto; scrollbar-width: thin; }
.relay-date-card { display: grid; min-width: 70px; min-height: 94px; flex: 0 0 auto; justify-items: center; align-content: center; gap: 1px; padding: 8px 6px; border: 1px solid #e0e8ef; border-radius: 11px; background: #fff; color: #60778d; }
.relay-date-card.is-selected { border-color: #087eff; background: #eff7ff; box-shadow: 0 0 0 1px #087eff; color: #155b9c; }
.relay-date-card > span { font-size: 0.62rem; line-height: 1.2; }
.relay-date-card > strong { color: #18344f; font-size: 1.14rem; line-height: 1.2; }
.relay-date-card > small { margin-top: 4px; color: #19834e; font-size: 0.58rem; font-weight: 750; white-space: nowrap; }
.relay-date-card .is-limited { color: #be7905; }
.relay-date-card .is-full { color: #c63d43; }
.relay-availability-legend { display: flex; flex-wrap: wrap; gap: 12px; margin: 3px 0 16px; color: #71859a; font-size: 0.64rem; }
.relay-availability-legend > span { display: flex; align-items: center; gap: 5px; }
.relay-availability-legend i { width: 7px; height: 7px; border-radius: 50%; background: #17ae68; }
.relay-availability-legend i.is-limited { background: #f0a321; }
.relay-availability-legend i.is-full { background: #e3464b; }
.relay-available-heading { margin: 0 0 4px; }
.relay-refresh-button { display: inline-flex; min-height: 38px; align-items: center; gap: 6px; padding: 5px 10px; border: 1px solid #e0e9f1; border-radius: 9px; background: #fff; color: #2e6c9e; font-size: 0.68rem; font-weight: 700; }
.relay-refresh-button:disabled { opacity: .55; }
.relay-selected-date { min-height: 17px; margin: 0 0 8px; color: #8092a3; font-size: 0.68rem; }
.relay-options { display: grid; gap: 7px; }
.relay-option { display: flex; width: 100%; min-height: 60px; align-items: center; gap: 10px; padding: 9px 11px; border: 1px solid #e1e8ef; border-radius: 11px; background: #fff; color: #243d54; text-align: left; }
.relay-option.is-selected { border-color: #087eff; background: #eff7ff; box-shadow: 0 0 0 1px #087eff; }
.relay-option.is-full { background: #f6f8fa; opacity: .62; }
.relay-radio { display: grid; width: 20px; height: 20px; flex: 0 0 20px; place-items: center; border: 1.5px solid #aabac8; border-radius: 50%; background: #fff; }
.relay-radio i { width: 10px; height: 10px; border-radius: 50%; background: transparent; }
.relay-option.is-selected .relay-radio { border-color: #087eff; }
.relay-option.is-selected .relay-radio i { background: #087eff; }
.relay-option-copy { display: grid; min-width: 0; flex: 1; gap: 3px; }
.relay-option-copy strong { color: #193650; font-size: 0.77rem; }
.relay-option-copy small { color: #768a9e; font-size: 0.67rem; }
.relay-line-count { flex: 0 0 auto; color: #16834d; font-size: 0.67rem; font-weight: 750; }
.relay-line-count.is-limited { color: #bb7809; }
.relay-line-count.is-full { color: #bf4545; }
.relay-empty-state { padding: 17px 12px; border: 1px dashed #d5e1eb; border-radius: 11px; color: #788c9f; font-size: 0.75rem; text-align: center; }
.relay-empty-state.is-error { border-color: #efcaca; color: #ad3e3e; }
.relay-accommodation-options { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
.relay-accommodation-card { display: grid; min-height: 132px; align-content: start; justify-items: start; gap: 7px; padding: 13px; border: 1px solid #dce5ee; border-radius: 12px; background: #fff; color: #314b64; text-align: left; }
.relay-accommodation-card > i { display: grid; width: 32px; height: 32px; place-items: center; border-radius: 9px; background: #f1f5f8; color: #668198; font-size: 0.9rem; }
.relay-accommodation-card > strong { color: #1a3550; font-size: 0.78rem; }
.relay-accommodation-card > span { color: #788da1; font-size: 0.66rem; line-height: 1.4; }
.relay-accommodation-card.is-selected { border-color: #087eff; background: #f0f7ff; box-shadow: 0 0 0 1px #087eff; }
.relay-accommodation-card.is-selected > i { background: #dfedff; color: #0878df; }
.relay-team-option { display: flex; min-height: 72px; align-items: center; justify-content: space-between; gap: 12px; margin-top: 14px; padding: 12px 0; border-top: 1px solid #edf1f5; border-bottom: 1px solid #edf1f5; }
.relay-team-option > div { display: grid; gap: 4px; }
.relay-team-option strong { color: #1a3550; font-size: 0.8rem; }
.relay-team-option > div > span { color: #788da1; font-size: 0.68rem; }
.relay-switch { position: relative; display: flex; align-items: center; gap: 7px; }
.relay-switch input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.relay-switch > span { position: relative; width: 44px; height: 26px; border-radius: 99px; background: #cbd5de; transition: background .18s ease; }
.relay-switch > span::after { position: absolute; top: 3px; left: 3px; width: 20px; height: 20px; border-radius: 50%; background: #fff; box-shadow: 0 1px 3px #0002; content: ''; transition: transform .18s ease; }
.relay-switch input:checked + span { background: #087eff; }
.relay-switch input:checked + span::after { transform: translateX(18px); }
.relay-switch input:focus-visible + span { outline: 3px solid #77b8f5; outline-offset: 2px; }
.relay-switch small { min-width: 22px; color: #72869a; font-size: 0.65rem; }
.relay-remarks-field { position: relative; margin-top: 15px; }
.relay-remarks-field textarea { min-height: 92px; padding: 12px; border-color: #d5e0ea; border-radius: 10px; color: #18344f; font-size: 0.79rem; }
.relay-character-count { display: block; margin-top: 4px; color: #8a9aaa; font-size: 0.61rem; text-align: right; }
.relay-flow-panel .relay-alert { margin-bottom: 14px; }
.relay-alert { padding: 11px 13px; border: 1px solid #d9e5ef; border-radius: 10px; font-size: 0.75rem; line-height: 1.45; }
.relay-alert[hidden] { display: none; }
.relay-alert.is-error { border-color: #f0caca; background: #fff3f3; color: #a63f3f; }
.relay-alert.is-success { border-color: #c3e9d2; background: #edfbf2; color: #207149; }
.relay-list-heading { align-items: center; flex-wrap: wrap; }
.relay-list-heading .relay-participant-count { margin-left: auto; }
.relay-participant-count { flex: 0 0 auto; padding: 6px 9px; border: 1px solid #d7e7f8; border-radius: 99px; background: #f0f7ff; color: #256b9f; font-size: 0.64rem; font-weight: 750; }
.relay-booking-cards,
.relay-review-cards { display: grid; gap: 10px; }
.relay-summary-card { min-width: 0; padding: 13px; border: 1px solid #dfe8ef; border-radius: 13px; background: #fff; }
.relay-summary-card > header { display: flex; min-width: 0; align-items: center; gap: 9px; margin-bottom: 12px; }
.relay-summary-card > header > div:not(.relay-summary-actions) { display: grid; min-width: 0; flex: 1; gap: 2px; }
.relay-summary-person-icon { width: 38px; height: 38px; flex-basis: 38px; font-size: .9rem; }
.relay-summary-card > header small { color: #7a8da0; font-size: .6rem; }
.relay-summary-card > header h3 { overflow-wrap: anywhere; margin: 0; color: #18344f; font-size: .8rem; font-weight: 800; }
.relay-summary-actions { display: flex; gap: 5px; }
.relay-icon-button { display: grid; width: 42px; height: 42px; flex: 0 0 42px; place-items: center; border: 1px solid #dae5ee; border-radius: 10px; background: #fff; color: #3874a2; font-size: .86rem; }
.relay-icon-button.is-danger { color: #ba4949; }
.relay-summary-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1px; overflow: hidden; border: 1px solid #e9eef3; border-radius: 9px; background: #e9eef3; }
.relay-summary-grid > div { display: grid; min-width: 0; gap: 3px; padding: 9px; background: #fff; }
.relay-summary-grid small { color: #7b8ea0; font-size: .59rem; }
.relay-summary-grid strong { overflow-wrap: anywhere; color: #28435d; font-size: .68rem; font-weight: 700; line-height: 1.35; }
.relay-summary-remarks { display: grid; gap: 3px; margin: 10px 1px 0; color: #405b73; font-size: .69rem; line-height: 1.4; }
.relay-summary-remarks small { color: #7b8ea0; font-size: .6rem; }
.relay-list-actions { grid-template-columns: repeat(2,minmax(0,1fr)); }
.relay-list-actions > .relay-back-button { background: #f8fbfe; }
.relay-acknowledgement { padding: 13px; border-color: #f1dda9; border-radius: 12px; background: #fff9e9; color: #745922; }
.relay-acknowledgement > strong { color: #73591f; font-size: .78rem; }
.relay-acknowledgement p { margin: 7px 0 12px; font-size: .71rem; line-height: 1.5; }
.relay-checkbox-label { display: flex; align-items: flex-start; gap: 9px; color: #63532d; font-size: .71rem; line-height: 1.45; }
.relay-checkbox-label input { width: 18px; height: 18px; flex: 0 0 18px; margin: 1px 0 0; accent-color: #087eff; }
.relay-success-panel { text-align: center; }
.relay-success-icon { display: grid; width: 66px; height: 66px; margin: 2px auto 13px; place-items: center; border: 7px solid #e5f7ed; border-radius: 50%; background: #1aaf67; color: #fff; font-size: 1.35rem; box-shadow: 0 7px 20px #1aaf6725; }
.relay-success-panel > h2 { margin: 0; color: #173c59; font-size: 1.24rem; font-weight: 850; }
.relay-success-copy { margin: 6px 0 17px; color: #73879a; font-size: .78rem; }
.relay-reference-card { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 12px; padding: 12px; border: 1px solid #bfe8d0; border-radius: 11px; background: #effbf4; text-align: left; }
.relay-reference-card > div { display: grid; gap: 3px; }
.relay-reference-card span { color: #5e826d; font-size: .63rem; }
.relay-reference-card strong { color: #1a6740; font-size: .9rem; letter-spacing: .025em; }
.relay-reference-card button { display: grid; width: 44px; height: 44px; place-items: center; border: 1px solid #cbe8d6; border-radius: 10px; background: #fff; color: #287a4c; }
.relay-success-panel .relay-summary-card { text-align: left; }
.relay-success-actions { grid-template-columns: repeat(2,minmax(0,1fr)); }
.relay-success-actions > a { text-align: center; }
.relay-booking-page .zone-footer { margin-top: 0; }
.relay-booking-navigation { display: none; }
.relay-history-card { margin-bottom: 10px; padding: 14px; border: 1px solid #e0e8ef; border-radius: 13px; background: #fff; }
.relay-history-card[hidden] { display: none; }
.relay-history-card > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 8px; }
.relay-history-card > header > div:first-child { display: grid; gap: 7px; }
.relay-history-card > header > div:first-child > strong { color: #2a4a65; font-size: .7rem; letter-spacing: .02em; }
.relay-status-badge { display: inline-flex; width: fit-content; align-items: center; gap: 4px; padding: 4px 7px; border-radius: 99px; font-size: .61rem; font-weight: 800; }
.relay-status-badge.is-confirmed { background: #e6f7ed; color: #18814c; }
.relay-status-badge.is-pending { background: #fff3dc; color: #ad7412; }
.relay-status-badge.is-cancelled { background: #fff0f0; color: #b83e43; }
.relay-history-time { display: grid; justify-items: end; gap: 3px; color: #677e93; font-size: .65rem; text-align: right; }
.relay-history-time strong { color: #18344f; font-size: .71rem; }
.relay-history-card > h2 { margin: 12px 0 9px; color: #15324e; font-size: .86rem; font-weight: 800; }
.relay-history-details { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; color: #62798d; font-size: .66rem; }
.relay-history-details > span { overflow-wrap: anywhere; }
.relay-history-details small { color: #8192a2; }
.relay-history-details strong { color: #35536d; }
.my-bookings-page .relay-history-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 14px; padding-bottom: 13px; border-bottom: 1px solid #e7edf2; }
.my-bookings-page .relay-history-heading h2 { margin: 0; color: #173550; font-size: .95rem; font-weight: 800; }
.my-bookings-page .relay-history-heading p { margin: 4px 0 0; color: #788c9f; font-size: .7rem; }
.my-bookings-page .relay-history-heading > span { display: inline-flex; min-height: 30px; align-items: center; padding: 0 10px; border: 1px solid #dceaf7; border-radius: 99px; background: #f1f7fd; color: #365571; font-size: .69rem; font-weight: 750; white-space: nowrap; }
.relay-booking-tabs { display: flex; gap: 7px; margin-bottom: 14px; padding: 4px; border-radius: 11px; background: #f1f5f8; }
.relay-booking-tabs button { display: inline-flex; min-height: 44px; flex: 1; align-items: center; justify-content: center; gap: 5px; border: 0; border-radius: 8px; background: transparent; color: #6d8193; font-size: .73rem; font-weight: 700; }
.relay-booking-tabs button.is-active { background: #087eff; color: #fff; box-shadow: 0 3px 8px #087eff30; }
.relay-booking-tabs button span { opacity: .8; font-size: .61rem; }
.relay-history-cta { width: 100%; margin-top: 15px; }

.relay-mobile-header { min-height: 68px; padding: 5px max(16px, calc((100vw - 980px) / 2)); border-radius: 0; }
.relay-mobile-header .zone-logo-link { width: 135px; height: 56px; }
.relay-mobile-header .zone-logo-link img { max-height: 54px; }

@media (min-width: 768px) {
    .relay-mobile-header { min-height: 72px; }
    .relay-stepper { position: static; }
    .relay-flow-panel { padding: 26px; }
    .relay-details-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
    .relay-summary-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
    .relay-booking-cards { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .relay-review-cards { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .relay-history-card { padding: 17px; }
}

@media (max-width: 430px) {
    .relay-mobile-header { min-height: 60px; padding: 4px 11px; }
    .relay-mobile-header .zone-logo-link { width: 120px; height: 50px; }
    .relay-mobile-header .zone-menu-toggle { width: 44px; height: 44px; flex-basis: 44px; }
    .relay-mobile-header .zone-menu-toggle span { width: 23px; }
    .relay-booking-main { padding: 15px 11px 34px; }
    .relay-booking-container { width: 100%; }
    .relay-booking-page .relay-back-link { margin-bottom: 13px; font-size: .74rem; }
    .relay-booking-intro { margin-bottom: 15px; }
    .relay-booking-intro h1 { font-size: 1.55rem; }
    .relay-booking-intro p { max-width: 340px; font-size: .79rem; line-height: 1.45; }
    .relay-stepper { top: 60px; gap: 0; margin: 0 0 13px; padding: 9px 5px 8px; border-radius: 11px; }
    .relay-step { min-width: 47px; }
    .relay-step > span { width: 24px; height: 24px; font-size: .62rem; }
    .relay-step small { font-size: .57rem; }
    .relay-stepper > i { margin: 11px -5px 0; }
    .relay-flow-panel { padding: 16px 13px; border-radius: 14px; }
    .relay-card-heading { gap: 9px; margin-bottom: 15px; }
    .relay-step-icon { width: 36px; height: 36px; flex-basis: 36px; border-radius: 10px; font-size: .88rem; }
    .relay-card-heading h2 { font-size: .94rem; }
    .relay-card-heading p { font-size: .71rem; }
    .relay-primary-button,
    .relay-back-button { min-height: 52px; font-size: .75rem; }
    .relay-step-actions { grid-template-columns: minmax(88px,.72fr) minmax(0,1.5fr); gap: 7px; margin-top: 15px; }
    .relay-back-button { padding-right: 8px; padding-left: 8px; }
    .relay-verified-card { padding: 11px; }
    .relay-profile-icon { width: 42px; height: 42px; flex-basis: 42px; font-size: 1rem; }
    .relay-verified-badge { gap: 3px; padding: 5px 6px; font-size: .57rem; }
    .relay-details-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .relay-detail-item { gap: 6px; padding: 8px 7px; }
    .relay-detail-item > i { font-size: .7rem; }
    .relay-detail-item strong { font-size: .65rem; }
    .relay-readonly-note { align-items: flex-start; font-size: .63rem; line-height: 1.35; }
    .relay-event-options { gap: 7px; }
    .relay-event-card { min-height: 88px; padding: 10px; }
    .relay-date-card { min-width: 64px; min-height: 86px; }
    .relay-option { min-height: 58px; padding: 8px; }
    .relay-option-copy strong { font-size: .73rem; }
    .relay-option-copy small,
    .relay-line-count { font-size: .61rem; }
    .relay-accommodation-options { gap: 7px; }
    .relay-accommodation-card { min-height: 133px; padding: 10px; }
    .relay-accommodation-card > strong { font-size: .72rem; }
    .relay-accommodation-card > span { font-size: .62rem; }
    .relay-list-heading { display: grid; grid-template-columns: 36px minmax(0,1fr); }
    .relay-list-heading .relay-participant-count { grid-column: 2; justify-self: start; margin: -3px 0 0; }
    .relay-list-actions,
    .relay-success-actions { grid-template-columns: 1fr; }
    .relay-list-actions > .relay-back-button { order: 2; }
    .relay-summary-card { padding: 10px; }
    .relay-summary-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .relay-summary-grid > div { padding: 8px; }
    .relay-summary-grid small { font-size: .57rem; }
    .relay-summary-grid strong { font-size: .64rem; }
    .relay-history-details { gap: 7px; font-size: .63rem; }
}

.dashboard-theme { background: #f4f8fc; color: #243d54; }
.dashboard-theme .relay-mobile-header { min-height: 68px; padding: 5px max(16px, calc((100vw - 1180px) / 2)); border-radius: 0; }
.dashboard-theme .relay-mobile-header .zone-logo-link { width: 135px; height: 56px; }
.dashboard-theme .relay-mobile-header .zone-logo-link img { max-height: 54px; }
.dashboard-theme .dashboard-event-strip { padding: 20px max(16px, calc((100vw - 1180px) / 2)); border-bottom: 1px solid #e0e8ef; background: #fff; }
.dashboard-theme .dashboard-event-strip-inner { gap: 28px; }
.dashboard-theme .dashboard-event-heading { min-width: 240px; }
.dashboard-theme .dashboard-event-heading > span { display: inline-flex; align-items: center; gap: 6px; margin-bottom: 5px; color: #0878dc; font-size: .67rem; letter-spacing: .07em; text-transform: uppercase; }
.dashboard-theme .dashboard-event-heading h1 { color: #132f4e; font-size: 1.05rem; font-weight: 800; }
.dashboard-theme .dashboard-event-meta { gap: 14px; }
.dashboard-theme .dashboard-event-meta > div { padding-left: 13px; border-left: 2px solid #d9eaff; }
.dashboard-theme .dashboard-event-meta span { color: #7b8da0; font-size: .62rem; }
.dashboard-theme .dashboard-event-meta strong { color: #28445f; font-size: .72rem; }
.dashboard-theme .zone-dashboard-content { border: 0; background: #f4f8fc; }
.dashboard-theme .zone-dashboard-content > .container { max-width: 1180px; padding-top: 30px !important; padding-bottom: 38px !important; }
.dashboard-theme .zone-dashboard-toolbar { align-items: flex-end; margin-bottom: 20px; padding-bottom: 0; border: 0; }
.dashboard-theme .zone-dashboard-eyebrow { display: flex; align-items: center; gap: 6px; margin-bottom: 5px; color: #16804c; font-size: .72rem; }
.dashboard-theme .zone-dashboard-toolbar h2 { color: #132f4e; font-size: 1.65rem; letter-spacing: -.025em; }
.dashboard-theme .zone-dashboard-username { display: flex; align-items: center; gap: 6px; color: #71869a; font-size: .76rem; }
.dashboard-theme .zone-dashboard-actions { gap: 8px; }
.dashboard-theme .zone-dashboard-action { min-height: 46px; border-radius: 11px; font-size: .78rem; }
.dashboard-theme .zone-dashboard-action-primary { border-color: #0877ee; }
.dashboard-theme .zone-dashboard-action-secondary { border-color: #d9e4ed; color: #34546e; }
.dashboard-theme .zone-dashboard-action-secondary:hover { border-color: #b8d4eb; background: #f3f9ff; color: #0967b5; }
.dashboard-theme .zone-stats-grid { gap: 12px; margin-bottom: 18px; }
.dashboard-theme .zone-stat-card { min-height: 104px; border-color: #dce5ee; border-radius: 14px; box-shadow: 0 7px 20px rgba(20,55,86,.045); }
.dashboard-theme .zone-stat-icon { width: 42px; height: 42px; flex-basis: 42px; border-radius: 12px; }
.dashboard-theme .zone-stat-copy > span { color: #687f94; font-size: .72rem; }
.dashboard-theme .zone-stat-copy strong { color: #163653; font-size: 1.42rem; }
.dashboard-theme .zone-stat-copy strong.zone-stat-code { font-size: 1rem; }
.dashboard-theme .zone-stat-copy small { color: #8999a8; font-size: .65rem; }
.dashboard-theme .zone-bookings-panel { margin-top: 0; border: 1px solid #dce5ee; border-radius: 15px; background: #fff; box-shadow: 0 8px 23px rgba(20,55,86,.05); }
.dashboard-theme .zone-bookings-heading { padding: 17px 19px; border-bottom-color: #e7edf2; }
.dashboard-theme .zone-bookings-heading h3 { color: #173550; font-size: .96rem; }
.dashboard-theme .zone-bookings-heading p { color: #788c9f; font-size: .7rem; }
.zone-bookings-heading-actions { display: flex; align-items: center; gap: 12px; }
.zone-bookings-heading-actions > a { display: inline-flex; min-height: 42px; align-items: center; gap: 7px; padding: 0 11px; border-radius: 9px; color: #176da9; font-size: .72rem; font-weight: 750; text-decoration: none; }
.zone-bookings-heading-actions > a:hover { background: #f0f7fd; color: #075b99; }
.zone-bookings-heading-actions > .zone-schedule-download { min-height: 42px; padding: 0 14px; border: 1px solid #0871df; background: linear-gradient(110deg,#087eff,#0967e8); box-shadow: 0 5px 13px rgba(8,119,238,.18); color: #fff; font-size: .74rem; }
.zone-bookings-heading-actions > .zone-schedule-download i { font-size: .86rem; }
.zone-bookings-heading-actions > .zone-schedule-download:hover { transform: translateY(-1px); border-color: #075fc4; background: linear-gradient(110deg,#0873e8,#075ed5); box-shadow: 0 7px 16px rgba(8,103,222,.25); color: #fff; }
.zone-bookings-heading-actions > .zone-schedule-download:focus-visible { outline: 3px solid rgba(8,126,255,.3); outline-offset: 2px; }
.dashboard-theme .zone-bookings-count { min-height: 30px; border-color: #dceaf7; background: #f1f7fd; font-size: .72rem; }
.zone-booking-cards { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; padding: 15px; }
.zone-booking-card { min-width: 0; padding: 14px; border: 1px solid #e0e8ef; border-radius: 13px; background: #fff; transition: border-color .16s ease, box-shadow .16s ease, transform .16s ease; }
.zone-booking-card:hover { transform: translateY(-1px); border-color: #c6d9e9; box-shadow: 0 8px 20px rgba(20,55,86,.06); }
.zone-booking-card-header { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding-bottom: 11px; border-bottom: 1px solid #edf1f5; }
.zone-booking-reference { display: inline-flex; min-width: 0; align-items: center; gap: 6px; overflow-wrap: anywhere; color: #365571; font-size: .65rem; font-weight: 750; }
.zone-booking-reference i { flex: 0 0 auto; color: #3780b7; }
.zone-booking-status { display: inline-flex; flex: 0 0 auto; align-items: center; gap: 4px; padding: 5px 7px; border-radius: 99px; background: #e8f8ef; color: #18814d; font-size: .6rem; font-weight: 800; }
.zone-booking-card-main { display: flex; min-width: 0; align-items: center; gap: 10px; padding: 13px 0; }
.zone-booking-participant-icon { display: grid; width: 39px; height: 39px; flex: 0 0 39px; place-items: center; border: 1px solid #d8eaff; border-radius: 50%; background: #edf6ff; color: #187bd0; font-size: .92rem; }
.zone-booking-participant,
.zone-booking-event { display: grid; min-width: 0; flex: 1; gap: 3px; }
.zone-booking-participant > span,
.zone-booking-event > span { color: #8494a3; font-size: .58rem; }
.zone-booking-participant > strong,
.zone-booking-event > strong { overflow-wrap: anywhere; color: #193650; font-size: .73rem; font-weight: 800; line-height: 1.3; }
.zone-booking-participant > small,
.zone-booking-event > small { overflow-wrap: anywhere; color: #75899b; font-size: .62rem; }
.zone-booking-event { flex: 0 1 30%; padding-left: 10px; border-left: 1px solid #e8edf2; }
.zone-booking-card-details { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; padding: 11px 10px; border: 1px solid #eaf0f5; border-radius: 10px; background: #f9fbfd; }
.zone-booking-card-details > div { display: flex; min-width: 0; align-items: flex-start; gap: 7px; }
.zone-booking-card-details > div > i { flex: 0 0 13px; padding-top: 2px; color: #3981b5; font-size: .69rem; text-align: center; }
.zone-booking-card-details > div > span { display: grid; min-width: 0; gap: 3px; }
.zone-booking-card-details small { color: #8192a1; font-size: .57rem; }
.zone-booking-card-details strong { overflow-wrap: anywhere; color: #314e67; font-size: .64rem; font-weight: 700; line-height: 1.35; }
.dashboard-theme .zone-bookings-empty { min-height: 170px; padding: 24px; }
.dashboard-theme .zone-bookings-empty-icon { width: 48px; height: 48px; flex-basis: 48px; border: 1px solid #dcecff; border-radius: 14px; background: #eff7ff; color: #187bd0; }
.dashboard-theme .zone-bookings-empty strong { color: #193650; font-size: .87rem; }
.dashboard-theme .zone-bookings-empty p { color: #75899b; font-size: .72rem; }
.dashboard-theme .zone-footer { margin-top: 0; }
.dashboard-theme .bookingEditModal .modal-content,
.dashboard-theme #bookingEditModal .modal-content { border: 1px solid #dce5ee; border-radius: 15px; box-shadow: 0 16px 48px rgba(14,43,68,.18); }
.dashboard-theme #bookingEditModal .modal-header,
.dashboard-theme #bookingEditModal .modal-footer { border-color: #e5edf3; }
.dashboard-theme #bookingEditModal .modal-title { color: #173550; font-weight: 800; }
.dashboard-theme #bookingEditModal .form-select { min-height: 48px; border-color: #d6e1ea; border-radius: 10px; }
.dashboard-theme #bookingEditModal .modal-footer .btn { min-height: 44px; border-radius: 10px; font-weight: 700; }

@media (min-width: 768px) {
    .dashboard-theme .relay-mobile-header { min-height: 72px; }
}

@media (max-width: 767px) {
    .dashboard-theme .relay-mobile-header { min-height: 60px; padding: 4px 11px; }
    .dashboard-theme .relay-mobile-header .zone-logo-link { width: 120px; height: 50px; }
    .dashboard-theme .relay-mobile-header .zone-menu-toggle { width: 44px; height: 44px; flex-basis: 44px; }
    .dashboard-theme .relay-mobile-header .zone-menu-toggle span { width: 23px; }
    .dashboard-theme .dashboard-event-strip { padding: 15px 13px; }
    .dashboard-theme .dashboard-event-strip-inner { align-items: flex-start; flex-direction: column; gap: 12px; }
    .dashboard-theme .dashboard-event-heading { min-width: 0; }
    .dashboard-theme .dashboard-event-heading > span { margin-bottom: 3px; font-size: .6rem; }
    .dashboard-theme .dashboard-event-heading h1 { font-size: .93rem; }
    .dashboard-theme .dashboard-event-meta { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px 10px; width: 100%; }
    .dashboard-theme .dashboard-event-meta > div { padding-left: 8px; }
    .dashboard-theme .dashboard-event-meta > div:last-child { grid-column: 1 / -1; }
    .dashboard-theme .dashboard-event-meta span { font-size: .57rem; }
    .dashboard-theme .dashboard-event-meta strong { font-size: .65rem; }
    .dashboard-theme .zone-dashboard-content > .container { padding: 19px 13px 30px !important; }
    .dashboard-theme .zone-dashboard-toolbar { align-items: stretch; gap: 13px; margin-bottom: 15px; }
    .dashboard-theme .zone-dashboard-toolbar h2 { font-size: 1.24rem; }
    .dashboard-theme .zone-dashboard-eyebrow { font-size: .67rem; }
    .dashboard-theme .zone-dashboard-username { font-size: .7rem; }
    .dashboard-theme .zone-dashboard-actions { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
    .dashboard-theme .zone-dashboard-action { min-height: 48px; gap: 6px; padding: 0 8px; border-radius: 10px; font-size: .7rem; }
    .dashboard-theme .zone-dashboard-action:last-child { grid-column: 1 / -1; }
    .dashboard-theme .zone-stats-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; margin-bottom: 13px; }
    .dashboard-theme .zone-stat-card:last-child { grid-column: 1 / -1; }
    .dashboard-theme .zone-stat-card { min-height: 86px; gap: 8px; padding: 10px 8px; border-radius: 12px; }
    .dashboard-theme .zone-stat-icon { width: 34px; height: 34px; flex-basis: 34px; border-radius: 10px; font-size: .82rem; }
    .dashboard-theme .zone-stat-copy > span { font-size: .64rem; }
    .dashboard-theme .zone-stat-copy strong { font-size: 1.17rem; }
    .dashboard-theme .zone-stat-copy strong.zone-stat-code { font-size: .86rem; }
    .dashboard-theme .zone-stat-copy small { font-size: .58rem; }
    .dashboard-theme .zone-bookings-panel { border-radius: 13px; }
    .dashboard-theme .zone-bookings-heading { align-items: flex-start; padding: 13px 12px; }
    .dashboard-theme .zone-bookings-heading h3 { font-size: .88rem; }
    .dashboard-theme .zone-bookings-heading p { max-width: 220px; font-size: .64rem; line-height: 1.4; }
    .zone-bookings-heading-actions { flex-direction: column; align-items: flex-end; gap: 2px; }
    .zone-bookings-heading-actions > a { min-height: 36px; padding: 0 5px; font-size: .64rem; }
    .zone-bookings-heading-actions > .zone-schedule-download { min-width: 126px; min-height: 42px; justify-content: center; padding: 0 12px; font-size: .68rem; }
    .dashboard-theme .zone-bookings-count { min-height: 26px; padding: 0 8px; font-size: .65rem; }
    .zone-booking-cards { grid-template-columns: minmax(0,1fr); gap: 9px; padding: 10px; }
    .zone-booking-card { padding: 11px; border-radius: 12px; }
    .zone-booking-card-header { padding-bottom: 9px; }
    .zone-booking-reference { font-size: .61rem; }
    .zone-booking-status { padding: 4px 6px; font-size: .57rem; }
    .zone-booking-card-main { gap: 8px; padding: 10px 0; }
    .zone-booking-participant-icon { width: 35px; height: 35px; flex-basis: 35px; font-size: .82rem; }
    .zone-booking-participant > strong,
    .zone-booking-event > strong { font-size: .68rem; }
    .zone-booking-participant > small,
    .zone-booking-event > small { font-size: .58rem; }
    .zone-booking-card-details { gap: 7px; padding: 9px 8px; }
    .zone-booking-card-details small { font-size: .54rem; }
    .zone-booking-card-details strong { font-size: .6rem; }
    .dashboard-theme .zone-bookings-empty { align-items: flex-start; flex-wrap: wrap; gap: 10px; padding: 15px 12px; }
    .dashboard-theme .zone-bookings-empty > div { flex-basis: calc(100% - 58px); }
    .dashboard-theme .zone-bookings-empty .zone-dashboard-action { width: 100%; }
}

@media (max-width: 360px) {
    .dashboard-theme .zone-dashboard-actions { grid-template-columns: 1fr; }
    .dashboard-theme .zone-dashboard-action:last-child { grid-column: auto; }
    .dashboard-theme .zone-stat-card { gap: 6px; padding: 9px 7px; }
    .dashboard-theme .zone-stat-icon { width: 30px; height: 30px; flex-basis: 30px; }
    .zone-booking-card-details { grid-template-columns: 1fr; }
}
