/* Horservice Booking - MyAccount / Frontend */
:root {
    --hsb-color-muted: #666;
    --hsb-color-soft: #444;
    --hsb-color-subtle: #777;
    --hsb-border-light: #e6e6e6;
    --hsb-border-neutral: #d7d7d7;
    --hsb-bg-neutral: #f1f1f1;
    --hsb-gradient-free: linear-gradient(#ffffff, #f3fff3);
    --hsb-gradient-partial: linear-gradient(#ffffff, #fff6e8);
    --hsb-gradient-full: linear-gradient(#ffffff, #fff3f3);
    --hsb-gradient-na: linear-gradient(#ffffff, #f1f1f1);
    --hsb-border-free: #bfe6bf;
    --hsb-border-partial: #f1d2a6;
    --hsb-border-full: #f0b7b7;
}

/* Basic MyAccount layout wrapper with left navigation. Keep minimal & theme-friendly. */
.hsb-myaccount {
    display: flex;
    gap: 24px;
    align-items: flex-start;
}

.hsb-myaccount__nav {
    width: 280px;
    max-width: 35%;
}

.hsb-myaccount__content {
    flex: 1;
    min-width: 0;
}


/* Notices (match Horses "Pferd bearbeiten" style) */
.hsb-myaccount__content .hsb-notice{
    padding:10px 12px;
    border-radius:6px;
    margin:0 0 10px;
}
.hsb-myaccount__content .hsb-notice-error{
    background:#fde8e8;
    border:1px solid #f3b5b5;
}
.hsb-myaccount__content .hsb-notice-success{
    background:#e8f7ee;
    border:1px solid #b7e2c5;
}


/* Nav styling */
.hsb-myaccount__nav-inner {
    background: #f7f7f7;
    border: 1px solid rgba(0,0,0,.06);
    border-radius: 4px;
    padding: 16px;
}

.hsb-myaccount__nav-list {
    list-style: none;
    margin: 0;
    padding: 0;
}

.hsb-myaccount__nav-item + .hsb-myaccount__nav-item {
    margin-top: 6px;
}

.hsb-myaccount__nav-link {
    display: block;
    padding: 8px 10px;
    border-radius: 4px;
    text-decoration: none;
}

.hsb-myaccount__nav-item.is-active > .hsb-myaccount__nav-link {
    font-weight: 600;
    background: rgba(0,0,0,.06);
}

/* Responsive: stack on small screens */
@media (max-width: 800px) {
    .hsb-myaccount {
        flex-direction: column;
    }
    .hsb-myaccount__nav {
        width: 100%;
        max-width: none;
    }
}



/* Wallet */
.hsb-wallet__card {
    background: #fff;
    border: 1px solid rgba(0,0,0,0.08);
    border-radius: 8px;
    padding: 16px;
    margin-bottom: 16px;
}

.hsb-wallet__dl {
    display: grid;
    grid-template-columns: 160px 1fr;
    gap: 8px 12px;
    margin: 12px 0 0;
}

.hsb-wallet__dl dt {
    font-weight: 600;
}

.hsb-wallet__dl dd {
    margin: 0;
}

.hsb-wallet__muted {
    opacity: 0.75;
    font-size: 0.9em;
    margin-left: 6px;
}

.hsb-wallet__cards {
    margin: 8px 0 0;
    padding-left: 18px;
}

.hsb-wallet__tablewrap {
    overflow-x: auto;
}

.hsb-wallet__table {
    width: 100%;
    border-collapse: collapse;
}

.hsb-wallet__table th,
.hsb-wallet__table td {
    border-bottom: 1px solid rgba(0,0,0,0.08);
    padding: 8px 10px;
    text-align: left;
    vertical-align: top;
    white-space: nowrap;
}

.hsb-wallet__table td:last-child {
    white-space: normal;
}

.hsb-wallet__pagination {
    display: flex;
    gap: 6px;
    margin-top: 12px;
}

.hsb-wallet__page {
    display: inline-block;
    padding: 6px 10px;
    border: 1px solid rgba(0,0,0,0.12);
    border-radius: 6px;
    text-decoration: none;
}

.hsb-wallet__page.is-active {
    font-weight: 700;
}



/* Horses */
.hsb-my-horses .hsb-card{background:#fff;border:1px solid #ddd;border-radius:6px;margin:0 0 18px;padding:0}
.hsb-my-horses .hsb-card-header{padding:12px 14px;border-bottom:1px solid #eee;background:#fafafa}
.hsb-my-horses .hsb-card-body{padding:14px}
.hsb-my-horses .hsb-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:10px 0}
@media (max-width:800px){.hsb-my-horses .hsb-grid{grid-template-columns:1fr}}
.hsb-my-horses label{display:block;font-size:14px}
.hsb-my-horses input[type="text"],.hsb-my-horses input[type="email"],.hsb-my-horses input[type="date"]{width:100%;max-width:100%}
.hsb-my-horses .hsb-table{width:100%;border-collapse:collapse}
.hsb-my-horses .hsb-table th,.hsb-my-horses .hsb-table td{border-bottom:1px solid #eee;padding:8px 6px;text-align:left;vertical-align:top}
.hsb-my-horses .hsb-muted{color:var(--hsb-color-muted)}
.hsb-my-horses .hsb-inline{display:inline}
.hsb-my-horses .hsb-notice{padding:10px 12px;border-radius:6px;margin:0 0 10px}
.hsb-my-horses .hsb-notice-error{background:#fde8e8;border:1px solid #f3b5b5}
.hsb-my-horses .hsb-notice-success{background:#e8f7ee;border:1px solid #b7e2c5}


/* Horses list table: keep UELN/Chip compact and action aligned */
.hsb-my-horses .hsb-horses-table th,
.hsb-my-horses .hsb-horses-table td{
    padding: 10px 12px;
    border: 1px solid rgba(0,0,0,.08);
    vertical-align: middle;
}

.hsb-my-horses .hsb-horses-table th:nth-child(4),
.hsb-my-horses .hsb-horses-table td:nth-child(4),
.hsb-my-horses .hsb-horses-table th:nth-child(5),
.hsb-my-horses .hsb-horses-table td:nth-child(5){
    white-space: nowrap;
    width: 1%;
}

.hsb-my-horses .hsb-col-action{
    white-space: nowrap;
    width: 1%;
    text-align: right;
}


.hsb-required{color:#c00;font-weight:bold;}


.hsb-field-error{margin-top:6px;color:#b32d2e;font-size:13px;}

.hsb-occ-icon { font-size: 12px; margin-left: 4px; opacity: 0.7; cursor: help; }


/* Horservice Booking - MyAccount / Frontend */
.hsb-field-error{
    color:#b32d2e;
    margin-top:4px;
    font-size:0.9em;
}

.hsb-field-invalid{
    background:#fff0f0 !important;
    border-color:#d63638 !important;
}

.hsb-myaccount-fieldset{
    border:1px solid #ddd;
    padding:12px;
    margin-top:12px;
}

.hsb-myaccount-actions{
    margin-top:12px;
}

.hsb-flex-row-wrap{
    display:flex;
    gap:10px;
    flex-wrap:wrap;
}

.hsb-flex-item-min-180{
    flex:1;
    min-width:180px;
}

.hsb-table-narrow{
    max-width:640px;
}

.hsb-cell-date{
    width:160px;
}

.hsb-mt-24{
    margin-top:24px;
}

.hsb-mt-18{
    margin-top:18px;
}



/* Onboarding */
.hsb-onboarding-card {
    max-width: 560px;
    margin: 40px auto;
    padding: 20px;
    border: 1px solid #ddd;
    border-radius: 8px;
    background: #fff;
}

.hsb-onboarding-title {
    margin-top: 0;
}

.hsb-onboarding-error {
    padding: 10px;
    border: 1px solid #d63638;
    background: #fcf0f1;
    border-radius: 6px;
    margin-bottom: 12px;
}

.hsb-onboarding-field {
    width: 100%;
    padding: 8px;
    box-sizing: border-box;
}

.hsb-onboarding-submit {
    padding: 10px 16px;
}


/* Booking and occupancy */
.hsb-resource {
    border: 1px solid var(--hsb-border-light);
    border-radius: 14px;
    background: #fff;
    padding: 12px 12px 14px;
    margin: 10px 0;
}

.hsb-resource-title {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 10px;
    margin-bottom: 8px;
}

.hsb-resource-name {
    font-weight: 800;
    font-size: 18px;
}

.hsb-resource-date {
    color: var(--hsb-color-muted);
}

.hsb-date-strong {
    font-weight: 800;
    color: #111;
}

.hsb-nav {
    display: flex;
    gap: 10px;
    align-items: center;
    flex-wrap: wrap;
    margin: 6px 0 12px;
}

.hsb-datepick {
    display: flex;
    gap: 8px;
    align-items: center;
    flex-wrap: wrap;
    margin: 0;
}

.hsb-datepick input[type="date"] {
    max-width: 180px;
}

.hsb-todayhint {
    color: var(--hsb-color-muted);
    font-size: 12px;
    margin-left: 6px;
}

.hsb-multi-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
    gap: 12px;
}

.hsb-multi-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.hsb-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 12px;
}

.hsb-list {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.hsb-slot {
    border: 1px solid var(--hsb-border-light);
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 1px 2px rgba(0,0,0,.04);
    overflow: hidden;
}

.hsb-slot .hsb-slot-head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 10px 12px;
    border-bottom: 1px solid #f0f0f0;
}

.hsb-time {
    font-weight: 700;
}

.hsb-cap {
    font-size: 12px;
    color: var(--hsb-color-muted);
}

.hsb-slot-body {
    padding: 10px 12px;
    min-height: 44px;
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    align-items: center;
}

.hsb-empty {
    color: #2c6e2c;
    font-weight: 600;
}

.hsb-slot-error {
    margin: 6px 0 0;
    padding: 6px 8px;
    border-radius: 10px;
    background: #fff3cd;
    color: #7a4b00;
    border: 1px solid #ffe69c;
    font-size: 12px;
}

.hsb-slot-actions {
    padding: 10px 12px;
    border-top: 1px solid #f0f0f0;
}

.hsb-bookform {
    display: flex;
    gap: 8px;
    align-items: center;
    flex-wrap: wrap;
    margin: 0;
}

.hsb-bookform select {
    max-width: 200px;
}

.hsb-bookform-occupancy label {
    display: flex;
    flex-direction: column;
    gap: 4px;
    font-size: 12px;
    color: var(--hsb-color-soft);
}

.hsb-bookform-occupancy input[type="datetime-local"] {
    min-width: 220px;
}

.hsb-bookform-occupancy-recurring {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
    gap: 12px;
    align-items: start;
}

.hsb-bookform-occupancy-recurring label,
.hsb-bookform-occupancy-recurring .hsb-occ-weekdays,
.hsb-bookform-occupancy-recurring .hsb-occ-help {
    min-width: 0;
}

.hsb-bookform-occupancy-recurring input[type="text"],
.hsb-bookform-occupancy-recurring input[type="number"],
.hsb-bookform-occupancy-recurring input[type="date"],
.hsb-bookform-occupancy-recurring input[type="datetime-local"],
.hsb-bookform-occupancy-recurring select {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
}

.hsb-bookform-occupancy-recurring input[type="date"] {
    min-width: 170px;
}

.hsb-bookform-occupancy-recurring input[type="datetime-local"] {
    min-width: 0;
}

.hsb-bookform-occupancy-recurring .hsb-occ-weekdays {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
    align-self: start;
}

.hsb-bookform-occupancy-recurring .hsb-occ-weekdays > span {
    font-size: 12px;
    color: var(--hsb-color-soft);
    font-weight: 600;
    display: block;
    width: 100%;
    margin-bottom: 2px;
}

.hsb-bookform-occupancy-recurring .hsb-occ-check {
    display: flex;
    align-items: center;
    gap: 4px;
    flex-direction: row;
}

.hsb-bookform-occupancy-recurring .button.button-primary {
    min-height: 52px;
    align-self: end;
    justify-self: start;
}

.hsb-bookform button {
    cursor: pointer;
}

.hsb-fulltxt {
    color: #b10000;
    font-weight: 700;
}

.hsb-partialtxt {
    margin-top: 6px;
    color: #a15a00;
    font-weight: 700;
    font-size: 12px;
}

.hsb-pasttxt {
    color: var(--hsb-color-muted);
    font-weight: 700;
}

.hsb-pill {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px 10px;
    border-radius: 999px;
    background: #eef2ff;
}

.hsb-pill-x {
    margin: 0;
}

.hsb-pill-x button {
    border: none;
    background: transparent;
    color: var(--hsb-color-soft);
    font-weight: 700;
    cursor: pointer;
    line-height: 1;
}

.hsb-pill-x button:hover {
    color: #b10000;
}

.hsb-free {
    background: var(--hsb-gradient-free);
}

.hsb-partial {
    background: var(--hsb-gradient-partial);
}

.hsb-full {
    background: var(--hsb-gradient-full);
}

.hsb-na {
    background: linear-gradient(#ffffff, var(--hsb-bg-neutral));
}

.hsb-matrix-scroll {
    overflow: auto;
}

table.hsb-matrix {
    border-collapse: separate;
    border-spacing: 8px;
    width: 100%;
}

.hsb-matrix th {
    position: sticky;
    top: 0;
    background: #fff;
    padding: 8px 10px;
    border-bottom: 1px solid #eee;
    z-index: 2;
    text-align: left;
}

.hsb-matrix-time {
    width: 120px;
}

.hsb-matrix-timecell {
    white-space: nowrap;
    vertical-align: top;
}

td.hsb-mcell {
    vertical-align: top;
    border: 1px solid var(--hsb-border-light);
    border-radius: 12px;
    padding: 8px;
    min-width: 220px;
    background: var(--hsb-cell-bg, #fff);
}

td.hsb-mcell.hsb-free {
    --hsb-cell-bg: var(--hsb-gradient-free);
    border-color: #bfe6bf;
}

td.hsb-mcell.hsb-partial {
    --hsb-cell-bg: var(--hsb-gradient-partial);
    border-color: #f1d2a6;
}

td.hsb-mcell.hsb-full {
    --hsb-cell-bg: var(--hsb-gradient-full);
    border-color: #f0b7b7;
}

td.hsb-mcell.hsb-na {
    --hsb-cell-bg: linear-gradient(#ffffff, var(--hsb-bg-neutral));
    border-color: var(--hsb-border-neutral);
}

td.hsb-mcell.hsb-past {
    --hsb-cell-bg: linear-gradient(#ffffff, var(--hsb-bg-neutral));
    border-color: var(--hsb-border-neutral);
    opacity: 1;
}

.hsb-mcell-pills {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-bottom: 6px;
}

.hsb-mcell-actions {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.hsb-bookform-compact select {
    max-width: 160px;
}

.hsb-na-txt {
    color: var(--hsb-color-subtle);
    font-weight: 700;
}

.hsb-occ-week-wrap {
    overflow: auto;
}

.hsb-occ-legend {
    margin: 4px 0 10px;
    color: var(--hsb-color-muted);
    font-size: 12px;
}

.hsb-occ-week {
    display: grid;
    grid-template-columns: 72px repeat(7, minmax(120px, 1fr));
    grid-template-rows: 44px;
    grid-auto-rows: 28px;
    gap: 0;
    min-width: 920px;
    position: relative;
    border: 1px solid var(--hsb-border-light);
    border-radius: 12px;
    overflow: hidden;
    background: #fff;
}

.hsb-occ-corner,
.hsb-occ-dayhead,
.hsb-occ-time,
.hsb-occ-cell {
    border-right: 1px solid #eaeaea;
    border-bottom: 1px solid #eaeaea;
}

.hsb-occ-corner {
    grid-column: 1;
    grid-row: 1;
    background: #fafafa;
}

.hsb-occ-dayhead {
    background: #fafafa;
    padding: 6px 8px;
}

.hsb-occ-daynum {
    font-weight: 800;
    font-size: 18px;
    line-height: 1.1;
}

.hsb-occ-dayname {
    font-size: 12px;
    color: #555;
}

.hsb-occ-time {
    padding: 4px 6px;
    font-size: 12px;
    color: var(--hsb-color-muted);
    background: #fafafa;
}

.hsb-occ-cell {
    background: #fff;
}

.hsb-occ-cell.is-closed {
    background: rgba(0,0,0,.06);
    pointer-events: none;
}

.hsb-occ-block {
    margin: 1px;
    padding: 6px 26px 6px 8px;
    background: linear-gradient(#eef6ff, #dcebff);
    border-left: 4px solid #2271b1;
    border-radius: 8px;
    z-index: 3;
    overflow: hidden;
    box-shadow: 0 1px 2px rgba(0,0,0,.06);
    position: relative;
}

.hsb-occ-block.is-past {
    background: linear-gradient(#f7f7f7, #ececec);
    border-left-color: #8a8a8a;
}

.hsb-occ-block-time {
    font-weight: 700;
    font-size: 12px;
    line-height: 1.2;
}

.hsb-occ-block-title {
    font-size: 12px;
    margin-top: 2px;
}

.hsb-occ-edit {
    position: absolute;
    top: 4px;
    right: 22px;
    z-index: 4;
    text-decoration: none;
    font-size: 12px;
    line-height: 1;
    font-weight: 700;
    color: #2271b1;
}

.hsb-occ-delete {
    margin: 0;
    position: absolute;
    top: 4px;
    right: 6px;
    z-index: 4;
}

.hsb-occ-delete .button-link-delete {
    padding: 0;
    border: none;
    background: none;
    color: #b32d2e;
    cursor: pointer;
    font-size: 12px;
    line-height: 1;
    font-weight: 700;
}

.hsb-occ-recurring-icon {
    display: inline-block;
    margin-left: 4px;
    font-size: 12px;
    opacity: .75;
    cursor: help;
    vertical-align: baseline;
}

.hsb-occ-ui {
    display: none;
}

.hsb-occ-help {
    grid-column: 1 / -1;
    color: var(--hsb-color-muted);
    font-size: 12px;
    margin-top: -4px;
    line-height: 1.4;
}

.hsb-occ-weekdays {
    display: block;
}

.hsb-occ-weekdays .hsb-occ-check {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    margin-right: 8px;
}

.hsb-occ-boundary-note {
    grid-column: 1 / -1;
    margin: -8px 0 4px;
}

@media (max-width: 920px) {
    .hsb-bookform-occupancy-recurring {
        grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
    }
}

@media (max-width: 640px) {
    .hsb-bookform-occupancy-recurring {
        grid-template-columns: 1fr;
    }

    .hsb-bookform-occupancy-recurring .button.button-primary {
        width: 100%;
        justify-self: stretch;
    }
}


/* Size utilities */
.hsb-font-size-10 { font-size: 10px; }
.hsb-title-size-10 .hsb-resource-name { font-size: 10px; }
.hsb-pill-size-10 .hsb-pill { font-size: 10px; }
.hsb-font-size-11 { font-size: 11px; }
.hsb-title-size-11 .hsb-resource-name { font-size: 11px; }
.hsb-pill-size-11 .hsb-pill { font-size: 11px; }
.hsb-font-size-12 { font-size: 12px; }
.hsb-title-size-12 .hsb-resource-name { font-size: 12px; }
.hsb-pill-size-12 .hsb-pill { font-size: 12px; }
.hsb-font-size-13 { font-size: 13px; }
.hsb-title-size-13 .hsb-resource-name { font-size: 13px; }
.hsb-pill-size-13 .hsb-pill { font-size: 13px; }
.hsb-font-size-14 { font-size: 14px; }
.hsb-title-size-14 .hsb-resource-name { font-size: 14px; }
.hsb-pill-size-14 .hsb-pill { font-size: 14px; }
.hsb-font-size-15 { font-size: 15px; }
.hsb-title-size-15 .hsb-resource-name { font-size: 15px; }
.hsb-pill-size-15 .hsb-pill { font-size: 15px; }
.hsb-font-size-16 { font-size: 16px; }
.hsb-title-size-16 .hsb-resource-name { font-size: 16px; }
.hsb-pill-size-16 .hsb-pill { font-size: 16px; }
.hsb-font-size-17 { font-size: 17px; }
.hsb-title-size-17 .hsb-resource-name { font-size: 17px; }
.hsb-pill-size-17 .hsb-pill { font-size: 17px; }
.hsb-font-size-18 { font-size: 18px; }
.hsb-title-size-18 .hsb-resource-name { font-size: 18px; }
.hsb-pill-size-18 .hsb-pill { font-size: 18px; }
.hsb-font-size-19 { font-size: 19px; }
.hsb-title-size-19 .hsb-resource-name { font-size: 19px; }
.hsb-pill-size-19 .hsb-pill { font-size: 19px; }
.hsb-font-size-20 { font-size: 20px; }
.hsb-title-size-20 .hsb-resource-name { font-size: 20px; }
.hsb-pill-size-20 .hsb-pill { font-size: 20px; }
.hsb-font-size-21 { font-size: 21px; }
.hsb-title-size-21 .hsb-resource-name { font-size: 21px; }
.hsb-pill-size-21 .hsb-pill { font-size: 21px; }
.hsb-font-size-22 { font-size: 22px; }
.hsb-title-size-22 .hsb-resource-name { font-size: 22px; }
.hsb-pill-size-22 .hsb-pill { font-size: 22px; }
.hsb-font-size-23 { font-size: 23px; }
.hsb-title-size-23 .hsb-resource-name { font-size: 23px; }
.hsb-pill-size-23 .hsb-pill { font-size: 23px; }
.hsb-font-size-24 { font-size: 24px; }
.hsb-title-size-24 .hsb-resource-name { font-size: 24px; }
.hsb-pill-size-24 .hsb-pill { font-size: 24px; }
.hsb-font-size-25 { font-size: 25px; }
.hsb-title-size-25 .hsb-resource-name { font-size: 25px; }
.hsb-pill-size-25 .hsb-pill { font-size: 25px; }
.hsb-font-size-26 { font-size: 26px; }
.hsb-title-size-26 .hsb-resource-name { font-size: 26px; }
.hsb-pill-size-26 .hsb-pill { font-size: 26px; }
.hsb-font-size-27 { font-size: 27px; }
.hsb-title-size-27 .hsb-resource-name { font-size: 27px; }
.hsb-pill-size-27 .hsb-pill { font-size: 27px; }
.hsb-font-size-28 { font-size: 28px; }
.hsb-title-size-28 .hsb-resource-name { font-size: 28px; }
.hsb-pill-size-28 .hsb-pill { font-size: 28px; }
.hsb-font-size-29 { font-size: 29px; }
.hsb-title-size-29 .hsb-resource-name { font-size: 29px; }
.hsb-pill-size-29 .hsb-pill { font-size: 29px; }
.hsb-font-size-30 { font-size: 30px; }
.hsb-title-size-30 .hsb-resource-name { font-size: 30px; }
.hsb-pill-size-30 .hsb-pill { font-size: 30px; }
.hsb-font-size-31 { font-size: 31px; }
.hsb-title-size-31 .hsb-resource-name { font-size: 31px; }
.hsb-pill-size-31 .hsb-pill { font-size: 31px; }
.hsb-font-size-32 { font-size: 32px; }
.hsb-title-size-32 .hsb-resource-name { font-size: 32px; }
.hsb-pill-size-32 .hsb-pill { font-size: 32px; }
.hsb-font-size-33 { font-size: 33px; }
.hsb-title-size-33 .hsb-resource-name { font-size: 33px; }
.hsb-pill-size-33 .hsb-pill { font-size: 33px; }
.hsb-font-size-34 { font-size: 34px; }
.hsb-title-size-34 .hsb-resource-name { font-size: 34px; }
.hsb-pill-size-34 .hsb-pill { font-size: 34px; }
.hsb-font-size-35 { font-size: 35px; }
.hsb-title-size-35 .hsb-resource-name { font-size: 35px; }
.hsb-pill-size-35 .hsb-pill { font-size: 35px; }
.hsb-font-size-36 { font-size: 36px; }
.hsb-title-size-36 .hsb-resource-name { font-size: 36px; }
.hsb-pill-size-36 .hsb-pill { font-size: 36px; }
.hsb-font-size-37 { font-size: 37px; }
.hsb-title-size-37 .hsb-resource-name { font-size: 37px; }
.hsb-pill-size-37 .hsb-pill { font-size: 37px; }
.hsb-font-size-38 { font-size: 38px; }
.hsb-title-size-38 .hsb-resource-name { font-size: 38px; }
.hsb-pill-size-38 .hsb-pill { font-size: 38px; }
.hsb-font-size-39 { font-size: 39px; }
.hsb-title-size-39 .hsb-resource-name { font-size: 39px; }
.hsb-pill-size-39 .hsb-pill { font-size: 39px; }
.hsb-font-size-40 { font-size: 40px; }
.hsb-title-size-40 .hsb-resource-name { font-size: 40px; }
.hsb-pill-size-40 .hsb-pill { font-size: 40px; }

/* Occupancy grid utilities */
.hsb-occ-col-1 { grid-column: 1; }
.hsb-occ-col-2 { grid-column: 2; }
.hsb-occ-col-3 { grid-column: 3; }
.hsb-occ-col-4 { grid-column: 4; }
.hsb-occ-col-5 { grid-column: 5; }
.hsb-occ-col-6 { grid-column: 6; }
.hsb-occ-col-7 { grid-column: 7; }
.hsb-occ-col-8 { grid-column: 8; }
.hsb-occ-row-1 { grid-row: 1; }
.hsb-occ-row-start-1 { grid-row-start: 1; }
.hsb-occ-row-end-1 { grid-row-end: 1; }
.hsb-occ-row-2 { grid-row: 2; }
.hsb-occ-row-start-2 { grid-row-start: 2; }
.hsb-occ-row-end-2 { grid-row-end: 2; }
.hsb-occ-row-3 { grid-row: 3; }
.hsb-occ-row-start-3 { grid-row-start: 3; }
.hsb-occ-row-end-3 { grid-row-end: 3; }
.hsb-occ-row-4 { grid-row: 4; }
.hsb-occ-row-start-4 { grid-row-start: 4; }
.hsb-occ-row-end-4 { grid-row-end: 4; }
.hsb-occ-row-5 { grid-row: 5; }
.hsb-occ-row-start-5 { grid-row-start: 5; }
.hsb-occ-row-end-5 { grid-row-end: 5; }
.hsb-occ-row-6 { grid-row: 6; }
.hsb-occ-row-start-6 { grid-row-start: 6; }
.hsb-occ-row-end-6 { grid-row-end: 6; }
.hsb-occ-row-7 { grid-row: 7; }
.hsb-occ-row-start-7 { grid-row-start: 7; }
.hsb-occ-row-end-7 { grid-row-end: 7; }
.hsb-occ-row-8 { grid-row: 8; }
.hsb-occ-row-start-8 { grid-row-start: 8; }
.hsb-occ-row-end-8 { grid-row-end: 8; }
.hsb-occ-row-9 { grid-row: 9; }
.hsb-occ-row-start-9 { grid-row-start: 9; }
.hsb-occ-row-end-9 { grid-row-end: 9; }
.hsb-occ-row-10 { grid-row: 10; }
.hsb-occ-row-start-10 { grid-row-start: 10; }
.hsb-occ-row-end-10 { grid-row-end: 10; }
.hsb-occ-row-11 { grid-row: 11; }
.hsb-occ-row-start-11 { grid-row-start: 11; }
.hsb-occ-row-end-11 { grid-row-end: 11; }
.hsb-occ-row-12 { grid-row: 12; }
.hsb-occ-row-start-12 { grid-row-start: 12; }
.hsb-occ-row-end-12 { grid-row-end: 12; }
.hsb-occ-row-13 { grid-row: 13; }
.hsb-occ-row-start-13 { grid-row-start: 13; }
.hsb-occ-row-end-13 { grid-row-end: 13; }
.hsb-occ-row-14 { grid-row: 14; }
.hsb-occ-row-start-14 { grid-row-start: 14; }
.hsb-occ-row-end-14 { grid-row-end: 14; }
.hsb-occ-row-15 { grid-row: 15; }
.hsb-occ-row-start-15 { grid-row-start: 15; }
.hsb-occ-row-end-15 { grid-row-end: 15; }
.hsb-occ-row-16 { grid-row: 16; }
.hsb-occ-row-start-16 { grid-row-start: 16; }
.hsb-occ-row-end-16 { grid-row-end: 16; }
.hsb-occ-row-17 { grid-row: 17; }
.hsb-occ-row-start-17 { grid-row-start: 17; }
.hsb-occ-row-end-17 { grid-row-end: 17; }
.hsb-occ-row-18 { grid-row: 18; }
.hsb-occ-row-start-18 { grid-row-start: 18; }
.hsb-occ-row-end-18 { grid-row-end: 18; }
.hsb-occ-row-19 { grid-row: 19; }
.hsb-occ-row-start-19 { grid-row-start: 19; }
.hsb-occ-row-end-19 { grid-row-end: 19; }
.hsb-occ-row-20 { grid-row: 20; }
.hsb-occ-row-start-20 { grid-row-start: 20; }
.hsb-occ-row-end-20 { grid-row-end: 20; }
.hsb-occ-row-21 { grid-row: 21; }
.hsb-occ-row-start-21 { grid-row-start: 21; }
.hsb-occ-row-end-21 { grid-row-end: 21; }
.hsb-occ-row-22 { grid-row: 22; }
.hsb-occ-row-start-22 { grid-row-start: 22; }
.hsb-occ-row-end-22 { grid-row-end: 22; }
.hsb-occ-row-23 { grid-row: 23; }
.hsb-occ-row-start-23 { grid-row-start: 23; }
.hsb-occ-row-end-23 { grid-row-end: 23; }
.hsb-occ-row-24 { grid-row: 24; }
.hsb-occ-row-start-24 { grid-row-start: 24; }
.hsb-occ-row-end-24 { grid-row-end: 24; }
.hsb-occ-row-25 { grid-row: 25; }
.hsb-occ-row-start-25 { grid-row-start: 25; }
.hsb-occ-row-end-25 { grid-row-end: 25; }
.hsb-occ-row-26 { grid-row: 26; }
.hsb-occ-row-start-26 { grid-row-start: 26; }
.hsb-occ-row-end-26 { grid-row-end: 26; }
.hsb-occ-row-27 { grid-row: 27; }
.hsb-occ-row-start-27 { grid-row-start: 27; }
.hsb-occ-row-end-27 { grid-row-end: 27; }
.hsb-occ-row-28 { grid-row: 28; }
.hsb-occ-row-start-28 { grid-row-start: 28; }
.hsb-occ-row-end-28 { grid-row-end: 28; }
.hsb-occ-row-29 { grid-row: 29; }
.hsb-occ-row-start-29 { grid-row-start: 29; }
.hsb-occ-row-end-29 { grid-row-end: 29; }
.hsb-occ-row-30 { grid-row: 30; }
.hsb-occ-row-start-30 { grid-row-start: 30; }
.hsb-occ-row-end-30 { grid-row-end: 30; }
.hsb-occ-row-31 { grid-row: 31; }
.hsb-occ-row-start-31 { grid-row-start: 31; }
.hsb-occ-row-end-31 { grid-row-end: 31; }
.hsb-occ-row-32 { grid-row: 32; }
.hsb-occ-row-start-32 { grid-row-start: 32; }
.hsb-occ-row-end-32 { grid-row-end: 32; }
.hsb-occ-row-33 { grid-row: 33; }
.hsb-occ-row-start-33 { grid-row-start: 33; }
.hsb-occ-row-end-33 { grid-row-end: 33; }
.hsb-occ-row-34 { grid-row: 34; }
.hsb-occ-row-start-34 { grid-row-start: 34; }
.hsb-occ-row-end-34 { grid-row-end: 34; }
.hsb-occ-row-35 { grid-row: 35; }
.hsb-occ-row-start-35 { grid-row-start: 35; }
.hsb-occ-row-end-35 { grid-row-end: 35; }
.hsb-occ-row-36 { grid-row: 36; }
.hsb-occ-row-start-36 { grid-row-start: 36; }
.hsb-occ-row-end-36 { grid-row-end: 36; }
.hsb-occ-row-37 { grid-row: 37; }
.hsb-occ-row-start-37 { grid-row-start: 37; }
.hsb-occ-row-end-37 { grid-row-end: 37; }
.hsb-occ-row-38 { grid-row: 38; }
.hsb-occ-row-start-38 { grid-row-start: 38; }
.hsb-occ-row-end-38 { grid-row-end: 38; }
.hsb-occ-row-39 { grid-row: 39; }
.hsb-occ-row-start-39 { grid-row-start: 39; }
.hsb-occ-row-end-39 { grid-row-end: 39; }
.hsb-occ-row-40 { grid-row: 40; }
.hsb-occ-row-start-40 { grid-row-start: 40; }
.hsb-occ-row-end-40 { grid-row-end: 40; }
.hsb-occ-row-41 { grid-row: 41; }
.hsb-occ-row-start-41 { grid-row-start: 41; }
.hsb-occ-row-end-41 { grid-row-end: 41; }
.hsb-occ-row-42 { grid-row: 42; }
.hsb-occ-row-start-42 { grid-row-start: 42; }
.hsb-occ-row-end-42 { grid-row-end: 42; }
.hsb-occ-row-43 { grid-row: 43; }
.hsb-occ-row-start-43 { grid-row-start: 43; }
.hsb-occ-row-end-43 { grid-row-end: 43; }
.hsb-occ-row-44 { grid-row: 44; }
.hsb-occ-row-start-44 { grid-row-start: 44; }
.hsb-occ-row-end-44 { grid-row-end: 44; }
.hsb-occ-row-45 { grid-row: 45; }
.hsb-occ-row-start-45 { grid-row-start: 45; }
.hsb-occ-row-end-45 { grid-row-end: 45; }
.hsb-occ-row-46 { grid-row: 46; }
.hsb-occ-row-start-46 { grid-row-start: 46; }
.hsb-occ-row-end-46 { grid-row-end: 46; }
.hsb-occ-row-47 { grid-row: 47; }
.hsb-occ-row-start-47 { grid-row-start: 47; }
.hsb-occ-row-end-47 { grid-row-end: 47; }
.hsb-occ-row-48 { grid-row: 48; }
.hsb-occ-row-start-48 { grid-row-start: 48; }
.hsb-occ-row-end-48 { grid-row-end: 48; }
.hsb-occ-row-49 { grid-row: 49; }
.hsb-occ-row-start-49 { grid-row-start: 49; }
.hsb-occ-row-end-49 { grid-row-end: 49; }
.hsb-occ-row-50 { grid-row: 50; }
.hsb-occ-row-start-50 { grid-row-start: 50; }
.hsb-occ-row-end-50 { grid-row-end: 50; }
.hsb-occ-row-51 { grid-row: 51; }
.hsb-occ-row-start-51 { grid-row-start: 51; }
.hsb-occ-row-end-51 { grid-row-end: 51; }
.hsb-occ-row-52 { grid-row: 52; }
.hsb-occ-row-start-52 { grid-row-start: 52; }
.hsb-occ-row-end-52 { grid-row-end: 52; }
.hsb-occ-row-53 { grid-row: 53; }
.hsb-occ-row-start-53 { grid-row-start: 53; }
.hsb-occ-row-end-53 { grid-row-end: 53; }
.hsb-occ-row-54 { grid-row: 54; }
.hsb-occ-row-start-54 { grid-row-start: 54; }
.hsb-occ-row-end-54 { grid-row-end: 54; }
.hsb-occ-row-55 { grid-row: 55; }
.hsb-occ-row-start-55 { grid-row-start: 55; }
.hsb-occ-row-end-55 { grid-row-end: 55; }
.hsb-occ-row-56 { grid-row: 56; }
.hsb-occ-row-start-56 { grid-row-start: 56; }
.hsb-occ-row-end-56 { grid-row-end: 56; }
.hsb-occ-row-57 { grid-row: 57; }
.hsb-occ-row-start-57 { grid-row-start: 57; }
.hsb-occ-row-end-57 { grid-row-end: 57; }
.hsb-occ-row-58 { grid-row: 58; }
.hsb-occ-row-start-58 { grid-row-start: 58; }
.hsb-occ-row-end-58 { grid-row-end: 58; }
.hsb-occ-row-59 { grid-row: 59; }
.hsb-occ-row-start-59 { grid-row-start: 59; }
.hsb-occ-row-end-59 { grid-row-end: 59; }
.hsb-occ-row-60 { grid-row: 60; }
.hsb-occ-row-start-60 { grid-row-start: 60; }
.hsb-occ-row-end-60 { grid-row-end: 60; }
.hsb-occ-row-61 { grid-row: 61; }
.hsb-occ-row-start-61 { grid-row-start: 61; }
.hsb-occ-row-end-61 { grid-row-end: 61; }
.hsb-occ-row-62 { grid-row: 62; }
.hsb-occ-row-start-62 { grid-row-start: 62; }
.hsb-occ-row-end-62 { grid-row-end: 62; }
.hsb-occ-row-63 { grid-row: 63; }
.hsb-occ-row-start-63 { grid-row-start: 63; }
.hsb-occ-row-end-63 { grid-row-end: 63; }
.hsb-occ-row-64 { grid-row: 64; }
.hsb-occ-row-start-64 { grid-row-start: 64; }
.hsb-occ-row-end-64 { grid-row-end: 64; }
.hsb-occ-row-65 { grid-row: 65; }
.hsb-occ-row-start-65 { grid-row-start: 65; }
.hsb-occ-row-end-65 { grid-row-end: 65; }
.hsb-occ-row-66 { grid-row: 66; }
.hsb-occ-row-start-66 { grid-row-start: 66; }
.hsb-occ-row-end-66 { grid-row-end: 66; }
.hsb-occ-row-67 { grid-row: 67; }
.hsb-occ-row-start-67 { grid-row-start: 67; }
.hsb-occ-row-end-67 { grid-row-end: 67; }
.hsb-occ-row-68 { grid-row: 68; }
.hsb-occ-row-start-68 { grid-row-start: 68; }
.hsb-occ-row-end-68 { grid-row-end: 68; }
.hsb-occ-row-69 { grid-row: 69; }
.hsb-occ-row-start-69 { grid-row-start: 69; }
.hsb-occ-row-end-69 { grid-row-end: 69; }
.hsb-occ-row-70 { grid-row: 70; }
.hsb-occ-row-start-70 { grid-row-start: 70; }
.hsb-occ-row-end-70 { grid-row-end: 70; }
.hsb-occ-row-71 { grid-row: 71; }
.hsb-occ-row-start-71 { grid-row-start: 71; }
.hsb-occ-row-end-71 { grid-row-end: 71; }
.hsb-occ-row-72 { grid-row: 72; }
.hsb-occ-row-start-72 { grid-row-start: 72; }
.hsb-occ-row-end-72 { grid-row-end: 72; }
.hsb-occ-row-73 { grid-row: 73; }
.hsb-occ-row-start-73 { grid-row-start: 73; }
.hsb-occ-row-end-73 { grid-row-end: 73; }
.hsb-occ-row-74 { grid-row: 74; }
.hsb-occ-row-start-74 { grid-row-start: 74; }
.hsb-occ-row-end-74 { grid-row-end: 74; }
.hsb-occ-row-75 { grid-row: 75; }
.hsb-occ-row-start-75 { grid-row-start: 75; }
.hsb-occ-row-end-75 { grid-row-end: 75; }
.hsb-occ-row-76 { grid-row: 76; }
.hsb-occ-row-start-76 { grid-row-start: 76; }
.hsb-occ-row-end-76 { grid-row-end: 76; }
.hsb-occ-row-77 { grid-row: 77; }
.hsb-occ-row-start-77 { grid-row-start: 77; }
.hsb-occ-row-end-77 { grid-row-end: 77; }
.hsb-occ-row-78 { grid-row: 78; }
.hsb-occ-row-start-78 { grid-row-start: 78; }
.hsb-occ-row-end-78 { grid-row-end: 78; }
.hsb-occ-row-79 { grid-row: 79; }
.hsb-occ-row-start-79 { grid-row-start: 79; }
.hsb-occ-row-end-79 { grid-row-end: 79; }
.hsb-occ-row-80 { grid-row: 80; }
.hsb-occ-row-start-80 { grid-row-start: 80; }
.hsb-occ-row-end-80 { grid-row-end: 80; }
/* Booking focus after successful action */
.hsb-focus-target {
	outline: 2px solid #2271b1;
	outline-offset: 2px;
}


.hsb-focus-request {
	display: none;
}


/* Mobile Optimization Patch v0.3.7.45 */

@media (max-width: 782px) {

.hs-my-account, .hs-booking-calendar {
    padding: 0 10px;
}

table.widefat {
    display: block;
    width: 100%;
    overflow-x: auto;
}

.hs-actions {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.hs-actions .button {
    width: 100%;
    min-height: 44px;
}

input, select, textarea {
    width: 100% !important;
}

.hs-calendar-toolbar {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.hs-calendar-toolbar .button {
    width: 100%;
}

}


/* Mobile calendar optimization v0.3.7.46 */
.hsb-nav {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 8px;
    margin: 4px 0 12px;
}

.hsb-nav__row {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.hsb-nav__btn {
    min-height: 36px;
    line-height: 1.2;
    padding: 6px 10px;
}

.hsb-nav__btn--prev,
.hsb-nav__btn--next {
    min-width: 42px;
    justify-content: center;
    padding-left: 0;
    padding-right: 0;
}

.hsb-nav__label {
    font-weight: 600;
    min-width: 0;
    flex: 1 1 180px;
}

.hsb-datepick {
    display: flex;
    align-items: center;
    gap: 8px;
    flex: 1 1 220px;
    min-width: 0;
}

.hsb-datepick label {
    flex: 1 1 auto;
    min-width: 0;
}

.hsb-datepick input[type="date"] {
    width: 100%;
    min-height: 36px;
    margin: 0;
}

.hsb-matrix-desktop {
    display: block;
}

.hsb-matrix-mobile {
    display: none;
}

.hsb-slot .hsb-slot-head {
    padding: 8px 10px;
}

.hsb-slot-body {
    padding: 8px 10px;
    min-height: 34px;
    gap: 5px;
}

.hsb-slot-actions {
    padding: 8px 10px;
}

.hsb-bookform button,
.hsb-bookform .button,
.hsb-mcell-actions button,
.hsb-mcell-actions .button {
    min-height: 36px;
    padding-top: 6px;
    padding-bottom: 6px;
}

.hsb-bookform select {
    min-height: 36px;
}

.hsb-matrix-scroll {
    overflow: auto;
    -webkit-overflow-scrolling: touch;
}

table.hsb-matrix {
    border-spacing: 6px;
}

td.hsb-mcell {
    padding: 6px;
    min-width: 200px;
}

.hsb-mcell-pills {
    gap: 4px;
    margin-bottom: 4px;
}

.hsb-mcell-actions {
    gap: 4px;
}

.hsb-pill {
    padding: 3px 7px;
    font-size: 12px;
}

@media (max-width: 782px) {
    .hsb-resource-title {
        margin-bottom: 8px;
    }

    .hsb-resource-name {
        font-size: 18px;
        line-height: 1.25;
    }

    .hsb-resource-date {
        font-size: 13px;
    }

    .hsb-nav {
        margin: 2px 0 10px;
        gap: 6px;
    }

    .hsb-nav__row {
        display: grid;
        grid-template-columns: 40px minmax(0, 1fr) 40px auto;
        gap: 6px;
        align-items: center;
    }

    .hsb-nav--week .hsb-nav__row {
        grid-template-columns: 40px minmax(0, 1fr) 40px auto;
    }

    .hsb-nav__btn {
        min-height: 34px;
        padding: 5px 8px;
        font-size: 13px;
    }

    .hsb-nav__btn--prev,
    .hsb-nav__btn--next {
        min-width: 40px;
        font-size: 18px;
    }

    .hsb-nav__btn--today {
        white-space: nowrap;
    }

    .hsb-datepick {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        gap: 6px;
        flex: initial;
    }

    .hsb-datepick label {
        display: block;
    }

    .hsb-datepick .screen-reader-text {
        position: static !important;
        width: auto !important;
        height: auto !important;
        clip: auto !important;
        clip-path: none !important;
        overflow: visible !important;
        margin: 0 !important;
        padding: 0 !important;
        border: 0 !important;
        color: transparent;
        font-size: 0;
        line-height: 0;
    }

    .hsb-datepick input[type="date"] {
        min-height: 34px;
        padding: 4px 8px;
        font-size: 14px;
    }

    .hsb-grid,
    .hsb-multi-grid {
        grid-template-columns: 1fr;
        gap: 8px;
    }

    .hsb-slot {
        border-radius: 10px;
    }

    .hsb-slot .hsb-slot-head {
        padding: 7px 9px;
    }

    .hsb-slot-body {
        padding: 7px 9px;
        min-height: 0;
    }

    .hsb-slot-actions {
        padding: 7px 9px;
    }

    .hsb-slot-actions .hsb-bookform {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        gap: 6px;
        align-items: stretch;
    }

    .hsb-slot-actions .hsb-bookform select {
        max-width: none;
        width: 100%;
    }

    .hsb-slot-actions .hsb-bookform button {
        min-width: 86px;
    }

    .hsb-matrix-desktop {
        display: none;
    }

    .hsb-matrix-mobile {
        display: flex;
        flex-direction: column;
        gap: 8px;
    }

    .hsb-matrix-mobile-slot {
        border: 1px solid var(--hsb-border-light);
        border-radius: 10px;
        background: #fff;
        padding: 8px;
    }

    .hsb-matrix-mobile-slot__time {
        font-weight: 700;
        font-size: 14px;
        margin-bottom: 6px;
    }

    .hsb-matrix-mobile-slot__resources {
        display: flex;
        flex-direction: column;
        gap: 6px;
    }

    .hsb-matrix-mobile-entry {
        border: 1px solid var(--hsb-border-light);
        border-radius: 8px;
        padding: 7px 8px;
        background: #fff;
    }

    .hsb-matrix-mobile-entry.is-free {
        background: var(--hsb-gradient-free);
        border-color: var(--hsb-border-free);
    }

    .hsb-matrix-mobile-entry.is-booked {
        background: var(--hsb-gradient-full);
        border-color: var(--hsb-border-full);
    }

    .hsb-matrix-mobile-entry.is-own {
        background: var(--hsb-gradient-partial);
        border-color: var(--hsb-border-partial);
    }

    .hsb-matrix-mobile-entry.is-na {
        background: var(--hsb-gradient-na);
        border-color: var(--hsb-border-neutral);
    }

    .hsb-matrix-mobile-entry__head {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 8px;
        margin-bottom: 4px;
    }

    .hsb-matrix-mobile-entry__resource {
        font-weight: 600;
        min-width: 0;
    }

    .hsb-matrix-mobile-entry__status {
        flex: 0 0 auto;
        font-size: 12px;
        font-weight: 700;
        white-space: nowrap;
    }

    .hsb-matrix-mobile-entry__bookings {
        display: flex;
        flex-wrap: wrap;
        gap: 4px;
        margin: 4px 0;
    }

    .hsb-matrix-mobile-entry__meta {
        display: flex;
        align-items: center;
        gap: 8px;
        min-height: 18px;
        margin-top: 2px;
        margin-bottom: 4px;
    }

    .hsb-bookform--mobile {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        gap: 6px;
        align-items: stretch;
        margin-top: 4px;
    }

    .hsb-bookform--mobile select {
        max-width: none;
        width: 100%;
        min-height: 34px;
    }

    .hsb-bookform--mobile button {
        min-width: 86px;
        min-height: 34px;
    }

    .hsb-slot-error {
        margin-top: 4px;
    }

    .hsb-occ-legend {
        margin: 2px 0 8px;
    }
}

/* Mobile header / focus refinement v0.3.7.47 */
.hsb-datepick__input {
    width: 100%;
}

.hsb-matrix-mobile-entry[data-hsb-focus-id] {
    scroll-margin-top: 18px;
}

@media (max-width: 782px) {
    .hsb-resource {
        padding: 10px 10px 12px;
    }

    .hsb-resource-title {
        flex-direction: column;
        align-items: flex-start;
        gap: 2px;
        margin-bottom: 6px;
    }

    .hsb-resource-name {
        font-size: 17px;
        line-height: 1.2;
        margin: 0;
    }

    .hsb-resource-date {
        font-size: 12px;
        line-height: 1.2;
    }

    .hsb-nav {
        margin: 0 0 8px;
        gap: 4px;
    }

    .hsb-nav__row {
        grid-template-columns: 36px minmax(0, 1fr) 36px auto;
        gap: 5px;
        align-items: stretch;
    }

    .hsb-nav__btn {
        min-height: 32px;
        padding: 4px 7px;
        font-size: 12px;
        border-radius: 8px;
    }

    .hsb-nav__btn--prev,
    .hsb-nav__btn--next {
        min-width: 36px;
        font-size: 18px;
    }

    .hsb-nav__btn--today {
        min-width: 0;
        padding-left: 9px;
        padding-right: 9px;
    }

    .hsb-nav__btn--apply {
        display: none;
    }

    .hsb-datepick {
        display: block;
        min-width: 0;
    }

    .hsb-datepick .screen-reader-text {
        position: absolute !important;
        width: 1px !important;
        height: 1px !important;
        padding: 0 !important;
        margin: -1px !important;
        overflow: hidden !important;
        clip: rect(0, 0, 0, 0) !important;
        white-space: nowrap !important;
        border: 0 !important;
    }

    .hsb-datepick input[type="date"],
    .hsb-datepick__input {
        width: 100%;
        max-width: none;
        min-height: 32px;
        padding: 4px 8px;
        font-size: 14px;
    }

    .hsb-matrix-mobile-slot {
        padding: 7px;
    }

    .hsb-matrix-mobile-slot__time {
        margin-bottom: 5px;
    }

    .hsb-matrix-mobile-entry {
        padding: 6px 7px;
    }

    .hsb-matrix-mobile-entry__head {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        gap: 6px;
        align-items: start;
    }

    .hsb-matrix-mobile-entry__status {
        font-size: 11px;
        line-height: 1.2;
        text-align: right;
    }

    .hsb-matrix-mobile-entry__bookings {
        margin-top: 3px;
        margin-bottom: 3px;
    }

    .hsb-bookform--mobile {
        margin-top: 3px;
    }
}


/* Mobile own-booking cancel action v0.3.7.48 */
.hsb-matrix-mobile-booking {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    max-width: 100%;
}

.hsb-pill-x--mobile {
    display: inline-flex;
    align-items: center;
}

.hsb-pill-x--mobile button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 26px;
    min-height: 26px;
    padding: 0;
    border: 1px solid rgba(0, 0, 0, 0.12);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.9);
    font-size: 16px;
}

.hsb-pill-x--mobile button:hover,
.hsb-pill-x--mobile button:focus {
    color: #b10000;
    border-color: rgba(177, 0, 0, 0.25);
}

@media (max-width: 782px) {
    .hsb-matrix-mobile-entry__bookings {
        align-items: center;
    }

    .hsb-matrix-mobile-booking {
        max-width: 100%;
    }

    .hsb-matrix-mobile-booking .hsb-pill {
        min-width: 0;
        max-width: calc(100% - 32px);
    }
}


/* Booking hints + inline delete notice v0.3.7.49 */
.hsb-booking-entry {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.hsb-booking-entry__main {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
}

.hsb-booking-note {
    display: inline-flex;
    align-items: center;
    min-height: 22px;
    padding: 2px 8px;
    border-radius: 999px;
    font-size: 12px;
    line-height: 1.2;
    font-weight: 600;
    background: #eef3ff;
    color: #28466f;
}

.hsb-booking-note--own {
    background: #f6efe0;
    color: #7a5a12;
}

.hsb-booking-inline-note {
    font-size: 12px;
    line-height: 1.35;
    color: #7a5a12;
}

.hsb-matrix-mobile-booking {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 4px;
    max-width: 100%;
}

.hsb-matrix-mobile-booking .hsb-booking-entry__main {
    width: 100%;
}

@media (max-width: 782px) {
    .hsb-booking-entry__main {
        gap: 5px;
    }

    .hsb-booking-note {
        min-height: 20px;
        padding: 2px 7px;
        font-size: 11px;
    }

    .hsb-booking-inline-note {
        font-size: 11px;
    }

    .hsb-matrix-mobile-booking .hsb-pill {
        min-width: 0;
        max-width: calc(100% - 36px);
    }
}


/* Header refinement v0.3.7.53 */

.hsb-resource-header {
    position: sticky;
    top: 0;
    z-index: 15;
    background: #fff;
    margin: -2px -2px 12px;
    padding: 2px 2px 10px;
    border-bottom: 1px solid rgba(15, 23, 42, 0.08);
}

.hsb-resource-title {
    flex-wrap: wrap;
    align-items: flex-start;
}

.hsb-resource-date {
    font-size: 14px;
    line-height: 1.35;
}

.hsb-nav {
    margin: 8px 0 0;
}

.hsb-nav--date .hsb-nav__row,
.hsb-nav--week .hsb-nav__row {
    display: grid;
    grid-template-columns: auto minmax(240px, max-content) auto auto;
    gap: 8px;
    align-items: center;
    justify-content: start;
}

.hsb-nav--week .hsb-nav__row {
    grid-template-columns: auto minmax(260px, max-content) auto auto;
}

.hsb-datepick {
    display: grid;
    grid-template-columns: minmax(190px, auto) auto;
    gap: 8px;
    align-items: center;
    min-width: 0;
}

.hsb-datepick__display {
    font-size: 14px;
    font-weight: 600;
    color: var(--hsb-color-text, #1f2937);
    line-height: 1.3;
    min-width: 0;
}

.hsb-datepick__input {
    width: 170px;
    min-width: 170px;
}

.hsb-nav__btn--prev,
.hsb-nav__btn--next {
    min-width: 44px;
}

.hsb-nav__btn--today {
    white-space: nowrap;
}

@media (max-width: 782px) {
    .hsb-resource-header {
        top: 0;
        margin-left: -2px;
        margin-right: -2px;
        padding: 2px 2px 8px;
    }

    .hsb-resource-title {
        display: flex;
        flex-direction: column;
        gap: 2px;
        margin-bottom: 6px;
    }

    .hsb-resource-date {
        font-size: 13px;
    }

    .hsb-nav--date .hsb-nav__row,
    .hsb-nav--week .hsb-nav__row {
        grid-template-columns: auto 1fr auto auto;
        gap: 6px;
    }

    .hsb-datepick {
        grid-template-columns: 1fr;
        gap: 4px;
    }

    .hsb-datepick__display {
        font-size: 12px;
        color: var(--hsb-color-muted);
    }

    .hsb-datepick__input {
        width: 100%;
        min-width: 0;
    }

    .hsb-nav__btn {
        min-height: 34px;
        padding: 6px 10px;
    }
}


/* Header cleanup v0.3.7.54 */
.hsb-resource-header {
    box-shadow: 0 6px 12px -12px rgba(15, 23, 42, 0.28);
}

.hsb-nav--date .hsb-nav__row {
    grid-template-columns: auto minmax(150px, 180px) auto auto;
    align-items: center;
}

.hsb-datepick {
    grid-template-columns: 1fr;
    gap: 0;
}

.hsb-datepick__display,
.hsb-nav__btn--apply {
    display: none !important;
}

.hsb-datepick__input {
    width: 100%;
    min-width: 0;
}

@media (max-width: 782px) {
    .hsb-resource-header {
        box-shadow: 0 6px 12px -12px rgba(15, 23, 42, 0.24);
    }

    .hsb-nav--date .hsb-nav__row {
        grid-template-columns: auto minmax(0, 1fr) auto auto;
        gap: 6px;
    }

    .hsb-datepick {
        min-width: 0;
    }
}



/* Auto refresh feedback */
.hsb-calendar-refresh-root {
    position: relative;
}

.hsb-calendar-refresh-flash {
    animation: hsb-calendar-refresh-flash 1.4s ease-out;
}

@keyframes hsb-calendar-refresh-flash {
    0% {
        box-shadow: 0 0 0 0 rgba(0, 115, 170, 0.22);
    }
    100% {
        box-shadow: 0 0 0 16px rgba(0, 115, 170, 0);
    }
}
