#blazor-error-ui {
    background: lightyellow;
    bottom: 0;
    box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2);
    display: none;
    left: 0;
    padding: 0.6rem 1.25rem 0.7rem 1.25rem;
    position: fixed;
    width: 100%;
    z-index: 1000;
}

    #blazor-error-ui .dismiss {
        cursor: pointer;
        position: absolute;
        right: 3.5rem;
        top: 0.5rem;
    }

.blazor-error-boundary {
    background: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTYiIGhlaWdodD0iNDkiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIG92ZXJmbG93PSJoaWRkZW4iPjxkZWZzPjxjbGlwUGF0aCBpZD0iY2xpcDAiPjxyZWN0IHg9IjIzNSIgeT0iNTEiIHdpZHRoPSI1NiIgaGVpZ2h0PSI0OSIvPjwvY2xpcFBhdGg+PC9kZWZzPjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMCkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMzUgLTUxKSI+PHBhdGggZD0iTTI2My41MDYgNTFDMjY0LjcxNyA1MSAyNjUuODEzIDUxLjQ4MzcgMjY2LjYwNiA1Mi4yNjU4TDI2Ny4wNTIgNTIuNzk4NyAyNjcuNTM5IDUzLjYyODMgMjkwLjE4NSA5Mi4xODMxIDI5MC41NDUgOTIuNzk1IDI5MC42NTYgOTIuOTk2QzI5MC44NzcgOTMuNTEzIDI5MSA5NC4wODE1IDI5MSA5NC42NzgyIDI5MSA5Ny4wNjUxIDI4OS4wMzggOTkgMjg2LjYxNyA5OUwyNDAuMzgzIDk5QzIzNy45NjMgOTkgMjM2IDk3LjA2NTEgMjM2IDk0LjY3ODIgMjM2IDk0LjM3OTkgMjM2LjAzMSA5NC4wODg2IDIzNi4wODkgOTMuODA3MkwyMzYuMzM4IDkzLjAxNjIgMjM2Ljg1OCA5Mi4xMzE0IDI1OS40NzMgNTMuNjI5NCAyNTkuOTYxIDUyLjc5ODUgMjYwLjQwNyA1Mi4yNjU4QzI2MS4yIDUxLjQ4MzcgMjYyLjI5NiA1MSAyNjMuNTA2IDUxWk0yNjMuNTg2IDY2LjAxODNDMjYwLjczNyA2Ni4wMTgzIDI1OS4zMTMgNjcuMTI0NSAyNTkuMzEzIDY5LjMzNyAyNTkuMzEzIDY5LjYxMDIgMjU5LjMzMiA2OS44NjA4IDI1OS4zNzEgNzAuMDg4N0wyNjEuNzk1IDg0LjAxNjEgMjY1LjM4IDg0LjAxNjEgMjY3LjgyMSA2OS43NDc1QzI2Ny44NiA2OS43MzA5IDI2Ny44NzkgNjkuNTg3NyAyNjcuODc5IDY5LjMxNzkgMjY3Ljg3OSA2Ny4xMTgyIDI2Ni40NDggNjYuMDE4MyAyNjMuNTg2IDY2LjAxODNaTTI2My41NzYgODYuMDU0N0MyNjEuMDQ5IDg2LjA1NDcgMjU5Ljc4NiA4Ny4zMDA1IDI1OS43ODYgODkuNzkyMSAyNTkuNzg2IDkyLjI4MzcgMjYxLjA0OSA5My41Mjk1IDI2My41NzYgOTMuNTI5NSAyNjYuMTE2IDkzLjUyOTUgMjY3LjM4NyA5Mi4yODM3IDI2Ny4zODcgODkuNzkyMSAyNjcuMzg3IDg3LjMwMDUgMjY2LjExNiA4Ni4wNTQ3IDI2My41NzYgODYuMDU0N1oiIGZpbGw9IiNGRkU1MDAiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvZz48L3N2Zz4=) no-repeat 1rem/1.8rem, #b32121;
    padding: 1rem 1rem 1rem 3.7rem;
    color: white;
}

    .blazor-error-boundary::after {
        content: "An error has occurred."
    }
    
/*********************   Custom Scroll *************************/

/* width */
.custom-scroll::-webkit-scrollbar {
    height: 10px;
}

/* Track */
.custom-scroll::-webkit-scrollbar-track {
    background: #f1f1f1;
    border-radius: 10px;
}

/* Handle */
.custom-scroll::-webkit-scrollbar-thumb {
    background: #0288D1;
    border-radius: 10px;
}

/* Handle on hover */
.custom-scroll::-webkit-scrollbar-thumb:hover {
    background: #026ba4;
}

/********************  Month Card ********************************/

.month-card {
    border: 1px solid rgb(182 212 229)!important;
}

.month-card .month-card-header {
    background-color: #def3ff;
    color: #000;
    text-transform: uppercase;
    border-bottom: 1px solid rgb(182 212 229)!important;
}

.month-card .month-card-select {
    width: max-content !important;
    min-width: 7rem;
    font-size: 0.8125rem;
}

.month-card .month-card-scroll {
    overflow-x: auto;
}

.bg-panel {
    background-color: #d9edf7!important;
}

/******************* TREE - PLUGIN PROFILES /*******************/
.b-tree-view.tree-plugins .b-tree-view-node .b-tree-view-node-title .cursor-pointer {display: flex;  justify-content: space-between;}
.b-tree-view.tree-plugins .b-tree-view-node:first-of-type > div:nth-child(odd) {background-color: #eef6fc; padding: 5px 10px 5px 15px;}
.b-tree-view.tree-plugins .b-tree-view-node:first-of-type > div:nth-child(even) {background-color: #fff; padding: 5px 10px 5px 15px;}
.b-tree-view.tree-plugins .b-tree-view-node .b-tree-view-node-title .cursor-pointer select {min-width: 290px; padding: 2px 5px 2px 7px;}
.b-tree-view.tree-plugins .b-tree-view-node:first-of-type > div:nth-child(odd) > .b-tree-view-node-title .cursor-pointer {font-weight: 700; color: #0079ba; text-transform: uppercase;}
.b-tree-view.tree-plugins .b-tree-view-node:first-of-type > div:nth-child(even)> .b-tree-view-node-title .cursor-pointer {font-weight: 700; color: #0079ba; text-transform: uppercase;}
.b-tree-view.tree-plugins {margin-bottom:20px;}
.b-tree-view.tree-plugins .b-tree-view-node .b-tree-view-node-title .cursor-pointer .form-group {margin-bottom: 0;}


/*********************** Seating  - Blocks ************************/
.v-center {margin: 0; position: absolute; top: 50%; -ms-transform: translateY(-50%); transform: translateY(-50%);}
.h-center {margin: 0; position: absolute; top: 50%; left: 50%; -ms-transform: translate(-50%, -50%); transform: translate(-50%, -50%);}

.table-seating .btn {padding: 0.255rem 0.55rem;}
.table-seating .bg-success input {width: 4.4rem;}
.table-seating .bg-success label {font-size: 0.75rem;}
.table-seating td {min-width: 6rem; }
.table-seating .minus input, .table-seating .minus select {font-size: 0.8125rem;}
.table-seating .col-0 {min-width: auto; background-color:#e9ecee; font-size: 0.875rem;}
.table-seating .col-minus {min-width: 13rem;}
.table-seating th {background-color:#e9ecee; font-size: 0.875rem;}

table.csv-preview th, table.csv-preview td{
    padding: 5px;
}



/* Tree menu en columna izquierda */
.col-left .b-tree-view {margin:5px 0 5px 0;}
.col-left .b-tree-view .b-tree-view-node .b-tree-view-node-title {display: flex; color: #212529 !important;}
.col-left .b-tree-view .b-tree-view-node:first-of-type > div {
    border-bottom: 1px solid #e7e7e7;
    padding-block-start: 0.5em;
}
.col-left .b-tree-view .b-tree-view-node:first-of-type > div:nth-child(odd) {background-color: #fff;}

.col-left .b-tree-view .b-tree-view-node:first-child {margin-left: 0;}
.col-left .b-tree-view .b-tree-view-node > div > .b-tree-view-node-title .cursor-pointer {margin-top: -2px; font-size: 13px!important; color: #212529 !important;}

.col-left .b-tree-view .b-tree-view-node .b-tree-view-node .cursor-pointer {font-weight: bold; color: #212529 !important;}
.col-left .b-tree-view .b-tree-view-node .b-tree-view-node .b-tree-view-node .cursor-pointer {font-weight: normal; color: #212529 !important;}

/* Sobrescribir color de texto gris de Blazorise TreeView */
.col-left .b-tree-view .b-tree-view-node label,
.col-left .b-tree-view .b-tree-view-node span,
.col-left .b-tree-view .b-tree-view-node div {
    color: #212529 !important;
}

/* Sobrescribir específicamente la clase !text-gray-500 de Tailwind en TreeView */
.col-left .b-tree-view .b-tree-view-node .text-gray-500,
.col-left .b-tree-view .b-tree-view-node .\!text-gray-500 {
    color: #212529 !important;
}

/* Barcode report */
.barcode-report-layout {
    flex-wrap: nowrap;
    align-items: flex-start;
    overflow-x: auto;
}

.barcode-report-sidebar-column {
    min-width: 18rem;
}

.barcode-report-content-column {
    min-width: 0;
}

.barcode-report-tree-label {
    font-size: 0.8rem;
    line-height: 1.35;
    font-weight: 600;
}

.barcode-report-tree-toolbar {
    margin-bottom: 0.75rem;
}

.barcode-report-tree-panel {
    max-height: 24rem;
    overflow: auto;
    border: 1px solid var(--pbo-gray-200);
    border-radius: 0.5rem;
    padding: 0.75rem;
}

.barcode-report-tree-panel .b-tree-view {
    margin: 0;
}

.barcode-report-tree-panel .b-tree-view .b-tree-view-node > div > .b-tree-view-node-title .cursor-pointer {
    font-size: 0.875rem !important;
    line-height: 1.35;
}

.barcode-report-column-filter__toggle {
    justify-content: space-between;
}

.barcode-report-column-filter__menu {
    min-width: 18rem;
    max-width: 24rem;
}

.barcode-report-column-filter__options {
    max-height: 16rem;
    overflow: auto;
    padding-bottom: 0.25rem;
}

.barcode-report-column-filter__option {
    padding: 0.35rem 0.75rem;
}

.barcode-report-column-filter__option:hover {
    background-color: var(--pbo-gray-50);
}

.barcode-report-column-filter__option .form-check {
    margin-bottom: 0;
}

@media (max-width: 991.98px) {
    .barcode-report-content-column {
        min-width: 36rem;
    }
}

/*Autocomplete*/
.b-is-autocomplete > input.form-control {
    border: 1px solid #ced4da !important;
}
.b-is-autocomplete .b-dropdown-menu.fixed {
    position: fixed;
}

/*Seating*/
circle[data-is-selectable='true'] {
    cursor : pointer;
}

text[data-is-selectable='true'] {
    cursor : pointer;
}



/* SaleFlowRules */
/* Dark Panel */

.sfr-utility-panel.dark-panel {
    border-color:#2B5F9C;
}

.sfr-utility-panel.dark-panel .card-header {
    background-color: #2B5F9C;
    color: #fff;
    padding: 0.65rem 1.25rem;
}

.sfr-utility-panel.dark-panel .card-header strong {
    color: #fff;
}

.sfr-utility-panel.dark-panel .card-header a {
    text-decoration: none;
    color: #fff
}

/* No background panel */

.sfr-utility-panel.nbg-panel {
    border: none;
}

.sfr-utility-panel.nbg-panel .card-header {
    background-color: transparent!important;
    color: #fff;
    padding-left: 0;
}

.sfr-utility-panel.nbg-panel .card-header small {
    color: #E97B1A;
    font-weight: normal;
}

.sfr-utility-panel.nbg-panel .card-header strong {
    color: #E97B1A!important;
}

.sfr-utility-panel.nbg-panel .card-header a {
    color: #E97B1A;
    text-decoration: none;
    font-weight: 400;
}

.sfr-utility-panel.nbg-panel .acc-type a {
    text-decoration: none;
    font-weight: 700;
}

.sfr-utility-panel.nbg-panel .difference {
    font-size: 0.9375rem;
    font-weight: 400;
    margin-right: 1rem;
    color:#666;
}

/******************************/
/*    Added products table    */
/******************************/

.sfr-added .acc-type a {color:#53A466!important}

.table-striped.sfr-added > tbody > tr:nth-of-type(odd),
.b-table-striped.sfr-added > tbody > tr:nth-of-type(odd) {
    --bs-table-striped-bg: rgba(0, 0, 0, 0.05);
    --bs-table-accent-bg: var(--bs-table-striped-bg);
    background: linear-gradient(var(--bs-table-accent-bg), var(--bs-table-accent-bg)), #F5F9F2 !important;
}

.table-striped.sfr-added > tbody > tr:nth-of-type(even),
.b-table-striped.sfr-added > tbody > tr:nth-of-type(even) {
    background-color: #ECF4E6 !important;
}

.table.sfr-added > thead > tr > th,
.b-table.sfr-added > thead > tr > th {
    border-bottom: 1px solid #ECF4E6 !important;
    border-top: none !important;
}
.table.sfr-added th, .table.sfr-added td,
.b-table.sfr-added th, .b-table.sfr-added td {
    border-top: none !important;
}

/******************************/
/*         Results table       */
/******************************/

.sfr-results th {color:#666}
.sfr-results .acc-type a {text-decoration: none; font-size: 0.9375rem; font-weight: 700;}

/* Sobrescribir text-xs de Blazorise en headers de todas las tablas */
.b-table thead th,
.b-table-striped thead th {
    font-size: 1rem !important;
}

/* Eliminar TODOS los bordes internos de las celdas del tbody en tablas Blazorise */
.b-table tbody td,
.b-table-striped tbody td,
.b-table tbody th,
.b-table-striped tbody th,
table.b-table tbody td,
table.b-table-striped tbody td,
table.b-table tbody th,
table.b-table-striped tbody th {
    border: none !important;
    border-width: 0 !important;
}

/* Mantener solo el borde inferior del thead */
.b-table thead,
.b-table-striped thead,
table.b-table thead,
table.b-table-striped thead {
    border-bottom: 1px solid #dee2e6 !important;
}

.b-table thead th,
.b-table-striped thead th,
table.b-table thead th,
table.b-table-striped thead th {
    border: none !important;
    border-bottom: inherit !important;
}

.table-striped.sfr-results > tbody > tr:nth-of-type(odd),
.b-table-striped.sfr-results > tbody > tr:nth-of-type(odd) {
    --bs-table-striped-bg: rgba(0, 0, 0, 0.05);
    --bs-table-accent-bg: var(--bs-table-striped-bg);
    background: linear-gradient(var(--bs-table-accent-bg), var(--bs-table-accent-bg)), #f2f2f2 !important;
}
.table-striped.sfr-results > tbody > tr:nth-of-type(even),
.b-table-striped.sfr-results > tbody > tr:nth-of-type(even) {
    background-color: #f9f9f9 !important;
}

/******************************/
/*           Badge            */
/******************************/

.badge.badge-pill.bg-light.sfr {
    color:#00489C;
    font-weight: 400;
    padding-top:0.3rem;
    padding-bottom:0.3rem;
}

.badge.badge-pill.bg-light.sfr strong{
    color:#00489C;
}

.sfr-bg-orange {
    background-color: #FCF8E3;
    border:1px solid #FAEBCC;
}

.sfr-bg-orange label {
    color: #8A6D3B;
}

.sfr-btn-info {
    background-color: #E97B1A!important; 
    border-color:#E97B1A!important;
    font-weight: 500;
    color: var(--pbo-white)!important;
}

.sfr-custom-select {
    display: inline-block;
}

span.sfr-emulatelink{
    color: #337AB7;
    font-weight: bold;
}

.sfr-added span.sfr-emulatelink{
     color: #53A466;
     font-weight: bold;
 }

.sfr-bg-orange {
    background-color: #FCF8E3;
    border:1px solid #FAEBCC;
}

.sfr-bg-orange label {
    color: #8A6D3B;
}

.sfr-label-tit {margin-top:2.25rem}

.cursor-pointer {
    cursor: pointer;
}

/* Price Plans */

/* Layout */
.price-plan-layout-container {display:flex; flex-direction:column; height:100%; position:relative;}
.price-plan-content {flex-grow:1; display:flex; flex-direction:column; padding:15px; background-color:#F2F3F8;}
.price-plan-card-container {display:flex; width:100%; gap:15px; font-family:'Roboto', sans-serif; align-items:flex-start;}
.price-plan-left-card {width:280px; flex-shrink:0;}
.price-plan-right-card {flex-grow:1; min-width:0;}
.price-plan-title-row{
    display:flex;
    align-items:center;
    justify-content:space-between;
    width:100%;
    gap:.75rem;
    margin-bottom:10px;
}
.price-plan-card-special-title {text-transform:uppercase; color:#4E81EF; font-size:1.1rem;}

/* Buttons */
.price-plan .btn-square-sm {width: 25px !important; max-width: 100% !important; max-height: 100% !important; text-align: center; padding: .25rem .4rem !important; font-size: .8125em !important;}

.price-plan .btn-primary, .price-plan .btn-secondary, .price-plan .btn-info {font-family: 'Montserrat', sans-serif; font-weight:600; font-size: 0.75rem; letter-spacing: 0.5px; text-transform: uppercase; padding:10px 15px; color: #FFF;}
.price-plan .btn-primary {background-color: #4E81EF!important; border-color: #4E81EF!important;}
.price-plan .btn-primary:hover {background-color: #376fe8!important; border-color: #376fe8!important;}
.price-plan .btn-secondary {background-color: #58BCA7!important; border-color: #58BCA7!important;}
.price-plan .btn-secondary:hover {background-color: #1fb392!important; border-color: #1fb392!important;}
.price-plan .btn-info {background-color: #9C74D3!important; border-color: #9C74D3!important;}
.price-plan .btn-info:hover {background-color: #8554cb!important; border-color: #8554cb!important; color: #FFF!important;}
.price-plan-bottom-buttons-bar .btn-primary {font-size: 0.875rem; padding:13px 20px;}

.price-plan .btn-icon {padding:0; font-size: 0.85rem; border:0;}
.price-plan-back-link{
    font-family:'Montserrat', sans-serif;
    font-weight:600;
    color:#4E81EF;
    text-decoration:underline;
    text-underline-offset:2px;
    text-transform:none;
    white-space:nowrap;
}
.price-plan-back-link:hover{
    color:#376fe8;
}


/* Card */
.price-plan .card {border:none; box-shadow:0 0 15px 0 rgba(74, 85, 129, 0.1);}
.price-plan .card-header {font-family:'Montserrat', sans-serif; font-weight:600 !important; font-size:0.9rem; margin-top:10px; background-color:transparent; border:none; padding:0.75rem 1rem 0;}
.price-plan-card-horizontal-block{
    display:flex;
    gap:30px;
    font-family:"Roboto", sans-serif;
    font-weight:400;
    font-size:0.875rem;
    border:1px solid #e4e5ed;
    background-color:#fafbff;
    border-radius:7px;
    padding:10px;
    margin:10px 0;
    align-items:flex-start;
}
.price-plan-application-date {display:flex; flex-direction:column; gap:4px;}
.price-plan-header-actions {
    display:grid;
    grid-template-columns:minmax(330px, max-content) minmax(170px, max-content) auto;
    justify-content:end;
    align-items:end;
    gap:16px;
}
.price-plan-default-price,
.price-plan-choose-color {
    display:flex;
    flex-direction:column;
    align-self:stretch;
    gap:6px;
}
.price-plan-default-price input {width:100px;}
.price-plan .card-header > .price-plan-default-price {margin-top:8px;}
.price-plan-label {
    display:flex;
    align-items:flex-start;
    min-height:2.5rem;
    line-height:1.2;
    font-weight:600;
    margin-bottom:0;
}
.price-plan-default-price > :last-child,
.price-plan-choose-color > :last-child {
    min-height:42px;
}
.price-plan-default-price .b-input,
.price-plan-default-price .b-input-group,
.price-plan-default-price .b-numeric-picker,
.price-plan-default-price .b-numeric-edit,
.price-plan-default-price .b-select,
.price-plan-default-price input,
.price-plan-default-price select {
    min-height:42px;
}
.price-plan-choose-color > div {
    display:flex;
    align-items:stretch;
}
.price-plan-color-input {
    width:72px;
    min-width:72px;
    height:42px;
    min-height:42px;
    padding:0.25rem;
    box-sizing:border-box;
}
.price-plan-save-action {display:flex; align-items:flex-end; min-height:calc(2.5rem + 42px + 6px);}
.price-plan-save-action-fill {flex:1 1 auto;}
.price-plan-align-right {margin-left:auto;}

/* Menu Sessions left */
.price-plan-menu-sessions-group {margin-top:15px;}
.price-plan-session-group-item {display:flex; align-items:center; margin-bottom:10px; font-size:0.85rem; font-weight:500; gap:5px;}
.price-plan-session-group-edit-block {background-color:#F2F3F8; display:flex; justify-content:space-between; width:100%; padding:10px 12px; border-radius:5px; align-items:center; color:#000;}
.price-plan-session-group-item-selected .price-plan-session-group-edit-block {background-color:#E4F2FD; color:#4EA4E3;}
.price-plan-session-group-item .fa-circle-check {color:#00A71E; font-size:17px;}
.price-plan-session-group-item .fa-clock {color:#E43F4F; font-size:17px;}

/* Card session group */
.price-plan-card-sessions-group {position:sticky; top:0; z-index:1;}
.price-plan-session-group-name {text-transform:uppercase; font-weight:700;}

/* Precios por días*/
.price-plan-top-buttons-bar {display:flex; justify-content:space-between; gap:12px; flex-wrap:wrap;}
.price-plan-top-buttons-bar {padding-left:1rem; padding-right:1rem;}
.price-plan-advanced-section {margin-top:1rem;}
.price-plan-prices-per-day {background-color:#E3F8F4; border-radius:4px; border:1px solid #cfe8e4; margin-bottom:1rem; overflow-x:auto;}
.price-plan-prices-per-day-table {width:100%; border-collapse:collapse;}
.price-plan-prices-per-day-table td {padding:8px 6px; vertical-align:middle;}
.price-plan-prices-per-day .price-plan-first-column {font-size:0.75rem !important; color:#238E77; text-align:center;}

/* Tabla Precios Sesiones */
.price-plan-table-prices-sessions {width:100%; border-collapse:separate; border-spacing:0; table-layout:fixed;}
.price-plan-table-prices-sessions td,
.price-plan-table-prices-sessions th {text-align:center; vertical-align:middle; border:1px solid #e7e9f0; padding:10px 8px;}
.price-plan-table-prices-sessions th {font-size:0.875rem; font-weight:700; color:#6e7782; background:#f7f8fb;}
.price-plan-table-prices-sessions td {font-weight:600; font-size:1.1rem; background:#fff;}
.price-plan-cell-unavailable {background-color:#EDEEF0 !important;}
.price-plan-first-column {width:140px; min-width:140px;}
.price-plan-day-column {width:calc((100% - 140px) / 7); min-width:110px;}
.price-plan-time-label {display:block; text-align:center;}
.price-plan-checkbox {
    border:1px solid #D3D2E0;
    border-radius:5px;
    background-color:#FCFDFF;
    padding:5px 10px;
    color:#4E81EF;
    font-size:0.875rem !important;
    font-weight:500;
}
.price-plan-checkbox-all {background-color:#FFFCE8; border-color:#E7E2C3; font-weight:400; color:#000;}
.price-plan-checkbox-all label {font-size:0.75rem; line-height:1.3; white-space:normal;}
.price-plan-checkbox input[type="checkbox"] {margin-right:5px;}
.price-plan-checkbox label {display:inline-flex; align-items:center; justify-content:center; gap:5px; width:100%;}
.price-plan-table-prices-sessions td small {font-weight:normal; font-size:0.75rem;}
.price-plan-bottom-buttons-bar {display:flex; justify-content:flex-end; gap:10px; margin-top:1rem; flex-wrap:wrap;}
.price-plan-bottom-buttons-bar-spaced {margin:0.5rem 0.5rem 0 0;}

/* Modal filtros lateral */
.price-plan-modal-sessions-filter{
    display:flex;
    justify-content:flex-end;
    align-items:stretch;
    padding:0 !important;
}
.price-plan-modal-sessions-filter > :first-child{
    width:min(900px, 100vw);
    max-width:min(900px, 100vw);
    height:100%;
    margin:0 0 0 auto;
    display:flex;
    align-items:stretch;
}
.price-plan-modal-sessions-filter > :first-child > :first-child{
    width:100%;
    height:100%;
    overflow-y:auto;
    border-radius:0;
    box-shadow:-18px 0 40px rgba(15, 23, 42, 0.18);
    background:#fff;
}
.price-plan-filter-modal-header{
    background-color:#58BCA7;
    color:#FFF;
    border-bottom:1px solid #46a690;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    padding:18px 24px;
}
.price-plan-filter-modal-heading{display:flex; align-items:center; gap:12px; min-width:0;}
.price-plan-filter-modal-icon{font-size:1rem; line-height:1; flex-shrink:0;}
.price-plan-filter-modal-header i.fa-solid,
.price-plan-filter-modal-header .fas,
.price-plan-filter-modal-header .far{
    color:#FFF;
}
.price-plan-filter-modal-body{
    background:#fff;
    padding:24px;
}
.price-plan-filter-intervals{margin-top:1.5rem;}
.price-plan-filter-ranges-grid{display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:24px;}
.price-plan-filter-range-card{display:flex; flex-direction:column; gap:14px;}
.price-plan-filter-range-title{
    text-transform:uppercase;
    font-family:'Montserrat', sans-serif;
    font-size:0.9rem;
    font-weight:700;
    color:var(--pbo-black);
    letter-spacing:0.02em;
}
.price-plan-filter-fields-grid{display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:16px;}
.price-plan-filter-field{
    margin-bottom:0;
    display:flex;
    flex-direction:column;
    align-items:stretch;
    gap:6px;
    min-width:0;
}
.price-plan-filter-field > *{min-width:0;}
.price-plan-filter-field .form-label,
.price-plan-filter-field label{
    display:block;
    margin:0;
    font-size:0.875rem;
    line-height:1.2;
    color:#6C7581;
    font-weight:500;
}
.price-plan-filter-field .flatpickr-wrapper,
.price-plan-filter-field .input-group,
.price-plan-filter-field .b-input-group,
.price-plan-filter-field .b-numeric-picker,
.price-plan-filter-field .b-numeric-edit,
.price-plan-filter-field .b-date-picker,
.price-plan-filter-field .b-field-body,
.price-plan-filter-field .validation-message{
    width:100%;
}
.price-plan-filter-field input{
    min-height:40px;
    width:100%;
}
.price-plan-modal-sessions-filter .accordion .accordion-button {background-color: #E6F8F4; color: var(--pbo-black); padding-top: 10px; padding-bottom: 10px;}
.price-plan-modal-sessions-filter .accordion .accordion-button:not(.collapsed)::after {filter: hue-rotate(305deg);}
.price-plan-modal-sessions-filter .accordion-header .title {text-transform: uppercase; margin-right: 20px; font-family: 'Montserrat', sans-serif; font-size: 0.875rem; font-weight: 600; color: #008e71; min-width: 155px;}
.price-plan-modal-sessions-filter .accordion-header .form-check-label {font-size: 0.875rem; font-weight: 500;}
.price-plan-modal-sessions-filter .accordion-body .form-check-inline {width: 83px; font-size: 0.875rem;}
.price-plan-modal-sessions-filter .card.filter-actions {box-shadow: none;}
.price-plan-modal-sessions-filter .filter-actions .card-header {background-color: #E0E7F1; margin-top: 0;}
.price-plan-modal-sessions-filter .filter-actions .card-header .title {font-family: 'Montserrat', sans-serif; font-size: 0.875rem; font-weight: 600; text-transform: uppercase; color: #333F50!important;}
.price-plan-modal-sessions-filter .filter-actions .card-body {background-color: #EDF2FA;}
.price-plan-modal-sessions-filter .filter-actions .card-body .form-label {font-weight: 500; font-size: 0.875rem;}
.price-plan-modal-sessions-filter .filter-actions .form-check-label {font-weight: 500; font-size: 0.875rem;}
.price-plan-modal-sessions-filter i.fa-solid {color: #767F8A;}

.price-plan-filter-modal-title {
    margin:0;
    font-family:'Montserrat', sans-serif;
    font-size:1.5rem;
    line-height:1.1;
    font-weight:700;
}
.price-plan-filter-actions {display:flex; justify-content:space-between; align-items:center; margin-top:1rem; width:100%; gap:12px; flex-wrap:wrap;}
.price-plan-filter-actions-buttons {display:flex; gap:8px; flex-wrap:wrap;}

.price-plan-filters-bar.price-plan-filters-clean{
    background: transparent!important;
    border: 1px solid #cfe8e4;   /* mismo family que usas (mint/teal suave) */
    border-radius: 8px;
    padding: 6px 10px;
    margin: 8px 0 12px;
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:12px;
    flex-wrap:wrap;
}

/* Alineación texto + badges */
.price-plan-filters-left{ display:flex; align-items:baseline; gap:.5rem; flex-wrap:wrap; }

/* Título */
.price-plan-filters-label{
    color:#1aa384; font-weight:700; text-transform:uppercase; font-size:.875rem;
}

/* Badge-chip */
.price-plan-filter-badge{
    border:1px solid #d9dee7; background:#eef2f7; color:#4a5568;
    font-weight:500; font-size:.8125rem; padding:.25rem .5rem;
}
.price-plan-filter-badge-text {margin-right:0.25rem;}

@media (max-width:1100px){
    .price-plan-card-container{flex-direction:column;}
    .price-plan-left-card{width:100%;}
    .price-plan-card-horizontal-block{flex-direction:column; gap:16px;}
    .price-plan-header-actions{
        grid-template-columns:minmax(0, 1fr);
        justify-content:stretch;
    }
    .price-plan-modal-sessions-filter > :first-child{
        width:100vw;
        max-width:100vw;
    }
    .price-plan-filter-ranges-grid,
    .price-plan-filter-fields-grid{
        grid-template-columns:minmax(0,1fr);
    }
}

/*Ajustes para vista calendario*/

/* =========================================================
   PRICE PLAN — CSS CONSOLIDADO (CALENDARIO + PANEL DERECHO)
   ========================================================= */

/* ---------- Barra superior: Select (izq) + MonthSelector (dcha) ---------- */
.price-plan-view-month-bar{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:1rem;
    margin-top:.5rem;
    padding-left:1rem;
    padding-right:1rem;
}
.price-plan-view-select{
    width:auto;
    min-width:120px;
    flex-shrink:0;
}

/* =======================
   LAYOUT CALENDARIO + PANEL
   ======================= */
.price-plan-calendar-layout{
    display:flex;
    gap:15px;
    margin-top:10px;
}
.price-plan-calendar-main{
    flex:1 1 auto;
    min-width:0;
    background:#fff;
    border:1px solid #e7e7e7;
    border-radius:8px;
    padding:10px;
}
.price-plan-calendar-side{
    flex:0 0 340px;
    min-width:340px;
    max-width:340px;
    align-self:stretch;
    background:#2F6BEA;
    color:#fff;
    border-radius:8px;
    padding:14px;
    position:sticky;
    top:0;
}
@media (max-width:1100px){
    .price-plan-calendar-layout{ flex-direction:column; }
    .price-plan-calendar-side{
        flex:0 0 auto;
        min-width:0;
        max-width:none;
        position:static;
        width:100%;
    }
}

/* =======================
   PANEL DERECHO (HEADER)
   ======================= */
.price-plan-day-panel-header{ margin-bottom:12px; }
.price-plan-day-panel-title{
    font-family:'Montserrat', sans-serif;
    font-weight:700;
    font-size:1rem;
    letter-spacing:.5px;
    text-transform:uppercase;
}
.price-plan-day-panel-subtitle{
    font-family:'Montserrat', sans-serif;
    font-weight:600;
    opacity:.9;
    margin-top:2px;
    text-transform:uppercase;
}

/* ==========================================
   PANEL DERECHO (TABLA STRIPED con Blazorise)
   ========================================== */
.price-plan-day-table{
    width:100%;
    border-collapse:separate;
    border-spacing:0;
    color:#fff;
    border-radius:8px;
    overflow:hidden;
}
.price-plan-day-table tbody tr:nth-of-type(odd){
    background-color:rgba(255,255,255,.22) !important; /* fila 1,3,5... */
}
.price-plan-day-table tbody tr:nth-of-type(even){
    background-color:rgba(255,255,255,.10) !important; /* fila 2,4,6... */
}
.price-plan-day-table tbody tr:hover{
    background-color:rgba(255,255,255,.28) !important;
}
.price-plan-day-table td{
    padding:12px;
    border:none;
    vertical-align:middle;
    font-weight:600;
}
.price-plan-day-table .slot-time{ text-align:left; }
.price-plan-day-table .slot-price{ text-align:right; }

/* =======================
   CALENDARIO (tabla)
   ======================= */
.price-plan-calendar-card{ border:1px solid #e7e7e7; border-radius:8px; }
.price-plan-calendar-card-body{ padding:0; }

.price-plan-calendar-table{
    table-layout:fixed;
    border-collapse:separate;
    border-spacing:0;
    width:100%;
}
.price-plan-calendar-th,
.price-plan-calendar-td{ width:calc(100%/7); }

/* Cabecera */
.price-plan-calendar-th{
    font-family:'Montserrat', sans-serif;
    font-weight:600;
    font-size:.875rem;
    padding:.75rem .5rem;
    color:#333F50;
    text-transform:uppercase;
    text-align:center;
    border-top:1px solid #e7e7e7;
    border-bottom:1px solid #e7e7e7;
    border-right:1px solid #eee;
}
.price-plan-calendar-th:first-child{ border-left:1px solid #eee; }

/* Celdas */
.price-plan-calendar-td{
    height:110px;
    vertical-align:top;
    padding:.5rem;               /* hueco base; el top real lo forzamos con override */
    border-right:1px solid #eee;
    border-bottom:1px solid #eee;
    background:#fff;
    color:var(--pbo-black);
    cursor:pointer;
    position:relative;
    box-sizing:border-box;
}
.price-plan-calendar-td:first-child{ border-left:1px solid #eee; }
.price-plan-calendar-td:last-child,
.price-plan-calendar-th:last-child{ border-right:1px solid #eee; }
.price-plan-calendar-td:hover{ background:#f7faff; }

/* Número del día (arriba derecha) */
.price-plan-day-number{
    position:absolute;
    top:6px;
    right:8px;
    margin:0;
    font-weight:600;
    color:var(--pbo-black);
}

/* Badges/resúmenes dentro de las celdas (robusto ante span/div/a) */
.price-plan-day-badges{
    display:flex;
    flex-direction:column;
    gap:.35rem;
}
/* Si el backend rinde distintos tags, los estilamos igual como pill */
.price-plan-day-badges > span,
.price-plan-day-badges > div,
.price-plan-day-badges > a,
.price-plan-badge{
    display:inline-block;
    max-width:100%;
    padding:.40rem .60rem;
    line-height:1.2;
    font-size:.8125rem;
    font-weight:600;
    border-radius:6px;
    background:#e8f2ff;
    border:1px solid #cfe0ff;
    color:#1f4fbf;
    box-sizing:border-box;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}
/* Badge suelto sin wrapper */
.price-plan-calendar-td > .price-plan-badge:first-child{
    display:inline-block;
    margin-top:8px;
}

/* Día seleccionado */
.price-plan-calendar-td.price-plan-selected-day{
    background:#eef3ff !important;
    color:var(--pbo-black) !important;
    outline:2px solid #4E81EF;
    outline-offset:-2px;
}
.price-plan-calendar-td.price-plan-selected-day .price-plan-day-number{
    color:var(--pbo-black) !important;
}

/* Días fuera de mes (atenuados) */
.price-plan-calendar-td.price-plan-out-month
{
    background:#fafafa !important;
    color:#9aa0a6 !important;
}
.price-plan-calendar-td.price-plan-out-month .price-plan-day-number,
.price-plan-calendar-td.price-plan-filtered-day .price-plan-day-number{
    color:#7a7f85 !important;
}
.price-plan-calendar-td.price-plan-out-month .price-plan-day-badges > span,
.price-plan-calendar-td.price-plan-filtered-day .price-plan-day-badges > span,
.price-plan-calendar-td.price-plan-out-month .price-plan-day-badges > div,
.price-plan-calendar-td.price-plan-filtered-day .price-plan-day-badges > div,
.price-plan-calendar-td.price-plan-out-month .price-plan-day-badges > a,
.price-plan-calendar-td.price-plan-filtered-day .price-plan-day-badges > a,
.price-plan-calendar-td.price-plan-out-month .price-plan-badge,
.price-plan-calendar-td.price-plan-filtered-day .price-plan-badge{
    background:#f3f4f6;
    border-color:#e5e7eb;
    color:#6b7280;
}

/* ======================================================
   OVERRIDES ALTA ESPECIFICIDAD (vence a Bootstrap)
   ====================================================== */
.price-plan-calendar-table > tbody > tr > td.price-plan-calendar-td{
    padding-top:40px !important;      /* reserva espacio bajo el número */
    vertical-align:top !important;
}
.price-plan-calendar-table td.price-plan-calendar-td .price-plan-day-number{
    position:absolute !important;
    top:8px !important;
    right:10px !important;
    margin:0 !important;
}
.price-plan-calendar-table td.price-plan-calendar-td .price-plan-day-badges{
    margin-top:10px !important;
}
.price-plan-calendar-table > tbody > tr >
td.price-plan-calendar-td.price-plan-out-month,
.price-plan-calendar-table > tbody > tr >
td.price-plan-calendar-td.price-plan-filtered-day{
    padding-top:40px !important;
}


.price-plan-day-table td.slot-extra {
    min-width: 120px;   /* o el ancho que quieras reservar */
    text-align: center;
    position: relative;
}

/* Si está vacía, dibuja un pseudo-espacio para que se mantenga */
.price-plan-day-table td.slot-extra:empty::after {
    content: "—";   /* guion o lo que quieras mostrar */
    opacity: 0;     /* invisible, pero ocupa espacio */
}

/*Fin ajustes para vista calendario*/

/* Cierre del badge */
.price-plan-filter-badge .btn-close{
    position:static;          /* por si el tema la posiciona raro */
    width:16px;
    height:16px;
    padding:0;
    margin:0 0 0 .125rem;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    line-height:1;
    opacity:.6;
}

.price-plan .price-plan-filter-badge .badge-close:hover{ opacity:1; }

/* DatePicker - Asegurar que el wrapper sea visible y tenga contexto de posicionamiento correcto */
.flatpickr-wrapper {
    display: block !important;
    position: relative !important;
}

/*Texts with icon tooltip*/
.text-icon-tooltip{margin-right: 0.4rem!important; margin-bottom: -2px;}

/* Detalle Venta - Tabla Tickets*/
.sale-seating-transaction-product-tickets-table td {
    font-size: 14px!important;
}

.sale-seating-transaction-product-tickets-table input.form-control {
    font-size: 14px !important;
}

.align-right {
    float: right;
}

/* Iconos menú */
.menu-link-icon {
    font-size: 16px;
    margin-right: 7px;
    display: inline-block;
    width: 20px;
    text-align: center;
}

/* DataGrid: espacio entre el nombre de columna y el símbolo de ordenación */
th[scope="col"] i[class*="fa-sort"] {
    margin-left: .35rem;
}

/* Card headers */
.b-card-header {
    padding: .5rem 1rem;
    margin-bottom: 0;
    background-color: rgba(0, 0, 0, .03);
    border-bottom: 1px solid rgba(0, 0, 0, .125);
}

/* DataGrid pager: only page-size selector */
nav[aria-label="Pagination"] li.pagination-item > select[name="PaginationContext.PageSize"] {
    min-width: 4rem !important;
    width: auto !important;
    max-width: none !important;
}




/* Blazorise buttons: pointer cursor on interactive state */
.b-button:not(:disabled):not(.disabled):not([aria-disabled="true"]) {
    cursor: pointer;
}

/* Blazorise solid buttons: consistent hover feedback (exclude outline variants) */
.b-button:is(.b-button-primary, .b-button-secondary, .b-button-success, .b-button-danger, .b-button-warning, .b-button-info, .b-button-light, .b-button-dark):not(.b-button-outline):not(.b-button-outline-primary):not(.b-button-outline-secondary):not(.b-button-outline-success):not(.b-button-outline-danger):not(.b-button-outline-warning):not(.b-button-outline-info):not(.b-button-outline-light):not(.b-button-outline-dark):not(:disabled):not(.disabled):not([aria-disabled="true"]):hover {
    filter: brightness(0.82);
    transition: filter .15s ease-in-out;
}

/* Modal positioning fix for iframe contexts */
.b-modal {
    align-items: flex-start !important;
    padding-top: 1rem !important;
    padding-bottom: 1rem !important;
}

.b-modal > div {
    margin-top: 0 !important;
    max-height: calc(100vh - 2rem) !important;
}

/* Espaciar las flechas de los Select, EXCEPTO los muy pequeños */
select.rounded-lg:not([style*="width"]),
.b-select select:not([style*="width"]),
select.form-select:not([style*="width"]) {
    padding-right: 3rem !important;
    background-position: right 1rem center !important;
}

.pbo-matrix-fullscreen-modal{
    padding-top:1rem !important;
    padding-bottom:1rem !important;
    padding-left:0 !important;
    padding-right:0 !important;
}
.pbo-matrix-fullscreen-modal > :first-child{
    width:100vw;
    max-width:100vw;
    height:100%;
    display:flex;
    align-items:stretch;
}
.pbo-matrix-fullscreen-modal > :first-child > :first-child{
    background:transparent !important;
    box-shadow:none !important;
    border:none !important;
}
.pbo-matrix-fullscreen-modal{
    padding-top:1rem !important;
    padding-bottom:1rem !important;
    padding-left:0 !important;
    padding-right:0 !important;
}
.pbo-matrix-fullscreen-modal > :first-child{
    width:100vw;
    max-width:100vw;
    height:100%;
    display:flex;
    align-items:stretch;
}
.pbo-matrix-fullscreen-modal > :first-child > :first-child{
    background:transparent !important;
    box-shadow:none !important;
    border:none !important;
}
/* PriceByOccupancy - Design System */

:root {
    /* Primary Colors */
    --pbo-primary: #2563eb;
    --pbo-primary-hover: #3b82f6;
    --pbo-primary-dark: #2f73ff;
    --pbo-primary-light: #eff6ff;
    --pbo-primary-border: #bfdbfe;
    --pbo-tab-active-bg: rgb(239 246 255 / 50%);

    /* Danger Colors */
    --pbo-danger: #ef4444;
    --pbo-danger-hover: #dc2626;
    --pbo-danger-light: #fef2f2;
    --pbo-danger-border: #fecaca;
    --pbo-danger-dark: #991b1b;

    /* Warning Colors */
    --pbo-warning: #f59e0b;
    --pbo-warning-hover: #d97706;
    --pbo-warning-light: #fef3c7;
    --pbo-warning-border: #fde68a;

    /* Gray Scale */
    --pbo-gray-50: #f8fafc;
    --pbo-gray-100: #f1f5f9;
    --pbo-gray-200: #e2e8f0;
    --pbo-gray-300: #cbd5e1;
    --pbo-gray-400: #94a3b8;
    --pbo-gray-500: #64748b;
    --pbo-gray-600: #475569;
    --pbo-gray-700: #334155;
    --pbo-gray-800: #1e293b;
    --pbo-gray-900: #0f172a;

    /* Neutral */
    --pbo-white: #ffffff;
    --pbo-black: #0D0C22;

    /* Spacing */
    --pbo-padding-sm: 0.5rem 1rem;
    --pbo-padding-md: 0.625rem 1rem;
    --pbo-padding-base: 0.75rem;
    --pbo-padding-lg: 1rem;

    /* Border Radius */
    --pbo-radius-sm: 0.5rem;
    --pbo-radius-md: 0.62rem;
    --pbo-radius-lg: 0.75rem;

    /* Transitions */
    --pbo-transition-fast: 0.2s ease;

    /* Navigation Colors */
    --pbo-nav-bg: #04123a;
    --pbo-nav-border: #1e2c56;
    --pbo-nav-hover: #14224b;
    --pbo-nav-text: #7f93b4;
    --pbo-nav-text-hover: #d9e6ff;
    --pbo-nav-text-muted: #60749a;
    --pbo-nav-text-muted-hover: #8fa7d1;
    --pbo-nav-active: #2f73ff;
    --pbo-nav-icon: #3d8cff;
    --pbo-nav-chevron: #4d6188;
}

/* Button Utilities */
.pbo-btn-base {
    border: 0;
    border-radius: var(--pbo-radius-sm);
    padding: var(--pbo-padding-sm);
    font-size: 0.875rem;
    font-weight: 500;
    transition: background-color var(--pbo-transition-fast);
    cursor: pointer;
    line-height: 1.25rem;
}

.pbo-btn-primary {
    color: var(--pbo-white);
    background-color: var(--pbo-primary);
}

.pbo-btn-primary:hover {
    background-color: var(--pbo-primary-hover);
}

.pbo-btn-primary:disabled,
.pbo-btn-primary[disabled] {
    background-color: var(--pbo-gray-400);
    cursor: not-allowed;
}

.pbo-btn-cancel {
    color: var(--pbo-gray-600);
    background-color: transparent;
}

.pbo-btn-cancel:hover {
    background-color: var(--pbo-gray-100);
    color: var(--pbo-gray-700);
}

.pbo-btn-danger {
    color: var(--pbo-white);
    background-color: var(--pbo-danger);
}

.pbo-btn-danger:hover {
    background-color: var(--pbo-danger-hover);
}

.pbo-btn-warning {
    color: var(--pbo-white);
    background-color: var(--pbo-warning);
}

.pbo-btn-warning:hover {
    background-color: var(--pbo-warning-hover);
}

.pbo-btn-understood {
    color: var(--pbo-white);
    background-color: var(--pbo-gray-600);
}

.pbo-btn-understood:hover {
    background-color: var(--pbo-gray-700);
}

/* PriceByOccupancy - Navigation */
.pbo-nav {
    width: 100%;
    height: 100%;
    min-height: 100vh;
    background-color: var(--pbo-nav-bg);
    display: flex;
    flex-direction: column;
}

.pbo-nav__header {
    padding: 1rem 1rem 0.875rem;
    border-bottom: 1px solid var(--pbo-nav-border);
}

.pbo-nav__brand {
    display: flex;
    align-items: center;
    gap: 0.625rem;
}

.pbo-nav__brand-icon {
    width: 2rem;
    height: 2rem;
    color: var(--pbo-nav-icon);
    display: inline-flex;
}

.pbo-nav__brand-icon svg {
    width: 2rem;
    height: 2rem;
}

.pbo-nav__brand-text {
    display: flex;
    flex-direction: column;
}

.pbo-nav__title {
    color: var(--pbo-gray-50);
    font-weight: 700;
    font-size: 1.125rem;
    line-height: 1.5rem;
}

.pbo-nav__subtitle {
    color: #90a3c4;
    font-size: 0.75rem;
    line-height: 1rem;
}

.pbo-nav__items {
    flex: 1 1 auto;
    padding: 0.75rem 0.5rem;
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.pbo-nav-item {
    display: flex;
    align-items: center;
    margin: 0 0.25rem;
    gap: 0.75rem;
    padding: 0.64rem 0.75rem;
    border-radius: var(--pbo-radius-md);
    color: var(--pbo-nav-text);
    text-decoration: none;
    transition: background-color var(--pbo-transition-fast), color var(--pbo-transition-fast);
}

.pbo-nav-item:hover {
    background-color: var(--pbo-nav-hover);
    color: var(--pbo-nav-text-hover);
}

.pbo-nav-item__icon {
    width: 1.25rem;
    height: 1.25rem;
    display: inline-flex;
    flex-shrink: 0;
}

.pbo-nav-item__icon svg {
    width: 1.25rem;
    height: 1.25rem;
}

.pbo-nav-item__content {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-width: 0;
}

.pbo-nav-item__title {
    font-size: 0.875rem;
    font-weight: 600;
    line-height: 1.25rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.pbo-nav-item__subtitle {
    font-size: 0.75rem;
    line-height: 1rem;
    color: var(--pbo-nav-text-muted);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.pbo-nav-item:hover .pbo-nav-item__subtitle {
    color: var(--pbo-nav-text-muted-hover);
}

.pbo-nav-item__badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.25rem;
    height: 1.25rem;
    padding: 0 0.375rem;
    border-radius: 9999px;
    background-color: var(--pbo-danger-hover);
    color: var(--pbo-white);
    font-size: 0.75rem;
    font-weight: 600;
    line-height: 1;
    flex-shrink: 0;
}

.pbo-nav-item__chevron {
    width: 1rem;
    height: 1rem;
    color: var(--pbo-nav-chevron);
    flex-shrink: 0;
    transition: color var(--pbo-transition-fast);
}

.pbo-nav-item:hover .pbo-nav-item__chevron {
    color: var(--pbo-nav-text-muted-hover);
}

.pbo-nav-item__chevron svg {
    width: 1rem;
    height: 1rem;
}

.pbo-nav-item--active {
    background-color: var(--pbo-nav-active);
    color: var(--pbo-white);
}

.pbo-nav-item--active .pbo-nav-item__subtitle,
.pbo-nav-item--active .pbo-nav-item__chevron {
    color: #bfd6ff;
}

.pbo-menu-wrapper {
    display: flex;
    align-self: stretch;
    min-height: 100vh;
    background-color: var(--pbo-nav-bg);
    padding: 0 !important;
    flex: 0 0 16rem !important;
    max-width: 16rem !important;
    width: 16rem !important;
}

.pbo-main-wrapper {
    flex: 1 1 calc(100% - 16rem) !important;
    max-width: calc(100% - 16rem) !important;
    width: calc(100% - 16rem) !important;
}

@media (max-width: 1024px) {
    .pbo-menu-wrapper,
    .pbo-main-wrapper {
        flex: 0 0 100% !important;
        max-width: 100% !important;
        width: 100% !important;
    }

    .pbo-nav {
        min-height: auto;
    }
}

/* PriceByOccupancy - Shared styles */
.pbo-main,
.pbo-main *,
.pbo-pool-modal,
.pbo-pool-modal *,
.pbo-tree,
.pbo-tree * {
    font-family: __Inter_f367f3, __Inter_Fallback_f367f3, Inter, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}

.pbo-font,
.pbo-font * {
    font-family: "Inter", "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif !important;
}

.pbo-font .fa,
.pbo-font .fas,
.pbo-font .far,
.pbo-font .fal,
.pbo-font .fab,
.pbo-font .fa-solid,
.pbo-font .fa-regular,
.pbo-font .fa-light,
.pbo-font .fa-thin,
.pbo-font .fa-duotone,
.pbo-font .fa-brands,
.pbo-font .fa::before,
.pbo-font .fas::before,
.pbo-font .far::before,
.pbo-font .fal::before,
.pbo-font .fab::before,
.pbo-font .fa-solid::before,
.pbo-font .fa-regular::before,
.pbo-font .fa-light::before,
.pbo-font .fa-thin::before,
.pbo-font .fa-duotone::before,
.pbo-font .fa-brands::before {
    font-family: "Font Awesome 6 Free", "Font Awesome 5 Free" !important;
}

.pbo-font .fab,
.pbo-font .fa-brands,
.pbo-font .fab::before,
.pbo-font .fa-brands::before {
    font-family: "Font Awesome 6 Brands", "Font Awesome 5 Brands" !important;
}

.pbo-main {
    flex: 1 1 auto;
    padding: 1.5rem;
    overflow: auto;
}

.pbo-container {
    max-width: 80rem;
    margin: 0 auto;
}

.pbo-header-block {
    margin-bottom: 1.5rem;
}

.pbo-header-row {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
}

.pbo-title-wrap {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
}

.pbo-title-icon-box {
    padding: 0.75rem;
    border-radius: 0.75rem;
    background-color: rgba(59, 130, 246, 0.1);
}

.pbo-title-icon-box > svg {
    width: 1.75rem;
    height: 1.75rem;
    color: var(--pbo-primary-hover);
}

.pbo-title {
    font-size: 1.5rem;
    line-height: 2rem;
    font-weight: 700;
    color: var(--pbo-gray-900);
}

.pbo-subtitle {
    margin-top: 0.25rem;
    color: var(--pbo-gray-500);
}

.pbo-header-actions {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.pbo-create-button {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: var(--pbo-padding-sm);
    border-radius: var(--pbo-radius-sm);
    color: var(--pbo-white);
    background-color: var(--pbo-primary);
    transition: background-color var(--pbo-transition-fast);
}

.pbo-create-button:hover {
    background-color: var(--pbo-primary-hover);
}

.pbo-create-button > svg {
    width: 1rem;
    height: 1rem;
}

.pbo-info-box {
    margin-top: 1rem;
    padding: var(--pbo-padding-lg);
    border-radius: var(--pbo-radius-sm);
    border: 1px solid #dbeafe;
    background-color: var(--pbo-primary-light);
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
}

.pbo-info-box > svg {
    width: 1.25rem;
    height: 1.25rem;
    color: var(--pbo-primary-hover);
    flex-shrink: 0;
    margin-top: 0.125rem;
}

.pbo-info-text {
    font-size: 0.875rem;
    line-height: 1.25rem;
    color: #1e40af;
}

.pbo-list-card {
    border-radius: 0.75rem;
    border: 1px solid var(--pbo-gray-200);
    background-color: var(--pbo-white);
    box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
    overflow: hidden;
}

.pbo-list > .pbo-pool-item + .pbo-pool-item {
    border-top: 1px solid var(--pbo-gray-100);
}

.pbo-empty {
    min-height: 12rem;
    padding: 2rem 1.5rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
}

.pbo-empty__icon-box {
    width: 3rem;
    height: 3rem;
    border-radius: 0.75rem;
    background-color: var(--pbo-primary-light);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 0.75rem;
}

.pbo-empty__icon-box > svg {
    width: 1.5rem;
    height: 1.5rem;
    color: var(--pbo-primary-hover);
}

.pbo-empty__title {
    font-size: 1rem;
    line-height: 1.5rem;
    font-weight: 600;
    color: var(--pbo-gray-900);
}

.pbo-empty__text {
    margin-top: 0.25rem;
    max-width: 28rem;
    font-size: 0.875rem;
    line-height: 1.25rem;
    color: var(--pbo-gray-500);
}

.pbo-pool-item__row {
    padding: var(--pbo-padding-lg);
    cursor: pointer;
    transition: background-color var(--pbo-transition-fast);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

.pbo-pool-item__row:hover {
    background-color: var(--pbo-gray-50);
}

.pbo-pool-item__left {
    display: flex;
    align-items: center;
    gap: 1rem;
    min-width: 0;
}

.pbo-pool-item__icon-box {
    width: 3rem;
    height: 3rem;
    border-radius: 0.75rem;
    background-color: #dcfce7;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.pbo-pool-item__icon-box > svg {
    width: 1.5rem;
    height: 1.5rem;
    color: #16a34a;
}

.pbo-pool-item__title-row {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.pbo-pool-item__title {
    font-size: 1rem;
    line-height: 1.5rem;
    font-weight: 600;
    color: var(--pbo-gray-900);
}

.pbo-pool-item__scope {
    display: inline-flex;
    align-items: center;
    padding: 0.125rem 0.625rem;
    border-radius: 9999px;
    border: 1px solid transparent;
    font-size: 0.75rem;
    line-height: 1rem;
    font-weight: 500;
}

.pbo-pool-item__scope--day {
    border-color: var(--pbo-primary-border);
    background-color: #dbeafe;
    color: #1d4ed8;
}

.pbo-pool-item__scope--session {
    border-color: var(--pbo-warning-border);
    background-color: var(--pbo-warning-light);
    color: #b45309;
}

.pbo-pool-item__meta {
    margin-top: 0.125rem;
    font-size: 0.875rem;
    line-height: 1.25rem;
    color: var(--pbo-gray-500);
}

.pbo-pool-item__actions {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    flex-shrink: 0;
}

.pbo-pool-item__action {
    width: 2rem;
    height: 2rem;
    border-radius: 0.5rem;
    color: var(--pbo-gray-400);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: color 0.2s ease, background-color 0.2s ease;
}

.pbo-pool-item__action svg {
    width: 1rem;
    min-width: 1rem;
    height: 1rem;
    min-height: 1rem;
    flex: 0 0 1rem;
    cursor: pointer;
}

.pbo-pool-item__action--edit:hover {
    color: var(--pbo-primary);
    background-color: var(--pbo-primary-light);
}

.pbo-pool-item__action--remove:hover {
    color: var(--pbo-danger-hover);
    background-color: var(--pbo-danger-light);
}

.pbo-pool-item__chevron {
    width: 1.5rem;
    height: 1.5rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--pbo-gray-400);
}

.pbo-pool-item__chevron > svg {
    width: 1.25rem;
    height: 1.25rem;
}

.pbo-pool-item__details-wrap {
    padding: 0 1rem 1rem;
}

.pbo-pool-item__details {
    background-color: var(--pbo-gray-50);
    border-radius: 0.5rem;
    padding: 1rem;
}

.pbo-pool-item__description-box {
    margin-bottom: 1rem;
    padding: 0.75rem;
    border: 1px solid var(--pbo-gray-200);
    border-radius: 0.5rem;
    background-color: var(--pbo-white);
}

.pbo-pool-item__description-text {
    font-size: 0.875rem;
    line-height: 1.25rem;
    color: var(--pbo-gray-600);
    font-style: italic;
}

.pbo-pool-item__filters-title {
    margin-bottom: 0.75rem;
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.875rem;
    line-height: 1.25rem;
    font-weight: 500;
    color: var(--pbo-gray-700);
}

.pbo-pool-item__filters-title > svg {
    width: 1rem;
    height: 1rem;
    color: var(--pbo-gray-500);
}

.pbo-pool-item__filters-card {
    background-color: var(--pbo-white);
    border: 1px solid var(--pbo-gray-200);
    border-radius: 0.5rem;
    padding: 0.75rem;
}

.pbo-pool-item__products-line {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
}

.pbo-pool-item__products-line > svg {
    width: 1rem;
    height: 1rem;
    color: var(--pbo-gray-400);
}

.pbo-pool-item__products-text {
    font-size: 0.875rem;
    line-height: 1.25rem;
    font-weight: 500;
    color: var(--pbo-gray-700);
}

.pbo-pool-item__flags-line {
    margin-top: 0.5rem;
    padding-top: 0.5rem;
    border-top: 1px solid var(--pbo-gray-100);
    display: flex;
    align-items: center;
    gap: 1rem;
    flex-wrap: wrap;
}

.pbo-pool-item__flag {
    font-size: 0.75rem;
    line-height: 1rem;
    color: #15803d;
}

.pbo-pool-item__flag::before {
    content: "\2713\0020";
}

/* PriceByOccupancy - Pool upsert modal */
.pbo-pool-modal {
    width: 100%;
    max-height: calc(100vh - 3.5rem);
    border-radius: 1rem;
    background-color: var(--pbo-white);
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
    display: flex;
    flex-direction: column;
    overflow: visible;
}

.pbo-pool-modal__header {
    border-bottom: 1px solid var(--pbo-gray-200);
    padding: 1rem 1.5rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    border-top-left-radius: 1rem;
    border-top-right-radius: 1rem;
}

.pbo-pool-modal__title {
    margin: 0;
    font-size: 1.25rem;
    line-height: 1.75rem;
    font-weight: 600;
    color: var(--pbo-gray-900);
}

.pbo-pool-modal__close-btn {
    width: 1.875rem;
    height: 1.875rem;
    min-width: 1.875rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 0.5rem;
    color: var(--pbo-gray-400);
    background-color: transparent;
    border: 0;
    padding: 0;
}

.pbo-pool-modal__close-btn:hover {
    color: var(--pbo-gray-600);
    background-color: var(--pbo-gray-100);
}

.pbo-pool-modal__body {
    flex: 1 1 auto;
    overflow-y: auto;
    padding: 1.5rem;
}

.pbo-pool-modal__form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 1rem;
    row-gap: 0.5rem;
}

.pbo-pool-modal__field {
    margin-bottom: 0 !important;
}

.pbo-pool-modal__label {
    margin-bottom: 0.25rem;
    font-size: 0.875rem;
    line-height: 1.25rem;
    font-weight: 500;
    color: var(--pbo-gray-700);
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.pbo-pool-modal__label-optional {
    color: var(--pbo-gray-400);
    font-weight: 400;
}

/* Estilos genéricos para inputs/selects en módulo PBO */
.pbo-input {
    width: 100%;
}

.pbo-input select,
.pbo-input .custom-select,
.pbo-input .form-select {
    color: var(--pbo-gray-700);
}

.pbo-help-tooltip {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--pbo-gray-500);
    outline: none;
}

.pbo-help-tooltip__trigger {
    width: 1rem;
    height: 1rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: help;
}

.pbo-help-tooltip__trigger > svg {
    width: 1rem;
    height: 1rem;
    stroke-width: 1.8;
}

.pbo-help-tooltip:hover,
.pbo-help-tooltip:focus-within,
.pbo-help-tooltip:focus {
    color: var(--pbo-primary);
}

.pbo-help-tooltip__content {
    position: absolute;
    top: calc(100% + 0.5rem);
    left: 0;
    z-index: 1085;
    min-width: 17rem;
    max-width: 22rem;
    display: none;
    background-color: var(--pbo-gray-900);
    color: var(--pbo-gray-50);
    border-radius: 0.625rem;
    border: 1px solid var(--pbo-gray-800);
    box-shadow: 0 14px 32px rgba(15, 23, 42, 0.35);
    padding: 0.625rem 0.75rem;
}

.pbo-help-tooltip:hover .pbo-help-tooltip__content,
.pbo-help-tooltip:focus-within .pbo-help-tooltip__content,
.pbo-help-tooltip:focus .pbo-help-tooltip__content {
    display: block;
}

.pbo-help-tooltip--up .pbo-help-tooltip__content {
    top: auto;
    bottom: calc(100% + 0.5rem);
}

.pbo-help-tooltip__title,
.pbo-help-tooltip__body,
.pbo-help-tooltip__line {
    display: block;
}

.pbo-help-tooltip__title {
    font-size: 0.8125rem;
    line-height: 1.125rem;
    font-weight: 600;
}

.pbo-help-tooltip__body,
.pbo-help-tooltip__line {
    margin-top: 0.375rem;
    font-size: 0.75rem;
    line-height: 1.125rem;
    font-weight: 400;
}

.pbo-pool-modal__advanced-config {
    margin-top: 1rem;
    border-radius: 0.75rem;
    background-color: var(--pbo-gray-50);
    padding: 1rem;
}

.pbo-pool-modal__advanced-config-title {
    margin-bottom: 1rem;
    font-size: 0.875rem;
    line-height: 1.25rem;
    font-weight: 600;
    color: var(--pbo-gray-700);
}

.pbo-pool-modal__advanced-config-item {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    padding: 0.75rem;
    border-radius: 0.5rem;
    border: 1px solid var(--pbo-gray-200);
    background-color: var(--pbo-white);
}

.pbo-pool-modal .form-check-input,
.pbo-pool-modal input[type="checkbox"] {
    background-color: var(--pbo-white) !important;
    border-color: var(--pbo-gray-300) !important;
}

.pbo-pool-modal .form-check-input:focus,
.pbo-pool-modal input[type="checkbox"]:focus {
    border-color: var(--pbo-primary-hover) !important;
    box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.25) !important;
}

.pbo-pool-modal .form-check-input:checked,
.pbo-pool-modal input[type="checkbox"]:checked {
    background-color: var(--pbo-primary) !important;
    border-color: var(--pbo-primary) !important;
}

.pbo-pool-modal__advanced-config-item + .pbo-pool-modal__advanced-config-item {
    margin-top: 0.75rem;
}

.pbo-pool-modal__advanced-config-content {
    flex: 1 1 auto;
}

.pbo-pool-modal__advanced-config-label {
    font-size: 0.875rem;
    line-height: 1.25rem;
    font-weight: 500;
    color: var(--pbo-gray-800);
}

.pbo-pool-modal__advanced-config-help {
    margin-top: 0.125rem;
    font-size: 0.75rem;
    line-height: 1rem;
    color: var(--pbo-gray-500);
}

.pbo-modal-footer-actions {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 0.75rem;
    width: 100%;
}

.pbo-modal-footer-actions > * {
    flex: 0 0 auto;
}

.pbo-calendar-entry-modal {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.pbo-calendar-entry-modal__label {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
}

.pbo-calendar-entry-modal__label-content {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
}

.pbo-calendar-entry-modal__label-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
}

.pbo-calendar-entry-modal__label-text {
    display: inline-flex;
    align-items: center;
}

/* Bloque de forzado de nivel (Bloquear tramo de ocupación) */
.pbo-calendar-entry-modal__force {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    padding: 1rem;
    border: 1px solid #e9d5ff;
    border-radius: 0.5rem;
    background-color: #faf5ff;
}

.pbo-calendar-entry-modal__force-heading {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    margin: 0;
    color: #7c3aed;
    font-weight: 600;
}

.pbo-calendar-entry-modal__force-heading .pbo-calendar-entry-modal__label-text {
    color: #7c3aed;
}

.pbo-calendar-entry-modal__force-heading .pbo-calendar-entry-modal__label-icon svg {
    width: 1.125rem;
    height: 1.125rem;
}

/* Etiquetas de los selectores del bloque (Modo de bloqueo, Tramo forzado, ...) en tono morado */
.pbo-calendar-entry-modal__force label {
    color: #7c3aed;
    font-weight: 600;
}

.pbo-calendar-entry-modal__force-range {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.75rem;
}

.pbo-calendar-entry-modal__force-note {
    padding: 0.625rem 0.75rem;
    border-radius: 0.375rem;
    background-color: #f3e8ff;
    color: #6b21a8;
    font-size: 0.8125rem;
    line-height: 1.4;
}

.pbo-modal-action-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    border: 0;
    border-radius: var(--pbo-modal-action-btn-radius, 0.5rem);
    padding: var(--pbo-modal-action-btn-padding, 0.5rem 1rem);
    font-weight: 600;
}

.pbo-modal-action-btn svg {
    width: 1rem;
    height: 1rem;
}

.pbo-modal-action-btn--secondary {
    color: var(--pbo-gray-600);
    background-color: transparent;
}

.pbo-modal-action-btn--secondary:hover {
    background-color: var(--pbo-gray-100);
}

.pbo-modal-action-btn--primary {
    color: var(--pbo-white);
    background-color: var(--pbo-primary);
}

.pbo-modal-action-btn--primary:hover {
    background-color: var(--pbo-primary-hover);
}

.pbo-modal-action-btn--primary[disabled] {
    background-color: var(--pbo-gray-400);
}

.pbo-pool-modal__footer {
    padding: 1rem 1.5rem;
}

.pbo-pool-delete-modal {
    width: 100%;
    background-color: transparent;
    box-shadow: none;
}

.pbo-pool-delete-modal__content {
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.pbo-pool-delete-modal__alert {
    padding: 1rem;
    border-radius: 0.75rem;
    background-color: var(--pbo-danger-light);
    border: 1px solid var(--pbo-danger-border);
}

.pbo-pool-delete-modal__alert-row {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
}

.pbo-pool-delete-modal__icon {
    flex-shrink: 0;
    width: 1.25rem;
    height: 1.25rem;
    color: var(--pbo-danger);
    margin-top: 0.125rem;
}

.pbo-pool-delete-modal__icon > svg {
    width: 100%;
    height: 100%;
}

.pbo-pool-delete-modal__alert-text {
    font-size: 0.875rem;
    line-height: 1.25rem;
    font-weight: 500;
    color: var(--pbo-danger-dark);
}

.pbo-pool-delete-modal__help {
    font-size: 0.875rem;
    line-height: 1.25rem;
    color: var(--pbo-gray-600);
}

.pbo-pool-delete-modal__help strong {
    font-weight: 700;
    color: var(--pbo-gray-900);
}

.pbo-pool-delete-modal__actions {
    display: flex;
    justify-content: flex-end;
    gap: 0.75rem;
    padding-top: 0.5rem;
}

.pbo-pool-delete-modal__cancel-btn,
.pbo-pool-delete-modal__delete-btn {
    border: 0;
    border-radius: var(--pbo-radius-lg);
    padding: var(--pbo-padding-sm);
    font-size: 0.875rem;
    line-height: 1.25rem;
    font-weight: 500;
    transition: background-color var(--pbo-transition-fast), color var(--pbo-transition-fast);
}

.pbo-pool-delete-modal__cancel-btn {
    color: var(--pbo-gray-600);
    background-color: transparent;
}

.pbo-pool-delete-modal__cancel-btn:hover {
    background-color: var(--pbo-gray-100);
    color: var(--pbo-gray-700);
}

.pbo-pool-delete-modal__delete-btn {
    color: var(--pbo-white);
    background-color: var(--pbo-danger);
}

.pbo-pool-delete-modal__delete-btn:hover {
    background-color: var(--pbo-danger-hover);
}

.pbo-pool-delete-modal__used-alert {
    padding: 1rem;
    border-radius: 0.5rem;
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    background-color: var(--pbo-danger-light);
    border: 1px solid var(--pbo-danger-border);
    color: var(--pbo-danger-dark);
}

.pbo-pool-delete-modal__used-alert.alert {
    background-color: var(--pbo-danger-light);
    border-color: var(--pbo-danger-border);
    color: var(--pbo-danger-dark);
    margin-bottom: 0;
}

.pbo-pool-delete-modal__used-alert .alert-body,
.pbo-pool-delete-modal__used-card .alert-body {
    padding: 0;
}

.pbo-pool-delete-modal__used-alert svg {
    width: 1.25rem;
    height: 1.25rem;
    margin-top: 0.125rem;
    color: var(--pbo-danger);
    flex-shrink: 0;
}

.pbo-pool-delete-modal__used-alert-text {
    color: var(--pbo-danger-dark);
    font-size: 0.875rem;
    line-height: 1.25rem;
}

.pbo-pool-delete-modal__used-card {
    padding: 1rem;
    background-color: var(--pbo-gray-50);
    border-radius: 0.5rem;
    border: 1px solid var(--pbo-gray-200);
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    color: var(--pbo-gray-700);
}

.pbo-pool-delete-modal__used-card.alert {
    background-color: var(--pbo-gray-50);
    border-color: var(--pbo-gray-200);
    color: var(--pbo-gray-700);
    margin-bottom: 0;
}

.pbo-pool-delete-modal__used-title-row {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.pbo-pool-delete-modal__used-title-row > svg {
    width: 1.25rem;
    height: 1.25rem;
    color: var(--pbo-gray-500);
    flex-shrink: 0;
}

.pbo-pool-delete-modal__used-title {
    color: var(--pbo-gray-700);
    font-weight: 500;
}

.pbo-pool-delete-modal__used-list {
    margin: 0 0 0 1.75rem;
    padding: 0;
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.pbo-pool-delete-modal__used-item {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    color: var(--pbo-gray-600);
    font-size: 0.875rem;
    line-height: 1.25rem;
}

.pbo-pool-delete-modal__used-bullet {
    width: 0.375rem;
    height: 0.375rem;
    border-radius: 9999px;
    background-color: #60a5fa;
    flex-shrink: 0;
}

.pbo-pool-delete-modal__used-link {
    color: var(--pbo-primary);
    text-decoration: none;
}

.pbo-pool-delete-modal__used-link:hover {
    text-decoration: underline;
}

.pbo-pool-delete-modal__used-help {
    margin-top: 0.5rem !important;
    padding-top: 0.5rem;
    border-top: 1px solid var(--pbo-gray-200);
    color: var(--pbo-gray-500);
    font-size: 0.875rem;
    line-height: 1.25rem;
}

.pbo-pool-delete-modal__used-help-intro,
.pbo-pool-delete-modal__used-help-intro > li {
    color: var(--pbo-gray-700);
    font-size: 0.875rem;
    line-height: 1.25rem;
}

ul.pbo-pool-delete-modal__used-help-intro {
    list-style-type: disc;
    padding-left: 1.5rem;
}

.pbo-pool-delete-modal__used-help-intro strong {
    font-weight: 700;
}

.pbo-pool-delete-modal__used-actions {
    display: flex;
    justify-content: flex-end;
    padding-top: 1rem;
    border-top: 1px solid var(--pbo-gray-200);
}

.pbo-pool-delete-modal__understood-btn {
    border: 0;
    border-radius: var(--pbo-radius-sm);
    padding: var(--pbo-padding-sm);
    font-size: 0.875rem;
    line-height: 1.25rem;
    font-weight: 500;
    color: var(--pbo-white);
    background-color: var(--pbo-gray-600);
    transition: background-color var(--pbo-transition-fast);
}

.pbo-pool-delete-modal__understood-btn:hover {
    background-color: var(--pbo-gray-700);
}

.pbo-pool-capacity-modal {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}

.pbo-pool-capacity-modal__content {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    max-height: 70vh;
    overflow-y: auto;
    padding-right: 0.25rem;
}

.pbo-pool-capacity-modal__alert {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    padding: 1rem;
    border: 1px solid #fcd34d;
    border-radius: 0.75rem;
    background-color: #fffbeb;
}

.pbo-pool-capacity-modal__alert > svg {
    width: 1.25rem;
    height: 1.25rem;
    margin-top: 0.125rem;
    flex-shrink: 0;
    color: var(--pbo-warning);
}

.pbo-pool-capacity-modal__alert-text {
    font-size: 0.875rem;
    line-height: 1.5;
    color: #92400e;
}

.pbo-pool-capacity-modal__card {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    padding: 1rem;
    border: 1px solid var(--pbo-gray-300);
    border-radius: 0.75rem;
    background-color: var(--pbo-gray-50);
}

.pbo-pool-capacity-modal__title-row {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.pbo-pool-capacity-modal__title-row > svg {
    width: 1.25rem;
    height: 1.25rem;
    flex-shrink: 0;
    color: var(--pbo-gray-500);
}

.pbo-pool-capacity-modal__title {
    font-size: 0.9375rem;
    line-height: 1.25rem;
    font-weight: 600;
    color: var(--pbo-gray-700);
}

.pbo-pool-capacity-modal__strategy-list,
.pbo-pool-capacity-modal__impact-list {
    margin: 0;
    color: var(--pbo-gray-600);
    font-size: 0.875rem;
}

.pbo-pool-capacity-modal__strategy-list {
    list-style: none;
    padding-left: 1.75rem;
}

.pbo-pool-capacity-modal__strategy-item {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.pbo-pool-capacity-modal__strategy-bullet {
    width: 0.375rem;
    height: 0.375rem;
    border-radius: 9999px;
    background-color: #60a5fa;
    flex-shrink: 0;
}

.pbo-pool-capacity-modal__impact-list {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    padding-top: 0.75rem;
    padding-left: 1.75rem;
    border-top: 1px solid var(--pbo-gray-300);
}

.pbo-pool-capacity-modal__actions {
    display: flex;
    justify-content: flex-end;
    gap: 0.75rem;
    padding-top: 1rem;
    border-top: 1px solid var(--pbo-gray-200);
}

.pbo-pool-capacity-modal__cancel-btn,
.pbo-pool-capacity-modal__confirm-btn {
    border: 0;
    border-radius: var(--pbo-radius-lg);
    padding: var(--pbo-padding-md);
    font-size: 0.875rem;
    font-weight: 600;
}

.pbo-pool-capacity-modal__cancel-btn {
    color: var(--pbo-gray-600);
    background-color: transparent;
}

.pbo-pool-capacity-modal__cancel-btn:hover {
    background-color: var(--pbo-gray-100);
}

.pbo-pool-capacity-modal__confirm-btn {
    color: var(--pbo-white);
    background-color: var(--pbo-warning);
}

.pbo-pool-capacity-modal__confirm-btn:hover {
    background-color: var(--pbo-warning-hover);
}

/* Shared provider/category/product tree */
.pbo-tree {
    border: 1px solid var(--pbo-gray-200);
    border-radius: 0.75rem;
    overflow: hidden;
}

.pbo-tree__header {
    background-color: var(--pbo-gray-50);
    border-bottom: 1px solid var(--pbo-gray-200);
    padding: 0.5rem 0.75rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
}

.pbo-tree__title {
    font-size: 0.875rem;
    line-height: 1.25rem;
    font-weight: 500;
    color: var(--pbo-gray-700);
}

.pbo-tree__summary {
    font-size: 0.75rem;
    line-height: 1rem;
    color: var(--pbo-gray-500);
}

.pbo-tree__body {
    max-height: 18rem;
    overflow-y: auto;
    padding: 0.25rem;
    background: transparent;
}

.pbo-tree__empty {
    padding: 0.5rem;
    font-size: 0.875rem;
    line-height: 1.25rem;
    color: var(--pbo-gray-500);
}

.pbo-tree__node-content {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
}

.pbo-tree__row {
    --pbo-tree-depth: 0;
    min-height: 2rem;
    padding: 0.25rem 0.375rem 0.25rem calc(0.375rem + var(--pbo-tree-depth) * 1.25rem);
    border-radius: 0.375rem;
    display: flex;
    align-items: center;
    gap: 0.375rem;
    background: transparent;
}

.pbo-tree__row:hover {
    background-color: var(--pbo-gray-50);
}

.pbo-tree__toggle-btn {
    width: 1rem !important;
    height: 1rem !important;
    min-width: 1rem !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    color: var(--pbo-gray-400) !important;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.pbo-tree__toggle-btn:hover {
    color: var(--pbo-gray-500) !important;
}

.pbo-tree__toggle-btn:focus,
.pbo-tree__toggle-btn:focus-visible,
.pbo-tree__toggle-btn:active {
    outline: none !important;
    box-shadow: none !important;
}

.pbo-tree__toggle-icon {
    width: 0.75rem;
    height: 0.75rem;
}

.pbo-tree__toggle-placeholder {
    width: 1rem;
    min-width: 1rem;
}

.pbo-tree__checkbox {
    width: 1rem !important;
    height: 1rem !important;
    min-width: 1rem !important;
    padding: 0 !important;
    border: 1px solid var(--pbo-gray-300) !important;
    border-radius: 0.25rem !important;
    background: var(--pbo-white) !important;
    color: var(--pbo-white) !important;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.pbo-tree__checkbox:hover {
    border-color: #93c5fd !important;
}

.pbo-tree__checkbox--checked {
    background: var(--pbo-primary-hover) !important;
    border-color: var(--pbo-primary-hover) !important;
    color: var(--pbo-white) !important;
}

.pbo-tree__checkbox--indeterminate {
    background: #dbeafe !important;
    border-color: #60a5fa !important;
    color: var(--pbo-primary) !important;
}

.pbo-tree__checkbox-icon {
    width: 0.625rem;
    height: 0.625rem;
}

.pbo-tree__provider-name {
    font-size: 0.875rem;
    line-height: 1.25rem;
    font-weight: 500;
    color: var(--pbo-gray-800);
}

.pbo-tree__category-name,
.pbo-tree__product-name {
    font-size: 0.875rem;
    line-height: 1.25rem;
    color: var(--pbo-gray-600);
}

.pbo-tree__count {
    font-size: 0.75rem;
    line-height: 1rem;
    color: var(--pbo-gray-400);
}

.pbo-tree__level-icon {
    width: 0.875rem;
    color: var(--pbo-gray-500);
}

.pbo-tree__level-icon--provider {
    color: var(--pbo-primary);
}

.pbo-tree__level-icon--category {
    color: var(--pbo-warning-hover);
}

.pbo-tree__level-icon--product {
    color: #16a34a;
}

@media (max-width: 1024px) {
    .pbo-pool-modal {
        max-height: calc(100vh - 1rem);
        border-radius: 0;
    }

    .pbo-pool-modal__header {
        border-radius: 0;
    }

    .pbo-pool-modal__form-grid {
        grid-template-columns: 1fr;
    }

    .pbo-help-tooltip__content {
        left: 0;
        min-width: 14rem;
        max-width: min(18rem, calc(100vw - 2rem));
    }
}

/* PriceByOccupancy - Strategy create modal */
.pbo-strategy-create-modal {
    width: 100%;
    display: flex;
    flex-direction: column;
    border-radius: 1rem;
    background-color: var(--pbo-white);
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
}

.pbo-strategy-create-modal__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 1rem 1.5rem;
    border-bottom: 1px solid var(--pbo-gray-200);
}

.pbo-strategy-create-modal__title {
    margin: 0;
    font-size: 1.25rem;
    line-height: 1.75rem;
    font-weight: 600;
    color: var(--pbo-gray-900);
}

.pbo-strategy-create-modal__close-btn {
    width: 1.875rem;
    height: 1.875rem;
    min-width: 1.875rem;
    border: 0;
    border-radius: 0.5rem;
    padding: 0;
    color: var(--pbo-gray-400);
    background-color: transparent;
}

.pbo-strategy-create-modal__close-btn:hover {
    color: var(--pbo-gray-600);
    background-color: var(--pbo-gray-100);
}

.pbo-strategy-create-modal__body {
    padding: 1.5rem 1.5rem 1rem;
}

.pbo-strategy-create-modal__form {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}

.pbo-strategy-create-modal__form > * {
    margin-bottom: 0 !important;
}

.pbo-strategy-create-modal__actions {
    display: flex;
    justify-content: flex-end;
    gap: 0.75rem;
    padding: 0.75rem 1.5rem 1.5rem;
}

.pbo-strategy-create-modal__input,
.pbo-strategy-create-modal__input.form-control,
.pbo-strategy-create-modal__input.form-select,
.pbo-strategy-create-modal__input.custom-select,
.pbo-strategy-create-modal__input textarea,
.pbo-strategy-create-modal__input input,
.pbo-strategy-create-modal__input select {
    width: 100%;
    border: 1px solid var(--pbo-gray-300);
    border-radius: 0.5rem;
    padding: 0.5rem 1rem;
    background-color: var(--pbo-white);
    color: var(--pbo-gray-900);
    font-size: 0.875rem;
    line-height: 1.25rem;
}

.pbo-strategy-create-modal__input textarea {
    min-height: 4.5rem;
}

.pbo-strategy-create-modal__cancel-btn,
.pbo-strategy-create-modal__submit-btn {
    border: 0;
    border-radius: var(--pbo-radius-sm);
    padding: var(--pbo-padding-sm);
    font-size: 0.875rem;
    line-height: 1.25rem;
    font-weight: 500;
}

.pbo-strategy-create-modal__cancel-btn {
    color: var(--pbo-gray-600);
    background-color: transparent;
}

.pbo-strategy-create-modal__cancel-btn:hover {
    background-color: var(--pbo-gray-100);
}

.pbo-strategy-create-modal__submit-btn {
    color: var(--pbo-white);
    background-color: var(--pbo-primary);
}

.pbo-strategy-create-modal__submit-btn:hover {
    background-color: var(--pbo-primary-hover);
}

/* PriceByOccupancy - Strategy upsert page */
.pbo-strategy-upsert-page {
    flex: 1 1 auto;
    padding: 1.5rem;
    overflow: auto;
}

.pbo-strategy-upsert-page__container {
    width: 100%;
    max-width: 80rem;
    margin: 0 auto;
}

.pbo-strategy-upsert-page__back-wrap {
    margin-bottom: 1.5rem;
}

button.pbo-strategy-upsert-page__back-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--pbo-gray-600) !important;
    font-size: 0.875rem;
    line-height: 1.25rem;
    font-weight: 500;
    box-shadow: none !important;
}

button.pbo-strategy-upsert-page__back-btn:hover {
    color: var(--pbo-gray-900) !important;
    background: transparent !important;
}

.pbo-strategy-upsert-page__back-btn svg {
    width: 1rem;
    height: 1rem;
    flex-shrink: 0;
}

.pbo-strategy-upsert-page__header {
    margin-bottom: 1.5rem;
}

.pbo-strategy-upsert-page__header-content {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
}

.pbo-strategy-upsert-page__header-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0.75rem;
    border-radius: 0.75rem;
    background: rgba(59, 130, 246, 0.1);
    color: var(--pbo-primary-hover);
    flex-shrink: 0;
}

.pbo-strategy-upsert-page__header-icon svg {
    width: 1.75rem;
    height: 1.75rem;
}

.pbo-strategy-upsert-page__header-text {
    min-width: 0;
}

.pbo-strategy-upsert-page__title {
    margin: 0;
    color: var(--pbo-gray-900);
    font-size: 1.5rem;
    line-height: 2rem;
    font-weight: 700;
}

.pbo-strategy-upsert-page__subtitle {
    margin-top: 0.25rem;
    color: var(--pbo-gray-500);
    font-size: 0.875rem;
    line-height: 1.25rem;
}

.pbo-strategy-upsert-page__card {
    border: 1px solid var(--pbo-gray-200);
    border-radius: 0.75rem;
    background-color: var(--pbo-white);
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.06);
    overflow: hidden;
}

.pbo-strategy-upsert-page__card-body {
    padding: 1.5rem;
}

.pbo-strategy-upsert-page__section {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}

.pbo-strategy-upsert-page__section-title-row {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    color: var(--pbo-primary);
}

.pbo-strategy-upsert-page__section-title-row svg {
    width: 1.25rem;
    height: 1.25rem;
    flex-shrink: 0;
}

.pbo-strategy-upsert-page__section-title {
    margin: 0;
    color: var(--pbo-gray-900);
    font-size: 1.125rem;
    line-height: 1.75rem;
    font-weight: 600;
}

.pbo-strategy-upsert-page__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.pbo-strategy-upsert-page__field {
    min-width: 0;
}

.pbo-strategy-upsert-page__field--full {
    width: 100%;
}

.pbo-strategy-upsert-page__field-label {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 0.25rem;
    color: var(--pbo-gray-700);
    font-size: 0.875rem;
    line-height: 1.25rem;
    font-weight: 500;
}

.pbo-strategy-upsert-page__field-label-content {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
}

.pbo-strategy-upsert-page__input {
    width: 100%;
}

.pbo-strategy-upsert-page .field {
    margin-bottom: 0;
}

.pbo-strategy-upsert-page .field-label {
    margin-bottom: 0.25rem;
    color: var(--pbo-gray-700);
    font-size: 0.875rem;
    line-height: 1.25rem;
    font-weight: 500;
}

.pbo-strategy-upsert-page .pbo-strategy-upsert-page__input,
.pbo-strategy-upsert-page .pbo-strategy-upsert-page__input.form-control,
.pbo-strategy-upsert-page .pbo-strategy-upsert-page__input.form-select,
.pbo-strategy-upsert-page .pbo-strategy-upsert-page__input.custom-select,
.pbo-strategy-upsert-page .pbo-strategy-upsert-page__input textarea,
.pbo-strategy-upsert-page .pbo-strategy-upsert-page__input input,
.pbo-strategy-upsert-page .pbo-strategy-upsert-page__input select {
    width: 100%;
    border: 1px solid var(--pbo-gray-300) !important;
    border-radius: 0.5rem !important;
    padding: 0.5rem 1rem !important;
    background: var(--pbo-white) !important;
    color: var(--pbo-gray-900) !important;
    font-size: 0.875rem;
    line-height: 1.25rem;
    box-shadow: none !important;
}

.pbo-strategy-upsert-page .pbo-strategy-upsert-page__input textarea,
.pbo-strategy-upsert-page .pbo-strategy-upsert-page__input textarea.form-control,
.pbo-strategy-upsert-page textarea.pbo-strategy-upsert-page__input {
    min-height: 4.5rem;
}

.pbo-strategy-upsert-page__actions {
    display: flex;
    justify-content: flex-end;
    gap: 0.75rem;
    padding: 0 1.5rem 1.5rem;
}

button.pbo-strategy-upsert-page__cancel-btn,
button.pbo-strategy-upsert-page__submit-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    border: 0;
    border-radius: 0.5rem;
    padding: 0.5rem 1rem;
    font-size: 0.875rem;
    line-height: 1.25rem;
    font-weight: 500;
    box-shadow: none !important;
}

button.pbo-strategy-upsert-page__cancel-btn {
    color: var(--pbo-gray-600) !important;
    background: transparent !important;
}

button.pbo-strategy-upsert-page__cancel-btn:hover {
    background: var(--pbo-gray-100) !important;
}

button.pbo-strategy-upsert-page__submit-btn {
    color: var(--pbo-white) !important;
    background: var(--pbo-primary) !important;
}

button.pbo-strategy-upsert-page__submit-btn:hover {
    background: var(--pbo-primary-hover) !important;
}

.pbo-strategy-upsert-page__submit-btn svg {
    width: 1rem;
    height: 1rem;
    flex-shrink: 0;
}



.pbo-page-shell,
.pbo-strategy-shell {
    flex: 1 1 auto;
    padding: 1.5rem;
    overflow: auto;
}

.pbo-page-shell__container,
.pbo-strategy-shell__container {
    width: 100%;
    max-width: 80rem;
    margin: 0 auto;
}

.pbo-strategy-shell__back-wrap {
    margin-bottom: 1.5rem;
}

button.pbo-strategy-shell__back-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--pbo-gray-600);
    font-size: 0.875rem;
    line-height: 1.25rem;
    font-weight: 500;
    box-shadow: none;
}

button.pbo-strategy-shell__back-btn:hover {
    color: var(--pbo-gray-900);
    background: transparent;
}

.pbo-strategy-shell__back-btn svg {
    width: 1rem;
    height: 1rem;
    flex-shrink: 0;
}

.pbo-strategy-shell__header {
    margin-bottom: 1.5rem;
}

.pbo-strategy-shell__header-content {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
}

.pbo-strategy-shell__header-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.75rem;
    border-radius: 0.75rem;
    background: rgba(59, 130, 246, 0.1);
    color: var(--pbo-primary-hover);
    flex-shrink: 0;
}

.pbo-strategy-shell__header-icon svg {
    width: 1.75rem;
    height: 1.75rem;
}

.pbo-strategy-shell__title {
    margin: 0;
    color: var(--pbo-gray-900);
    font-size: 1.5rem;
    line-height: 2rem;
    font-weight: 700;
}

.pbo-strategy-shell__subtitle {
    margin: 0.25rem 0 0;
    color: var(--pbo-gray-500);
    font-size: 0.875rem;
    line-height: 1.25rem;
}
.pbo-strategy-shell__header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
}

.pbo-strategy-shell__status {
    display: inline-flex;
    align-items: center;
    white-space: nowrap;
    padding: 0.125rem 0.625rem;
    border-radius: 9999px;
    border: 1px solid transparent;
    font-size: 0.75rem;
    line-height: 1rem;
    font-weight: 500;
}

.pbo-strategy-shell__status--active {
    border-color: #86efac;
    background-color: #dcfce7;
    color: #15803d;
}

.pbo-strategy-shell__status--inactive {
    border-color: #fcd34d;
    background-color: var(--pbo-warning-light);
    color: #b45309;
}

.pbo-strategy-tabs-shell {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.pbo-strategy-tabs-shell__actions {
    position: absolute;
    top: 0.5rem;
    right: 1rem;
    z-index: 2;
    display: flex;
    justify-content: flex-end;
}

.pbo-strategy-tabs {
    border: 1px solid var(--pbo-gray-200);
    border-radius: 0.75rem;
    background: var(--pbo-white);
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.06);
    overflow: hidden;
}

ul.pbo-strategy-tabs {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0;
    margin-bottom: 0;
    padding: 0 15rem 0 0;
    border-bottom: 1px solid var(--pbo-gray-200);
    background: var(--pbo-white);
}

ul.pbo-strategy-tabs > li {
    margin-right: 0 !important;
    margin-bottom: 0;
}

ul.pbo-strategy-tabs > li > a[role="tab"] {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 1rem 1.5rem;
    border: 0;
    border-bottom: 2px solid transparent;
    border-radius: 0;
    background: transparent;
    color: var(--pbo-gray-500);
    font-size: 0.875rem;
    line-height: 1.25rem;
    font-weight: 500;
    text-decoration: none;
    box-shadow: none;
    transition: color var(--pbo-transition-fast), background-color var(--pbo-transition-fast), border-color var(--pbo-transition-fast);
}

ul.pbo-strategy-tabs > li > a[role="tab"]:hover {
    color: var(--pbo-gray-700);
    background: var(--pbo-gray-50);
}

ul.pbo-strategy-tabs > li > a[role="tab"][aria-selected="true"] {
    border-bottom-color: var(--pbo-primary);
    background: var(--pbo-tab-active-bg);
    color: var(--pbo-primary);
}

ul.pbo-strategy-tabs > li > a[role="tab"][aria-selected="true"] .pbo-strategy-tabs__tab-label,
ul.pbo-strategy-tabs > li > a[role="tab"][aria-selected="true"] .pbo-strategy-tabs__tab-label svg {
    color: inherit;
}

.pbo-strategy-tabs__tab-label {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
}

.pbo-strategy-tabs__tab-label svg {
    width: 1rem;
    height: 1rem;
    flex-shrink: 0;
}

.pbo-strategy-tabs__calendar-link {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    border: 1px solid var(--pbo-primary-border);
    border-radius: 0.75rem;
    padding: 0.5rem 1rem;
    color: var(--pbo-primary);
    background: var(--pbo-white);
    font-size: 0.875rem;
    line-height: 1.25rem;
    font-weight: 500;
    text-decoration: none;
    transition: background-color var(--pbo-transition-fast), color var(--pbo-transition-fast);
}

.pbo-strategy-tabs__calendar-link:hover {
    color: var(--pbo-primary);
    background: var(--pbo-primary-light);
}

.pbo-strategy-tabs__calendar-link svg {
    width: 1rem;
    height: 1rem;
    flex-shrink: 0;
}

.pbo-strategy-tabs .tab-content {
    padding: 1.5rem;
}

.pbo-strategy-tabs__panel {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.pbo-strategy-tabs__panel-header {
    max-width: 42rem;
}

.pbo-strategy-tabs__panel-title,
.pbo-strategy-tabs__placeholder-title {
    margin: 0;
    color: var(--pbo-gray-900);
    font-size: 1.125rem;
    line-height: 1.75rem;
    font-weight: 600;
}

.pbo-strategy-tabs__panel-subtitle {
    margin: 0.25rem 0 0;
    color: var(--pbo-gray-500);
    font-size: 0.875rem;
    line-height: 1.25rem;
}

.pbo-strategy-tabs__placeholder {
    min-height: 18rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 1rem;
    border: 1px dashed var(--pbo-gray-200);
    border-radius: 0.75rem;
    background: var(--pbo-gray-50);
    text-align: center;
}

.pbo-strategy-tabs__placeholder-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 3rem;
    height: 3rem;
    border-radius: 0.75rem;
    background: var(--pbo-primary-light);
    color: var(--pbo-primary);
}

.pbo-strategy-tabs__placeholder-icon svg {
    width: 1.5rem;
    height: 1.5rem;
}

@media (max-width: 767px) {
    .pbo-strategy-upsert-page__grid {
        grid-template-columns: 1fr;
    }

    .pbo-strategy-upsert-page__actions {
        flex-wrap: wrap;
    }

    .pbo-strategy-tabs-shell__actions {
        position: static;
        width: 100%;
        margin-bottom: 0.75rem;
    }

    ul.pbo-strategy-tabs {
        width: 100%;
        padding: 0;
    }

    ul.pbo-strategy-tabs > li {
        flex: 1 1 auto;
    }

    ul.pbo-strategy-tabs > li > a[role="tab"] {
        justify-content: center;
        width: 100%;
    }

    .pbo-strategy-tabs__calendar-link {
        width: 100%;
        justify-content: center;
    }
}
/*****************************************************************************
 * PriceByOccupancy - Pool Components (moved from .razor.css files)
 *****************************************************************************/

/* PriceByOccupancy - Pool delete modal */
.pbo-pool-delete-modal {
    width: 100%;
    background-color: transparent;
    box-shadow: none;
}

.pbo-pool-delete-modal__content {
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.pbo-pool-delete-modal__alert {
    padding: 1rem;
    border-radius: 0.75rem;
    background-color: var(--pbo-danger-light);
    border: 1px solid var(--pbo-danger-border);
}

.pbo-pool-delete-modal__alert-row {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
}

.pbo-pool-delete-modal__icon {
    flex-shrink: 0;
    width: 1.25rem;
    height: 1.25rem;
    color: var(--pbo-danger);
    margin-top: 0.125rem;
}

.pbo-pool-delete-modal__icon > svg {
    width: 100%;
    height: 100%;
}

.pbo-pool-delete-modal__alert-text {
    font-size: 0.875rem;
    line-height: 1.25rem;
    font-weight: 500;
    color: var(--pbo-danger-dark);
}

.pbo-pool-delete-modal__help {
    font-size: 0.875rem;
    line-height: 1.25rem;
    color: var(--pbo-gray-600);
}

.pbo-pool-delete-modal__help strong {
    font-weight: 700;
    color: var(--pbo-gray-900);
}

.pbo-pool-delete-modal__actions {
    display: flex;
    justify-content: flex-end;
    gap: 0.75rem;
    padding-top: 0.5rem;
}

.pbo-pool-delete-modal__cancel-btn,
.pbo-pool-delete-modal__delete-btn {
    border: 0;
    border-radius: 0.75rem;
    padding: 0.5rem 1rem;
    font-size: 0.875rem;
    line-height: 1.25rem;
    font-weight: 500;
    transition: background-color 0.2s ease, color 0.2s ease;
}

.pbo-pool-delete-modal__cancel-btn {
    color: var(--pbo-gray-600);
    background-color: transparent;
}

.pbo-pool-delete-modal__cancel-btn:hover {
    background-color: var(--pbo-gray-100);
    color: var(--pbo-gray-700);
}

.pbo-pool-delete-modal__delete-btn {
    color: var(--pbo-white);
    background-color: var(--pbo-danger);
}

.pbo-pool-delete-modal__delete-btn:hover {
    background-color: var(--pbo-danger-hover);
}

.pbo-pool-delete-modal__used-alert {
    padding: 1rem;
    border-radius: 0.5rem;
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    background-color: var(--pbo-danger-light);
    border: 1px solid var(--pbo-danger-border);
}

.pbo-pool-delete-modal__used-alert > svg {
    width: 1.25rem;
    height: 1.25rem;
    margin-top: 0.125rem;
    color: var(--pbo-danger);
    flex-shrink: 0;
}

.pbo-pool-delete-modal__used-alert-text {
    color: var(--pbo-danger-dark);
    font-size: 0.875rem;
    line-height: 1.25rem;
}

.pbo-pool-delete-modal__used-card {
    padding: 1rem;
    background-color: var(--pbo-gray-50);
    border-radius: 0.5rem;
    border: 1px solid var(--pbo-gray-200);
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.pbo-pool-delete-modal__used-title-row {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.pbo-pool-delete-modal__used-title-row > svg {
    width: 1.25rem;
    height: 1.25rem;
    color: var(--pbo-gray-500);
    flex-shrink: 0;
}

.pbo-pool-delete-modal__used-title {
    color: var(--pbo-gray-700);
    font-weight: 500;
}

.pbo-pool-delete-modal__used-list {
    margin: 0 0 0 1.75rem;
    padding: 0;
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.pbo-pool-delete-modal__used-item {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    color: var(--pbo-gray-600);
    font-size: 0.875rem;
    line-height: 1.25rem;
}

.pbo-pool-delete-modal__used-bullet {
    width: 0.375rem;
    height: 0.375rem;
    border-radius: 9999px;
    background-color: #60a5fa;
    flex-shrink: 0;
}

.pbo-pool-delete-modal__used-link {
    color: var(--pbo-primary);
    text-decoration: none;
}

.pbo-pool-delete-modal__used-link:hover {
    text-decoration: underline;
}

.pbo-pool-delete-modal__used-help {
    margin-top: 0.5rem !important;
    padding-top: 0.5rem;
    border-top: 1px solid var(--pbo-gray-200);
    color: var(--pbo-gray-500);
    font-size: 0.875rem;
    line-height: 1.25rem;
}

.pbo-pool-delete-modal__used-help-intro,
.pbo-pool-delete-modal__used-help-intro > li {
    color: var(--pbo-gray-700);
    font-size: 0.875rem;
    line-height: 1.25rem;
}

.pbo-pool-delete-modal__used-actions {
    display: flex;
    justify-content: flex-end;
    padding-top: 1rem;
    border-top: 1px solid var(--pbo-gray-200);
}

.pbo-pool-delete-modal__understood-btn {
    border: 0;
    border-radius: 0.5rem;
    padding: 0.5rem 1rem;
    font-size: 0.875rem;
    line-height: 1.25rem;
    font-weight: 500;
    color: var(--pbo-white);
    background-color: var(--pbo-gray-600);
    transition: background-color 0.2s ease;
}

.pbo-pool-delete-modal__understood-btn:hover {
    background-color: var(--pbo-gray-700);
}

/* PriceByOccupancy - Pool item */
.pbo-pool-item__row {
    padding: 1rem;
    cursor: pointer;
    transition: background-color 0.2s ease;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

.pbo-pool-item__row:hover {
    background-color: var(--pbo-gray-50);
}

.pbo-pool-item__left {
    display: flex;
    align-items: center;
    gap: 1rem;
    min-width: 0;
}

.pbo-pool-item__icon-box {
    width: 3rem;
    height: 3rem;
    border-radius: 0.75rem;
    background-color: #dcfce7;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.pbo-pool-item__icon-box > svg {
    width: 1.5rem;
    height: 1.5rem;
    color: #16a34a;
}

.pbo-pool-item__title-row {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.pbo-pool-item__title {
    font-size: 1rem;
    line-height: 1.5rem;
    font-weight: 600;
    color: var(--pbo-gray-900);
}

.pbo-pool-item__scope {
    display: inline-flex;
    align-items: center;
    padding: 0.125rem 0.625rem;
    border-radius: 9999px;
    border: 1px solid transparent;
    font-size: 0.75rem;
    line-height: 1rem;
    font-weight: 500;
}

.pbo-pool-item__scope--day {
    border-color: var(--pbo-primary-border);
    background-color: #dbeafe;
    color: #1d4ed8;
}

.pbo-pool-item__scope--session {
    border-color: var(--pbo-warning-border);
    background-color: var(--pbo-warning-light);
    color: #b45309;
}

.pbo-pool-item__meta {
    margin-top: 0.125rem;
    font-size: 0.875rem;
    line-height: 1.25rem;
    color: var(--pbo-gray-500);
}

.pbo-pool-item__actions {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    flex-shrink: 0;
}

.pbo-pool-item__action {
    width: 2rem;
    height: 2rem;
    border-radius: 0.5rem;
    color: var(--pbo-gray-400);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: color 0.2s ease, background-color 0.2s ease;
}

.pbo-pool-item__action svg {
    width: 1rem;
    min-width: 1rem;
    height: 1rem;
    min-height: 1rem;
    flex: 0 0 1rem;
    cursor: pointer;
}

.pbo-pool-item__action--edit:hover {
    color: var(--pbo-primary);
    background-color: var(--pbo-primary-light);
}

.pbo-pool-item__action--remove:hover {
    color: var(--pbo-danger-hover);
    background-color: var(--pbo-danger-light);
}

.pbo-pool-item__chevron {
    width: 1.5rem;
    height: 1.5rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--pbo-gray-400);
}

.pbo-pool-item__chevron > svg {
    width: 1.25rem;
    height: 1.25rem;
}

.pbo-pool-item__details-wrap {
    padding: 0 1rem 1rem;
}

.pbo-pool-item__details {
    background-color: var(--pbo-gray-50);
    border-radius: 0.5rem;
    padding: 1rem;
}

.pbo-pool-item__description-box {
    margin-bottom: 1rem;
    padding: 0.75rem;
    border: 1px solid var(--pbo-gray-200);
    border-radius: 0.5rem;
    background-color: var(--pbo-white);
}

.pbo-pool-item__description-text {
    font-size: 0.875rem;
    line-height: 1.25rem;
    color: var(--pbo-gray-600);
    font-style: italic;
}

.pbo-pool-item__filters-title {
    margin-bottom: 0.75rem;
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.875rem;
    line-height: 1.25rem;
    font-weight: 500;
    color: var(--pbo-gray-700);
}

.pbo-pool-item__filters-title > svg {
    width: 1rem;
    height: 1rem;
    color: var(--pbo-gray-500);
}

.pbo-pool-item__filters-card {
    background-color: var(--pbo-white);
    border: 1px solid var(--pbo-gray-200);
    border-radius: 0.5rem;
    padding: 0.75rem;
}

.pbo-pool-item__products-line {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
}

.pbo-pool-item__products-line > svg {
    width: 1rem;
    height: 1rem;
    color: var(--pbo-gray-400);
}

.pbo-pool-item__products-text {
    font-size: 0.875rem;
    line-height: 1.25rem;
    font-weight: 500;
    color: var(--pbo-gray-700);
}

.pbo-pool-item__flags-line {
    margin-top: 0.5rem;
    padding-top: 0.5rem;
    border-top: 1px solid var(--pbo-gray-100);
    display: flex;
    align-items: center;
    gap: 1rem;
    flex-wrap: wrap;
}

.pbo-pool-item__flag {
    font-size: 0.75rem;
    line-height: 1rem;
    color: #15803d;
}

.pbo-pool-item__flag::before {
    content: "\2713\0020";
}

/* PriceByOccupancy - Pool capacity changed modal */
.pbo-pool-capacity-modal {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}

.pbo-pool-capacity-modal__content {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    max-height: 70vh;
    overflow-y: auto;
    padding-right: 0.25rem;
}

.pbo-pool-capacity-modal__alert {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    padding: 1rem;
    border: 1px solid #fcd34d;
    border-radius: 0.75rem;
    background-color: #fffbeb;
}

.pbo-pool-capacity-modal__alert > svg {
    width: 1.25rem;
    height: 1.25rem;
    margin-top: 0.125rem;
    flex-shrink: 0;
    color: var(--pbo-warning);
}

.pbo-pool-capacity-modal__alert-text {
    font-size: 0.875rem;
    line-height: 1.5;
    color: #92400e;
}

.pbo-pool-capacity-modal__card {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    padding: 1rem;
    border: 1px solid var(--pbo-gray-300);
    border-radius: 0.75rem;
    background-color: var(--pbo-gray-50);
}

.pbo-pool-capacity-modal__title-row {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.pbo-pool-capacity-modal__title-row > svg {
    width: 1.25rem;
    height: 1.25rem;
    flex-shrink: 0;
    color: var(--pbo-gray-500);
}

.pbo-pool-capacity-modal__title {
    font-size: 0.9375rem;
    line-height: 1.25rem;
    font-weight: 600;
    color: var(--pbo-gray-700);
}

.pbo-pool-capacity-modal__strategy-list,
.pbo-pool-capacity-modal__impact-list {
    margin: 0;
    color: var(--pbo-gray-600);
    font-size: 0.875rem;
}

.pbo-pool-capacity-modal__strategy-list {
    list-style: none;
    padding-left: 1.75rem;
}

.pbo-pool-capacity-modal__strategy-item {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.pbo-pool-capacity-modal__strategy-bullet {
    width: 0.375rem;
    height: 0.375rem;
    border-radius: 9999px;
    background-color: #60a5fa;
    flex-shrink: 0;
}

.pbo-pool-capacity-modal__impact-list {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    padding-top: 0.75rem;
    padding-left: 1.75rem;
    border-top: 1px solid var(--pbo-gray-300);
}

.pbo-pool-capacity-modal__actions {
    display: flex;
    justify-content: flex-end;
    gap: 0.75rem;
    padding-top: 1rem;
    border-top: 1px solid var(--pbo-gray-200);
}

.pbo-pool-capacity-modal__cancel-btn,
.pbo-pool-capacity-modal__confirm-btn {
    border: 0;
    border-radius: 0.75rem;
    padding: 0.625rem 1rem;
    font-size: 0.875rem;
    font-weight: 600;
}

.pbo-pool-capacity-modal__cancel-btn {
    color: var(--pbo-gray-600);
    background-color: transparent;
}

.pbo-pool-capacity-modal__cancel-btn:hover {
    background-color: var(--pbo-gray-100);
}

.pbo-pool-capacity-modal__confirm-btn {
    color: var(--pbo-white);
    background-color: var(--pbo-warning);
}

.pbo-pool-capacity-modal__confirm-btn:hover {
    background-color: var(--pbo-warning-hover);
}

/* PriceByOccupancy - Pool upsert modal */
.pbo-pool-modal {
    width: 100%;
    max-height: calc(100vh - 3.5rem);
    border-radius: 1rem;
    background-color: var(--pbo-white);
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
    display: flex;
    flex-direction: column;
    overflow: visible;
}

.pbo-pool-modal__header {
    border-bottom: 1px solid var(--pbo-gray-200);
    padding: 1rem 1.5rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    border-top-left-radius: 1rem;
    border-top-right-radius: 1rem;
}

.pbo-pool-modal__title {
    margin: 0;
    font-size: 1.25rem;
    line-height: 1.75rem;
    font-weight: 600;
    color: var(--pbo-gray-900);
}

.pbo-pool-modal__close-btn {
    width: 1.875rem;
    height: 1.875rem;
    min-width: 1.875rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 0.5rem;
    color: var(--pbo-gray-400);
    background-color: transparent;
    border: 0;
    padding: 0;
}

.pbo-pool-modal__close-btn:hover {
    color: var(--pbo-gray-600);
    background-color: var(--pbo-gray-100);
}

.pbo-pool-modal__body {
    flex: 1 1 auto;
    overflow-y: auto;
    padding: 1.5rem;
}

.pbo-pool-modal__form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 1rem;
    row-gap: 0.5rem;
}

.pbo-pool-modal__field {
    margin-bottom: 0 !important;
}

.pbo-pool-modal__label {
    margin-bottom: 0.25rem;
    font-size: 0.875rem;
    line-height: 1.25rem;
    font-weight: 500;
    color: var(--pbo-gray-700);
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.pbo-pool-modal__label-optional {
    color: var(--pbo-gray-400);
    font-weight: 400;
}

/* Estilos genéricos para inputs/selects en módulo PBO */
.pbo-input {
    width: 100%;
}

.pbo-input input,
.pbo-input select,
.pbo-input textarea,
.pbo-input .form-control,
.pbo-input .custom-select,
.pbo-input .form-select {
    background-color: var(--pbo-white) !important;
    color: var(--pbo-gray-900);
    border-color: var(--pbo-gray-300) !important;
    border-radius: 0.5rem;
    padding: 0.5rem 0.875rem;
    font-size: 0.875rem;
    line-height: 1.25rem;
}

.pbo-input .form-control:not(:disabled):not([readonly]),
.pbo-input input:not(:disabled):not([readonly]) {
    background-color: var(--pbo-white) !important;
    background-image: none;
}

.pbo-input select:not(:disabled):not([readonly]),
.pbo-input .custom-select:not(:disabled):not([readonly]),
.pbo-input .form-select:not(:disabled):not([readonly]) {
    background-color: var(--pbo-white) !important;
}

.pbo-input input:focus,
.pbo-input select:focus,
.pbo-input .form-control:focus,
.pbo-input .custom-select:focus,
.pbo-input .form-select:focus {
    border-color: var(--pbo-primary-hover) !important;
    box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.35) !important;
}

.pbo-input input::placeholder,
.pbo-input textarea::placeholder,
.pbo-input .form-control::placeholder,
.pbo-input .form-select::placeholder,
input.pbo-input::placeholder,
textarea.pbo-input::placeholder,
.form-control.pbo-input::placeholder,
.form-select.pbo-input::placeholder {
    color: var(--pbo-gray-400);
    opacity: 1;
}

.pbo-input select,
.pbo-input .custom-select,
.pbo-input .form-select {
    color: var(--pbo-gray-700);
}

.pbo-pool-modal__advanced-config {
    margin-top: 1rem;
    border-radius: 0.75rem;
    background-color: var(--pbo-gray-50);
    padding: 1rem;
}

.pbo-pool-modal__advanced-config-title {
    margin-bottom: 1rem;
    font-size: 0.875rem;
    line-height: 1.25rem;
    font-weight: 600;
    color: var(--pbo-gray-700);
}

.pbo-pool-modal__advanced-config-item {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    padding: 0.75rem;
    border-radius: 0.5rem;
    border: 1px solid var(--pbo-gray-200);
    background-color: var(--pbo-white);
}

.pbo-pool-modal .form-check-input,
.pbo-pool-modal input[type="checkbox"] {
    background-color: var(--pbo-white) !important;
    border-color: var(--pbo-gray-300) !important;
}

.pbo-pool-modal .form-check-input:focus,
.pbo-pool-modal input[type="checkbox"]:focus {
    border-color: var(--pbo-primary-hover) !important;
    box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.25) !important;
}

.pbo-pool-modal .form-check-input:checked,
.pbo-pool-modal input[type="checkbox"]:checked {
    background-color: var(--pbo-primary) !important;
    border-color: var(--pbo-primary) !important;
}

.pbo-pool-modal__advanced-config-item + .pbo-pool-modal__advanced-config-item {
    margin-top: 0.75rem;
}

.pbo-pool-modal__advanced-config-content {
    flex: 1 1 auto;
}

.pbo-pool-modal__advanced-config-label {
    font-size: 0.875rem;
    line-height: 1.25rem;
    font-weight: 500;
    color: var(--pbo-gray-800);
}

.pbo-pool-modal__advanced-config-help {
    margin-top: 0.125rem;
    font-size: 0.75rem;
    line-height: 1rem;
    color: var(--pbo-gray-500);
}

.pbo-modal-footer-actions {
    display: flex;
    justify-content: flex-end;
    gap: 0.75rem;
}

.pbo-modal-action-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    border: 0;
    border-radius: var(--pbo-modal-action-btn-radius, 0.5rem);
    padding: var(--pbo-modal-action-btn-padding, 0.5rem 1rem);
    font-weight: 600;
}

.pbo-modal-action-btn svg {
    width: 1rem;
    height: 1rem;
}

.pbo-modal-action-btn--secondary {
    color: var(--pbo-gray-600);
    background-color: transparent;
}

.pbo-modal-action-btn--secondary:hover {
    background-color: var(--pbo-gray-100);
}

.pbo-modal-action-btn--primary {
    color: var(--pbo-white);
    background-color: var(--pbo-primary);
}

.pbo-modal-action-btn--primary:hover {
    background-color: var(--pbo-primary-hover);
}

.pbo-modal-action-btn--primary[disabled] {
    background-color: var(--pbo-gray-400);
}

.pbo-pool-modal__footer {
    padding: 1rem 1.5rem;
}

@media (max-width: 1024px) {
    .pbo-pool-modal {
        max-height: calc(100vh - 1rem);
        border-radius: 0;
    }

    .pbo-pool-modal__header {
        border-radius: 0;
    }

    .pbo-pool-modal__form-grid {
        grid-template-columns: 1fr;
    }
}

/*****************************************************************************
 * PriceByOccupancy - Strategy Components (moved from .razor.css files)
 *****************************************************************************/

/* PriceByOccupancy - Strategies section group */
.pbo-strategies-section {
    margin-bottom: 1.5rem;
}

.pbo-strategies-section__header-button {
    width: 100%;
    padding: 1rem 1.5rem;
    border: 1px solid var(--pbo-gray-200);
    border-radius: 0.75rem;
    background-color: var(--pbo-white);
    cursor: pointer;
    transition: background-color 0.2s ease;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.pbo-strategies-section__header-button:hover {
    background-color: var(--pbo-gray-50);
}

.pbo-strategies-section__header-button--muted {
    background-color: var(--pbo-gray-50);
    border-color: var(--pbo-gray-200);
}

.pbo-strategies-section__header-button--muted:hover {
    background-color: var(--pbo-gray-100);
}

.pbo-strategies-section__header-left {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.pbo-strategies-section__chevron {
    width: 1.25rem;
    height: 1.25rem;
    color: var(--pbo-gray-500);
    transition: transform 0.2s ease;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.pbo-strategies-section__chevron > svg {
    width: 1rem;
    height: 1rem;
}

.pbo-strategies-section__chevron--expanded {
    transform: rotate(0deg);
}

.pbo-strategies-section__title {
    font-size: 1rem;
    line-height: 1.5rem;
    font-weight: 600;
    color: var(--pbo-gray-900);
}

.pbo-strategies-section__title--muted {
    color: var(--pbo-gray-500);
}

.pbo-strategies-section__count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.75rem;
    height: 1.75rem;
    padding: 0 0.5rem;
    border-radius: 9999px;
    background-color: #dbeafe;
    color: #1e40af;
    font-size: 0.75rem;
    line-height: 1rem;
    font-weight: 600;
}

.pbo-strategies-section__count--muted {
    background-color: var(--pbo-gray-200);
    color: var(--pbo-gray-500);
}

.pbo-strategies-section__body {
    margin-top: 0.75rem;
    border-radius: 0.75rem;
    border: 1px solid var(--pbo-gray-200);
    background-color: var(--pbo-white);
    overflow: hidden;
}

/* Spacing between child items */
.pbo-strategies-section__body > .pbo-strategy-item + .pbo-strategy-item {
    border-top: 1px solid var(--pbo-gray-100);
}

/* PriceByOccupancy - Strategy item */
.pbo-strategy-item__row {
    padding: 1rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    transition: background-color 0.2s ease;
}

.pbo-strategy-item__row:hover {
    background-color: var(--pbo-gray-50);
    cursor: pointer;
}

.pbo-strategy-item__left {
    display: flex;
    align-items: center;
    gap: 1rem;
    min-width: 0;
    flex: 1 1 auto;
}

.pbo-strategy-item__icon-box {
    width: 3rem;
    height: 3rem;
    border-radius: 0.75rem;
    background-color: #dbeafe;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.pbo-strategy-item__icon-box > svg {
    width: 1.5rem;
    height: 1.5rem;
    color: var(--pbo-primary-hover);
}

.pbo-strategy-item__title-row {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.pbo-strategy-item__title {
    font-size: 1rem;
    line-height: 1.5rem;
    font-weight: 600;
    color: var(--pbo-gray-900);
    margin: 0;
}

.pbo-strategy-item__status {
    display: inline-flex;
    align-items: center;
    padding: 0.125rem 0.625rem;
    border-radius: 9999px;
    border: 1px solid transparent;
    font-size: 0.75rem;
    line-height: 1rem;
    font-weight: 500;
}

.pbo-strategy-item__status--active {
    border-color: #86efac;
    background-color: #dcfce7;
    color: #15803d;
}

.pbo-strategy-item__status--inactive {
    border-color: var(--pbo-gray-200);
    background-color: var(--pbo-gray-100);
    color: var(--pbo-gray-500);
}

.pbo-strategy-item__meta {
    margin-top: 0.25rem;
    display: flex;
    align-items: center;
    gap: 1rem;
    flex-wrap: wrap;
}

.pbo-strategy-item__meta-item {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    font-size: 0.875rem;
    line-height: 1.25rem;
    color: var(--pbo-gray-500);
}

.pbo-strategy-item__meta-item > svg {
    width: 0.875rem;
    height: 0.875rem;
    color: var(--pbo-gray-400);
}

.pbo-strategy-item__actions {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    flex-shrink: 0;
}

.pbo-strategy-item__action {
    width: 2rem;
    height: 2rem;
    border-radius: 0.5rem;
    color: var(--pbo-gray-400);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: color 0.2s ease, background-color 0.2s ease;
    border: 0;
    background: transparent;
}

.pbo-strategy-item__action svg {
    width: 1rem;
    min-width: 1rem;
    height: 1rem;
    min-height: 1rem;
    flex: 0 0 1rem;
}

.pbo-strategy-item__action--toggle-active {
    color: var(--pbo-warning);
}

.pbo-strategy-item__action--toggle-active:hover {
    color: var(--pbo-warning-hover);
    background-color: #fffbeb;
}

.pbo-strategy-item__action--toggle-inactive {
    color: #22c55e;
}

.pbo-strategy-item__action--toggle-inactive:hover {
    color: #16a34a;
    background-color: #f0fdf4;
}

.pbo-strategy-item__action--remove:hover {
    color: var(--pbo-danger-hover);
    background-color: var(--pbo-danger-light);
}

.pbo-strategy-item__chevron {
    width: 1.5rem;
    height: 1.5rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--pbo-gray-400);
}

.pbo-strategy-item__chevron > svg {
    width: 1.25rem;
    height: 1.25rem;
}

.pbo-strategy-toggle-modal {
    width: 100%;
}

.pbo-strategy-toggle-modal__alert,
.pbo-strategy-toggle-modal__alert.alert {
    padding: 1rem;
    border-radius: var(--pbo-radius-sm);
}

.pbo-strategy-toggle-modal__alert .alert-body {
    padding: 0;
}

.pbo-strategy-toggle-modal__alert-row {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
}

.pbo-strategy-toggle-modal__alert-icon {
    width: 1.25rem;
    height: 1.25rem;
    margin-top: 0.125rem;
    flex-shrink: 0;
}

.pbo-strategy-toggle-modal__alert-icon > svg {
    width: 1.25rem;
    height: 1.25rem;
}

.pbo-strategy-toggle-modal__alert-text {
    font-size: 0.875rem;
    line-height: 1.25rem;
}




.pbo-strategy-tabs__panel-actions {
    display: flex;
    justify-content: flex-end;
    padding-top: 0.5rem;
}

button.pbo-strategy-tabs__panel-submit-btn {
    align-self: flex-end;
}

.pbo-strategy-tabs__panel .pbo-tree,
.pbo-strategy-tabs__panel .pbo-tree__body {
    background-color: var(--pbo-white);
}

.pbo-strategy-tabs .tab-content,
.pbo-strategy-tabs .tab-pane,
.pbo-strategy-tabs__panel,
.pbo-strategy-tabs__panel-header,
.pbo-strategy-tabs__panel-actions {
    background-color: var(--pbo-white);
}










.pbo-matrix-index {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
    border: 1px solid var(--pbo-gray-200);
    border-radius: var(--pbo-radius-lg);
    background: var(--pbo-white);
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.06);
    padding: 1.5rem;
}

.pbo-matrix-index__toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

.pbo-matrix-index__count {
    color: var(--pbo-gray-500);
    font-size: 0.875rem;
    line-height: 1.25rem;
}

button.pbo-matrix-index__create-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    border: 0;
    border-radius: 0.5rem;
    padding: 0.5rem 1rem;
    color: var(--pbo-white);
    background-color: var(--pbo-primary);
}

button.pbo-matrix-index__create-btn:hover {
    background-color: var(--pbo-primary-hover);
}

.pbo-matrix-index__create-btn svg {
    width: 1rem;
    height: 1rem;
}

.pbo-matrix-index__warning {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    padding: 1rem;
    border: 1px solid var(--pbo-warning-border);
    border-radius: 0.5rem;
    background: #fffbeb;
}

.pbo-matrix-index__warning svg {
    width: 1.25rem;
    height: 1.25rem;
    color: var(--pbo-warning);
    flex-shrink: 0;
    margin-top: 0.125rem;
}

.pbo-matrix-index__warning-title {
    color: #92400e;
    font-size: 0.875rem;
    line-height: 1.25rem;
    font-weight: 500;
}

.pbo-matrix-index__warning-text {
    margin-top: 0.25rem !important;
    color: #b45309;
    font-size: 0.75rem;
    line-height: 1rem;
}

.pbo-matrix-index__empty-state {
    padding: 3rem 1rem;
    text-align: center;
    color: var(--pbo-gray-500);
}

.pbo-matrix-index__groups {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.pbo-matrix-group {
    overflow: hidden;
    border: 1px solid var(--pbo-gray-200);
    border-radius: 0.75rem;
    background: var(--pbo-white);
}

.pbo-matrix-group--muted {
    background: var(--pbo-gray-50);
}

button.pbo-matrix-group__header-button {
    width: 100%;
    border: 0;
    padding: 1rem;
    background: transparent;
}

button.pbo-matrix-group__header-button:hover {
    background: var(--pbo-gray-50);
}

button.pbo-matrix-group__header-button--muted:hover {
    background: var(--pbo-gray-100);
}

.pbo-matrix-group__header-left {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.pbo-matrix-group__chevron {
    width: 1.25rem;
    height: 1.25rem;
    color: var(--pbo-gray-400);
    transition: transform 0.2s ease;
}

.pbo-matrix-group__chevron--expanded {
    transform: rotate(0deg);
}

.pbo-matrix-group__chevron:not(.pbo-matrix-group__chevron--expanded) {
    transform: rotate(-90deg);
}

.pbo-matrix-group__title {
    color: var(--pbo-gray-900);
    font-weight: 600;
}

.pbo-matrix-group__title--muted {
    color: var(--pbo-gray-500);
}

.pbo-matrix-group__count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.5rem;
    padding: 0.125rem 0.5rem;
    border-radius: 9999px;
    font-size: 0.75rem;
    line-height: 1rem;
    font-weight: 500;
}

.pbo-matrix-group__count--active {
    background: #dcfce7;
    color: #15803d;
}

.pbo-matrix-group__count--inactive {
    background: var(--pbo-gray-200);
    color: var(--pbo-gray-600);
}

.pbo-matrix-group__body {
    border-top: 1px solid var(--pbo-gray-200);
}

.pbo-matrix-group__empty {
    padding: 1.5rem;
    text-align: center;
    color: var(--pbo-gray-400);
    font-size: 0.875rem;
}

.pbo-matrix-item {
    transition: background-color 0.2s ease;
}

.pbo-matrix-group__body > .pbo-matrix-item + .pbo-matrix-item {
    border-top: 1px solid var(--pbo-gray-100);
}

.pbo-matrix-item:hover {
    background: var(--pbo-gray-50);
}

.pbo-matrix-item__row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem;
}

.pbo-matrix-item__row:hover {
    background-color: var(--pbo-gray-50);
    cursor: pointer;
}

.pbo-matrix-item__left {
    display: flex;
    align-items: center;
    gap: 1rem;
    min-width: 0;
}

.pbo-matrix-item__icon-box {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 3rem;
    height: 3rem;
    border-radius: 0.75rem;
    background: linear-gradient(135deg, var(--pbo-primary-light) 0%, #eef2ff 100%);
    color: var(--pbo-primary);
    flex-shrink: 0;
}

.pbo-matrix-item__icon-box svg {
    width: 1.5rem;
    height: 1.5rem;
}

.pbo-matrix-item__content {
    min-width: 0;
}

.pbo-matrix-item__title-row {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.pbo-matrix-item__title {
    margin: 0;
    color: var(--pbo-gray-900);
    font-size: 1rem;
    line-height: 1.5rem;
    font-weight: 600;
}

.pbo-matrix-item__status {
    display: inline-flex;
    align-items: center;
    padding: 0.125rem 0.5rem;
    border-radius: 9999px;
    font-size: 0.75rem;
    line-height: 1rem;
    font-weight: 500;
}

.pbo-matrix-item__status--active {
    background: #dcfce7;
    color: #15803d;
}

.pbo-matrix-item__status--inactive {
    background: var(--pbo-gray-200);
    color: var(--pbo-gray-600);
}

.pbo-matrix-item__summary {
    margin-top: 0.125rem !important;
    color: var(--pbo-gray-500);
    font-size: 0.875rem;
    line-height: 1.25rem;
}

.pbo-matrix-item__badges {
    display: flex;
    gap: 0.5rem;
    margin-top: 0.5rem;
}

.pbo-matrix-item__badge {
    display: inline-flex;
    align-items: center;
    padding: 0.125rem 0.5rem;
    border-radius: 9999px;
    background: var(--pbo-gray-100);
    color: var(--pbo-gray-500);
    font-size: 0.75rem;
    line-height: 1rem;
}

.pbo-matrix-item__actions {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    flex-shrink: 0;
}

button.pbo-matrix-item__action {
    width: 2rem;
    height: 2rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 0;
    border-radius: 0.5rem;
    background: transparent;
    transition: color 0.2s ease, background-color 0.2s ease, opacity 0.2s ease;
    opacity: 0;
}

.pbo-matrix-item:hover .pbo-matrix-item__action {
    opacity: 1;
}

.pbo-matrix-item__action svg,
.pbo-matrix-item__chevron svg {
    width: 1rem;
    min-width: 1rem;
    height: 1rem;
    min-height: 1rem;
    flex: 0 0 1rem;
}

button.pbo-matrix-item__action--toggle-active {
    color: var(--pbo-warning);
}

button.pbo-matrix-item__action--toggle-active:hover {
    color: var(--pbo-warning-hover);
    background: #fffbeb;
}

button.pbo-matrix-item__action--toggle-inactive {
    color: #22c55e;
}

button.pbo-matrix-item__action--toggle-inactive:hover {
    color: #16a34a;
    background: #f0fdf4;
}

button.pbo-matrix-item__action--remove {
    color: var(--pbo-gray-400);
}

button.pbo-matrix-item__action--remove:hover {
    color: var(--pbo-danger-hover);
    background: var(--pbo-danger-light);
}

button.pbo-matrix-item__chevron {
    width: 2rem;
    height: 2rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 0;
    border-radius: 0.5rem;
    background: transparent;
    color: var(--pbo-gray-400);
}

.pbo-matrix-item:hover .pbo-matrix-item__chevron {
    opacity: 1;
}

@media (max-width: 767px) {
    .pbo-matrix-index__toolbar,
    .pbo-matrix-item__row {
        flex-direction: column;
        align-items: stretch;
    }

    .pbo-matrix-item__actions {
        justify-content: flex-end;
    }

    button.pbo-matrix-index__create-btn {
        justify-content: center;
        width: 100%;
    }

    button.pbo-matrix-item__action {
        opacity: 1;
    }
}
.pbo-calendar-index {
    display: flex;
    flex-direction: column;
}

.pbo-calendar-index__toolbar {
    margin-bottom: 1.5rem;
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.pbo-calendar-index__toolbar > svg {
    width: 1rem;
    height: 1rem;
    color: var(--pbo-gray-500);
    flex-shrink: 0;
}

.pbo-calendar-index__filter-group {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    padding: 0.25rem;
    border-radius: 0.75rem;
    background: var(--pbo-gray-100);
}

button.pbo-calendar-index__filter-btn {
    border: 0;
    background: transparent;
    border-radius: 0.5rem;
    padding: 0.5rem 1rem;
    color: var(--pbo-gray-500);
    font-size: 0.875rem;
    line-height: 1.25rem;
    font-weight: 500;
    transition: background-color var(--pbo-transition-fast), color var(--pbo-transition-fast), box-shadow var(--pbo-transition-fast);
}

button.pbo-calendar-index__filter-btn:hover {
    color: var(--pbo-gray-900);
}

button.pbo-calendar-index__filter-btn--active {
    background: var(--pbo-white);
    color: var(--pbo-gray-900);
    box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
}

.pbo-calendar-index__list {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.pbo-calendar-index__item--warning {
    border-color: #fcd34d;
}

.pbo-calendar-index__item--warning .pbo-matrix-item__icon-box {
    background: #fef3c7;
    color: #d97706;
}

.pbo-calendar-index .pbo-strategy-item__status {
    gap: 0.25rem;
}

.pbo-calendar-index .pbo-strategy-item__status svg {
    width: 0.75rem;
    height: 0.75rem;
    flex-shrink: 0;
}

.pbo-calendar-index__meta-separator {
    color: var(--pbo-gray-300);
}

.pbo-calendar-index__badges {
    margin-top: 0.625rem;
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.pbo-calendar-index__badge {
    display: inline-flex;
    align-items: center;
    padding: 0.125rem 0.5rem;
    border-radius: 9999px;
    font-size: 0.75rem;
    line-height: 1rem;
    font-weight: 500;
}

.pbo-calendar-index__badge--warning {
    background: #fef3c7;
    color: #92400e;
}

.pbo-calendar-index__action-link {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    border: 1px solid var(--pbo-primary);
    border-radius: 0.75rem;
    padding: 0.5rem 1rem;
    color: var(--pbo-white) !important;
    background: var(--pbo-primary);
    font-size: 0.875rem;
    line-height: 1.25rem;
    font-weight: 500;
    text-decoration: none;
    opacity: 1 !important;
    transition: background-color var(--pbo-transition-fast), border-color var(--pbo-transition-fast);
}

.pbo-calendar-index__action-link:hover {
    color: var(--pbo-white) !important;
    background: var(--pbo-primary-hover);
    border-color: var(--pbo-primary-hover);
}

.pbo-calendar-index__action-link svg {
    width: 1rem;
    height: 1rem;
    flex-shrink: 0;
    opacity: 1;
}

@media (max-width: 767px) {
    .pbo-calendar-index__toolbar {
        align-items: stretch;
        flex-direction: column;
    }

    .pbo-calendar-index__filter-group {
        width: 100%;
        flex-wrap: wrap;
    }

    button.pbo-calendar-index__filter-btn {
        flex: 1 1 calc(50% - 0.25rem);
        justify-content: center;
    }
}
.pbo-matrix-create-modal {
    width: calc(100% - 2rem);
    max-width: calc(100% - 2rem);
    height: calc(100vh - 2rem);
    max-height: calc(100vh - 2rem);
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    background: var(--pbo-white);
    border-radius: 1.5rem;
    overflow: hidden;
    box-shadow: 0 28px 60px -18px rgba(15, 23, 42, 0.32);
}

.pbo-matrix-create-modal__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.25rem;
    padding: 1.25rem 1.75rem;
    border-bottom: 1px solid var(--pbo-gray-200);
    background: var(--pbo-white);
}

.pbo-matrix-create-modal__header-copy {
    display: flex;
    align-items: center;
    gap: 0.875rem;
    min-width: 0;
}

.pbo-matrix-create-modal__header-icon,
.pbo-matrix-create-modal__section-icon-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.pbo-matrix-create-modal__header-icon {
    width: 2.9rem;
    height: 2.9rem;
    border-radius: 0.95rem;
    color: var(--pbo-primary);
    background: linear-gradient(135deg, var(--pbo-primary-light) 0%, #eef2ff 100%);
}

.pbo-matrix-create-modal__header-icon svg {
    width: 1.55rem;
    height: 1.55rem;
}

.pbo-matrix-create-modal__header-text {
    min-width: 0;
}

.pbo-matrix-create-modal__title {
    margin: 0;
    color: var(--pbo-gray-900);
    line-height: 1.1;
    font-weight: 800;
}

.pbo-matrix-create-modal__subtitle {
    margin-top: 0.35rem !important;
    color: var(--pbo-gray-500);
    font-size: 0.875rem;
    line-height: 1.25rem;
}

.pbo-matrix-create-modal__header-actions {
    display: inline-flex;
    align-items: center;
    gap: 0.75rem;
    flex-shrink: 0;
}

.pbo-matrix-analysis-result {
    margin-top: 1rem;
}

.pbo-matrix-analysis-result__title {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
}

.pbo-matrix-analysis-result__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.pbo-matrix-analysis-result__icon svg {
    width: 1rem;
    height: 1rem;
}

.pbo-matrix-analysis-result__list {
    margin: 0;
}

.pbo-matrix-create-modal__footer {
    padding: 1rem 1.75rem;
    background: var(--pbo-white);
}

.pbo-matrix-create-modal__footer .pbo-modal-action-btn {
    --pbo-modal-action-btn-radius: 0.75rem;
    --pbo-modal-action-btn-padding: 0.75rem 1.125rem;
}

.pbo-matrix-create-modal__close-btn,
.pbo-matrix-create-modal__icon-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 0;
    background: transparent;
}

.pbo-matrix-create-modal__close-btn {
    width: 2.25rem;
    height: 2.25rem;
    min-width: 2.25rem;
    border-radius: 0.75rem;
    color: var(--pbo-gray-400);
}

.pbo-matrix-create-modal__close-btn:hover {
    background: var(--pbo-gray-100);
    color: var(--pbo-gray-600);
}

.pbo-matrix-create-modal__body {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    padding: 1.5rem;
    background: var(--pbo-gray-50);
}

.pbo-matrix-create-modal__layout {
    display: grid;
    grid-template-columns: minmax(0, 4fr) minmax(0, 8fr);
    gap: 1.5rem;
    align-items: start;
}

.pbo-matrix-create-modal__layout-column {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
    min-width: 0;
}

.pbo-matrix-create-modal__layout-full {
    grid-column: 1 / -1;
    min-width: 0;
}

.pbo-matrix-create-modal__section {
    border: 1px solid var(--pbo-gray-200);
    border-radius: 1rem;
    background: var(--pbo-white);
    padding: 1.25rem;
}

.pbo-matrix-create-modal__section-header,
.pbo-matrix-create-modal__feature-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

.pbo-matrix-create-modal__feature-header {
    padding-bottom: 1.25rem;
}

.pbo-matrix-create-modal__section-title-wrap,
.pbo-matrix-create-modal__feature-copy {
    display: flex;
    align-items: center;
    gap: 0.875rem;
    min-width: 0;
}

.pbo-matrix-create-modal__section-icon-badge {
    width: 2rem;
    height: 2rem;
    border-radius: 0.75rem;
}

.pbo-matrix-create-modal__section-icon-badge svg {
    width: 1rem;
    height: 1rem;
    min-width: 1rem;
    min-height: 1rem;
    flex: 0 0 1rem;
}

.pbo-matrix-create-modal__section-icon-badge--blue {
    color: var(--pbo-primary);
    background: #dbeafe;
}

.pbo-matrix-create-modal__section-icon-badge--amber {
    color: var(--pbo-warning-hover);
    background: var(--pbo-warning-light);
}

.pbo-matrix-create-modal__section-icon-badge--purple {
    color: #9333ea;
    background: #f3e8ff;
}

.pbo-matrix-create-modal__section-icon-badge--indigo {
    color: var(--pbo-primary);
    background: #dbeafe;
}

.pbo-matrix-create-modal__section-title,
.pbo-matrix-create-modal__feature-title {
    margin: 0 !important;
    color: var(--pbo-gray-900);
    font-size: 1rem;
    line-height: 1.5rem;
    font-weight: 700;
}

.pbo-matrix-create-modal__feature-subtitle {
    margin-top: 0.15rem !important;
    color: var(--pbo-gray-500);
    font-size: 0.8125rem;
    line-height: 1.2rem;
}

.pbo-matrix-create-modal__stack,
.pbo-matrix-create-modal__feature-body,
.pbo-matrix-create-modal__collection {
    display: flex;
    flex-direction: column;
}

.pbo-matrix-create-modal__stack {
    gap: 1rem;
    margin-top: 1.25rem;
}

.pbo-matrix-create-modal__feature-body {
    gap: 1rem;
    margin: 0 -1.25rem -1.25rem;
    padding: 1.25rem;
    border-top: 1px solid var(--pbo-gray-200);
    background: var(--pbo-gray-50);
    border-radius: 0 0 1rem 1rem;
}

.pbo-matrix-create-modal__field {
    margin-bottom: 0 !important;
}

.pbo-matrix-create-modal .field-label,
.pbo-matrix-create-modal__label-with-help {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    color: var(--pbo-gray-700);
    font-weight: 600;
}

.pbo-matrix-create-modal__help-icon {
    display: inline-flex;
    align-items: center;
    color: var(--pbo-gray-400);
}

.pbo-matrix-create-modal__help-icon svg {
    width: 0.95rem;
    height: 0.95rem;
}

.pbo-matrix-create-modal__feature-toggle {
    display: inline-flex;
    align-items: center;
    gap: 0.75rem;
}

.pbo-matrix-create-modal__feature-toggle-text {
    color: #16a34a;
    font-size: 0.875rem;
    line-height: 1.25rem;
    font-weight: 600;
}

.pbo-matrix-create-modal__info-box {
    padding: 0.875rem 1rem;
    border-radius: 0.75rem;
    background: var(--pbo-primary-light);
}

.pbo-matrix-create-modal__info-box-text {
    color: #1d4ed8;
    font-size: 0.875rem;
    line-height: 1.55rem;
}

.pbo-matrix-create-modal__info-box-text strong {
    font-weight: 700;
}

.pbo-matrix-create-modal__dual-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.pbo-matrix-create-modal__inline-input {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.pbo-matrix-create-modal__inline-input > .validation,
.pbo-matrix-create-modal__inline-input > .validation > .numeric-picker,
.pbo-matrix-create-modal__inline-input > .validation > .numeric-picker > .input-group,
.pbo-matrix-create-modal__inline-input > .numeric-picker,
.pbo-matrix-create-modal__inline-input > .numeric-picker > .input-group {
    flex: 1 1 auto;
    min-width: 0;
}

.pbo-matrix-create-modal__inline-suffix {
    color: var(--pbo-gray-500);
    font-size: 0.875rem;
    line-height: 1.25rem;
    font-weight: 600;
    white-space: nowrap;
}

.pbo-matrix-create-modal__time-toggle {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.25rem;
    padding: 0.25rem;
    border-radius: 0.75rem;
    background: var(--pbo-gray-200);
}

.pbo-matrix-create-modal__time-option {
    justify-content: center;
    border: 0;
    border-radius: 0.55rem;
    padding: 0.55rem 0.75rem;
    color: var(--pbo-gray-600);
    background: transparent;
    font-size: 0.875rem;
    font-weight: 500;
    box-shadow: none;
}

.pbo-matrix-create-modal__time-option:hover {
    color: var(--pbo-gray-900);
    background: rgba(255, 255, 255, 0.45);
}

.pbo-matrix-create-modal__time-option--active,
.pbo-matrix-create-modal__time-option--active:hover {
    color: var(--pbo-gray-900);
    background: var(--pbo-white);
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.08);
}

.pbo-matrix-create-modal__footnote {
    color: var(--pbo-gray-400);
    font-size: 0.75rem;
    line-height: 1rem;
    text-align: center;
}

.pbo-matrix-create-modal__warning {
    margin-top: 1rem;
    padding: 0.875rem 1rem;
    border: 1px solid #fcd34d;
    border-radius: 0.75rem;
    background: #fffbeb;
}

.pbo-matrix-create-modal__warning-header {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 0.5rem;
    color: #92400e;
}

.pbo-matrix-create-modal__warning-header svg {
    width: 1rem;
    height: 1rem;
    color: var(--pbo-warning);
}

.pbo-matrix-create-modal__warning-title {
    color: #92400e;
    font-size: 0.875rem;
    line-height: 1.25rem;
    font-weight: 700;
}

.pbo-matrix-create-modal__warning-list {
    margin: 0;
    padding-left: 1.15rem;
    color: #b45309;
}

.pbo-matrix-create-modal__warning-list-item {
    color: #b45309;
    font-size: 0.875rem;
    line-height: 1.45rem;
}

.pbo-matrix-create-modal__collection {
    gap: 0.6rem;
    margin-top: 1rem;
}

.pbo-matrix-create-modal__empty-state {
    padding: 2rem 1rem;
    color: var(--pbo-gray-400);
    text-align: center;
    background: transparent;
}

.pbo-matrix-create-modal__table-head,
.pbo-matrix-create-modal__table-row {
    display: grid;
    gap: 0.6rem;
    align-items: center;
}

.pbo-matrix-create-modal__table-head {
    padding: 0 0.5rem 0.5rem;
    border-bottom: 1px solid var(--pbo-gray-100);
    color: var(--pbo-gray-500);
    font-size: 0.75rem;
    line-height: 1rem;
    font-weight: 600;
}

.pbo-matrix-create-modal__table-head--levels,
.pbo-matrix-create-modal__table-row--levels {
    grid-template-columns: minmax(0, 1fr) minmax(5.5rem, 6.5rem) minmax(5.5rem, 6.5rem) minmax(8.5rem, auto) 2.25rem;
}

.pbo-matrix-create-modal__table-row--levels > .pbo-matrix-create-modal__icon-btn,
.pbo-matrix-create-modal__table-head--levels > :last-child {
    justify-self: end;
}

.pbo-matrix-create-modal__table-head--scenarios,
.pbo-matrix-create-modal__table-row--scenarios {
    grid-template-columns: minmax(0, 4fr) minmax(0, 2fr) auto;
}

.pbo-matrix-create-modal__collection-item {
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
}

.pbo-matrix-create-modal__table-row {
    padding: 0.625rem;
    border-radius: 0.75rem;
    background: var(--pbo-gray-50);
    transition: background-color 0.2s ease;
}

.pbo-matrix-create-modal__table-row:hover {
    background: var(--pbo-gray-100);
}

.pbo-matrix-create-modal__icon-btn {
    width: 2.25rem;
    height: 2.25rem;
    min-width: 2.25rem;
    border-radius: 0.65rem;
}

.pbo-matrix-create-modal__icon-btn svg {
    width: 1rem;
    height: 1rem;
    min-width: 1rem;
    min-height: 1rem;
    flex: 0 0 1rem;
}

.pbo-matrix-create-modal__icon-btn--danger {
    color: #f87171;
}

.pbo-matrix-create-modal__icon-btn--danger:hover {
    color: var(--pbo-danger-hover);
    background: var(--pbo-danger-light);
}

.pbo-matrix-create-modal__secondary-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    border: 1px solid #c4b5fd;
    border-radius: 0.75rem;
    padding: 0.55rem 0.9rem;
    color: #9333ea;
    background: var(--pbo-white);
    font-size: 0.875rem;
    font-weight: 500;
}

.pbo-matrix-create-modal__secondary-btn:hover {
    color: #7e22ce;
    background: #faf5ff;
}

.pbo-matrix-create-modal__secondary-btn--inline svg {
    width: 0.9rem;
    height: 0.9rem;
    min-width: 0.9rem;
    min-height: 0.9rem;
    flex: 0 0 0.9rem;
}

.pbo-matrix-create-modal .form-control,
.pbo-matrix-create-modal .form-select,
.pbo-matrix-create-modal input[type="text"],
.pbo-matrix-create-modal input[type="number"],
.pbo-matrix-create-modal textarea,
.pbo-matrix-create-modal select {
    min-height: 2.75rem;
    border-color: var(--pbo-gray-300);
    border-radius: 0.75rem;
    background-color: var(--pbo-white);
    box-shadow: none;
}

.pbo-matrix-create-modal textarea {
    min-height: 6rem;
}

.pbo-matrix-create-modal .form-control:focus,
.pbo-matrix-create-modal .form-select:focus,
.pbo-matrix-create-modal input[type="text"]:focus,
.pbo-matrix-create-modal input[type="number"]:focus,
.pbo-matrix-create-modal textarea:focus,
.pbo-matrix-create-modal select:focus {
    border-color: #93c5fd;
    box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.18);
}

.pbo-matrix-create-modal .b-numeric-picker,
.pbo-matrix-create-modal .numeric-picker {
    width: 100%;
}

.pbo-matrix-create-modal .custom-switch-input:checked ~ .custom-switch-check,
.pbo-matrix-create-modal .form-check-input:checked,
.pbo-matrix-create-modal input[type="checkbox"]:checked {
    background-color: #22c55e !important;
    border-color: #22c55e !important;
}

.pbo-matrix-create-modal .form-check-input,
.pbo-matrix-create-modal input[type="checkbox"] {
    background-color: var(--pbo-white) !important;
    border-color: var(--pbo-gray-300) !important;
}

@media (max-width: 1199px) {
    .pbo-matrix-create-modal__title {
        font-size: 1.65rem;
    }

    .pbo-matrix-create-modal__layout {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 767px) {
    .pbo-matrix-create-modal {
        width: 100vw;
        height: 100vh;
        max-height: 100vh;
        border-radius: 0;
    }

    .pbo-matrix-create-modal__header,
    .pbo-matrix-create-modal__body,
    .pbo-matrix-create-modal__footer {
        padding-left: 1rem;
        padding-right: 1rem;
    }

    .pbo-matrix-create-modal__header {
        align-items: flex-start;
        flex-wrap: wrap;
    }

    .pbo-matrix-create-modal__header-actions {
        margin-left: auto;
    }

    .pbo-matrix-create-modal__dual-grid,
    .pbo-matrix-create-modal__table-head--levels,
    .pbo-matrix-create-modal__table-row--levels,
    .pbo-matrix-create-modal__table-head--scenarios,
    .pbo-matrix-create-modal__table-row--scenarios {
        grid-template-columns: 1fr;
    }

    .pbo-matrix-create-modal__section-header,
    .pbo-matrix-create-modal__feature-header {
        align-items: flex-start;
        flex-direction: column;
    }

    .pbo-matrix-create-modal__time-toggle {
        grid-template-columns: 1fr;
    }
}

.pbo-matrix-cells {
    margin-top: 1rem;
    overflow-x: auto;
    border: 1px solid var(--pbo-gray-200);
    border-radius: 0.9rem;
    background: var(--pbo-white);
}

.pbo-matrix-cells__table {
    margin-bottom: 0;
    min-width: 100%;
    border-collapse: separate;
    border-spacing: 0;
}

.pbo-matrix-cells__table th,
.pbo-matrix-cells__table td {
    border-right: 1px solid var(--pbo-gray-200);
    border-bottom: 1px solid var(--pbo-gray-200);
}

.pbo-matrix-cells__table tr:last-child td {
    border-bottom: 0;
}

.pbo-matrix-cells__table th:last-child,
.pbo-matrix-cells__table td:last-child {
    border-right: 0;
}

.pbo-matrix-cells__corner-header {
    position: sticky;
    left: 0;
    z-index: 3;
    min-width: 14rem;
    padding: 0.9rem !important;
    color: var(--pbo-gray-600);
    background: var(--pbo-gray-100);
    font-size: 0.875rem;
    font-weight: 600;
    text-align: left;
}

.pbo-matrix-cells__level-header {
    min-width: 15rem;
    padding: 0.9rem !important;
    text-align: center;
    vertical-align: middle;
}

.pbo-matrix-cells__level-header-content {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    align-items: center;
    justify-content: center;
}

.pbo-matrix-cells__level-title {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.3rem;
    font-size: 0.875rem;
    font-weight: 600;
}

.pbo-matrix-cells__open-indicator {
    font-size: 0.75rem;
    font-weight: 700;
}

.pbo-matrix-cells__level-range {
    font-size: 0.75rem;
    font-weight: 400;
    opacity: 0.8;
}

.pbo-matrix-cells__row:hover .pbo-matrix-cells__scenario-cell {
    background: var(--pbo-gray-50);
}

.pbo-matrix-cells__scenario-cell {
    position: sticky;
    left: 0;
    z-index: 2;
    min-width: 14rem;
    padding: 0.9rem !important;
    background: var(--pbo-gray-50);
    vertical-align: middle;
}

.pbo-matrix-cells__scenario-content {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    color: var(--pbo-gray-900);
    font-size: 0.875rem;
    font-weight: 500;
}

.pbo-matrix-cells__scenario-code {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2.25rem;
    padding: 0.1rem 0.4rem;
    color: var(--pbo-primary);
    background: var(--pbo-primary-light);
    border-radius: 0.35rem;
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
}

.pbo-matrix-cells__scenario-name {
    line-height: 1.3;
}

.pbo-matrix-cells__value-cell {
    padding: 0.55rem !important;
    vertical-align: middle;
}

.pbo-matrix-cells__editor {
    display: flex;
    gap: 0.5rem;
    align-items: stretch;
}

.pbo-matrix-cells__select {
    flex: 1 1 auto;
    min-width: 0;
}

.pbo-matrix-cells__value-wrap {
    position: relative;
    width: 5.5rem;
    min-width: 5.5rem;
}

.pbo-matrix-cells__value-input {
    width: 100%;
}

.pbo-matrix-cells__value-suffix {
    position: absolute;
    top: 50%;
    right: 0.65rem;
    transform: translateY(-50%);
    color: var(--pbo-gray-400);
    font-size: 0.875rem;
    pointer-events: none;
}

.pbo-matrix-cells__table .b-numeric-picker,
.pbo-matrix-cells__table .b-select,
.pbo-matrix-cells__table .b-numeric-picker .input-group,
.pbo-matrix-cells__table select,
.pbo-matrix-cells__table input {
    width: 100%;
}

.pbo-matrix-cells__table select,
.pbo-matrix-cells__table input,
.pbo-matrix-cells__table .form-control,
.pbo-matrix-cells__table .form-select {
    min-height: 2.35rem;
    border-color: var(--pbo-gray-200);
    border-radius: 0.5rem;
    background-color: var(--pbo-white);
    box-shadow: none;
    font-size: 0.8125rem;
}

.pbo-matrix-cells__table input {
    padding-right: 1.8rem;
    text-align: right;
}

.pbo-matrix-cells__table select:focus,
.pbo-matrix-cells__table input:focus,
.pbo-matrix-cells__table .form-control:focus,
.pbo-matrix-cells__table .form-select:focus {
    border-color: var(--pbo-primary-hover);
    box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.18);
}

.pbo-matrix-cells__level-header--low {
    color: var(--pbo-gray-600);
    background: var(--pbo-gray-50);
}

.pbo-matrix-cells__level-header--medium {
    color: #0369a1;
    background: #f0f9ff;
}

.pbo-matrix-cells__level-header--high {
    color: #b45309;
    background: #fffbeb;
}

.pbo-matrix-cells__level-header--critical {
    color: #991b1b;
    background: #fef2f2;
}

.pbo-matrix-cells__value-cell--low {
    background: var(--pbo-white);
}

.pbo-matrix-cells__value-cell--medium {
    background: rgba(240, 249, 255, 0.65);
}

.pbo-matrix-cells__value-cell--high {
    background: rgba(255, 251, 235, 0.9);
}

.pbo-matrix-cells__value-cell--critical {
    background: rgba(254, 242, 242, 0.9);
}

@media (max-width: 991.98px) {
    .pbo-matrix-cells__corner-header,
    .pbo-matrix-cells__scenario-cell {
        min-width: 12rem;
    }

    .pbo-matrix-cells__level-header {
        min-width: 13rem;
    }
}

/* PriceByOccupancy - Calendar */
.pbo-calendar-upsert {
    min-height: 100%;
}

.pbo-calendar-upsert__container {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.pbo-calendar-header {
    margin-bottom: 0;
}

.pbo-calendar-header__back-link {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    margin-bottom: 0.75rem;
    color: var(--pbo-gray-600);
    font-size: 0.875rem;
    text-decoration: none;
    transition: color var(--pbo-transition-fast);
}

.pbo-calendar-header__back-link:hover {
    color: var(--pbo-gray-900);
}

.pbo-calendar-header__back-link svg {
    width: 1rem;
    height: 1rem;
}

.pbo-calendar-toolbar {
    border: 1px solid var(--pbo-gray-200);
    border-radius: 0.75rem;
    background: var(--pbo-white);
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.06);
}

.pbo-calendar-upsert-form {
    padding-top: 1rem;
}

.pbo-calendar-toolbar__content {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem;
}

.pbo-calendar-toolbar__navigation {
    display: flex;
    align-items: center;
    gap: 1rem;
}

button.pbo-calendar-toolbar__nav-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.5rem;
    height: 2.5rem;
    border: 0;
    border-radius: 0.5rem;
    background: transparent;
    color: var(--pbo-gray-700);
    transition: background-color var(--pbo-transition-fast), color var(--pbo-transition-fast);
}

button.pbo-calendar-toolbar__nav-btn:hover {
    background: var(--pbo-gray-100);
    color: var(--pbo-gray-900);
}

.pbo-calendar-toolbar__nav-btn svg {
    width: 1.25rem;
    height: 1.25rem;
}

.pbo-calendar-toolbar__nav-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.25rem;
    height: 1.25rem;
    flex: 0 0 1.25rem;
}

.pbo-calendar-toolbar__nav-icon > svg {
    display: block;
    width: 100%;
    height: 100%;
    flex: 0 0 100%;
}

.pbo-calendar-toolbar__title {
    margin-bottom: 0 !important;
    color: var(--pbo-gray-900);
    font-size: 1.25rem;
    font-weight: 600;
    text-transform: capitalize;
}

button.pbo-calendar-toolbar__today-btn {
    border: 0;
    border-radius: 0.5rem;
    padding: 0.5rem 1rem;
    background: transparent;
    color: var(--pbo-primary);
    font-size: 0.875rem;
    font-weight: 500;
    transition: background-color var(--pbo-transition-fast), color var(--pbo-transition-fast);
}

button.pbo-calendar-toolbar__today-btn:hover {
    background: var(--pbo-primary-light);
    color: var(--pbo-primary-hover);
}

.pbo-calendar-grid {
    overflow: visible;
    border: 1px solid var(--pbo-gray-200);
    border-radius: 0.75rem;
    background: var(--pbo-white);
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.06);
}

.pbo-calendar-grid__weekdays,
.pbo-calendar-grid__days {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
}

.pbo-calendar-grid__weekdays {
    border-bottom: 1px solid var(--pbo-gray-200);
    background: var(--pbo-gray-50);
}

.pbo-calendar-grid__weekday {
    padding: 0.75rem;
    color: var(--pbo-gray-600);
    text-align: center;
    font-size: 0.875rem;
    font-weight: 500;
}

button.pbo-calendar-cell {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-start;
    min-height: 8.125rem;
    padding: 0.75rem;
    border: 0;
    border-right: 1px solid var(--pbo-gray-100);
    border-bottom: 1px solid var(--pbo-gray-100);
    text-align: left;
    transition: background-color var(--pbo-transition-fast), opacity var(--pbo-transition-fast);
}

.pbo-calendar-grid__days > button.pbo-calendar-cell:nth-child(7n) {
    border-right: 0;
}

.pbo-calendar-cell--placeholder {
    background: var(--pbo-gray-50);
}

button.pbo-calendar-cell--past {
    background: var(--pbo-gray-100);
    opacity: 0.6;
    cursor: not-allowed;
}

button.pbo-calendar-cell--interactive {
    background: var(--pbo-white);
    cursor: pointer;
}

/* z-index alto en hover/focus: el tooltip vive en el contexto de apilado de la celda,
   asi que esta debe quedar por encima del sidebar para que no se oculte tras el. */
button.pbo-calendar-cell--interactive:hover {
    background: var(--pbo-gray-50);
    z-index: 1090;
}

button.pbo-calendar-cell--interactive:focus,
button.pbo-calendar-cell--interactive:focus-visible {
    z-index: 1090;
}

button.pbo-calendar-cell--interactive:hover .pbo-calendar-entry-tooltip,
button.pbo-calendar-cell--interactive:focus .pbo-calendar-entry-tooltip,
button.pbo-calendar-cell--interactive:focus-visible .pbo-calendar-entry-tooltip {
    opacity: 1;
    transform: translateY(0);
    pointer-events: none;
    visibility: visible;
    transition-delay: 1.0s;
}

/* Tooltip compacto (sesion): se ancla a la celda y en las columnas de la derecha
   se abre hacia la izquierda para no desbordar por la derecha. */
.pbo-calendar-grid__days > button.pbo-calendar-cell:nth-child(7n-3) .pbo-calendar-entry-tooltip--compact,
.pbo-calendar-grid__days > button.pbo-calendar-cell:nth-child(7n-2) .pbo-calendar-entry-tooltip--compact,
.pbo-calendar-grid__days > button.pbo-calendar-cell:nth-child(7n-1) .pbo-calendar-entry-tooltip--compact,
.pbo-calendar-grid__days > button.pbo-calendar-cell:nth-child(7n) .pbo-calendar-entry-tooltip--compact {
    left: auto;
    right: 0.75rem;
}

/* Tooltip de matriz: panel a lo ancho de la rejilla, anclado bajo la fila de la
   celda activa. Cada celda mide 1/7 del ancho de la fila, asi que con width:700%
   el panel cubre la fila completa y con un left negativo por columna lo alineamos
   siempre a la columna 1. De este modo nunca se desborda por los lados y deja de
   recortarlo el overflow de .pbo-strategy-tabs (problema del sidebar). */
.pbo-calendar-grid__days > button.pbo-calendar-cell .pbo-calendar-entry-tooltip:not(.pbo-calendar-entry-tooltip--compact) {
    left: 0;
    right: auto;
    width: 700%;
}

.pbo-calendar-grid__days > button.pbo-calendar-cell:nth-child(7n+2) .pbo-calendar-entry-tooltip:not(.pbo-calendar-entry-tooltip--compact) { left: -100%; }
.pbo-calendar-grid__days > button.pbo-calendar-cell:nth-child(7n+3) .pbo-calendar-entry-tooltip:not(.pbo-calendar-entry-tooltip--compact) { left: -200%; }
.pbo-calendar-grid__days > button.pbo-calendar-cell:nth-child(7n+4) .pbo-calendar-entry-tooltip:not(.pbo-calendar-entry-tooltip--compact) { left: -300%; }
.pbo-calendar-grid__days > button.pbo-calendar-cell:nth-child(7n+5) .pbo-calendar-entry-tooltip:not(.pbo-calendar-entry-tooltip--compact) { left: -400%; }
.pbo-calendar-grid__days > button.pbo-calendar-cell:nth-child(7n+6) .pbo-calendar-entry-tooltip:not(.pbo-calendar-entry-tooltip--compact) { left: -500%; }
.pbo-calendar-grid__days > button.pbo-calendar-cell:nth-child(7n) .pbo-calendar-entry-tooltip:not(.pbo-calendar-entry-tooltip--compact) { left: -600%; }

/* Ultima fila de la rejilla (ultimas 7 celdas): el panel se abre hacia arriba para
   no salirse por debajo de la tarjeta de pestañas (que recorta con overflow:hidden). */
.pbo-calendar-grid__days > button.pbo-calendar-cell:nth-last-child(-n+7) .pbo-calendar-entry-tooltip:not(.pbo-calendar-entry-tooltip--compact) {
    top: auto;
    bottom: calc(100% - 0.125rem);
}

button.pbo-calendar-cell:disabled {
    color: inherit;
}

.pbo-calendar-cell__header {
    display: flex;
    align-items: flex-start;
    justify-content: flex-start;
    width: 100%;
    margin-bottom: 0.5rem;
}

.pbo-calendar-cell__day-number {
    color: var(--pbo-gray-700);
    font-size: 1rem;
    font-weight: 600;
}

.pbo-calendar-cell__day-number--muted {
    color: var(--pbo-gray-700);
}

.pbo-calendar-cell__empty {
    color: var(--pbo-gray-400);
    font-size: 0.75rem;
    font-style: italic;
}

.pbo-calendar-cell__content {
    display: flex;
    flex-direction: column;
    width: 100%;
    gap: 0.5rem;
}

.pbo-calendar-cell__code {
    display: flex;
    align-items: center;
    width: 100%;
    min-height: 2rem;
    padding: 0.375rem 0.625rem;
    border-radius: 0.5rem;
    box-sizing: border-box;
    color: var(--pbo-white);
    background: linear-gradient(90deg, var(--pbo-primary-hover) 0%, var(--pbo-primary) 100%);
    font-size: 0.875rem;
    font-weight: 700;
    box-shadow: 0 1px 2px rgba(37, 99, 235, 0.25);
}

.pbo-calendar-cell__code-lock {
    display: inline-flex;
    align-items: center;
    margin-right: 0.25rem;
    flex-shrink: 0;
}

.pbo-calendar-cell__code-lock svg {
    width: 0.875rem;
    height: 0.875rem;
}

/* Candado adicional en la esquina superior derecha de la celda forzada */
.pbo-calendar-cell__header-lock {
    display: inline-flex;
    align-items: center;
    margin-left: auto;
    color: #7c3aed;
}

.pbo-calendar-cell__header-lock svg {
    width: 1rem;
    height: 1rem;
}

/* Celda forzada: el badge del codigo vira a morado */
.pbo-calendar-cell__code--forced {
    background: linear-gradient(90deg, #8b5cf6 0%, #7c3aed 100%);
    box-shadow: 0 1px 2px rgba(124, 58, 237, 0.25);
}

/* Etiqueta del tramo forzado bajo el codigo (scope Dia) */
.pbo-calendar-cell__forced-level {
    display: flex;
    align-items: center;
    gap: 0.25rem;
    padding: 0.1875rem 0.5rem;
    border-radius: 0.5rem;
    background: #f3e8ff;
    color: #7c3aed;
}

.pbo-calendar-cell__forced-level-icon {
    display: inline-flex;
    align-items: center;
    flex-shrink: 0;
}

.pbo-calendar-cell__forced-level-icon svg {
    width: 0.75rem;
    height: 0.75rem;
}

.pbo-calendar-cell__forced-level-text {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 0.75rem;
    font-weight: 600;
}

.pbo-calendar-cell__occupancy {
    display: flex;
    align-items: center;
    gap: 0.375rem;
}

.pbo-calendar-cell__occupancy-track {
    flex: 1;
    height: 0.5rem;
    overflow: hidden;
    border-radius: 9999px;
    background: var(--pbo-gray-200);
}

.pbo-calendar-cell__occupancy-fill {
    height: 100%;
    border-radius: 9999px;
}

.pbo-calendar-cell__occupancy-fill--success {
    background: #22c55e;
}

.pbo-calendar-cell__occupancy-fill--warning {
    background: #eab308;
}

.pbo-calendar-cell__occupancy-fill--high {
    background: var(--pbo-warning);
}

.pbo-calendar-cell__occupancy-fill--danger {
    background: var(--pbo-danger);
}

.pbo-calendar-cell__occupancy-fill--neutral {
    background: var(--pbo-gray-300);
}

.pbo-calendar-cell__occupancy-text {
    min-width: 2rem;
    color: var(--pbo-gray-600);
    text-align: right;
    font-size: 0.75rem;
    font-weight: 500;
}

/* Estado del dia (pools por sesion): alert con icono + color + texto */
.pbo-calendar-cell__session-state {
    display: flex;
    align-items: center;
    gap: 0.25rem;
    min-width: 0;
}

.pbo-calendar-cell__session-state-icon {
    display: inline-flex;
    flex-shrink: 0;
}

.pbo-calendar-cell__session-state-icon svg {
    width: 0.75rem;
    height: 0.75rem;
}

.pbo-calendar-cell__session-state-text {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 0.75rem;
    font-weight: 500;
    color: var(--pbo-gray-600);
}

/* Tono de color del estado de sesion por nivel. Clase unica reutilizada en el icono
   de la celda, el badge, los chips y la fila de pico del tooltip. */
.pbo-session-tone--low {
    color: #22c55e;
}

.pbo-session-tone--medium {
    color: #eab308;
}

.pbo-session-tone--high {
    color: var(--pbo-warning);
}

.pbo-session-tone--critical {
    color: var(--pbo-danger);
}

.pbo-session-tone--forced {
    color: #7c3aed;
}

/* Caption "Forzado manualmente" en el nivel activo del tooltip de dia */
.pbo-calendar-entry-tooltip__forced-note {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    margin-top: 0.25rem;
    color: #7c3aed;
    font-size: 0.75rem;
    font-weight: 600;
}

.pbo-calendar-entry-tooltip__forced-note-icon {
    display: inline-flex;
    align-items: center;
}

.pbo-calendar-entry-tooltip__forced-note-icon svg {
    width: 0.875rem;
    height: 0.875rem;
}

/* Candado en la cabecera de la columna del tramo forzado (tabla de matriz del tooltip) */
.pbo-calendar-entry-tooltip__matrix-header-lock {
    display: inline-flex;
    align-items: center;
    margin-right: 0.25rem;
    color: #7c3aed;
}

.pbo-calendar-entry-tooltip__matrix-header-lock svg {
    width: 0.75rem;
    height: 0.75rem;
}

.pbo-calendar-entry-tooltip {
    position: absolute;
    top: calc(100% - 0.125rem);
    left: 0.75rem;
    z-index: 40;
    width: min(72rem, calc(100vw - 2rem));
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(0.35rem);
    transition: opacity var(--pbo-transition-fast), transform var(--pbo-transition-fast), visibility var(--pbo-transition-fast);
    transition-delay: 0s;
}

/* El tooltip de sesion no lleva tabla de matriz: ancho ajustado al contenido. */
.pbo-calendar-entry-tooltip--compact {
    width: min(22rem, calc(100vw - 2rem));
}

.pbo-calendar-entry-tooltip__card {
    overflow: hidden;
    border: 1px solid var(--pbo-gray-200);
    border-radius: 1rem;
    background: var(--pbo-white);
    box-shadow: 0 18px 40px rgba(15, 23, 42, 0.18);
}

.pbo-calendar-entry-tooltip__section {
    padding: 1rem 1rem 0.875rem;
}

.pbo-calendar-entry-tooltip__section + .pbo-calendar-entry-tooltip__section {
    border-top: 1px solid var(--pbo-gray-200);
}

.pbo-calendar-entry-tooltip__title-row {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.pbo-calendar-entry-tooltip__eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    color: var(--pbo-gray-500);
    font-size: 0.875rem;
    font-weight: 500;
}

.pbo-calendar-entry-tooltip__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1rem;
    height: 1rem;
    flex-shrink: 0;
}

.pbo-calendar-entry-tooltip__icon svg {
    width: 1rem;
    height: 1rem;
    display: block;
}

.pbo-calendar-entry-tooltip__title {
    margin-bottom: 0 !important;
    color: var(--pbo-gray-900);
    font-size: 1.375rem;
    font-weight: 700;
}

.pbo-calendar-entry-tooltip__meta {
    display: flex;
    flex-direction: column;
    gap: 0.375rem;
    margin-top: 0.75rem;
}

.pbo-calendar-entry-tooltip__meta-item {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    color: var(--pbo-gray-700);
    font-size: 0.95rem;
    font-weight: 500;
}

.pbo-calendar-entry-tooltip__meta-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1rem;
    height: 1rem;
    color: var(--pbo-gray-400);
    font-size: 0.8rem;
}

.pbo-calendar-entry-tooltip__section--active-level {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding-top: 0.9rem;
    padding-bottom: 0.9rem;
}

.pbo-calendar-entry-tooltip__active-label {
    color: var(--pbo-gray-600);
    font-size: 0.875rem;
    font-weight: 600;
}

.pbo-calendar-entry-tooltip__active-value {
    font-size: 0.875rem;
    font-weight: 700;
}

.pbo-calendar-entry-tooltip__active-value--low {
    color: var(--pbo-success);
}

.pbo-calendar-entry-tooltip__active-value--medium {
    color: #0369a1;
}

.pbo-calendar-entry-tooltip__active-value--high {
    color: #b45309;
}

.pbo-calendar-entry-tooltip__active-value--critical {
    color: #991b1b;
}

/* Tooltip de sesion: badge "Estado del dia" */
.pbo-session-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    align-self: flex-start;
    padding: 0.25rem 0.625rem;
    border-radius: 0.5rem;
    font-size: 0.875rem;
    font-weight: 600;
}

.pbo-session-badge__icon {
    display: inline-flex;
}

.pbo-session-badge__icon svg {
    width: 0.875rem;
    height: 0.875rem;
}

.pbo-session-badge--low {
    background: #dcfce7;
    color: #15803d;
}

.pbo-session-badge--medium {
    background: #fef9c3;
    color: #a16207;
}

.pbo-session-badge--high {
    background: var(--pbo-warning-light);
    color: #b45309;
}

.pbo-session-badge--critical {
    background: var(--pbo-danger-light);
    color: #991b1b;
}

.pbo-session-badge--forced {
    background: var(--pbo-gray-100);
    color: var(--pbo-gray-700);
}

/* Tooltip de sesion: chips "Sesiones por nivel" */
.pbo-session-level-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.pbo-session-level-chip {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    padding: 0.125rem 0.5rem;
    border-radius: 9999px;
    background: var(--pbo-gray-100);
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--pbo-gray-700);
}

.pbo-session-level-chip__icon {
    display: inline-flex;
}

.pbo-session-level-chip__icon svg {
    width: 0.75rem;
    height: 0.75rem;
}

/* Tooltip de sesion: fila "Sesion pico" */
.pbo-session-peak {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.pbo-session-peak__icon {
    display: inline-flex;
}

.pbo-session-peak__icon svg {
    width: 1rem;
    height: 1rem;
}

.pbo-session-peak__range {
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--pbo-gray-700);
}

.pbo-session-peak__value {
    font-size: 0.875rem;
    font-weight: 700;
    margin-left: auto;
}

/* Tooltip de sesion: meta (escenario / calculo) */
.pbo-calendar-entry-tooltip__session-info {
    display: flex;
    flex-direction: column;
    gap: 0.125rem;
    padding: 0 1rem 0.5rem;
    font-size: 0.75rem;
    color: var(--pbo-gray-500);
}

.pbo-calendar-entry-tooltip__matrix {
    padding: 0 1rem 1rem;
}

.pbo-calendar-entry-tooltip__matrix-table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    table-layout: fixed;
}

.pbo-calendar-entry-tooltip__matrix-table th,
.pbo-calendar-entry-tooltip__matrix-table td {
    border-right: 1px solid #dbe7f5;
    border-bottom: 1px solid #dbe7f5;
}

.pbo-calendar-entry-tooltip__matrix-table tr:first-child th,
.pbo-calendar-entry-tooltip__matrix-table tr:first-child td {
    border-top: 1px solid #dbe7f5;
}

.pbo-calendar-entry-tooltip__matrix-table th:first-child,
.pbo-calendar-entry-tooltip__matrix-table td:first-child {
    border-left: 1px solid #dbe7f5;
}

.pbo-calendar-entry-tooltip__corner-header {
    width: 12rem;
    padding: 0.9rem 0.75rem;
    color: var(--pbo-gray-500);
    background: #f8fafc;
    font-size: 0.875rem;
    font-weight: 600;
    text-align: left;
    vertical-align: middle;
}

.pbo-calendar-entry-tooltip__matrix-header {
    position: static;
    min-width: 5rem;
}

.pbo-calendar-entry-tooltip__matrix-header--selected {
    box-shadow: inset 0 0 0 2px #4ade80;
}

.pbo-calendar-entry-tooltip__matrix-row .pbo-matrix-cells__scenario-content {
    min-height: 3.25rem;
}

.pbo-calendar-entry-tooltip__scenario-cell {
    position: static;
    width: 20rem;
    background: #f8fafc;
}

.pbo-calendar-entry-tooltip__scenario-cell--selected {
    background: #eff6ff;
}

.pbo-calendar-entry-tooltip__matrix-cell {
    min-width: 5rem;
    padding: 0.85rem 0.75rem !important;
    color: var(--pbo-gray-900);
    font-size: 1rem;
    font-weight: 600;
    text-align: center;
    vertical-align: middle;
}

.pbo-calendar-entry-tooltip__matrix-cell--empty {
    color: var(--pbo-gray-400);
    font-weight: 500;
}

.pbo-calendar-entry-tooltip__matrix-cell--selected {
    position: relative;
    background: linear-gradient(180deg, rgba(74, 222, 128, 0.28) 0%, rgba(74, 222, 128, 0.18) 100%) !important;
    box-shadow: inset 0 0 0 2px #4ade80;
    color: #166534;
    font-weight: 700;
}

.pbo-calendar-entry-tooltip__footer {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    column-gap: 1rem;
    row-gap: 0.5rem;
    padding: 0.9rem 1rem 1rem;
    border-top: 1px solid var(--pbo-gray-200);
    background: #f8fafc;
}

.pbo-calendar-entry-tooltip__footer-item {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    color: var(--pbo-gray-600);
    font-size: 0.875rem;
    font-weight: 500;
}

@media (max-width: 767.98px) {
    .pbo-calendar-toolbar__content {
        flex-direction: column;
        align-items: stretch;
    }

    .pbo-calendar-toolbar__navigation {
        justify-content: space-between;
    }

    button.pbo-calendar-toolbar__today-btn {
        align-self: flex-end;
    }

    .pbo-calendar-grid__weekdays,
    .pbo-calendar-grid__days {
        grid-template-columns: repeat(7, minmax(7rem, 1fr));
    }

    .pbo-calendar-grid {
        overflow-x: auto;
    }

    .pbo-calendar-entry-tooltip {
        left: 0.5rem;
        width: min(34rem, calc(100vw - 1rem));
    }

    .pbo-calendar-entry-tooltip__title {
        font-size: 1.35rem;
    }
}

hr {
    margin: 1rem 0;
}

.b-listgroup-item.bg-primary-400 {
    background-color: #B8DDF2 !important;
    color: #1A628B !important;
}

.b-listgroup-item.bg-success-400 {
    background-color: #CCE8CE !important;
    color: #407648 !important;
}

/* Breadcrumb separator: "/" instead of ">" (Blazorise Tailwind) */
.b-breadcrumb .b-breadcrumb-item > div > svg {
    display: none !important;
}

.b-breadcrumb .b-breadcrumb-item:not(:first-child) > div::before {
    content: "/" !important;
    color: #9ca3af;
    margin-right: 0.75rem;
    margin-left: 0.25rem;
}


.pbo-calendar-bulk {
    margin-top: 1.5rem;
}

.pbo-calendar-bulk__card {
    padding: 1.5rem;
    border: 1px solid var(--pbo-gray-200);
    border-radius: 0.75rem;
    background: var(--pbo-white);
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.06);
}

.pbo-calendar-bulk__layout {
    display: grid;
    grid-template-columns: minmax(16rem, 0.8fr) minmax(0, 1.2fr);
    gap: 1.5rem;
}

.pbo-calendar-bulk__section {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.pbo-calendar-bulk__section--right {
    padding-left: 0;
    border-left: 0;
}

.pbo-calendar-bulk__section-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 1rem;
}

.pbo-calendar-bulk__section-heading-main {
    display: inline-flex;
    align-items: flex-start;
    gap: 0.75rem;
    min-width: 0;
}

.pbo-calendar-bulk__section-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 16px;
    height: 16px;
    border-radius: 0.625rem;
    flex: 0 0 16px;
}

.pbo-calendar-bulk__section-icon > svg {
    width: 16px !important;
    height: 16px !important;
}

.pbo-calendar-bulk__section-icon--blue {
    color: var(--pbo-primary);
}

.pbo-calendar-bulk__section-icon--violet {
    color: #7c3aed;
}

.pbo-calendar-bulk__section-icon--green {
    color: #16a34a;
}

.pbo-calendar-bulk__section-title {
    margin-bottom: 0 !important;
    color: var(--pbo-gray-900);
    font-size: 0.9375rem;
    font-weight: 600;
}

.pbo-calendar-bulk__stack {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
    margin-top: 0;
}

.pbo-calendar-bulk__section-body {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
}

.pbo-calendar-bulk__subsection {
    padding-top: 1.25rem;
    border-top: 1px solid var(--pbo-gray-200);
}

.pbo-calendar-bulk__subsection > .pbo-calendar-bulk__section-heading {
    margin-bottom: 1rem;
}

.pbo-calendar-bulk__field-grid {
    display: grid;
    gap: 1rem;
    margin-top: 0;
}

.pbo-calendar-bulk__field-grid--single {
    grid-template-columns: 1fr;
}

.pbo-calendar-bulk__field-grid--double {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

/* Separa el bloque de forzado del grid de matriz/escenario en la edicion multiple */
.pbo-calendar-bulk__section-body > .pbo-calendar-entry-modal__force {
    margin-top: 1.25rem;
}

.pbo-calendar-bulk__field,
.pbo-calendar-bulk__field.field {
    margin-bottom: 0 !important;
}

.pbo-calendar-bulk__field-label {
    margin-bottom: 0.375rem;
    color: var(--pbo-gray-600);
    font-size: 0.875rem;
    font-weight: 500;
}

.pbo-calendar-bulk__footer {
    margin-top: auto;
    padding-top: 1.5rem;
}

.pbo-calendar-bulk__summary {
    margin-top: 1rem;
}

.pbo-calendar-bulk__summary-count {
    font-weight: 600;
}

.pbo-calendar-bulk__summary-days {
    margin-left: 0.25rem;
}

.pbo-calendar-bulk-confirm-modal {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.pbo-calendar-bulk-confirm-modal__warning {
    margin-bottom: 0;
    border-color: #fde68a;
    background: #fffbeb;
}

.pbo-calendar-bulk-confirm-modal__warning-row {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
}

.pbo-calendar-bulk-confirm-modal__warning-icon {
    display: inline-flex;
    flex: 0 0 auto;
    color: #d97706;
}

.pbo-calendar-bulk-confirm-modal__warning-icon > svg {
    width: 1.5rem;
    height: 1.5rem;
}

.pbo-calendar-bulk-confirm-modal__warning-text {
    color: #92400e;
    font-size: 0.875rem;
    line-height: 1.25rem;
}

.pbo-calendar-bulk-confirm-modal__warning-count {
    font-weight: 700;
}

.pbo-calendar-bulk-confirm-modal__summary {
    padding: 1rem;
    border-radius: 0.75rem;
    background: #f8fafc;
}

.pbo-calendar-bulk-confirm-modal__summary-title {
    margin-bottom: 0.75rem !important;
    color: var(--pbo-gray-900);
    font-size: 0.875rem;
    font-weight: 600;
}

.pbo-calendar-bulk-confirm-modal__summary-grid {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.pbo-calendar-bulk-confirm-modal__summary-row {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
}

.pbo-calendar-bulk-confirm-modal__summary-group {
    margin-top: 0.25rem;
    padding-top: 0.75rem;
    border-top: 1px solid var(--pbo-gray-200);
}

.pbo-calendar-bulk-confirm-modal__summary-label {
    color: var(--pbo-gray-600);
    font-size: 0.875rem;
}

.pbo-calendar-bulk-confirm-modal__summary-value {
    color: var(--pbo-gray-900);
    font-size: 0.875rem;
    font-weight: 500;
    text-align: right;
}

.pbo-calendar-bulk-confirm-modal__summary-value--accent {
    color: var(--pbo-primary);
    font-weight: 700;
}

.pbo-calendar-bulk-confirm-modal__confirm-btn > svg {
    width: 1rem;
    height: 1rem;
}

 (max-width: 767.98px) {
    .pbo-calendar-bulk-confirm-modal__summary-row {
        flex-direction: column;
        gap: 0.25rem;
    }

    .pbo-calendar-bulk-confirm-modal__summary-value {
        text-align: left;
    }
}

.pbo-calendar-bulk ::deep .b-field-body,
.pbo-calendar-bulk ::deep .validation,
.pbo-calendar-bulk ::deep .b-date-picker,
.pbo-calendar-bulk ::deep .b-select {
    width: 100%;
}

.pbo-calendar-bulk .pbo-calendar-entry-modal__label-icon {
    width: 16px;
    height: 16px;
    flex: 0 0 16px;
}

.pbo-calendar-bulk .pbo-calendar-entry-modal__label-icon > svg {
    width: 16px !important;
    height: 16px !important;
}

.pbo-calendar-bulk ::deep .b-date-picker input,
.pbo-calendar-bulk ::deep .form-control,
.pbo-calendar-bulk ::deep .form-select,
.pbo-calendar-bulk ::deep input,
.pbo-calendar-bulk ::deep select {
    min-height: 2.75rem;
}

.pbo-calendar-bulk ::deep .form-control:disabled,
.pbo-calendar-bulk ::deep .form-select:disabled,
.pbo-calendar-bulk ::deep input:disabled,
.pbo-calendar-bulk ::deep select:disabled {
    background: var(--pbo-gray-100) !important;
    color: var(--pbo-gray-500);
    cursor: not-allowed;
}

.pbo-calendar-bulk__preset-list {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-bottom: 1rem;
}

button.pbo-calendar-bulk__preset-btn {
    border: 0;
    border-radius: 999px;
    padding: 0.375rem 0.875rem;
    color: var(--pbo-gray-700);
    background: var(--pbo-gray-100);
    font-size: 0.75rem;
    font-weight: 500;
    transition: background-color var(--pbo-transition-fast), color var(--pbo-transition-fast);
}

button.pbo-calendar-bulk__preset-btn:hover {
    color: var(--pbo-gray-900);
    background: var(--pbo-gray-200);
}

.pbo-calendar-bulk__day-grid {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: 0.5rem;
}

button.pbo-calendar-bulk__day-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.5rem;
    height: 2.5rem;
    min-width: 2.5rem;
    border: 0;
    border-radius: 999px;
    padding: 0;
    font-size: 0.8125rem;
    font-weight: 700;
    transition: background-color var(--pbo-transition-fast), color var(--pbo-transition-fast), box-shadow var(--pbo-transition-fast);
}

button.pbo-calendar-bulk__day-btn--selected {
    color: var(--pbo-white);
    background: var(--pbo-primary);
    box-shadow: 0 6px 12px rgba(37, 99, 235, 0.2);
}

button.pbo-calendar-bulk__day-btn--selected:hover {
    background: var(--pbo-primary-hover);
}

button.pbo-calendar-bulk__day-btn--unselected {
    color: var(--pbo-gray-500);
    background: var(--pbo-gray-100);
}

button.pbo-calendar-bulk__day-btn--unselected:hover {
    color: var(--pbo-gray-700);
    background: var(--pbo-gray-200);
}

.pbo-calendar-daily {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}

.pbo-calendar-daily__date-control-alert {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem;
    border: 1px solid var(--pbo-warning-border);
    border-radius: 1rem;
    background: linear-gradient(180deg, #fffaf0 0%, #fffdf7 100%);
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.06);
}

.pbo-calendar-daily__date-control-alert-main {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    min-width: 0;
}

.pbo-calendar-daily__date-control-alert-icon {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    border-radius: 0.75rem;
    background: #fff2d6;
    color: var(--pbo-warning-hover);
}

.pbo-calendar-daily__date-control-alert-icon > svg {
    width: 1.25rem;
    height: 1.25rem;
}

.pbo-calendar-daily__date-control-alert-copy {
    min-width: 0;
}

.pbo-calendar-daily__date-control-alert-title {
    color: #92400e;
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.3;
}

.pbo-calendar-daily__date-control-alert-text {
    margin-top: 0.25rem;
    color: #c2410c;
    font-size: 0.875rem;
    line-height: 1.45;
}

a.pbo-calendar-daily__date-control-alert-link {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    gap: 0.5rem;
    padding: 0.75rem 1rem;
    border-radius: 0.75rem;
    background: #fff2d6;
    color: #c2410c;
    font-size: 0.875rem;
    font-weight: 600;
    text-decoration: none;
    transition: background-color var(--pbo-transition-fast), color var(--pbo-transition-fast);
}

a.pbo-calendar-daily__date-control-alert-link:hover {
    background: #ffe7b0;
    color: #9a3412;
}

a.pbo-calendar-daily__date-control-alert-link > svg {
    width: 1rem;
    height: 1rem;
}

.pbo-calendar-daily__filter,
.pbo-calendar-daily__list {
    overflow: hidden;
    border: 1px solid var(--pbo-gray-200);
    border-radius: 0.75rem;
    background: var(--pbo-white);
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.06);
}

.pbo-calendar-daily__filter-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.5rem 1rem;
}

button.pbo-calendar-daily__filter-toggle {
    flex: 1 1 auto;
    border: 0;
    border-radius: 0.75rem;
    padding: 0.5rem 0;
    background: transparent;
    color: inherit;
    text-align: left;
    transition: background-color var(--pbo-transition-fast);
}

button.pbo-calendar-daily__filter-toggle:focus,
button.pbo-calendar-daily__filter-toggle:focus-visible {
    outline: none;
    box-shadow: none;
}

.pbo-calendar-daily__filter-title-wrap {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
}

.pbo-calendar-daily__filter-title-wrap {
    justify-content: flex-start;
}

.pbo-calendar-daily__filter-summary {
    display: inline-flex;
    align-items: center;
    min-width: 0;
    max-width: min(32rem, 45vw);
    padding: 0.25rem 0.625rem;
    border: 1px solid var(--pbo-gray-200);
    border-radius: 999px;
    background: var(--pbo-gray-50);
    color: var(--pbo-gray-600);
    font-size: 0.75rem;
    font-weight: 500;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.pbo-calendar-daily__filter-actions {
    display: flex;
    flex: 1 1 auto;
    align-items: center;
    gap: 0.5rem;
    justify-content: flex-end;
}

.pbo-calendar-daily__filter-icon,
.pbo-calendar-daily__filter-chevron {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--pbo-gray-500);
}

.pbo-calendar-daily__filter-icon > svg,
.pbo-calendar-daily__filter-chevron > svg {
    width: 1.25rem;
    height: 1.25rem;
}

button.pbo-calendar-daily__filter-clear {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    border: 0;
    border-radius: 0.5rem;
    padding: 0.25rem 0.5rem;
    background: transparent;
    color: var(--pbo-gray-500);
    font-size: 0.875rem;
    transition: background-color var(--pbo-transition-fast), color var(--pbo-transition-fast);
}

button.pbo-calendar-daily__filter-clear > svg {
    width: 1rem;
    height: 1rem;
}

button.pbo-calendar-daily__filter-clear:hover {
    background: #fef2f2;
    color: #dc2626;
}

button.pbo-calendar-daily__filter-clear:focus,
button.pbo-calendar-daily__filter-clear:focus-visible {
    outline: none;
    box-shadow: none;
}

button.pbo-calendar-daily__filter-chevron-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 0;
    border-radius: 0.5rem;
    padding: 0.25rem;
    background: transparent;
    color: var(--pbo-gray-400);
    transition: background-color var(--pbo-transition-fast), color var(--pbo-transition-fast);
}

button.pbo-calendar-daily__filter-chevron-btn:focus,
button.pbo-calendar-daily__filter-chevron-btn:focus-visible {
    outline: none;
    box-shadow: none;
}

.pbo-calendar-daily__filter-title {
    margin-bottom: 0 !important;
    color: var(--pbo-gray-900);
    font-size: 1rem;
    font-weight: 600;
}

.pbo-calendar-daily__filter-body {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
    padding: 1rem;
    padding-top: 0.75rem;
}

.pbo-calendar-daily__filter-mode-row {
    display: flex;
    align-items: center;
    gap: 1rem;
    flex-wrap: wrap;
}

.pbo-calendar-daily__filter-mode-label,
.pbo-calendar-daily__filter-group-label {
    display: block;
    margin-bottom: 0.375rem;
    color: var(--pbo-gray-500);
    font-size: 0.75rem;
    font-weight: 500;
}

.pbo-calendar-daily__filter-mode-label {
    margin-bottom: 0;
    color: var(--pbo-gray-700);
    font-size: 0.875rem;
}

.pbo-calendar-daily__filter-mode-switch {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    padding: 0;
}

button.pbo-calendar-daily__filter-mode-btn {
    border: 0;
    border-radius: 0.5rem;
    padding: 0.5rem 0.875rem;
    background: transparent;
    color: var(--pbo-gray-600);
    font-size: 0.875rem;
    font-weight: 500;
    transition: background-color var(--pbo-transition-fast), color var(--pbo-transition-fast), box-shadow var(--pbo-transition-fast);
}

button.pbo-calendar-daily__filter-mode-btn:hover {
    color: var(--pbo-gray-900);
}

button.pbo-calendar-daily__filter-mode-btn--active,
button.pbo-calendar-daily__filter-mode-btn--active:hover {
    background: var(--pbo-white);
    color: var(--pbo-gray-900);
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.08);
}

.pbo-calendar-daily__filter-group {
    display: flex;
    flex-direction: column;
}

.pbo-calendar-daily__month-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 0.375rem;
}

.pbo-calendar-daily__weekday-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 0.375rem;
}

button.pbo-calendar-daily__month-btn {
    min-width: 3rem;
    border: 1px solid transparent;
    border-radius: 0.625rem;
    padding: 0.5rem 0.875rem;
    background: var(--pbo-gray-100);
    color: var(--pbo-gray-600);
    font-size: 0.875rem;
    font-weight: 500;
    transition: background-color var(--pbo-transition-fast), color var(--pbo-transition-fast), border-color var(--pbo-transition-fast);
}

button.pbo-calendar-daily__month-btn:hover {
    background: var(--pbo-gray-200);
    color: var(--pbo-gray-900);
}

button.pbo-calendar-daily__month-btn--selected,
button.pbo-calendar-daily__month-btn--selected:hover {
    border-color: rgba(37, 99, 235, 0.2);
    background: #dbeafe;
    color: #1d4ed8;
}

button.pbo-calendar-daily__weekday-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.25rem;
    height: 2.25rem;
    min-width: 2.25rem;
    border: 1px solid transparent;
    border-radius: 0.625rem;
    padding: 0;
    font-size: 0.875rem;
    font-weight: 700;
    transition: background-color var(--pbo-transition-fast), color var(--pbo-transition-fast), border-color var(--pbo-transition-fast);
}

button.pbo-calendar-daily__weekday-btn--selected {
    border-color: rgba(37, 99, 235, 0.2);
    background: var(--pbo-primary);
    color: var(--pbo-white);
}

button.pbo-calendar-daily__weekday-btn--selected:hover {
    background: var(--pbo-primary-hover);
}

button.pbo-calendar-daily__weekday-btn--unselected {
    background: var(--pbo-gray-100);
    color: var(--pbo-gray-600);
}

button.pbo-calendar-daily__weekday-btn--unselected:hover {
    background: var(--pbo-gray-200);
    color: var(--pbo-gray-900);
}

.pbo-calendar-daily__filter-range-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

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

.pbo-calendar-daily__list-count {
    color: var(--pbo-gray-600);
    font-size: 0.875rem;
}

.pbo-calendar-daily__list-hint {
    color: var(--pbo-gray-500);
    font-size: 0.875rem;
}

.pbo-calendar-daily__items {
    display: flex;
    flex-direction: column;
}

.pbo-calendar-daily__item {
    display: flex;
    min-width: 0;
    transition: background-color var(--pbo-transition-fast);
}

.pbo-calendar-daily__item + .pbo-calendar-daily__item {
    border-top: 1px solid var(--pbo-gray-100);
}

.pbo-calendar-daily__item:hover {
    background: var(--pbo-gray-50);
}

.pbo-calendar-daily__item--month-boundary {
    border-top: 4px solid var(--pbo-gray-300);
}

.pbo-calendar-daily__date-panel {
    display: flex;
    flex: 0 0 5rem;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.125rem;
    padding: 1rem 0.5rem;
    border-right: 1px solid var(--pbo-gray-100);
    background: var(--pbo-gray-50);
    text-align: center;
}

.pbo-calendar-daily__date-panel--accent {
    border-right-color: #bfdbfe;
    background: #eff6ff;
}

.pbo-calendar-daily__date-weekday,
.pbo-calendar-daily__date-month {
    color: var(--pbo-gray-500);
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.pbo-calendar-daily__date-panel--accent .pbo-calendar-daily__date-weekday,
.pbo-calendar-daily__date-panel--accent .pbo-calendar-daily__date-month {
    color: #2563eb;
}

.pbo-calendar-daily__date-day {
    margin: 0.125rem 0;
    color: var(--pbo-gray-800);
    font-size: 1.875rem;
    font-weight: 700;
    line-height: 1;
}

.pbo-calendar-daily__date-panel--accent .pbo-calendar-daily__date-day {
    color: #1d4ed8;
}

.pbo-calendar-daily__date-year {
    color: var(--pbo-gray-500);
    font-size: 0.625rem;
}

.pbo-calendar-daily__date-panel--accent .pbo-calendar-daily__date-year {
    color: #60a5fa;
}

.pbo-calendar-daily__content {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    min-width: 0;
    padding: 1rem;
}

.pbo-calendar-daily__content-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
}

.pbo-calendar-daily__main {
    flex: 1 1 auto;
    min-width: 0;
}

.pbo-calendar-daily__title {
    margin-bottom: 0 !important;
    color: var(--pbo-gray-900);
    font-size: 1.125rem;
    font-weight: 700;
}

.pbo-calendar-daily__meta {
    margin-top: 0.25rem;
    flex-wrap: wrap;
}

.pbo-calendar-daily__actions {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-shrink: 0;
}

.pbo-calendar-daily__occupancy-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.375rem 0.75rem;
    border-radius: 0.625rem;
}

.pbo-calendar-daily__occupancy-badge--success {
    background: #dcfce7;
    color: #16a34a;
}

.pbo-calendar-daily__occupancy-badge--warning {
    background: #fef3c7;
    color: #ca8a04;
}

.pbo-calendar-daily__occupancy-badge--high {
    background: #fed7aa;
    color: #ea580c;
}

.pbo-calendar-daily__occupancy-badge--danger {
    background: #fee2e2;
    color: #dc2626;
}

.pbo-calendar-daily__occupancy-badge--neutral {
    background: #f3f4f6;
    color: #6b7280;
}

.pbo-calendar-daily__occupancy-badge--forced {
    background: #f3e8ff;
    color: #7c3aed;
}

.pbo-calendar-daily__occupancy-indicator {
    font-size: 1rem;
    line-height: 1;
}

.pbo-calendar-daily__occupancy-badge--forced .pbo-calendar-daily__occupancy-indicator {
    display: inline-flex;
    align-items: center;
}

.pbo-calendar-daily__occupancy-badge--forced .pbo-calendar-daily__occupancy-indicator svg {
    width: 1rem;
    height: 1rem;
}

.pbo-calendar-daily__occupancy-label {
    white-space: nowrap;
    font-size: 0.875rem;
    font-weight: 500;
}

button.pbo-calendar-daily__configure-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    border: 0;
    border-radius: 0.625rem;
    padding: 0.375rem 0.75rem;
    background: transparent;
    color: var(--pbo-primary);
    font-size: 0.875rem;
    font-weight: 500;
    transition: background-color var(--pbo-transition-fast), color var(--pbo-transition-fast);
}

button.pbo-calendar-daily__configure-btn:hover {
    background: #eff6ff;
    color: var(--pbo-primary-hover);
}

button.pbo-calendar-daily__configure-btn > svg {
    width: 1rem;
    height: 1rem;
}

.pbo-calendar-daily__progress-row {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-top: 0.75rem;
}

.pbo-calendar-daily__progress-wrap {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex: 1 1 auto;
    max-width: 22rem;
}

.pbo-calendar-daily__progress-text {
    width: 3rem;
    color: var(--pbo-gray-700);
    text-align: right;
    font-size: 0.875rem;
    font-weight: 500;
}

@media (max-width: 991.98px) {
    .pbo-calendar-daily__content-header,
    .pbo-calendar-daily__actions {
        flex-direction: column;
        align-items: flex-start;
    }

    .pbo-calendar-daily__progress-wrap {
        max-width: none;
    }
}

@media (max-width: 767.98px) {
    .pbo-calendar-daily__filter-range-grid {
        grid-template-columns: 1fr;
    }

    .pbo-calendar-daily__date-control-alert {
        align-items: stretch;
        flex-direction: column;
    }

    a.pbo-calendar-daily__date-control-alert-link {
        justify-content: center;
        width: 100%;
    }

    .pbo-calendar-daily__item {
        flex-direction: column;
    }

    .pbo-calendar-daily__date-panel {
        flex-direction: row;
        justify-content: flex-start;
        gap: 0.5rem;
        border-right: 0;
        border-bottom: 1px solid var(--pbo-gray-100);
    }

    .pbo-calendar-daily__date-day {
        font-size: 1.5rem;
    }
}

@media (max-width: 991.98px) {
    .pbo-calendar-bulk__layout {
        grid-template-columns: 1fr;
    }

    .pbo-calendar-bulk__section--right {
        padding-left: 0;
        padding-top: 0;
        border-left: 0;
        border-top: 0;
    }
}

@media (max-width: 767.98px) {
    .pbo-calendar-bulk__card {
        padding: 1rem;
    }

    .pbo-calendar-bulk__field-grid--double {
        grid-template-columns: 1fr;
    }

    .pbo-calendar-bulk__day-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}


/* Shared provider/category/product tree */
.pbo-tree {
    border: 1px solid #e2e8f0;
    border-radius: 0.75rem;
    overflow: hidden;
}

.pbo-tree__header {
    background-color: #f8fafc;
    border-bottom: 1px solid #e2e8f0;
    padding: 0.5rem 0.75rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
}

.pbo-tree__title {
    font-size: 0.875rem;
    line-height: 1.25rem;
    font-weight: 500;
    color: #334155;
}

.pbo-tree__summary {
    font-size: 0.75rem;
    line-height: 1rem;
    color: #64748b;
}

.pbo-tree__body {
    max-height: 18rem;
    overflow-y: auto;
    padding: 0.25rem;
}

.pbo-tree__empty {
    padding: 0.5rem;
    font-size: 0.875rem;
    line-height: 1.25rem;
    color: #64748b;
}

.pbo-tree__node-content {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
}

.pbo-tree__row {
    --pbo-tree-depth: 0;
    min-height: 2rem;
    padding: 0.25rem 0.375rem 0.25rem calc(0.375rem + var(--pbo-tree-depth) * 1.25rem);
    border-radius: 0.375rem;
    display: flex;
    align-items: center;
    gap: 0.375rem;
}

.pbo-tree__row:hover {
    background-color: #f8fafc;
}

.pbo-tree__row--disabled {
    opacity: 0.72;
}

.pbo-tree__row--disabled:hover {
    background-color: transparent;
}

.pbo-tree__toggle-btn {
    width: 1rem !important;
    height: 1rem !important;
    min-width: 1rem !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    color: #94a3b8 !important;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.pbo-tree__toggle-btn:hover {
    color: #64748b !important;
}

.pbo-tree__toggle-btn:focus,
.pbo-tree__toggle-btn:focus-visible,
.pbo-tree__toggle-btn:active {
    outline: none !important;
    box-shadow: none !important;
}

.pbo-tree__toggle-icon {
    width: 0.75rem;
    height: 0.75rem;
}

.pbo-tree__toggle-placeholder {
    width: 1rem;
    min-width: 1rem;
}

.pbo-tree__checkbox {
    width: 1rem !important;
    height: 1rem !important;
    min-width: 1rem !important;
    padding: 0 !important;
    border: 1px solid #cbd5e1 !important;
    border-radius: 0.25rem !important;
    background: #ffffff !important;
    color: #ffffff !important;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.pbo-tree__checkbox:hover {
    border-color: #93c5fd !important;
}

.pbo-tree__checkbox--disabled,
.pbo-tree__checkbox--disabled:hover {
    border-color: #fecaca !important;
    background: #fff5f5 !important;
    color: #fca5a5 !important;
    cursor: not-allowed !important;
}

.pbo-tree__checkbox--checked {
    background: #3b82f6 !important;
    border-color: #3b82f6 !important;
    color: #ffffff !important;
}

.pbo-tree__checkbox--indeterminate {
    background: #dbeafe !important;
    border-color: #60a5fa !important;
    color: #2563eb !important;
}

.pbo-tree__checkbox-icon {
    width: 0.625rem;
    height: 0.625rem;
}

.pbo-tree__provider-name {
    font-size: 0.875rem;
    line-height: 1.25rem;
    font-weight: 500;
    color: #1e293b;
}

.pbo-tree__category-name,
.pbo-tree__product-name {
    font-size: 0.875rem;
    line-height: 1.25rem;
    color: #475569;
}

.pbo-tree__count {
    font-size: 0.75rem;
    line-height: 1rem;
    color: #94a3b8;
}

.pbo-tree__disabled-alert {
    margin-left: 0.5rem;
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    flex: 0 0 auto;
    padding: 0.1875rem 0.5rem;
    border: 1px solid #fecaca;
    border-radius: 9999px;
    background-color: #fef2f2;
    color: #b91c1c;
    font-size: 0.75rem;
    line-height: 1rem;
    white-space: nowrap;
}

.pbo-tree__disabled-alert-icon {
    font-size: 0.75rem;
}

.pbo-tree__level-icon {
    width: 0.875rem;
    color: #64748b;
}

.pbo-tree__level-icon--provider {
    color: #2563eb;
}

.pbo-tree__level-icon--category {
    color: #d97706;
}

.pbo-tree__level-icon--product {
    color: #16a34a;
}


/* Tabs */
ul[role="tablist"] > li {
    position: relative;
}

ul[role="tablist"] > li > *[role="tab"] {
    margin-bottom: -1px;
    border: 1px solid transparent;
    border-top-left-radius: 0.25rem;
    border-top-right-radius: 0.25rem;
}

ul[role="tablist"] > li > *[role="tab"][aria-selected="true"] {
    border-color: var(--color-gray-200);
    border-bottom-color: var(--color-gray-50);
    background-color: var(--color-gray-50);
}

ul[role="tablist"] > li > *[role="tab"][aria-selected="false"]:hover {
    border-color: var(--color-gray-200);
    border-bottom-color: var(--color-gray-50);
}

*[role=tabpanel] {
    border-start-start-radius: 0;
}

/* Disclaimer Keycloak (UserSync): espaciado y vinetas del contenido del aviso */
.keycloak-disclaimer-content p {
    margin-bottom: 0.75rem;
}

.keycloak-disclaimer-content ul {
    margin: 0 0 1rem;
    padding-left: 1.5rem;
    list-style: disc;
}

.keycloak-disclaimer-content li {
    margin-bottom: 0.25rem;
}

.keycloak-disclaimer-content > :last-child {
    margin-bottom: 0;
}

/* ==========================================================================
   PriceByOccupancy · Vista Diaria Global (WI 22931)
   CSS nuevo acotado bajo pbo-daily-global*. Se reutilizan primero las clases
   pbo-* existentes (pbo-container, pbo-header-block, pbo-list-card, pbo-empty,
   pbo-calendar-daily__filter*, pbo-calendar-daily__occupancy-badge*,
   pbo-calendar-cell__occupancy-*); aquí solo lo que no tenía equivalente:
   acordeón por fecha, separador de mes, tarjetas de estrategia y paginación.
   ========================================================================== */

/* Resumen + expandir/colapsar todo */
.pbo-daily-global__results-summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin: 1rem 0;
}

.pbo-daily-global__summary {
    color: var(--pbo-gray-600);
    font-size: 0.875rem;
}

.pbo-daily-global__expand-actions {
    display: flex;
    gap: 0.5rem;
}

.pbo-daily-global__expand-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    padding: 0.25rem 0.5rem;
    border: none;
    border-radius: var(--pbo-radius-sm, 0.375rem);
    background: transparent;
    color: var(--pbo-gray-500);
    font-size: 0.75rem;
    cursor: pointer;
    transition: all var(--pbo-transition-fast);
}

.pbo-daily-global__expand-btn:hover {
    background: var(--pbo-gray-100);
    color: var(--pbo-gray-700);
}

/* Lista y separador de mes */
.pbo-daily-global__list {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.pbo-daily-global__month-separator {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 0.5rem 0;
}

.pbo-daily-global__month-separator-line {
    flex: 1;
    height: 1px;
    background: var(--pbo-gray-300);
}

.pbo-daily-global__month-separator-text {
    color: var(--pbo-gray-500);
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

/* Acordeón por fecha */
.pbo-daily-global__group {
    overflow: hidden;
    border: 1px solid var(--pbo-gray-200);
    border-radius: var(--pbo-radius, 0.75rem);
    background: #fff;
    box-shadow: var(--pbo-shadow-sm, 0 1px 2px rgb(0 0 0 / 5%));
}

.pbo-daily-global__group--weekend {
    border-color: #bfdbfe;
}

.pbo-daily-global__group-header {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1rem;
}

.pbo-daily-global__group-header--clickable {
    cursor: pointer;
    transition: background-color var(--pbo-transition-fast);
}

.pbo-daily-global__group-header--clickable:hover {
    background: var(--pbo-gray-50);
}

.pbo-daily-global__date-panel {
    display: flex;
    flex: 0 0 4rem;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 4rem;
    height: 4rem;
    border-radius: var(--pbo-radius-sm, 0.5rem);
    background: var(--pbo-gray-100);
}

.pbo-daily-global__date-panel--weekend {
    background: #eff6ff;
}

.pbo-daily-global__date-month {
    color: var(--pbo-gray-500);
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.pbo-daily-global__date-day {
    color: var(--pbo-gray-800);
    font-size: 1.5rem;
    font-weight: 700;
    line-height: 1;
}

.pbo-daily-global__date-panel--weekend .pbo-daily-global__date-month {
    color: #2563eb;
}

.pbo-daily-global__date-panel--weekend .pbo-daily-global__date-day {
    color: #1d4ed8;
}

.pbo-daily-global__date-info {
    display: flex;
    flex: 1;
    min-width: 0;
    flex-direction: column;
    gap: 0.25rem;
}

.pbo-daily-global__date-full {
    color: var(--pbo-gray-900);
    font-size: 1rem;
    font-weight: 600;
    text-transform: capitalize;
}

.pbo-daily-global__date-meta {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    color: var(--pbo-gray-500);
    font-size: 0.875rem;
}

.pbo-daily-global__date-preview {
    overflow: hidden;
    color: var(--pbo-gray-400);
    text-overflow: ellipsis;
    white-space: nowrap;
}

.pbo-daily-global__date-indicator {
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    gap: 0.5rem;
}

.pbo-daily-global__count-badge {
    padding: 0.125rem 0.5rem;
    border-radius: 9999px;
    background: var(--pbo-primary-light);
    color: var(--pbo-primary);
    font-size: 0.875rem;
    font-weight: 600;
}

.pbo-daily-global__chevron {
    display: inline-flex;
    color: var(--pbo-gray-400);
    transition: transform var(--pbo-transition-fast);
}

.pbo-daily-global__chevron--expanded {
    transform: rotate(180deg);
}

.pbo-daily-global__entries {
    border-top: 1px solid var(--pbo-gray-100);
}

/* Fila de entrada */
.pbo-daily-global__entry-row {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1rem;
}

.pbo-daily-global__entry-row--bordered {
    border-bottom: 1px solid var(--pbo-gray-50);
}

.pbo-daily-global__entry-trend {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    color: var(--pbo-primary);
}

.pbo-daily-global__entry-main {
    flex: 1;
    min-width: 0;
}

.pbo-daily-global__entry-scenario-row {
    display: flex;
    align-items: center;
    gap: 0.375rem;
    margin-top: 0.25rem;
    font-size: 0.875rem;
}

.pbo-daily-global__entry-scenario-label {
    color: var(--pbo-gray-500);
}

.pbo-daily-global__entry-bar {
    flex: 0 0 auto;
    width: 8rem;
    height: 0.5rem;
    overflow: hidden;
    border-radius: 9999px;
    background: var(--pbo-gray-200);
}

.pbo-daily-global__entry-pct {
    min-width: 2.5rem;
    color: var(--pbo-gray-600);
    font-size: 0.75rem;
}

.pbo-daily-global__entry-actions {
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    gap: 0.75rem;
}

.pbo-daily-global__entry-title {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.pbo-daily-global__entry-strategy {
    color: var(--pbo-gray-900);
    font-weight: 500;
}

.pbo-daily-global__entry-sep {
    color: var(--pbo-gray-300);
}

.pbo-daily-global__entry-matrix {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    color: var(--pbo-gray-500);
    font-size: 0.875rem;
}

.pbo-daily-global__entry-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.75rem;
    margin-top: 0.25rem;
    font-size: 0.875rem;
}

.pbo-daily-global__entry-scenario {
    padding: 0.125rem 0.5rem;
    border-radius: var(--pbo-radius-sm, 0.375rem);
    background: var(--pbo-gray-100);
    color: var(--pbo-gray-600);
}

.pbo-daily-global__entry-session {
    color: var(--pbo-gray-500);
}

.pbo-daily-global__entry-alert {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    color: var(--pbo-warning, #b45309);
}

.pbo-daily-global__entry-forced {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    padding: 0.125rem 0.5rem;
    border-radius: var(--pbo-radius-sm, 0.375rem);
    background: var(--pbo-gray-700);
    color: #fff;
    font-size: 0.75rem;
}

.pbo-daily-global__status-badge {
    flex: 0 0 auto;
    padding: 0.125rem 0.5rem;
    border-radius: 9999px;
    font-size: 0.75rem;
    font-weight: 600;
}

.pbo-daily-global__status-badge--active {
    background: #dcfce7;
    color: #15803d;
}

.pbo-daily-global__status-badge--inactive {
    background: var(--pbo-gray-100);
    color: var(--pbo-gray-500);
}

.pbo-daily-global__configure-btn {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    gap: 0.375rem;
    padding: 0.25rem 0.5rem;
    border: none;
    border-radius: var(--pbo-radius-sm, 0.375rem);
    background: transparent;
    color: var(--pbo-primary);
    font-size: 0.875rem;
    cursor: pointer;
    transition: background-color var(--pbo-transition-fast);
}

.pbo-daily-global__configure-btn:hover {
    background: var(--pbo-primary-light);
}

/* Filtro apilable de estrategias */
.pbo-daily-global__filter-strategies {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid var(--pbo-gray-100);
}

.pbo-daily-global__strategy-card {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.75rem;
    border: 1px solid var(--pbo-gray-200);
    border-radius: var(--pbo-radius-sm, 0.5rem);
    background: var(--pbo-gray-50);
}

.pbo-daily-global__strategy-card > .b-is-autocomplete {
    flex: 1;
    min-width: 0;
}

/* Paginación */
.pbo-daily-global__pagination {
    display: flex;
    justify-content: center;
    margin-top: 1.5rem;
    padding-top: 1rem;
    border-top: 1px solid var(--pbo-gray-200);
}

/* Tamaño de los SVG de icono dentro de las piezas nuevas */
.pbo-daily-global__entry-trend svg,
.pbo-daily-global__chevron svg,
.pbo-daily-global__entry-matrix svg,
.pbo-daily-global__entry-alert svg,
.pbo-daily-global__entry-forced svg,
.pbo-daily-global__configure-btn svg {
    width: 1rem;
    height: 1rem;
}

/* Fondo gris de los botones de mes/día (refuerza la clase del calendario reutilizada). */
.pbo-daily-global__filter button.pbo-calendar-daily__month-btn,
.pbo-daily-global__filter button.pbo-calendar-daily__weekday-btn--unselected {
    background: var(--pbo-gray-100);
}

/* Cumplimiento fiscal > Cierres: mantiene el panel de filtros y el contenido lado a lado
   al ampliar/zoom (el grid por defecto los apilaba, dejando el contenido debajo y la
   derecha en blanco). Solo se apila en pantallas pequeñas de verdad (WI 23315).
   Mismo patrón que las pantallas de PriceByOccupancy, pero sin estilos de color/padding. */
.fc-menu-wrapper {
    flex: 0 0 16rem !important;
    max-width: 16rem !important;
    width: 16rem !important;
}

.fc-main-wrapper {
    flex: 1 1 calc(100% - 16rem) !important;
    max-width: calc(100% - 16rem) !important;
    width: calc(100% - 16rem) !important;
}

@media (max-width: 1024px) {
    .fc-menu-wrapper,
    .fc-main-wrapper {
        flex: 0 0 100% !important;
        max-width: 100% !important;
        width: 100% !important;
    }
}
