.tcb-admin-wrap,
.tcb-admin-wrap * {
    box-sizing: border-box;
}

.tcb-admin-wrap {
    --tcb-admin-green: #16845a;
    --tcb-admin-blue: #1676d2;
    --tcb-admin-red: #d63638;
    --tcb-admin-ink: #1d2730;
    --tcb-admin-muted: #66717a;
    --tcb-admin-line: #d7dde1;
    max-width: 1520px;
    color: var(--tcb-admin-ink);
}

.tcb-admin-titlebar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    margin: 18px 0;
}

.tcb-admin-titlebar h1 {
    margin: 0 0 4px;
    font-size: 30px;
}

.tcb-admin-titlebar p {
    margin: 0;
    color: var(--tcb-admin-muted);
}

.tcb-admin-shortcode {
    padding: 8px 12px;
    border: 1px solid var(--tcb-admin-line);
    border-radius: 5px;
    background: #fff;
}

.tcb-general-settings {
    display: flex;
    align-items: end;
    flex-wrap: wrap;
    gap: 14px;
    margin: 0 0 18px;
    padding: 15px;
    border: 1px solid var(--tcb-admin-line);
    border-radius: 6px;
    background: #fff;
}

.tcb-general-settings label {
    display: grid;
    gap: 5px;
    min-width: 170px;
    font-weight: 700;
}

.tcb-general-settings label small {
    max-width: 360px;
    color: var(--tcb-admin-muted);
    font-size: 12px;
    font-weight: 400;
    line-height: 1.35;
}

.tcb-general-settings input,
.tcb-general-settings select,
.tcb-admin-modal input,
.tcb-admin-modal select,
.tcb-admin-modal textarea,
.tcb-admin-panel input,
.tcb-admin-panel select {
    min-height: 38px;
}

.tcb-admin-court-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(240px, 1fr));
    gap: 14px;
}

.tcb-admin-court-card {
    position: relative;
    min-height: 330px;
    display: flex;
    flex-direction: column;
    padding: 18px;
    border: 1px solid var(--tcb-admin-line);
    border-top: 5px solid #2f7db8;
    border-radius: 6px;
    background: #fff;
    box-shadow: 0 4px 16px rgba(35, 45, 53, .06);
}

.tcb-admin-court-card.tcb-court-accent-1 { border-top-color: #2482d4; }
.tcb-admin-court-card.tcb-court-accent-2 { border-top-color: #16845a; }
.tcb-admin-court-card.tcb-court-accent-3 { border-top-color: #22292f; }
.tcb-admin-court-card.tcb-court-accent-4 { border-top-color: #d1a000; }

.tcb-admin-court-card__top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.tcb-admin-court-index {
    color: var(--tcb-admin-muted);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.tcb-booking-count {
    display: inline-flex;
    align-items: center;
    padding: 4px 8px;
    border-radius: 4px;
    color: #fff;
    background: #111;
    font-size: 11px;
    font-weight: 700;
    white-space: nowrap;
}

.tcb-admin-court-card h2 {
    margin: 24px 0 2px;
    font-size: 22px;
}

.tcb-admin-court-sport {
    margin: 0 0 14px;
    color: var(--tcb-admin-muted);
}

.tcb-admin-court-description {
    min-height: 40px;
    color: #4f5a62;
}

.tcb-admin-court-meta {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 8px;
    margin: 8px 0 14px;
}

.tcb-admin-court-meta div {
    padding: 8px;
    border-radius: 4px;
    background: #f4f6f7;
}

.tcb-admin-court-meta dt {
    color: var(--tcb-admin-muted);
    font-size: 11px;
}

.tcb-admin-court-meta dd {
    margin: 2px 0 0;
    font-weight: 700;
}

.tcb-admin-status-row {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    margin-bottom: 16px;
}

.tcb-status-pill,
.tcb-type-pill {
    display: inline-flex;
    padding: 4px 8px;
    border-radius: 12px;
    font-size: 11px;
    font-weight: 800;
}

.tcb-status-pill.is-open { color: #09613f; background: #dcf3e8; }
.tcb-status-pill.is-closed { color: #5d666c; background: #e8ecee; }
.tcb-status-pill.is-reserved { color: #5e3a84; background: #efe5f7; }

.tcb-edit-court {
    width: 100%;
    margin-top: auto !important;
}

.tcb-edit-court .dashicons {
    margin-top: 3px;
}

.tcb-admin-modal[hidden] {
    display: none !important;
}

.tcb-admin-modal {
    position: fixed;
    z-index: 100000;
    inset: 0;
    display: grid;
    place-items: center;
    padding: 14px;
}

.tcb-admin-modal__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(15, 20, 24, .65);
}

.tcb-admin-modal__dialog {
    position: relative;
    z-index: 1;
    width: min(1180px, 100%);
    max-height: calc(100vh - 28px);
    overflow: auto;
    border: 1px solid #aeb8be;
    border-radius: 6px;
    background: #fff;
    box-shadow: 0 24px 70px rgba(0,0,0,.35);
}

.tcb-admin-modal__header {
    position: sticky;
    top: 0;
    z-index: 5;
    display: grid;
    grid-template-columns: 1fr auto auto;
    align-items: center;
    gap: 14px;
    padding: 16px 18px;
    border-bottom: 1px solid var(--tcb-admin-line);
    background: #fff;
}

.tcb-admin-modal__header h2 {
    margin: 0 0 2px;
    font-size: 25px;
}

.tcb-admin-modal__header > div > span {
    color: var(--tcb-admin-muted);
}

.tcb-modal-x {
    width: 38px;
    height: 38px;
    border: 0;
    color: #55616a;
    background: transparent;
    font-size: 30px;
    cursor: pointer;
}

.tcb-admin-modal__body {
    padding: 18px;
}

.tcb-field-grid {
    display: grid;
    gap: 14px;
}

.tcb-field-grid-main {
    grid-template-columns: repeat(5, minmax(0, 1fr));
}

.tcb-field-grid label,
.tcb-form-grid label,
.tcb-period-card label {
    display: grid;
    gap: 5px;
    font-weight: 700;
}

.tcb-field-grid label > span,
.tcb-form-grid label > span,
.tcb-period-card label > span {
    color: #35414a;
    font-size: 13px;
}

.tcb-field-span-2 { grid-column: span 2; }
.tcb-field-span-3 { grid-column: span 3; }

.tcb-field-settings {
    margin: 18px 0;
    padding: 14px;
    border: 1px solid var(--tcb-admin-line);
    border-radius: 5px;
    background: #f8f9f9;
}

.tcb-field-settings h3 {
    margin: 0 0 10px;
    font-size: 20px;
}

.tcb-check-row {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 7px 0;
    font-weight: 700;
}

.tcb-check-row input {
    min-height: auto;
}

.tcb-section-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 12px;
}

.tcb-section-heading h3 {
    margin: 0 0 3px;
    font-size: 22px;
}

.tcb-section-heading p {
    margin: 0;
    color: var(--tcb-admin-muted);
}

.tcb-period-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.tcb-period-card {
    padding: 12px;
    border: 1px solid var(--tcb-admin-line);
    border-radius: 5px;
    background: #fff;
}

.tcb-period-card__header {
    display: grid;
    grid-template-columns: minmax(150px, 1fr) 150px 150px auto;
    align-items: end;
    gap: 10px;
    margin-bottom: 12px;
}

.tcb-remove-period {
    align-self: center;
    white-space: nowrap;
}

.tcb-rate-table-wrap {
    overflow-x: auto;
}

.tcb-rate-table {
    width: 100%;
    border-collapse: collapse;
}

.tcb-rate-table th,
.tcb-rate-table td {
    padding: 7px;
    border-bottom: 1px solid #e0e5e8;
    text-align: left;
}

.tcb-rate-table th {
    color: #3e4a52;
    background: #f3f5f6;
    font-size: 12px;
}

.tcb-rate-table input {
    width: 100%;
}

.tcb-add-rate {
    margin-top: 9px !important;
}

.tcb-admin-modal__footer {
    position: sticky;
    bottom: 0;
    z-index: 4;
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    padding: 14px 18px;
    border-top: 1px solid var(--tcb-admin-line);
    background: #fff;
}

html.tcb-admin-modal-open,
html.tcb-admin-modal-open body {
    overflow: hidden;
}

.tcb-admin-panel {
    margin: 16px 0;
    padding: 18px;
    border: 1px solid var(--tcb-admin-line);
    border-radius: 6px;
    background: #fff;
}

.tcb-admin-panel h2 {
    margin-top: 0;
}

.tcb-form-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
}

.tcb-weekdays {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin: 16px 0;
    padding: 12px;
    border: 1px solid var(--tcb-admin-line);
}

.tcb-weekdays legend {
    padding: 0 6px;
    font-weight: 700;
}

.tcb-table-scroll {
    overflow-x: auto;
}

.tcb-bookings-table {
    min-width: 1250px;
}

.tcb-type-pill {
    color: #33414a;
    background: #e9edf0;
}

.tcb-type-full_day { color: #0b5fae; background: #e1f0ff; }
.tcb-type-multiple { color: #5a3a83; background: #eee4f7; }
.tcb-type-single { color: #0c6845; background: #dff3e9; }

.tcb-row-actions {
    display: flex;
    align-items: center;
    gap: 5px;
    white-space: nowrap;
}

@media (max-width: 1250px) {
    .tcb-admin-court-grid {
        grid-template-columns: repeat(2, minmax(260px, 1fr));
    }

    .tcb-period-list {
        grid-template-columns: 1fr;
    }

    .tcb-field-grid-main {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 782px) {
    .tcb-admin-titlebar,
    .tcb-section-heading {
        align-items: stretch;
        flex-direction: column;
    }

    .tcb-admin-court-grid,
    .tcb-form-grid,
    .tcb-field-grid-main {
        grid-template-columns: 1fr;
    }

    .tcb-field-span-2,
    .tcb-field-span-3 {
        grid-column: auto;
    }

    .tcb-period-card__header {
        grid-template-columns: 1fr;
    }

    .tcb-admin-modal {
        padding: 4px;
    }

    .tcb-admin-modal__dialog {
        max-height: calc(100vh - 8px);
    }

    .tcb-admin-modal__header {
        grid-template-columns: 1fr auto;
    }

    .tcb-admin-modal__header .tcb-booking-count {
        display: none;
    }
}

/* Pagina dedicata front-end per Administrator e Contributor.
 * Il contenuto deve rispettare il contenitore della pagina del tema.
 * Non usare larghezze basate sul viewport o traslazioni: lo shortcode
 * puo' trovarsi dentro un content wrapper piu' stretto del browser. */
.tcb-admin-frontend-wrap {
    width: 100%;
    max-width: 100%;
    margin: 24px auto 48px;
    padding: 0;
    transform: none;
}

.tcb-admin-frontend-wrap input[type="text"],
.tcb-admin-frontend-wrap input[type="number"],
.tcb-admin-frontend-wrap input[type="date"],
.tcb-admin-frontend-wrap input[type="time"],
.tcb-admin-frontend-wrap select,
.tcb-admin-frontend-wrap textarea {
    width: 100%;
    max-width: 100%;
    padding: 6px 10px;
    border: 1px solid #8c8f94;
    border-radius: 4px;
    color: #1d2327;
    background: #fff;
    font: inherit;
    line-height: 1.4;
}

.tcb-admin-frontend-wrap input[type="checkbox"] {
    width: 16px;
    height: 16px;
    margin: 0;
}

.tcb-admin-frontend-wrap .button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    min-height: 32px;
    padding: 0 12px;
    border: 1px solid #2271b1;
    border-radius: 3px;
    color: #2271b1;
    background: #f6f7f7;
    box-shadow: none;
    font: inherit;
    font-size: 13px;
    font-weight: 500;
    line-height: 2.15;
    text-decoration: none;
    cursor: pointer;
}

.tcb-admin-frontend-wrap .button:hover,
.tcb-admin-frontend-wrap .button:focus {
    border-color: #135e96;
    color: #135e96;
    background: #f0f0f1;
    text-decoration: none;
}

.tcb-admin-frontend-wrap .button-primary {
    border-color: #2271b1;
    color: #fff;
    background: #2271b1;
}

.tcb-admin-frontend-wrap .button-primary:hover,
.tcb-admin-frontend-wrap .button-primary:focus {
    border-color: #135e96;
    color: #fff;
    background: #135e96;
}

.tcb-admin-frontend-wrap .button-large {
    min-height: 40px;
    padding: 0 16px;
}

.tcb-admin-frontend-wrap .button-small {
    min-height: 28px;
    padding: 0 10px;
    font-size: 12px;
}

.tcb-admin-frontend-wrap .button-link-delete {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 0;
    border: 0;
    color: #b32d2e;
    background: transparent;
    font: inherit;
    text-decoration: none;
    cursor: pointer;
}

.tcb-admin-frontend-wrap .button-link-delete:hover,
.tcb-admin-frontend-wrap .button-link-delete:focus {
    color: #8a2424;
    text-decoration: underline;
}

.tcb-admin-frontend-wrap .dashicons {
    width: 20px;
    height: 20px;
    font-size: 20px;
    line-height: 1;
}

.tcb-admin-notice {
    margin: 12px 0 18px;
    padding: 10px 14px;
    border-left: 4px solid #72aee6;
    background: #fff;
    box-shadow: 0 1px 1px rgba(0, 0, 0, .04);
}

.tcb-admin-notice.is-success {
    border-left-color: #00a32a;
}

.tcb-admin-notice.is-error {
    border-left-color: #d63638;
}

.tcb-admin-notice p {
    margin: 0;
}

.tcb-admin-access-message {
    max-width: 760px;
    margin: 30px auto;
    padding: 18px;
    border: 1px solid #d7dde1;
    border-radius: 6px;
    background: #fff;
}

@media (max-width: 782px) {
    .tcb-admin-frontend-wrap {
        width: 100%;
        max-width: 100%;
        margin-top: 14px;
        margin-bottom: 32px;
    }
}
