html {
    font-size: 14px;
}

@media (min-width: 768px) {
    html {
        font-size: 16px;
    }
}

html,
body {
    height: 100%;
    margin: 0;
    scrollbar-width: none;
}

html {
    scrollbar-gutter: stable;
}

html::-webkit-scrollbar,
body::-webkit-scrollbar {
    display: none;
}

body {
    background-color: #ffffff;
    color: #212529;
}

.ts-password-field,
.ts-password-floating {
    position: relative;
}

.ts-password-toggle-input {
    padding-right: 3.25rem;
}

.form-floating > .ts-password-toggle-input.form-control {
    padding-right: 3.25rem;
}

.ts-password-toggle {
    position: absolute;
    right: 0.55rem;
    top: 50%;
    z-index: 5;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.25rem;
    height: 2.25rem;
    padding: 0;
    color: #5f6f80;
    background: transparent;
    border: 0;
    border-radius: 6px;
    transform: translateY(-50%);
}

.ts-password-toggle:hover,
.ts-password-toggle:focus-visible {
    color: #14202b;
    background-color: #eef3f7;
}

.ts-password-toggle:focus-visible {
    outline: 2px solid #0d6efd;
    outline-offset: 2px;
}

.ts-password-toggle-icon {
    width: 1.15rem;
    height: 1.15rem;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.ts-password-toggle-icon-hide,
.ts-password-toggle[aria-pressed="true"] .ts-password-toggle-icon-show {
    display: none;
}

.ts-password-toggle[aria-pressed="true"] .ts-password-toggle-icon-hide {
    display: block;
}

.ts-password-floating .ts-password-toggle {
    top: 1.72rem;
}

.ts-password-caps-warning {
    margin-top: 0.35rem;
    color: #8a5a00;
    font-size: 0.9rem;
    font-weight: 700;
}

.billing-status-banner {
    border: 0;
    border-radius: 8px;
    box-shadow: 0 10px 25px rgba(20, 32, 43, 0.08);
}

.billing-status-pill {
    display: inline-flex;
    align-items: center;
    min-height: 2rem;
    padding: 0.3rem 0.65rem;
    color: #14202b;
    background: rgba(255, 255, 255, 0.72);
    border: 1px solid rgba(20, 32, 43, 0.12);
    border-radius: 999px;
    font-size: 0.86rem;
    font-weight: 700;
    white-space: nowrap;
}

.billing-page {
    max-width: 980px;
    margin: 0 auto;
}

.billing-panel,
.billing-invoice-card {
    padding: 1.5rem;
    background: #fff;
    border: 1px solid #dce4ec;
    border-radius: 8px;
    box-shadow: 0 12px 30px rgba(20, 32, 43, 0.08);
}

.billing-panel h1 {
    margin-bottom: 0.75rem;
    color: #14202b;
    font-size: clamp(2rem, 4vw, 3.3rem);
    line-height: 1.02;
}

.billing-summary-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
    margin: 1.5rem 0;
}

.billing-summary-grid > div {
    padding: 1rem;
    background: #f6f9fc;
    border: 1px solid #e4ebf2;
    border-radius: 8px;
}

.billing-summary-grid span,
.billing-invoice-header span {
    display: block;
    color: #647587;
    font-size: 0.82rem;
    font-weight: 700;
    text-transform: uppercase;
}

.billing-summary-grid strong {
    display: block;
    color: #14202b;
    font-size: 1.15rem;
}

.billing-invoice-list {
    display: grid;
    gap: 1rem;
}

.billing-admin-table {
    background: #fff;
    border: 1px solid #dce4ec;
    border-radius: 8px;
    box-shadow: 0 12px 30px rgba(20, 32, 43, 0.08);
}

.billing-admin-table table {
    margin-bottom: 0;
}

.billing-admin-table th {
    color: #647587;
    font-size: 0.78rem;
    text-transform: uppercase;
}

.billing-account-grid,
.billing-detail-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 1rem;
}

.billing-account-tile {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    min-height: 18rem;
    padding: 1.15rem;
    color: #14202b;
    text-decoration: none;
    background: #fff;
    border: 1px solid #dce4ec;
    border-radius: 8px;
    box-shadow: 0 12px 30px rgba(20, 32, 43, 0.08);
    transition: transform 0.16s ease, box-shadow 0.16s ease, border-color 0.16s ease;
}

.billing-account-tile:hover,
.billing-account-tile:focus-visible {
    color: #14202b;
    border-color: #9fc4ff;
    box-shadow: 0 16px 36px rgba(20, 32, 43, 0.12);
    transform: translateY(-2px);
}

.billing-account-tile:focus-visible {
    outline: 3px solid rgba(13, 110, 253, 0.3);
    outline-offset: 2px;
}

.billing-account-tile h2 {
    margin: 0;
    font-size: 1.35rem;
    line-height: 1.16;
}

.billing-account-tile p {
    margin: -0.55rem 0 0;
    color: #647587;
    overflow-wrap: anywhere;
}

.billing-account-tile__top,
.billing-account-tile__footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    color: #647587;
    font-size: 0.84rem;
    font-weight: 700;
}

.billing-account-tile__footer {
    margin-top: auto;
    padding-top: 0.85rem;
    border-top: 1px solid #e4ebf2;
}

.billing-account-tile__footer span {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.billing-account-tile__footer strong {
    color: #0d6efd;
}

.billing-account-tile__metrics {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.75rem;
    margin: 0;
}

.billing-account-tile__metrics div {
    min-width: 0;
    padding: 0.75rem;
    background: #f6f9fc;
    border: 1px solid #e4ebf2;
    border-radius: 8px;
}

.billing-account-tile__metrics dt {
    color: #647587;
    font-size: 0.72rem;
    font-weight: 800;
    text-transform: uppercase;
}

.billing-account-tile__metrics dd {
    margin: 0.18rem 0 0;
    color: #14202b;
    font-size: 1.03rem;
    font-weight: 800;
    overflow-wrap: anywhere;
}

.billing-status-chip {
    display: inline-flex;
    align-items: center;
    min-height: 1.65rem;
    padding: 0.24rem 0.55rem;
    border-radius: 999px;
    background: #edf4ff;
    color: #0b5ed7;
    font-size: 0.76rem;
    font-weight: 800;
}

.billing-status-chip--active {
    color: #0f6848;
    background: #dff7ea;
}

.billing-status-chip--trialing,
.billing-status-chip--grace {
    color: #7a4d00;
    background: #fff1cc;
}

.billing-status-chip--paused,
.billing-status-chip--pastdue,
.billing-status-chip--needsreview,
.billing-status-chip--canceled {
    color: #9b1c1c;
    background: #ffe1e1;
}

.billing-detail-panel {
    min-width: 0;
    padding: 1.15rem;
    background: #fff;
    border: 1px solid #dce4ec;
    border-radius: 8px;
    box-shadow: 0 12px 30px rgba(20, 32, 43, 0.08);
}

.billing-detail-panel__header {
    margin-bottom: 0.9rem;
}

.billing-detail-panel__header span {
    display: block;
    color: #647587;
    font-size: 0.78rem;
    font-weight: 800;
    text-transform: uppercase;
}

.billing-detail-panel__header h2 {
    margin: 0.15rem 0 0;
    font-size: 1.15rem;
    line-height: 1.2;
}

.billing-property-list {
    display: grid;
    gap: 0.65rem;
    margin: 0;
}

.billing-property-list div,
.billing-mini-list > div {
    min-width: 0;
    padding: 0.72rem;
    background: #f6f9fc;
    border: 1px solid #e4ebf2;
    border-radius: 8px;
}

.billing-property-list dt {
    color: #647587;
    font-size: 0.72rem;
    font-weight: 800;
}

.billing-property-list dd {
    margin: 0.15rem 0 0;
    color: #14202b;
    font-weight: 700;
    overflow-wrap: anywhere;
}

.billing-mini-list {
    display: grid;
    gap: 0.65rem;
}

.billing-mini-list strong,
.billing-mini-list span,
.billing-mini-list small {
    display: block;
    overflow-wrap: anywhere;
}

.billing-mini-list span {
    color: #647587;
    font-size: 0.86rem;
}

.billing-mini-list small {
    color: #4d5d6d;
}

.billing-detail-section {
    margin-bottom: 1.5rem;
}

.billing-detail-section__heading {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    margin-bottom: 0.85rem;
}

.billing-detail-section__heading--split {
    flex-direction: row;
    align-items: end;
    justify-content: space-between;
    gap: 1rem;
}

.billing-detail-section__heading span {
    color: #647587;
    font-size: 0.78rem;
    font-weight: 800;
    text-transform: uppercase;
}

.billing-detail-section__heading h2 {
    margin: 0;
    color: #14202b;
    font-size: 1.25rem;
    line-height: 1.2;
}

.billing-detail-section__heading > strong {
    color: #14202b;
    font-size: 1.35rem;
}

.billing-horizontal-cards,
.billing-timeline-row,
.billing-meta-strip,
.billing-history-row {
    display: grid;
    gap: 1rem;
}

.billing-horizontal-cards {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.billing-timeline-row {
    grid-template-columns: repeat(6, minmax(0, 1fr));
}

.billing-meta-strip {
    grid-template-columns: repeat(4, minmax(260px, 1fr));
}

.billing-history-row {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.billing-horizontal-cards article,
.billing-timeline-row article,
.billing-meta-strip article,
.billing-wide-panel {
    min-width: 0;
    padding: 1.1rem;
    background: #fff;
    border: 1px solid #dce4ec;
    border-radius: 8px;
    box-shadow: 0 12px 30px rgba(20, 32, 43, 0.08);
}

.billing-horizontal-cards span,
.billing-timeline-row span {
    display: block;
    color: #647587;
    font-size: 0.78rem;
    font-weight: 800;
    text-transform: uppercase;
}

.billing-horizontal-cards strong,
.billing-timeline-row strong {
    display: block;
    margin-top: 0.2rem;
    color: #14202b;
    font-size: 1.18rem;
    line-height: 1.15;
    overflow-wrap: anywhere;
}

.billing-horizontal-cards small,
.billing-timeline-row small {
    display: block;
    margin-top: 0.4rem;
    color: #647587;
    font-weight: 700;
    line-height: 1.25;
}

.billing-meta-strip article h3 {
    margin: 0 0 0.8rem;
    color: #14202b;
    font-size: 1.02rem;
}

.billing-readable-list {
    display: grid;
    gap: 0;
    margin: 0;
}

.billing-readable-list div {
    display: grid;
    grid-template-columns: minmax(130px, 0.82fr) minmax(0, 1.18fr);
    gap: 0.85rem;
    padding: 0.68rem 0;
    border-top: 1px solid #e4ebf2;
}

.billing-readable-list div:first-child {
    border-top: 0;
    padding-top: 0;
}

.billing-readable-list dt {
    color: #647587;
    font-size: 0.86rem;
    font-weight: 800;
    line-height: 1.25;
}

.billing-readable-list dt small {
    display: block;
    margin-top: 0.08rem;
    color: #8a99a8;
    font-size: 0.72rem;
    font-weight: 700;
}

.billing-readable-list dd {
    margin: 0;
    color: #14202b;
    font-weight: 750;
    overflow-wrap: anywhere;
}

.billing-horizontal-list {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: minmax(240px, 1fr);
    gap: 0.75rem;
    overflow-x: auto;
    padding-bottom: 0.25rem;
}

.billing-horizontal-list > div {
    min-width: 0;
    padding: 0.85rem;
    background: #f6f9fc;
    border: 1px solid #e4ebf2;
    border-radius: 8px;
}

.billing-horizontal-list strong,
.billing-horizontal-list span,
.billing-horizontal-list small {
    display: block;
    overflow-wrap: anywhere;
}

.billing-horizontal-list span {
    color: #647587;
    font-size: 0.86rem;
    font-weight: 700;
}

.billing-horizontal-list small {
    color: #4d5d6d;
    line-height: 1.3;
}

.billing-record-list {
    display: grid;
    gap: 0.75rem;
}

.billing-record-list__item {
    display: grid;
    grid-template-columns: minmax(190px, 0.45fr) minmax(0, 1fr);
    gap: 1rem;
    padding: 0.95rem;
    background: #f6f9fc;
    border: 1px solid #e4ebf2;
    border-radius: 8px;
}

.billing-record-list__item strong,
.billing-record-list__item span,
.billing-record-list__item p {
    display: block;
    overflow-wrap: anywhere;
}

.billing-record-list__item strong {
    color: #14202b;
    font-size: 1rem;
    line-height: 1.2;
}

.billing-record-list__item span {
    margin-top: 0.25rem;
    color: #647587;
    font-size: 0.86rem;
    font-weight: 700;
}

.billing-record-list__item p {
    margin: 0;
    color: #4d5d6d;
    font-weight: 700;
    line-height: 1.35;
}

.billing-detail-tabs {
    display: grid;
    gap: 1rem;
}

.billing-detail-tabs .nav-tabs {
    gap: 0.35rem;
    border-bottom: 1px solid #dce4ec;
}

.billing-detail-tabs .nav-link {
    color: #647587;
    border-radius: 8px 8px 0 0;
    font-weight: 800;
}

.billing-detail-tabs .nav-link.active {
    color: #14202b;
    background: #fff;
    border-color: #dce4ec #dce4ec #fff;
}

.billing-detail-tab-content {
    padding-top: 0.35rem;
}

.billing-horizontal-cards--summary {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.billing-section-title {
    margin-bottom: 1rem;
}

.billing-section-title span {
    display: block;
    color: #647587;
    font-size: 0.76rem;
    font-weight: 800;
    text-transform: uppercase;
}

.billing-section-title h2 {
    margin: 0.15rem 0 0;
    color: #14202b;
    font-size: 1.18rem;
    line-height: 1.2;
}

.billing-timeline-row--clean article {
    box-shadow: none;
    background: #f6f9fc;
}

.billing-timeline-row--clean small {
    display: none;
}

.billing-system-table,
.billing-history-table {
    table-layout: fixed;
}

.billing-system-table th,
.billing-history-table th {
    color: #647587;
    font-size: 0.78rem;
    text-transform: uppercase;
}

.billing-system-table td,
.billing-history-table td {
    overflow-wrap: anywhere;
    vertical-align: top;
}

.billing-system-table td:first-child {
    width: 34%;
    color: #14202b;
    font-weight: 750;
}

.billing-system-table td:nth-child(2) {
    width: 24%;
    color: #647587;
    font-weight: 750;
}

.billing-history-table td:first-child span {
    display: block;
    color: #647587;
    font-size: 0.86rem;
}

.billing-invoice-header,
.billing-invoice-links {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1rem;
}

.billing-invoice-links {
    justify-content: flex-start;
    margin-top: 1rem;
    margin-bottom: 0;
}

.billing-admin-control-grid {
    display: grid;
    grid-template-columns: 1fr;
    align-items: start;
    gap: 1rem;
}

.billing-admin-control {
    display: grid;
    gap: 1rem;
    min-width: 0;
    max-width: 100%;
    overflow: hidden;
    padding: 1rem;
    background: #f6f9fc;
    border: 1px solid #e4ebf2;
    border-radius: 8px;
}

.billing-admin-control--wide {
    grid-column: span 1;
}

.billing-admin-control--danger {
    background: #fff;
    border-color: rgba(220, 53, 69, 0.28);
}

.billing-admin-control h3 {
    margin: 0;
    color: #14202b;
    font-size: 1rem;
    font-weight: 850;
}

.billing-admin-control p {
    margin: 0.3rem 0 0;
    color: #647587;
    font-weight: 700;
    line-height: 1.3;
}

.billing-admin-actions__note {
    display: grid;
    gap: 0.2rem;
    min-width: 0;
    padding: 0.85rem;
    background: #fff;
    border: 1px solid #dce4ec;
    border-radius: 8px;
}

.billing-admin-actions__note strong,
.billing-admin-actions__note span {
    overflow-wrap: anywhere;
}

.billing-admin-actions__note span {
    color: #647587;
    font-weight: 700;
}

.billing-admin-inline-form {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr));
    align-items: end;
    gap: 0.65rem;
}

.billing-admin-inline-form input[type="number"] {
    max-width: none;
}

.billing-admin-inline-form .form-control,
.billing-admin-control .form-control,
.billing-admin-control .form-select {
    min-width: 0;
    max-width: 100%;
}

.billing-admin-inline-form .btn,
.billing-admin-control > form > .btn {
    width: 100%;
    white-space: normal;
}

.billing-wide-panel,
.billing-horizontal-cards article {
    min-width: 0;
    overflow: hidden;
}

.billing-horizontal-cards strong,
.billing-admin-control h3,
.billing-admin-control p {
    overflow-wrap: anywhere;
}

@media (max-width: 767.98px) {
    .billing-summary-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .billing-horizontal-cards,
    .billing-timeline-row,
    .billing-history-row {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .billing-horizontal-cards--summary {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .billing-meta-strip {
        grid-template-columns: 1fr;
    }

    .billing-admin-control-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 575.98px) {
    .billing-summary-grid {
        grid-template-columns: 1fr;
    }

    .billing-horizontal-cards,
    .billing-timeline-row,
    .billing-history-row {
        grid-template-columns: 1fr;
    }

    .billing-horizontal-cards--summary {
        grid-template-columns: 1fr;
    }

    .billing-readable-list div {
        grid-template-columns: 1fr;
        gap: 0.25rem;
    }

    .billing-record-list__item {
        grid-template-columns: 1fr;
        gap: 0.5rem;
    }

    .billing-detail-section__heading--split {
        align-items: start;
        flex-direction: column;
    }

    .billing-admin-inline-form {
        grid-template-columns: 1fr;
    }
}

body.has-marketing-footer {
    background:
        radial-gradient(circle at 18% 0%, rgba(13, 110, 253, 0.18), transparent 34%),
        radial-gradient(circle at 82% 12%, rgba(9, 188, 138, 0.18), transparent 30%),
        linear-gradient(180deg, #04080d, #050708 58%, #020303);
    overflow-x: clip;
}

.main-navbar .container-fluid,
main > .container,
footer > .container {
    max-width: 1180px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 1.5rem;
    padding-right: 1.5rem;
}

.site-header {
    background-color: #ffffff;
    border-bottom: 1px solid #dfe5eb;
}

.main-navbar {
    padding: 0;
    background-color: #ffffff;
}

.nav-shell {
    min-height: 72px;
}

.nav-logo {
    height: 34px;
    width: auto;
    object-fit: contain;
}

.navbar-brand {
    display: flex;
    align-items: center;
    margin-right: 2rem;
    padding: 0;
}

.main-nav-links {
    align-items: center;
    gap: 0.35rem;
}

.nav-link-modern {
    position: relative;
    padding: 1.55rem 0.75rem !important;
    color: #14202b !important;
    font-size: 0.95rem;
    font-weight: 800;
    letter-spacing: 0.01em;
    text-transform: uppercase;
    text-decoration: none;
    transition: color 0.2s ease;
}

    .nav-link-modern::after {
        content: "";
        position: absolute;
        left: 0.75rem;
        right: 0.75rem;
        bottom: 0;
        height: 4px;
        background: linear-gradient(90deg, #0d6efd, #20c997);
        transform: scaleX(0);
        transform-origin: center;
        transition: transform 0.2s ease;
    }

    .nav-link-modern:hover {
        color: #0d6efd !important;
    }

        .nav-link-modern:hover::after {
            transform: scaleX(1);
        }

.nav-auth {
    display: flex;
    align-items: center;
}

    .nav-auth .navbar-nav {
        align-items: center;
        gap: 0.5rem;
    }

.nav-auth-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 38px;
    padding: 0.55rem 0.9rem !important;
    border-radius: 6px;
    color: #14202b !important;
    font-size: 0.9rem;
    font-weight: 800;
    letter-spacing: 0.01em;
    text-transform: uppercase;
    text-decoration: none;
    transition: all 0.2s ease;
}

    .nav-auth-link:hover {
        color: #ffffff !important;
        background-color: #14202b;
        text-decoration: none;
    }

.nav-auth-primary {
    color: #ffffff !important;
    background-color: #14202b;
}

    .nav-auth-primary:hover {
        color: #ffffff !important;
        background-color: #0d6efd;
    }

.nav-auth-button,
.logout-nav-button {
    border: none;
    background-color: transparent;
}

.nav-profile-link {
    display: inline-flex !important;
    align-items: center;
    color: var(--ts-ink);
    white-space: nowrap;
    overflow-wrap: anywhere;
}

    .nav-auth-button:hover {
        color: #ffffff !important;
        background-color: #14202b;
    }

    .logout-nav-button:focus {
        box-shadow: none;
    }

.custom-toggler {
    border: 1px solid #ccd5df;
    border-radius: 6px;
}

    .custom-toggler:focus {
        box-shadow: none;
    }

.btn:focus,
.btn:active:focus,
.btn-link.nav-link:focus,
.form-control:focus,
.form-check-input:focus {
    box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem #258cfb;
}

.form-floating > .form-control-plaintext::placeholder,
.form-floating > .form-control::placeholder {
    color: var(--bs-secondary-color);
    text-align: end;
}

.form-floating > .form-control-plaintext:focus::placeholder,
.form-floating > .form-control:focus::placeholder {
    text-align: start;
}

.us-state-select {
    position: relative;
}

.us-state-select__button {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    min-height: 40px;
    text-align: left;
    background-color: #ffffff;
}

.us-state-select__button::after {
    content: "";
    width: 0.55rem;
    height: 0.55rem;
    margin-left: 0.75rem;
    border-right: 2px solid #526273;
    border-bottom: 2px solid #526273;
    transform: rotate(45deg) translateY(-2px);
}

.us-state-select__button[aria-expanded="true"]::after {
    transform: rotate(225deg) translateY(-2px);
}

.us-state-select__menu {
    position: absolute;
    z-index: 1050;
    top: calc(100% + 0.35rem);
    left: 0;
    right: 0;
    overflow: hidden;
    border: 1px solid #ccd5df;
    border-radius: 8px;
    background: #ffffff;
    box-shadow: 0 18px 40px rgba(20, 32, 43, 0.16);
}

.us-state-select__search {
    border: 0;
    border-bottom: 1px solid #e1e7ee;
    border-radius: 0;
}

.us-state-select__search:focus {
    box-shadow: inset 0 0 0 0.15rem rgba(37, 140, 251, 0.18);
}

.us-state-select__options {
    max-height: 260px;
    overflow-y: auto;
    padding: 0.35rem;
}

.us-state-select__option {
    display: block;
    width: 100%;
    min-height: 38px;
    padding: 0.45rem 0.65rem;
    border: 0;
    border-radius: 6px;
    background: transparent;
    color: #14202b;
    font: inherit;
    font-weight: 700;
    text-align: left;
}

.us-state-select__option:hover,
.us-state-select__option:focus {
    outline: 0;
    background: #eef6ff;
    color: #0d6efd;
}

.us-state-select__option[aria-selected="true"] {
    background: #e7f7f1;
    color: #0b6b57;
}

.us-state-select__empty {
    padding: 0.85rem 1rem;
    color: #526273;
    font-weight: 700;
}

footer {
    width: 100%;
}

.home-link-footer {
    padding: 1.35rem 0 1.65rem;
    color: #ffffff;
    background:
        radial-gradient(circle at 18% 0%, rgba(13, 110, 253, 0.18), transparent 34%),
        radial-gradient(circle at 82% 12%, rgba(9, 188, 138, 0.18), transparent 30%),
        linear-gradient(180deg, #04080d, #050708 58%, #020303);
}

.home-band-light + .home-link-footer,
.page-band-light + .home-link-footer,
.info-section-light + .home-link-footer {
    border-top: 1px solid rgba(16, 25, 35, 0.08);
}

.home-link-footer-panel {
    position: relative;
    overflow: hidden;
    display: grid;
    grid-template-columns: auto minmax(320px, 1fr);
    align-items: center;
    gap: 2rem;
    padding: 1.35rem 2rem;
    border: 1px solid rgba(255, 255, 255, 0.15);
    border-radius: 8px;
    background:
        radial-gradient(circle at 16% 0%, rgba(13, 110, 253, 0.22), transparent 34%),
        radial-gradient(circle at 86% 20%, rgba(9, 188, 138, 0.18), transparent 34%),
        linear-gradient(135deg, rgba(8, 55, 66, 0.9), rgba(4, 55, 38, 0.84));
    box-shadow: 0 18px 44px rgba(7, 24, 31, 0.20);
}

.home-link-footer-panel::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background:
        linear-gradient(120deg, transparent 0 42%, rgba(255, 255, 255, 0.14) 42.1% 42.25%, transparent 42.35%),
        linear-gradient(60deg, transparent 0 62%, rgba(255, 255, 255, 0.10) 62.1% 62.25%, transparent 62.35%),
        linear-gradient(150deg, transparent 0 74%, rgba(212, 160, 23, 0.18) 74.1% 74.3%, transparent 74.4%);
    opacity: 0.55;
}

.home-link-footer-brand,
.home-link-footer-links {
    position: relative;
    z-index: 1;
}

.home-link-footer-logo {
    display: block;
    width: fit-content;
    margin-bottom: 0.9rem;
    text-decoration: none;
}

.home-link-footer-logo:hover {
    text-decoration: none;
}

.home-link-footer-logo img {
    display: block;
    width: min(190px, 60vw);
    height: auto;
    filter: drop-shadow(0 10px 22px rgba(0, 0, 0, 0.30));
}

.home-link-footer-back {
    display: inline-flex;
    align-items: center;
    gap: 0.55rem;
    min-height: 38px;
    padding: 0.55rem 0.8rem;
    border: 1px solid rgba(255, 255, 255, 0.58);
    color: #ffffff;
    font-size: 0.76rem;
    font-weight: 900;
    text-transform: uppercase;
    text-decoration: none;
}

.home-link-footer-back:hover {
    color: #101923;
    background-color: #ffffff;
    text-decoration: none;
}

.home-link-footer-back span {
    font-size: 1rem;
    line-height: 1;
}

.home-link-footer-links {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    justify-self: end;
    gap: 4rem;
}

.home-link-footer-links h2 {
    margin: 0 0 0.65rem;
    color: #ffffff;
    font-size: 0.78rem;
    font-weight: 900;
    text-transform: uppercase;
}

.home-link-footer-links a {
    display: block;
    width: fit-content;
    margin-bottom: 0.45rem;
    color: rgba(255, 255, 255, 0.84);
    font-size: 0.92rem;
    text-decoration: none;
}

.home-link-footer-links a:hover {
    color: #ffffff;
    text-decoration: underline;
}

.rounded-circle {
    object-fit: cover;
}

.home-band,
.page-band {
    width: 100vw;
    margin-left: calc(50% - 50vw);
}

.home-band-light,
.page-band-light {
    padding: 4rem 0;
/*    background: linear-gradient(135deg, #ffffff, #f5f8f7);*/
}

.home-band-dark,
.page-band-dark {
    padding: 4rem 0;
    color: #ffffff;
    background: linear-gradient(135deg, #171833, #014007 );
}

.live-hero-band,
section.page-band:has(.search-panel) {
    position: relative;
    overflow: hidden;
    padding: 5.25rem 0;
    color: #ffffff;
    background:
        linear-gradient(90deg, rgba(10, 16, 24, 0.92), rgba(10, 22, 20, 0.72) 55%, rgba(10, 16, 24, 0.62)),
        linear-gradient(135deg, rgba(13, 110, 253, 0.28), rgba(32, 201, 151, 0.22)),
        url("../images/liveHeroGenerated.png") center / cover no-repeat;
}

    .live-hero-band::before,
    section.page-band:has(.search-panel)::before {
        content: "";
        position: absolute;
        inset: 0;
        pointer-events: none;
        background:
            repeating-linear-gradient(105deg, rgba(255, 255, 255, 0.08) 0 1px, transparent 1px 58px),
            linear-gradient(180deg, rgba(255, 255, 255, 0.08), transparent 34%, rgba(0, 0, 0, 0.18));
        mix-blend-mode: screen;
        opacity: 0.55;
    }

    .live-hero-band::after,
    section.page-band:has(.search-panel)::after {
        content: "";
        position: absolute;
        left: 0;
        right: 0;
        bottom: 0;
        height: 6px;
        background: linear-gradient(90deg, #0d6efd, #20c997, #ffffff);
    }

    .live-hero-band .container,
    section.page-band:has(.search-panel) .container {
        position: relative;
        z-index: 1;
    }

    .live-hero-band .section-eyebrow,
    section.page-band:has(.search-panel) .section-eyebrow {
        color: #9be7dd;
    }

    .live-hero-band .section-title,
    section.page-band:has(.search-panel) .section-title {
        color: #ffffff;
        text-shadow: 0 2px 18px rgba(0, 0, 0, 0.32);
    }

    .live-hero-band .section-text,
    section.page-band:has(.search-panel) .section-text {
        color: rgba(255, 255, 255, 0.82);
    }

    .live-hero-band .search-panel,
    section.page-band:has(.search-panel) .search-panel {
        border-color: rgba(255, 255, 255, 0.18);
        background: rgba(255, 255, 255, 0.92);
        box-shadow: 0 20px 44px rgba(0, 0, 0, 0.22);
        backdrop-filter: blur(10px);
    }

.home-hero-band {
    position: relative;
    overflow: hidden;
    isolation: isolate;
    min-height: 540px;
    padding: 5.75rem 0;
    color: #ffffff;
    background:
        linear-gradient(90deg, rgba(8, 14, 22, 0.9), rgba(9, 24, 42, 0.76) 45%, rgba(7, 35, 34, 0.84)),
        linear-gradient(135deg, rgba(13, 110, 253, 0.22), rgba(32, 201, 151, 0.16)),
        url("../images/homeHeroGenerated.png") center / cover no-repeat;
}

    .home-hero-band::before {
        content: "";
        position: absolute;
        inset: 0;
        z-index: -1;
        pointer-events: none;
        background:
            repeating-linear-gradient(105deg, rgba(255, 255, 255, 0.08) 0 1px, transparent 1px 64px),
            linear-gradient(180deg, rgba(255, 255, 255, 0.08), transparent 38%, rgba(0, 0, 0, 0.24));
        mix-blend-mode: screen;
        opacity: 0.62;
    }

    .home-hero-band::after {
        content: "";
        position: absolute;
        left: 0;
        right: 0;
        bottom: 0;
        height: 8px;
        background: linear-gradient(90deg, var(--ts-blue, #0d6efd), var(--ts-teal, #20c997), var(--ts-gold, #f2b84b));
    }

    .home-hero-band .container {
        position: relative;
        z-index: 1;
    }

    .home-hero-band .home-eyebrow {
        color: #9be7dd;
    }

    .home-hero-band .home-title {
        color: #ffffff;
        text-shadow: 0 2px 18px rgba(0, 0, 0, 0.32);
    }

    .home-hero-band .home-subtitle {
        color: rgba(255, 255, 255, 0.82);
    }

    .home-hero-band .home-primary-link {
        color: #ffffff;
        background: linear-gradient(135deg, #0d6efd, #09715d);
        box-shadow: 0 16px 34px rgba(0, 0, 0, 0.2);
    }

        .home-hero-band .home-primary-link:hover {
            color: #ffffff;
            background: linear-gradient(135deg, #0753c7, #0b866e);
        }

.home-hero-logo {
    display: block;
    width: min(100%, 620px);
    max-height: 420px;
    margin-right: auto;
    object-fit: contain;
}

@media (max-width: 992px) {
    .home-hero-band {
        min-height: auto;
        padding: 4.5rem 0;
        background-position: 58% center;
    }

    .home-hero-logo {
        width: min(100%, 500px);
        max-height: 350px;
    }
}

@media (max-width: 767px) {
    .organization-site-location-grid-modern,
    .organization-location-detail-layout {
        grid-template-columns: 1fr;
    }

    .organization-site-location-card__actions {
        align-items: flex-start;
    }

    .organization-location-detail-title h1 {
        font-size: 2rem;
    }

    .organization-location-leaflet-map {
        min-height: 0;
        height: clamp(220px, 58vw, 300px);
        max-height: 300px;
    }

    .organization-location-detail-map {
        overflow: hidden;
    }

    .location-management-summary,
    .location-management-toolbar {
        grid-template-columns: 1fr;
    }

    .location-hours-row {
        grid-template-columns: 1fr;
    }
}

@media (min-width: 768px) and (max-width: 1099px) {
    .organization-location-detail-layout {
        grid-template-columns: 1fr;
        gap: 1.4rem;
    }

    .organization-location-detail-map {
        order: -1;
    }
}

@media (max-width: 767px) {
    .home-hero-band {
        padding: 3.4rem 0;
        background-position: 64% center;
    }

    .home-hero-logo {
        width: min(100%, 360px);
        max-height: 260px;
        margin-top: 0.5rem;
    }
}

.home-eyebrow,
.home-eyebrow-light,
.section-eyebrow,
.section-eyebrow-light {
    margin-bottom: 0.75rem;
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.home-eyebrow,
.section-eyebrow {
    color: #0d6efd;
}

.home-eyebrow-light,
.section-eyebrow-light {
    color: #9be7dd;
}

.home-title,
.section-title {
    max-width: 680px;
    color: #14202b;
    font-size: 2.65rem;
    font-weight: 800;
    line-height: 1.15;
    letter-spacing: -0.015em;
}

.home-subtitle,
.section-text {
    max-width: 620px;
    color: #5f6b7a;
    font-size: 1.05rem;
    line-height: 1.75;
}

.home-primary-link,
.action-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    padding: 0.8rem 1.2rem;
    border: none;
    border-radius: 8px;
    color: #ffffff;
    background-color: #14202b;
    font-weight: 700;
    text-decoration: none;
    transition: all 0.2s ease;
}

    .home-primary-link:hover,
    .action-button:hover {
        color: #ffffff;
        background-color: #0d6efd;
        text-decoration: none;
        transform: translateY(-1px);
    }

.home-section-header,
.section-header {
    max-width: 760px;
    margin: 0 auto 2.25rem;
}

    .section-header:not(.text-center) {
        margin-left: 0;
        margin-right: 0;
    }

    .home-section-header h2,
    .home-band-light h2,
    .home-band-dark h2,
    .section-header h2,
    .page-band-light h2,
    .page-band-dark h2 {
        font-size: 2rem;
        font-weight: 800;
        line-height: 1.2;
        letter-spacing: -0.015em;
    }

    .home-section-header h2,
    .home-band-light h2,
    .page-band-light h2,
    .section-title {
        color: #14202b;
    }

.home-band-dark h2,
.page-band-dark h2 {
    color: #ffffff;
}

.home-section-header p,
.home-band-light p,
.page-band-light p,
.section-header p {
    color: #5f6b7a;
    font-size: 1rem;
    line-height: 1.7;
}

.home-band-dark p,
.page-band-dark p {
    color: rgba(255, 255, 255, 0.78);
    font-size: 1rem;
    line-height: 1.7;
}

.home-info-card,
.content-card,
.game-card,
.empty-card,
.search-panel {
    border: 1px solid rgba(15, 47, 69, 0.08);
    border-radius: 18px;
    background: #ffffff;
    box-shadow: 0 10px 26px rgba(13, 47, 69, 0.06);
}

.home-info-card,
.content-card,
.game-card,
.empty-card {
    height: 100%;
    padding: 1.45rem;
}

.home-info-card {
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

    .home-info-card:hover {
        transform: translateY(-3px);
        box-shadow: 0 14px 34px rgba(13, 47, 69, 0.1);
    }

    .home-info-card h3,
    .content-card h3,
    .game-card h3,
    .empty-card h3 {
        color: #14202b;
        font-size: 1.08rem;
        font-weight: 800;
        letter-spacing: -0.01em;
    }

    .home-info-card p,
    .content-card p,
    .game-card p,
    .empty-card p {
        margin-bottom: 0;
        color: #5f6b7a;
        line-height: 1.7;
    }

.home-final-text {
    max-width: 760px;
    margin-left: auto;
    margin-right: auto;
}

.home-band-light .custom-card,
.home-band-dark .custom-card {
    border-radius: 18px;
    background: #ffffff;
}

    .home-band-dark .custom-card .card-title {
        color: #14202b;
    }

    .home-band-dark .custom-card .card-text {
        color: #5f6b7a;
    }

.card-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.5rem;
}

.link-card {
    display: block;
    color: inherit;
    text-decoration: none;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

    .link-card:hover {
        color: inherit;
        text-decoration: none;
        transform: translateY(-3px);
        box-shadow: 0 14px 34px rgba(13, 47, 69, 0.1);
    }

.search-panel {
    padding: 1rem;
}

.search-form {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.search-input {
    flex: 1;
    min-height: 48px;
    padding: 0.75rem 0.9rem;
    border: 1px solid #d9e2ea;
    border-radius: 10px;
    color: #14202b;
    background-color: #ffffff;
}

    .search-input:focus {
        outline: none;
        border-color: #20c997;
        box-shadow: 0 0 0 0.2rem rgba(32, 201, 151, 0.16);
    }

.secondary-link,
.back-link {
    display: inline-flex;
    align-items: center;
    color: #14202b;
    font-weight: 700;
    text-decoration: none;
}

    .secondary-link:hover,
    .back-link:hover {
        color: #0d6efd;
        text-decoration: none;
    }

.back-link {
    margin-bottom: 1.25rem;
}

.game-card-top {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    color: #5f6b7a;
    font-size: 0.9rem;
}

.status-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.35rem 0.75rem;
    border-radius: 999px;
    color: #0b2a25;
    background-color: #d1f7e6;
    font-size: 0.78rem;
    font-weight: 800;
}

.matchup-list {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    margin-top: 1rem;
}

    .matchup-list div {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 1rem;
    }

    .matchup-list a,
    .matchup-list span {
        color: #14202b;
        font-weight: 800;
        text-decoration: none;
    }

        .matchup-list a:hover {
            color: #0d6efd;
            text-decoration: none;
        }

    .matchup-list strong {
        min-width: 38px;
        text-align: right;
        color: #0b2a25;
        font-size: 1.45rem;
        font-weight: 800;
    }

.game-info {
    margin-top: 1rem;
    padding-top: 0.85rem;
    border-top: 1px solid rgba(15, 47, 69, 0.08);
}

    .game-info p {
        margin-bottom: 0.25rem;
        color: #5f6b7a;
        font-size: 0.95rem;
    }

.tile-section {
    margin-top: 0.75rem;
    padding: 2rem 1.25rem 2.5rem;
    border-radius: 24px;
    background: radial-gradient(circle at 20% 30%, rgba(31, 122, 224, 0.12), transparent 60%), radial-gradient(circle at 80% 70%, rgba(32, 201, 151, 0.12), transparent 60%), #ffffff;
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.6);
}

.custom-card {
    transition: transform 0.25s ease, box-shadow 0.25s ease;
    border-radius: 12px;
    background: linear-gradient(135deg, #ffffff, #f8fafc);
}

    .custom-card:hover {
        transform: translateY(-6px);
        box-shadow: 0 12px 30px rgba(0, 0, 0, 0.1);
    }

.card-title {
    font-weight: 600;
}

.card-text {
    color: #6c757d;
}

.dashboard-header {
    padding-bottom: 0.5rem;
    border-bottom: 1px solid rgba(0, 0, 0, 0.06);
}

.dashboard-role-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.55rem 1rem;
    border-radius: 999px;
    font-weight: 600;
    color: #fff;
    background: linear-gradient(135deg, #0d6efd, #20c997);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
}

.dashboard-subnav {
    padding: 1rem 1.25rem;
    border-radius: 22px;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.04);
}

.dashboard-tab {
    padding: 0.7rem 1.2rem;
    border-radius: 14px;
    font-weight: 500;
    border: 1px solid transparent;
    background-color: rgba(255, 255, 255, 0.88);
    transition: all 0.25s ease;
    text-decoration: none;
}

    .dashboard-tab:hover {
        transform: translateY(-2px);
        background-color: #ffffff;
    }

    .dashboard-tab.active {
        color: #ffffff !important;
        border-color: transparent;
    }

.theme-default {
    background: radial-gradient(circle at top left, rgba(13, 110, 253, 0.06), transparent 55%), radial-gradient(circle at bottom right, rgba(32, 201, 151, 0.06), transparent 55%), #ffffff;
}

    .theme-default .dashboard-tab {
        color: #5f6b7a;
        border-color: rgba(95, 107, 122, 0.22);
    }

        .theme-default .dashboard-tab.active {
            background: linear-gradient(135deg, #9db8d6, #a8d7cb);
            box-shadow: 0 10px 22px rgba(120, 160, 180, 0.18);
        }

.theme-admin {
    background: radial-gradient(circle at top left, rgba(168, 208, 255, 0.26), transparent 55%), radial-gradient(circle at bottom right, rgba(192, 236, 244, 0.28), transparent 55%), linear-gradient(135deg, #f8fbff, #f5fcff);
}

    .theme-admin .dashboard-tab {
        color: #5c86b3;
        border-color: rgba(92, 134, 179, 0.28);
    }

        .theme-admin .dashboard-tab:hover {
            background-color: #e8f3ff;
            border-color: #9ec5fe;
            box-shadow: 0 8px 18px rgba(92, 134, 179, 0.12);
        }

        .theme-admin .dashboard-tab.active {
            background: linear-gradient(135deg, #9ec5fe, #8ee3da);
            box-shadow: 0 10px 22px rgba(142, 227, 218, 0.24);
        }

.theme-coach {
    background: radial-gradient(circle at top left, rgba(186, 230, 201, 0.28), transparent 55%), radial-gradient(circle at bottom right, rgba(213, 244, 220, 0.30), transparent 55%), linear-gradient(135deg, #f9fff9, #f6fff8);
}

    .theme-coach .dashboard-tab {
        color: #67977a;
        border-color: rgba(103, 151, 122, 0.28);
    }

        .theme-coach .dashboard-tab:hover {
            background-color: #eaf8ef;
            border-color: #a7e3be;
            box-shadow: 0 8px 18px rgba(103, 151, 122, 0.12);
        }

        .theme-coach .dashboard-tab.active {
            background: linear-gradient(135deg, #a7e3be, #97e6cf);
            box-shadow: 0 10px 22px rgba(151, 230, 207, 0.24);
        }

.theme-parent {
    background: radial-gradient(circle at top left, rgba(198, 214, 229, 0.30), transparent 55%), radial-gradient(circle at bottom right, rgba(220, 232, 240, 0.30), transparent 55%), linear-gradient(135deg, #fbfcfe, #f7fafc);
}

    .theme-parent .dashboard-tab {
        color: #6f8798;
        border-color: rgba(111, 135, 152, 0.28);
    }

        .theme-parent .dashboard-tab:hover {
            background-color: #eef4f8;
            border-color: #b8cddd;
            box-shadow: 0 8px 18px rgba(111, 135, 152, 0.12);
        }

        .theme-parent .dashboard-tab.active {
            background: linear-gradient(135deg, #b8cddd, #9fbfd3);
            box-shadow: 0 10px 22px rgba(159, 191, 211, 0.24);
        }

.theme-player {
    background: radial-gradient(circle at top left, rgba(255, 221, 189, 0.30), transparent 55%), radial-gradient(circle at bottom right, rgba(255, 238, 196, 0.30), transparent 55%), linear-gradient(135deg, #fffdf9, #fffaf5);
}

    .theme-player .dashboard-tab {
        color: #b48a62;
        border-color: rgba(180, 138, 98, 0.28);
    }

        .theme-player .dashboard-tab:hover {
            background-color: #fff4e8;
            border-color: #f7c9a3;
            box-shadow: 0 8px 18px rgba(180, 138, 98, 0.12);
        }

        .theme-player .dashboard-tab.active {
            background: linear-gradient(135deg, #f7c9a3, #f6dfa0);
            box-shadow: 0 10px 22px rgba(246, 223, 160, 0.24);
        }

.stat-card {
    border-radius: 18px;
    background: linear-gradient(135deg, #ffffff, #f8fbff);
}

.stat-label {
    font-size: 0.9rem;
    font-weight: 600;
    color: #6c757d;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.stat-value {
    font-size: 2rem;
    font-weight: 700;
    color: #212529;
}

.dashboard-panel {
    border-radius: 18px;
    background: linear-gradient(135deg, #ffffff, #fbfcff);
}

.dashboard-list .list-group-item {
    padding-left: 0;
    padding-right: 0;
    background: transparent;
    border-color: rgba(0, 0, 0, 0.06);
    font-weight: 500;
}

.about-hero {
    margin-top: 0.5rem;
    margin-bottom: 1.5rem;
}

.about-intro {
    padding: 2.25rem;
    border-radius: 24px;
    background: radial-gradient(circle at 20% 30%, rgba(31, 122, 224, 0.10), transparent 60%), radial-gradient(circle at 80% 70%, rgba(32, 201, 151, 0.12), transparent 60%), linear-gradient(135deg, #ffffff, #f8fbff);
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.05);
}

    .about-intro h1 {
        font-weight: 700;
    }

.about-feature-strip {
    margin-bottom: 2rem;
}

.feature-pill {
    padding: 1.5rem;
    border-radius: 20px;
    background: linear-gradient(135deg, rgba(13, 110, 253, 0.08), rgba(32, 201, 151, 0.10));
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.04);
    transition: transform 0.25s ease, box-shadow 0.25s ease;
}

    .feature-pill:hover {
        transform: translateY(-4px);
        box-shadow: 0 10px 24px rgba(0, 0, 0, 0.08);
    }

    .feature-pill h5 {
        font-weight: 600;
    }

    .feature-pill p {
        color: #6c757d;
    }

.developer-section {
    margin-bottom: 2rem;
    padding: 2rem 1.25rem 2.5rem;
    border-radius: 24px;
    background: radial-gradient(circle at 20% 30%, rgba(31, 122, 224, 0.12), transparent 60%), radial-gradient(circle at 80% 70%, rgba(32, 201, 151, 0.12), transparent 60%), #ffffff;
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.6);
}

.developer-card {
    transition: transform 0.25s ease, box-shadow 0.25s ease;
    border-radius: 16px;
    background: linear-gradient(135deg, #ffffff, #f8fafc);
}

    .developer-card:hover {
        transform: translateY(-6px);
        box-shadow: 0 12px 30px rgba(0, 0, 0, 0.1);
    }

.developer-photo {
    width: 150px;
    height: 150px;
    object-fit: cover;
}

input:-webkit-autofill,
input:-webkit-autofill:hover,
input:-webkit-autofill:focus,
textarea:-webkit-autofill,
select:-webkit-autofill {
    -webkit-box-shadow: 0 0 0 1000px #ffffff inset !important;
    box-shadow: 0 0 0 1000px #ffffff inset !important;
    -webkit-text-fill-color: #212529 !important;
    transition: background-color 5000s ease-in-out 0s;
}

.sortable-header {
    cursor: pointer;
    user-select: none;
}

.team-admin-summary {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
    margin: 0 0 1.5rem;
}

.team-admin-summary article {
    padding: 1rem 1.15rem;
    border: 1px solid rgba(16, 25, 35, 0.10);
    border-radius: 8px;
    background: #ffffff;
    box-shadow: 0 12px 32px rgba(16, 25, 35, 0.06);
}

.team-admin-summary span,
.team-organization-label {
    color: var(--ts-muted);
    font-size: 0.78rem;
    font-weight: 900;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.team-admin-summary strong {
    display: block;
    margin-top: 0.25rem;
    color: var(--ts-ink);
    font-size: 2rem;
    line-height: 1;
}

.team-admin-summary p {
    margin: 0.45rem 0 0;
    color: var(--ts-muted);
    font-size: 0.9rem;
}

.team-scope-badge {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    padding: 0.28rem 0.65rem;
    border: 1px solid transparent;
    border-radius: 999px;
    font-size: 0.76rem;
    font-weight: 900;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    white-space: nowrap;
}

.team-scope-badge--organization {
    border-color: rgba(13, 110, 253, 0.20);
    color: #0753c7;
    background: rgba(13, 110, 253, 0.10);
}

.team-scope-badge--standalone {
    border-color: rgba(212, 160, 23, 0.24);
    color: #745400;
    background: rgba(212, 160, 23, 0.14);
}

.team-organization-label--standalone {
    color: #745400;
}

.card-link-wrapper {
    display: flex;
    width: 100%;
    height: 100%;
    text-decoration: none;
    color: inherit;
}

    .card-link-wrapper:hover {
        text-decoration: none;
        color: inherit;
    }

    .card-link-wrapper .developer-card {
        cursor: pointer;
    }

.info-section .row.g-4 > [class*="col-"] {
    display: flex;
}

@media (max-width: 992px) {
    .card-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .search-form {
        flex-wrap: wrap;
    }

    .home-link-footer-panel {
        padding: 1.25rem 1.5rem;
    }

    .home-link-footer-links {
        gap: 2.25rem;
    }
}

@media (max-width: 767px) {
    .main-navbar .container-fluid,
    main > .container,
    footer > .container {
        padding-left: 1rem;
        padding-right: 1rem;
    }

    .nav-shell {
        min-height: auto;
        padding-top: 1rem;
        padding-bottom: 1rem;
    }

    .navbar-brand {
        margin-right: 0;
    }

    .main-nav-links {
        align-items: stretch;
        gap: 0;
        margin-top: 1rem;
    }

    .nav-link-modern {
        padding: 0.9rem 0 !important;
    }

        .nav-link-modern::after {
            left: 0;
            right: auto;
            width: 40px;
        }

    .nav-auth {
        margin-top: 0.75rem;
    }

        .nav-auth .navbar-nav {
            align-items: stretch;
            width: 100%;
        }

    .nav-auth-link {
        justify-content: flex-start;
        width: 100%;
        padding-left: 0 !important;
    }

        .nav-auth-link:hover {
            padding-left: 0.75rem !important;
        }

    .home-band-light,
    .home-band-dark,
    .page-band-light,
    .page-band-dark {
        padding: 3rem 0;
    }

    .home-title,
    .section-title {
        font-size: 2.15rem;
    }

    .home-section-header h2,
    .home-band-light h2,
    .home-band-dark h2,
    .section-header h2,
    .page-band-light h2,
    .page-band-dark h2 {
        font-size: 1.75rem;
    }

    .card-grid {
        grid-template-columns: 1fr;
    }

    .team-admin-summary {
        grid-template-columns: 1fr;
    }

    .search-form {
        flex-direction: column;
        align-items: stretch;
    }

    .action-button,
    .secondary-link {
        width: 100%;
        justify-content: center;
    }

    .about-intro,
    .developer-section,
    .tile-section {
        padding-left: 1rem;
        padding-right: 1rem;
    }

    .developer-photo {
        width: 120px;
        height: 120px;
    }

    .home-link-footer {
        padding-top: 1rem;
    }

    .home-link-footer-panel {
        grid-template-columns: 1fr;
        gap: 1.35rem;
        padding: 1.35rem 1.25rem;
    }

    .home-link-footer-links {
        grid-template-columns: 1fr;
        justify-self: stretch;
        gap: 1.5rem;
    }
}

/* Identity account management */
.identity-manage-header {
    margin-top: 1.5rem;
    margin-bottom: 1.5rem;
    padding: 2rem;
    border: 1px solid var(--ts-line);
    border-radius: var(--ts-radius);
    background:
        linear-gradient(135deg, rgba(255, 255, 255, 0.98), rgba(244, 248, 250, 0.94)),
        repeating-linear-gradient(115deg, rgba(16, 25, 35, 0.035) 0 1px, transparent 1px 60px);
    box-shadow: var(--ts-shadow-soft);
}

.identity-manage-header h1 {
    margin-bottom: 0.45rem;
    color: var(--ts-ink);
    font-size: clamp(2.1rem, 4vw, 3.4rem);
    font-weight: 900;
    line-height: 1.05;
}

.identity-manage-header p:last-child {
    max-width: 720px;
    margin-bottom: 0;
    color: var(--ts-muted);
    font-size: 1.05rem;
}

.identity-manage-shell {
    padding: 1.25rem;
    border: 1px solid var(--ts-line);
    border-radius: var(--ts-radius);
    background:
        linear-gradient(135deg, #ffffff, #f6f9fa),
        repeating-linear-gradient(115deg, rgba(16, 25, 35, 0.03) 0 1px, transparent 1px 64px);
    box-shadow: var(--ts-shadow-soft);
}

.identity-manage-shell .nav-pills {
    gap: 0.5rem;
    padding: 0.75rem;
    border-radius: var(--ts-radius);
    background:
        linear-gradient(135deg, #101923, #063f1f),
        repeating-linear-gradient(115deg, rgba(255, 255, 255, 0.055) 0 1px, transparent 1px 64px);
}

.identity-manage-shell .nav-pills .nav-link {
    min-height: 42px;
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 6px;
    color: rgba(255, 255, 255, 0.86);
    font-weight: 800;
}

.identity-manage-shell .nav-pills .nav-link:hover,
.identity-manage-shell .nav-pills .nav-link:focus {
    color: #ffffff;
    background: rgba(255, 255, 255, 0.14);
}

.identity-manage-shell .nav-pills .nav-link.active {
    color: var(--ts-ink);
    border-color: rgba(255, 255, 255, 0.72);
    background: linear-gradient(135deg, #ffffff, #dff7ee);
    box-shadow: 0 10px 24px rgba(0, 0, 0, 0.14);
}

.identity-manage-panel {
    padding: 1.5rem;
    border: 1px solid var(--ts-line);
    border-radius: var(--ts-radius);
    background: rgba(255, 255, 255, 0.96);
}

.identity-manage-panel h3,
.identity-manage-panel h4 {
    margin-bottom: 1rem;
    color: var(--ts-ink);
    font-weight: 900;
}

.identity-manage-panel form {
    max-width: 680px;
}

.identity-manage-panel .form-floating {
    max-width: 420px;
}

.identity-manage-panel .form-floating > .form-control {
    min-height: 58px;
    padding: 1.6rem 0.9rem 0.55rem;
    line-height: 1.25;
}

.identity-manage-panel .form-floating > label {
    display: flex;
    align-items: center;
    height: 58px;
    padding: 0.95rem 0.9rem;
    color: var(--ts-muted);
    font-weight: 700;
    opacity: 1;
}

.identity-manage-panel .form-floating > .form-control::placeholder {
    color: transparent;
}

.identity-manage-panel .form-floating > .form-control:focus::placeholder {
    color: transparent;
}

.identity-manage-panel .form-floating > .form-control:focus ~ label,
.identity-manage-panel .form-floating > .form-control:not(:placeholder-shown) ~ label {
    transform: scale(0.82) translateY(-0.62rem) translateX(0.12rem);
}

.identity-manage-panel .btn-lg {
    min-height: 50px;
    font-size: 1rem;
    font-weight: 800;
}

.register-page-shell {
    display: flex;
    align-items: center;
    min-height: 80vh;
    padding: 2.5rem 0;
}

.register-card {
    border: 1px solid var(--ts-line);
    border-radius: 8px;
    background: #ffffff;
    box-shadow: var(--ts-shadow);
}

.register-card__body {
    padding: clamp(1.5rem, 4vw, 3rem);
}

.register-intent-panel {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1rem;
    padding: 1rem;
    border: 1px solid rgba(13, 110, 253, 0.18);
    border-radius: 8px;
    background: linear-gradient(180deg, #f8fbff 0%, #f4f8fb 100%);
}

.register-intent-panel span {
    display: block;
    color: var(--ts-muted);
    font-size: 0.76rem;
    font-weight: 900;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.register-intent-panel strong {
    display: block;
    color: var(--ts-ink);
    font-size: 1.08rem;
    font-weight: 900;
}

.register-intent-panel p {
    margin: 0.15rem 0 0;
    color: var(--ts-muted);
    font-weight: 700;
    line-height: 1.45;
}

.register-flow-modal .modal-content {
    position: relative;
    border: 1px solid rgba(16, 25, 35, 0.12) !important;
    border-radius: 8px !important;
    background: #ffffff;
    box-shadow: 0 30px 80px rgba(16, 25, 35, 0.24) !important;
    overflow: hidden;
}

.register-flow-close {
    position: absolute;
    top: 0.85rem;
    right: 0.85rem;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.25rem;
    height: 2.25rem;
    padding: 0;
    border: 1px solid rgba(16, 25, 35, 0.1);
    border-radius: 999px;
    color: var(--ts-muted);
    background: #ffffff;
    font-size: 1.45rem;
    font-weight: 800;
    line-height: 1;
}

.register-flow-close:hover,
.register-flow-close:focus-visible {
    color: var(--ts-ink);
    background: #f3f7f9;
}

.register-flow-close:focus-visible {
    outline: 3px solid rgba(13, 110, 253, 0.22);
    outline-offset: 2px;
}

.register-flow-modal .modal-body {
    padding: clamp(1.25rem, 4vw, 2rem);
}

.register-flow-step {
    display: none;
    opacity: 0;
    transform: translateY(8px);
}

.register-flow-step.is-active {
    display: grid;
    gap: 1.25rem;
    opacity: 1;
    transform: translateY(0);
    animation: registerFlowIn 0.22s ease both;
}

.register-flow-heading {
    text-align: center;
}

.register-flow-heading span {
    color: var(--ts-muted);
    font-size: 0.76rem;
    font-weight: 900;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.register-flow-heading h2 {
    margin: 0.25rem 0 0;
    color: var(--ts-ink);
    font-size: clamp(1.65rem, 3vw, 2.35rem);
    font-weight: 900;
}

.register-flow-heading p {
    max-width: 620px;
    margin: 0.5rem auto 0;
    color: var(--ts-muted);
    font-weight: 750;
    line-height: 1.6;
}

.register-purpose-grid {
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
    max-width: 620px;
    width: 100%;
    margin: 0 auto;
}

.register-purpose-card {
    display: grid;
    gap: 0.25rem;
    min-height: 112px;
    padding: 1rem;
    border: 1px solid var(--ts-line);
    border-radius: 8px;
    background: #ffffff;
    color: var(--ts-ink);
    text-align: left;
    box-shadow: var(--ts-shadow-soft);
    transition: transform 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease, background 0.18s ease;
}

.register-purpose-card:hover,
.register-purpose-card:focus,
.register-purpose-card.is-selected {
    border-color: rgba(15, 118, 95, 0.42);
    background: #f7fbfa;
    box-shadow: var(--ts-shadow);
    transform: translateY(-2px);
}

.register-purpose-card span {
    color: var(--ts-muted);
    font-size: 0.74rem;
    font-weight: 900;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.register-purpose-card strong {
    font-size: 1.08rem;
    font-weight: 900;
}

.register-purpose-card p {
    margin: 0;
    color: var(--ts-muted);
    font-weight: 700;
    line-height: 1.45;
}

.register-detail-panel {
    max-width: 560px;
    width: 100%;
    margin: 0 auto;
    padding: 1.1rem;
    border: 1px solid var(--ts-line);
    border-radius: 8px;
    background: #f8fbfc;
}

.register-detail-panel .form-label {
    color: var(--ts-ink);
    font-weight: 900;
}

.register-detail-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(150px, 190px);
    gap: 0.85rem;
}

.register-detail-grid--compact {
    margin-top: 0.85rem;
}

.register-detail-grid label {
    display: grid;
    gap: 0.35rem;
}

.register-detail-grid span {
    color: var(--ts-ink);
    font-weight: 900;
}

.register-detail-panel p {
    margin: 0.55rem 0 0;
    color: var(--ts-muted);
    font-weight: 700;
}

.register-code-input {
    font-weight: 900;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.register-join-role-toggle {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.5rem;
    margin-top: 0.75rem;
}

.register-join-role-toggle button {
    min-height: 42px;
    border: 1px solid var(--ts-line);
    border-radius: 6px;
    background: #ffffff;
    color: var(--ts-ink);
    font-weight: 900;
}

.register-join-role-toggle button.is-selected,
.register-join-role-toggle button:hover,
.register-join-role-toggle button:focus {
    border-color: rgba(15, 118, 95, 0.42);
    background: #eaf7f2;
}

.register-parent-child-panel {
    margin-top: 0.95rem;
    padding-top: 0.95rem;
    border-top: 1px solid var(--ts-line);
}

.register-flow-soft-note {
    display: grid;
    gap: 0.25rem;
    text-align: center;
}

.register-flow-soft-note strong {
    color: var(--ts-ink);
    font-size: 1.08rem;
    font-weight: 900;
}

.register-flow-soft-note span {
    color: var(--ts-muted);
    font-weight: 750;
}

.register-flow-actions {
    display: flex;
    justify-content: center;
    gap: 0.75rem;
}

.user-onboarding-cell {
    display: grid;
    gap: 0.15rem;
}

.user-onboarding-cell strong {
    color: var(--ts-ink);
    font-weight: 900;
}

.user-onboarding-cell span {
    color: var(--ts-muted);
    font-size: 0.86rem;
    font-weight: 700;
}

.coach-dashboard-team-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem;
    align-items: center;
    margin-top: 0.85rem;
}

.coach-dashboard-team-meta span,
.coach-dashboard-team-meta strong {
    display: inline-flex;
    align-items: center;
    min-height: 34px;
    padding: 0.4rem 0.65rem;
    border: 1px solid var(--ts-line);
    border-radius: 6px;
    background: #ffffff;
    color: var(--ts-ink);
    font-weight: 900;
}

.coach-dashboard-team-meta span {
    color: var(--ts-muted);
    font-size: 0.82rem;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.coach-dashboard-team-meta a {
    color: var(--ts-blue);
    font-weight: 900;
    text-decoration: none;
}

.coach-team-settings-grid {
    display: grid;
    grid-template-columns: minmax(260px, 340px) minmax(0, 1fr);
    gap: 1rem;
    align-items: start;
}

.coach-team-code-panel {
    display: grid;
    gap: 0.75rem;
    padding: 1.25rem;
}

.coach-team-code-panel span {
    color: var(--ts-muted);
    font-size: 0.76rem;
    font-weight: 900;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.coach-team-code-panel strong {
    color: var(--ts-ink);
    font-size: clamp(2rem, 4vw, 2.8rem);
    font-weight: 900;
    letter-spacing: 0.05em;
}

.coach-team-code-panel p {
    margin: 0;
    color: var(--ts-muted);
    font-weight: 700;
    line-height: 1.55;
}

.team-join-code-display {
    display: inline-flex;
    align-items: center;
    gap: 0.55rem;
    min-height: 38px;
    padding: 0.45rem 0.75rem;
    border: 1px solid rgba(13, 110, 253, 0.18);
    border-radius: 6px;
    background: rgba(13, 110, 253, 0.06);
    color: var(--ts-ink);
}

.team-join-code-display span {
    color: var(--ts-muted);
    font-size: 0.78rem;
    font-weight: 900;
    text-transform: uppercase;
}

.team-join-code-display strong {
    font-size: 0.98rem;
    letter-spacing: 0.04em;
}

.coach-team-settings-form {
    padding: 1.25rem;
}

.team-request-panel {
    padding: 1rem;
}

.team-request-child {
    display: grid;
    gap: 0.15rem;
}

.team-request-child strong {
    color: var(--ts-ink);
    font-weight: 900;
}

.team-request-child span {
    color: var(--ts-muted);
    font-size: 0.86rem;
    font-weight: 700;
}

.team-request-action-form {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
}

.team-request-player-select {
    width: min(260px, 38vw);
}

.coach-assignment-panel {
    padding: 1rem;
    border: 1px solid var(--ts-line);
    border-radius: 8px;
    background: #f8fbfc;
}

.coach-assignment-list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 0.65rem;
}

.coach-assignment-item {
    display: flex;
    align-items: center;
    gap: 0.7rem;
    min-height: 58px;
    padding: 0.75rem;
    border: 1px solid var(--ts-line);
    border-radius: 8px;
    background: #ffffff;
    cursor: pointer;
}

.coach-assignment-item input {
    width: 1rem;
    height: 1rem;
}

.coach-assignment-item span {
    display: grid;
    gap: 0.1rem;
}

.coach-assignment-item strong {
    color: var(--ts-ink);
    font-weight: 900;
}

.coach-assignment-item small {
    color: var(--ts-muted);
    font-weight: 700;
}

.player-profile-panel {
    max-width: 860px;
    padding: 1.25rem;
}

.player-profile-roster-note {
    display: grid;
    gap: 0.15rem;
    margin-top: 1.25rem;
    padding: 0.85rem;
    border: 1px solid var(--ts-line);
    border-radius: 8px;
    background: #f8fbfc;
}

.player-profile-roster-note strong {
    color: var(--ts-ink);
    font-weight: 900;
}

.player-profile-roster-note span {
    color: var(--ts-muted);
    font-weight: 700;
}

@keyframes registerFlowIn {
    from {
        opacity: 0;
        transform: translateY(8px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.personal-data-action {
    margin-top: 0.8rem;
    margin-bottom: 0;
}

.personal-data-action + .personal-data-action {
    margin-top: 0.95rem;
}

@media (max-width: 767px) {
    .register-page-shell {
        align-items: flex-start;
        padding: 1rem 0;
    }

    .register-intent-panel,
    .register-flow-actions {
        flex-direction: column;
        align-items: stretch;
    }

    .register-detail-grid {
        grid-template-columns: 1fr;
    }

    .coach-team-settings-grid {
        grid-template-columns: 1fr;
    }

    .identity-manage-header,
    .identity-manage-shell,
    .identity-manage-panel {
        padding: 1rem;
    }
}

/* About and privacy pages */
.info-hero,
.info-section {
    width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-top: 0;
    margin-bottom: 0;
}

.info-hero {
    position: relative;
    display: flex;
    align-items: center;
    overflow: hidden;
    isolation: isolate;
    min-height: 430px;
    padding: 5.75rem 0;
    color: #ffffff;
    background:
        linear-gradient(90deg, rgba(8, 14, 22, 0.94), rgba(9, 35, 35, 0.78), rgba(6, 63, 31, 0.72)),
        url("../images/aboutHeroGenerated.png") center / cover no-repeat;
}

.privacy-page-hero {
    background:
        linear-gradient(90deg, rgba(8, 14, 22, 0.96), rgba(17, 37, 58, 0.82), rgba(10, 72, 68, 0.62)),
        url("../images/privacyHeroGenerated.png") center / cover no-repeat;
}

.info-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    background:
        repeating-linear-gradient(105deg, rgba(255, 255, 255, 0.08) 0 1px, transparent 1px 64px),
        linear-gradient(180deg, rgba(255, 255, 255, 0.07), transparent 40%, rgba(0, 0, 0, 0.26));
}

.info-hero::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 8px;
    background: linear-gradient(90deg, var(--ts-blue), var(--ts-teal), var(--ts-gold));
}

.info-hero-content {
    max-width: 780px;
}

.info-hero h1 {
    max-width: 840px;
    color: #ffffff;
    font-size: clamp(2.35rem, 4.4vw, 4.4rem);
    font-weight: 900;
    line-height: 1.03;
}

.info-hero p:not(.section-eyebrow-light) {
    max-width: 700px;
    color: rgba(255, 255, 255, 0.82);
    font-size: 1.08rem;
    line-height: 1.75;
}

.info-section {
    padding: 5.5rem 0;
}

.info-section-light {
    background:
        linear-gradient(180deg, #f7f9fb, #eef3f5),
        repeating-linear-gradient(115deg, rgba(16, 25, 35, 0.035) 0 1px, transparent 1px 64px);
}

.info-section-dark {
    color: #ffffff;
    background:
        linear-gradient(135deg, #0f1a27, #0b302e 46%, #063f1f),
        repeating-linear-gradient(115deg, rgba(255, 255, 255, 0.055) 0 1px, transparent 1px 72px);
}

.info-section h2 {
    color: var(--ts-ink);
    font-size: clamp(1.8rem, 3vw, 2.8rem);
    font-weight: 900;
    line-height: 1.08;
}

.info-section-dark h2 {
    color: #ffffff;
}

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

.info-card,
.privacy-panel,
.privacy-item,
.info-developer-card {
    border: 1px solid var(--ts-line);
    border-radius: var(--ts-radius);
    background: #ffffff;
    box-shadow: var(--ts-shadow-soft);
}

.info-card {
    min-height: 190px;
    padding: 1.35rem;
}

.info-card span,
.privacy-item span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    margin-bottom: 1rem;
    border-radius: 999px;
    color: #073421;
    background: linear-gradient(135deg, #dff7ee, #eaf4ff);
    font-size: 0.8rem;
    font-weight: 900;
}

.info-card h3,
.privacy-item h3,
.info-developer-card h3 {
    color: var(--ts-ink);
    font-size: 1.08rem;
    font-weight: 900;
}

.info-card p,
.privacy-item p,
.info-developer-card p {
    color: var(--ts-muted);
}

.info-developer-card {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 1.25rem;
    height: 100%;
    padding: 1.5rem;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.info-developer-card:hover {
    transform: translateY(-3px);
    box-shadow: var(--ts-shadow);
}

.info-developer-card .developer-photo {
    width: 104px;
    height: 104px;
}

.developer-role {
    margin-bottom: 0.75rem;
    color: var(--ts-blue) !important;
    font-weight: 800;
}

.privacy-panel {
    display: grid;
    grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.35fr);
    gap: 2rem;
    padding: 2rem;
}

.privacy-summary {
    padding: 1rem 0.5rem;
}

.privacy-summary h2 {
    margin-bottom: 1rem;
}

.privacy-list {
    display: grid;
    gap: 1rem;
}

.privacy-item {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 1rem;
    padding: 1.2rem;
    box-shadow: none;
}

.privacy-item span {
    margin-bottom: 0;
}

.legal-hero {
    min-height: 360px;
    background:
        linear-gradient(90deg, rgba(8, 14, 22, 0.97), rgba(20, 32, 43, 0.88), rgba(9, 58, 48, 0.68)),
        url("../images/privacyHeroGenerated.png") center / cover no-repeat;
}

.legal-hero h1 {
    font-size: clamp(2.75rem, 4.8vw, 5rem);
}

.pricing-page {
    width: 100vw;
    margin-left: calc(50% - 50vw);
    background: linear-gradient(180deg, #eef6f8, #f8fbfd 48%, #ffffff);
}

.pricing-hero-section {
    display: flex;
    align-items: center;
    min-height: clamp(23rem, 39vw, 30rem);
    padding: clamp(2rem, 4vw, 3rem) 0 clamp(1.5rem, 3vw, 2.2rem);
    background:
        linear-gradient(90deg, rgba(3, 12, 18, 0.92), rgba(3, 15, 23, 0.74) 42%, rgba(6, 52, 43, 0.62)),
        linear-gradient(180deg, rgba(2, 8, 13, 0.2), rgba(2, 8, 13, 0.76)),
        url("../images/pricingHeroGenerated.png") center 44% / cover no-repeat,
        url("../images/homeHeroGenerated.png") center 44% / cover no-repeat,
        #06141d;
}

.pricing-hero {
    max-width: 760px;
    margin: 0 auto clamp(1rem, 2vw, 1.4rem);
    text-align: center;
}

.pricing-hero h1 {
    margin: 0 0 0.75rem;
    color: #ffffff;
    font-size: clamp(2.45rem, 4.7vw, 4.25rem);
    font-weight: 950;
    line-height: 0.95;
}

.pricing-hero p:not(.section-eyebrow) {
    margin: 0 auto;
    max-width: 560px;
    color: rgba(255, 255, 255, 0.82);
    font-size: 1.05rem;
    line-height: 1.5;
}

.pricing-section {
    padding: clamp(3.4rem, 6vw, 5.8rem) 0;
}

.pricing-section-light {
    background:
        linear-gradient(180deg, #eef6f8, #f8fbfd 48%, #ffffff),
        repeating-linear-gradient(115deg, rgba(16, 25, 35, 0.028) 0 1px, transparent 1px 64px);
}

.pricing-section-dark {
    color: #ffffff;
    background:
        radial-gradient(circle at 18% 0%, rgba(13, 110, 253, 0.18), transparent 34%),
        radial-gradient(circle at 82% 12%, rgba(9, 188, 138, 0.18), transparent 30%),
        linear-gradient(180deg, #04080d, #050708 58%, #020303);
}

.pricing-included-section {
    padding-top: clamp(1.25rem, 3vw, 2rem);
}

.pricing-rate-section {
    padding-top: clamp(4rem, 6vw, 5.6rem);
}

.pricing-example-section {
    padding-top: clamp(3rem, 5vw, 4.5rem);
}

.pricing-plans-shell {
    max-width: 980px;
    margin: 0 auto clamp(1rem, 2vw, 1.4rem);
    padding: clamp(0.8rem, 1.6vw, 1.1rem);
    border: 1px solid rgba(16, 25, 35, 0.06);
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.42);
}

.pricing-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: stretch;
    gap: clamp(1rem, 2vw, 1.35rem);
    max-width: 920px;
    margin: 0 auto;
}

.pricing-card {
    position: relative;
    overflow: hidden;
    display: flex;
    align-items: center;
    flex-direction: column;
    justify-content: flex-start;
    gap: 1.05rem;
    min-height: 31rem;
    padding: clamp(1.45rem, 2.4vw, 2rem);
    border: 1px solid rgba(16, 25, 35, 0.09);
    border-radius: 8px;
    background:
        radial-gradient(circle at 50% -12%, rgba(255, 191, 79, 0.34), transparent 38%),
        radial-gradient(circle at 100% 100%, rgba(13, 110, 253, 0.13), transparent 34%),
        linear-gradient(180deg, rgba(255, 253, 248, 0.96), #ffffff 58%);
    box-shadow: 0 1.35rem 3rem rgba(16, 25, 35, 0.1);
    text-align: center;
}

.pricing-card::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.8), transparent 36%);
}

.pricing-card::after {
    content: "";
    position: absolute;
    inset: auto 1.15rem 1.15rem 1.15rem;
    height: 0.28rem;
    border-radius: 999px;
    background: linear-gradient(90deg, #0d6efd, #26c485, #f0b429);
    opacity: 0.85;
}

.pricing-card > * {
    position: relative;
    z-index: 1;
}

.pricing-card-featured {
    color: var(--ts-ink);
    border-color: rgba(9, 188, 138, 0.2);
    background:
        radial-gradient(circle at 50% -12%, rgba(9, 188, 138, 0.34), transparent 40%),
        radial-gradient(circle at 100% 100%, rgba(13, 110, 253, 0.14), transparent 35%),
        linear-gradient(180deg, rgba(243, 255, 251, 0.98), #ffffff 62%);
}

.pricing-card-featured::after {
    background: linear-gradient(90deg, #063b59, #09bc8a, #0d6efd);
}

.pricing-card-visual {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 6.25rem;
    height: 6.25rem;
    border: 1px solid rgba(13, 110, 253, 0.18);
    border-radius: 999px;
    color: #0874d1;
    background:
        radial-gradient(circle at 50% 34%, rgba(13, 110, 253, 0.2), transparent 58%),
        linear-gradient(180deg, #f5fbff, #ffffff);
    box-shadow: inset 0 0 0 0.5rem rgba(13, 110, 253, 0.03);
}

.pricing-card-visual-group {
    border-color: rgba(9, 188, 138, 0.22);
    color: #078466;
    background:
        radial-gradient(circle at 50% 34%, rgba(9, 188, 138, 0.24), transparent 58%),
        linear-gradient(180deg, #f3fffb, #ffffff);
    box-shadow: inset 0 0 0 0.5rem rgba(9, 188, 138, 0.04);
}

.pricing-card-visual svg {
    width: 4.25rem;
    height: 4.25rem;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 4;
}

.pricing-card p {
    margin: 0;
    color: var(--ts-muted);
    font-weight: 900;
    letter-spacing: 0;
    text-transform: uppercase;
}

.pricing-card-featured p {
    color: var(--ts-muted);
}

.pricing-card-head {
    display: grid;
    justify-items: center;
    gap: 0.32rem;
    max-width: 20rem;
}

.pricing-card h2 {
    margin: 0;
    color: #073f63;
    font-size: clamp(1.6rem, 2.4vw, 2.2rem);
    font-weight: 950;
    line-height: 1.02;
}

.pricing-card-featured h2 {
    color: #04624f;
}

.pricing-card-head > span {
    display: block;
    min-height: 2.7rem;
    color: var(--ts-muted);
    font-weight: 800;
    line-height: 1.35;
}

.pricing-price {
    display: grid;
    justify-items: center;
    gap: 0.18rem;
    min-height: 5rem;
}

.pricing-price strong {
    color: var(--ts-ink);
    font-size: clamp(3rem, 5vw, 4.55rem);
    font-weight: 950;
    line-height: 0.92;
}

.pricing-price span {
    color: var(--ts-muted);
    font-weight: 900;
}

.pricing-card-points {
    display: grid;
    gap: 0.42rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.pricing-card li {
    color: var(--ts-ink);
    font-weight: 850;
}

.pricing-tier-list {
    display: grid;
    gap: 0.5rem;
    width: min(100%, 24rem);
}

.pricing-tier-list div {
    display: grid;
    grid-template-columns: minmax(8rem, 1fr) 4.1rem minmax(5.6rem, 1fr);
    align-items: baseline;
    column-gap: 0.65rem;
    padding: 0.58rem 0.72rem;
    border: 1px solid rgba(9, 188, 138, 0.12);
    border-radius: 8px;
    color: var(--ts-ink);
    background: rgba(255, 255, 255, 0.72);
    font-weight: 900;
    text-align: left;
}

.pricing-tier-list strong {
    color: var(--ts-ink);
    font-size: 1.15rem;
    font-weight: 950;
    text-align: left;
}

.pricing-tier-list span {
    color: var(--ts-muted);
    white-space: nowrap;
}

.pricing-card-note {
    display: block;
    max-width: 24rem;
    margin: -0.1rem 0 0;
    color: var(--ts-muted);
    font-size: 0.88rem;
    font-weight: 800;
    line-height: 1.35;
}

.pricing-card-featured .pricing-card-note {
    color: var(--ts-muted);
}

.pricing-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: fit-content;
    min-height: 2.8rem;
    margin-top: auto;
    margin-bottom: 1.15rem;
    padding: 0.72rem 1.15rem;
    border: 2px solid var(--ts-ink);
    border-radius: 6px;
    color: #ffffff;
    background: var(--ts-ink);
    font-weight: 950;
    text-decoration: none;
}

.pricing-link:hover,
.pricing-link:focus {
    color: #ffffff;
    background: #0b5d7f;
    border-color: #0b5d7f;
}

.pricing-card-featured .pricing-link {
    color: #ffffff;
    border-color: #06745b;
    background: #06745b;
}

.pricing-card-featured .pricing-link:hover,
.pricing-card-featured .pricing-link:focus {
    color: #ffffff;
    border-color: #0b5d7f;
    background: #0b5d7f;
}

.pricing-collection {
    overflow: hidden;
    margin: clamp(1.2rem, 2.6vw, 1.9rem) auto 0;
    padding: clamp(1.45rem, 3vw, 2.15rem) 0 clamp(1.1rem, 2.4vw, 1.75rem);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 8px;
    color: #ffffff;
    background:
        radial-gradient(circle at 18% 0%, rgba(13, 110, 253, 0.28), transparent 34%),
        radial-gradient(circle at 82% 12%, rgba(9, 188, 138, 0.24), transparent 30%),
        linear-gradient(180deg, #04080d, #050708 58%, #020303);
    box-shadow: 0 1.5rem 3.2rem rgba(16, 25, 35, 0.18);
}

.pricing-collection-features {
    margin-top: 0;
}

.pricing-collection-header {
    max-width: 850px;
    padding: 0 clamp(1.15rem, 3vw, 2.15rem);
}

.pricing-collection-header .section-eyebrow {
    color: rgba(255, 255, 255, 0.58);
}

.pricing-collection-header h2 {
    margin: 0;
    color: #ffffff;
    font-size: clamp(2.35rem, 5.8vw, 5.1rem);
    font-weight: 950;
    line-height: 0.98;
}

.pricing-highlight-tiles {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: clamp(0.75rem, 1.6vw, 1rem);
    padding: clamp(1.25rem, 2.6vw, 1.8rem) clamp(1.15rem, 3vw, 2.15rem) 0;
}

.pricing-highlight-tiles article {
    position: relative;
    overflow: hidden;
    display: grid;
    place-items: center;
    min-height: 4.5rem;
    padding: 1rem;
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 8px;
    background:
        radial-gradient(circle at 92% 0%, rgba(9, 188, 138, 0.18), transparent 42%),
        linear-gradient(180deg, rgba(255, 255, 255, 0.11), rgba(255, 255, 255, 0.035));
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.14), 0 0.9rem 2rem rgba(0, 0, 0, 0.18);
}

.pricing-highlight-tiles span {
    display: block;
    color: rgba(255, 255, 255, 0.58);
    font-size: 0.76rem;
    font-weight: 900;
    text-align: center;
    text-transform: uppercase;
}

.pricing-feature-carousel {
    position: relative;
    display: flex;
    gap: 1rem;
    overflow: hidden;
    width: 100%;
    max-width: none;
    margin: clamp(1.6rem, 3vw, 2.1rem) 0 0;
    padding: 0 0.5rem;
}

.pricing-feature-carousel::before,
.pricing-feature-carousel::after {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    z-index: 2;
    width: min(10vw, 7rem);
    pointer-events: none;
}

.pricing-feature-carousel::before {
    left: 0;
    background: linear-gradient(90deg, #04080d, transparent);
}

.pricing-feature-carousel::after {
    right: 0;
    background: linear-gradient(270deg, #020303, transparent);
}

.pricing-feature-track {
    display: flex;
    gap: 1rem;
    min-width: max-content;
    animation: pricingFeatureMarquee 44s linear infinite;
}

.pricing-feature-card {
    flex: 0 0 clamp(15.5rem, 23vw, 20rem);
    min-height: 15.8rem;
    padding: 1.45rem;
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 8px;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.13), rgba(255, 255, 255, 0.035));
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.14), 0 1rem 2.4rem rgba(0, 0, 0, 0.22);
}

.pricing-feature-card > span {
    display: grid;
    place-items: center;
    width: 3rem;
    height: 3rem;
    margin-bottom: 1.1rem;
    border-radius: 8px;
    color: #ffffff;
    background: linear-gradient(135deg, rgba(13, 110, 253, 0.92), rgba(9, 188, 138, 0.82));
}

.pricing-feature-card svg {
    width: 1.75rem;
    height: 1.75rem;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 2.4;
}

.pricing-feature-card h3 {
    margin: 0 0 0.55rem;
    color: #ffffff;
    font-size: 1.15rem;
    font-weight: 950;
}

.pricing-feature-card p {
    margin: 0;
    color: rgba(255, 255, 255, 0.62);
    font-size: 0.96rem;
    font-weight: 750;
    line-height: 1.38;
}

.pricing-collection-offers {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: clamp(0.85rem, 1.8vw, 1.15rem);
    padding: clamp(1.3rem, 2.8vw, 2rem) clamp(1.15rem, 3vw, 2.15rem) 0;
}

.pricing-collection-offers article {
    min-height: 13.5rem;
    padding: clamp(1.1rem, 2.1vw, 1.45rem);
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 8px;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.1), rgba(255, 255, 255, 0.025));
}

.pricing-collection-offers span {
    display: block;
    margin-bottom: 1.2rem;
    color: rgba(255, 255, 255, 0.58);
    font-size: 0.8rem;
    font-weight: 900;
    text-transform: uppercase;
}

.pricing-collection-offers strong {
    display: block;
    color: #ffffff;
    font-size: clamp(1.25rem, 2.2vw, 1.65rem);
    font-weight: 950;
    line-height: 1.1;
}

.pricing-collection-offers p {
    margin: 0.8rem 0 0;
    color: rgba(255, 255, 255, 0.6);
    font-weight: 750;
    line-height: 1.4;
}

.pricing-collection-pricing {
    margin-top: clamp(1.25rem, 2.8vw, 2rem);
    padding: clamp(1.2rem, 2.8vw, 2rem) clamp(1.15rem, 3vw, 2.15rem) 0;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
}

.pricing-rate-section .pricing-collection-pricing {
    max-width: 1120px;
    margin: 0 auto;
    padding: 0;
    border-top: 0;
}

.pricing-collection-pricing-head {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: clamp(1rem, 2vw, 1.35rem);
}

.pricing-collection-pricing-head span {
    color: rgba(255, 255, 255, 0.58);
    font-size: 0.8rem;
    font-weight: 900;
    text-transform: uppercase;
}

.pricing-collection-pricing-head h3 {
    max-width: 600px;
    margin: 0;
    color: #ffffff;
    font-size: clamp(1.55rem, 3.2vw, 2.45rem);
    font-weight: 950;
    line-height: 1.05;
    text-align: right;
}

.pricing-collection-pricing .pricing-plans-shell {
    max-width: none;
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
}

.pricing-collection-pricing .pricing-grid {
    max-width: none;
    gap: clamp(0.9rem, 2vw, 1.2rem);
}

.pricing-collection-pricing .pricing-card {
    min-height: 33rem;
    border-color: rgba(255, 255, 255, 0.16);
    background:
        radial-gradient(circle at 22% 0%, rgba(13, 110, 253, 0.18), transparent 36%),
        radial-gradient(circle at 100% 100%, rgba(9, 188, 138, 0.13), transparent 34%),
        linear-gradient(180deg, rgba(255, 255, 255, 0.12), rgba(255, 255, 255, 0.035));
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.24), 0 1rem 2.5rem rgba(0, 0, 0, 0.22);
}

.pricing-collection-pricing .pricing-card::before {
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.08), transparent 42%);
}

.pricing-collection-pricing .pricing-card::after {
    background: linear-gradient(90deg, rgba(13, 110, 253, 0.9), rgba(9, 188, 138, 0.9), rgba(255, 255, 255, 0.26));
    opacity: 1;
}

.pricing-collection-pricing .pricing-card-featured {
    border-color: rgba(255, 255, 255, 0.16);
    background:
        radial-gradient(circle at 22% 0%, rgba(9, 188, 138, 0.23), transparent 38%),
        radial-gradient(circle at 100% 100%, rgba(13, 110, 253, 0.13), transparent 34%),
        linear-gradient(180deg, rgba(255, 255, 255, 0.13), rgba(255, 255, 255, 0.04));
}

.pricing-collection-pricing .pricing-card-visual {
    width: 4.6rem;
    height: 4.6rem;
    border-color: rgba(255, 255, 255, 0.16);
    color: #ffffff;
    background: linear-gradient(135deg, rgba(13, 110, 253, 0.9), rgba(9, 188, 138, 0.78));
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.18);
}

.pricing-collection-pricing .pricing-card-visual svg {
    width: 3.05rem;
    height: 3.05rem;
}

.pricing-collection-pricing .pricing-card p,
.pricing-collection-pricing .pricing-card-featured p {
    color: rgba(255, 255, 255, 0.58);
}

.pricing-collection-pricing .pricing-card h2,
.pricing-collection-pricing .pricing-card-featured h2,
.pricing-collection-pricing .pricing-price strong {
    color: #ffffff;
}

.pricing-collection-pricing .pricing-card-head > span,
.pricing-collection-pricing .pricing-price span,
.pricing-collection-pricing .pricing-card-note {
    color: rgba(255, 255, 255, 0.62);
}

.pricing-collection-pricing .pricing-card li {
    color: rgba(255, 255, 255, 0.84);
}

.pricing-collection-pricing .pricing-tier-list div {
    border-color: rgba(255, 255, 255, 0.12);
    background: rgba(255, 255, 255, 0.06);
}

.pricing-collection-pricing .pricing-tier-list strong {
    color: #ffffff;
}

.pricing-collection-pricing .pricing-tier-list span {
    color: rgba(255, 255, 255, 0.62);
}

.pricing-collection-pricing .pricing-link {
    border-color: rgba(255, 255, 255, 0.18);
    color: #061016;
    background: #ffffff;
}

.pricing-collection-pricing .pricing-link:hover,
.pricing-collection-pricing .pricing-link:focus {
    border-color: #09bc8a;
    color: #ffffff;
    background: #08745d;
}

.pricing-collection-pricing .pricing-card-featured .pricing-link {
    border-color: #09bc8a;
    color: #ffffff;
    background: #08745d;
}

.pricing-collection-pricing .pricing-card-featured .pricing-link:hover,
.pricing-collection-pricing .pricing-card-featured .pricing-link:focus {
    border-color: #ffffff;
    color: #061016;
    background: #ffffff;
}

.pricing-math-note {
    display: grid;
    grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
    align-items: stretch;
    gap: clamp(1rem, 2.4vw, 1.6rem);
    margin-top: clamp(1rem, 2vw, 1.35rem);
    padding: clamp(1.1rem, 2.4vw, 1.55rem);
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 8px;
    background:
        radial-gradient(circle at 12% 0%, rgba(13, 110, 253, 0.22), transparent 34%),
        radial-gradient(circle at 86% 20%, rgba(9, 188, 138, 0.18), transparent 34%),
        linear-gradient(135deg, rgba(255, 255, 255, 0.11), rgba(255, 255, 255, 0.035)),
        rgba(255, 255, 255, 0.035);
    overflow: hidden;
}

.pricing-example-section .pricing-math-note {
    max-width: 980px;
    margin: 0 auto;
    background:
        radial-gradient(circle at 18% 0%, rgba(13, 110, 253, 0.24), transparent 34%),
        radial-gradient(circle at 82% 12%, rgba(9, 188, 138, 0.22), transparent 30%),
        linear-gradient(180deg, #04080d, #050708 58%, #020303);
    box-shadow: 0 1.5rem 3.2rem rgba(16, 25, 35, 0.18);
}

.pricing-math-note span,
.pricing-math-note dt {
    color: rgba(255, 255, 255, 0.58);
    font-size: 0.78rem;
    font-weight: 900;
    text-transform: uppercase;
}

.pricing-math-note h4 {
    margin: 0.5rem 0 0;
    color: #ffffff;
    font-size: clamp(1.75rem, 3.4vw, 2.7rem);
    font-weight: 950;
    line-height: 1.05;
}

.pricing-math-note p {
    margin: 0.75rem 0 0;
    max-width: 560px;
    color: rgba(255, 255, 255, 0.64);
    font-weight: 750;
    line-height: 1.42;
}

.pricing-math-note dl {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: clamp(0.65rem, 1.3vw, 0.9rem);
    margin: 0;
    min-width: 0;
}

.pricing-math-note dl div {
    display: grid;
    align-content: space-between;
    gap: 1rem;
    min-width: 0;
    min-height: 10.25rem;
    padding: clamp(0.9rem, 1.7vw, 1.1rem);
    border: 1px solid rgba(255, 255, 255, 0.13);
    border-radius: 8px;
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.12), rgba(255, 255, 255, 0.045)),
        rgba(255, 255, 255, 0.04);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.12);
}

.pricing-math-note dl div:last-child {
    border-color: rgba(9, 188, 138, 0.34);
    background:
        radial-gradient(circle at 50% 0%, rgba(9, 188, 138, 0.2), transparent 52%),
        linear-gradient(180deg, rgba(255, 255, 255, 0.14), rgba(255, 255, 255, 0.055));
}

.pricing-math-note dd {
    min-width: 0;
    margin: 0;
    color: #ffffff;
    font-size: clamp(1.65rem, 2.8vw, 2.2rem);
    font-weight: 950;
    line-height: 1;
    overflow-wrap: anywhere;
}

@keyframes pricingFeatureMarquee {
    from {
        transform: translateX(0);
    }

    to {
        transform: translateX(calc(-100% - 1rem));
    }
}

@media (prefers-reduced-motion: reduce) {
    .pricing-feature-track {
        animation: none;
    }
}

@media (max-width: 767px) {
    .pricing-hero-section {
        min-height: auto;
        padding: 2.35rem 0 2rem;
    }

    .pricing-grid {
        grid-template-columns: 1fr;
    }

    .pricing-collection-offers {
        grid-template-columns: 1fr;
    }

    .pricing-highlight-tiles {
        grid-template-columns: 1fr;
    }

    .pricing-collection-pricing-head {
        align-items: flex-start;
        flex-direction: column;
    }

    .pricing-collection-pricing-head h3 {
        text-align: left;
    }

    .pricing-math-note {
        grid-template-columns: 1fr;
    }

    .pricing-math-note dl {
        grid-template-columns: 1fr;
    }

    .pricing-math-note dl div {
        min-height: auto;
    }

    .pricing-card {
        min-height: auto;
    }

    .pricing-card-head > span {
        min-height: auto;
    }

    .pricing-tier-list div {
        grid-template-columns: minmax(0, 1fr) auto;
        row-gap: 0.16rem;
    }

    .pricing-tier-list div span:last-child {
        grid-column: 2;
    }

    .pricing-card {
        border-radius: 6px;
    }

    .pricing-link {
        width: 100%;
    }
}

.legal-section {
    padding-top: 4rem;
}

.legal-document {
    overflow: hidden;
    border: 1px solid rgba(16, 25, 35, 0.14);
    border-radius: 8px;
    background: #ffffff;
    box-shadow: var(--ts-shadow-soft);
}

.legal-document-header {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(260px, 0.46fr);
    gap: 2rem;
    padding: 2.25rem 2.5rem;
    border-bottom: 1px solid var(--ts-line);
    background:
        linear-gradient(180deg, #ffffff, #f8fafb),
        repeating-linear-gradient(115deg, rgba(16, 25, 35, 0.025) 0 1px, transparent 1px 64px);
}

.legal-document-header h2 {
    margin: 0;
    color: var(--ts-ink);
    font-size: clamp(2rem, 3vw, 3rem);
    line-height: 1.05;
}

.legal-document-header dl {
    display: grid;
    gap: 0.75rem;
    margin: 0;
    padding: 1rem;
    border: 1px solid var(--ts-line);
    border-radius: 8px;
    background: #ffffff;
}

.legal-document-header dt {
    margin-bottom: 0.18rem;
    color: var(--ts-muted);
    font-size: 0.72rem;
    font-weight: 900;
    text-transform: uppercase;
}

.legal-document-header dd {
    margin: 0;
    color: var(--ts-ink);
    font-weight: 800;
}

.legal-notice {
    margin: 1.5rem 2.5rem 0;
    padding: 1rem 1.1rem;
    border-left: 4px solid var(--ts-gold);
    border-radius: 6px;
    color: #3a4652;
    background: #fff8e5;
    line-height: 1.65;
}

.legal-document-grid {
    display: grid;
    grid-template-columns: minmax(220px, 0.33fr) minmax(0, 1fr);
    gap: 2rem;
    padding: 2rem 2.5rem 2.5rem;
}

.legal-toc {
    align-self: start;
    padding: 1rem;
    border: 1px solid var(--ts-line);
    border-radius: 8px;
    background: #f8fafb;
}

.legal-toc h3 {
    margin: 0 0 0.9rem;
    color: var(--ts-ink);
    font-size: 0.78rem;
    font-weight: 900;
    text-transform: uppercase;
}

.legal-toc a {
    display: block;
    padding: 0.34rem 0;
    color: #526273;
    font-size: 0.9rem;
    font-weight: 700;
    text-decoration: none;
}

.legal-toc a:hover,
.legal-toc a:focus {
    color: var(--ts-ink);
    text-decoration: underline;
}

.legal-body {
    min-width: 0;
}

.legal-clause {
    padding: 0 0 1.55rem;
    margin-bottom: 1.55rem;
    border-bottom: 1px solid var(--ts-line);
}

.legal-clause:last-child {
    margin-bottom: 0;
    padding-bottom: 0;
    border-bottom: 0;
}

.legal-clause h3 {
    display: flex;
    gap: 0.65rem;
    margin: 0 0 0.75rem;
    color: var(--ts-ink);
    font-size: 1.12rem;
    font-weight: 900;
    line-height: 1.3;
}

.legal-clause h3 span {
    color: var(--ts-blue);
    font-variant-numeric: tabular-nums;
}

.legal-clause p {
    margin: 0 0 0.85rem;
    color: #3d4c5c;
    font-size: 0.98rem;
    line-height: 1.75;
}

.legal-clause p:last-child {
    margin-bottom: 0;
}

@media (max-width: 992px) {
    .privacy-panel {
        grid-template-columns: 1fr;
    }

    .legal-document-header,
    .legal-document-grid {
        grid-template-columns: 1fr;
    }

    .legal-toc {
        position: static;
    }
}

@media (max-width: 767px) {
    .info-hero {
        min-height: 380px;
        padding: 3.4rem 0;
    }

    .info-section {
        padding: 3.4rem 0;
    }

    .info-card-grid {
        grid-template-columns: 1fr;
    }

    .info-developer-card {
        grid-template-columns: 1fr;
        text-align: center;
    }

    .info-developer-card .developer-photo {
        margin-left: auto;
        margin-right: auto;
    }

    .privacy-panel {
        padding: 1.1rem;
    }

    .privacy-item {
        grid-template-columns: 1fr;
    }

    .legal-document-header,
    .legal-document-grid {
        padding-left: 1.15rem;
        padding-right: 1.15rem;
    }

    .legal-notice {
        margin-left: 1.15rem;
        margin-right: 1.15rem;
    }
}

/* Site-wide visual refresh */
:root {
    --ts-ink: #101923;
    --ts-ink-2: #182634;
    --ts-muted: #607080;
    --ts-line: rgba(16, 25, 35, 0.10);
    --ts-line-strong: rgba(16, 25, 35, 0.16);
    --ts-surface: #ffffff;
    --ts-surface-2: #f5f7f9;
    --ts-surface-3: #eef3f5;
    --ts-blue: #0d6efd;
    --ts-teal: #20c997;
    --ts-green: #064a23;
    --ts-gold: #d4a017;
    --ts-page-bg: #f7f9fb;
    --ts-shadow: 0 18px 44px rgba(13, 31, 45, 0.10);
    --ts-shadow-soft: 0 10px 28px rgba(13, 31, 45, 0.07);
    --ts-radius: 8px;
}

html {
    scroll-behavior: smooth;
}

body {
    color: var(--ts-ink);
    background: var(--ts-page-bg);
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

body::before {
    content: none;
}

main > .container {
    padding-top: 0 !important;
    padding-bottom: 3rem !important;
}

body.has-marketing-footer main > .container {
    padding-bottom: 0 !important;
}

.site-header {
    position: relative;
    z-index: 1020;
    background-color: rgba(255, 255, 255, 0.96);
    border-bottom: 1px solid rgba(16, 25, 35, 0.08);
    box-shadow: 0 8px 24px rgba(16, 25, 35, 0.04);
    backdrop-filter: blur(14px);
}

.main-navbar {
    background-color: transparent;
}

.nav-logo {
    height: 40px;
}

.nav-link-modern {
    color: var(--ts-ink) !important;
    letter-spacing: 0;
}

.nav-link-modern::after {
    height: 3px;
    border-radius: 999px 999px 0 0;
    background: linear-gradient(90deg, var(--ts-blue), var(--ts-teal), var(--ts-gold));
}

.nav-auth-link,
.home-primary-link,
.action-button,
.btn {
    border-radius: 6px;
    letter-spacing: 0;
}

.home-band,
.page-band {
    position: relative;
    isolation: isolate;
    width: 100vw;
    margin-left: calc(50% - 50vw);
}

.home-band-light,
.page-band-light {
    padding: 5.5rem 0;
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.96), rgba(246, 249, 251, 0.98)),
        repeating-linear-gradient(115deg, rgba(16, 25, 35, 0.035) 0 1px, transparent 1px 64px);
}

.home-band-dark,
.page-band-dark {
    padding: 5.5rem 0;
    color: #ffffff;
    background:
        linear-gradient(130deg, rgba(12, 20, 31, 0.98), rgba(5, 56, 26, 0.96)),
        repeating-linear-gradient(115deg, rgba(255, 255, 255, 0.055) 0 1px, transparent 1px 72px);
}

.home-band-light + .home-band-dark,
.home-band-dark + .home-band-light,
.page-band-light + .page-band-dark,
.page-band-dark + .page-band-light,
.live-hero-band + .page-band,
section.page-band:has(.search-panel) + .page-band {
    border-top: 1px solid rgba(255, 255, 255, 0.76);
}

.live-hero-band,
section.page-band:has(.search-panel) {
    min-height: 420px;
    padding: 6.25rem 0 6rem;
    background:
        linear-gradient(90deg, rgba(8, 14, 22, 0.95), rgba(11, 26, 28, 0.78) 52%, rgba(8, 14, 22, 0.70)),
        linear-gradient(135deg, rgba(13, 110, 253, 0.25), rgba(32, 201, 151, 0.18), rgba(212, 160, 23, 0.10)),
        url("../images/liveHeroGenerated.png") center 38% / cover no-repeat;
}

.live-hero-band::before,
section.page-band:has(.search-panel)::before {
    background:
        repeating-linear-gradient(105deg, rgba(255, 255, 255, 0.09) 0 1px, transparent 1px 58px),
        linear-gradient(180deg, rgba(255, 255, 255, 0.05), transparent 34%, rgba(0, 0, 0, 0.28));
    opacity: 0.48;
}

.live-hero-band::after,
section.page-band:has(.search-panel)::after {
    height: 8px;
    background: linear-gradient(90deg, var(--ts-blue), var(--ts-teal) 48%, var(--ts-gold));
    box-shadow: 0 8px 28px rgba(32, 201, 151, 0.22);
}

.live-hero-band + .page-band-dark,
section.page-band:has(.search-panel) + .page-band-dark {
    padding-top: 5rem;
    background:
        linear-gradient(180deg, #f7f9fb 0, #f7f9fb 4rem, transparent 4rem),
        linear-gradient(135deg, #111b28 0, #0c2228 42%, #063f1f 100%);
}

.live-hero-band + .page-band-dark .container,
section.page-band:has(.search-panel) + .page-band-dark .container {
    padding-top: 2.75rem;
}

.home-title,
.section-title,
h1,
h2,
h3,
h4,
h5,
h6 {
    letter-spacing: 0;
}

.home-title,
.section-title {
    max-width: 760px;
    color: var(--ts-ink);
    font-size: clamp(2.35rem, 4.4vw, 4.35rem);
    font-weight: 900;
    line-height: 1.03;
}

.live-hero-band .section-title,
section.page-band:has(.search-panel) .section-title {
    color: #ffffff;
}

.home-subtitle,
.section-text,
.lead,
p {
    color: var(--ts-muted);
}

.home-band-dark p,
.page-band-dark p,
.home-band-dark .section-header p,
.page-band-dark .section-header p {
    color: rgba(255, 255, 255, 0.78);
}

.home-subtitle,
.section-text {
    font-size: 1.08rem;
    line-height: 1.75;
}

.home-eyebrow,
.home-eyebrow-light,
.section-eyebrow,
.section-eyebrow-light,
.stat-label {
    letter-spacing: 0.08em;
}

.home-eyebrow,
.section-eyebrow {
    color: var(--ts-blue);
}

.home-eyebrow-light,
.section-eyebrow-light {
    color: #a9f2df;
}

.section-header,
.home-section-header {
    margin-bottom: 2.75rem;
}

.section-header h2,
.home-section-header h2,
.home-band-light h2,
.page-band-light h2,
.home-band-dark h2,
.page-band-dark h2 {
    color: inherit;
    font-size: clamp(1.75rem, 3vw, 2.8rem);
    font-weight: 900;
    line-height: 1.08;
    letter-spacing: 0;
}

.home-primary-link,
.action-button,
.btn-primary {
    border: 1px solid transparent;
    color: #ffffff !important;
    background: linear-gradient(135deg, var(--ts-ink), #0b2d24);
    box-shadow: 0 12px 24px rgba(16, 25, 35, 0.18);
}

.home-primary-link:hover,
.action-button:hover,
.btn-primary:hover {
    color: #ffffff !important;
    background: linear-gradient(135deg, var(--ts-blue), var(--ts-teal));
    box-shadow: 0 16px 30px rgba(13, 110, 253, 0.22);
    transform: translateY(-1px);
}

.btn-outline-primary {
    color: var(--ts-blue);
    border-color: rgba(13, 110, 253, 0.35);
}

.btn-outline-primary:hover {
    color: #ffffff;
    background-color: var(--ts-blue);
    border-color: var(--ts-blue);
}

.btn-outline-danger,
.btn-danger {
    border-radius: 6px;
}

.secondary-link,
.back-link {
    color: var(--ts-ink);
}

.home-info-card,
.content-card,
.game-card,
.empty-card,
.search-panel,
.stat-card,
.dashboard-panel,
.custom-card,
.developer-card,
.feature-pill,
.about-intro,
.developer-section,
.card,
.modal-content {
    border: 1px solid var(--ts-line) !important;
    border-radius: var(--ts-radius) !important;
    background: rgba(255, 255, 255, 0.95);
    box-shadow: var(--ts-shadow-soft) !important;
}

.home-info-card,
.content-card,
.game-card,
.empty-card {
    padding: 1.55rem;
}

.home-info-card,
.content-card,
.game-card,
.custom-card,
.developer-card,
.stat-card,
.dashboard-panel {
    transition: transform 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
}

.home-info-card:hover,
.content-card:hover,
.game-card:hover,
.custom-card:hover,
.developer-card:hover,
.stat-card:hover {
    border-color: rgba(13, 110, 253, 0.22) !important;
    box-shadow: var(--ts-shadow) !important;
    transform: translateY(-3px);
}

.home-band-dark .home-info-card,
.home-band-dark .custom-card,
.page-band-dark .content-card,
.page-band-dark .game-card,
.page-band-dark .empty-card {
    background: rgba(255, 255, 255, 0.96);
}

.home-info-card h3,
.content-card h3,
.game-card h3,
.empty-card h3,
.card-title {
    color: var(--ts-ink);
    font-weight: 900;
}

.card-grid {
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 1.25rem;
}

.search-panel {
    padding: 0.85rem;
}

.live-hero-band .search-panel,
section.page-band:has(.search-panel) .search-panel {
    background: rgba(255, 255, 255, 0.94);
    box-shadow: 0 26px 56px rgba(0, 0, 0, 0.24) !important;
}

.live-hero-band,
section.page-band:has(.search-panel) {
    overflow: visible;
    z-index: 5;
}

.live-search-results-band {
    padding: 4.25rem 0 4.75rem;
    background:
        linear-gradient(180deg, #f7f9fb, #ffffff),
        repeating-linear-gradient(115deg, rgba(16, 25, 35, 0.028) 0 1px, transparent 1px 64px);
}

.live-search-results-band .section-header {
    margin-bottom: 1.75rem;
}

.live-search-results-list {
    display: grid;
    gap: 0.8rem;
    width: min(100%, 680px);
    margin: 0 auto;
}

.live-search-result-card {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 1rem;
    min-height: 78px;
    padding: 1rem 1.15rem;
    border: 1px solid rgba(16, 25, 35, 0.1);
    border-radius: 8px;
    color: inherit;
    text-decoration: none;
    background: rgba(255, 255, 255, 0.98);
    box-shadow: 0 14px 34px rgba(16, 25, 35, 0.08);
    transition: transform 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
}

.live-search-result-logo {
    flex: 0 0 44px;
    width: 44px;
    height: 44px;
    border: 2px solid var(--team-secondary, #20c997);
    border-radius: 50%;
    background: #ffffff;
    object-fit: cover;
}

.live-search-result-logo-fallback {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #ffffff;
    background: linear-gradient(135deg, var(--team-primary, #0d6efd), var(--team-secondary, #20c997));
    font-size: 1rem;
    font-weight: 900;
}

.live-search-result-card:hover,
.live-search-result-card:focus {
    color: inherit;
    text-decoration: none;
    border-color: rgba(13, 110, 253, 0.28);
    box-shadow: 0 18px 42px rgba(16, 25, 35, 0.12);
    transform: translateY(-2px);
}

.live-search-result-card strong,
.live-search-result-card small {
    display: block;
}

.live-search-result-team {
    min-width: 0;
}

.live-search-result-card strong {
    color: var(--ts-ink);
    font-size: 1.05rem;
    font-weight: 900;
}

.live-search-result-card small {
    margin-top: 0.25rem;
    color: var(--ts-muted);
    font-size: 0.94rem;
}

.live-search-result-meta {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    margin-left: auto;
}

.live-search-result-meta > span:first-child {
    color: var(--ts-ink);
    font-size: 0.92rem;
    font-weight: 900;
}

.live-search-result-action {
    flex: 0 0 auto;
    padding: 0.4rem 0.65rem;
    border: 1px solid color-mix(in srgb, var(--team-secondary, #20c997) 34%, transparent);
    border-radius: 999px;
    color: var(--team-primary, #075c46);
    background: color-mix(in srgb, var(--team-secondary, #20c997) 13%, #ffffff);
    font-size: 0.78rem;
    font-weight: 900;
}

.live-search-empty-card {
    width: min(100%, 620px);
    margin: 0 auto;
}

.search-form {
    gap: 0.7rem;
}

.search-input,
.form-control,
.form-select {
    min-height: 48px;
    border: 1px solid rgba(16, 25, 35, 0.14);
    border-radius: 6px;
    color: var(--ts-ink);
    background-color: #ffffff;
}

.search-input:focus,
.form-control:focus,
.form-select:focus {
    border-color: var(--ts-teal);
    box-shadow: 0 0 0 0.2rem rgba(32, 201, 151, 0.16);
}

.live-search-combobox {
    position: relative;
    z-index: 30;
    min-width: min(100%, 320px);
    flex: 1 1 auto;
}

.live-search-combobox .search-input {
    width: 100%;
}

.live-search-suggestions {
    position: absolute;
    z-index: 40;
    top: calc(100% + 0.5rem);
    left: 0;
    right: 0;
    max-height: min(420px, calc(100vh - 12rem));
    overflow-y: auto;
    overscroll-behavior: contain;
    border: 2px solid rgba(16, 25, 35, 0.5);
    border-radius: 8px;
    background: #ffffff;
    box-shadow: 0 18px 38px rgba(16, 25, 35, 0.22);
}

.live-search-suggestions__section + .live-search-suggestions__section {
    border-top: 1px solid rgba(16, 25, 35, 0.08);
}

.live-search-suggestions__heading {
    padding: 0.65rem 0.85rem 0.35rem;
    color: var(--ts-muted);
    font-size: 0.72rem;
    font-weight: 900;
    text-transform: uppercase;
}

.live-search-suggestions__item {
    display: grid;
    gap: 0.12rem;
    width: 100%;
    padding: 0.62rem 0.85rem;
    border: 0;
    color: var(--ts-ink);
    background: transparent;
    text-decoration: none;
    text-align: left;
}

.live-search-suggestions__item:hover,
.live-search-suggestions__item:focus,
.live-search-suggestions__item.is-active {
    color: var(--ts-ink);
    background: #f2f7fb;
    text-decoration: none;
}

.live-search-suggestions__item strong {
    font-size: 0.95rem;
    font-weight: 900;
}

.live-search-suggestions__item span,
.live-search-suggestions__empty {
    color: var(--ts-muted);
    font-size: 0.8rem;
    font-weight: 700;
}

.live-search-suggestions__empty {
    padding: 0.85rem;
}

.game-card {
    position: relative;
    overflow: hidden;
}

.game-card::before {
    content: "";
    position: absolute;
    inset: 0 0 auto;
    height: 4px;
    background: linear-gradient(90deg, var(--ts-blue), var(--ts-teal), var(--ts-gold));
}

.game-card-top {
    color: var(--ts-muted);
}

.status-badge {
    border-radius: 999px;
    color: #073421;
    background: linear-gradient(135deg, #d7f8e7, #eef8d8);
}

.matchup-list a,
.matchup-list span {
    color: var(--ts-ink);
}

.matchup-list strong {
    color: var(--ts-green);
}

.game-card,
a.game-card {
    display: flex;
    flex-direction: column;
    gap: 1.15rem;
    min-height: 292px;
    padding: 1.45rem;
    color: inherit;
    text-decoration: none;
    background:
        linear-gradient(180deg, #ffffff, #f7fafb),
        repeating-linear-gradient(115deg, rgba(16, 25, 35, 0.035) 0 1px, transparent 1px 62px);
}

.game-card-link {
    cursor: pointer;
}

.game-card-link:hover,
.game-card-link:focus {
    color: inherit;
    text-decoration: none;
    border-color: rgba(13, 110, 253, 0.3) !important;
    box-shadow: 0 18px 44px rgba(16, 25, 35, 0.12) !important;
    transform: translateY(-4px);
}

.game-matchup-title {
    display: grid;
    gap: 0.2rem;
    margin: 0;
    color: var(--ts-ink);
    font-size: 1.35rem;
    font-weight: 900;
    line-height: 1.18;
}

.matchup-team {
    display: block;
}

.matchup-vs {
    display: block;
    color: var(--ts-teal);
    font-size: 0.68em;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.game-scoreboard {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    align-items: stretch;
    gap: 0.75rem;
    padding: 0.8rem;
    border: 1px solid rgba(16, 25, 35, 0.12);
    border-radius: 10px;
    background: #f3f7f8;
}

.game-score-team {
    display: grid;
    align-content: center;
    gap: 0.4rem;
    min-width: 0;
    padding: 0.85rem 0.75rem;
    border: 1px solid rgba(16, 25, 35, 0.1);
    border-radius: 8px;
    background: #ffffff;
    text-align: center;
}

.game-score-team span {
    overflow: hidden;
    color: var(--ts-muted);
    font-size: 0.74rem;
    font-weight: 900;
    text-overflow: ellipsis;
    text-transform: uppercase;
    white-space: nowrap;
}

.game-score-team strong {
    color: var(--ts-ink);
    font-size: 2.25rem;
    font-weight: 900;
    line-height: 1;
}

.game-score-divider {
    align-self: center;
    color: var(--ts-muted);
    font-size: 0.72rem;
    font-weight: 900;
    text-transform: uppercase;
}

.game-info {
    margin-top: auto;
}

.game-info p:first-child {
    color: var(--ts-ink);
    font-weight: 900;
}

.game-detail-overview-section {
    padding: 2.25rem 0 1.75rem;
}

.live-team-detail-overview-section {
    padding: 2.25rem 0 2rem;
    background:
        linear-gradient(180deg, #ffffff, #f5f8fb),
        repeating-linear-gradient(115deg, rgba(16, 25, 35, 0.028) 0 1px, transparent 1px 64px);
}

.live-team-detail-hero {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(280px, 0.42fr);
    align-items: stretch;
    justify-content: space-between;
    gap: 1.5rem;
    min-height: 250px;
    margin-top: 1rem;
    padding: 1.6rem;
    border: 1px solid rgba(16, 25, 35, 0.08);
    border-radius: 10px;
    background:
        linear-gradient(135deg, color-mix(in srgb, var(--team-primary, #0d6efd) 18%, #ffffff), color-mix(in srgb, var(--team-secondary, #20c997) 18%, #eef7fb)),
        repeating-linear-gradient(115deg, rgba(255, 255, 255, 0.32) 0 1px, transparent 1px 54px);
    box-shadow: 0 18px 42px rgba(16, 25, 35, 0.1);
}

.live-team-detail-main,
.live-team-detail-side {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    min-width: 0;
}

.live-team-detail-identity {
    display: flex;
    align-items: center;
    gap: 1.1rem;
    min-width: 0;
}

.live-team-detail-logo {
    flex: 0 0 clamp(74px, 9vw, 112px);
    width: clamp(74px, 9vw, 112px);
    height: clamp(74px, 9vw, 112px);
    border: 3px solid var(--team-secondary, #20c997);
    border-radius: 50%;
    background: #ffffff;
    box-shadow: 0 16px 34px rgba(16, 25, 35, 0.12);
    object-fit: cover;
}

.live-team-detail-logo-fallback {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #ffffff;
    background: linear-gradient(135deg, var(--team-primary, #0d6efd), var(--team-secondary, #20c997));
    font-size: clamp(2rem, 5vw, 3.6rem);
    font-weight: 900;
}

.live-team-detail-hero .section-title {
    margin-bottom: 0.55rem;
    font-size: clamp(2.7rem, 5.7vw, 4.85rem);
    font-weight: 900;
    line-height: 0.98;
}

.live-team-detail-hero .section-text {
    margin-bottom: 0;
    color: var(--ts-muted);
    font-weight: 700;
}

.live-team-detail-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 0.55rem;
    margin-top: 0.9rem;
}

.live-team-detail-tags span {
    padding: 0.42rem 0.62rem;
    border: 1px solid color-mix(in srgb, var(--team-primary, #0d6efd) 18%, transparent);
    border-radius: 999px;
    color: var(--team-primary, #0d6efd);
    background: rgba(255, 255, 255, 0.72);
    font-size: 0.78rem;
    font-weight: 900;
}

.live-team-detail-stats {
    display: grid;
    grid-template-columns: repeat(3, minmax(78px, 1fr));
    gap: 0.7rem;
}

.live-team-detail-stats div,
.live-team-next-game,
.live-team-detail-meta div,
.live-team-detail-panel {
    padding: 0.9rem;
    border: 1px solid rgba(16, 25, 35, 0.08);
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.82);
}

.live-team-detail-stats span,
.live-team-next-game span,
.live-team-detail-meta span {
    display: block;
    color: var(--ts-muted);
    font-size: 0.72rem;
    font-weight: 900;
    text-transform: uppercase;
}

.live-team-detail-stats strong,
.live-team-next-game strong,
.live-team-detail-meta strong {
    display: block;
    margin-top: 0.2rem;
    color: var(--ts-ink);
    font-weight: 900;
    line-height: 1;
}

.live-team-detail-stats strong {
    font-size: 1.8rem;
}

.live-team-detail-meta {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 220px));
    gap: 0.8rem;
    margin-top: 1.5rem;
}

.live-team-detail-meta strong,
.live-team-next-game strong {
    font-size: 1.05rem;
    line-height: 1.25;
}

.live-team-next-game {
    margin-top: 0.8rem;
}

.live-team-next-game p {
    margin: 0.35rem 0 0;
    color: var(--ts-muted);
    font-weight: 700;
}

.live-team-detail-quick-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
    margin-top: 1rem;
}

.live-team-detail-panel {
    display: flex;
    flex-direction: column;
    min-height: 190px;
    padding: 1.1rem;
    background: #ffffff;
    box-shadow: 0 12px 28px rgba(16, 25, 35, 0.07);
}

.live-team-detail-panel h2 {
    margin-bottom: 0.8rem;
    color: var(--ts-ink);
    font-size: 1.35rem;
    font-weight: 900;
}

.live-team-mini-schedule {
    display: grid;
    gap: 0.55rem;
}

.live-team-info-list {
    display: grid;
    gap: 0.65rem;
}

.live-team-info-list div {
    display: grid;
    gap: 0.12rem;
    padding: 0.72rem;
    border: 1px solid rgba(16, 25, 35, 0.08);
    border-radius: 8px;
    background: #f7fafc;
}

.live-team-info-list span {
    color: var(--ts-muted);
    font-size: 0.72rem;
    font-weight: 900;
    text-transform: uppercase;
}

.live-team-info-list strong {
    color: var(--ts-ink);
    font-size: 0.98rem;
}

.live-team-mini-schedule a,
.live-team-result-link {
    display: grid;
    gap: 0.1rem;
    padding: 0.72rem;
    border: 1px solid rgba(16, 25, 35, 0.08);
    border-radius: 8px;
    color: var(--ts-ink);
    background: #f7fafc;
    text-decoration: none;
}

.live-team-mini-schedule a:hover,
.live-team-result-link:hover {
    color: var(--ts-ink);
    border-color: color-mix(in srgb, var(--team-primary, #0d6efd) 34%, transparent);
    background: #ffffff;
    text-decoration: none;
}

.live-team-mini-schedule span,
.live-team-result-link span {
    color: var(--ts-muted);
    font-size: 0.72rem;
    font-weight: 900;
    text-transform: uppercase;
}

.live-team-mini-schedule strong,
.live-team-result-link strong {
    font-size: 0.98rem;
    line-height: 1.25;
}

.live-team-mini-schedule small {
    color: var(--ts-muted);
    font-weight: 800;
}

.live-team-panel-note {
    margin: auto 0 0;
    color: var(--ts-muted);
    font-weight: 700;
}

.live-team-roster-preview {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
    margin-top: auto;
}

.live-team-roster-preview span,
.live-team-roster-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 34px;
    padding: 0.35rem 0.62rem;
    border: 1px solid color-mix(in srgb, var(--team-primary, #0d6efd) 20%, transparent);
    border-radius: 999px;
    color: var(--team-primary, #0d6efd);
    background: #ffffff;
    font-size: 0.78rem;
    font-weight: 900;
}

.organization-action-card {
    display: grid;
    gap: 0.2rem;
    min-height: 104px;
    padding: 1rem;
    border: 1px solid var(--ts-line);
    border-radius: 8px;
    color: var(--ts-ink);
    background: #ffffff;
    box-shadow: var(--ts-shadow-soft);
    text-decoration: none;
}

.organization-action-card:hover,
.organization-action-card:focus {
    color: var(--ts-ink);
    text-decoration: none;
    transform: translateY(-1px);
}

.organization-action-card span {
    color: var(--ts-muted);
    font-size: 0.78rem;
    font-weight: 900;
    text-transform: uppercase;
}

.organization-action-card strong {
    align-self: end;
    font-size: 1.12rem;
    font-weight: 900;
}

.organization-site-hero {
    position: relative;
    overflow: hidden;
    isolation: isolate;
    width: 100vw;
    margin-left: calc(50% - 50vw);
    min-height: 500px;
    padding: 6.2rem 0 5.2rem;
    color: #ffffff;
    background:
        linear-gradient(90deg, rgba(8, 14, 22, 0.94), rgba(10, 31, 36, 0.74) 52%, rgba(6, 50, 33, 0.84)),
        linear-gradient(135deg, rgba(13, 110, 253, 0.24), rgba(32, 201, 151, 0.18), rgba(212, 160, 23, 0.11)),
        var(--organization-hero-image, url("../images/homeHeroGenerated.png")) center / cover no-repeat;
}

.organization-site-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    pointer-events: none;
    background:
        repeating-linear-gradient(105deg, rgba(255, 255, 255, 0.09) 0 1px, transparent 1px 64px),
        linear-gradient(180deg, rgba(255, 255, 255, 0.08), transparent 36%, rgba(0, 0, 0, 0.28));
    opacity: 0.58;
}

.organization-site-hero::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 8px;
    background: linear-gradient(90deg, var(--ts-blue), var(--ts-teal), var(--ts-gold));
}

.organization-site-hero__copy {
    max-width: 760px;
}

.organization-site-hero h1 {
    max-width: 780px;
    margin-bottom: 1rem;
    color: #ffffff;
    font-size: clamp(3rem, 7vw, 5.6rem);
    font-weight: 900;
    letter-spacing: 0;
    line-height: 0.95;
    text-shadow: 0 2px 18px rgba(0, 0, 0, 0.34);
}

.organization-site-hero p {
    max-width: 650px;
    color: rgba(255, 255, 255, 0.84);
    font-size: 1.12rem;
    font-weight: 700;
    line-height: 1.7;
}

.organization-site-hero__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.55rem;
    margin-top: 1.3rem;
}

.organization-site-hero__meta span {
    display: inline-flex;
    align-items: center;
    min-height: 34px;
    padding: 0.38rem 0.7rem;
    border: 1px solid rgba(255, 255, 255, 0.22);
    border-radius: 999px;
    color: #ffffff;
    background: rgba(255, 255, 255, 0.14);
    backdrop-filter: blur(12px);
    font-size: 0.78rem;
    font-weight: 900;
    text-transform: uppercase;
}

.organization-public-subdash {
    padding: 0.65rem 0;
    border-top: 1px solid rgba(16, 25, 35, 0.08);
    border-bottom: 1px solid rgba(16, 25, 35, 0.08);
    background: #ffffff;
}

.organization-public-subdash .container {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.organization-public-subdash__item {
    display: inline-flex;
    align-items: center;
    min-height: 40px;
    padding: 0.52rem 0.82rem;
    border: 1px solid rgba(16, 25, 35, 0.11);
    border-radius: 8px;
    color: var(--ts-ink);
    background: #ffffff;
    font-weight: 900;
    text-decoration: none;
}

.organization-public-subdash__item:hover,
.organization-public-subdash__item:focus,
.organization-public-subdash__item.active {
    color: var(--ts-ink);
    border-color: rgba(15, 118, 95, 0.32);
    background: #eaf7f1;
    text-decoration: none;
}

.organization-public-subdash__item--primary {
    margin-left: auto;
    color: #ffffff;
    border-color: #10233a;
    background: #10233a;
}

.organization-public-subdash__item--primary:hover,
.organization-public-subdash__item--primary:focus,
.organization-public-subdash__item--primary.active {
    color: #ffffff;
    border-color: #0f765f;
    background: #0f765f;
}

.organization-site-overview {
    padding-top: 2.75rem;
}

.organization-site-location-card span,
.organization-site-team-card small {
    color: var(--ts-muted);
    font-size: 0.75rem;
    font-style: normal;
    font-weight: 900;
    text-transform: uppercase;
}

.organization-site-two-column,
.organization-site-signup-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(320px, 0.72fr);
    gap: 1.5rem;
    align-items: start;
}

.organization-widget-grid {
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: 1.25rem;
}

.organization-widget {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    min-height: 230px;
    padding: 1.25rem;
    border: 1px solid var(--ts-line);
    border-radius: 8px;
    background: #ffffff;
    box-shadow: var(--ts-shadow-soft);
}

.organization-widget--small {
    grid-column: span 4;
}

.organization-widget--medium {
    grid-column: span 6;
}

.organization-widget--large {
    grid-column: span 12;
}

.organization-widget--signup {
    background: linear-gradient(135deg, #ffffff, #edf8f4);
}

.organization-widget--post {
    padding: 1.25rem;
}

.organization-widget--signup .btn {
    margin-top: auto;
}

.organization-widget__header span {
    color: var(--ts-muted);
    font-size: 0.75rem;
    font-weight: 900;
    text-transform: uppercase;
}

.organization-widget__header h2 {
    margin: 0.35rem 0 0;
}

.organization-widget__header--editorial h2 {
    max-width: 18ch;
    font-size: clamp(1.9rem, 3vw, 2.8rem);
    line-height: 1;
}

.organization-widget p {
    color: var(--ts-muted);
    font-weight: 700;
}

.organization-widget .btn,
.organization-widget .secondary-link {
    align-self: flex-start;
    margin-top: auto;
}

.organization-widget-chip-list {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.organization-widget-chip-list span {
    display: inline-flex;
    align-items: center;
    min-height: 32px;
    padding: 0.35rem 0.65rem;
    border: 1px solid var(--ts-line);
    border-radius: 999px;
    color: var(--ts-ink);
    background: #f8fbfc;
    font-size: 0.82rem;
    font-weight: 800;
}

.team-site-hero {
    position: relative;
    overflow: hidden;
    isolation: isolate;
    width: 100vw;
    margin-left: calc(50% - 50vw);
    min-height: 480px;
    padding: 5.6rem 0 4.8rem;
    color: #ffffff;
    background:
        linear-gradient(90deg, rgba(8, 14, 22, 0.95), color-mix(in srgb, var(--team-primary, #0d6efd) 42%, rgba(10, 31, 36, 0.82)) 58%, color-mix(in srgb, var(--team-secondary, #20c997) 44%, rgba(6, 50, 33, 0.86))),
        linear-gradient(135deg, color-mix(in srgb, var(--team-primary, #0d6efd) 28%, transparent), color-mix(in srgb, var(--team-secondary, #20c997) 18%, transparent)),
        var(--team-hero-image, url("../images/homeHeroGenerated.png")) center / cover no-repeat;
}

.team-site-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    pointer-events: none;
    background:
        repeating-linear-gradient(105deg, rgba(255, 255, 255, 0.09) 0 1px, transparent 1px 64px),
        linear-gradient(180deg, rgba(255, 255, 255, 0.08), transparent 38%, rgba(0, 0, 0, 0.32));
    opacity: 0.58;
}

.team-site-hero::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 8px;
    background: linear-gradient(90deg, var(--team-primary, #0d6efd), var(--team-secondary, #20c997), var(--ts-gold));
}

.team-site-hero__copy {
    max-width: 780px;
}

.team-site-hero h1 {
    max-width: 820px;
    margin-bottom: 1rem;
    color: #ffffff;
    font-size: clamp(3rem, 7vw, 5.6rem);
    font-weight: 900;
    letter-spacing: 0;
    line-height: 0.95;
    text-shadow: 0 2px 18px rgba(0, 0, 0, 0.34);
}

.team-site-hero p {
    max-width: 650px;
    color: rgba(255, 255, 255, 0.84);
    font-size: 1.12rem;
    font-weight: 700;
    line-height: 1.7;
}

.team-site-hero__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.55rem;
    margin-top: 1.3rem;
}

.team-site-hero__meta span {
    display: inline-flex;
    align-items: center;
    min-height: 34px;
    padding: 0.38rem 0.7rem;
    border: 1px solid rgba(255, 255, 255, 0.22);
    border-radius: 999px;
    color: #ffffff;
    background: rgba(255, 255, 255, 0.14);
    backdrop-filter: blur(12px);
    font-size: 0.78rem;
    font-weight: 900;
    text-transform: uppercase;
}

.team-site-overview {
    padding-top: 2.75rem;
}

.team-public-subdash {
    position: sticky;
    top: 0;
    z-index: 20;
}

.organization-widget-scroll-list {
    display: grid;
    gap: 0.55rem;
    max-height: 260px;
    overflow-y: auto;
    padding-right: 0.25rem;
}

.organization-widget-scroll-list a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.75rem 0.8rem;
    border: 1px solid rgba(16, 25, 35, 0.08);
    border-radius: 8px;
    color: var(--ts-ink);
    background: #f8fbfc;
    text-decoration: none;
}

.organization-widget-scroll-list a:hover,
.organization-widget-scroll-list a:focus {
    border-color: rgba(15, 118, 95, 0.28);
    color: var(--ts-ink);
    text-decoration: none;
}

.organization-widget-scroll-list strong {
    min-width: 0;
    font-weight: 900;
}

.organization-widget-scroll-list span,
.organization-widget-empty {
    color: var(--ts-muted);
    font-size: 0.82rem;
    font-weight: 800;
}

.organization-widget-team-meta {
    display: inline-flex;
    align-items: baseline;
    justify-content: flex-end;
    gap: 0.45rem;
    white-space: nowrap;
}

.organization-widget-team-meta span + span {
    color: color-mix(in srgb, var(--ts-muted) 72%, #ffffff);
    font-weight: 700;
}

.organization-widget-team-meta span + span::before,
.organization-site-team-card__meta span + span::before,
.live-search-result-meta span + span:not(.live-search-result-action)::before {
    margin-right: 0.45rem;
    color: color-mix(in srgb, var(--ts-muted) 52%, #ffffff);
    content: "|";
}

.organization-widget-empty {
    padding: 0.85rem;
    border: 1px dashed rgba(16, 25, 35, 0.14);
    border-radius: 8px;
    background: #f8fbfc;
}

.organization-widget__document-shell {
    width: 100%;
    margin: 0;
    padding: 0.15rem 0 0.35rem;
}

.organization-widget__document.ql-container.ql-snow {
    border: 0;
    background: transparent;
}

.organization-widget__document .ql-editor {
    padding: 0.25rem 0;
    color: #1d2935;
    font-size: 1.06rem;
    line-height: 1.78;
}

.organization-widget__document--modern-sans .ql-editor,
.organization-widget__document--modern-sans.ql-container {
    font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
}

.organization-widget__document--modern-sans .ql-editor p,
.organization-widget__document--modern-sans .ql-editor li,
.organization-widget__document--modern-sans .ql-editor blockquote {
    font-weight: 500;
}

.organization-widget__document--editorial-serif .ql-editor,
.organization-widget__document--editorial-serif.ql-container {
    font-family: Georgia, "Times New Roman", serif;
}

.organization-widget__document--editorial-serif .ql-editor p,
.organization-widget__document--editorial-serif .ql-editor li,
.organization-widget__document--editorial-serif .ql-editor blockquote {
    font-weight: 500;
}

.organization-widget__document--balanced .ql-editor,
.organization-widget__document--balanced.ql-container {
    font-family: "Avenir Next", "Segoe UI", Helvetica, Arial, sans-serif;
}

.organization-widget__document--balanced .ql-editor p,
.organization-widget__document--balanced .ql-editor li,
.organization-widget__document--balanced .ql-editor blockquote {
    font-weight: 450;
}

.organization-widget__document .ql-editor h2,
.organization-widget__document .ql-editor h3 {
    color: #14202b;
    font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
    font-weight: 900;
    letter-spacing: -0.02em;
}

.organization-widget__document .ql-editor h2 {
    margin: 1.7rem 0 0.85rem;
    font-size: clamp(1.6rem, 2.6vw, 2.15rem);
    line-height: 1.05;
}

.organization-widget__document .ql-editor h3 {
    margin: 1.35rem 0 0.7rem;
    font-size: 1.18rem;
    line-height: 1.2;
}

.organization-widget__document .ql-editor p,
.organization-widget__document .ql-editor li,
.organization-widget__document .ql-editor blockquote {
    font-weight: 500;
}

.organization-widget__document .ql-editor .ql-align-center {
    text-align: center;
}

.organization-widget__document .ql-editor .ql-align-right {
    text-align: right;
}

.organization-widget__document .ql-editor .ql-align-justify {
    text-align: justify;
}

.organization-widget__document .ql-editor p {
    margin-bottom: 1.05rem;
}

.organization-widget__document .ql-editor ul,
.organization-widget__document .ql-editor ol {
    margin: 1rem 0 1.2rem;
    padding-left: 1.45rem;
}

.organization-widget__document .ql-editor li {
    margin-bottom: 0.45rem;
}

.organization-widget__document .ql-editor blockquote {
    margin: 1.5rem 0;
    padding: 0.2rem 0 0.2rem 1.15rem;
    border-left: 4px solid rgba(15, 118, 95, 0.24);
    color: #4b6072;
}

.organization-widget__document .ql-editor a {
    color: #0f7660;
    text-decoration-thickness: 1.5px;
    text-underline-offset: 0.18em;
}

.organization-widget__document .ql-editor img {
    display: inline-block;
    max-width: min(100%, 860px);
    height: auto;
    border-radius: 16px;
    box-shadow: 0 14px 36px rgba(16, 25, 35, 0.12);
}

.organization-widget__document .ql-editor img[data-image-width="small"] {
    max-width: min(100%, 180px);
}

.organization-widget__document .ql-editor img[data-image-width="medium"] {
    max-width: min(100%, 320px);
}

.organization-widget__document .ql-editor img[data-image-width="large"] {
    max-width: min(100%, 560px);
}

.organization-widget__document .ql-editor img[data-image-width="full"] {
    display: block;
    width: 100%;
    max-width: 100%;
}

.organization-site-panel {
    padding: 1.25rem;
    border: 1px solid var(--ts-line);
    border-radius: 8px;
    background: #ffffff;
    box-shadow: var(--ts-shadow-soft);
}

.organization-site-panel h2,
.organization-signup-panel h2 {
    color: var(--ts-ink);
    font-size: 1.55rem;
    font-weight: 900;
}

.organization-site-panel--accent {
    background: linear-gradient(135deg, #ffffff, #edf8f4);
}

.organization-site-panel--accent .btn {
    margin-top: 0.4rem;
}

.organization-site-list {
    display: grid;
    gap: 0.8rem;
}

.organization-site-row {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 1rem;
    padding: 1rem;
    border: 1px solid rgba(16, 25, 35, 0.08);
    border-radius: 8px;
    background: #f8fbfc;
}

.organization-site-row--link {
    color: inherit;
    text-decoration: none;
    transition: transform 160ms ease, box-shadow 160ms ease, border-color 160ms ease, background-color 160ms ease;
}

.organization-site-row--link:hover,
.organization-site-row--link:focus-visible {
    transform: translateY(-1px);
    border-color: rgba(13, 110, 253, 0.22);
    background: #ffffff;
    box-shadow: 0 8px 18px rgba(16, 25, 35, 0.06);
}

.organization-site-row--link:focus-visible {
    outline: 2px solid rgba(13, 110, 253, 0.28);
    outline-offset: 2px;
}

.organization-public-filters {
    display: grid;
    grid-template-columns: minmax(180px, 1fr) minmax(180px, 1fr) auto auto;
    gap: 0.75rem;
    margin-bottom: 1.25rem;
    padding: 1rem;
    border: 1px solid var(--ts-line);
    border-radius: 8px;
    background: #ffffff;
    box-shadow: var(--ts-shadow-soft);
}

.organization-public-schedule {
    display: grid;
    gap: 0.8rem;
}

.organization-public-schedule article {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 1rem;
    padding: 1rem;
    border: 1px solid var(--ts-line);
    border-radius: 8px;
    background: #ffffff;
    box-shadow: var(--ts-shadow-soft);
}

.organization-public-schedule h3 {
    margin: 0.35rem 0 0.2rem;
    color: var(--ts-ink);
    font-size: 1.22rem;
    font-weight: 900;
}

.organization-public-schedule p,
.organization-public-schedule small {
    color: var(--ts-muted);
    font-weight: 700;
}

.organization-site-location-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
}

.organization-teams-band,
.organization-directory-band {
    padding-top: 3.2rem;
}

.organization-directory-header {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1.5rem;
    max-width: none;
}

.organization-directory-count {
    color: var(--ts-muted);
    font-size: 0.9rem;
    font-weight: 800;
    white-space: nowrap;
}

.organization-team-tools,
.organization-directory-tools {
    display: grid;
    grid-template-columns: minmax(220px, 1fr) minmax(0, 1.5fr) minmax(160px, 210px);
    align-items: end;
    gap: 1rem;
    margin-bottom: 1.3rem;
    padding: 1rem;
    border: 1px solid var(--ts-line);
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.76);
    box-shadow: var(--ts-shadow-soft);
}

.organization-schedule-tools {
    grid-template-columns: minmax(220px, 1fr) minmax(160px, 0.8fr) minmax(160px, 0.8fr);
}

.organization-location-tools {
    grid-template-columns: minmax(220px, 1fr) minmax(160px, 220px);
}

.organization-schedule-tools .organization-directory-filter,
.organization-schedule-tools .organization-directory-actions {
    grid-column: span 1;
}

.organization-team-search,
.organization-team-sort,
.organization-team-filter,
.organization-directory-search,
.organization-directory-select,
.organization-directory-filter,
.organization-directory-actions {
    display: grid;
    gap: 0.45rem;
}

.organization-team-search > span,
.organization-team-sort > span,
.organization-team-filter > span,
.organization-directory-search > span,
.organization-directory-select > span,
.organization-directory-filter > span {
    color: var(--ts-muted);
    font-size: 0.72rem;
    font-weight: 900;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.organization-team-search .form-control,
.organization-team-sort .form-select,
.organization-directory-search .form-control,
.organization-directory-select .form-select {
    min-height: 42px;
    border-color: rgba(16, 25, 35, 0.13);
    border-radius: 8px;
    color: var(--ts-ink);
    font-weight: 800;
}

.organization-team-filter__options,
.organization-directory-filter__options {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
}

.organization-team-filter__options button,
.organization-directory-filter__options button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 34px;
    padding: 0.36rem 0.75rem;
    border: 1px solid rgba(16, 25, 35, 0.12);
    border-radius: 999px;
    color: var(--ts-ink);
    background: #ffffff;
    font-size: 0.78rem;
    font-weight: 900;
    transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}

.organization-team-filter__options button:hover,
.organization-team-filter__options button:focus,
.organization-directory-filter__options button:hover,
.organization-directory-filter__options button:focus {
    border-color: rgba(15, 118, 95, 0.32);
    color: #0f5f4d;
}

.organization-team-filter__options button.active,
.organization-directory-filter__options button.active {
    border-color: #14202b;
    color: #ffffff;
    background: #14202b;
}

.organization-directory-actions {
    grid-template-columns: repeat(2, minmax(0, auto));
    align-items: end;
    justify-content: end;
}

.organization-directory-actions .btn {
    min-height: 42px;
    font-weight: 900;
}

.organization-team-sport-group__header span,
.organization-schedule-row__meta span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 32px;
    padding: 0.34rem 0.7rem;
    border: 1px solid rgba(16, 25, 35, 0.10);
    border-radius: 999px;
    color: var(--ts-ink);
    background: #ffffff;
    font-size: 0.76rem;
    font-weight: 900;
}

.organization-team-directory {
    display: grid;
    gap: 1.35rem;
}

.organization-team-empty {
    margin-top: 1.25rem;
}

.organization-directory-empty {
    margin-top: 1.25rem;
}

.organization-team-section {
    border: 1px solid var(--ts-line);
    border-radius: 8px;
    background: #ffffff;
    box-shadow: var(--ts-shadow-soft);
    overflow: hidden;
}

.organization-team-section__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem 1.1rem;
    border-bottom: 1px solid var(--ts-line);
    background: linear-gradient(180deg, #ffffff, #f8fbfc);
}

.organization-team-section__label {
    display: block;
    margin-bottom: 0.18rem;
    color: var(--ts-muted);
    font-size: 0.72rem;
    font-weight: 900;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.organization-team-section__header h3 {
    margin: 0;
    color: var(--ts-ink);
    font-size: 1.18rem;
    font-weight: 900;
}

.organization-team-section__header > span {
    color: var(--ts-muted);
    font-size: 0.86rem;
    font-weight: 800;
}

.organization-team-sport-group {
    display: grid;
    grid-template-columns: minmax(130px, 180px) minmax(0, 1fr);
    gap: 0;
    border-top: 1px solid rgba(16, 25, 35, 0.07);
}

.organization-team-sport-group:first-of-type {
    border-top: 0;
}

.organization-team-sport-group__header {
    padding: 1rem;
    background: #fbfcfd;
    border-right: 1px solid rgba(16, 25, 35, 0.07);
}

.organization-team-sport-group__header span {
    color: color-mix(in srgb, var(--ts-green) 88%, #000000);
    border-color: rgba(15, 118, 95, 0.18);
    background: rgba(15, 118, 95, 0.07);
}

.organization-site-team-list {
    display: grid;
}

.organization-site-team-card {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto;
    align-items: center;
    gap: 1rem;
    min-height: 86px;
    padding: 0.9rem 1rem;
    border-bottom: 1px solid rgba(16, 25, 35, 0.07);
    color: var(--ts-ink);
    background: #ffffff;
    text-decoration: none;
    transition: background-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

.organization-site-team-card:last-child {
    border-bottom: 0;
}

.organization-site-team-card:hover,
.organization-site-team-card:focus {
    color: var(--ts-ink);
    background: color-mix(in srgb, var(--team-primary, #0d6efd) 4%, #ffffff);
    box-shadow: inset 4px 0 0 var(--team-primary, #0d6efd);
    text-decoration: none;
    transform: translateY(-1px);
}

.organization-site-team-card__identity {
    display: flex;
    align-items: center;
    gap: 0.9rem;
    min-width: 0;
}

.organization-site-team-card__identity > span:last-child {
    min-width: 0;
}

.organization-site-team-card img,
.organization-site-team-card__mark {
    flex: 0 0 auto;
    width: 52px;
    height: 52px;
    border-radius: 8px;
    object-fit: cover;
}

.organization-site-team-card__mark {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #ffffff;
    background: linear-gradient(135deg, var(--team-primary, #0d6efd), var(--team-secondary, #20c997));
    font-size: 1.5rem;
    font-weight: 900;
}

.organization-site-team-card__identity small {
    display: block;
    margin-bottom: 0.16rem;
    color: var(--ts-muted);
    font-size: 0.75rem;
    font-style: normal;
    font-weight: 900;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.organization-site-team-card strong,
.organization-site-location-card h3 {
    display: block;
    min-width: 0;
    overflow-wrap: anywhere;
    color: var(--ts-ink);
    font-size: 1.28rem;
    font-weight: 900;
    line-height: 1.2;
}

.organization-site-team-card__meta {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 0.45rem;
    color: var(--ts-muted);
    font-size: 0.92rem;
    font-weight: 900;
    white-space: nowrap;
}

.organization-site-team-card__meta span {
    color: inherit;
}

.organization-site-team-card__meta span + span {
    color: color-mix(in srgb, var(--ts-muted) 72%, #ffffff);
    font-weight: 700;
}

.organization-site-team-card__action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 38px;
    padding: 0.5rem 0.82rem;
    border-radius: 6px;
    color: #ffffff;
    background: #14202b;
    font-size: 0.82rem;
    font-weight: 900;
    white-space: nowrap;
}

.organization-public-schedule {
    gap: 0;
    border: 1px solid var(--ts-line);
    border-radius: 8px;
    background: #ffffff;
    box-shadow: var(--ts-shadow-soft);
    overflow: hidden;
}

.organization-public-schedule article.organization-schedule-row {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 1rem;
    padding: 1rem;
    border: 0;
    border-bottom: 1px solid rgba(16, 25, 35, 0.07);
    border-radius: 0;
    background: #ffffff;
    box-shadow: none;
}

.organization-public-schedule article.organization-schedule-row:last-child {
    border-bottom: 0;
}

.organization-schedule-row__main {
    min-width: 0;
}

.organization-schedule-row__main h3 {
    overflow-wrap: anywhere;
}

.organization-schedule-row__meta {
    display: flex;
    justify-content: flex-end;
}

.organization-schedule-row__meta span {
    color: var(--ts-muted);
    background: #f8fbfc;
}

.organization-site-location-list {
    display: grid;
    border: 1px solid var(--ts-line);
    border-radius: 8px;
    background: #ffffff;
    box-shadow: var(--ts-shadow-soft);
    overflow: hidden;
}

.organization-site-location-grid-modern {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 0.8rem;
}

.organization-site-location-card {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 1rem;
    min-height: 92px;
    padding: 1rem;
    border: 0;
    border-bottom: 1px solid rgba(16, 25, 35, 0.07);
    border-radius: 0;
    color: var(--ts-ink);
    background: #ffffff;
    box-shadow: none;
    cursor: pointer;
    text-decoration: none;
    transition: border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;
}

.organization-site-location-card > div,
.organization-site-location-card__actions,
.organization-location-detail-main,
.organization-location-detail-map,
.organization-public-schedule article,
.schedule-list-item__body,
.organization-widget,
.team-site-hero__copy,
.organization-site-hero__copy {
    min-width: 0;
}

.organization-site-location-grid-modern .organization-site-location-card {
    border: 1px solid var(--ts-line);
    border-radius: 8px;
    box-shadow: var(--ts-shadow-soft);
}

.organization-site-location-grid-modern .organization-site-location-card:hover,
.organization-site-location-grid-modern .organization-site-location-card:focus-visible {
    border-color: rgba(15, 118, 95, 0.28);
    box-shadow: 0 16px 34px rgba(16, 25, 35, 0.1);
    transform: translateY(-1px);
}

.organization-site-location-grid-modern .organization-site-location-card:focus-visible {
    outline: 3px solid rgba(32, 201, 151, 0.22);
    outline-offset: 3px;
}

.organization-site-location-card:last-child {
    border-bottom: 0;
}

.organization-site-location-card h3 a {
    color: inherit;
    overflow-wrap: anywhere;
    text-decoration: none;
}

.organization-site-location-card h3 a:hover,
.organization-site-location-card h3 a:focus {
    color: var(--ts-blue);
}

.organization-site-location-card__label {
    display: block;
    margin-bottom: 0.16rem;
    color: var(--ts-muted);
    font-size: 0.72rem;
    font-weight: 900;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.organization-site-location-card__count {
    color: var(--ts-muted);
    font-size: 0.86rem;
    font-weight: 800;
    white-space: nowrap;
}

.organization-site-location-card__actions {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 0.45rem;
}

.organization-site-location-card__map-status {
    color: #198754;
    font-size: 0.72rem;
    font-weight: 900;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.organization-contact-heading {
    max-width: 760px;
    margin: 0 auto 1.35rem;
    text-align: center;
}

.organization-contact-heading h2 {
    margin: 0;
    color: var(--ts-ink);
    font-size: clamp(1.9rem, 3vw, 2.5rem);
    font-weight: 900;
}

.organization-contact-heading p:not(.section-eyebrow) {
    margin: 0.35rem 0 0;
    color: var(--ts-muted);
    font-size: 1.05rem;
    font-weight: 800;
}

.organization-contact-grid {
    display: grid;
    gap: 1rem;
    margin: 0 auto;
}

.organization-contact-grid--single {
    grid-template-columns: minmax(0, 1fr);
    max-width: 620px;
}

.organization-contact-grid--multi {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    max-width: 920px;
}

.organization-contact-grid--odd .organization-contact-card:last-child {
    grid-column: 1 / -1;
    justify-self: center;
    width: min(100%, 620px);
}

.organization-contact-card {
    display: grid;
    align-content: start;
    gap: 0.34rem;
    min-height: 170px;
    padding: 1.15rem;
    border: 1px solid var(--ts-line);
    border-radius: 8px;
    background: #ffffff;
    color: var(--ts-ink);
    box-shadow: var(--ts-shadow-soft);
}

.organization-contact-card strong {
    color: var(--ts-ink);
    font-size: 1.25rem;
    font-weight: 900;
    line-height: 1.2;
    overflow-wrap: anywhere;
}

.organization-contact-card span {
    margin-bottom: 0.35rem;
    color: var(--ts-muted);
    font-size: 0.88rem;
    font-weight: 800;
}

.organization-contact-card a {
    color: var(--ts-ink);
    font-weight: 800;
    overflow-wrap: anywhere;
    text-decoration: none;
}

.organization-contact-card a:hover,
.organization-contact-card a:focus {
    color: var(--ts-blue);
    text-decoration: none;
}

.organization-site-location-card p {
    color: var(--ts-muted);
    font-style: normal;
    font-weight: 700;
}

.organization-site-rules p {
    white-space: pre-line;
}

.organization-location-detail-band {
    padding-top: 2rem;
    scroll-margin-top: 88px;
}

.organization-location-detail-layout {
    display: grid;
    grid-template-columns: minmax(0, 0.82fr) minmax(420px, 1.18fr);
    gap: 2.4rem;
    align-items: start;
}

.organization-location-detail-title {
    max-width: 920px;
    margin-bottom: 2rem;
    padding-left: 0.35rem;
}

.organization-location-detail-title h1 {
    margin: 0.25rem 0 0.75rem;
    color: var(--ts-ink);
    font-size: clamp(2.4rem, 5vw, 4.25rem);
    font-weight: 900;
    line-height: 1.05;
}

.organization-location-detail-main {
    padding-left: 0.35rem;
}

.organization-location-detail-address {
    color: #3e4d5f;
    font-size: 1.1rem;
    font-weight: 800;
}

.organization-location-detail-notes {
    color: var(--ts-muted);
    font-size: 1rem;
    line-height: 1.65;
}

.organization-location-detail-sections {
    display: grid;
    gap: 0.9rem;
}

.organization-location-detail-sections section,
.organization-location-tag-section,
.location-coordinate-status {
    border: 1px solid var(--ts-line);
    border-radius: 8px;
    background: #ffffff;
    padding: 1.05rem;
}

.organization-location-tag-section {
    margin-top: 0.9rem;
}

.organization-location-detail-sections h2,
.organization-location-tag-section h2 {
    margin: 0 0 0.45rem;
    color: var(--ts-muted);
    font-size: 0.75rem;
    font-weight: 900;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.organization-location-detail-sections p {
    margin: 0;
    color: var(--ts-ink);
    font-weight: 800;
    white-space: pre-line;
}

.organization-location-hours-list {
    display: grid;
    gap: 0.45rem;
}

.organization-location-hours-list div {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
}

.organization-location-hours-list span {
    color: var(--ts-muted);
    font-weight: 800;
}

.organization-location-hours-list strong {
    color: var(--ts-ink);
    text-align: right;
}

.organization-location-detail-map {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.organization-location-leaflet-map {
    height: 430px;
    min-height: 0;
    border: 1px solid var(--ts-line);
    border-radius: 8px;
    background: #dde6ee;
    overflow: hidden;
}

.organization-location-leaflet-map .leaflet-control-container {
    display: none;
}

.organization-location-detail-schedule {
    margin-top: 3rem;
}

.organization-location-detail-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-top: 0.35rem;
}

.organization-location-detail-tags span {
    display: inline-flex;
    align-items: center;
    min-height: 32px;
    padding: 0.35rem 0.7rem;
    border: 1px solid rgba(15, 118, 95, 0.22);
    border-radius: 999px;
    color: #0f5132;
    background: #eaf7f1;
    font-size: 0.86rem;
    font-weight: 900;
}

.location-coordinate-status {
    color: var(--ts-muted);
    font-size: 0.9rem;
    font-weight: 800;
}

.location-management-shell {
    display: grid;
    gap: 1rem;
}

.location-management-summary {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
}

.location-management-summary div {
    padding: 1rem;
    border: 1px solid var(--ts-line);
    border-radius: 8px;
    background: #ffffff;
    box-shadow: var(--ts-shadow-soft);
}

.location-management-summary span {
    display: block;
    color: var(--ts-muted);
    font-size: 0.76rem;
    font-weight: 900;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.location-management-summary strong {
    display: block;
    margin-top: 0.25rem;
    color: var(--ts-ink);
    font-size: 1.8rem;
    font-weight: 900;
}

.location-management-toolbar {
    display: grid;
    grid-template-columns: minmax(260px, 1fr) repeat(3, minmax(150px, 180px));
    gap: 1rem;
    align-items: end;
    padding: 1rem;
    border: 1px solid var(--ts-line);
    border-radius: 8px;
    background: #ffffff;
    box-shadow: var(--ts-shadow-soft);
}

.location-management-search,
.location-management-select {
    display: grid;
    gap: 0.35rem;
}

.location-management-search span,
.location-management-select span {
    color: var(--ts-muted);
    font-size: 0.76rem;
    font-weight: 900;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.location-management-table-wrap {
    border: 1px solid var(--ts-line);
    border-radius: 8px;
    background: #ffffff;
    box-shadow: var(--ts-shadow-soft);
    overflow-x: visible;
}

.location-management-table {
    width: 100%;
}

.location-management-table thead th {
    color: var(--ts-muted);
    font-size: 0.76rem;
    font-weight: 900;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    white-space: nowrap;
}

.location-management-table td {
    min-width: 0;
}

.location-management-table td:first-child {
    min-width: 180px;
}

.location-management-table strong {
    display: block;
    color: var(--ts-ink);
    font-weight: 900;
}

.location-management-table small {
    display: block;
    color: var(--ts-muted);
    font-weight: 700;
}

.location-management-empty,
.location-management-empty-state {
    margin: 1rem;
}

.location-management-onboarding {
    display: grid;
    justify-items: center;
    gap: 0.75rem;
    padding: clamp(2rem, 5vw, 4rem) 1.25rem;
    border: 1px solid var(--ts-line);
    border-radius: 8px;
    background: linear-gradient(180deg, #ffffff 0%, #f8fbfc 100%);
    box-shadow: var(--ts-shadow-soft);
}

.location-management-onboarding h2 {
    margin: 0;
    color: var(--ts-ink);
    font-size: clamp(1.45rem, 2.6vw, 2rem);
    font-weight: 900;
}

.location-management-onboarding p {
    max-width: 560px;
    margin: 0 0 0.35rem;
    color: var(--ts-muted);
    font-weight: 750;
    line-height: 1.6;
}

.location-modal-dialog {
    max-height: calc(100vh - 6rem) !important;
    margin: 3rem auto !important;
}

.location-modal-dialog.modal-dialog-scrollable {
    height: auto !important;
}

.location-modal-dialog.modal-dialog-scrollable .modal-content {
    display: flex;
    flex-direction: column;
    max-height: calc(100vh - 6rem) !important;
    overflow: hidden;
}

.location-modal-dialog.modal-dialog-scrollable .modal-body {
    flex: 1 1 auto;
    min-height: 0;
    max-height: calc(100vh - 16rem);
    overflow-y: auto;
    overscroll-behavior: contain;
}

html.modal-open,
body.modal-open {
    overflow: hidden !important;
}

.location-form-panel {
    border: 0;
    border-radius: 8px;
    background: linear-gradient(180deg, #f9fbfc 0%, #f3f7f8 100%);
    padding: 0.9rem;
}

.location-form-panel-header {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 0.75rem;
}

.location-form-panel-header h3 {
    margin: 0;
    color: var(--ts-ink);
    font-size: 1rem;
    font-weight: 900;
}

.location-form-panel-header p {
    margin: 0.15rem 0 0;
    color: rgba(18, 33, 44, 0.62);
    font-size: 0.84rem;
    font-weight: 650;
}

.location-hours-accordion .accordion-item {
    border: 1px solid rgba(16, 25, 35, 0.1);
    border-radius: 8px;
    overflow: hidden;
    background: #ffffff;
    box-shadow: 0 10px 26px rgba(16, 25, 35, 0.04);
}

.location-hours-accordion .accordion-button {
    min-height: 58px;
    background: #ffffff;
    color: var(--ts-ink);
    box-shadow: none;
    padding: 0.85rem 1rem;
}

.location-hours-accordion .accordion-button:not(.collapsed) {
    background: #f7fbfa;
    color: var(--ts-ink);
    box-shadow: inset 0 -1px 0 rgba(16, 25, 35, 0.08);
}

.location-hours-toggle > span {
    display: grid;
    gap: 0.1rem;
}

.location-hours-toggle strong {
    font-size: 0.95rem;
    font-weight: 900;
}

.location-hours-toggle small {
    color: rgba(18, 33, 44, 0.58);
    font-size: 0.76rem;
    font-weight: 700;
}

.location-hours-accordion .accordion-body {
    padding: 0.85rem;
}

.location-hours-grid {
    display: grid;
    gap: 0.45rem;
}

.location-hours-visibility {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 0.7rem;
    border: 1px solid rgba(16, 25, 35, 0.08);
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.82);
    padding: 0.7rem 0.8rem;
}

.location-hours-visibility strong,
.location-hours-visibility span {
    display: block;
}

.location-hours-visibility strong {
    color: var(--ts-ink);
    font-size: 0.9rem;
    font-weight: 900;
}

.location-hours-visibility span {
    color: rgba(18, 33, 44, 0.58);
    font-size: 0.78rem;
    font-weight: 700;
}

.location-hours-visibility .form-check {
    min-height: 0;
    margin: 0;
    padding-left: 2.75rem;
}

.location-hours-visibility .form-check-input {
    cursor: pointer;
}

.location-hours-row {
    display: grid;
    grid-template-columns: minmax(105px, 0.62fr) repeat(2, minmax(130px, 1fr));
    gap: 0.55rem;
    align-items: end;
    border: 1px solid rgba(16, 25, 35, 0.08);
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.84);
    padding: 0.55rem;
}

.location-hours-row > span {
    display: inline-flex;
    min-height: 42px;
    align-items: center;
    border-radius: 8px;
    background: rgba(32, 201, 151, 0.1);
    color: var(--ts-ink);
    padding: 0 0.7rem;
    font-weight: 900;
}

.location-hours-row label {
    display: grid;
    gap: 0.22rem;
    margin: 0;
}

.location-hours-row label span {
    color: rgba(18, 33, 44, 0.54);
    font-size: 0.68rem;
    font-weight: 900;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.location-hours-row .form-control {
    min-height: 42px;
    border-color: rgba(16, 25, 35, 0.1);
    border-radius: 8px;
    background: #ffffff;
    font-weight: 750;
}

@media (max-width: 767px) {
    .location-hours-accordion .accordion-body {
        padding: 0.65rem;
    }

    .location-form-panel {
        padding: 0.65rem;
    }

    .location-hours-row {
        grid-template-columns: 1fr;
    }

    .location-hours-visibility {
        align-items: flex-start;
    }
}

.location-tag-picker {
    position: relative;
}

.location-tag-picker-button {
    display: flex;
    width: 100%;
    min-height: 42px;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    border: 1px solid var(--ts-line);
    border-radius: 8px;
    background: #ffffff;
    color: var(--ts-ink);
    padding: 0.55rem 0.75rem;
    font-weight: 400;
    letter-spacing: 0.01em;
}

.location-tag-picker-button::after {
    flex: 0 0 auto;
    width: 1.25rem;
    height: 1.25rem;
    margin-left: auto;
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23101a24' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='M2 5l6 6 6-6'/%3e%3c/svg%3e");
    background-repeat: no-repeat;
    background-position: center;
    background-size: 1rem;
    content: "";
    transition: transform 0.2s ease-in-out;
}

.location-tag-picker-button.is-open::after {
    transform: rotate(-180deg);
}

.location-tag-picker-button span {
    font-weight: 400;
}

.location-tag-selected-pills {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    margin-top: 0.55rem;
}

.location-tag-selected-pills[hidden] {
    display: none;
}

.location-tag-selected-pills span {
    display: inline-flex;
    min-height: 30px;
    align-items: center;
    border: 1px solid rgba(15, 118, 95, 0.2);
    border-radius: 999px;
    background: rgba(32, 201, 151, 0.12);
    color: #0f5132;
    padding: 0 0.7rem;
    font-size: 0.78rem;
    font-weight: 850;
}

.location-tag-picker-menu {
    position: absolute;
    z-index: 2000;
    top: calc(100% + 0.45rem);
    left: 0;
    min-width: 100%;
    max-width: min(100vw - 2rem, 360px);
    display: grid;
    gap: 0.35rem;
    max-height: calc(100vh - 8rem);
    overflow-y: auto;
    border: 1px solid var(--ts-line);
    border-radius: 8px;
    background: #ffffff;
    box-shadow: var(--ts-shadow-soft);
    padding: 0.45rem;
    box-sizing: border-box;
}

.location-tag-option {
    border: 1px solid transparent;
    border-radius: 8px;
    background: transparent;
    color: var(--ts-ink);
    padding: 0.55rem 0.65rem;
    text-align: left;
    font-weight: 400;
}

.location-tag-option:hover,
.location-tag-option:focus {
    border-color: rgba(15, 118, 95, 0.22);
    background: #f1f7f5;
}

.location-tag-option.is-selected {
    border-color: rgba(15, 118, 95, 0.3);
    background: #dff3eb;
    color: #0f5132;
    font-weight: 500;
}

.billing-promo-actions {
    display: grid;
    gap: 1rem;
}

.billing-promo-form {
    display: grid;
    gap: 0.8rem;
    min-width: 0;
    border: 1px solid #dce4ec;
    border-radius: 8px;
    background: #ffffff;
    padding: 0.85rem;
}

.billing-promo-form__header {
    display: grid;
    gap: 0.15rem;
}

.billing-promo-form__header strong {
    color: #14202b;
    font-size: 0.95rem;
    font-weight: 850;
}

.billing-promo-form__header span {
    color: #647587;
    font-size: 0.86rem;
    font-weight: 700;
}

.billing-promo-form__fields {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr));
    gap: 0.65rem;
    align-items: end;
}

.billing-promo-form__fields label {
    display: grid;
    gap: 0.25rem;
    min-width: 0;
    margin: 0;
}

.billing-promo-form__fields label span {
    color: #526578;
    font-size: 0.8rem;
    font-weight: 800;
}

.billing-promo-form__action .btn {
    width: 100%;
    white-space: normal;
}

@media (max-width: 575.98px) {
    .billing-promo-form__fields {
        grid-template-columns: 1fr;
    }
}

.organization-signup-panel {
    padding: 1.2rem;
    border: 1px solid var(--ts-line);
    border-radius: 8px;
    background: #ffffff;
    box-shadow: var(--ts-shadow-soft);
}

.organization-signup-panel h2 {
    color: var(--ts-ink);
    font-size: 1.6rem;
    font-weight: 900;
}

.organization-signup-panel .form-label {
    color: var(--ts-ink);
    font-weight: 800;
}

.organization-signup-choice-list {
    display: grid;
    gap: 0.75rem;
}

.organization-signup-choice-page,
.organization-signup-choice-page a,
.organization-signup-choice-list a,
.organization-signup-type-switch a {
    color: var(--ts-ink);
    text-decoration: none;
}

.organization-signup-choice-page {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
    max-width: 780px;
}

.organization-signup-choice-page a,
.organization-signup-choice-list a {
    display: grid;
    gap: 0.2rem;
    padding: 1.1rem;
    border: 1px solid var(--ts-line);
    border-radius: 8px;
    background: #ffffff;
    box-shadow: var(--ts-shadow-soft);
}

.organization-signup-choice-page a:hover,
.organization-signup-choice-page a:focus,
.organization-signup-choice-list a:hover,
.organization-signup-choice-list a:focus {
    border-color: rgba(15, 118, 95, 0.32);
}

.organization-signup-choice-page strong,
.organization-signup-choice-list strong {
    font-weight: 900;
}

.organization-signup-choice-page span,
.organization-signup-choice-list span {
    color: var(--ts-muted);
    font-weight: 700;
}

.organization-signup-flow {
    padding-top: 2.75rem;
}

.organization-signup-flow__header {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1.5rem;
    width: 100%;
    max-width: 980px;
    margin-bottom: 1.25rem;
    margin-left: auto;
    margin-right: auto;
    scroll-margin-top: 4.5rem;
}

.organization-signup-flow__header h2 {
    color: var(--ts-ink);
    font-size: 2rem;
    font-weight: 900;
}

.organization-signup-flow__header p {
    max-width: 720px;
    color: var(--ts-muted);
    font-weight: 700;
    line-height: 1.7;
}

.organization-signup-flow--choice .organization-signup-flow__header {
    justify-content: center;
    text-align: center;
}

.organization-signup-flow--choice .organization-signup-flow__header > div {
    max-width: 760px;
}

.organization-signup-flow--choice .organization-signup-flow__header p {
    margin-left: auto;
    margin-right: auto;
}

.organization-signup-flow--choice .organization-signup-choice-page {
    margin-left: auto;
    margin-right: auto;
}

.organization-signup-flow--choice .organization-signup-choice-page a {
    justify-items: center;
    min-height: 118px;
    text-align: center;
}

.organization-signup-type-switch {
    display: inline-flex;
    gap: 0.35rem;
    padding: 0.35rem;
    border: 1px solid var(--ts-line);
    border-radius: 8px;
    background: #ffffff;
    box-shadow: var(--ts-shadow-soft);
}

.organization-signup-type-switch a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 40px;
    min-width: 92px;
    padding: 0.55rem 0.85rem;
    border-radius: 6px;
    font-weight: 900;
}

.organization-signup-type-switch a.active {
    color: #ffffff;
    background: #0f765f;
}

.organization-signup-form,
.organization-signup-step {
    display: grid;
    gap: 1rem;
}

.organization-signup-form {
    width: 100%;
    max-width: 980px;
    margin-left: auto;
    margin-right: auto;
}

.organization-signup-step {
    padding: 1.25rem;
    border: 1px solid var(--ts-line);
    border-radius: 8px;
    background: #ffffff;
    box-shadow: var(--ts-shadow-soft);
}

.organization-signup-step > div:first-child {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.organization-signup-step > div:first-child span {
    display: none;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    border-radius: 999px;
    color: #ffffff;
    background: #0f765f;
    font-weight: 900;
}

.organization-signup-step h3 {
    margin: 0;
    color: var(--ts-ink);
    font-size: 1.25rem;
    font-weight: 900;
}

.organization-signup-access-field {
    max-width: 100%;
}

.organization-child-list {
    display: grid;
    gap: 1rem;
}

.organization-child-card {
    display: grid;
    gap: 1rem;
    padding: 1rem;
    border: 1px solid rgba(16, 25, 35, 0.10);
    border-radius: 8px;
    background: #f8fbfc;
}

.organization-child-card__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

.organization-child-card__header h4 {
    margin: 0;
    color: var(--ts-ink);
    font-size: 1rem;
    font-weight: 900;
}

.organization-signup-step .form-label,
.organization-signup-step .form-check-label {
    color: var(--ts-ink);
    font-weight: 800;
}

.organization-signup-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
}

@media (max-width: 767px) {
    .organization-public-filters,
    .organization-team-tools,
    .organization-directory-tools,
    .organization-widget-grid,
    .organization-site-two-column,
    .organization-site-signup-grid,
    .organization-site-location-grid,
    .organization-public-schedule article {
        grid-template-columns: 1fr;
    }

    .organization-team-section__header {
        align-items: flex-start;
        flex-direction: column;
    }

    .organization-directory-header {
        align-items: flex-start;
        flex-direction: column;
    }

    .organization-directory-count {
        white-space: normal;
    }

    .organization-directory-actions {
        grid-template-columns: 1fr;
        justify-content: stretch;
    }

    .organization-directory-search,
    .organization-directory-select,
    .organization-directory-filter,
    .organization-directory-actions,
    .organization-team-search,
    .organization-team-sort,
    .organization-team-filter {
        min-width: 0;
    }

    .organization-public-schedule article.organization-schedule-row,
    .organization-site-location-card {
        grid-template-columns: 1fr;
    }

    .organization-schedule-row__meta {
        justify-content: flex-start;
    }

    .organization-site-location-card__count {
        white-space: normal;
    }

    .organization-site-location-card__actions {
        align-items: stretch;
        width: 100%;
    }

    .organization-site-location-card__actions .secondary-link {
        justify-content: center;
        width: 100%;
    }

    .organization-team-sport-group,
    .organization-site-team-card,
    .organization-contact-grid {
        grid-template-columns: 1fr;
    }

    .organization-contact-grid--odd .organization-contact-card:last-child {
        grid-column: auto;
        justify-self: stretch;
        width: 100%;
    }

    .organization-team-sport-group__header {
        border-right: 0;
        border-bottom: 1px solid rgba(16, 25, 35, 0.07);
    }

    .organization-site-team-card__meta {
        justify-content: flex-start;
    }

    .organization-site-team-card__action {
        width: 100%;
    }

    .organization-site-hero {
        padding-top: 3rem;
        min-height: auto;
    }

    .organization-site-hero h1,
    .team-site-hero h1 {
        font-size: clamp(2.45rem, 14vw, 3.5rem);
        line-height: 1;
        overflow-wrap: anywhere;
    }

    .organization-site-hero p,
    .team-site-hero p {
        font-size: 1rem;
    }

    .organization-public-subdash .container {
        flex-wrap: nowrap;
        overflow-x: auto;
        padding-bottom: 0.2rem;
        -webkit-overflow-scrolling: touch;
    }

    .organization-public-subdash__item {
        flex: 0 0 auto;
    }

    .organization-widget--small,
    .organization-widget--medium,
    .organization-widget--large {
        grid-column: 1;
    }

    .organization-public-subdash__item--primary {
        margin-left: 0;
    }

    .organization-widget-scroll-list a {
        align-items: flex-start;
        flex-direction: column;
    }

    .organization-widget-team-meta {
        justify-content: flex-start;
        white-space: normal;
    }
}

@media (min-width: 768px) and (max-width: 1099px) {
    .organization-site-location-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .organization-team-tools {
        grid-template-columns: minmax(220px, 1fr) minmax(220px, 1fr);
    }

    .organization-directory-tools,
    .organization-schedule-tools,
    .organization-location-tools {
        grid-template-columns: minmax(220px, 1fr) minmax(220px, 1fr);
    }

    .organization-team-filter {
        grid-column: 1 / -1;
    }

    .organization-schedule-tools .organization-directory-filter,
    .organization-schedule-tools .organization-directory-actions {
        grid-column: 1 / -1;
    }

    .organization-site-team-card {
        grid-template-columns: minmax(0, 1fr) auto;
    }

    .organization-site-team-card__action {
        grid-column: 1 / -1;
        justify-self: stretch;
    }

    .organization-widget--small,
    .organization-widget--medium {
        grid-column: span 6;
    }
}

.team-color-swatches {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
}

.page-builder-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(280px, 340px);
    gap: 1.5rem;
    align-items: start;
}

.page-builder-settings {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.4rem;
    align-items: start;
}

.page-builder-setting-card {
    display: grid;
    gap: 1rem;
    padding: 1.25rem;
    border: 1px solid var(--ts-line);
    border-radius: 8px;
    background: #ffffff;
    box-shadow: var(--ts-shadow-soft);
}

.page-builder-setting-card--banner {
    grid-column: 1 / -1;
    gap: 1.1rem;
}

.page-builder-setting-card--contact,
.page-builder-setting-card--rules {
    align-content: start;
    min-height: 100%;
}

.page-builder-setting-card__header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
}

.page-builder-setting-card__header h2 {
    margin: 0.15rem 0 0;
    color: var(--ts-ink);
    font-size: 1.2rem;
    font-weight: 900;
}

.page-builder-setting-card__header p {
    margin: 0.25rem 0 0;
    color: var(--ts-muted);
    font-weight: 700;
}

.page-builder-setting-card__header .btn {
    flex: 0 0 auto;
    box-shadow: none;
}

.page-builder-setting-card--banner .page-builder-setting-card__header {
    align-items: end;
}

.page-builder-setting-card--banner .page-builder-setting-card__header > div {
    max-width: 56rem;
}

.page-builder-setting-card--banner .page-builder-setting-card__header h2 {
    font-size: 1.45rem;
}

.page-builder-hero-preview {
    position: relative;
    overflow: hidden;
    min-height: clamp(220px, 24vw, 310px);
    border-radius: 8px;
    color: #ffffff;
    background:
        linear-gradient(90deg, rgba(8, 14, 22, 0.94), rgba(10, 31, 36, 0.74) 52%, rgba(6, 50, 33, 0.84)),
        linear-gradient(135deg, rgba(13, 110, 253, 0.24), rgba(32, 201, 151, 0.18), rgba(212, 160, 23, 0.11)),
        var(--organization-hero-image, url("../images/homeHeroGenerated.png")) center / cover no-repeat;
}

.page-builder-hero-preview::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        repeating-linear-gradient(105deg, rgba(255, 255, 255, 0.09) 0 1px, transparent 1px 64px),
        linear-gradient(180deg, rgba(255, 255, 255, 0.08), transparent 36%, rgba(0, 0, 0, 0.28));
}

.page-builder-hero-preview > div {
    position: absolute;
    left: 1rem;
    right: 1rem;
    bottom: 1rem;
}

.page-builder-hero-preview span {
    display: block;
    color: rgba(255, 255, 255, 0.74);
    font-size: 0.72rem;
    font-weight: 900;
    text-transform: uppercase;
}

.page-builder-hero-preview strong {
    display: block;
    max-width: 92%;
    margin-top: 0.25rem;
    font-size: clamp(1.6rem, 3vw, 2.4rem);
    font-weight: 900;
    line-height: 1;
}

.page-builder-setting-card__editor {
    padding-top: 1rem;
    border-top: 1px solid rgba(16, 25, 35, 0.08);
}

.page-builder-setting-card__editor.show,
.page-builder-setting-card__editor.collapsing {
    display: grid;
    gap: 0.9rem;
}

.page-builder-hero-form {
    display: grid;
    gap: 0.35rem;
}

.page-builder-hero-form .input-group {
    align-items: stretch;
}

.page-builder-hero-form .btn {
    box-shadow: none;
}

.page-builder-contact-preview {
    align-items: flex-start;
    gap: 0.85rem;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    padding: 0.95rem;
    border: 1px solid rgba(16, 25, 35, 0.08);
    border-radius: 8px;
    background: #f7f9fa;
}

.page-builder-setting-card--contact .page-builder-contact-preview,
.page-builder-setting-card--rules .page-builder-rules-preview {
    min-height: 128px;
}

.page-builder-contact-preview__status {
    width: 0.72rem;
    height: 0.72rem;
    margin-top: 0.24rem;
    border-radius: 999px;
    background: #d7dee4;
    box-shadow: 0 0 0 4px rgba(16, 25, 35, 0.05);
}

.page-builder-contact-preview__status.is-ready {
    background: #0f7660;
    box-shadow: 0 0 0 4px rgba(15, 118, 96, 0.1);
}

.page-builder-contact-preview__body {
    min-width: 0;
}

.page-builder-contact-preview span {
    display: block;
    margin-bottom: 0.18rem;
    color: var(--ts-muted);
    font-size: 0.72rem;
    font-weight: 900;
    text-transform: uppercase;
}

.page-builder-contact-preview strong {
    overflow-wrap: anywhere;
    color: var(--ts-ink);
    font-size: 0.98rem;
    font-weight: 850;
}

.page-builder-contact-preview p {
    overflow-wrap: anywhere;
    margin: 0.2rem 0 0;
    color: var(--ts-muted);
    font-size: 0.9rem;
    font-weight: 700;
    line-height: 1.35;
}

.page-builder-contact-form {
    display: grid;
    gap: 0.72rem;
}

.page-builder-rules-preview {
    display: grid;
    gap: 0.35rem;
    padding: 0.95rem;
    border: 1px solid rgba(16, 25, 35, 0.08);
    border-radius: 8px;
    background: #f7f9fa;
}

.page-builder-setting-card--rules .page-builder-rules-preview {
    align-content: start;
}

.page-builder-rules-preview span {
    color: var(--ts-muted);
    font-size: 0.72rem;
    font-weight: 900;
    text-transform: uppercase;
}

.page-builder-rules-preview strong {
    color: var(--ts-ink);
    font-size: 0.98rem;
    font-weight: 850;
}

.page-builder-rules-preview p {
    margin: 0;
    color: var(--ts-muted);
    font-size: 0.92rem;
    font-weight: 700;
    line-height: 1.5;
    white-space: pre-wrap;
}

.page-builder-rules-form {
    display: grid;
    gap: 0.75rem;
}

.page-builder-rules-form textarea {
    min-height: 220px;
    resize: vertical;
}

.page-builder-rules-form__actions {
    display: flex;
    justify-content: flex-end;
}

.page-builder-contact-list {
    display: grid;
    gap: 0.75rem;
}

.page-builder-contact-row {
    display: grid;
    gap: 0.75rem;
    padding: 0.85rem;
    border: 1px solid rgba(16, 25, 35, 0.08);
    border-radius: 8px;
    background: #f9fbfc;
}

.page-builder-contact-row__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
}

.page-builder-contact-row__header strong {
    color: var(--ts-ink);
    font-size: 0.92rem;
    font-weight: 900;
}

.page-builder-contact-row__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.75rem;
}

.page-builder-contact-form__split {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.75rem;
}

.page-builder-contact-form__actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 0.75rem;
}

.page-builder-workspace .btn,
.page-builder-add .btn,
.page-builder-settings .btn {
    border-radius: 6px;
}

.page-builder-workspace,
.page-builder-add {
    padding: 1.25rem;
    border: 1px solid var(--ts-line);
    border-radius: 8px;
    background: #ffffff;
    box-shadow: var(--ts-shadow-soft);
}

.page-builder-kicker {
    display: block;
    color: var(--ts-muted);
    font-size: 0.72rem;
    font-weight: 900;
    letter-spacing: 0;
    text-transform: uppercase;
}

.page-builder-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1rem;
}

.page-builder-toolbar h2,
.page-builder-add h2 {
    margin: 0.15rem 0 0;
    color: var(--ts-ink);
    font-size: 1.18rem;
    font-weight: 900;
}

.page-builder-toolbar p,
.page-builder-add p {
    margin: 0.25rem 0 0;
    color: var(--ts-muted);
    font-weight: 700;
}

.page-builder-list {
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: 1rem;
    padding: 1rem;
    border: 1px solid rgba(16, 25, 35, 0.08);
    border-radius: 14px;
    background: #f4f6f7;
}

.page-builder-widget {
    position: relative;
    overflow: hidden;
    display: grid;
    grid-template-columns: 1fr;
    gap: 0;
    align-content: start;
    min-height: var(--page-builder-widget-height, 168px);
    padding: 0;
    border: 1px solid rgba(16, 25, 35, 0.07);
    border-radius: 16px;
    background: #fbfbfa;
    box-shadow: 0 1px 2px rgba(16, 25, 35, 0.04), inset 0 1px 0 rgba(255, 255, 255, 0.82);
    cursor: pointer;
    transition:
        min-height 240ms cubic-bezier(0.2, 0.8, 0.2, 1),
        border-color 200ms ease,
        box-shadow 200ms ease,
        transform 200ms ease,
        background-color 200ms ease;
}

.page-builder-widget--small {
    grid-column: span 4;
}

.page-builder-widget--medium {
    grid-column: span 6;
}

.page-builder-widget--large {
    grid-column: span 12;
}

.page-builder-widget.is-dragging {
    opacity: 0.62;
    transform: scale(0.992);
}

.page-builder-widget.drag-over {
    border-color: rgba(15, 118, 95, 0.42);
    box-shadow: 0 0 0 4px rgba(32, 201, 151, 0.12);
}

.page-builder-widget:not(.is-selected):not(.is-panel-open):not(.is-dragging):hover,
.page-builder-widget:not(.is-selected):not(.is-panel-open):not(.is-dragging):focus-visible {
    border-color: rgba(16, 25, 35, 0.14);
    background: #ffffff;
    box-shadow: 0 16px 34px rgba(16, 25, 35, 0.09), inset 0 1px 0 rgba(255, 255, 255, 0.92);
    transform: translateY(-2px);
}

.page-builder-widget:not(.is-selected):not(.is-panel-open):not(.is-dragging):hover .page-builder-widget__summary,
.page-builder-widget:not(.is-selected):not(.is-panel-open):not(.is-dragging):focus-visible .page-builder-widget__summary {
    transform: translateY(-1px);
}

.page-builder-widget:not(.is-selected):not(.is-panel-open):not(.is-dragging):hover .page-builder-widget__drag,
.page-builder-widget:not(.is-selected):not(.is-panel-open):not(.is-dragging):focus-visible .page-builder-widget__drag {
    opacity: 0.62;
}

.page-builder-widget__drag {
    position: absolute;
    top: 0.85rem;
    left: 0.85rem;
    z-index: 4;
    width: 24px;
    padding-top: 0;
    opacity: 0.34;
    cursor: grab;
    transition: opacity 180ms ease;
}

.page-builder-widget__drag span {
    display: block;
    height: 3px;
    margin-bottom: 4px;
    border-radius: 999px;
    background: rgba(16, 25, 35, 0.18);
}

.page-builder-widget__summary,
.page-builder-widget__controls,
.page-builder-widget__content {
    min-width: 0;
}

.page-builder-widget__summary {
    display: grid;
    place-items: center;
    min-height: var(--page-builder-widget-height, 168px);
    padding: 2.8rem 1.1rem;
    text-align: center;
    transition: opacity 220ms ease, transform 220ms cubic-bezier(0.2, 0.8, 0.2, 1), filter 220ms ease;
}

.page-builder-catalog-card span {
    color: var(--ts-muted);
    font-size: 0.68rem;
    font-weight: 900;
    text-transform: uppercase;
}

.page-builder-widget__summary h3,
.page-builder-catalog-card h3 {
    margin: 0;
    color: var(--ts-ink);
    font-size: 1.08rem;
    font-weight: 900;
}

.page-builder-widget__summary p {
    margin: 0.18rem 0 0;
    color: rgba(16, 25, 35, 0.54);
    font-size: 0.82rem;
    font-weight: 500;
}

.page-builder-catalog-card p {
    margin: 0;
    color: var(--ts-muted);
    font-size: 0.88rem;
    font-weight: 700;
}

.page-builder-widget__controls {
    grid-column: 1 / -1;
    grid-template-columns: 1fr;
}

.page-builder-widget__content {
    grid-column: 1 / -1;
}

.page-builder-widget__controls,
.page-builder-widget__content {
    position: absolute;
    inset: 0;
    z-index: 5;
    display: grid;
    gap: 0.7rem;
    align-content: start;
    min-width: 0;
    min-height: 100%;
    padding: 1rem;
    border-radius: 16px;
    background: #f7f8f8;
    opacity: 0;
    pointer-events: none;
    transform: scale(0.985) translateY(8px);
    transition: opacity 230ms ease, transform 260ms cubic-bezier(0.2, 0.8, 0.2, 1);
}

.page-builder-widget__controls.is-active,
.page-builder-widget__content.is-active {
    opacity: 1;
    pointer-events: auto;
    transform: scale(1) translateY(0);
}

.page-builder-widget__controls.is-exiting,
.page-builder-widget__content.is-exiting {
    opacity: 0;
    transform: scale(0.985) translateY(8px);
}

.page-builder-widget.is-panel-open {
    cursor: default;
}

.page-builder-widget.is-sizing {
    min-height: var(--page-builder-widget-panel-height, 198px);
}

.page-builder-widget.is-editing {
    min-height: var(--page-builder-widget-panel-height, 360px);
}

.page-builder-widget.is-panel-open .page-builder-widget__summary {
    opacity: 0;
    filter: blur(3px);
    transform: scale(0.975) translateY(-6px);
}

.page-builder-widget__panel-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    min-height: 42px;
    margin-bottom: 0.1rem;
}

.page-builder-widget__panel-header span {
    color: var(--ts-ink);
    font-size: 0.86rem;
    font-weight: 900;
}

.page-builder-widget__panel-close {
    display: inline-grid;
    place-items: center;
    width: 34px;
    height: 34px;
    border: 0;
    border-radius: 999px;
    color: rgba(16, 25, 35, 0.68);
    background: rgba(16, 25, 35, 0.06);
    transition: color 160ms ease, background-color 160ms ease, transform 160ms ease;
}

.page-builder-widget__panel-close .page-builder-icon {
    width: 16px;
    height: 16px;
}

.page-builder-widget__panel-close .page-builder-icon--remove::before,
.page-builder-widget__panel-close .page-builder-icon--remove::after {
    left: 1px;
    top: 7px;
    width: 14px;
    height: 2px;
}

.page-builder-widget__panel-close:hover,
.page-builder-widget__panel-close:focus {
    color: var(--ts-ink);
    background: rgba(16, 25, 35, 0.1);
    transform: translateY(-1px);
}

.page-builder-widget__visibility {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    min-height: 42px;
    margin-bottom: 0.8rem;
    padding: 0.7rem 0.8rem;
    border: 1px solid rgba(16, 25, 35, 0.08);
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.72);
}

.page-builder-switch {
    min-height: 38px;
    display: flex;
    align-items: center;
}

.page-builder-widget__readonly {
    margin: 0;
    color: var(--ts-muted);
    font-size: 0.88rem;
    font-weight: 700;
}

.page-builder-widget--org-post .page-builder-widget__summary h3 {
    font-size: 1.22rem;
}

.org-post-editor-shell {
    display: grid;
    gap: 1rem;
}

.org-post-editor-shell__header {
    display: grid;
    gap: 0.55rem;
    padding: 1rem 1rem 0;
}

.org-post-editor-shell__header h4 {
    margin: 0.22rem 0 0;
    color: var(--ts-ink);
    font-size: 1.28rem;
    font-weight: 900;
}

.org-post-editor-shell__header p,
.org-post-editor-shell__footer {
    margin: 0;
    color: var(--ts-muted);
    font-size: 0.88rem;
    font-weight: 700;
}

.org-post-editor-shell__eyebrow {
    color: #0f7660;
    font-size: 0.74rem;
    font-weight: 900;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.org-post-editor-shell__title {
    border-radius: 14px;
    border-color: rgba(16, 25, 35, 0.1);
    font-weight: 800;
    letter-spacing: -0.02em;
    user-select: text;
}

.org-post-editor-shell__font-select {
    max-width: 240px;
    border-radius: 12px;
    border-color: rgba(16, 25, 35, 0.1);
    font-weight: 700;
}

.org-post-editor-shell--modern-sans .org-post-editor-shell__editor.ql-container.ql-snow,
.org-post-editor-shell--modern-sans .org-post-editor-shell__editor .ql-editor {
    font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
}

.org-post-editor-shell--editorial-serif .org-post-editor-shell__editor.ql-container.ql-snow,
.org-post-editor-shell--editorial-serif .org-post-editor-shell__editor .ql-editor {
    font-family: Georgia, "Times New Roman", serif;
}

.org-post-editor-shell--balanced .org-post-editor-shell__editor.ql-container.ql-snow,
.org-post-editor-shell--balanced .org-post-editor-shell__editor .ql-editor {
    font-family: "Avenir Next", "Segoe UI", Helvetica, Arial, sans-serif;
}

.org-post-editor-shell__canvas {
    overflow: hidden;
    border: 1px solid rgba(16, 25, 35, 0.08);
    border-radius: 20px;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(246, 248, 249, 0.98));
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.92);
}

.org-post-editor-shell__toolbar.ql-toolbar.ql-snow {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    padding: 0.85rem;
    border: 0;
    border-bottom: 1px solid rgba(16, 25, 35, 0.08);
    background: rgba(249, 251, 252, 0.96);
}

.org-post-editor-shell__toolbar.ql-toolbar.ql-snow .ql-formats {
    display: inline-flex;
    align-items: center;
    gap: 0.2rem;
    margin-right: 0.2rem;
    padding-right: 0.3rem;
}

.org-post-editor-shell__toolbar.ql-toolbar.ql-snow button,
.org-post-editor-shell__toolbar.ql-toolbar.ql-snow .ql-picker {
    border-radius: 10px;
}

.org-post-editor-shell__toolbar.ql-toolbar.ql-snow button:hover,
.org-post-editor-shell__toolbar.ql-toolbar.ql-snow button.ql-active,
.org-post-editor-shell__toolbar.ql-toolbar.ql-snow .ql-picker-label:hover,
.org-post-editor-shell__toolbar.ql-toolbar.ql-snow .ql-picker-label.ql-active {
    color: #0f7660;
    background: rgba(15, 118, 96, 0.08);
}

.org-post-editor-shell__toolbar.ql-toolbar.ql-snow .ql-stroke {
    stroke: currentColor;
}

.org-post-editor-shell__toolbar.ql-toolbar.ql-snow .ql-fill {
    fill: currentColor;
}

.org-post-editor-shell__image-controls {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    padding: 0.75rem 1rem 0;
    color: var(--ts-muted);
    font-size: 0.8rem;
    font-weight: 800;
}

.org-post-editor-shell__image-chip {
    min-width: 42px;
    min-height: 34px;
    padding: 0.35rem 0.7rem;
    border: 1px solid rgba(16, 25, 35, 0.08);
    border-radius: 999px;
    color: #3d5366;
    background: #ffffff;
    font-size: 0.78rem;
    font-weight: 800;
    transition: border-color 160ms ease, color 160ms ease, background-color 160ms ease, transform 160ms ease;
}

.org-post-editor-shell__image-chip:hover,
.org-post-editor-shell__image-chip:focus {
    color: #0f7660;
    border-color: rgba(15, 118, 96, 0.24);
    background: rgba(15, 118, 96, 0.06);
    transform: translateY(-1px);
}

.org-post-editor-shell__image-chip.is-active {
    color: #0f7660;
    border-color: rgba(15, 118, 96, 0.24);
    background: rgba(15, 118, 96, 0.1);
}

.org-post-editor-shell__editor.ql-container.ql-snow {
    min-height: 240px;
    border: 0;
    background: transparent;
}

.org-post-editor-shell__editor .ql-editor {
    min-height: 240px;
    padding: 1.35rem 1.6rem 1.6rem;
    color: #1d2935;
    font-size: 1.02rem;
    line-height: 1.75;
    user-select: text;
}

.org-post-editor-shell__editor .ql-editor.ql-blank::before {
    left: 1.4rem;
    right: 1.4rem;
    color: rgba(75, 96, 114, 0.7);
    font-style: normal;
}

.org-post-editor-shell__editor .ql-editor h2,
.org-post-editor-shell__editor .ql-editor h3 {
    color: #14202b;
    font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
    font-weight: 900;
    letter-spacing: -0.02em;
}

.org-post-editor-shell__editor .ql-editor h2 {
    margin: 1.6rem 0 0.7rem;
    font-size: 1.8rem;
    line-height: 1.06;
}

.org-post-editor-shell__editor .ql-editor h3 {
    margin: 1.3rem 0 0.55rem;
    font-size: 1.18rem;
}

.org-post-editor-shell__editor .ql-editor .ql-align-center {
    text-align: center;
}

.org-post-editor-shell__editor .ql-editor .ql-align-right {
    text-align: right;
}

.org-post-editor-shell__editor .ql-editor .ql-align-justify {
    text-align: justify;
}

.org-post-editor-shell__editor .ql-editor blockquote {
    border-left-color: rgba(15, 118, 95, 0.28);
    color: #4b6072;
}

.org-post-editor-shell__editor .ql-editor img {
    display: inline-block;
    max-width: min(100%, 760px);
    height: auto;
    border-radius: 16px;
    box-shadow: 0 16px 40px rgba(16, 25, 35, 0.13);
}

.org-post-editor-shell__editor .ql-editor img[data-image-width="small"] {
    max-width: min(100%, 160px);
}

.org-post-editor-shell__editor .ql-editor img[data-image-width="medium"] {
    max-width: min(100%, 280px);
}

.org-post-editor-shell__editor .ql-editor img[data-image-width="large"] {
    max-width: min(100%, 500px);
}

.org-post-editor-shell__editor .ql-editor img[data-image-width="full"] {
    display: block;
    width: 100%;
    max-width: 100%;
}

.org-post-editor-shell__footer {
    padding: 0 1rem 1rem;
}

.page-builder-widget.is-panel-open {
    cursor: default;
}

.page-builder-widget.is-panel-open .page-builder-widget__drag {
    opacity: 0.16;
    cursor: default;
}

.page-builder-widget__actions {
    position: absolute;
    inset: 0;
    z-index: 3;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.65rem;
    opacity: 0;
    pointer-events: none;
    background: rgba(55, 59, 64, 0.82);
    backdrop-filter: blur(10px);
    transform: scale(1.015);
    transition: opacity 220ms ease, transform 240ms cubic-bezier(0.2, 0.8, 0.2, 1);
}

.page-builder-widget.is-selected .page-builder-widget__actions {
    opacity: 1;
    pointer-events: auto;
    transform: scale(1);
}

.page-builder-widget.is-panel-open .page-builder-widget__actions {
    opacity: 0;
    pointer-events: none;
    transform: scale(0.98);
}

.page-builder-widget.is-selected {
    border-color: rgba(16, 25, 35, 0.16);
    box-shadow: 0 18px 42px rgba(16, 25, 35, 0.13);
    transform: translateY(-1px);
}

.page-builder-widget__action {
    display: inline-grid;
    place-items: center;
    width: 46px;
    height: 46px;
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: 999px;
    color: #ffffff;
    background: rgba(255, 255, 255, 0.14);
    transition: width 180ms ease, transform 160ms ease, background-color 160ms ease;
}

.page-builder-widget__action-label {
    display: none;
    color: #ffffff;
    font-size: 0.78rem;
    font-weight: 900;
    line-height: 1;
}

.page-builder-widget__action:hover,
.page-builder-widget__action:focus {
    background: rgba(255, 255, 255, 0.24);
    transform: translateY(-1px);
}

.page-builder-widget__action--danger:hover,
.page-builder-widget__action--danger:focus {
    background: rgba(180, 35, 24, 0.72);
}

.page-builder-widget__action--danger.is-confirming {
    grid-template-columns: auto auto;
    gap: 0.45rem;
    width: 104px;
    padding: 0 0.8rem;
    background: rgba(180, 35, 24, 0.86);
}

.page-builder-widget__action--danger.is-confirming .page-builder-widget__action-label {
    display: inline;
}

.page-builder-icon {
    position: relative;
    display: block;
    width: 21px;
    height: 21px;
}

.page-builder-icon--size {
    display: flex;
    align-items: end;
    justify-content: center;
    gap: 3px;
}

.page-builder-icon--size i {
    display: block;
    width: 4px;
    border-radius: 999px;
    background: currentColor;
}

.page-builder-icon--size i:nth-child(1) {
    height: 8px;
}

.page-builder-icon--size i:nth-child(2) {
    height: 13px;
}

.page-builder-icon--size i:nth-child(3) {
    height: 18px;
}

.page-builder-icon--edit::before {
    content: "";
    position: absolute;
    left: 5px;
    top: 2px;
    width: 6px;
    height: 17px;
    border-radius: 999px;
    background: currentColor;
    transform: rotate(42deg);
}

.page-builder-icon--edit::after {
    content: "";
    position: absolute;
    left: 3px;
    bottom: 1px;
    border-left: 4px solid transparent;
    border-right: 4px solid transparent;
    border-top: 6px solid currentColor;
    transform: rotate(42deg);
}

.page-builder-icon--remove::before,
.page-builder-icon--remove::after {
    content: "";
    position: absolute;
    left: 3px;
    top: 9px;
    width: 16px;
    height: 3px;
    border-radius: 999px;
    background: currentColor;
}

.page-builder-icon--remove::before {
    transform: rotate(45deg);
}

.page-builder-icon--remove::after {
    transform: rotate(-45deg);
}

.page-builder-catalog {
    display: grid;
    gap: 0.65rem;
    margin-top: 0.9rem;
}

.page-builder-catalog-card {
    display: grid;
    gap: 0.55rem;
    width: 100%;
    padding: 0.85rem;
    border: 1px solid rgba(16, 25, 35, 0.1);
    border-radius: 8px;
    background: #ffffff;
    color: var(--ts-ink);
    text-align: left;
    transition: background-color 160ms ease, border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}

.page-builder-catalog-card:hover,
.page-builder-catalog-card:focus {
    border-color: rgba(15, 118, 95, 0.32);
    background: #f8fbfc;
    box-shadow: 0 10px 24px rgba(16, 25, 35, 0.06);
}

.page-builder-catalog-card__cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: fit-content;
    min-height: 30px;
    padding: 0.28rem 0.6rem;
    border-radius: 999px;
    color: #0f765f;
    background: #e7f7f1;
    font-size: 0.76rem;
    font-weight: 900;
}

.widget-picker-modal .modal-content {
    overflow: hidden;
    border: 0;
    border-radius: 12px;
    box-shadow: 0 28px 80px rgba(16, 25, 35, 0.28);
}

.widget-picker-modal .modal-header,
.widget-picker-modal .modal-footer {
    padding: 1.25rem 1.5rem;
}

.widget-picker-modal .modal-body {
    padding: 0 1.5rem 1.5rem;
}

.widget-picker-modal .modal-title {
    color: var(--ts-ink);
    font-size: 1.75rem;
    font-weight: 900;
}

.widget-picker-description {
    max-width: 720px;
    margin: 0 0 1.25rem;
    color: var(--ts-muted);
    font-weight: 700;
}

.widget-picker-size-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
}

.widget-picker-size-card {
    display: grid;
    gap: 0.8rem;
    min-height: 260px;
    padding: 1rem;
    border: 1px solid rgba(16, 25, 35, 0.10);
    border-radius: 10px;
    background: #f8fbfc;
    color: var(--ts-ink);
    text-align: left;
    transition: background-color 160ms ease, border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}

.widget-picker-size-card > span {
    color: var(--ts-muted);
    font-size: 0.78rem;
    font-weight: 900;
    text-transform: uppercase;
}

.widget-picker-size-card:hover,
.widget-picker-size-card:focus,
.widget-picker-size-card.active {
    border-color: rgba(15, 118, 95, 0.36);
    background: #ffffff;
    box-shadow: 0 18px 40px rgba(16, 25, 35, 0.12);
    transform: translateY(-1px);
}

.widget-picker-size-card.active {
    box-shadow: 0 0 0 4px rgba(32, 201, 151, 0.14), 0 18px 40px rgba(16, 25, 35, 0.12);
}

.widget-picker-preview {
    display: grid;
    align-content: start;
    gap: 0.65rem;
    min-height: 190px;
    padding: 1rem;
    border: 1px solid var(--ts-line);
    border-radius: 8px;
    background: linear-gradient(135deg, #ffffff, #f2f7f8);
}

.widget-picker-preview div,
.widget-picker-preview strong,
.widget-picker-preview p {
    display: block;
    border-radius: 999px;
    background: #dfe8ee;
}

.widget-picker-preview div {
    width: 72px;
    height: 12px;
    background: #9fb2c1;
}

.widget-picker-preview strong {
    width: 76%;
    height: 24px;
    background: #14202b;
}

.widget-picker-preview p {
    width: 100%;
    height: 52px;
}

.widget-picker-preview--small {
    max-width: 58%;
}

.widget-picker-preview--medium {
    max-width: 78%;
}

.widget-picker-preview--large {
    max-width: 100%;
}

@media (max-width: 991px) {
    .page-builder-settings,
    .page-builder-layout,
    .page-builder-widget {
        grid-template-columns: 1fr;
    }

    .page-builder-setting-card__header {
        align-items: stretch;
        flex-direction: column;
    }

    .page-builder-contact-row__grid,
    .page-builder-contact-form__split {
        grid-template-columns: 1fr;
    }

    .page-builder-widget--small,
    .page-builder-widget--medium,
    .page-builder-widget--large {
        grid-column: 1 / -1;
    }

    .page-builder-widget__controls {
        grid-template-columns: 1fr;
    }

    .page-builder-widget__content {
        grid-column: 1 / -1;
    }

    .page-builder-toolbar {
        align-items: stretch;
        flex-direction: column;
    }

    .page-builder-add {
        position: static;
    }

    .widget-picker-size-grid {
        grid-template-columns: 1fr;
    }

    .widget-picker-size-card {
        min-height: 220px;
    }

    .page-builder-widget__drag {
        width: 24px;
        display: block;
        gap: 0.3rem;
        padding-top: 0;
    }

    .page-builder-widget__drag span {
        width: auto;
    }
}

.team-color-swatches span {
    display: inline-block;
    width: 1.1rem;
    height: 1.1rem;
    border: 1px solid rgba(16, 25, 35, 0.16);
    border-radius: 50%;
}

.live-team-roster-section {
    padding: 3.5rem 0 4.25rem;
}

.live-team-roster-heading {
    justify-content: center;
    margin-bottom: 1.7rem;
}

.live-team-roster-heading > div {
    width: 100%;
}

.game-detail-score-section {
    padding: 2rem 0 2.4rem;
}

.game-detail-teams-section {
    padding: 3rem 0 3.5rem;
}

.game-detail-teams-section .section-header {
    margin-bottom: 1.5rem;
}

.game-detail-hero {
    padding: 0;
    border: 1px solid rgba(16, 25, 35, 0.08);
    border-radius: 20px;
    background:
        linear-gradient(135deg, rgba(248, 251, 253, 0.98), rgba(255, 255, 255, 1));
    box-shadow: 0 14px 34px rgba(16, 25, 35, 0.08);
    overflow: hidden;
}

.game-detail-summary {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 0;
    align-items: stretch;
    width: 100%;
}

.game-detail-column {
    min-width: 0;
    padding: 1.75rem 1.85rem;
}

.game-detail-matchup {
    min-width: 0;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
}

.game-detail-meta {
    display: grid;
    gap: 1rem;
    align-content: start;
    justify-items: start;
    min-width: 0;
    border-left: 1px solid rgba(16, 25, 35, 0.08);
    background: linear-gradient(180deg, rgba(250, 252, 254, 0.78), rgba(244, 248, 252, 0.52));
}

.game-detail-hero h1,
.game-detail-title {
    display: grid;
    gap: 0.18rem;
    margin-bottom: 0;
    color: var(--ts-ink);
    font-size: clamp(1.9rem, 3.2vw, 3.15rem);
    font-weight: 900;
    line-height: 1.03;
}

.game-detail-hero p {
    margin-bottom: 0;
    color: var(--ts-muted);
    font-size: 1.08rem;
}

.game-detail-matchup .section-eyebrow {
    margin-bottom: 1rem;
}

.game-detail-team-link {
    color: inherit;
    text-decoration: none;
    transition: opacity 160ms ease, transform 160ms ease;
}

.game-detail-team-link:hover,
.game-detail-team-link:focus-visible {
    color: inherit;
    opacity: 0.86;
    transform: translateX(1px);
}

.game-team-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.25rem;
}

.game-detail-meta div {
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
}

.game-detail-meta-status {
    width: 100%;
    display: flex;
    justify-content: flex-end;
    margin-bottom: 0.4rem;
}

.game-detail-meta-card {
    width: 100%;
    padding: 1rem 1.05rem !important;
    border: 1px solid rgba(16, 25, 35, 0.06) !important;
    border-radius: 14px !important;
    background: rgba(255, 255, 255, 0.72) !important;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.72);
}

.game-detail-meta-link {
    color: inherit;
    text-decoration: none;
    transition: background-color 160ms ease, border-color 160ms ease, transform 160ms ease, box-shadow 160ms ease;
}

.game-detail-meta-link:hover,
.game-detail-meta-link:focus-visible {
    color: inherit;
    border-color: rgba(16, 25, 35, 0.1) !important;
    background: rgba(255, 255, 255, 0.82) !important;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.82), 0 6px 16px rgba(16, 25, 35, 0.04);
    transform: translateY(-1px);
}

.game-detail-meta span {
    display: block;
    margin-bottom: 0.45rem;
    color: #6b7b8d;
    font-size: 0.72rem;
    font-weight: 900;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.game-detail-meta strong {
    display: block;
    color: var(--ts-ink);
    font-size: 1.04rem;
    line-height: 1.3;
}

.game-detail-meta p {
    margin-top: 0.35rem;
    color: #5d6d7e;
    font-size: 0.95rem;
    line-height: 1.45;
}

.game-detail-panel,
.game-team-panel {
    border: 1px solid var(--ts-line);
    border-radius: var(--ts-radius);
    background: #ffffff;
    box-shadow: var(--ts-shadow-soft);
}

.game-detail-panel {
    padding: 1.2rem;
}

.game-detail-score-panel {
    max-width: 820px;
    margin: 0 auto;
    padding: 0;
    border: 0;
    background: transparent;
    box-shadow: none;
}

.score-section-header {
    margin-bottom: 0.9rem;
}

.game-detail-panel h2 {
    margin-bottom: 0.75rem;
    color: var(--ts-ink);
    font-size: 1.35rem;
    font-weight: 900;
}

.game-detail-score-panel .score-section-header h2 {
    margin-bottom: 0;
    color: #ffffff;
    font-size: clamp(1.7rem, 2.8vw, 2.35rem);
    font-weight: 900;
    line-height: 1;
}

.game-detail-score-panel .section-eyebrow-light {
    margin-bottom: 0.45rem;
    color: rgba(255, 255, 255, 0.76);
}

.game-detail-panel p:not(.section-eyebrow):not(.section-eyebrow-light) {
    margin-bottom: 0;
    color: var(--ts-muted);
}

.game-scoreboard-large {
    margin-top: 0;
    padding: 0.55rem;
    box-shadow: 0 18px 38px rgba(0, 0, 0, 0.14);
}

.game-scoreboard-large .game-score-team {
    min-height: 112px;
}

.game-scoreboard-large .game-score-team strong {
    font-size: clamp(2.7rem, 6vw, 4.4rem);
}

.game-team-panel {
    overflow: hidden;
}

.game-team-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem 1.15rem;
    border-bottom: 1px solid rgba(16, 25, 35, 0.08);
}

.game-team-header h3 {
    margin-bottom: 0;
    color: var(--ts-ink);
    font-size: 1.35rem;
    font-weight: 900;
}

.coach-block {
    display: grid;
    gap: 0.3rem;
    margin: 1.1rem;
    padding: 0.85rem;
    border-radius: 10px;
    background: linear-gradient(135deg, #eef7fb, #eef8f2);
}

.coach-block span,
.roster-list span {
    color: var(--ts-muted);
    font-size: 0.78rem;
    font-weight: 900;
    text-transform: uppercase;
}

.coach-block strong {
    color: var(--ts-ink);
    font-size: 1.05rem;
}

.roster-list {
    display: grid;
    padding: 0 1.1rem 1.1rem;
}

.roster-list-narrow {
    width: min(100%, 680px);
    margin: 0 auto;
    padding: 0 0 0.85rem;
}

.roster-list-public {
    grid-template-columns: 1fr;
    width: min(100%, 720px);
    margin: 0 auto;
    gap: 0;
    padding: 0;
}

.roster-list-header,
.roster-list > div:not(.roster-list-header) {
    display: grid;
    grid-template-columns: minmax(120px, 1fr) minmax(90px, auto);
    align-items: center;
    gap: 1rem;
}

.roster-list-header {
    grid-column: 1 / -1;
    padding: 0 0 0.65rem;
    border-bottom: 1px solid rgba(16, 25, 35, 0.1);
}

.roster-list-header span {
    color: var(--ts-muted);
    font-size: 0.72rem;
    font-weight: 900;
    text-transform: uppercase;
}

.roster-list-header span:last-child,
.roster-list > div:not(.roster-list-header) span:last-child {
    justify-self: end;
    text-align: right;
}

.roster-list > div:not(.roster-list-header) {
    padding: 0.85rem 0;
    border-top: 1px solid rgba(16, 25, 35, 0.08);
}

.roster-list-public .roster-list-header,
.roster-list-public > div:not(.roster-list-header) {
    grid-template-columns: minmax(140px, 1fr) minmax(90px, max-content);
}

.roster-list strong {
    color: var(--ts-ink);
}

.empty-roster-note {
    margin: 0 1.1rem 1.1rem;
    color: var(--ts-muted);
}

@media (max-width: 992px) {
    .game-team-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 767px) {
    .game-card,
    a.game-card {
        min-height: 0;
        padding: 1.15rem;
    }

    .game-card-top,
    .game-team-header,
    .game-detail-hero {
        align-items: flex-start;
        flex-direction: column;
    }

    .game-scoreboard {
        grid-template-columns: 1fr;
    }

    .game-score-divider {
        justify-self: center;
    }

    .game-detail-hero {
        padding: 0;
    }

    .game-detail-summary {
        grid-template-columns: 1fr;
        gap: 1rem;
    }

    .game-detail-column {
        padding: 1.1rem;
    }

    .live-team-detail-hero {
        align-items: flex-start;
        grid-template-columns: 1fr;
        min-height: 0;
        padding: 1.15rem;
    }

    .live-team-detail-identity {
        align-items: flex-start;
        flex-direction: column;
    }

    .live-team-detail-stats {
        width: 100%;
    }

    .live-team-detail-meta,
    .live-team-detail-quick-grid,
    .roster-list-public {
        grid-template-columns: 1fr;
    }

    .game-detail-meta {
        border-left: 0;
        border-top: 1px solid rgba(16, 25, 35, 0.08);
        justify-items: start;
    }

    .game-detail-meta-status {
        justify-content: flex-start;
    }

    .roster-list-header,
    .roster-list > div:not(.roster-list-header) {
        align-items: flex-start;
        grid-template-columns: 1fr 1fr;
        gap: 0.75rem;
    }
}

.dashboard-header {
    margin-top: 1.5rem;
    padding: 2rem;
    border: 1px solid var(--ts-line);
    border-radius: var(--ts-radius);
    background:
        linear-gradient(135deg, rgba(255, 255, 255, 0.98), rgba(244, 248, 250, 0.94)),
        repeating-linear-gradient(115deg, rgba(16, 25, 35, 0.035) 0 1px, transparent 1px 60px);
    box-shadow: var(--ts-shadow-soft);
}

.dashboard-header h1 {
    font-weight: 900;
    color: var(--ts-ink);
}

.dashboard-subnav {
    padding: 0.8rem;
    border: 1px solid var(--ts-line);
    border-radius: var(--ts-radius);
    background:
        linear-gradient(135deg, rgba(16, 25, 35, 0.96), rgba(6, 64, 31, 0.92)),
        repeating-linear-gradient(115deg, rgba(255, 255, 255, 0.055) 0 1px, transparent 1px 64px);
    box-shadow: var(--ts-shadow-soft);
}

.dashboard-public-actions {
    display: flex;
    justify-content: flex-end;
    gap: 0.5rem;
    padding: 0.1rem 0.1rem 0.65rem;
    border-bottom: 1px solid rgba(255, 255, 255, 0.16);
    margin-bottom: 0.25rem;
}

.dashboard-public-link,
.dashboard-public-link:visited {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 34px;
    padding: 0.38rem 0.75rem;
    border: 1px solid rgba(255, 255, 255, 0.42);
    border-radius: 6px;
    color: #14202b;
    background: #ffffff;
    font-size: 0.82rem;
    font-weight: 900;
    text-decoration: none;
    box-shadow: 0 8px 18px rgba(0, 0, 0, 0.14);
}

.dashboard-public-link:hover,
.dashboard-public-link:focus,
.dashboard-public-link.active {
    color: #14202b;
    background: linear-gradient(135deg, #ffffff, #e8f6ff);
    border-color: rgba(255, 255, 255, 0.72);
}

.dashboard-tab-list {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    padding: 0.45rem 0.1rem 0.1rem;
    overflow: visible;
}

.dashboard-tab-list::-webkit-scrollbar {
    display: none;
}

.dashboard-tab-list::-webkit-scrollbar-track {
    background: transparent;
}

.dashboard-tab-list::-webkit-scrollbar-thumb {
    border-radius: 999px;
    background-color: rgba(255, 255, 255, 0.38);
}

.dashboard-tab {
    position: relative;
    min-height: 38px;
    flex: 0 0 auto;
    padding: 0.48rem 0.78rem;
    border-radius: 6px;
    color: rgba(255, 255, 255, 0.82) !important;
    border: 1px solid rgba(255, 255, 255, 0.16);
    background: rgba(255, 255, 255, 0.07);
    font-size: 0.88rem;
    font-weight: 800;
    white-space: nowrap;
}

.dashboard-tab-badge {
    position: absolute;
    top: -0.34rem;
    right: -0.3rem;
    min-width: 1.28rem;
    height: 1.28rem;
    padding: 0 0.34rem;
    border-radius: 999px;
    background: linear-gradient(180deg, #ff4d57 0%, #dc2626 72%, #b91c1c 100%);
    border: 2px solid #ffffff;
    box-shadow:
        0 0 0 1px rgba(127, 29, 29, 0.18),
        0 7px 16px rgba(127, 29, 29, 0.34),
        inset 0 1px 0 rgba(255, 255, 255, 0.42);
    color: #ffffff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 0.68rem;
    font-weight: 900;
    line-height: 1;
    letter-spacing: 0;
    text-align: center;
    pointer-events: none;
    z-index: 2;
}

.dashboard-tab:hover {
    color: #ffffff !important;
    border-color: rgba(255, 255, 255, 0.34);
    background: rgba(255, 255, 255, 0.14);
    transform: none;
}

.dashboard-tab.active,
.theme-default .dashboard-tab.active,
.theme-admin .dashboard-tab.active,
.theme-coach .dashboard-tab.active,
.theme-parent .dashboard-tab.active,
.theme-player .dashboard-tab.active {
    color: var(--ts-ink) !important;
    background: linear-gradient(135deg, #ffffff, #dff7ee);
    box-shadow: 0 10px 24px rgba(0, 0, 0, 0.18);
}

.theme-default .dashboard-tab,
.theme-admin .dashboard-tab,
.theme-coach .dashboard-tab,
.theme-parent .dashboard-tab,
.theme-player .dashboard-tab {
    color: rgba(255, 255, 255, 0.82);
    border-color: rgba(255, 255, 255, 0.16);
}

.stat-card {
    position: relative;
    overflow: hidden;
    background:
        linear-gradient(135deg, #ffffff, #f5f9fa);
}

.stat-card::after {
    content: "";
    position: absolute;
    right: 0;
    top: 0;
    width: 7px;
    height: 100%;
    background: linear-gradient(180deg, var(--ts-blue), var(--ts-teal));
}

.stat-label {
    color: var(--ts-muted);
    font-size: 0.78rem;
    font-weight: 900;
}

.stat-value {
    color: var(--ts-ink);
    font-size: clamp(1.65rem, 2.4vw, 2.45rem);
    font-weight: 900;
    line-height: 1.1;
}

.dashboard-panel {
    background:
        linear-gradient(135deg, rgba(255, 255, 255, 0.98), rgba(248, 251, 252, 0.98));
}

.dashboard-panel .card-body,
.stat-card .card-body {
    padding: 1.35rem;
}

.org-command-center {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.85rem;
    margin: 1rem 0;
}

.org-command-card,
.org-action-card,
.org-dashboard-panel {
    border: 1px solid rgba(16, 25, 35, 0.08);
    background: #ffffff;
    box-shadow: 0 10px 24px rgba(16, 25, 35, 0.06);
    transition: border-color 180ms ease, box-shadow 180ms ease, background-color 180ms ease;
}

.org-command-card:hover,
.org-action-card:hover,
.org-dashboard-panel:hover {
    border-color: rgba(16, 25, 35, 0.14);
    box-shadow: 0 14px 30px rgba(16, 25, 35, 0.08);
}

.org-command-card {
    position: relative;
    overflow: hidden;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 1rem;
    min-height: 150px;
    padding: 1.1rem;
    border-radius: 8px;
}

.org-command-card--schedule {
    background: #ffffff;
}

.org-command-calendar {
    display: grid;
    place-items: center;
    width: 74px;
    aspect-ratio: 1;
    border: 1px solid rgba(13, 110, 253, 0.16);
    border-radius: 8px;
    color: var(--ts-ink);
    background: linear-gradient(180deg, #ffffff, #f3f8fb);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.92);
}

.org-command-calendar span,
.org-command-eyebrow,
.org-panel-header span,
.org-dashboard-metrics span,
.org-action-card span {
    color: var(--ts-muted);
    font-size: 0.74rem;
    font-weight: 900;
    text-transform: uppercase;
}

.org-command-calendar strong {
    margin-top: -0.35rem;
    font-size: 2rem;
    font-weight: 900;
    line-height: 1;
}

.org-command-main h2,
.org-panel-header h2 {
    margin: 0.25rem 0 0;
    color: var(--ts-ink);
    font-weight: 900;
}

.org-command-main p {
    margin: 0.55rem 0 0;
    color: var(--ts-ink);
    font-size: 1.35rem;
    font-weight: 900;
    line-height: 1.08;
}

.org-command-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
    margin-top: 0.85rem;
}

.org-command-meta span {
    display: inline-flex;
    align-items: center;
    min-height: 30px;
    padding: 0.28rem 0.62rem;
    border: 1px solid rgba(16, 25, 35, 0.08);
    border-radius: 6px;
    color: #526273;
    background: rgba(255, 255, 255, 0.82);
    font-size: 0.78rem;
    font-weight: 800;
}

.org-command-link,
.org-panel-header a {
    color: #0f765f;
    font-weight: 900;
    text-decoration: none;
}

.org-command-link:hover,
.org-command-link:focus,
.org-panel-header a:hover,
.org-panel-header a:focus {
    color: var(--ts-ink);
}

.org-action-rail {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.75rem;
}

.org-action-card {
    display: grid;
    gap: 0.1rem;
    min-height: 0;
    min-width: 0;
    padding: 0.95rem;
    border-radius: 8px;
    color: var(--ts-ink);
    text-decoration: none;
}

.org-action-card:hover,
.org-action-card:focus {
    color: var(--ts-ink);
    text-decoration: none;
}

.org-action-card strong {
    color: var(--ts-ink);
    font-size: 1.55rem;
    font-weight: 900;
    line-height: 1;
}

.org-action-card small,
.org-dashboard-metrics small {
    color: var(--ts-muted);
    font-weight: 800;
}

.org-action-card.needs-attention {
    border-color: rgba(13, 110, 253, 0.2);
    background: linear-gradient(135deg, #ffffff, #eef7ff);
}

.org-dashboard-metrics {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0;
    overflow: hidden;
    margin-bottom: 1rem;
    border: 1px solid rgba(16, 25, 35, 0.08);
    border-radius: 8px;
    background: #ffffff;
    box-shadow: 0 10px 24px rgba(16, 25, 35, 0.06);
}

.org-dashboard-metrics article {
    display: grid;
    gap: 0.05rem;
    min-width: 0;
    padding: 0.9rem 1rem;
}

.org-dashboard-metrics article + article {
    border-left: 1px solid rgba(16, 25, 35, 0.08);
}

.org-dashboard-metrics strong {
    color: var(--ts-ink);
    font-size: 1.65rem;
    font-weight: 900;
    line-height: 1;
}

.org-dashboard-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(320px, 0.85fr);
    align-items: stretch;
    gap: 0.85rem;
    margin-bottom: 4rem;
}

.org-dashboard-panel {
    display: flex;
    min-height: 0;
    padding: 1rem;
    border-radius: 8px;
    flex-direction: column;
}

.org-dashboard-panel--wide {
    grid-row: span 2;
}

.org-panel-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 0.85rem;
}

.org-schedule-list,
.org-coverage-list,
.org-signup-list {
    display: grid;
    min-height: 0;
    max-height: 360px;
    gap: 0.55rem;
    overflow-y: auto;
    overscroll-behavior: contain;
    padding-right: 0.2rem;
    scrollbar-gutter: stable;
}

.org-dashboard-panel--wide .org-schedule-list {
    max-height: 548px;
}

.org-schedule-list::-webkit-scrollbar,
.org-coverage-list::-webkit-scrollbar,
.org-signup-list::-webkit-scrollbar {
    width: 8px;
}

.org-schedule-list::-webkit-scrollbar-track,
.org-coverage-list::-webkit-scrollbar-track,
.org-signup-list::-webkit-scrollbar-track {
    background: transparent;
}

.org-schedule-list::-webkit-scrollbar-thumb,
.org-coverage-list::-webkit-scrollbar-thumb,
.org-signup-list::-webkit-scrollbar-thumb {
    border: 2px solid #ffffff;
    border-radius: 999px;
    background: rgba(82, 98, 115, 0.34);
}

.org-schedule-item,
.org-signup-list a,
.org-coverage-list > div,
.org-empty-state {
    display: grid;
    gap: 0.2rem;
    min-width: 0;
    padding: 0.72rem;
    border: 1px solid rgba(16, 25, 35, 0.08);
    border-radius: 8px;
    background: #f8fbfc;
    transition: border-color 170ms ease, background-color 170ms ease;
}

.org-schedule-item {
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 0.75rem;
    color: var(--ts-ink);
    text-decoration: none;
}

.org-schedule-item:hover,
.org-schedule-item:focus,
.org-signup-list a:hover,
.org-signup-list a:focus {
    border-color: rgba(15, 118, 95, 0.24);
    background: #ffffff;
    color: var(--ts-ink);
    text-decoration: none;
}

.org-schedule-date {
    display: grid;
    place-items: center;
    width: 50px;
    height: 50px;
    border-radius: 8px;
    color: #0d6efd;
    background: #edf4ff;
    font-weight: 900;
}

.org-schedule-item > span:nth-child(2),
.org-coverage-list > div > span,
.org-signup-list a > strong,
.org-signup-list a > span {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
}

.org-schedule-item > span:nth-child(2) strong,
.org-schedule-item > span:nth-child(2) small {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.org-schedule-date small,
.org-schedule-item small,
.org-signup-list span,
.org-empty-state span,
.org-coverage-list span {
    color: var(--ts-muted);
    font-weight: 800;
}

.org-schedule-date strong {
    color: #0d6efd;
    line-height: 1;
}

.org-schedule-item em,
.org-status-warning {
    justify-self: end;
    padding: 0.28rem 0.55rem;
    border-radius: 999px;
    color: #0f765f;
    background: #e7f7f1;
    font-size: 0.72rem;
    font-style: normal;
    font-weight: 900;
    white-space: nowrap;
}

.org-coverage-list > div {
    grid-template-columns: minmax(0, 1fr) minmax(96px, auto);
    align-items: center;
}

.org-status-warning {
    color: #8a5a00 !important;
    background: #fff4d6;
}

.org-signup-list a {
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    color: var(--ts-ink);
    text-decoration: none;
}

.org-empty-state {
    padding: 1rem;
}

.org-empty-state strong {
    color: var(--ts-ink);
}

@media (max-width: 992px) {
    .org-dashboard-grid {
        grid-template-columns: 1fr;
    }

    .org-dashboard-panel--wide {
        grid-row: auto;
    }

    .org-dashboard-metrics {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .org-dashboard-metrics article {
        border-top: 1px solid rgba(16, 25, 35, 0.08);
    }

    .org-dashboard-metrics article:nth-child(-n+2) {
        border-top: 0;
    }

    .org-dashboard-metrics article + article {
        border-left: 0;
    }

    .org-dashboard-metrics article:nth-child(even) {
        border-left: 1px solid rgba(16, 25, 35, 0.08);
    }

    .org-command-card {
        grid-template-columns: 1fr;
    }

    .org-command-calendar {
        width: 68px;
    }
}

@media (max-width: 767px) {
    .org-dashboard-metrics,
    .org-action-rail,
    .org-signup-list a {
        grid-template-columns: 1fr;
    }

    .org-dashboard-metrics article,
    .org-dashboard-metrics article:nth-child(even) {
        border-left: 0;
    }

    .org-dashboard-metrics article:nth-child(2) {
        border-top: 1px solid rgba(16, 25, 35, 0.08);
    }

    .org-schedule-item {
        grid-template-columns: auto minmax(0, 1fr);
    }

    .org-schedule-item em {
        grid-column: 2;
    }

    .org-command-link,
    .org-schedule-item em,
    .org-status-warning {
        justify-self: start;
    }

    .org-coverage-list > div {
        grid-template-columns: 1fr;
    }
}

.coach-message-shell {
    margin-bottom: 2rem;
}

.coach-message-grid {
    display: grid;
    grid-template-columns: minmax(260px, 320px) minmax(0, 1fr);
    min-height: 620px;
    overflow: hidden;
    border: 1px solid var(--ts-line);
    border-radius: 8px;
    background: #ffffff;
    box-shadow: var(--ts-shadow-soft);
}

.coach-message-sidebar {
    display: flex;
    flex-direction: column;
    min-width: 0;
    border-right: 1px solid var(--ts-line);
    background: #f7faf9;
}

.coach-message-sidebar__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem;
    border-bottom: 1px solid var(--ts-line);
}

.coach-message-sidebar__header span {
    display: block;
    margin-bottom: 0.2rem;
    color: var(--ts-muted);
    font-size: 0.72rem;
    font-weight: 900;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.coach-message-sidebar__header strong {
    display: block;
    color: var(--ts-ink);
    font-size: 1rem;
}

.coach-thread-list {
    overflow-y: auto;
    padding: 0.6rem;
}

.coach-thread {
    width: 100%;
    padding: 0.75rem;
    border: 1px solid transparent;
    border-radius: 8px;
    color: var(--ts-ink);
    background: transparent;
    text-align: left;
    position: relative;
    transition: border-color 0.18s ease, background-color 0.18s ease, box-shadow 0.18s ease;
}

.coach-thread:hover,
.coach-thread.active {
    border-color: rgba(13, 110, 253, 0.18);
    background: #ffffff;
}

.coach-thread.active {
    border-color: rgba(13, 110, 253, 0.36);
    background:
        linear-gradient(90deg, rgba(13, 110, 253, 0.12), rgba(255, 255, 255, 0.96) 36%),
        #ffffff;
    box-shadow: 0 10px 22px rgba(13, 47, 69, 0.12);
}

.coach-thread.active::before {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    width: 4px;
    border-radius: 8px 0 0 8px;
    background: linear-gradient(180deg, var(--ts-blue), var(--ts-teal));
}

.coach-thread--unread .coach-thread__name {
    color: #071520;
}

.coach-thread__body {
    display: block;
    min-width: 0;
}

.coach-thread__name,
.coach-thread__meta {
    display: flex;
    justify-content: space-between;
    gap: 0.5rem;
}

.coach-thread__name {
    color: var(--ts-ink);
    font-weight: 900;
}

.thread-unread-badge {
    min-width: 1.35rem;
    height: 1.35rem;
    padding: 0 0.38rem;
    border-radius: 999px;
    background: linear-gradient(180deg, #ff4d57 0%, #dc2626 75%, #b91c1c 100%);
    color: #ffffff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    font-size: 0.7rem;
    font-weight: 900;
    line-height: 1;
    box-shadow:
        0 0 0 2px #ffffff,
        0 7px 16px rgba(127, 29, 29, 0.22),
        inset 0 1px 0 rgba(255, 255, 255, 0.42);
}

.coach-thread__meta {
    color: var(--ts-muted);
    font-size: 0.78rem;
    font-weight: 700;
}

.coach-thread-empty {
    padding: 0.8rem;
    color: var(--ts-muted);
    font-size: 0.88rem;
    font-weight: 700;
}

.coach-message-main {
    display: grid;
    grid-template-rows: minmax(0, 1fr) auto;
    min-width: 0;
    background: #ffffff;
}

.coach-message-grid--readonly .coach-message-main {
    grid-template-rows: minmax(0, 1fr);
}

.coach-conversation {
    display: none;
    min-height: 0;
}

.coach-conversation.active {
    display: grid;
    grid-template-rows: auto minmax(0, 1fr);
}

.coach-conversation__header {
    display: flex;
    align-items: center;
    gap: 0.8rem;
    min-height: 72px;
    padding: 1rem 1.25rem;
    border-bottom: 1px solid var(--ts-line);
}

.coach-conversation__header h2 {
    margin: 0;
    color: var(--ts-ink);
    font-size: 1.05rem;
    font-weight: 900;
}

.coach-conversation__header p {
    margin: 0;
    color: var(--ts-muted);
    font-size: 0.85rem;
    font-weight: 700;
}

.coach-conversation__messages {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    overflow-y: auto;
    padding: 1.25rem;
    background:
        linear-gradient(180deg, rgba(247, 250, 249, 0.82), rgba(255, 255, 255, 0.98));
}

.coach-message-bubble {
    align-self: flex-end;
    max-width: min(620px, 78%);
    padding: 0.85rem 1rem;
    border-radius: 8px;
    color: #ffffff;
    background: #10212b;
    box-shadow: 0 10px 22px rgba(16, 33, 43, 0.12);
}

.coach-message-sender {
    margin-bottom: 0.35rem;
    color: rgba(255, 255, 255, 0.72);
    font-size: 0.74rem;
    font-weight: 900;
}

.coach-message-bubble time {
    display: block;
    margin-top: 0.45rem;
    color: rgba(255, 255, 255, 0.66);
    font-size: 0.75rem;
    font-weight: 700;
}

.coach-message-bubble--received {
    align-self: flex-start;
    color: var(--ts-ink);
    border: 1px solid var(--ts-line);
    background: #ffffff;
}

.coach-message-bubble--received time {
    color: var(--ts-muted);
}

.coach-message-bubble--received .coach-message-sender {
    color: var(--ts-muted);
}

.coach-unread-divider {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    align-items: center;
    gap: 0.75rem;
    margin: 0.25rem 0;
    color: #dc2626;
    font-size: 0.72rem;
    font-weight: 900;
    letter-spacing: 0.02em;
}

.coach-unread-divider::before,
.coach-unread-divider::after {
    content: "";
    height: 1px;
    background: rgba(220, 38, 38, 0.5);
}

.coach-unread-divider span {
    white-space: nowrap;
}

.coach-message-empty {
    margin: auto;
    color: var(--ts-muted);
    text-align: center;
}

.coach-message-empty strong {
    display: block;
    margin-bottom: 0.25rem;
    color: var(--ts-ink);
    font-size: 1rem;
}

.coach-message-composer {
    padding: 1rem 1.25rem;
    border-top: 1px solid var(--ts-line);
    background: #ffffff;
}

.coach-message-recipient-picker {
    margin-bottom: 0.9rem;
}

.coach-message-composer textarea {
    min-height: 112px;
    resize: vertical;
}

.coach-message-composer__actions {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-top: 0.75rem;
}

.coach-message-composer__actions span {
    min-width: 0;
    color: var(--ts-muted);
    font-size: 0.85rem;
    font-weight: 800;
}

.schedule-toast {
    position: fixed;
    right: 1.5rem;
    bottom: 1.5rem;
    z-index: 1080;
    max-width: min(360px, calc(100vw - 2rem));
    padding: 0.85rem 1rem;
    border: 1px solid rgba(21, 128, 61, 0.2);
    border-radius: 8px;
    color: #0f5132;
    background: #dff7ea;
    box-shadow: 0 18px 44px rgba(15, 23, 42, 0.16);
    font-weight: 900;
    opacity: 1;
    transform: translateY(0);
    transition: opacity 180ms ease, transform 180ms ease;
}

.schedule-toast.is-hiding {
    opacity: 0;
    transform: translateY(8px);
}

.schedule-workspace,
.schedule-edit-panel {
    display: grid;
    gap: 1.25rem;
    margin-bottom: 2rem;
}

.schedule-add-panel,
.schedule-board,
.schedule-edit-panel {
    border: 1px solid var(--ts-line);
    border-radius: 8px;
    background: #ffffff;
    box-shadow: var(--ts-shadow-soft);
}

.schedule-add-panel,
.schedule-edit-panel {
    padding: 1.25rem;
}

.schedule-add-panel__header,
.schedule-board__toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1rem;
}

.schedule-add-panel h2,
.schedule-board h2 {
    margin: 0;
    color: var(--ts-ink);
    font-size: 1.05rem;
    font-weight: 900;
}

.schedule-add-panel p,
.schedule-board__toolbar span {
    margin: 0;
    color: var(--ts-muted);
    font-size: 0.85rem;
    font-weight: 700;
}

.schedule-type-toggle,
.schedule-view-toggle {
    display: inline-flex;
    gap: 0.25rem;
    padding: 0.25rem;
    border: 1px solid var(--ts-line);
    border-radius: 8px;
    background: #f7faf9;
}

.schedule-type-toggle button,
.schedule-view-toggle button {
    min-height: 36px;
    padding: 0.4rem 0.75rem;
    border: 0;
    border-radius: 6px;
    color: var(--ts-muted);
    background: transparent;
    font-weight: 900;
}

.schedule-type-toggle button.active,
.schedule-view-toggle button.active {
    color: #ffffff;
    background: #10212b;
}

.schedule-form-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
}

.schedule-field {
    min-width: 0;
}

.schedule-field--title,
.schedule-field--notes,
.schedule-field--full,
.schedule-form-actions {
    grid-column: 1 / -1;
}

.schedule-form-actions {
    display: flex;
    justify-content: flex-end;
    gap: 0.75rem;
}

.team-location-add-panel {
    margin-bottom: 1.25rem;
}

.team-location-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 32px;
    padding: 0.3rem 0.65rem;
    border: 1px solid var(--ts-line);
    border-radius: 6px;
    color: var(--ts-muted);
    background: #f7faf9;
    font-size: 0.82rem;
    font-weight: 900;
}

.team-location-form-grid,
.team-location-edit-grid {
    display: grid;
    grid-template-columns: minmax(220px, 1.3fr) minmax(110px, 0.5fr) minmax(110px, 0.5fr) minmax(220px, 1.4fr);
    gap: 1rem;
    align-items: end;
}

.team-location-field--notes,
.team-location-field--address {
    min-width: 0;
}

.team-location-list {
    display: grid;
    gap: 0.85rem;
    padding: 0 1rem 1rem;
}

.team-location-item {
    position: relative;
    display: grid;
    gap: 0.75rem;
    padding: 1rem;
    border: 1px solid var(--ts-line);
    border-radius: 8px;
    background: linear-gradient(135deg, #ffffff, #f7fbf9);
}

.team-location-item__title,
.team-location-item__footer {
    grid-column: 1 / -1;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
}

.team-location-item__title {
    justify-content: flex-start;
}

.team-location-item__footer {
    padding-top: 0.1rem;
}

.team-location-actions {
    display: inline-flex;
    gap: 0.5rem;
}

.team-location-delete-form {
    position: absolute;
    right: 1rem;
    bottom: 1rem;
}

.team-location-delete-form .btn {
    min-height: 31px;
}

.team-location-board .empty-card {
    margin: 0 1rem 1rem;
}

.schedule-board {
    overflow: hidden;
}

.schedule-board__toolbar {
    margin: 0;
    padding: 1rem 1.25rem;
    border-bottom: 1px solid var(--ts-line);
}

.schedule-view {
    display: none;
}

.schedule-view.active {
    display: block;
}

.schedule-list {
    display: grid;
}

.schedule-list-item {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 1rem;
    padding: 1rem 1.25rem;
    border-bottom: 1px solid var(--ts-line);
    background: #ffffff;
}

.schedule-week-divider {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    padding: 0.9rem 1.25rem 0.6rem;
    color: var(--ts-muted);
    font-size: 0.78rem;
    font-weight: 900;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.schedule-week-divider::after {
    content: "";
    flex: 1 1 auto;
    height: 1px;
    background: linear-gradient(90deg, rgba(16, 25, 35, 0.14), rgba(16, 25, 35, 0));
}

.schedule-list-item:hover,
.schedule-list-item:focus {
    background: #f7faf9;
    outline: none;
}

.schedule-date-chip {
    display: grid;
    place-items: center;
    width: 58px;
    height: 58px;
    border: 1px solid rgba(13, 110, 253, 0.18);
    border-radius: 8px;
    color: var(--ts-blue);
    background: rgba(13, 110, 253, 0.08);
}

.schedule-date-chip span {
    font-size: 0.72rem;
    font-weight: 900;
    text-transform: uppercase;
}

.schedule-date-chip strong {
    color: var(--ts-ink);
    font-size: 1.35rem;
    line-height: 1;
}

.schedule-list-item__topline {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 0.25rem;
    color: var(--ts-muted);
    font-size: 0.78rem;
    font-weight: 800;
}

.schedule-list-item h3 {
    margin: 0;
    color: var(--ts-ink);
    font-size: 1rem;
    font-weight: 900;
}

.schedule-list-item p {
    margin: 0.25rem 0 0;
    color: var(--ts-muted);
    font-size: 0.88rem;
    font-weight: 700;
}

.schedule-list-item .schedule-note {
    color: #31515f;
    font-weight: 600;
}

.schedule-badge {
    display: inline-flex;
    align-items: center;
    min-height: 24px;
    padding: 0.18rem 0.5rem;
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 900;
    text-transform: uppercase;
}

.schedule-badge--game {
    color: #084298;
    background: rgba(13, 110, 253, 0.12);
}

.schedule-badge--practice {
    color: #0f5132;
    background: rgba(25, 135, 84, 0.12);
}

.schedule-badge--teamevent {
    color: #664d03;
    background: rgba(255, 193, 7, 0.18);
}

.schedule-calendar {
    padding: 1rem;
}

.schedule-calendar__header {
    margin-bottom: 0.75rem;
    color: var(--ts-ink);
    font-size: 1rem;
}

.schedule-calendar__weekdays,
.schedule-calendar__grid {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
}

.schedule-calendar__weekdays span {
    padding: 0.45rem 0.5rem;
    color: var(--ts-muted);
    font-size: 0.72rem;
    font-weight: 900;
    text-transform: uppercase;
}

.schedule-calendar__grid {
    border-top: 1px solid var(--ts-line);
    border-left: 1px solid var(--ts-line);
}

.schedule-calendar-day {
    min-height: 128px;
    padding: 0.5rem;
    border-right: 1px solid var(--ts-line);
    border-bottom: 1px solid var(--ts-line);
    background: #ffffff;
}

.schedule-calendar-day.muted {
    background: #f8fafb;
}

.schedule-calendar-day__number {
    display: block;
    margin-bottom: 0.4rem;
    color: var(--ts-muted);
    font-size: 0.78rem;
    font-weight: 900;
}

.schedule-calendar-day--interactive {
    transition: background-color 160ms ease, box-shadow 160ms ease;
}

.schedule-calendar-day--interactive:hover {
    background: #fbfdff;
}

.schedule-calendar-day__trigger {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.4rem;
    width: 100%;
    min-height: 100%;
    padding: 0;
    border: 0;
    background: none;
    text-align: left;
    cursor: pointer;
}

.schedule-calendar-day__trigger:focus-visible {
    outline: 2px solid rgba(13, 110, 253, 0.28);
    outline-offset: 4px;
    border-radius: 8px;
}

.schedule-calendar-day__dots {
    display: flex;
    flex-wrap: wrap;
    gap: 0.28rem;
}

.schedule-calendar-dot {
    width: 8px;
    height: 8px;
    border-radius: 999px;
    background: var(--schedule-dot-color, var(--ts-blue));
    box-shadow: inset 0 0 0 1px rgba(16, 25, 35, 0.08);
}

.schedule-calendar-day__more {
    color: var(--ts-muted);
    font-size: 0.68rem;
    font-weight: 800;
}

.schedule-calendar-event {
    display: block;
    margin-bottom: 0.35rem;
    padding: 0.45rem 0.5rem;
    border-left: 3px solid var(--ts-blue);
    border-radius: 6px;
    color: var(--ts-ink);
    background: rgba(13, 110, 253, 0.08);
    text-decoration: none;
}

.schedule-calendar-event--practice {
    border-left-color: #198754;
    background: rgba(25, 135, 84, 0.1);
}

.schedule-calendar-event--teamevent {
    border-left-color: #ffc107;
    background: rgba(255, 193, 7, 0.16);
}

a.schedule-calendar-event {
    transition: transform 160ms ease, box-shadow 160ms ease, background-color 160ms ease;
}

a.schedule-calendar-event:hover,
a.schedule-calendar-event:focus-visible {
    transform: translateY(-1px);
    box-shadow: 0 6px 14px rgba(16, 25, 35, 0.08);
}

a.schedule-calendar-event:focus-visible {
    outline: 2px solid rgba(13, 110, 253, 0.28);
    outline-offset: 2px;
}

.schedule-day-modal .modal-dialog {
    max-width: 680px;
}

.schedule-day-modal .modal-content {
    border: 0;
    border-radius: 22px;
    overflow: hidden;
    box-shadow: 0 24px 60px rgba(16, 25, 35, 0.16);
}

.schedule-day-modal .modal-header {
    align-items: flex-start;
    padding: 1.15rem 1.25rem 1rem;
    border-bottom: 1px solid var(--ts-line);
}

.schedule-day-modal .modal-body {
    padding: 1rem;
    background: #f7fafc;
}

.schedule-day-modal__eyebrow {
    display: block;
    color: var(--ts-muted);
    font-size: 0.72rem;
    font-weight: 900;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.schedule-day-modal__subtitle {
    margin: 0.3rem 0 0;
    color: var(--ts-muted);
    font-size: 0.9rem;
    font-weight: 700;
}

.schedule-day-modal__list {
    display: grid;
    gap: 0.75rem;
}

.schedule-day-modal__item {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 0.9rem;
    align-items: start;
    padding: 1rem;
    border: 1px solid rgba(16, 25, 35, 0.08);
    border-radius: 18px;
    background: #ffffff;
    color: inherit;
    text-decoration: none;
}

.schedule-day-modal__item--link {
    transition: transform 160ms ease, box-shadow 160ms ease, border-color 160ms ease;
}

.schedule-day-modal__item--link:hover,
.schedule-day-modal__item--link:focus-visible {
    transform: translateY(-1px);
    border-color: rgba(13, 110, 253, 0.18);
    box-shadow: 0 10px 22px rgba(16, 25, 35, 0.08);
}

.schedule-day-modal__item--link:focus-visible {
    outline: 2px solid rgba(13, 110, 253, 0.28);
    outline-offset: 2px;
}

.schedule-day-modal__accent {
    width: 10px;
    height: 10px;
    margin-top: 0.45rem;
    border-radius: 999px;
    background: var(--schedule-item-accent, var(--ts-blue));
    box-shadow: inset 0 0 0 1px rgba(16, 25, 35, 0.08);
}

.schedule-day-modal__item-body h3 {
    margin: 0;
    color: var(--ts-ink);
    font-size: 1rem;
    font-weight: 900;
}

.schedule-day-modal__item-body p {
    margin: 0.28rem 0 0;
    color: var(--ts-muted);
    font-size: 0.9rem;
    font-weight: 700;
}

.schedule-day-modal__item-topline {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    margin-bottom: 0.3rem;
    color: var(--ts-muted);
    font-size: 0.76rem;
    font-weight: 800;
}

.schedule-day-modal__empty {
    padding: 1.25rem;
    border: 1px dashed rgba(16, 25, 35, 0.14);
    border-radius: 18px;
    color: var(--ts-muted);
    text-align: center;
    font-weight: 700;
    background: #ffffff;
}

.schedule-calendar-event span,
.schedule-calendar-event strong {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.schedule-list-item__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-top: 0.9rem;
}

.attendance-summary-strip {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 1rem;
}

.attendance-summary-strip div,
.attendance-event-panel,
.attendance-report-panel {
    border: 1px solid var(--ts-line);
    border-radius: 8px;
    background: #ffffff;
    box-shadow: var(--ts-shadow-soft);
}

.attendance-summary-strip div {
    padding: 1rem;
}

.attendance-summary-strip span {
    display: block;
    margin-bottom: 0.35rem;
    color: var(--ts-muted);
    font-size: 0.78rem;
    font-weight: 900;
    text-transform: uppercase;
}

.attendance-summary-strip strong {
    color: var(--ts-ink);
    font-size: 2rem;
    line-height: 1;
}

.attendance-event-panel {
    overflow: hidden;
}

.attendance-toolbar,
.attendance-save-bar,
.attendance-report-panel__header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    padding: 1.2rem;
    border-bottom: 1px solid var(--ts-line);
    background: #f8fafb;
}

.attendance-toolbar h2,
.attendance-report-panel__header h2 {
    margin: 0 0 0.2rem;
    color: var(--ts-ink);
    font-size: 1.2rem;
    font-weight: 900;
}

.attendance-toolbar p,
.attendance-report-panel__header p {
    margin: 0;
    color: var(--ts-muted);
}

.attendance-toolbar__actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 0.6rem;
}

.attendance-roster {
    display: grid;
}

.attendance-player-row {
    display: grid;
    grid-template-columns: minmax(160px, 0.7fr) minmax(0, 1.4fr) minmax(180px, 0.8fr);
    gap: 1rem;
    align-items: center;
    padding: 1rem 1.2rem;
    border-bottom: 1px solid var(--ts-line);
}

.attendance-player-row:last-child {
    border-bottom: 0;
}

.attendance-player-row__identity strong {
    display: block;
    color: var(--ts-ink);
    font-weight: 900;
}

.attendance-player-row__identity span {
    color: var(--ts-muted);
    font-size: 0.9rem;
}

.attendance-status-group {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(92px, 1fr));
    gap: 0.45rem;
}

.attendance-status-input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.attendance-status {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 40px;
    padding: 0.45rem 0.55rem;
    border: 1px solid var(--ts-line);
    border-radius: 6px;
    color: #445467;
    background: #ffffff;
    font-size: 0.82rem;
    font-weight: 900;
    cursor: pointer;
    transition: border-color 0.15s ease, background-color 0.15s ease, color 0.15s ease;
}

.attendance-status-input:checked + .attendance-status--present {
    border-color: #198754;
    color: #ffffff;
    background: #198754;
}

.attendance-status-input:checked + .attendance-status--late {
    border-color: #d4a017;
    color: #101923;
    background: #f7d86a;
}

.attendance-status-input:checked + .attendance-status--absent {
    border-color: #b42318;
    color: #ffffff;
    background: #b42318;
}

.attendance-status-input:checked + .attendance-status--excused {
    border-color: #0d6efd;
    color: #ffffff;
    background: #0d6efd;
}

.attendance-status-input:checked + .attendance-status--unknown {
    border-color: #667085;
    color: #ffffff;
    background: #667085;
}

.attendance-note-field .form-control {
    min-height: 40px;
}

.attendance-save-bar {
    border-top: 1px solid var(--ts-line);
    border-bottom: 0;
}

.attendance-report-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.4fr) minmax(320px, 0.8fr);
    gap: 1.5rem;
}

.attendance-report-panel {
    overflow: hidden;
}

.attendance-pill {
    display: inline-flex;
    align-items: center;
    min-height: 26px;
    padding: 0.25rem 0.55rem;
    border-radius: 999px;
    font-size: 0.76rem;
    font-weight: 900;
}

.attendance-pill--present {
    color: #ffffff;
    background: #198754;
}

.attendance-pill--late {
    color: #101923;
    background: #f7d86a;
}

.attendance-pill--absent {
    color: #ffffff;
    background: #b42318;
}

.attendance-pill--excused {
    color: #ffffff;
    background: #0d6efd;
}

.attendance-pill--unknown {
    color: #ffffff;
    background: #667085;
}

.attendance-event-list {
    display: grid;
}

.attendance-event-card {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem 1.2rem;
    border-bottom: 1px solid var(--ts-line);
    color: inherit;
    text-decoration: none;
}

.attendance-event-card:last-child {
    border-bottom: 0;
}

.attendance-event-card:hover {
    color: inherit;
    background: #f8fafb;
    text-decoration: none;
}

.attendance-event-card h3 {
    margin: 0.5rem 0 0.2rem;
    color: var(--ts-ink);
    font-size: 1rem;
    font-weight: 900;
}

.attendance-event-card p {
    margin: 0;
    color: var(--ts-muted);
}

.attendance-event-card > strong {
    color: var(--ts-ink);
    font-size: 1.35rem;
    white-space: nowrap;
}

.attendance-player-link {
    color: var(--ts-ink);
    font-weight: 900;
    text-decoration: none;
}

.attendance-player-link:hover,
.attendance-player-link:focus {
    color: var(--ts-blue);
    text-decoration: underline;
    text-underline-offset: 0.18rem;
}

.attendance-player-summary-row {
    cursor: pointer;
}

.attendance-player-summary-row:focus {
    outline: 3px solid rgba(9, 188, 138, 0.3);
    outline-offset: -3px;
}

.attendance-player-history {
    display: grid;
}

.attendance-player-history-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem 1.2rem;
    border-bottom: 1px solid var(--ts-line);
    color: inherit;
    text-decoration: none;
}

.attendance-player-history-row:last-child {
    border-bottom: 0;
}

.attendance-player-history-row:hover,
.attendance-player-history-row:focus {
    color: inherit;
    background: #f8fafb;
    text-decoration: none;
}

.attendance-player-history-row h3 {
    margin: 0.5rem 0 0.2rem;
    color: var(--ts-ink);
    font-size: 1rem;
    font-weight: 900;
}

.attendance-player-history-row p,
.attendance-player-history-row small {
    display: block;
    margin: 0;
    color: var(--ts-muted);
}

.attendance-player-history-row small {
    margin-top: 0.35rem;
    font-weight: 700;
}

@media (max-width: 992px) {
    .attendance-summary-strip {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .team-location-form-grid,
    .team-location-edit-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .attendance-player-row,
    .attendance-report-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 767px) {
    .attendance-summary-strip {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .attendance-toolbar,
    .attendance-save-bar,
    .attendance-report-panel__header {
        align-items: stretch;
        flex-direction: column;
    }

    .attendance-toolbar__actions {
        justify-content: stretch;
    }

    .attendance-toolbar__actions .btn,
    .attendance-save-bar .btn {
        width: 100%;
    }

    .attendance-player-history-row {
        align-items: flex-start;
        flex-direction: column;
    }

    .attendance-status-group {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .dashboard-public-actions {
        justify-content: stretch;
    }

    .dashboard-public-link {
        width: 100%;
    }

    .team-location-form-grid,
    .team-location-edit-grid {
        grid-template-columns: 1fr;
    }

    .team-location-item__footer {
        align-items: stretch;
        flex-direction: column;
    }

    .team-location-delete-form {
        position: static;
        justify-self: stretch;
    }

    .team-location-delete-form .btn,
    .team-location-actions .btn {
        width: 100%;
    }
}

.schedule-calendar-event span {
    color: var(--ts-muted);
    font-size: 0.7rem;
    font-weight: 800;
}

.schedule-calendar-event strong {
    font-size: 0.78rem;
    font-weight: 900;
}

.schedule-empty {
    padding: 2rem;
    color: var(--ts-muted);
    font-weight: 800;
    text-align: center;
}

@media (max-width: 900px) {
    .coach-message-grid {
        grid-template-columns: 1fr;
        min-height: 0;
    }

    .coach-message-sidebar {
        border-right: none;
        border-bottom: 1px solid var(--ts-line);
    }

    .coach-thread-list {
        display: grid;
        grid-auto-flow: column;
        grid-auto-columns: minmax(220px, 1fr);
        overflow-x: auto;
        overflow-y: hidden;
    }

    .coach-conversation.active {
        min-height: 420px;
    }

    .coach-message-bubble {
        max-width: 92%;
    }

    .schedule-add-panel__header,
    .schedule-board__toolbar {
        align-items: stretch;
        flex-direction: column;
    }

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

    .schedule-calendar {
        overflow-x: hidden;
    }

    .schedule-calendar__weekdays span {
        padding-inline: 0.2rem;
        overflow: hidden;
        text-overflow: clip;
    }

    .schedule-calendar-day {
        min-height: 92px;
        padding: 0.35rem;
    }

    .schedule-calendar-day__dots {
        gap: 0.22rem;
    }

    .schedule-calendar-dot {
        width: 7px;
        height: 7px;
    }

    .schedule-calendar-event {
        padding: 0.35rem;
    }

    .schedule-day-modal .modal-body {
        padding: 0.85rem;
    }

    .schedule-toast {
        right: 1rem;
        bottom: 1rem;
        left: 1rem;
        max-width: none;
    }
}

@media (max-width: 575px) {
    .organization-teams-band,
    .organization-directory-band,
    .organization-location-detail-band,
    .team-site-overview {
        padding-top: 1.6rem;
    }

    .organization-directory-tools,
    .organization-team-tools {
        padding: 0.85rem;
    }

    .organization-site-location-card {
        gap: 0.85rem;
        padding: 0.9rem;
    }

    .organization-site-location-card h3,
    .organization-site-team-card strong {
        font-size: 1.08rem;
    }

    .organization-location-detail-title,
    .organization-location-detail-main {
        padding-left: 0;
    }

    .organization-location-detail-layout {
        gap: 1rem;
    }

    .organization-location-detail-sections section,
    .organization-location-tag-section {
        padding: 0.9rem;
    }

    .schedule-board__toolbar {
        padding: 0.9rem 1rem;
    }

    .schedule-view-toggle {
        width: 100%;
    }

    .schedule-view-toggle button {
        flex: 1 1 0;
    }

    .schedule-calendar {
        padding: 0.65rem;
    }

    .schedule-calendar__weekdays span {
        padding: 0.3rem 0.1rem;
        font-size: 0.62rem;
        text-align: center;
    }

    .schedule-calendar-day {
        min-height: 70px;
        padding: 0.25rem;
    }

    .schedule-calendar-day__number {
        margin-bottom: 0.22rem;
        font-size: 0.68rem;
    }

    .schedule-calendar-day__dots {
        gap: 0.18rem;
    }

    .schedule-calendar-dot {
        width: 6px;
        height: 6px;
    }

    .schedule-calendar-day__more {
        font-size: 0.58rem;
    }

    .schedule-calendar-event {
        margin-bottom: 0.2rem;
        padding: 0.22rem 0.25rem;
        border-left-width: 2px;
        border-radius: 4px;
    }

    .schedule-calendar-event span {
        display: none;
    }

    .schedule-calendar-event strong {
        font-size: 0.62rem;
    }

    .schedule-day-modal .modal-header {
        padding: 1rem 1rem 0.9rem;
    }

    .schedule-day-modal .modal-body {
        padding: 0.75rem;
    }

    .schedule-day-modal__item {
        padding: 0.85rem;
        border-radius: 14px;
    }

    .schedule-list-item {
        grid-template-columns: 1fr;
        gap: 0.75rem;
        padding: 0.9rem 1rem;
    }

    .schedule-date-chip {
        width: auto;
        height: auto;
        min-height: 42px;
        grid-template-columns: auto auto;
        justify-content: flex-start;
        gap: 0.4rem;
        padding: 0.45rem 0.65rem;
    }

    .schedule-list-item__topline {
        align-items: flex-start;
        flex-wrap: wrap;
    }
}

.dashboard-list .list-group-item {
    padding: 0.9rem 0;
    border-color: rgba(16, 25, 35, 0.08);
    color: var(--ts-ink);
}

.nav-tabs {
    gap: 0.35rem;
    border-bottom: 1px solid var(--ts-line);
}

.nav-tabs .nav-link {
    border-radius: 6px 6px 0 0;
    color: var(--ts-muted);
    font-weight: 800;
}

.nav-tabs .nav-link.active {
    color: var(--ts-ink);
    border-color: var(--ts-line) var(--ts-line) #ffffff;
    background-color: #ffffff;
}

.table-responsive {
    border-radius: var(--ts-radius);
    overflow-x: auto;
}

.table {
    color: var(--ts-ink);
    width: max-content;
    min-width: 100%;
}

.table > :not(caption) > * > * {
    padding: 1rem 1.1rem;
    border-bottom-color: rgba(16, 25, 35, 0.08);
    white-space: nowrap;
}

.table-light,
.table thead {
    --bs-table-bg: #eef3f5;
    color: var(--ts-ink);
}

.table th {
    font-size: 0.78rem;
    font-weight: 900;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    white-space: nowrap;
}

.table td,
.table .btn {
    white-space: nowrap;
}

.table-action-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    padding: 0;
    border-color: rgba(13, 110, 253, 0.34);
    border-radius: 6px;
    color: var(--ts-blue);
    background: #ffffff;
}

.table-action-button:hover,
.table-action-button:focus {
    color: #ffffff;
    border-color: var(--ts-blue);
    background: var(--ts-blue);
}

.table-action-button svg {
    width: 17px;
    height: 17px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

[data-record-context="true"] {
    cursor: pointer;
}

.record-context-row--active,
.table-hover > tbody > tr.record-context-row--active:hover > * {
    background-color: rgba(9, 188, 138, 0.1) !important;
}

.record-context-menu {
    position: fixed;
    z-index: 1085;
    min-width: 13rem;
    padding: 0.35rem;
    border: 1px solid rgba(16, 25, 35, 0.1);
    border-radius: 0.5rem;
    background: #ffffff;
    box-shadow: 0 1rem 2.5rem rgba(16, 25, 35, 0.18);
}

.record-context-menu__label {
    max-width: 15rem;
    padding: 0.4rem 0.55rem 0.35rem;
    color: var(--ts-muted);
    font-size: 0.78rem;
    font-weight: 800;
    overflow: hidden;
    text-overflow: ellipsis;
    text-transform: uppercase;
    white-space: nowrap;
}

.record-context-menu__item {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    width: 100%;
    padding: 0.6rem 0.65rem;
    border: 0;
    border-radius: 0.35rem;
    background: transparent;
    color: var(--ts-ink);
    font-weight: 800;
    text-align: left;
}

.record-context-menu__item[hidden] {
    display: none;
}

.record-context-menu__item:hover,
.record-context-menu__item:focus {
    background: rgba(0, 102, 204, 0.09);
    outline: none;
}

.record-context-menu__item--danger {
    color: #b4232e;
}

.record-context-menu__item--danger:hover,
.record-context-menu__item--danger:focus {
    background: rgba(220, 53, 69, 0.1);
}

.record-context-menu__item svg {
    width: 1rem;
    height: 1rem;
    flex: 0 0 auto;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.table-hover tbody tr:hover {
    --bs-table-hover-bg: rgba(32, 201, 151, 0.08);
}

.sortable-header::after {
    content: "";
    display: inline-block;
    width: 0.45rem;
    height: 0.45rem;
    margin-left: 0.45rem;
    border-right: 2px solid var(--ts-teal);
    border-bottom: 2px solid var(--ts-teal);
    transform: rotate(45deg) translateY(-2px);
    color: var(--ts-teal);
}

.about-intro,
.developer-section,
.tile-section {
    padding: 2.4rem;
    background:
        linear-gradient(135deg, rgba(255, 255, 255, 0.98), rgba(242, 247, 249, 0.96)),
        repeating-linear-gradient(115deg, rgba(16, 25, 35, 0.04) 0 1px, transparent 1px 62px);
}

.about-intro h1,
.developer-section h2 {
    color: var(--ts-ink);
    font-weight: 900;
}

.feature-pill {
    background:
        linear-gradient(135deg, rgba(255, 255, 255, 0.98), rgba(241, 247, 247, 0.98));
}

.developer-card .card-body {
    padding: 2rem !important;
}

.developer-photo,
.rounded-circle {
    border: 3px solid #ffffff;
    box-shadow: 0 10px 22px rgba(16, 25, 35, 0.14);
}

.form-floating > label,
label {
    color: var(--ts-muted);
}

.form-check-input:checked {
    background-color: var(--ts-green);
    border-color: var(--ts-green);
}

.text-danger {
    color: #b42318 !important;
}

a {
    color: var(--ts-blue);
}

a:hover {
    color: #0753c7;
}

footer {
    border-top: 1px solid rgba(16, 25, 35, 0.06) !important;
    background: var(--ts-page-bg) !important;
}

.simple-footer {
    color: var(--ts-muted) !important;
    font-size: 0.92rem;
}

.simple-footer a {
    position: relative;
    display: inline-flex;
    align-items: center;
    color: #526273;
    font-weight: 700;
    text-decoration: none;
    transition: color 0.18s ease;
}

.simple-footer a::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: -0.18rem;
    height: 2px;
    border-radius: 999px;
    background: linear-gradient(90deg, var(--ts-blue), var(--ts-teal));
    opacity: 0;
    transform: scaleX(0.65);
    transition: opacity 0.18s ease, transform 0.18s ease;
}

.simple-footer a:hover,
.simple-footer a:focus {
    color: var(--ts-ink);
}

.simple-footer a:hover::after,
.simple-footer a:focus::after {
    opacity: 1;
    transform: scaleX(1);
}

@media (max-width: 992px) {
    .live-hero-band,
    section.page-band:has(.search-panel) {
        min-height: auto;
        padding: 4.5rem 0;
    }

    .search-form {
        flex-wrap: wrap;
    }

    .scorekeeper-grid,
    .scoreboard-controls {
        grid-template-columns: 1fr;
    }

    .scoreboard-display {
        grid-template-columns: 1fr;
    }

    .scoreboard-team,
    .scoreboard-team:last-child {
        min-height: 130px;
        text-align: left;
    }
}

@media (max-width: 767px) {
    main > .container {
        padding-bottom: 2rem !important;
    }

    body.has-marketing-footer main > .container {
        padding-bottom: 0 !important;
    }

    .home-band-light,
    .home-band-dark,
    .page-band-light,
    .page-band-dark,
    .live-hero-band,
    section.page-band:has(.search-panel) {
        padding: 3.4rem 0;
    }

    .home-title,
    .section-title {
        font-size: 2.35rem;
    }

    .dashboard-header,
    .about-intro,
    .developer-section,
    .tile-section {
        padding: 1.25rem;
    }

    .search-panel {
        padding: 0.75rem;
    }

    .scorekeeper-game-card__top {
        align-items: flex-start;
        flex-direction: column;
    }

    .scoreboard-button-grid,
    .scoreboard-status-controls {
        grid-template-columns: 1fr;
    }

    .counter-row {
        grid-template-columns: minmax(0, 1fr) 40px 44px 40px;
    }

    .user-role-filter-form,
    .user-role-edit-summary,
    .user-role-checkbox-grid {
        grid-template-columns: 1fr;
    }

    .user-role-filter-actions {
        flex-wrap: wrap;
    }
}

/* Refinements after visual pass */
.site-header,
.main-navbar {
    background: #ffffff !important;
}

.site-header {
    box-shadow: 0 6px 18px rgba(16, 25, 35, 0.035);
}

.nav-shell {
    min-height: 64px !important;
}

.navbar-brand {
    width: auto !important;
    min-width: 0;
    padding: 0 !important;
    background: transparent !important;
}

.navbar-brand .nav-logo,
img.nav-logo {
    display: block;
    width: auto !important;
    max-width: 180px !important;
    height: 34px !important;
    max-height: 34px !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    object-fit: contain;
}

.nav-link-modern {
    padding-top: 1.25rem !important;
    padding-bottom: 1.25rem !important;
}

.home-band,
.page-band {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
}

.home-band-light,
.page-band-light,
.home-band-dark,
.page-band-dark {
    border-top: 0;
    border-bottom: 0;
}

.home-band-light + .home-band-dark,
.home-band-dark + .home-band-light,
.page-band-light + .page-band-dark,
.page-band-dark + .page-band-light,
.live-hero-band + .page-band,
section.page-band:has(.search-panel) + .page-band {
    border-top: 0;
}

.live-hero-band + .page-band-dark,
section.page-band:has(.search-panel) + .page-band-dark {
    padding-top: 5.5rem;
    background:
        linear-gradient(180deg, rgba(8, 14, 22, 0.98), rgba(11, 35, 38, 0.98) 18%, rgba(6, 63, 31, 0.98)),
        repeating-linear-gradient(115deg, rgba(255, 255, 255, 0.055) 0 1px, transparent 1px 72px);
}

.live-hero-band + .page-band-dark .container,
section.page-band:has(.search-panel) + .page-band-dark .container {
    padding-top: 0;
}

.home-band-dark .home-info-card p,
.home-band-dark .custom-card p,
.home-band-dark .card p,
.page-band-dark .content-card p,
.page-band-dark .game-card p,
.page-band-dark .empty-card p,
.page-band-dark .card p {
    color: var(--ts-muted) !important;
}

.home-band-dark .home-info-card h3,
.home-band-dark .custom-card h3,
.home-band-dark .custom-card h5,
.home-band-dark .card h3,
.home-band-dark .card h5,
.page-band-dark .content-card h3,
.page-band-dark .game-card h3,
.page-band-dark .empty-card h3,
.page-band-dark .card h3,
.page-band-dark .card h5 {
    color: var(--ts-ink) !important;
}

.page-band-dark .content-card,
.page-band-dark .game-card,
.page-band-dark .empty-card,
.home-band-dark .home-info-card,
.home-band-dark .custom-card {
    background: #ffffff !important;
}

.home-how-band {
    overflow: hidden;
    min-height: 476px;
    padding: 5.55rem 0;
    background:
        linear-gradient(130deg, rgba(12, 20, 27, 0.98), rgba(13, 47, 39, 0.96) 52%, rgba(7, 65, 28, 0.98)),
        repeating-linear-gradient(115deg, rgba(255, 255, 255, 0.035) 0 1px, transparent 1px 72px);
}

.home-how-row {
    --bs-gutter-x: 5rem;
}

.public-split-section .home-eyebrow-light,
.public-split-section .section-eyebrow-light {
    color: rgba(255, 255, 255, 0.82);
    font-weight: 900;
}

.public-split-section h2 {
    max-width: 540px;
    margin-bottom: 1.25rem;
    font-size: clamp(2.45rem, 4vw, 3.5rem);
    line-height: 1.08;
}

.public-split-section .col-lg-5 > p:not(.home-eyebrow-light):not(.section-eyebrow):not(.section-eyebrow-light),
.public-split-section .col-lg-6 > p:not(.home-eyebrow-light):not(.section-eyebrow):not(.section-eyebrow-light) {
    max-width: 550px;
    font-size: 1.02rem;
    font-weight: 650;
    line-height: 1.65;
}

.public-split-section:is(.home-band-dark, .page-band-dark, .info-section-dark) h2 {
    color: #ffffff !important;
}

.public-split-section:is(.home-band-dark, .page-band-dark, .info-section-dark) .col-lg-5 > p:not(.home-eyebrow-light):not(.section-eyebrow):not(.section-eyebrow-light),
.public-split-section:is(.home-band-dark, .page-band-dark, .info-section-dark) .col-lg-6 > p:not(.home-eyebrow-light):not(.section-eyebrow):not(.section-eyebrow-light) {
    color: rgba(255, 255, 255, 0.82) !important;
}

.public-split-section:is(.home-band-light, .page-band-light, .info-section-light) .col-lg-5 > p:not(.home-eyebrow-light):not(.section-eyebrow):not(.section-eyebrow-light),
.public-split-section:is(.home-band-light, .page-band-light, .info-section-light) .col-lg-6 > p:not(.home-eyebrow-light):not(.section-eyebrow):not(.section-eyebrow-light) {
    color: var(--ts-muted);
}

.public-hero-section {
    min-height: clamp(25rem, 42vw, 32rem);
    padding: clamp(2.4rem, 5vw, 4.25rem) 0 clamp(2rem, 4vw, 3rem);
    color: #ffffff;
    background:
        linear-gradient(90deg, rgba(3, 12, 18, 0.92), rgba(3, 15, 23, 0.74) 42%, rgba(6, 52, 43, 0.62)),
        linear-gradient(180deg, rgba(2, 8, 13, 0.18), rgba(2, 8, 13, 0.78)),
        #06141d;
}

.public-hero-home {
    background:
        linear-gradient(90deg, rgba(3, 12, 18, 0.93), rgba(3, 15, 23, 0.75) 42%, rgba(6, 52, 43, 0.62)),
        linear-gradient(180deg, rgba(2, 8, 13, 0.2), rgba(2, 8, 13, 0.76)),
        url("../images/homeHeroGenerated.png") center 44% / cover no-repeat,
        #06141d;
}

.public-hero-about {
    background:
        linear-gradient(90deg, rgba(3, 12, 18, 0.94), rgba(3, 15, 23, 0.76) 42%, rgba(6, 52, 43, 0.62)),
        linear-gradient(180deg, rgba(2, 8, 13, 0.22), rgba(2, 8, 13, 0.76)),
        url("../images/aboutHeroGenerated.png") center 45% / cover no-repeat,
        #06141d;
}

.public-hero-live {
    background:
        linear-gradient(90deg, rgba(3, 12, 18, 0.94), rgba(3, 15, 23, 0.74) 42%, rgba(6, 52, 43, 0.62)),
        linear-gradient(180deg, rgba(2, 8, 13, 0.18), rgba(2, 8, 13, 0.76)),
        url("../images/liveHeroGenerated.png") center 38% / cover no-repeat,
        #06141d;
}

.public-hero {
    max-width: 780px;
    margin: 0 auto clamp(1rem, 2vw, 1.4rem);
    text-align: center;
    animation: publicFadeUp 0.72s ease both;
}

.public-hero-logo {
    width: min(100%, 18rem);
    max-height: 8rem;
    margin: 0 auto 1.1rem;
    object-fit: contain;
    filter: drop-shadow(0 1rem 2rem rgba(0, 0, 0, 0.35));
}

.public-hero-section .home-eyebrow,
.public-hero-section .section-eyebrow,
.public-hero-section .section-eyebrow-light {
    color: rgba(255, 255, 255, 0.64);
    font-weight: 900;
}

.public-hero-section .home-title,
.public-hero-section .section-title,
.public-hero-section h1 {
    max-width: 820px;
    margin-left: auto;
    margin-right: auto;
    color: #ffffff !important;
    font-size: clamp(2.55rem, 5.2vw, 4.55rem);
    font-weight: 950;
    line-height: 0.96;
}

.public-hero-section .home-subtitle,
.public-hero-section .section-text,
.public-hero-section .public-hero p:not(.home-eyebrow):not(.section-eyebrow):not(.section-eyebrow-light) {
    max-width: 590px;
    margin-left: auto;
    margin-right: auto;
    color: rgba(255, 255, 255, 0.82);
    font-size: 1.05rem;
    line-height: 1.55;
}

.public-feature-strip {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.7rem;
    margin: 0;
    animation: publicFadeUp 0.72s ease 0.08s both;
}

.public-feature-strip span {
    padding: 0.72rem 1rem;
    border: 1px solid rgba(9, 188, 138, 0.28);
    border-radius: 999px;
    color: #ffffff;
    background: linear-gradient(135deg, rgba(6, 46, 56, 0.96), rgba(6, 120, 92, 0.96));
    font-weight: 900;
    box-shadow: 0 0.85rem 1.5rem rgba(0, 0, 0, 0.18);
    transition: transform 0.22s ease, border-color 0.22s ease, box-shadow 0.22s ease;
}

.public-feature-strip span:hover {
    border-color: rgba(255, 255, 255, 0.34);
    box-shadow: 0 1rem 1.8rem rgba(0, 0, 0, 0.22);
    transform: translateY(-2px);
}

.public-hero-section .home-primary-link {
    margin: 0.35rem auto 0;
}

.public-card,
.live-search-result-card,
.game-card {
    animation: publicFadeUp 0.66s ease both;
}

.public-card,
.home-info-card.public-card,
.custom-card.public-card,
.info-developer-card.public-card {
    position: relative;
    overflow: hidden;
    padding-bottom: 2.75rem !important;
    border-radius: 8px !important;
    background:
        radial-gradient(circle at 50% -12%, rgba(255, 191, 79, 0.2), transparent 38%),
        radial-gradient(circle at 100% 100%, rgba(13, 110, 253, 0.1), transparent 34%),
        linear-gradient(180deg, rgba(255, 253, 248, 0.96), #ffffff 58%) !important;
    box-shadow: 0 1.1rem 2.5rem rgba(16, 25, 35, 0.09) !important;
}

.info-developer-card.public-card {
    width: 100%;
}

.public-card::after,
.home-info-card.public-card::after,
.custom-card.public-card::after,
.info-developer-card.public-card::after {
    content: "";
    position: absolute;
    inset: auto 1rem 1rem 1rem;
    height: 0.22rem;
    border-radius: 999px;
    background: linear-gradient(90deg, #0d6efd, #26c485, #f0b429);
    opacity: 0.78;
}

.public-card > * {
    position: relative;
    z-index: 1;
}

.public-card:hover {
    border-color: rgba(9, 188, 138, 0.2) !important;
    box-shadow: 0 1.35rem 3rem rgba(16, 25, 35, 0.14) !important;
    transform: translateY(-4px);
}

.home-band-light,
.page-band-light,
.info-section-light {
    background:
        linear-gradient(180deg, #eef6f8, #f8fbfd 48%, #ffffff),
        repeating-linear-gradient(115deg, rgba(16, 25, 35, 0.028) 0 1px, transparent 1px 64px);
}

.home-band-dark,
.page-band-dark,
.info-section-dark {
    color: #ffffff;
    background:
        radial-gradient(circle at 18% 0%, rgba(13, 110, 253, 0.18), transparent 34%),
        radial-gradient(circle at 82% 12%, rgba(9, 188, 138, 0.18), transparent 30%),
        linear-gradient(180deg, #04080d, #050708 58%, #020303);
}

.vision-story {
    max-width: 850px;
    margin: 0 auto;
    text-align: center;
}

.vision-story h2 {
    margin-bottom: 1.15rem;
    font-size: clamp(2.2rem, 4vw, 3.45rem);
    font-weight: 950;
    line-height: 1.03;
}

.vision-story p:not(.home-eyebrow) {
    max-width: 720px;
    margin-left: auto;
    margin-right: auto;
    font-size: 1.06rem;
    font-weight: 650;
    line-height: 1.72;
}

.vision-score-band {
    overflow: hidden;
}

.vision-score-card {
    max-width: 520px;
    margin-left: auto;
    padding: clamp(1.25rem, 3vw, 2rem);
    color: var(--ts-ink);
    border: 1px solid rgba(255, 255, 255, 0.16);
    border-radius: 8px;
    background:
        radial-gradient(circle at 50% -10%, rgba(240, 180, 41, 0.22), transparent 38%),
        linear-gradient(180deg, #ffffff, #f8fbfd);
    box-shadow: 0 1.4rem 3.5rem rgba(0, 0, 0, 0.26);
}

.vision-score-card__inning {
    display: inline-flex;
    align-items: center;
    min-height: 2rem;
    margin-bottom: 1rem;
    padding: 0.35rem 0.7rem;
    color: #0f6848;
    background: #dff7ea;
    border-radius: 999px;
    font-size: 0.82rem;
    font-weight: 900;
}

.vision-score-card__teams {
    display: grid;
    gap: 0.75rem;
}

.vision-score-card__teams div {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 5.25rem;
    padding: 0.95rem 1rem;
    border: 1px solid #dce4ec;
    border-radius: 8px;
    background: #ffffff;
}

.vision-score-card__teams span {
    color: #647587;
    font-size: 0.86rem;
    font-weight: 900;
    text-transform: uppercase;
}

.vision-score-card__teams strong {
    color: var(--ts-ink);
    font-size: clamp(2.4rem, 7vw, 4.75rem);
    line-height: 0.9;
}

.vision-score-card p {
    margin: 1.1rem 0 0;
    color: var(--ts-muted) !important;
    font-weight: 700;
}

.live-hero-search-row {
    width: min(100%, 760px);
    margin: clamp(1rem, 2vw, 1.4rem) auto 0;
    animation: publicFadeUp 0.72s ease 0.14s both;
}

.live-hero-search-row .search-panel {
    border-radius: 8px !important;
}

.live-games-band {
    padding-top: clamp(4rem, 6vw, 5.6rem);
}

.card-grid > *,
.row.g-4 > *,
.live-search-results-list > * {
    animation: publicFadeUp 0.66s ease both;
}

.card-grid > *:nth-child(2),
.row.g-4 > *:nth-child(2),
.live-search-results-list > *:nth-child(2) {
    animation-delay: 0.06s;
}

.card-grid > *:nth-child(3),
.row.g-4 > *:nth-child(3),
.live-search-results-list > *:nth-child(3) {
    animation-delay: 0.12s;
}

@keyframes publicFadeUp {
    from {
        opacity: 0;
        transform: translateY(18px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@media (prefers-reduced-motion: reduce) {
    .public-hero,
    .public-feature-strip,
    .public-card,
    .live-search-result-card,
    .game-card,
    .card-grid > *,
    .row.g-4 > *,
    .live-search-results-list > * {
        animation: none !important;
        transition: none !important;
    }
}

.marketing-feature-list {
    display: grid;
    gap: 0;
    max-width: 720px;
    margin-left: auto;
    padding: 1.45rem 1.4rem;
    border: 1px solid rgba(190, 206, 218, 0.32);
    border-radius: 6px;
    background:
        radial-gradient(circle at 12% 0%, rgba(9, 188, 138, 0.12), transparent 34%),
        linear-gradient(135deg, rgba(27, 43, 45, 0.96), rgba(25, 39, 41, 0.98));
    box-shadow: 0 22px 48px rgba(0, 0, 0, 0.28);
    backdrop-filter: blur(10px);
}

.marketing-feature-item {
    display: flex;
    align-items: stretch;
    gap: 1rem;
    padding: 0.9rem 0 1rem;
    border-bottom: 1px solid rgba(213, 224, 229, 0.18);
}

.marketing-feature-item:first-child {
    padding-top: 0;
}

.marketing-feature-item:last-child {
    padding-bottom: 0.45rem;
    border-bottom: 0;
}

.marketing-feature-item > span {
    flex: 0 0 auto;
    width: 8px;
    min-width: 8px;
    min-height: 100%;
    border-radius: 999px;
    background: linear-gradient(180deg, var(--ts-teal), var(--ts-gold));
}

.marketing-feature-item h3,
.marketing-feature-item h4 {
    margin: 0 0 0.25rem;
    color: #ffffff !important;
    font-size: 1.02rem;
    font-weight: 900;
    line-height: 1.25;
}

.marketing-feature-item p {
    max-width: none;
    margin: 0;
    color: rgba(255, 255, 255, 0.78) !important;
    font-size: 0.98rem;
    font-weight: 500;
    line-height: 1.45;
}

@media (max-width: 991px) {
    .home-how-band {
        min-height: 0;
    }

    .home-how-row {
        --bs-gutter-x: 1.5rem;
    }

    .marketing-feature-list {
        margin-left: 0;
    }
}

@media (max-width: 767px) {
    .home-how-band {
        padding: 3.75rem 0;
    }

    .home-how-band h2 {
        font-size: 2.45rem;
    }

    .marketing-feature-list {
        padding: 1.2rem;
    }
}

.dashboard-subnav.theme-admin {
    background:
        linear-gradient(135deg, #10243f, #0d5b86 54%, #0b746f),
        repeating-linear-gradient(115deg, rgba(255, 255, 255, 0.06) 0 1px, transparent 1px 64px);
}

.dashboard-subnav.theme-coach {
    background:
        linear-gradient(135deg, #102116, #0d5a2d 55%, #168052),
        repeating-linear-gradient(115deg, rgba(255, 255, 255, 0.06) 0 1px, transparent 1px 64px);
}

.dashboard-subnav.theme-parent {
    background:
        linear-gradient(135deg, #242035, #5a4272 52%, #8a5f7a),
        repeating-linear-gradient(115deg, rgba(255, 255, 255, 0.06) 0 1px, transparent 1px 64px);
}

.dashboard-subnav.theme-organization {
    background:
        linear-gradient(135deg, #10243a, #1d6f73 52%, #67a83f),
        repeating-linear-gradient(115deg, rgba(255, 255, 255, 0.06) 0 1px, transparent 1px 64px);
}

.dashboard-subnav.theme-player {
    background:
        linear-gradient(135deg, #301f11, #8a551b 52%, #c6932e),
        repeating-linear-gradient(115deg, rgba(255, 255, 255, 0.06) 0 1px, transparent 1px 64px);
}

.dashboard-subnav.theme-scorekeeper {
    background:
        linear-gradient(135deg, #101923, #0b4d5d 52%, #09715d),
        repeating-linear-gradient(115deg, rgba(255, 255, 255, 0.06) 0 1px, transparent 1px 64px);
}

.theme-admin .dashboard-tab.active {
    background: linear-gradient(135deg, #ffffff, #dceeff);
}

.theme-coach .dashboard-tab.active {
    background: linear-gradient(135deg, #ffffff, #dff7e7);
}

.theme-parent .dashboard-tab.active {
    background: linear-gradient(135deg, #ffffff, #efe5f4);
}

.theme-organization .dashboard-tab.active {
    background: linear-gradient(135deg, #ffffff, #e5f5ec);
}

.theme-player .dashboard-tab.active {
    background: linear-gradient(135deg, #ffffff, #fff0d2);
}

.theme-scorekeeper .dashboard-tab.active {
    background: linear-gradient(135deg, #ffffff, #dff7ee);
}

.dashboard-subnav .dashboard-tab,
.dashboard-subnav .dashboard-tab:visited {
    color: rgba(255, 255, 255, 0.88) !important;
}

.dashboard-subnav .dashboard-tab:hover,
.dashboard-subnav .dashboard-tab:focus {
    color: #ffffff !important;
    border-color: rgba(255, 255, 255, 0.38) !important;
    background: rgba(255, 255, 255, 0.14) !important;
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.08);
}

.dashboard-subnav .dashboard-tab.active,
.dashboard-subnav .dashboard-tab.active:hover,
.dashboard-subnav .dashboard-tab.active:focus {
    color: var(--ts-ink) !important;
    border-color: rgba(255, 255, 255, 0.72) !important;
}

.dashboard-tab-separator {
    align-self: stretch;
    width: 1px;
    min-height: 38px;
    margin: 0 0.25rem;
    background: rgba(255, 255, 255, 0.24);
}

.dashboard-subnav .dashboard-tab-public,
.dashboard-subnav .dashboard-tab-public:visited {
    border-color: rgba(255, 255, 255, 0.42) !important;
    color: #14202b !important;
    background: #ffffff !important;
}

.dashboard-subnav .dashboard-tab-public:hover,
.dashboard-subnav .dashboard-tab-public:focus {
    color: #14202b !important;
    border-color: rgba(255, 255, 255, 0.72) !important;
    background: linear-gradient(135deg, #ffffff, #e8f6ff) !important;
}

.dashboard-subnav.theme-admin .dashboard-tab.active,
.dashboard-subnav.theme-admin .dashboard-tab.active:hover,
.dashboard-subnav.theme-admin .dashboard-tab.active:focus {
    background: linear-gradient(135deg, #ffffff, #dceeff) !important;
}

.dashboard-subnav.theme-coach .dashboard-tab.active,
.dashboard-subnav.theme-coach .dashboard-tab.active:hover,
.dashboard-subnav.theme-coach .dashboard-tab.active:focus {
    background: linear-gradient(135deg, #ffffff, #dff7e7) !important;
}

.dashboard-subnav.theme-parent .dashboard-tab.active,
.dashboard-subnav.theme-parent .dashboard-tab.active:hover,
.dashboard-subnav.theme-parent .dashboard-tab.active:focus {
    background: linear-gradient(135deg, #ffffff, #efe5f4) !important;
}

.dashboard-subnav.theme-organization .dashboard-tab.active,
.dashboard-subnav.theme-organization .dashboard-tab.active:hover,
.dashboard-subnav.theme-organization .dashboard-tab.active:focus {
    background: linear-gradient(135deg, #ffffff, #e5f5ec) !important;
}

.dashboard-subnav.theme-player .dashboard-tab.active,
.dashboard-subnav.theme-player .dashboard-tab.active:hover,
.dashboard-subnav.theme-player .dashboard-tab.active:focus {
    background: linear-gradient(135deg, #ffffff, #fff0d2) !important;
}

.dashboard-subnav.theme-scorekeeper .dashboard-tab.active,
.dashboard-subnav.theme-scorekeeper .dashboard-tab.active:hover,
.dashboard-subnav.theme-scorekeeper .dashboard-tab.active:focus {
    background: linear-gradient(135deg, #ffffff, #dff7ee) !important;
}

.scorekeeper-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
}

.scorekeeper-game-card {
    display: grid;
    gap: 1rem;
    min-height: 100%;
    padding: 1.2rem;
    border: 1px solid var(--ts-line);
    border-radius: 8px;
    color: var(--ts-ink);
    background:
        linear-gradient(135deg, rgba(255, 255, 255, 0.99), rgba(245, 250, 250, 0.98));
    box-shadow: var(--ts-shadow-soft);
    text-decoration: none;
    transition: transform 0.18s ease, box-shadow 0.18s ease;
}

.scorekeeper-game-card:hover,
.scorekeeper-game-card:focus {
    color: var(--ts-ink);
    box-shadow: 0 16px 32px rgba(16, 25, 35, 0.12);
    text-decoration: none;
    transform: translateY(-2px);
}

.scorekeeper-game-card__top,
.scorekeeper-game-card__meta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    color: var(--ts-muted);
    font-size: 0.82rem;
    font-weight: 800;
}

.scorekeeper-game-card__meta {
    align-items: flex-start;
    flex-direction: column;
}

.scorekeeper-matchup {
    display: grid;
    gap: 0.65rem;
}

.scorekeeper-matchup div {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 0.8rem;
}

.scorekeeper-matchup span {
    overflow: hidden;
    color: var(--ts-ink);
    font-size: 1.05rem;
    font-weight: 900;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.scorekeeper-matchup strong {
    min-width: 2.35rem;
    color: #0b2a25;
    font-size: 2.1rem;
    font-weight: 900;
    line-height: 1;
    text-align: right;
}

.scoreboard-machine {
    display: grid;
    gap: 1.25rem;
}

.scoreboard-machine__header {
    padding: 1.4rem;
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 8px;
    color: #ffffff;
    background:
        linear-gradient(135deg, #101923, #0b4d5d 52%, #09715d),
        repeating-linear-gradient(115deg, rgba(255, 255, 255, 0.06) 0 1px, transparent 1px 64px);
    box-shadow: var(--ts-shadow-soft);
}

.scoreboard-machine__header .back-link,
.scoreboard-machine__header .section-eyebrow {
    color: #9be7dd;
}

.scoreboard-machine__header h1 {
    margin-bottom: 0.35rem;
    font-size: clamp(1.8rem, 3.6vw, 3rem);
    font-weight: 900;
    line-height: 1.05;
}

.scoreboard-machine__header p:not(.section-eyebrow) {
    margin-bottom: 0;
    color: rgba(255, 255, 255, 0.78);
}

.scoreboard-form {
    display: grid;
    gap: 1rem;
}

.scoreboard-display {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(180px, 0.7fr) minmax(0, 1fr);
    gap: 0.75rem;
    padding: 0.75rem;
    border-radius: 8px;
    color: #ffffff;
    background: #101923;
    box-shadow: var(--ts-shadow-soft);
}

.scoreboard-team,
.scoreboard-center {
    display: grid;
    align-content: center;
    min-height: 180px;
    padding: 1rem;
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 6px;
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0.03));
}

.scoreboard-team span,
.scoreboard-period span {
    color: rgba(255, 255, 255, 0.64);
    font-size: 0.78rem;
    font-weight: 900;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.scoreboard-team h2 {
    overflow-wrap: anywhere;
    margin: 0.35rem 0;
    color: #ffffff;
    font-size: clamp(1.2rem, 2.3vw, 2rem);
    font-weight: 900;
}

.scoreboard-team strong {
    color: #9be7dd;
    font-size: clamp(4rem, 11vw, 7.5rem);
    font-weight: 900;
    line-height: 0.95;
}

.scoreboard-team:last-child {
    text-align: right;
}

.scoreboard-center {
    justify-items: center;
    text-align: center;
}

.scoreboard-clock {
    width: 100%;
    padding: 0.7rem;
    border-radius: 6px;
    color: #ffffff;
    background: rgba(0, 0, 0, 0.28);
    font-size: clamp(2.1rem, 5vw, 4rem);
    font-weight: 900;
    line-height: 1;
}

.scoreboard-clock-static {
    font-size: clamp(1.4rem, 3vw, 2.2rem);
}

.scoreboard-period {
    display: grid;
    gap: 0.2rem;
    margin-top: 0.8rem;
}

.scoreboard-period strong {
    color: #ffffff;
    font-size: 2.5rem;
    font-weight: 900;
    line-height: 1;
}

.scoreboard-controls {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
}

.scoreboard-control-panel {
    display: grid;
    gap: 1rem;
    align-content: start;
    padding: 1rem;
    border: 1px solid var(--ts-line);
    border-radius: 8px;
    background: #ffffff;
    box-shadow: var(--ts-shadow-soft);
}

.scoreboard-control-panel h3 {
    margin-bottom: 0;
    color: var(--ts-ink);
    font-size: 1.05rem;
    font-weight: 900;
}

.scoreboard-control-panel-main {
    background:
        linear-gradient(135deg, rgba(255, 255, 255, 0.99), rgba(240, 248, 247, 0.98));
}

.scoreboard-button-grid,
.scoreboard-status-controls {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.55rem;
}

.scoreboard-button-grid button,
.scoreboard-status-controls button,
.counter-row button,
.score-button,
.scoreboard-save-button {
    min-height: 44px;
    border: 1px solid rgba(16, 25, 35, 0.12);
    border-radius: 6px;
    color: var(--ts-ink);
    background: #eef5f6;
    font-weight: 900;
}

.scoreboard-button-grid button:hover,
.scoreboard-status-controls button:hover,
.counter-row button:hover,
.score-button:hover {
    border-color: rgba(9, 113, 93, 0.34);
    background: #dff7ee;
}

.score-button {
    min-height: 56px;
    color: #ffffff;
    background: linear-gradient(135deg, #0b4d5d, #09715d);
}

.score-button:hover {
    color: #ffffff;
    background: linear-gradient(135deg, #0e6175, #0b866e);
}

.score-button-muted {
    color: var(--ts-ink);
    background: #f2f5f6;
}

.score-button-muted:hover {
    color: var(--ts-ink);
    background: #e6ecef;
}

.scoreboard-save-button {
    width: 100%;
    min-height: 52px;
    color: #ffffff;
    background: linear-gradient(135deg, var(--ts-blue), var(--ts-teal));
}

.scoreboard-sync-status {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    border: 1px solid rgba(9, 113, 93, 0.16);
    border-radius: 6px;
    color: #0b4d3f;
    background: #dff7ee;
    font-size: 0.82rem;
    font-weight: 900;
    text-transform: uppercase;
}

.counter-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 44px 48px 44px;
    align-items: center;
    gap: 0.45rem;
    padding-top: 0.8rem;
    border-top: 1px solid rgba(16, 25, 35, 0.08);
}

.counter-row span {
    color: var(--ts-muted);
    font-size: 0.8rem;
    font-weight: 900;
    text-transform: uppercase;
}

.counter-row strong {
    color: var(--ts-ink);
    font-size: 1.35rem;
    font-weight: 900;
    text-align: center;
}

.user-role-filter-form {
    display: grid;
    grid-template-columns: minmax(180px, 0.75fr) minmax(220px, 1fr) auto;
    align-items: end;
    gap: 1rem;
}

.user-role-filter-actions {
    display: flex;
    gap: 0.5rem;
}

.sortable-link {
    color: var(--ts-ink);
    text-decoration: none;
}

.sortable-link:hover,
.sortable-link:focus {
    color: var(--ts-blue);
    text-decoration: none;
}

.user-role-pill-row {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
}

.user-role-pill {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    padding: 0.25rem 0.55rem;
    border: 1px solid rgba(9, 113, 93, 0.18);
    border-radius: 999px;
    color: #0b4d3f;
    background: #dff7ee;
    font-size: 0.78rem;
    font-weight: 900;
}

.user-role-pill-empty {
    color: #6b7280;
    border-color: rgba(107, 114, 128, 0.18);
    background: #f1f5f9;
}

.user-role-edit-summary {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.user-role-edit-summary div {
    display: grid;
    gap: 0.25rem;
    padding: 0.95rem;
    border: 1px solid var(--ts-line);
    border-radius: 8px;
    background: #f8fbfc;
}

.user-role-edit-summary span,
.user-role-checkbox-grid legend {
    color: var(--ts-muted);
    font-size: 0.78rem;
    font-weight: 900;
    text-transform: uppercase;
}

.user-role-edit-summary strong {
    overflow-wrap: anywhere;
    color: var(--ts-ink);
}

.user-role-checkbox-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.75rem;
    padding: 0;
    border: 0;
}

.user-role-checkbox-grid legend {
    grid-column: 1 / -1;
    margin-bottom: 0;
}

.user-role-checkbox {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    min-height: 52px;
    padding: 0.85rem;
    border: 1px solid var(--ts-line);
    border-radius: 8px;
    background: #ffffff;
    color: var(--ts-ink);
    font-weight: 900;
}

.user-role-checkbox input {
    width: 1.1rem;
    height: 1.1rem;
}

.live-game-state-strip {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.75rem;
    margin-top: 0.9rem;
}

.live-game-state-strip span {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    min-height: 38px;
    padding: 0.45rem 0.75rem;
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 999px;
    color: rgba(255, 255, 255, 0.76);
    background: rgba(255, 255, 255, 0.08);
    font-size: 0.8rem;
    font-weight: 900;
    text-transform: uppercase;
}

.live-game-state-strip strong {
    color: #ffffff;
}

.dashboard-panel .border.rounded,
.border.rounded {
    border-color: var(--ts-line) !important;
    border-radius: var(--ts-radius) !important;
    background: #ffffff;
}

.readonly-detail {
    min-height: 72px;
    padding: 0.85rem 1rem;
    border: 1px solid var(--ts-line);
    border-radius: var(--ts-radius);
    background: #f8fafb;
}

.readonly-detail span {
    display: block;
    margin-bottom: 0.35rem;
    color: var(--ts-muted);
    font-size: 0.72rem;
    font-weight: 900;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.readonly-detail strong {
    display: block;
    color: var(--ts-ink);
    font-size: 1rem;
}

.coach-player-detail-panel {
    padding: 1rem;
    border: 1px solid var(--ts-line);
    border-radius: var(--ts-radius);
    background: #ffffff;
}

.coach-player-detail-panel__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1rem;
}

.coach-player-detail-panel__header span:not(.badge) {
    display: block;
    margin-bottom: 0.2rem;
    color: var(--ts-muted);
    font-size: 0.72rem;
    font-weight: 900;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.coach-player-detail-panel__header h2 {
    margin: 0;
    color: var(--ts-ink);
    font-size: 1.1rem;
    font-weight: 900;
}

section[style*="min-height: 80vh"] {
    width: 100vw;
    margin-left: calc(50% - 50vw);
    min-height: calc(100vh - 128px) !important;
    padding: 3.5rem 0;
    background:
        radial-gradient(circle at 50% 18%, rgba(255, 255, 255, 0.94), transparent 34rem),
        linear-gradient(135deg, #f8fafb, #eef4f6),
        repeating-linear-gradient(115deg, rgba(16, 25, 35, 0.035) 0 1px, transparent 1px 64px);
}

section[style*="min-height: 80vh"] .card {
    max-width: 100%;
}

section[style*="min-height: 80vh"] .text-center.mt-3 {
    display: grid;
    gap: 0.45rem;
    margin-top: 1.35rem !important;
}

section[style*="min-height: 80vh"] .text-center.mt-3 p {
    margin: 0 !important;
    color: var(--ts-muted);
    font-size: 0.95rem;
}

section[style*="min-height: 80vh"] .text-center.mt-3 a {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #526273;
    font-weight: 700;
    text-decoration: none;
    transition: color 0.18s ease;
}

section[style*="min-height: 80vh"] .text-center.mt-3 a::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: -0.18rem;
    height: 2px;
    border-radius: 999px;
    background: linear-gradient(90deg, var(--ts-blue), var(--ts-teal));
    opacity: 0;
    transform: scaleX(0.65);
    transition: opacity 0.18s ease, transform 0.18s ease;
}

section[style*="min-height: 80vh"] .text-center.mt-3 a:hover,
section[style*="min-height: 80vh"] .text-center.mt-3 a:focus {
    color: var(--ts-ink);
}

section[style*="min-height: 80vh"] .text-center.mt-3 a:hover::after,
section[style*="min-height: 80vh"] .text-center.mt-3 a:focus::after {
    opacity: 1;
    transform: scaleX(1);
}

.usage-page-shell {
    --usage-line: #dbe5ef;
    --usage-line-strong: #cddae7;
    --usage-surface: #ffffff;
    --usage-surface-soft: #f7fbff;
    --usage-surface-soft-alt: #f3f8fd;
    --usage-ink: #13263a;
    --usage-muted: #5f7185;
    --usage-shadow: 0 10px 24px rgba(20, 32, 43, 0.06);
    --usage-radius: 20px;
    display: grid;
    gap: 1.25rem;
    width: 100%;
    max-width: 100%;
    isolation: isolate;
    align-items: start;
}

.usage-page-shell > * {
    max-width: 100%;
}

.usage-page-shell #pageUsageDashboard,
.usage-page-shell .dashboard-subnav,
.usage-page-shell .dashboard-tab-list,
.usage-page-shell .usage-dashboard {
    min-width: 0;
    max-width: 100%;
    width: 100%;
}

.usage-page-header {
    margin-bottom: 0 !important;
    padding-bottom: 0.9rem;
    border-bottom: 1px solid rgba(18, 33, 49, 0.08);
}

.usage-page-header__layout {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1rem 1.25rem;
}

.usage-page-header__copy {
    flex: 1 1 420px;
    min-width: 0;
}

.usage-page-shell .dashboard-subnav {
    margin-bottom: 0 !important;
    border: 1px solid rgba(18, 33, 49, 0.07);
}

.usage-page-shell .dashboard-tab-list {
    max-width: 100%;
}

.usage-header-meta {
    display: flex;
    flex-direction: column;
    gap: 0.18rem;
    width: min(100%, 320px);
    min-width: 0;
    padding: 1rem 1.1rem;
    background: #f8fbff;
    border: 1px solid var(--usage-line);
    border-radius: var(--usage-radius);
    box-shadow: var(--usage-shadow);
}

.usage-header-meta span {
    color: #647587;
    font-size: 0.76rem;
    font-weight: 800;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.usage-header-meta strong {
    color: var(--usage-ink);
    font-size: 1.15rem;
    line-height: 1.2;
    overflow-wrap: anywhere;
}

.usage-header-meta small {
    color: #536375;
    font-weight: 600;
}

.usage-filter-card {
    overflow: hidden;
    border: 1px solid var(--usage-line) !important;
    border-radius: var(--usage-radius);
    background: #fbfdff;
    box-shadow: var(--usage-shadow);
}

.usage-filter-card .card-body {
    padding: 1.45rem !important;
}

.usage-filter-form {
    display: grid;
    gap: 1.15rem;
    min-width: 0;
}

.usage-filter-groups {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.25rem;
    align-items: stretch;
}

.usage-filter-block {
    display: grid;
    align-content: start;
    min-width: 0;
    min-height: 100%;
    padding: 1.15rem;
    background: #ffffff;
    border: 1px solid #dce7f2;
    border-radius: 18px;
}

.usage-filter-label {
    display: block;
    margin-bottom: 0.65rem;
    color: var(--usage-muted);
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.usage-segmented {
    display: grid;
    gap: 0.55rem;
    min-width: 0;
}

.usage-segmented--range {
    grid-template-columns: repeat(6, minmax(0, 1fr));
}

.usage-segmented--range .btn:nth-of-type(1),
.usage-segmented--range .btn:nth-of-type(2),
.usage-segmented--range .btn:nth-of-type(3) {
    grid-column: span 2;
}

.usage-segmented--range .btn:nth-of-type(4),
.usage-segmented--range .btn:nth-of-type(5) {
    grid-column: span 3;
}

.usage-segmented--view {
    grid-template-columns: repeat(3, minmax(88px, 1fr));
    max-width: none;
}

.usage-segmented .btn {
    width: 100%;
    min-height: 3.1rem;
    padding: 0.62rem 1rem;
    color: #24384c;
    background: #ffffff;
    border-color: #d5e2ef;
    border-radius: 999px;
    font-weight: 800;
    line-height: 1.2;
}

.usage-segmented .btn:hover,
.usage-segmented .btn:focus-visible {
    color: #102131;
    border-color: #8fbcff;
    background: #f4f9ff;
}

.usage-segmented .btn-check:checked + .btn {
    color: #fff;
    background: linear-gradient(135deg, #103b6a 0%, #0d6efd 100%);
    border-color: #0d6efd;
    box-shadow: 0 8px 18px rgba(13, 110, 253, 0.18);
}

.usage-auto-refresh {
    font-weight: 700;
}

.usage-live-status {
    display: flex;
    flex-direction: column;
    justify-content: end;
    min-height: 100%;
    padding: 0.95rem 1rem;
    background: #ffffff;
    border: 1px solid #dce7f2;
    border-radius: 18px;
}

.usage-filter-details {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
    align-items: end;
    min-width: 0;
    padding-top: 0.15rem;
}

.usage-filter-field {
    display: grid;
    align-content: start;
    gap: 0.35rem;
    min-width: 0;
}

.usage-filter-field--status {
    display: flex;
    align-self: stretch;
}

.usage-filter-field--status .usage-live-status {
    width: 100%;
}

.usage-filter-form .form-label {
    margin-bottom: 0.5rem;
    color: var(--usage-ink);
    font-size: 0.86rem;
    font-weight: 700;
}

.usage-filter-form .form-control {
    min-height: 3rem;
    border-color: var(--usage-line-strong);
    border-radius: 14px;
    box-shadow: none;
}

.usage-filter-form .form-control:focus {
    border-color: #94bff7;
    box-shadow: 0 0 0 0.18rem rgba(13, 110, 253, 0.12);
}

.usage-filter-form .form-text {
    color: var(--usage-muted);
    font-size: 0.78rem;
}

.usage-filter-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 0.65rem;
    align-items: center;
    padding-top: 1.05rem;
    border-top: 1px solid rgba(205, 218, 231, 0.8);
}

.usage-dashboard {
    display: grid;
    gap: 1.35rem;
    min-width: 0;
}

.usage-kpi-grid,
.usage-analytics-grid {
    display: grid;
    gap: 1rem;
    width: 100%;
    min-width: 0;
}

.usage-kpi-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.usage-analytics-grid--wide {
    grid-template-columns: minmax(0, 1.7fr) minmax(0, 1fr);
    align-items: start;
}

.usage-analytics-grid--synced {
    align-items: stretch;
    grid-auto-rows: minmax(0, 27rem);
}

.usage-grid-item {
    min-width: 0;
    height: 100%;
}

.usage-kpi-card {
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
    min-width: 0;
    height: 100%;
    padding: 1.2rem;
    background: #ffffff;
    border: 1px solid var(--usage-line);
    border-radius: var(--usage-radius);
    box-shadow: var(--usage-shadow);
}

.usage-kpi-card span {
    color: var(--usage-muted);
    font-size: 0.76rem;
    font-weight: 800;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.usage-kpi-card strong {
    color: var(--usage-ink);
    font-size: 1.5rem;
    line-height: 1.15;
    overflow-wrap: anywhere;
}

.usage-kpi-card small {
    color: #576879;
    font-weight: 600;
    line-height: 1.4;
    overflow-wrap: anywhere;
}

.usage-delta {
    display: inline-flex;
    align-self: flex-start;
    margin-top: auto;
    padding: 0.35rem 0.65rem;
    border-radius: 999px;
    font-size: 0.76rem;
    font-weight: 800;
}

.usage-delta--up {
    color: #0c63d7;
    background: #e8f1ff;
}

.usage-delta--down {
    color: #8a5700;
    background: #fff1d6;
}

.usage-delta--flat {
    color: #4f6071;
    background: #eef3f7;
}

.usage-panel {
    overflow: hidden;
    min-width: 0;
    border: 1px solid var(--usage-line) !important;
    border-radius: var(--usage-radius);
    background: var(--usage-surface);
    box-shadow: var(--usage-shadow);
}

.usage-panel .card-body {
    padding: 1.35rem;
}

.usage-panel--synced {
    height: 100%;
}

.usage-panel--synced .card-body {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    min-height: 0;
    height: 100%;
}

.usage-panel__header,
.usage-table-toolbar {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: flex-start;
    gap: 1rem;
}

.usage-panel__header {
    margin-bottom: 0;
    padding-bottom: 0.85rem;
    border-bottom: 1px solid rgba(205, 218, 231, 0.75);
}

.usage-panel__header > div,
.usage-table-toolbar > div {
    min-width: 0;
}

.usage-panel__header h2,
.usage-table-toolbar h2 {
    color: var(--usage-ink);
}

.usage-panel__meta {
    display: inline-flex;
    align-items: center;
    padding: 0.35rem 0.62rem;
    color: #536375;
    background: #f6faff;
    border: 1px solid var(--usage-line);
    border-radius: 999px;
    font-size: 0.78rem;
    font-weight: 700;
    max-width: 100%;
    white-space: normal;
    text-align: right;
}

.usage-trend-scroll {
    overflow-x: auto;
    max-width: 100%;
    padding-bottom: 0.1rem;
    scrollbar-width: thin;
}

.usage-panel--trend .usage-trend-scroll {
    display: flex;
    flex: 1 1 auto;
    align-items: flex-end;
    min-height: 0;
}

.usage-panel--trend .usage-trend-bars {
    min-height: 100%;
}

.usage-trend-bars {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: minmax(40px, 1fr);
    gap: 0.65rem;
    align-items: end;
    width: max(100%, calc(var(--bucket-count) * 40px));
    min-height: 202px;
}

.usage-trend-point {
    display: grid;
    grid-template-rows: minmax(0, 1fr) auto auto;
    gap: 0.35rem;
    min-width: 0;
    align-items: end;
}

.usage-trend-point__bar {
    display: flex;
    align-items: flex-end;
    height: 152px;
    padding: 0 0.18rem;
    background: linear-gradient(180deg, #f8fbff 0%, #eef5fd 100%);
    border: 1px solid #e1e9f1;
    border-radius: 16px;
    overflow: hidden;
}

.usage-trend-point__fill {
    display: block;
    width: 100%;
    border-radius: 12px 12px 10px 10px;
}

.usage-trend-bars--visits .usage-trend-point__fill {
    background: linear-gradient(180deg, #7cc6ff 0%, #0d6efd 100%);
}

.usage-trend-bars--duration .usage-trend-point__fill {
    background: linear-gradient(180deg, #76decd 0%, #14857b 100%);
}

.usage-trend-bars--hourly .usage-trend-point__fill {
    background: linear-gradient(180deg, #ffd18a 0%, #d88616 100%);
}

.usage-trend-point__metric {
    color: #394a5a;
    font-size: 0.74rem;
    font-weight: 800;
    text-align: center;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.usage-trend-point__label {
    min-height: 1.2rem;
    color: #647587;
    font-size: 0.72rem;
    text-align: center;
}

.usage-breakdown-list {
    display: grid;
    gap: 0.85rem;
}

.usage-panel--role .usage-breakdown-list {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    padding-right: 0.45rem;
    scrollbar-gutter: stable;
    overscroll-behavior: contain;
    scrollbar-width: thin;
}

.usage-panel--role .card-body {
    overflow: hidden;
}

.usage-breakdown-row {
    min-width: 0;
    padding: 0.95rem;
    background: #f8fbff;
    border: 1px solid #e1e9f1;
    border-radius: 16px;
}

.usage-breakdown-row span {
    color: #5a6b7d;
    font-size: 0.88rem;
    font-weight: 700;
}

.usage-breakdown-row small {
    display: block;
    color: #627486;
    font-weight: 600;
    line-height: 1.4;
}

.usage-progress,
.usage-share-bar {
    position: relative;
    overflow: hidden;
    background: #e9eff6;
    border-radius: 999px;
}

.usage-progress {
    height: 0.58rem;
    margin: 0.55rem 0 0.45rem;
}

.usage-share-bar {
    min-width: 92px;
    height: 0.52rem;
}

.usage-progress > span,
.usage-share-bar > span {
    position: absolute;
    inset: 0 auto 0 0;
    border-radius: 999px;
}

.usage-progress > span {
    background: linear-gradient(90deg, #78c1ff 0%, #0d6efd 100%);
}

.usage-share-bar > span {
    background: linear-gradient(90deg, #76decd 0%, #0d6efd 100%);
}

.usage-table-toolbar {
    padding: 1.25rem 1.25rem 1rem;
    border-bottom: 1px solid #e6edf5;
    background: #ffffff;
}

.usage-table-toolbar--subtle {
    padding-top: 0.95rem;
    padding-bottom: 0.95rem;
    background: #fbfdff;
}

.usage-disclosure {
    overflow: hidden;
    min-width: 0;
}

.usage-disclosure__summary {
    list-style: none;
    cursor: pointer;
    margin: 0;
    transition: background-color 0.16s ease;
}

.usage-disclosure__summary:hover,
.usage-disclosure__summary:focus-visible {
    background: #fbfdff;
}

.usage-disclosure__summary::-webkit-details-marker {
    display: none;
}

.usage-disclosure__meta {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: 0.65rem;
    min-width: 0;
}

.usage-disclosure__chevron {
    width: 0.8rem;
    height: 0.8rem;
    border-right: 2px solid #4f6071;
    border-bottom: 2px solid #4f6071;
    transform: rotate(45deg);
    transition: transform 0.16s ease;
}

.usage-disclosure[open] .usage-disclosure__chevron {
    transform: rotate(225deg);
}

.usage-disclosure__body {
    border-top: 1px solid #e6edf5;
}

#pageUsageTable {
    min-width: 980px;
}

#pageUsageTable tbody td {
    vertical-align: top;
}

#pageUsageTable thead th {
    position: sticky;
    top: 0;
    z-index: 1;
    background: #f8fafc;
}

.sortable-header {
    cursor: pointer;
    user-select: none;
}

.sortable-header.asc::after {
    content: " ↑";
}

.sortable-header.desc::after {
    content: " ↓";
}

.usage-empty-state .card-body {
    padding: 2rem;
    background: #fbfdff;
}

.usage-panel--role .usage-breakdown-list::-webkit-scrollbar {
    width: 8px;
}

.usage-panel--role .usage-breakdown-list::-webkit-scrollbar-track {
    background: transparent;
}

.usage-panel--role .usage-breakdown-list::-webkit-scrollbar-thumb {
    background: #c9d8e8;
    border-radius: 999px;
}

.usage-panel--role .usage-breakdown-list::-webkit-scrollbar-thumb:hover {
    background: #b7c9dd;
}

@media (max-width: 991.98px) {
    .usage-page-shell {
        gap: 1rem;
    }

    .usage-page-header__layout {
        align-items: stretch;
    }

    .usage-filter-groups {
        grid-template-columns: 1fr;
    }

    .usage-filter-details,
    .usage-kpi-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .usage-analytics-grid--wide {
        grid-template-columns: 1fr;
    }

    .usage-analytics-grid--synced {
        grid-auto-rows: auto;
    }

    .usage-panel--synced .card-body {
        min-height: auto;
    }

    .usage-panel--role .usage-breakdown-list {
        overflow-y: visible;
        padding-right: 0;
    }

    .usage-header-meta {
        width: 100%;
    }

    .usage-live-status {
        min-height: auto;
    }

    .usage-segmented--view {
        max-width: none;
    }

    .usage-panel__meta {
        text-align: left;
    }

    .usage-segmented--range {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .usage-segmented--range .btn:nth-of-type(1),
    .usage-segmented--range .btn:nth-of-type(2),
    .usage-segmented--range .btn:nth-of-type(3),
    .usage-segmented--range .btn:nth-of-type(4),
    .usage-segmented--range .btn:nth-of-type(5) {
        grid-column: span 1;
    }
}

@media (max-width: 767.98px) {
    .usage-page-shell {
        gap: 0.9rem;
    }

    .usage-header-meta {
        width: 100%;
        padding: 0.9rem 1rem;
    }

    .usage-filter-card .card-body,
    .usage-panel .card-body {
        padding: 1rem !important;
    }

    .usage-filter-block,
    .usage-live-status {
        padding: 0.9rem;
    }

    .usage-filter-details,
    .usage-kpi-grid {
        grid-template-columns: 1fr;
    }

    .usage-filter-actions {
        justify-content: stretch;
    }

    .usage-filter-actions > * {
        flex: 1 1 100%;
        text-align: center;
    }

    .usage-segmented--range,
    .usage-segmented--view {
        grid-template-columns: 1fr;
    }

    .usage-trend-bars {
        grid-auto-columns: minmax(34px, 1fr);
        width: max(100%, calc(var(--bucket-count) * 36px));
        min-height: 186px;
    }

    .usage-trend-point__bar {
        height: 136px;
    }

    .usage-kpi-card {
        border-radius: 18px;
    }

    .usage-disclosure__meta {
        justify-content: flex-start;
    }

    #pageUsageTable {
        min-width: 840px;
    }
}

@media (max-width: 767px) {
    .nav-shell {
        min-height: 58px !important;
    }

    .navbar-brand .nav-logo,
    img.nav-logo {
        height: 30px !important;
        max-height: 30px !important;
        max-width: 158px !important;
    }

    .nav-link-modern {
        padding-top: 0.85rem !important;
        padding-bottom: 0.85rem !important;
    }
}
