/* ==========================================================================
   FeelingIN Next - Design System
   ========================================================================== */

:root {
    /* Brand */
    --fi-primary: #0d6efd;
    --fi-primary-dark: #0b5ed7;
    --fi-success: #198754;
    --fi-danger: #dc3545;
    --fi-warning: #ffc107;
    /* Background */
    --fi-bg: #f4f6f9;
    --fi-surface: #ffffff;
    --fi-surface-dark: #253746;
    /* Text */
    --fi-text: #212529;
    --fi-text-light: #6c757d;
    --fi-text-inverse: #ffffff;
    --fi-text-muted-inverse: #d7dde5;
    /* Border */
    --fi-border: #dee2e6;
    --fi-border-dark: rgba(255, 255, 255, .08);
    /* Layout */
    --fi-header-height: 70px;
    --fi-bottom-nav-height: 60px;
    --fi-radius: 12px;
    /* Sidebar */
    --fi-sidebar-width: 260px;
    --fi-sidebar-collapsed-width: 72px;
    /* Interaction */
    --fi-hover-dark: #34495e;
    --fi-active-dark: #1f2d3a;
}

/* ==========================================================================
   Base
   ========================================================================== */

html,
body {
    height: 100%;
    overflow: hidden;
    scroll-behavior: smooth;
}

body {
    margin: 0;
    background: var(--fi-bg);
    color: var(--fi-text);
    font-size: .95rem;
}

a {
    text-decoration: none;
}

.ts-dropdown .optgroup-header[role="button"] {
    cursor: pointer;
    color: var(--fi-primary);
    font-weight: 700;
    transition: background-color .15s ease;
}

.ts-dropdown .optgroup-header[role="button"]:hover,
.ts-dropdown .optgroup-header[role="button"]:focus {
    outline: none;
    background: #edf5ff;
}

/* ==========================================================================
   Layout wrapper
   ========================================================================== */

.fi-wrapper {
    display: flex;
    height: 100vh;
    height: 100dvh;
    overflow: hidden;
}

/* ==========================================================================
   Sidebar
   ========================================================================== */

.fi-sidebar {
    width: var(--fi-sidebar-width);
    background: var(--fi-surface-dark);
    color: var(--fi-text-inverse);
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    height: 100vh;
    height: 100dvh;
    overflow-y: auto;
    transition: width .20s ease;
}

@media (max-width: 991.98px) {
    .fi-sidebar {
        display: none;
    }
}

.fi-logo {
    padding: 25px;
    text-align: center;
    border-bottom: 1px solid var(--fi-border-dark);
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 1rem;
}

.fi-logo img {
    width: 170px;
}

.fi-sidebar-toggle {
    width: 42px;
    height: 42px;
    border: 1px solid rgba(255, 255, 255, .25);
    border-radius: .75rem;
    background: transparent;
    color: #fff;
    cursor: pointer;
}

.fi-sidebar-toggle:hover {
    background: rgba(255, 255, 255, .08);
}

/* ==========================================================================
   Sidebar / Menu (UNICO SISTEMA)
   ========================================================================== */

.fi-workspace-menu {
    max-height: calc(100vh - 120px);
    overflow-y: auto;
}

.fi-menu {
    display: flex;
    flex-direction: column;
    padding: 15px;
    gap: 6px;
}

.fi-menu a {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px 14px;
    border-radius: 8px;
    color: var(--fi-text-muted-inverse);
    transition: .2s ease;
}

.fi-menu a:hover {
    background: var(--fi-hover-dark);
    color: var(--fi-text-inverse);
}

.fi-menu a.active {
    background: var(--fi-active-dark);
    color: var(--fi-text-inverse);
}

.fi-menu i {
    font-size: 18px;
}

.fi-menu-dropdown .fi-link-button {
    width: 100%;
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px 14px;
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: var(--fi-text-muted-inverse);
    text-align: left;
}

.fi-menu-dropdown .fi-link-button:hover,
.fi-menu-dropdown .fi-link-button.active,
.fi-menu-dropdown .fi-link-button[aria-expanded="true"] {
    background: var(--fi-active-dark);
    color: #fff;
}

.fi-menu-dropdown__chevron { margin-left: auto; font-size: 12px !important; }
.fi-administration-menu { margin-left: .5rem !important; min-width: 210px; padding: .4rem; border: 0; box-shadow: 0 .75rem 2rem rgba(0,0,0,.2); }
.fi-administration-menu .dropdown-item { color: var(--fi-text); padding: .65rem .75rem; }
.fi-administration-menu .dropdown-item.active { background: #eaf2ff; color: var(--fi-primary); }
.fi-administration-menu .dropdown-item { display: flex; align-items: center; gap: .65rem; }
.fi-administration-menu .dropdown-item .fi-menu-attention { margin-left: auto; width: 19px; height: 19px; display: grid; place-items: center; color: #842029; font-size: .7rem; font-weight: 800; border-radius: 50%; background: #f8d7da; }
html.sidebar-collapsed .fi-menu-dropdown .fi-link-button { justify-content: center; }
.offcanvas .fi-menu-dropdown .fi-link-button { color: var(--fi-text); border-bottom: 1px solid var(--fi-border); border-radius: 0; }

.offcanvas .fi-menu-dropdown .fi-link-button:hover,
.offcanvas .fi-menu-dropdown .fi-link-button.active,
.offcanvas .fi-menu-dropdown .fi-link-button[aria-expanded="true"] {
    background: #eaf2ff;
    color: var(--fi-primary);
}

.offcanvas .fi-menu-dropdown .fi-link-button[aria-expanded="true"] .fi-menu-dropdown__chevron {
    transform: rotate(90deg);
}

/* OFFCANVAS (mobile override) */

.offcanvas .fi-menu a {
    color: var(--fi-text);
    border-bottom: 1px solid var(--fi-border);
    border-radius: 0;
}

.offcanvas .fi-menu a:hover, .offcanvas .fi-menu a.active {
    background: var(--fi-bg);
    color: var(--fi-text);
}

/* ==========================================================================
   Main layout
   ========================================================================== */

.fi-main {
    flex: 1;
    display: flex;
    flex-direction: column;
    min-width: 0;
    min-height: 0;
    overflow: hidden;
}

html.sidebar-collapsed .fi-sidebar {
    width: var(--fi-sidebar-collapsed-width);
}

/* menu */

html.sidebar-collapsed .fi-link {
    justify-content: center;
}

html.sidebar-collapsed .fi-link-label {
    display: none;
}

html.sidebar-collapsed .fi-logo img {
    display: none;
}

html.sidebar-collapsed .fi-logo {
    justify-content: center;
}


/* ==========================================================================
   Content
   ========================================================================== */

.fi-content {
    flex: 1;
    min-height: 0;
    padding: 30px;
    overflow-y: auto;
    overflow-x: hidden;
    overscroll-behavior-y: contain;
    -webkit-overflow-scrolling: touch;
    scroll-behavior: smooth;
}

/* Modali: un solo contenitore scorrevole, dimensionato sul viewport reale. */
.modal-dialog-scrollable {
    max-height: calc(100vh - 2rem);
    max-height: calc(100dvh - 2rem);
}

.modal-dialog-scrollable .modal-content {
    min-height: 0;
    max-height: 100%;
    overflow: hidden;
}

.modal-dialog-scrollable .modal-header,
.modal-dialog-scrollable .modal-footer {
    flex: 0 0 auto;
}

.modal-dialog-scrollable .modal-body {
    min-height: 0;
    overflow-y: auto;
    overscroll-behavior-y: contain;
    -webkit-overflow-scrolling: touch;
    touch-action: pan-y;
}

/* ==========================================================================
   Card
   ========================================================================== */

.card {
    border: 0;
    border-radius: var(--fi-radius);
    box-shadow: 0 2px 8px rgba(0, 0, 0, .08);
}

/* ==========================================================================
   Form
   ========================================================================== */

.form-control,
.form-select {
    min-height: 48px;
}

.form-control:focus,
.form-select:focus {
    box-shadow: none;
}

/* ==========================================================================
   Buttons
   ========================================================================== */

.btn {
    min-height: 44px;
    border-radius: 8px;
}

.btn-primary {
    background: var(--fi-primary);
    border-color: var(--fi-primary);
}

.btn-primary:hover {
    background: var(--fi-primary-dark);
    border-color: var(--fi-primary-dark);
}

/* ==========================================================================
   Compact forms
   ========================================================================== */

:root {
    --fi-control-height: 36px;
    --fi-control-padding-y: .35rem;
    --fi-control-padding-x: .6rem;
    --fi-control-font-size: .9rem;
}

.form-control,
.form-select {
    min-height: var(--fi-control-height);
    padding: var(--fi-control-padding-y) var(--fi-control-padding-x);
    font-size: var(--fi-control-font-size);
}

.form-label {
    margin-bottom: .25rem;
    font-size: .82rem;
}

.form-text {
    margin-top: .2rem;
    font-size: .76rem;
}

.input-group > .btn {
    min-height: var(--fi-control-height);
    padding: var(--fi-control-padding-y) .65rem;
}

.ts-control {
    min-height: var(--fi-control-height);
    padding: var(--fi-control-padding-y) var(--fi-control-padding-x);
    font-size: var(--fi-control-font-size);
}

@media (max-width: 767.98px) {
    :root {
        --fi-control-height: 40px;
        --fi-control-padding-y: .45rem;
        --fi-control-padding-x: .7rem;
    }
}

/* ==========================================================================
   Login
   ========================================================================== */

.login-page {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
}

.login-container {
    width: 100%;
    max-width: 420px;
}

.login-box {
    background: var(--fi-surface);
    border-radius: 18px;
    padding: 35px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, .08);
}

/* ==========================================================================
   Auth header (logo login)
   ========================================================================== */

.auth-header {
    display: flex;
    flex-direction: column;
    align-items: center;
}

.auth-logo {
    width: 140px;
    max-width: 60%;
    height: auto;
}

.auth-subtitle {
    font-size: 0.9rem;
    color: var(--fi-text-light);
}

@media (min-width: 768px) {
    .auth-logo {
        width: 180px;
    }

    .auth-subtitle {
        font-size: 1rem;
    }
}

@media (min-width: 1200px) {
    .auth-logo {
        width: 200px;
    }
}

/* ==========================================================================
   Mobile bottom padding
   ========================================================================== */

@media (max-width: 991px) {
    body {
        padding-bottom: 0;
    }

    .fi-content {
        padding: 1rem;
        padding-bottom: calc(2rem + env(safe-area-inset-bottom));
    }
}

@media (max-width: 575.98px) {
    .modal-dialog-scrollable {
        width: auto;
        height: calc(100vh - 1rem);
        height: calc(100dvh - 1rem);
        max-height: calc(100vh - 1rem);
        max-height: calc(100dvh - 1rem);
        margin: .5rem;
    }

    .modal-dialog-scrollable .modal-content {
        height: 100%;
    }

    .modal-header,
    .modal-body,
    .modal-footer {
        padding-right: .85rem;
        padding-left: .85rem;
    }

    .modal-footer {
        flex-wrap: wrap;
        padding-bottom: calc(.75rem + env(safe-area-inset-bottom));
    }
}

/* ==========================================================================
   TOPBAR
   ========================================================================== */

.fi-topbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: var(--fi-header-height);
    padding: 0 1.25rem;
    background: var(--fi-surface);
    border-bottom: 1px solid var(--fi-border);
    flex-shrink: 0;
    box-shadow: 0 2px 10px rgba(0, 0, 0, .08);
}

.fi-topbar-left,
.fi-topbar-right {
    display: flex;
    align-items: center;
    gap: 1rem;
}

.fi-topbar-center {
    flex: 1;
    display: flex;
    justify-content: center;
}

/* ==========================================================================
   SEARCH
   ========================================================================== */

.fi-search {
    display: flex;
    align-items: center;
    width: 420px;
    max-width: 100%;
    height: 42px;
    padding: 0 .9rem;
    border: 1px solid var(--fi-border);
    border-radius: var(--fi-radius);
    background: var(--fi-surface);
    transition: all .2s ease;
}

.fi-search:focus-within {
    border-color: var(--fi-primary);
    box-shadow: 0 0 0 .2rem rgba(13, 110, 253, .15);
}

.fi-search i {
    margin-right: .6rem;
    color: var(--fi-text-light);
}

.fi-search-input {
    border: 0;
    outline: none;
    background: transparent;
    width: 100%;
    color: var(--fi-text);
}

.fi-search-input::placeholder {
    color: var(--fi-text-light);
}

/* ==========================================================================
   WORKSPACE
   ========================================================================== */
.fi-workspace-btn {
    display: flex;
    align-items: center;
    height: 42px;
    padding: 0 1rem;
    border: 1px solid var(--fi-border);
    border-radius: var(--fi-radius);
    background: var(--fi-surface);
    color: var(--fi-text);
    transition: all .2s ease;
    justify-content: space-between;
    min-width: 220px;
    gap: 1rem;
}

.fi-workspace-label {
    display: flex;
    align-items: center;
    gap: .5rem;
}

.fi-workspace-btn:hover {
    background: var(--fi-bg);
}

/* ==========================================================================
   PROFILE
   ========================================================================== */

.fi-topbar .btn.rounded-circle {
    width: 42px;
    height: 42px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    border: 1px solid var(--fi-border);
    background: var(--fi-surface);
}

.fi-topbar .btn.rounded-circle i {
    font-size: 1.25rem;
    color: var(--fi-text);
}

.fi-workspace-item {
    display: flex;
    align-items: center;
    gap: .5rem;
}

.fi-workspace-check {
    width: 20px;
    flex-shrink: 0;
}

/* ==========================================================================
   MOBILE
   ========================================================================== */

@media (max-width: 991.98px) {
    .fi-topbar {
        padding: 0 1rem;
    }

    .fi-topbar-center {
        display: none;
    }

    .fi-workspace-btn span { /* display: none;*/
    }

}

/* ==========================================================================
   Ricerca prenotazioni
   ========================================================================== */

.fi-search-result-banner {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 1rem 1.25rem;
    background: var(--fi-surface);
    border: 1px solid var(--fi-border);
    border-radius: var(--fi-radius);
    margin-bottom: 1.5rem;
    box-shadow: 0 2px 8px rgba(0, 0, 0, .04);
}

.fi-search-result-info {
    display: flex;
    align-items: center;
    gap: .75rem;
}

.fi-search-result-info i {
    color: var(--fi-primary);
    font-size: 1.1rem;
}

.fi-link-action {
    color: var(--fi-primary);
    font-weight: 600;
    text-decoration: none;
}

.fi-link-action:hover {
    color: var(--fi-primary-dark);
}

/* ==========================================================================
   Tabelle
   ========================================================================== */

.fi-table.table-striped > tbody > tr:nth-of-type(odd) > * {
    background-color: rgba(13, 110, 253, .025);
}

.fi-table tbody tr {
    transition: all .15s ease;
}

.fi-table tbody tr:hover > * {
    background-color: rgba(13, 110, 253, .08) !important;
}

/* ==========================================================================
   Strutture
   ========================================================================== */

.fi-structure-badge {
    display: inline-flex;
    align-items: center;
    padding: .25rem .45rem;
    border-radius: 999px;
    background: var(--fi-primary);
    color: #fff;
    font-size: .70rem;
    font-weight: 400;
    text-transform: uppercase;
    white-space: nowrap;
}

/* ==========================================================================
   Prenotazioni cancellate
   ========================================================================== */

.fi-row-cancelled > * {
    color: var(--fi-text-light) !important;
    opacity: .65;
}


/* ==========================================================================
   Status
   ========================================================================== */

.fi-status-badge {
    display: inline-flex;
    align-items: center;
    padding: .25rem .6rem;
    border-radius: 999px;
    font-size: .75rem;
    font-weight: 600;
}

.fi-status-detail {
    margin-top: .35rem;
    font-size: .85rem;
    color: var(--fi-text-light);
    line-height: 1.3;
}

/* Confermata */

.fi-status-success {
    background: rgba(25, 135, 84, .15);
    color: var(--fi-success);
}

/* Opzionata */

.fi-status-warning {
    background: rgba(255, 193, 7, .20);
    color: #997404;
}

/* Cancellata */

.fi-status-danger {
    background: rgba(220, 53, 69, .12);
    color: var(--fi-danger);
}

/* Fallback */

.fi-status-secondary {
    background: rgba(108, 117, 125, .12);
    color: var(--fi-text-light);
}

.fi-btn-search-reset {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    height: 38px;
    padding: 0 .9rem;
    border: 1px solid var(--fi-border);
    border-radius: 8px;
    background: var(--fi-bg);
    color: var(--fi-text);
    font-size: .9rem;
    font-weight: 500;
    transition: all .15s ease;
}

.fi-btn-search-reset:hover {
    background: var(--fi-surface);
    border-color: var(--fi-primary);
    color: var(--fi-primary);
}

.fi-sort-link {
    color: inherit;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: .35rem;
}

.fi-sort-link:hover {
    color: var(--fi-primary);
}

.fi-sort-icon {
    font-size: .8rem;
    color: var(--fi-text-light);
    opacity: .55;
}

.fi-sort-icon.active {
    color: var(--fi-primary);
    opacity: 1;
}

.fi-topbar-right .dropdown-menu {

    border: 1px solid var(--fi-border);

    border-radius: var(--fi-radius);

    box-shadow: 0 4px 16px rgba(0, 0, 0, .08);

    min-width: 220px;
}

.fi-topbar-right .dropdown-header {

    color: var(--fi-text);

    font-weight: 600;

    padding: .75rem 1rem;
}

.fi-topbar-right .dropdown-item {

    padding: .65rem 1rem;
}

.fi-topbar-right .dropdown-item:hover {

    background: var(--fi-bg);
}

.fi-topbar-right .dropdown-item.text-danger:hover {

    background: rgba(220, 53, 69, .08);
}

.fi-mark {
    font-weight: 600;
    text-transform: uppercase;
}

.ts-wrapper.multi .ts-control {
    max-height: calc(var(--fi-control-height) + 2px);
    overflow-y: auto;
}

.ts-control {
    border-radius: var(--bs-border-radius);
    min-height: var(--fi-control-height);
}

.flatpickr-input[readonly] {
    background-color: var(--bs-body-bg);
}

/* ==========================================================================
   Planning - Layout
   ========================================================================== */

.planning-wrapper{
    width:100%;
    overflow-x:auto;
    overflow-y:hidden;
}

.planning-content{
    width:max-content;
    min-width:100%;
}

.planning {
    min-width: 100%;
}

.planning-header,
.planning-row {
    display: flex;
}

.planning-header__label,
.planning-row__label {
    width: 260px;
    flex-shrink: 0;
    border: 1px solid var(--fi-border);
    background: var(--fi-surface);
    box-sizing: border-box;
}

.planning-header__label {
    padding: .5rem;
}

.planning-row__label {
    display: flex;
    align-items: center;
    gap: .5rem;
    min-height: 54px;
    padding: .5rem .75rem;
    line-height: 1.35;
}

.planning-header__days,
.planning-row__days {
    display: flex;
}

.planning-row__days {
    position: relative;
}

.planning-header__calendar {
    display: flex;
    flex-direction: column;
}

/* ==========================================================================
   Planning - Header
   ========================================================================== */

.planning-header__months {
    display: flex;
}

.planning-header__month {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 32px;
    font-weight: 600;
    background: var(--fi-surface);
    border: 1px solid var(--fi-border);
}

.planning-header__day,
.planning-cell {
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 50px;
    border: 1px solid var(--fi-border);
}

.planning-header__day {
    flex-direction: column;
    height: 58px;
    background: var(--fi-surface);
}

.planning-cell {
    height: 54px;
    background: var(--fi-surface);
}

.planning-header__day.is-weekend,
.planning-cell.is-weekend {
    background: #f7f8fb;
}

.planning-header__day-number {
    font-size: .9rem;
    font-weight: 600;
}

.planning-header__day-name {
    font-size: .75rem;
    color: var(--fi-text-light);
}

/* ==========================================================================
   Planning - Room Type
   ========================================================================== */

.planning-room-type {
    margin-bottom: 2rem;
    background: var(--fi-bg);
    border: 1px solid var(--fi-border);
}

.planning-room-type__header {
    padding: 1rem 1.25rem;
    background: #eef4fb;
    border-bottom: 1px solid var(--fi-border);
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--fi-text);
}

/* ==========================================================================
   Planning - Virtual Room
   ========================================================================== */

.planning-virtual-room-header {
    padding: .8rem 1rem;
    background: #fff;
    border-left: 4px solid var(--fi-primary);
    font-weight: 600;
    color: var(--fi-text);
    cursor: pointer;
}

.planning-virtual-room-body.is-collapsed,
.planning-rate-body.is-collapsed {
    display: none;
}

/* ==========================================================================
   Planning - Rows
   ========================================================================== */

.planning-row__label {
    padding-left: 58px;
}

.planning-row--rate .planning-row__label,
.planning-rate-header {
    color: var(--fi-primary);
    background: #eef5ff;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .08em;
    border-left: 4px solid var(--fi-primary);
}

.planning-row--rate .planning-row__label {
    padding-left: 1.5rem;
    font-size: .82rem;
}

.planning-rate + .planning-rate {
    margin-top: 1rem;
}

.planning-rate-header {
    display: flex;
    align-items: center;
    padding: .75rem 1rem;
    margin-top: 1rem;
    cursor: pointer;
}

.planning-rate-body {
    margin-bottom: .75rem;
}

/* ==========================================================================
   Planning - Toggle
   ========================================================================== */

.planning-toggle-icon {
    display: inline-block;
    width: 18px;
    margin-right: .5rem;
    transition: transform .2s ease;
}

.planning-toggle-icon.is-open {
    transform: rotate(90deg);
}

/* ==========================================================================
   Real Rooms
   ========================================================================== */

.planning-row--real-room:first-of-type {
    margin-top: 1rem;
    border-top: 2px solid var(--fi-border);
}

.planning-row--real-room .planning-row__label {
    font-weight: 500;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    padding-left: 0.75rem;
}

.planning-row--real-room .planning-row__label i {
    flex: 0 0 auto;
}

.planning-row--unallocated .planning-row__label { color: #725400; background: #fff3d3; box-shadow: inset 3px 0 0 #e5ad22, inset 0 1px rgba(196,143,11,.18), inset 0 -1px rgba(196,143,11,.18); }
.planning-row--unallocated .planning-row__label i { color: #a67800; }
.planning-room-unallocated-label { margin-top: 2px; color: #8a6500; font-size: .65rem; font-weight: 700; letter-spacing: .025em; }
.planning-row--unallocated .planning-row__days { background: #fff9e9; box-shadow: inset 0 1px rgba(196,143,11,.18), inset 0 -1px rgba(196,143,11,.18); }
.planning-cell--unallocated { background-color: rgba(255, 246, 213, .52); }
.planning-cell--unallocated.is-weekend { background-color: rgba(250, 232, 176, .48); }

/* ==========================================================================
   Reservations
   ========================================================================== */

.planning-reservations {
    position: absolute;
    inset: 0;
    pointer-events: none;
}

.planning-reservation {
    position: absolute;
    top: 2px;
    z-index: 100;
    display: flex;
    flex-direction: column;
    justify-content: center;
    height: 50px;
    padding: 2px 6px;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
    font-size: .75rem;
    color: #fff;
    border: 1px solid rgba(255, 255, 255, .35);
    border-radius: 5px;
    box-shadow: inset 0 1px rgba(255, 255, 255, .25), 0 1px 2px rgba(0, 0, 0, .18);
    pointer-events: auto;
    cursor: pointer;
    text-decoration: none;
    transition: filter .15s ease, box-shadow .15s ease;
}

.planning-reservation:hover { color: #fff; filter: brightness(1.08); }
.planning-reservation--closure {
    cursor: default;
    background-image: repeating-linear-gradient(135deg, rgba(255,255,255,.12) 0, rgba(255,255,255,.12) 7px, transparent 7px, transparent 14px) !important;
    box-shadow: inset 0 0 0 1px rgba(255,255,255,.15);
}
.planning-reservation--closure:hover { filter: none; }
.planning-reservation.is-mobile-preview { color: #fff; filter: brightness(1.08); box-shadow: inset 0 0 0 2px rgba(255,255,255,.75), 0 2px 6px rgba(0,0,0,.22); }
.planning-reservation:focus-visible { color: #fff; outline: 2px solid #fff; outline-offset: -3px; box-shadow: 0 0 0 2px var(--fi-primary); }

.planning-reservation.is-clipped-left {
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
}

.planning-reservation.is-clipped-right {
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
}

.planning-reservation-name {
    font-size: .9rem;
    font-weight: 600;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
    line-height: 1rem;
}

.planning-reservation-channel {
    font-size: .75rem;
    opacity: .85;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}

/* ==========================================================================
   Tooltip
   ========================================================================== */

.tooltip {
    --bs-tooltip-max-width: 420px;
}

.tooltip-inner {
    padding: .75rem .9rem;
    font-size: .85rem;
    line-height: 1.45;
    text-align: left;
    white-space: normal;
}
.planning-tooltip-mobile-hint { display: none; margin-top: .55rem; padding-top: .5rem; border-top: 1px solid rgba(255,255,255,.25); font-size: .72rem; font-weight: 700; }
@media (hover: none), (pointer: coarse) { .planning-tooltip-mobile-hint { display: block; } }

.planning-row--channel .planning-row__label{
    padding-left: 12px;
    border-left: 3px solid #4f8cff;
}

.planning-row__badge{
    display:inline-block;
    margin-right:6px;
    padding:2px 6px;
    font-size:10px;
    font-weight:600;
    text-transform:uppercase;
    border-radius:4px;
    background:#e8f1ff;
    color:#2b6be6;
}

.planning-cell--past{
    opacity:.45;
    pointer-events:none;
    cursor:default;
    background:#f5f5f5;
}

.planning-cell--available{
    background:#edf9f0;
    color:#198754;
    font-weight:600;
}

.planning-cell--unavailable{
    background:#fdeeee;
    color:#dc3545;
    font-weight:600;
}
.planning-row__label{
    transition: background-color .15s;
}

.planning-cell{
    transition: background-color .15s;
}

.planning-row:hover .planning-row__label{
    background:#eef5ff;
}

.planning-row:hover .planning-cell{
    background:#f8fbff;
}

.planning-scroll-top{
    overflow-x:auto;
    overflow-y:hidden;
    height:18px;
    margin-bottom:4px;
}

.planning-scroll-top__content{
    height:1px;
}



.planning-room-type{
    margin-bottom:2rem;
}

.planning-scroll-top{
    overflow-x:auto;
    overflow-y:hidden;
    height:16px;
    margin-bottom:6px;
    scrollbar-gutter:stable;
}

.planning-scroll-top__content{
    height:1px;
}

.planning-view-dropdown{

    min-width:320px;

    border-radius:.75rem;

    box-shadow:0 .5rem 1rem rgba(0,0,0,.15);

}

.planning-view-dropdown .form-check{

    user-select:none;

}

.planning-view-dropdown .form-check-label{

    cursor:pointer;

}

.planning-view-dropdown .btn{

    min-width:130px;

}

.planning-room-info {
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.planning-room-type-separator {
    margin-top: 2px;
    font-size: .65rem;
    color: #1f3c5a;
    background: #eef4fb;
}

.planning-cell--preview {
    background: rgba(var(--bs-primary-rgb), .10) !important;
    cursor: pointer;
}

.planning-cell--selected {
    background: rgba(var(--bs-primary-rgb), .20) !important;
}

.planning-edit-section.is-disabled {
    opacity: .55;
}

.planning-edit-section.is-disabled .card-body {
    pointer-events: none;
}

#planningEditModal .modal-dialog {
    max-height: calc(100vh - 2rem);
    max-height: calc(100dvh - 2rem);
}

#planningEditModal .modal-content {
    max-height: calc(100vh - 2rem);
    max-height: calc(100dvh - 2rem);
    overflow: hidden;
}

#planningEditModal .modal-body {
    overflow-y: auto;
}

#planningEditModal .ts-wrapper.multi .ts-control {
    align-content: flex-start;
    align-items: flex-start;
    min-height: 5.5rem;
    max-height: 7.5rem;
    overflow-y: auto;
}

#planningEditModal .ts-wrapper.multi .ts-control > .item {
    max-width: 100%;
    white-space: normal;
}

#planningEditModal .planning-edit-target-header {
    position: relative;
    min-height: 2rem;
}

#planningEditModal .planning-edit-target-header .form-label {
    margin-bottom: 0;
}

#planningEditModal .planning-edit-target-header .btn-group {
    position: absolute;
    top: 0;
    right: 0;
}

/* ==========================================================================
   Booking detail
   ========================================================================== */

.booking-detail { max-width: 1440px; margin: 0 auto; padding-bottom: 6rem; }
.booking-detail__header { display: flex; justify-content: space-between; gap: 1.5rem; align-items: flex-start; padding: .5rem 0 1.5rem; }
.booking-detail__header-actions { display: flex; flex: 0 0 auto; align-items: center; gap: .5rem; }
.booking-detail__header-actions .dropdown-item { display: flex; align-items: center; gap: .65rem; }
.booking-detail__header-actions .dropdown-item i { width: 1rem; color: var(--fi-primary); text-align: center; }
.booking-detail__back { color: var(--fi-text-light); text-decoration: none; font-size: .9rem; }
.booking-detail__back:hover { color: var(--fi-primary); }
.booking-detail__summary { margin-bottom: 1.25rem; }
.booking-summary-card { height: 100%; display: flex; flex-direction: column; gap: .25rem; padding: 1rem 1.1rem; background: var(--fi-surface); border: 1px solid var(--fi-border); border-radius: var(--fi-radius); }
.booking-summary-card__label { color: var(--fi-text-light); font-size: .78rem; font-weight: 600; text-transform: uppercase; letter-spacing: .04em; }
.booking-summary-card strong { font-size: 1.05rem; }
.booking-summary-card span:not(.booking-summary-card__label) { color: var(--fi-text-light); font-size: .9rem; }
.booking-summary-strip { display: grid; grid-template-columns: 1.15fr 1.15fr 1fr 1fr; overflow: hidden; border: 1px solid var(--fi-border); border-radius: var(--fi-radius); background: #fff; }
.booking-summary-strip__item { display: flex; flex-direction: column; justify-content: center; min-width: 0; min-height: 4.1rem; gap: .12rem; padding: .55rem .8rem; }
.booking-summary-strip__item + .booking-summary-strip__item { border-left: 1px solid var(--fi-border); }
.booking-summary-strip__item > strong { overflow: hidden; font-size: .9rem; text-overflow: ellipsis; white-space: nowrap; }
.booking-summary-strip__item small { overflow: hidden; color: var(--fi-text-light); font-size: .7rem; text-overflow: ellipsis; white-space: nowrap; }
.booking-summary-strip__item--activity { display: flex; flex-direction: column; justify-content: stretch; gap: 0; padding: 0; overflow: hidden; }
.booking-summary-activity { display: grid; grid-template-columns: 1rem minmax(0, 1fr) .65rem; align-items: center; gap: .5rem; width: 100%; min-width: 0; min-height: 3.05rem; margin: 0; padding: .38rem .7rem; color: var(--fi-text); text-align: left; vertical-align: top; appearance: none; background: transparent; border: 0; border-radius: 0; box-sizing: border-box; }
.booking-summary-activity + .booking-summary-activity { border-top: 1px solid var(--fi-border); }
.booking-summary-strip__item--activity .booking-summary-activity { flex: 1 1 50%; height: 50%; line-height: 1.2; }
.booking-summary-activity > i:first-child { color: var(--fi-primary); }
.booking-summary-activity > i:last-child { color: var(--fi-text-light); font-size: .65rem; }
.booking-summary-activity > span { display: flex; min-width: 0; flex-direction: column; gap: .05rem; }
.booking-summary-activity strong { overflow: hidden; font-size: .7rem; font-weight: 400; text-overflow: ellipsis; white-space: nowrap; }
.booking-summary-activity:hover { color: var(--fi-primary); background: rgba(var(--bs-primary-rgb), .06); }
.booking-summary-strip__item--balance { border-left-width: 1px!important; }
.booking-summary-strip__item--balance.booking-summary-card--settled { background: #f2fbf6; }
.booking-summary-strip__item--balance.booking-summary-card--partial { background: #fffaf0; }
.booking-summary-strip__item--balance.booking-summary-card--due { background: #fff5f5; }
.booking-summary-status-col { margin-top: .55rem; }
.booking-traffic-lights { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); overflow: hidden; border: 1px solid var(--fi-border); border-radius: var(--fi-radius); background: #fff; }
.booking-traffic-light { display: flex; align-items: center; gap: .65rem; min-width: 0; padding: .7rem .85rem; }
.booking-traffic-light + .booking-traffic-light { border-left: 1px solid var(--fi-border); }
.booking-traffic-light__signal { display: grid; flex: 0 0 2rem; width: 2rem; height: 2rem; place-items: center; font-size: 1rem; border-radius: 50%; }
.booking-traffic-light--ok .booking-traffic-light__signal { color: #fff; background: var(--fi-success); }
.booking-traffic-light--pending .booking-traffic-light__signal { color: #fff; background: var(--fi-danger); }
.booking-traffic-light > span:last-child { min-width: 0; }
.booking-traffic-light strong, .booking-traffic-light small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.booking-traffic-light strong { font-size: .82rem; }
.booking-traffic-light small { margin-top: .1rem; color: var(--fi-text-light); font-size: .72rem; }
.booking-summary-card--warning { border-left: 4px solid var(--fi-warning); }
.booking-detail__nav { position: sticky; top: 1rem; display: flex; flex-direction: column; gap: .25rem; padding: .5rem; background: var(--fi-surface); border: 1px solid var(--fi-border); border-radius: var(--fi-radius); }
.booking-detail__nav a { display: flex; align-items: center; gap: .75rem; padding: .7rem .8rem; border-radius: 8px; color: var(--fi-text-light); text-decoration: none; }
.booking-detail__nav a:hover, .booking-detail__nav a.is-active { color: var(--fi-primary); background: #eef5ff; box-shadow: inset 0 0 0 1px rgba(var(--bs-primary-rgb), .12); }
.booking-detail__nav--horizontal { top: .5rem; z-index: 5; flex-direction: row; align-items: center; overflow-x: auto; }
.booking-detail__nav--horizontal a { flex: 0 0 auto; }
.booking-detail__section { position: relative; margin-bottom: 1.25rem; padding: 1.35rem; scroll-margin-top: 5rem; scroll-margin-bottom: 6rem; background: var(--fi-surface); border: 1px solid var(--fi-border); border-radius: var(--fi-radius); }
.booking-detail__section::before { content: ''; position: absolute; inset: 0 auto 0 0; width: 3px; border-radius: var(--fi-radius) 0 0 var(--fi-radius); background: #dbe8f7; }
.booking-detail__section#soggiorno::before { background: #3b82f6; }
.booking-detail__section#camere::before { background: #14b8a6; }
.booking-detail__section#ospite::before { background: #8b5cf6; }
.booking-detail__section#note::before { background: #f59e0b; }
.booking-detail__section#importi::before { background: #10b981; }
.booking-detail__section-heading { display: flex; justify-content: space-between; gap: 1rem; align-items: flex-start; margin-bottom: 1.25rem; }
.booking-detail__section-heading h2 { margin: 0; font-size: 1.2rem; }
.booking-detail__section-heading p { margin: .25rem 0 0; color: var(--fi-text-light); font-size: .9rem; }
.booking-detail__rooms { padding-top: .5rem; }
.booking-detail__rooms h3 { margin: 0; font-size: 1rem; }
.booking-detail__section-heading--rooms { align-items: center; }
.booking-room-assignment { display: inline-flex; flex: 0 0 auto; gap: .2rem; padding: .22rem; border: 1px solid var(--fi-border); border-radius: .6rem; background: #f1f5f9; }
.booking-room-assignment__option { position: relative; display: inline-flex; align-items: center; justify-content: center; gap: .4rem; min-height: 34px; padding: .35rem .65rem; cursor: pointer; border-radius: .42rem; color: var(--fi-text-light); font-size: .72rem; transition: color .15s ease, background .15s ease, box-shadow .15s ease; }
.booking-room-assignment__option:hover { color: var(--fi-primary); background: rgba(255,255,255,.7); }
.booking-room-assignment__option.is-selected { color: var(--fi-primary); background: #fff; box-shadow: 0 1px 4px rgba(27,52,84,.12); }
.booking-room-assignment__option > input { position: absolute; width: 1px; height: 1px; overflow: hidden; opacity: 0; }
.booking-room-assignment__option > i { font-size: .8rem; }
.booking-room-assignment__option > strong { font-weight: 700; white-space: nowrap; }
.booking-room-assignment__option--unallocated.is-selected { color: #725400; background: #fff7dc; }
.booking-room-unallocated-state { display: grid; grid-template-columns: 46px minmax(0, 1fr); align-items: center; gap: .8rem; padding: 1rem; border: 1px solid #eed58b; border-radius: .7rem; background: #fffaf0; }
.booking-room-unallocated-state[hidden] { display: none; }
.booking-room-unallocated-state > span { display: grid; width: 46px; height: 46px; place-items: center; border-radius: .6rem; color: #8a6500; background: #fff0bf; font-size: 1.1rem; }
.booking-room-unallocated-state strong { display: block; color: #654d00; }
.booking-room-unallocated-state p { margin: .18rem 0 0; color: #786a3d; font-size: .8rem; }
.booking-room-card { padding: .85rem; background: #f8fbff; border: 1px solid #d9e7f7; border-radius: 10px; }
.booking-room-card__heading { display: flex; justify-content: space-between; align-items: center; gap: 1rem; margin-bottom: 1rem; }
.booking-room-card__title { margin-bottom: 1rem; color: var(--fi-primary); font-weight: 700; }
.booking-room-card__heading .booking-room-card__title { margin-bottom: 0; }
.booking-room-card__title span { color: var(--fi-text-light); font-weight: 400; }
.booking-room-card__title [data-booking-room-title] { color: var(--fi-primary); font-weight: 700; }
.booking-room-card__title { margin-bottom: .75rem; font-size: .92rem; }
.booking-room-card__actions { display: flex; align-items: center; flex: 0 0 auto; gap: .45rem; }
.booking-room-availability { display: inline-flex; align-items: center; padding: .18rem .45rem; font-size: .68rem; font-weight: 700; border-radius: 999px; }
.booking-room-availability--loading { color: var(--fi-text-light); background: #eef1f5; }
.booking-room-availability--available { color: #157347; background: #dff3e6; }
.booking-room-availability--unavailable { color: #b42318; background: #fde7e7; }
.booking-room-card > .row { --bs-gutter-y: .7rem; }
.booking-room-card.is-quoting { opacity: .72; }
.booking-room-min-stay { display: inline-flex; align-items: center; gap: .4rem; padding: .42rem .6rem; font-size: .8rem; font-weight: 600; border: 1px solid; border-radius: .4rem; }
.booking-room-min-stay--valid { color: #157347; background: #edf9f1; border-color: #b7e3c4; }
.booking-room-min-stay--invalid { color: #b42318; background: #fff1f0; border-color: #f5c2c0; }
.booking-price-updated { animation: booking-price-updated .75s ease-out; }
@keyframes booking-price-updated { 0% { background-color: #d9f5e5; box-shadow: 0 0 0 .2rem rgba(25, 135, 84, .16); } 100% { background-color: transparent; box-shadow: none; } }
.booking-detail__tools { display: flex; flex-wrap: wrap; gap: .75rem; }
.booking-detail__tools .btn { display: inline-flex; align-items: center; gap: .5rem; }
.booking-detail .input-group > .btn { display: inline-flex; align-items: center; justify-content: center; }
.booking-detail__checkin, .booking-detail__conditions { height: 100%; padding: .8rem .9rem; border: 1px solid var(--fi-border); border-radius: .5rem; background: #f8fbff; }
.booking-detail__checkin .form-label { display: block; margin-bottom: .45rem; }
.booking-detail__conditions { display: flex; gap: .65rem; color: var(--fi-text-light); font-size: .82rem; line-height: 1.45; background: #fffaf0; border-color: #f3dfb0; }
.booking-detail__conditions > i { color: #b87a00; font-size: 1rem; }
.booking-detail__conditions strong { display: block; color: var(--fi-text); margin-bottom: .15rem; }
.booking-detail__sca { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: .9rem 1rem; border: 1px solid var(--fi-border); border-radius: .5rem; background: #f8fbff; }
.booking-detail__sca span { display: block; color: var(--fi-text-light); font-size: .85rem; margin-top: .2rem; }
.booking-pos-summary { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .75rem; }
.booking-pos-status { display: flex; align-items: center; gap: .75rem; min-height: 78px; padding: .85rem; border: 1px solid var(--fi-border); border-radius: .65rem; }
.booking-pos-status__icon { display: grid; place-items: center; flex: 0 0 42px; width: 42px; height: 42px; border-radius: .6rem; background: #eaf2ff; color: var(--bs-primary); }
.booking-pos-status__icon i { font-size: 1.25rem; line-height: 1; }
.booking-pos-status small, .booking-pos-status strong, .booking-pos-card-source small, .booking-pos-card-source strong, .booking-pos-card-source span { display: block; }
.booking-pos-status small, .booking-pos-card-source small, .booking-pos-card-source span { color: var(--fi-text-light); }
.booking-pos-panel { padding: 1rem; border: 1px solid var(--fi-border); border-radius: .65rem; background: #fbfcfe; }
.booking-pos-panel__heading { display: flex; justify-content: space-between; gap: 1rem; align-items: flex-start; margin-bottom: 1rem; }
.booking-pos-panel__heading h3 { margin: 0; font-size: 1rem; }
.booking-pos-panel__heading p { margin: .25rem 0 0; color: var(--fi-text-light); font-size: .85rem; }
.booking-pos-flow { display: flex; align-items: center; }
.booking-pos-flow__step { display: flex; align-items: center; gap: .6rem; min-width: 0; }
.booking-pos-flow__step > span { display: grid; place-items: center; flex: 0 0 30px; width: 30px; height: 30px; border: 1px solid #b8c2d1; border-radius: 50%; color: #657085; font-weight: 700; }
.booking-pos-flow__step.is-ready > span { border-color: var(--bs-primary); background: var(--bs-primary); color: #fff; }
.booking-pos-flow__step strong, .booking-pos-flow__step small { display: block; }
.booking-pos-flow__step small { color: var(--fi-text-light); font-size: .78rem; }
.booking-pos-flow__line { flex: 1 1 48px; min-width: 24px; height: 1px; margin: 0 .75rem; background: var(--fi-border); }
.booking-pos-card-source { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .8rem; border-radius: .55rem; background: #fff; border: 1px solid var(--fi-border); }
.booking-pos-operations th { color: var(--fi-text-light); font-size: .75rem; font-weight: 600; text-transform: uppercase; white-space: nowrap; }
.booking-pos-operation-actions { display: flex; align-items: center; justify-content: flex-end; gap: .35rem; white-space: nowrap; }
.booking-pos-request { display: grid; grid-template-columns: auto minmax(9rem, .6fr) minmax(14rem, 1fr); align-items: end; gap: .75rem; }
.booking-pos-request__description { grid-column: 1 / -2; }
.booking-pos-request__action { grid-column: -2 / -1; }
.booking-pos-request__action .btn { width: 100%; }
.booking-pos-card-reveal__form { max-width: 32rem; padding: .75rem; border: 1px solid #f0c2c7; border-radius: .55rem; background: #fff8f8; }
.booking-pos-card-reveal__result { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: .35rem 1rem; max-width: 32rem; padding: .8rem; border: 1px solid var(--fi-border); border-radius: .55rem; background: #fff; }
.booking-pos-card-reveal__result small { color: var(--fi-text-light); }
.booking-pos-card-reveal__result code { color: var(--fi-text); font-size: 1rem; letter-spacing: .08em; }
.booking-pos-card-reveal__result.is-error { display: block; color: var(--bs-danger); }
.fi-content--webmail { overflow: hidden; }
.webmail { display: flex; flex-direction: column; height: calc(100vh - var(--fi-header-height) - 60px); height: calc(100dvh - var(--fi-header-height) - 60px); min-height: 0; }
.webmail__header { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; }
.webmail__header h1 { margin: 0; font-size: 1.55rem; }
.webmail__header p { margin: .2rem 0 0; color: var(--fi-text-light); }
.webmail__layout { display: grid; flex: 1; grid-template-columns: 13rem minmax(0, 1fr); min-height: 0; overflow: hidden; border: 1px solid var(--fi-border); border-radius: .75rem; background: #fff; }
.webmail__folders { display: grid; grid-template-rows: minmax(0, 1fr) auto; min-height: 0; overflow: hidden; padding: .75rem; border-right: 1px solid var(--fi-border); background: #f8fafc; }
.webmail__folders > [data-webmail-folders] { min-height: 0; overflow-x: hidden; overflow-y: auto; padding-right: .25rem; scrollbar-width: thin; }
.webmail__folders-loading { display: flex; align-items: center; gap: .45rem; padding: .7rem; color: var(--fi-text-light); font-size: .8rem; }
.webmail__folder { display: grid; grid-template-columns: 1.5rem 1fr auto; align-items: center; width: 100%; margin-bottom: .25rem; padding: .7rem .75rem; text-align: left; border: 0; border-radius: .5rem; background: transparent; }
.webmail__folder:hover, .webmail__folder.is-active { color: var(--fi-primary); background: #eaf2ff; }
.webmail__folder small { min-width: 1.5rem; text-align: right; }
.webmail__account { margin-top: .5rem; padding: .75rem; color: var(--fi-text-light); font-size: .75rem; border-top: 1px solid var(--fi-border); }
.webmail__account span, .webmail__account strong { display: block; margin-top: .15rem; }
.webmail__account strong { color: var(--fi-text); font-size: .82rem; }
.webmail__main { --webmail-message-height: 46px; display: grid; grid-template-rows: 291px minmax(0, 1fr); min-width: 0; min-height: 0; overflow: hidden; }
.webmail__list-panel { min-height: 0; border-bottom: 1px solid var(--fi-border); }
.webmail__toolbar { display: flex; align-items: center; justify-content: space-between; gap: 1rem; height: 61px; padding: .75rem 1rem; border-bottom: 1px solid var(--fi-border); }
.webmail__toolbar h2 { margin: 0; font-size: 1rem; }
.webmail__toolbar span { color: var(--fi-text-light); font-size: .75rem; }
.webmail__search { position: relative; width: min(18rem, 45%); }
.webmail__search i { position: absolute; top: 50%; left: .7rem; transform: translateY(-50%); color: var(--fi-text-light); }
.webmail__search input { padding-left: 2rem; }
.webmail__list { height: calc(100% - 61px); overflow-y: auto; }
.webmail__message { position: relative; display: grid; grid-template-columns: .55rem minmax(9rem, .7fr) minmax(12rem, 1.5fr) auto; gap: .75rem; align-items: center; width: 100%; min-height: var(--webmail-message-height); padding: .55rem 2.5rem .55rem 1rem; cursor: pointer; text-align: left; border: 0; border-bottom: 1px solid var(--fi-border); background: #fff; }
.webmail__message:hover, .webmail__message.is-active { background: #f0f6ff; }
.webmail__message.is-read { color: #657085; background: #fbfcfd; }
.webmail__message.is-active, .webmail__message.is-active.is-read { color: var(--fi-text); background: #e8f1ff; box-shadow: inset 3px 0 0 var(--fi-primary); }
.webmail__message.is-unread .webmail__message-contact, .webmail__message.is-unread > strong { color: var(--fi-text); font-weight: 700; }
.webmail__unread-dot { width: .58rem; height: .58rem; cursor: pointer; border: 1.5px solid #9aa7ba; border-radius: 50%; background: transparent; }
.webmail__unread-dot:hover, .webmail__unread-dot:focus-visible { border-color: var(--fi-primary); outline: 2px solid rgb(13 110 253 / 18%); outline-offset: 2px; }
.webmail__message.is-unread .webmail__unread-dot { border-color: var(--fi-primary); background: var(--fi-primary); }
.webmail__message-contact { overflow: hidden; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
.webmail__message strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.webmail__message > span:last-of-type { color: var(--fi-text-light); font-size: .8rem; white-space: nowrap; }
.webmail__message > i.webmail__message-attachment { position: absolute; top: 50%; right: 1rem; color: var(--fi-primary); transform: translateY(-50%); }
.webmail__reader { min-height: 0; overflow-y: auto; padding: 1rem; }
.webmail__empty, .webmail__loading, .webmail__list-empty { display: flex; align-items: center; justify-content: center; flex-direction: column; gap: .4rem; min-height: 100%; padding: 2rem; color: var(--fi-text-light); text-align: center; }
.webmail__load-more { display: flex; justify-content: center; padding: 1rem; border-top: 1px solid var(--fi-border); background: #fff; }
.webmail__empty > i { font-size: 2rem; }
.webmail__reader-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; padding-bottom: .8rem; border-bottom: 1px solid var(--fi-border); }
.webmail__reader-header h2 { margin: 0; font-size: 1.15rem; }
.webmail__reader-header p { margin: .25rem 0 0; color: var(--fi-text-light); font-size: .82rem; }
.webmail__reader-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .5rem; }
.webmail__body { padding: 1rem 0; font-family: var(--bs-body-font-family); }
.webmail__attachments { display: flex; align-items: center; flex-wrap: wrap; gap: .5rem; padding: .75rem 0; border-bottom: 1px solid var(--fi-border); }
.webmail__attachments > span { display: inline-flex; align-items: center; gap: .4rem; padding: .35rem .5rem; border: 1px solid var(--fi-border); border-radius: .4rem; }
.webmail__attachments a { display: inline-flex; align-items: center; gap: .3rem; text-decoration: none; }
.webmail__attachments small { color: var(--fi-text-light); }
.webmail__composer { position: fixed; right: 1.5rem; bottom: 1rem; z-index: 1060; width: min(42rem, calc(100vw - 2rem)); overflow: hidden; border: 1px solid var(--fi-border); border-radius: .75rem; background: #fff; box-shadow: 0 1rem 3rem rgb(15 23 42 / 22%); }
.webmail__composer-header, .webmail__composer-footer { display: flex; align-items: center; gap: .75rem; padding: .75rem 1rem; background: #f8fafc; }
.webmail__composer-header { justify-content: space-between; border-bottom: 1px solid var(--fi-border); }
.webmail__composer-header span { display: block; color: var(--fi-text-light); font-size: .75rem; }
.webmail__composer-fields label { display: grid; grid-template-columns: 5rem minmax(0, 1fr); align-items: center; padding: 0 1rem; border-bottom: 1px solid var(--fi-border); }
.webmail__composer-fields input { border: 0; box-shadow: none!important; }
.webmail__editor { border: 0; border-radius: 0; }
.webmail__editor .booking-mail-editor__content { min-height: 15rem; }
.webmail__composer-footer { justify-content: flex-end; border-top: 1px solid var(--fi-border); }
.webmail__composer-footer > span { margin-right: auto; color: var(--fi-text-light); font-size: .8rem; }
.stripe-reconciliation { max-width: 1500px; margin: 0 auto; }
.stripe-reconciliation__header { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1.25rem; }
.stripe-reconciliation__header h1 { margin: .15rem 0; font-size: 1.65rem; }
.stripe-reconciliation__header p { margin: 0; color: var(--fi-text-light); }
.stripe-reconciliation__eyebrow { color: var(--fi-primary); font-size: .72rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.stripe-reconciliation__readonly { display: inline-flex; align-items: center; gap: .4rem; padding: .45rem .7rem; color: #087443; font-size: .8rem; font-weight: 600; border: 1px solid #b7e4cd; border-radius: 999px; background: #eefbf4; }
.stripe-payout-list { display: grid; gap: .65rem; }
.stripe-payout { overflow: hidden; border: 1px solid var(--fi-border); border-radius: .75rem; background: #fff; }
.stripe-payout__summary { display: grid; grid-template-columns: auto minmax(13rem, 1.3fr) minmax(9rem, .7fr) minmax(9rem, .7fr) auto auto; gap: 1rem; align-items: center; width: 100%; padding: 1rem; text-align: left; border: 0; background: #fff; }
.stripe-payout__summary:hover, .stripe-payout.is-open .stripe-payout__summary { background: #f7faff; }
.stripe-payout__icon { display: inline-flex; align-items: center; justify-content: center; width: 2.6rem; height: 2.6rem; color: var(--fi-primary); font-size: 1.15rem; border-radius: .65rem; background: #eaf2ff; }
.stripe-payout__summary small, .stripe-payout__summary strong, .stripe-payout__summary code { display: block; }
.stripe-payout__summary small { margin-bottom: .12rem; color: var(--fi-text-light); font-size: .72rem; }
.stripe-payout__summary code { margin-top: .16rem; color: var(--fi-text-light); font-size: .7rem; }
.stripe-payout__chevron { transition: transform .2s ease; }
.stripe-payout.is-open .stripe-payout__chevron { transform: rotate(180deg); }
.stripe-payout__details { border-top: 1px solid var(--fi-border); background: #fbfcfe; }
.stripe-payout__loading, .stripe-payout__empty { display: flex; align-items: center; justify-content: center; gap: .55rem; min-height: 8rem; color: var(--fi-text-light); }
.stripe-payout__totals { display: grid; grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr)); gap: .75rem; padding: 1rem; }
.stripe-payout__totals span { padding: .75rem; border: 1px solid var(--fi-border); border-radius: .55rem; background: #fff; }
.stripe-payout__totals small, .stripe-payout__totals strong { display: block; }
.stripe-payout__totals small { margin-bottom: .15rem; color: var(--fi-text-light); font-size: .72rem; }
.stripe-payout__reconciliation { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin: 0 1rem 1rem; padding: .65rem .8rem; border: 1px solid; border-radius: .5rem; }
.stripe-payout__reconciliation span { display: inline-flex; align-items: center; gap: .4rem; font-weight: 600; }
.stripe-payout__reconciliation small { text-align: right; }
.stripe-payout__reconciliation.is-balanced { color: #087443; border-color: #b7e4cd; background: #eefbf4; }
.stripe-payout__reconciliation.is-unbalanced { color: #8a5a00; border-color: #f1d28b; background: #fff8e5; }
.stripe-transactions { margin: 0; background: #fff; }
.stripe-transactions th { color: var(--fi-text-light); font-size: .72rem; text-transform: uppercase; }
.stripe-transactions td > small, .stripe-transactions td > code { display: block; margin-top: .18rem; color: var(--fi-text-light); font-size: .72rem; }
.stripe-transactions td:last-child { vertical-align: middle; }
.stripe-transactions td:last-child .btn { display: inline-flex; align-items: center; justify-content: center; min-height: 32px; line-height: 1.15; }
.stripe-transaction-type { display: inline-flex; padding: .18rem .42rem; color: #285b96; font-size: .72rem; font-weight: 600; border-radius: .35rem; background: #eaf2ff; }
.stripe-reconciliation__pagination { display: flex; justify-content: center; gap: .65rem; padding: 1.25rem; }
.booking-pos-sections { display: flex; flex-direction: column; }
.booking-pos-section--card,
.booking-pos-section--operations,
.booking-pos-section--requests { order: initial; }
section.booking-pos-section--card { display: block; }
.booking-pos-subheading { margin: 0 0 .85rem; padding-bottom: .75rem; border-bottom: 1px solid var(--fi-border); }
.booking-pos-subheading strong, .booking-pos-subheading span { display: block; }
.booking-pos-subheading span { margin-top: .2rem; color: var(--fi-text-light); font-size: .85rem; }
.booking-pos-link-actions { display: flex; flex-wrap: wrap; gap: .5rem; }
.booking-pos-link-actions .btn, .booking-pos-open-link { display: inline-flex; align-items: center; justify-content: center; gap: .4rem; min-height: 32px; line-height: 1; }
.booking-detail__available-rooms .accordion-button { font-weight: 600; }
.booking-room-option { display: flex; align-items: center; justify-content: space-between; gap: 1rem; height: 100%; padding: .85rem; border: 1px solid var(--fi-border); border-radius: .5rem; background: #f8fbff; }
.booking-room-option span { display: block; margin-top: .15rem; color: var(--fi-text-light); font-size: .85rem; }
.booking-room-options-state { display: flex; align-items: center; justify-content: center; gap: .5rem; min-height: 4rem; color: var(--fi-text-light); font-size: .85rem; text-align: center; }
.booking-detail__savebar { position: sticky; bottom: .75rem; z-index: 10; display: flex; justify-content: space-between; align-items: center; gap: 1rem; max-width: 1440px; margin: 1rem auto 1.5rem; padding: .75rem 1rem; background: rgba(255, 255, 255, .96); border: 1px solid var(--fi-border); border-radius: var(--fi-radius); box-shadow: 0 -.25rem 1rem rgba(21, 44, 72, .08); backdrop-filter: blur(8px); }
.booking-detail__save-actions { display: flex; flex-wrap: nowrap; justify-content: flex-end; gap: .5rem; }
.booking-detail__save-actions .btn { white-space: nowrap; }
.booking-detail__log { display: grid; gap: .25rem; padding: 1rem 0; border-bottom: 1px solid var(--fi-border); }
.booking-detail__log:first-child { padding-top: 0; }
.booking-detail__log:last-child { padding-bottom: 0; border-bottom: 0; }
.booking-detail__log span, .booking-detail__log p { margin: 0; color: var(--fi-text-light); font-size: .9rem; }
.booking-history-heading { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: .75rem; }
.booking-history-heading h3 { margin: 0; font-size: 1.05rem; }
.booking-history-heading span { color: var(--fi-text-light); font-size: .8rem; }
.booking-history-heading > i { display: grid; width: 2.25rem; height: 2.25rem; place-items: center; color: var(--fi-primary); background: #eef5ff; border-radius: 50%; }
.booking-history-table { overflow: hidden; border: 1px solid var(--fi-border); border-radius: .6rem; }
.booking-history-table th { padding: .65rem .75rem; color: var(--fi-text-light); font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .035em; background: #f5f8fc; border-bottom-width: 1px; white-space: nowrap; }
.booking-history-table td { padding: .7rem .75rem; font-size: .84rem; background: var(--fi-surface); }
.booking-history-table tbody tr:nth-child(even) td { background: #f8fafc; }
.booking-history-number { display: inline-grid; min-width: 1.8rem; height: 1.8rem; padding: 0 .35rem; place-items: center; color: var(--fi-primary); font-weight: 700; background: #eef5ff; border-radius: 50%; }
.booking-history-table--statuses td:first-child { min-width: 13rem; }
.booking-history-table--statuses td:first-child strong, .booking-history-table--statuses td:first-child span { display: block; }
.booking-history-table--statuses td:first-child span { margin-top: .15rem; color: var(--fi-text-light); font-size: .78rem; }
.booking-history-empty { padding: 1.5rem !important; color: var(--fi-text-light); text-align: center; }
.booking-notifications-table td:nth-child(2), .booking-notifications-table td:nth-child(5) { min-width: 11rem; }
.booking-notification-text-row > td { padding: 0 !important; border-bottom: 0; }
.booking-notification-preview { margin: .75rem; padding: 1rem; background: #f8fafc; border: 1px solid var(--fi-border); border-radius: .5rem; }
.booking-notification-preview__heading { display: flex; justify-content: space-between; gap: 1rem; margin-bottom: .75rem; }
.booking-notification-preview__heading span { color: var(--fi-text-light); font-size: .8rem; }
.booking-notification-preview iframe { display: block; width: 100%; height: 16rem; background: #fff; border: 1px solid var(--fi-border); border-radius: .35rem; }
.booking-notification-compose { margin-top: 1.5rem; padding-top: 1.5rem; border-top: 1px solid var(--fi-border); }
.booking-guest-directory__search { margin-bottom: 1rem; }
.booking-guest-directory__state { display: flex; align-items: center; justify-content: center; gap: .55rem; min-height: 8rem; padding: 1rem; color: var(--fi-text-light); text-align: center; border: 1px dashed var(--fi-border); border-radius: .6rem; background: #f8fafc; }
.booking-guest-directory__results { overflow: hidden; border: 1px solid var(--fi-border); border-radius: .6rem; }
.booking-guest-directory__result { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: .75rem; width: 100%; padding: .7rem .8rem; color: var(--fi-text); text-align: left; border: 0; background: #fff; }
.booking-guest-directory__result + .booking-guest-directory__result { border-top: 1px solid var(--fi-border); }
.booking-guest-directory__result:hover { background: #f8fbff; }
.booking-guest-directory__result.is-selected { background: #eef5ff; box-shadow: inset 3px 0 0 var(--fi-primary); }
.booking-guest-directory__result-icon { display: grid; width: 2rem; height: 2rem; color: var(--fi-primary); place-items: center; border-radius: 50%; background: #eaf2ff; }
.booking-guest-directory__result > span:nth-child(2) { display: flex; overflow: hidden; flex-direction: column; min-width: 0; }
.booking-guest-directory__result strong, .booking-guest-directory__result small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.booking-guest-directory__result strong { font-size: .85rem; }
.booking-guest-directory__result small { color: var(--fi-text-light); font-size: .75rem; }
.booking-guest-directory__language { padding: .15rem .4rem; color: var(--fi-text-light); font-size: .68rem; font-weight: 700; border-radius: 999px; background: #eef1f5; }
.booking-guest-directory__selection { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-top: 1rem; padding: .8rem; border: 1px solid rgba(var(--bs-primary-rgb), .3); border-radius: .6rem; background: #f8fbff; }
.booking-guest-directory__selection > div { display: flex; overflow: hidden; flex-direction: column; min-width: 0; }
.booking-guest-directory__selection span, .booking-guest-directory__selection small { color: var(--fi-text-light); font-size: .72rem; }
.booking-guest-directory__selection strong, .booking-guest-directory__selection small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.booking-section-updated { animation: booking-section-updated 1.2s ease-out; }
@keyframes booking-section-updated { 0% { box-shadow: 0 0 0 .25rem rgba(var(--bs-success-rgb), .2); } 100% { box-shadow: none; } }
.booking-specific-notification { padding: 1rem; border: 1px solid var(--fi-border); border-radius: .6rem; background: #f8fafc; }
.booking-specific-notification__language { display: flex; align-items: center; gap: .5rem; min-height: var(--fi-control-height); padding: var(--fi-control-padding-y) .75rem; color: var(--fi-text); font-weight: 600; border: 1px solid var(--fi-border); border-radius: .375rem; background: #fff; }
.booking-specific-notification__language span { text-transform: uppercase; }
.booking-specific-notification__actions { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: .5rem; margin-top: 1rem; }
.booking-specific-notification__actions .btn { display: inline-flex; align-items: center; gap: .45rem; }
.booking-specific-notification__result { display: inline-flex; align-items: center; gap: .4rem; margin-right: auto; color: var(--fi-success); font-size: .85rem; font-weight: 600; }
.booking-specific-notification__result::before { font-family: bootstrap-icons; content: "\f26b"; }
.booking-mail-navigation { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; padding-bottom: .75rem; border-bottom: 1px solid var(--fi-border); }
.booking-mail-tabs { gap: .5rem; }
.booking-mail-tabs .nav-link { display: inline-flex; align-items: center; gap: .45rem; min-width: 9rem; justify-content: center; }
.booking-mail-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: .75rem; }
.booking-mail-toolbar h3 { margin: 0; font-size: 1.05rem; }
.booking-mail-toolbar h3 small { display: block; margin-top: .2rem; color: var(--fi-text-light); font-size: .82rem; font-weight: 400; }
.booking-mail-toolbar h3 small strong { color: var(--fi-text); font-weight: 600; }
.booking-mail-toolbar > div > span { color: var(--fi-text-light); font-size: .8rem; }
.booking-mail-search { position: relative; width: min(22rem, 100%); }
.booking-mail-search > i { position: absolute; top: 50%; left: .75rem; z-index: 1; color: var(--fi-text-light); transform: translateY(-50%); pointer-events: none; }
.booking-mail-search .form-control { padding-left: 2.25rem; }
.booking-mail-state { display: flex; align-items: center; justify-content: center; gap: .6rem; min-height: 9rem; padding: 1.5rem; color: var(--fi-text-light); text-align: center; border: 1px dashed var(--fi-border); border-radius: .6rem; background: #f8fafc; }
.booking-mail-table td:first-child { min-width: 16rem; font-weight: 600; }
.booking-mail-table td:nth-child(2) { min-width: 12rem; }
.booking-mail-table td:nth-child(3) { min-width: 8rem; white-space: nowrap; }
.booking-mail-address { display: block; margin-top: .1rem; color: var(--fi-text-light); font-size: .78rem; font-weight: 400; }
.booking-mail-attachment-indicator { display: inline-flex; align-items: center; margin-left: .45rem; color: var(--fi-primary); font-size: .85rem; vertical-align: middle; }
.booking-mail-attachments { display: flex; align-items: center; flex-wrap: wrap; gap: .5rem; margin: .75rem 0; padding: .65rem; border: 1px solid var(--fi-border); border-radius: .45rem; background: #f8fafc; }
.booking-mail-attachments__label { display: inline-flex; align-items: center; gap: .35rem; margin-right: .25rem; font-size: .8rem; font-weight: 600; }
.booking-mail-attachment { display: inline-flex; align-items: center; gap: .35rem; padding: .3rem .5rem; color: var(--fi-text); font-size: .78rem; text-decoration: none; border: 1px solid var(--fi-border); border-radius: .35rem; background: #fff; }
.booking-mail-attachment:hover { color: var(--fi-primary); border-color: var(--fi-primary); }
.booking-mail-attachment__download { padding: .3rem .42rem; }
.booking-mail-editor { overflow: hidden; border: 1px solid var(--fi-border); border-radius: .45rem; background: #fff; }
.booking-mail-editor:focus-within { border-color: #86b7fe; box-shadow: 0 0 0 .25rem rgb(13 110 253 / 25%); }
.booking-mail-editor__toolbar { display: flex; align-items: center; flex-wrap: wrap; gap: .2rem; padding: .4rem; border-bottom: 1px solid var(--fi-border); background: #f8fafc; }
.booking-mail-editor__toolbar .btn { min-width: 2rem; border: 0; }
.booking-mail-editor__separator { align-self: stretch; width: 1px; margin: .15rem .3rem; background: var(--fi-border); }
.booking-mail-editor__content { min-height: 16rem; padding: .85rem; outline: 0; }
.booking-mail-editor__content:empty::before { color: var(--fi-text-light); content: "Scrivi il messaggio…"; pointer-events: none; }
.booking-attachments-upload { display: flex; align-items: flex-start; gap: 1rem; padding: 1rem; border: 1px solid var(--fi-border); border-radius: .55rem; background: #f8fafc; }
.booking-attachments-upload > div { flex: 1 1 auto; min-width: 0; }
.booking-attachments-upload > .btn { min-height: var(--fi-control-height); margin-top: 1.45rem; padding-top: var(--fi-control-padding-y); padding-bottom: var(--fi-control-padding-y); }
.booking-attachments-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; margin: 1.5rem 0 .75rem; }
.booking-attachments-heading h3 { margin: 0; font-size: 1.05rem; }
.booking-attachments-heading span { color: var(--fi-text-light); font-size: .8rem; }
.booking-attachments-list { overflow: hidden; border: 1px solid var(--fi-border); border-radius: .55rem; }
.booking-attachment-row { display: flex; align-items: center; gap: .85rem; padding: .8rem 1rem; background: #fff; }
.booking-attachment-row + .booking-attachment-row { border-top: 1px solid var(--fi-border); }
.booking-attachment-row__icon { display: grid; flex: 0 0 2.25rem; width: 2.25rem; height: 2.25rem; color: var(--fi-primary); font-size: 1.15rem; place-items: center; border-radius: .45rem; background: #eaf2ff; }
.booking-attachment-row__info { flex: 1 1 auto; min-width: 0; }
.booking-attachment-row__name { display: block; overflow: hidden; color: var(--fi-text); font-size: .88rem; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
.booking-attachment-row__meta { display: flex; align-items: center; flex-wrap: wrap; gap: .4rem; margin-top: .1rem; color: var(--fi-text-light); font-size: .75rem; }
.booking-attachment-row__actions { display: flex; flex: 0 0 auto; gap: .35rem; }
.booking-attachment-row__actions .btn { display: inline-grid; width: var(--fi-control-height); min-width: var(--fi-control-height); height: var(--fi-control-height); min-height: var(--fi-control-height); padding: 0; place-items: center; }
.booking-authorities-summary { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .75rem; margin-bottom: 1rem; }
.booking-authorities-summary__item { display: flex; align-items: center; gap: .75rem; padding: .85rem; border: 1px solid var(--fi-border); border-radius: .6rem; background: #fff; }
.booking-authorities-summary__icon, .booking-authority-card__icon { display: grid; flex: 0 0 2.4rem; width: 2.4rem; height: 2.4rem; color: var(--fi-primary); font-size: 1.15rem; line-height: 1; place-items: center; border-radius: .55rem; background: #eaf2ff; }
.booking-authorities-summary__icon > i, .booking-authority-card__icon > i { display: block; font-size: 1.15rem; line-height: 1; }
.booking-authorities-summary__item > div > span, .booking-authority-card__heading > div > span { display: block; color: var(--fi-text-light); font-size: .75rem; }
.booking-authorities-summary__item strong { display: block; margin-top: .1rem; color: var(--fi-text); font-size: 1rem; }
.booking-authorities-destinations { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; }
.booking-authority-card { display: flex; flex-direction: column; min-width: 0; padding: 1rem; border: 1px solid var(--fi-border); border-radius: .65rem; background: #f8fafc; }
.booking-authority-card__heading { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: .75rem; }
.booking-authority-card__heading .badge { align-self: start; color: #fff; }
.booking-authority-card__issues { flex: 1 1 auto; margin: .85rem 0; color: var(--fi-text-light); font-size: .8rem; }
.booking-authority-card__issues ul { padding-left: 1.1rem; }
.booking-authority-card__actions { display: flex; justify-content: flex-end; gap: .5rem; }
.booking-authority-card__preview { overflow: auto; max-height: 18rem; margin: .85rem 0 0; padding: .85rem; color: #dbeafe; font: .72rem/1.5 ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace; white-space: pre; border-radius: .5rem; background: #172033; }
.booking-authorities-heading { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin: 1.5rem 0 .75rem; }
.booking-authorities-heading h3 { margin: 0; font-size: 1.05rem; }
.booking-authorities-heading p { margin: .15rem 0 0; color: var(--fi-text-light); font-size: .8rem; }
.booking-authorities-guests .accordion-button > span { display: flex; flex-direction: column; gap: .15rem; }
.booking-authorities-guests .accordion-button small { color: var(--fi-text-light); font-size: .75rem; font-weight: 400; }
.booking-authority-fields { display: grid; grid-template-columns: minmax(8rem, .65fr) minmax(10rem, 1fr) minmax(8rem, .65fr) minmax(10rem, 1fr); margin: 0; }
.booking-authority-fields dt, .booking-authority-fields dd { margin: 0; padding: .55rem .65rem; border-bottom: 1px solid var(--fi-border); font-size: .82rem; }
.booking-authority-fields dt { color: var(--fi-text-light); font-weight: 500; }
.booking-authority-fields dd { color: var(--fi-text); font-weight: 600; }
.booking-authorities-empty { padding: 2rem; color: var(--fi-text-light); text-align: center; border: 1px dashed var(--fi-border); border-radius: .6rem; }
.booking-authority-draft { border-color: rgba(var(--bs-primary-rgb), .35); }
.booking-authority-draft .accordion-button { background: #f4f8ff; }
.booking-authority-draft__actions { display: flex; justify-content: flex-end; gap: .5rem; padding-top: .25rem; }
.booking-authorities-guests--compact .accordion-button { padding: .8rem 1rem; }
.booking-authorities-guests--compact .accordion-button span { display: flex; flex-direction: column; gap: .1rem; }
.booking-authorities-guests--compact .accordion-button small { color: var(--bs-secondary-color); font-weight: 400; }
.booking-authorities-guests--compact .accordion-button small.text-success { color: var(--bs-success) !important; }
.booking-authorities-guests--compact .accordion-button small.text-danger { color: var(--bs-danger) !important; }
.booking-authorities-guests--compact .accordion-body { padding: 1rem; }
.booking-authorities-guests--compact form { --bs-gutter-x: 1rem; --bs-gutter-y: .75rem; }
.booking-authorities-guests--compact .form-label { font-size: .78rem; font-weight: 600; margin-bottom: .3rem; }
.booking-authorities-guests--compact .booking-authority-draft .alert { margin-top: 1rem !important; }
.booking-whatsapp-message { min-height: 20rem; resize: vertical; font-family: inherit; line-height: 1.55; }
.booking-account-summary { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .75rem; }
.booking-account-header-actions { display: flex; align-items: center; gap: .9rem; margin-left: auto; }
.booking-account-header-actions .btn { white-space: nowrap; }
.booking-account-header-actions > a.btn { display: inline-flex; align-items: center; min-height: 2.25rem; height: 2.25rem; padding: .375rem .75rem; }
.booking-account-summary__item { display: flex; align-items: center; gap: .7rem; padding: .85rem; border: 1px solid var(--fi-border); border-radius: .6rem; background: #fff; }
.booking-account-summary__item--balance { color: #fff; }
.booking-account-summary__item--settled { border-color: var(--fi-success); background: var(--fi-success); }
.booking-account-summary__item--partial { color: #3d3100; border-color: var(--fi-warning); background: #ffe69c; }
.booking-account-summary__item--due { border-color: var(--fi-danger); background: var(--fi-danger); }
.booking-account-summary__icon { display: grid; flex: 0 0 2.25rem; width: 2.25rem; height: 2.25rem; color: var(--fi-primary); place-items: center; border-radius: .5rem; background: #eaf2ff; }
.booking-account-summary__item--balance .booking-account-summary__icon { color: inherit; background: rgba(255,255,255,.2); }
.booking-account-summary__icon > i { display: block; font-size: 1.1rem; line-height: 1; }
.booking-account-summary__item > div > span, .booking-account-summary__item strong { display: block; }
.booking-account-summary__item > div > span { font-size: .75rem; opacity: .75; }
.booking-account-summary__item strong { margin-top: .1rem; font-size: 1rem; }
.booking-account-panel { overflow: hidden; height: 100%; border: 1px solid var(--fi-border); border-radius: .65rem; background: #fff; }
.booking-account-panel__heading { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .7rem 1rem; border-bottom: 1px solid var(--fi-border); background: #f8fafc; }
.booking-account-panel__heading h3 { margin: 0; font-size: 1rem; }
.booking-account-panel__heading span { color: var(--fi-text-light); font-size: .8rem; font-weight: 600; }
.booking-account-panel__actions { display: flex; align-items: center; gap: .35rem; }
.booking-account-row { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .8rem 1rem; }
.booking-account-row + .booking-account-row { border-top: 1px solid var(--fi-border); }
.booking-account-row__info { display: flex; flex-direction: column; min-width: 0; gap: .15rem; }
.booking-account-row__info > strong { font-size: .85rem; }
.booking-account-row__info > span, .booking-account-row__amount > span { color: var(--fi-text-light); font-size: .72rem; }
.booking-account-row__amount { display: flex; flex: 0 0 auto; align-items: flex-end; flex-direction: column; }
.booking-account-row__value { flex: 0 0 auto; font-size: .9rem; }
.booking-account-row__badges { display: flex; gap: .3rem; }
.booking-account-row__draft { width: fit-content; font-size: .65rem; }
.booking-account-row__delete { min-height: 0; padding: .1rem 0 0; font-size: .7rem; line-height: 1.2; }
.booking-account-empty { padding: 2rem; color: var(--fi-text-light); text-align: center; }
.booking-account-draft { margin: 1rem 0; padding: 1rem; border: 1px solid rgba(var(--bs-primary-rgb), .35); border-radius: .65rem; background: #f8fbff; }
.booking-account-draft__heading { display: flex; align-items: center; justify-content: space-between; margin-bottom: .75rem; }
.booking-account-draft__heading h3 { margin: 0; font-size: 1.05rem; }
.booking-account-draft__actions { display: flex; justify-content: flex-end; gap: .5rem; }
.booking-account-allocation { overflow: hidden; border: 1px solid var(--fi-border); border-radius: .5rem; background: #fff; }
.booking-account-allocation h4 { margin: 0; padding: .7rem .8rem; font-size: .85rem; border-bottom: 1px solid var(--fi-border); background: #f8fafc; }
.booking-account-allocation__header, .booking-account-allocation__row { display: grid; grid-template-columns: 1.5rem minmax(10rem, 1fr) 5rem 6.4rem 5rem 6.4rem; align-items: center; gap: .55rem; padding: .6rem .8rem; }
.booking-account-allocation__header { color: var(--fi-text-light); font-size: .7rem; font-weight: 600; border-bottom: 1px solid var(--fi-border); background: #f8fafc; }
.booking-account-allocation__row { font-size: .8rem; }
.booking-account-allocation__row + .booking-account-allocation__row { border-top: 1px solid var(--fi-border); }
.booking-account-allocation__description { font-weight: 600; }
.booking-account-allocation__row .form-control { min-width: 0; }
.booking-account-allocation__totals { display: grid; grid-template-columns: 1fr auto; gap: .45rem 1rem; padding: .8rem; text-align: right; border-top: 1px solid var(--fi-border); background: #f8fafc; }
.booking-account-allocation__totals span { color: var(--fi-text-light); font-size: .75rem; }
.booking-billing { overflow: hidden; border: 1px solid var(--fi-border); border-radius: .7rem; background: #f8fafc; }
.booking-billing__switch { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem; }
.booking-billing__switch > div:first-child { display: flex; flex-direction: column; gap: .15rem; }
.booking-billing__switch span { color: var(--fi-text-light); font-size: .8rem; }
.booking-billing__switch .form-check-input { width: 2.65rem; height: 1.4rem; margin: 0; }
.booking-billing__panel { padding: 1rem; border-top: 1px solid var(--fi-border); background: #fff; }
.booking-invoice-reminder { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .8rem 1rem; border: 1px solid var(--fi-border); border-radius: .65rem; background: #f8fafc; }
.booking-invoice-reminder > div:first-child { display: flex; flex-direction: column; gap: .1rem; }
.booking-invoice-reminder span { color: var(--fi-text-light); font-size: .75rem; }
.booking-invoice-reminder .form-check-input { width: 2.65rem; height: 1.4rem; margin: 0; }
.booking-cash-invoice-alert { display: flex; align-items: flex-start; gap: .75rem; }
.booking-cash-invoice-alert[hidden] { display: none!important; }
.booking-cash-invoice-alert > i { flex: 0 0 auto; margin-top: .1rem; font-size: 1.1rem; }
.booking-cash-invoice-alert > div { display: flex; flex-direction: column; gap: .15rem; }
.booking-cash-invoice-alert span { font-size: .8rem; }
.booking-cash-receipt__icon > i { display: block; font-size: 1.1rem; line-height: 1; }
.booking-cash-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin: 1.25rem 0 .75rem; }
.booking-cash-toolbar h3 { margin: 0; font-size: 1.05rem; }
.booking-cash-toolbar p { margin: .15rem 0 0; color: var(--fi-text-light); font-size: .8rem; }
.booking-cash-toolbar .btn i { font-size: 1.1rem; line-height: 1; }
.booking-cash-receipts { overflow: hidden; border: 1px solid var(--fi-border); border-radius: .65rem; background: #fff; }
.booking-cash-receipt { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: 1rem; padding: .85rem 1rem; }
.booking-cash-receipt + .booking-cash-receipt { border-top: 1px solid var(--fi-border); }
.booking-cash-receipt.is-cancelled { opacity: .7; background: #fff7f6; }
.booking-cash-receipt__main { display: flex; align-items: center; min-width: 0; gap: .7rem; }
.booking-cash-receipt__icon { display: grid; flex: 0 0 2.25rem; width: 2.25rem; height: 2.25rem; color: var(--fi-primary); place-items: center; border-radius: .5rem; background: #eaf2ff; }
.booking-cash-receipt__main > div { display: flex; overflow: hidden; flex-direction: column; min-width: 0; }
.booking-cash-receipt__main span, .booking-cash-receipt__main small { overflow: hidden; color: var(--fi-text-light); font-size: .72rem; white-space: nowrap; text-overflow: ellipsis; }
.booking-cash-receipt__amount { display: flex; align-items: flex-end; flex-direction: column; gap: .25rem; }
.booking-cash-receipt__actions { display: flex; gap: .35rem; }
.booking-cash-receipt__actions .btn { display: inline-grid; width: 2.15rem; height: 2.15rem; padding: 0; place-items: center; }
.booking-cash-receipt__actions .btn i { line-height: 1; }
[data-cash-draft] { margin-bottom: 1rem; padding: 1rem; border: 1px solid rgba(var(--bs-primary-rgb), .35); border-radius: .65rem; background: #f8fbff; }
.booking-cash-payment-list { overflow: hidden; border: 1px solid var(--fi-border); border-radius: .55rem; background: #fff; }
.booking-cash-payment { display: flex; align-items: center; gap: .75rem; padding: .7rem .8rem; cursor: pointer; }
.booking-cash-payment + .booking-cash-payment { border-top: 1px solid var(--fi-border); }
.booking-cash-payment > span { display: flex; flex-direction: column; }
.booking-cash-payment small { color: var(--fi-text-light); font-size: .72rem; }
.booking-cash-trace { margin-top: 1rem; overflow: hidden; border: 1px solid var(--fi-border); border-radius: .55rem; background: #142033; }
.booking-cash-trace > div { display: flex; align-items: center; justify-content: space-between; padding: .65rem .85rem; color: #fff; border-bottom: 1px solid rgba(255,255,255,.14); }
.booking-cash-trace h4 { margin: 0; font-size: .85rem; }
.booking-cash-trace pre { overflow: auto; max-height: 18rem; margin: 0; padding: .85rem; color: #d7e5f8; font-size: .75rem; }
.booking-readonly-note { display: inline-flex; align-items: center; gap: .4rem; color: var(--fi-text-light); font-size: .75rem; }
.booking-summary-card__balance { display: flex; align-items: center; justify-content: space-between; gap: .5rem; }
.booking-payment-status { display: inline-flex!important; align-items: center; width: fit-content; padding: .18rem .45rem; font-size: .68rem!important; font-weight: 700; letter-spacing: .03em; border-radius: 999px; }
.booking-payment-status--settled { color: #fff!important; background: var(--fi-success); }
.booking-payment-status--partial { color: #594800!important; background: #ffe69c; }
.booking-payment-status--due { color: #fff!important; background: var(--fi-danger); }
.booking-summary-card--settled { border-left: 4px solid var(--fi-success); background: #f2fbf6; }
.booking-summary-card--partial { border-left: 4px solid var(--fi-warning); background: #fffaf0; }
.booking-summary-card--due { border-left: 4px solid var(--fi-danger); background: #fff5f5; }
.booking-detail__section--placeholder { display: flex; flex-direction: column; align-items: center; padding: 2rem; color: var(--fi-text-light); text-align: center; }
.booking-detail__section--placeholder > i { margin-bottom: .5rem; color: var(--fi-primary); font-size: 1.5rem; }
.booking-detail__section--placeholder h2 { color: var(--fi-text); font-size: 1.1rem; }
.booking-detail__section--placeholder p { max-width: 440px; margin: 0; }
.fi-error-page { display: grid; min-height: 100%; padding: clamp(1rem, 4vw, 4rem); place-items: center; }
.fi-error-card { display: grid; grid-template-columns: minmax(15rem, .8fr) minmax(18rem, 1fr); overflow: hidden; width: min(100%, 850px); border: 1px solid var(--fi-border); border-radius: calc(var(--fi-radius) + 4px); background: var(--fi-surface); box-shadow: 0 1.25rem 3rem rgba(37, 55, 70, .1); }
.fi-error-illustration { position: relative; display: grid; min-height: 22rem; overflow: hidden; color: #fff; place-items: center; background: linear-gradient(145deg, var(--fi-surface-dark), #34536b); }
.fi-error-illustration::before, .fi-error-illustration::after { position: absolute; width: 12rem; height: 12rem; content: ""; border: 1px solid rgba(255, 255, 255, .12); border-radius: 50%; }
.fi-error-illustration::before { top: -5rem; left: -4rem; }
.fi-error-illustration::after { right: -5rem; bottom: -6rem; width: 16rem; height: 16rem; }
.fi-error-code { position: relative; z-index: 1; color: rgba(255, 255, 255, .12); font-size: clamp(6rem, 13vw, 9rem); font-weight: 800; letter-spacing: -.08em; line-height: 1; }
.fi-error-compass { position: absolute; z-index: 2; display: grid; width: 4.25rem; height: 4.25rem; color: var(--fi-primary); font-size: 2rem; place-items: center; border: .45rem solid rgba(255, 255, 255, .2); border-radius: 50%; background: #fff; box-shadow: 0 .75rem 2rem rgba(0, 0, 0, .22); }
.fi-error-copy { align-self: center; padding: clamp(2rem, 5vw, 4rem); }
.fi-error-eyebrow { display: block; margin-bottom: .65rem; color: var(--fi-primary); font-size: .75rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.fi-error-copy h1 { margin-bottom: 1rem; color: var(--fi-text); font-size: clamp(1.75rem, 4vw, 2.5rem); letter-spacing: -.035em; }
.fi-error-copy p { max-width: 31rem; margin-bottom: 1.75rem; color: var(--fi-text-light); line-height: 1.65; }
.fi-error-actions { display: flex; flex-wrap: wrap; gap: .65rem; }

@media (max-width: 991.98px) {
    .webmail__layout { grid-template-columns: 10.5rem minmax(0, 1fr); }
    .webmail__message { grid-template-columns: .55rem minmax(8rem, .7fr) minmax(10rem, 1.3fr); }
    .webmail__message > span:last-of-type { display: none; }
    .booking-pos-request { grid-template-columns: 1fr 1fr; }
    .booking-pos-request__description { grid-column: 1 / -1; }
    .booking-pos-request__action { grid-column: 1 / -1; }
    .booking-pos-summary { grid-template-columns: 1fr; }
    .booking-pos-flow { align-items: stretch; flex-direction: column; }
    .booking-pos-flow__line { flex: 0 0 20px; width: 1px; min-width: 0; min-height: 20px; margin: .25rem 0 .25rem 15px; }
    .booking-detail__nav { position: static; flex-direction: row; overflow-x: auto; }
    .booking-detail__nav a { white-space: nowrap; }
    .booking-summary-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .booking-summary-strip__item:nth-child(odd) { border-left: 0; }
    .booking-summary-strip__item:nth-child(n+3) { border-top: 1px solid var(--fi-border); }
    .booking-traffic-lights { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .booking-traffic-light + .booking-traffic-light { border-left: 0; }
    .booking-traffic-light { border-right: 1px solid var(--fi-border); border-bottom: 1px solid var(--fi-border); }
}
@media (max-width: 575.98px) {
    .stripe-reconciliation__header { align-items: flex-start; flex-direction: column; }
    .stripe-payout__summary { grid-template-columns: auto minmax(0, 1fr) auto; }
    .stripe-payout__summary > span:nth-of-type(3), .stripe-payout__summary > span:nth-of-type(4) { grid-column: 2; }
    .stripe-payout__summary > .badge { grid-column: 2; justify-self: start; }
    .stripe-payout__chevron { grid-column: 3; grid-row: 1; }
    .stripe-payout__totals { grid-template-columns: 1fr 1fr; }
    .fi-content--webmail { overflow-y: auto; }
    .webmail { height: auto; }
    .webmail__header { align-items: stretch; flex-direction: column; }
    .webmail__layout { display: block; min-height: 0; overflow: visible; }
    .webmail__folders { display: flex; gap: .35rem; overflow-x: auto; border-right: 0; border-bottom: 1px solid var(--fi-border); }
    .webmail__folders > [data-webmail-folders] { display: contents; }
    .webmail__folder { flex: 0 0 auto; width: auto; margin: 0; }
    .webmail__account { display: none; }
    .webmail__main { grid-template-rows: 18rem minmax(24rem, auto); }
    .webmail__toolbar { align-items: stretch; flex-direction: column; height: auto; min-height: 105px; }
    .webmail__search { width: 100%; }
    .webmail__list { height: calc(100% - 105px); }
    .webmail__message { grid-template-columns: .55rem 1fr; gap: .15rem .6rem; }
    .webmail__unread-dot { grid-row: 1 / 3; }
    .webmail__message-contact, .webmail__message > strong { grid-column: 2; }
    .webmail__message strong { font-weight: 500; }
    .webmail__reader-header { flex-direction: column; }
    .webmail__composer { right: 1rem; }
    .webmail__composer-fields label { grid-template-columns: 1fr; padding-top: .4rem; }
    .booking-pos-request { grid-template-columns: 1fr; }
    .booking-pos-request__description, .booking-pos-request__action { grid-column: auto; }
    .booking-pos-panel__heading, .booking-pos-card-source { align-items: stretch; flex-direction: column; }
    .booking-detail__header, .booking-detail__sca { flex-direction: column; align-items: stretch; }
    .booking-detail__header-actions { justify-content: flex-end; }
    .booking-detail__section-heading, .booking-room-card__heading { flex-direction: column; align-items: flex-start; }
    .booking-detail__section-heading--rooms { align-items: stretch; }
    .booking-room-assignment { align-self: flex-start; width: 100%; }
    .booking-room-assignment__option { flex: 1; }
    .booking-detail__savebar { gap: .5rem; padding: .6rem; }
    .booking-detail__savebar .form-check-label { font-size: .78rem; }
    .booking-detail__save-actions { gap: .25rem; }
    .booking-detail__save-actions .btn { padding-right: .5rem; padding-left: .5rem; font-size: .76rem; }
    .booking-mail-toolbar { align-items: stretch; flex-direction: column; }
    .booking-mail-search { width: 100%; }
    .booking-mail-navigation { align-items: stretch; flex-direction: column; }
    .booking-mail-navigation > .btn { width: 100%; }
    .booking-mail-tabs .nav-item { flex: 1 1 0; }
    .booking-mail-tabs .nav-link { width: 100%; min-width: 0; }
    .booking-attachments-upload { align-items: stretch; flex-direction: column; }
    .booking-attachments-upload > .btn { width: 100%; margin-top: 0; }
    .booking-attachment-row { align-items: flex-start; }
    .booking-authorities-summary, .booking-authorities-destinations { grid-template-columns: 1fr; }
    .booking-authorities-heading { align-items: stretch; flex-direction: column; }
    .booking-authority-card__actions { align-items: stretch; flex-direction: column; }
    .booking-authority-fields { grid-template-columns: minmax(7rem, .7fr) minmax(0, 1fr); }
    .booking-authority-draft__actions { align-items: stretch; flex-direction: column-reverse; }
    .booking-account-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .booking-account-draft__actions { align-items: stretch; flex-direction: column; }
    .booking-account-panel__heading { align-items: stretch; flex-direction: column; }
    .booking-account-panel__actions { align-items: stretch; flex-direction: column; }
    .booking-account-header-actions .btn { overflow: hidden; width: var(--fi-control-height); padding-right: 0; padding-left: 0; font-size: 0; }
    .booking-account-header-actions .btn i { margin: 0!important; font-size: .9rem; }
    .booking-account-allocation { overflow-x: auto; }
    .booking-account-allocation__header, .booking-account-allocation__row { min-width: 42rem; }
    .booking-cash-toolbar { align-items: stretch; flex-direction: column; }
    .booking-cash-receipt { grid-template-columns: minmax(0, 1fr); }
    .booking-cash-receipt__amount { align-items: flex-start; }
    .booking-cash-receipt__actions { justify-content: flex-start; }
    .booking-traffic-lights { grid-template-columns: 1fr; }
    .booking-traffic-light { border-right: 0; }
    .booking-summary-strip { grid-template-columns: 1fr; }
    .booking-summary-strip__item + .booking-summary-strip__item { border-top: 1px solid var(--fi-border); border-left: 0; }
    .fi-error-page { align-items: start; padding: 1rem; }
    .fi-error-card { grid-template-columns: 1fr; }
    .fi-error-illustration { min-height: 10rem; }
    .fi-error-code { font-size: 6rem; }
    .fi-error-compass { width: 3.5rem; height: 3.5rem; font-size: 1.6rem; }
    .fi-error-copy { padding: 1.5rem; }
    .fi-error-actions { align-items: stretch; flex-direction: column; }
}
/* Regiondo administration report */
.regiondo-report { display: grid; gap: 1rem; }
.regiondo-report__header { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; }
.regiondo-report__header h1 { margin: .15rem 0 .25rem; font-size: 1.65rem; }
.regiondo-report__header p { margin: 0; color: var(--fi-text-light); }
.regiondo-report__eyebrow { color: var(--fi-primary); font-size: .72rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.regiondo-report__readonly { display: inline-flex; align-items: center; gap: .45rem; padding: .55rem .75rem; border: 1px solid #b7dfca; border-radius: 999px; background: #edf9f2; color: #157347; font-size: .8rem; font-weight: 700; white-space: nowrap; }
.regiondo-filters { display: grid; grid-template-columns: minmax(190px, 1.5fr) repeat(2, minmax(150px, .8fr)) auto auto; align-items: end; gap: .8rem; padding: 1rem; background: #fff; border: 1px solid var(--fi-border); border-radius: var(--fi-radius); }
.regiondo-filters label { display: grid; gap: .35rem; color: var(--fi-text-light); font-size: .78rem; font-weight: 600; }
.regiondo-filters__check { display: flex !important; align-items: center; gap: .5rem !important; min-height: 38px; color: var(--fi-text) !important; white-space: nowrap; }
.regiondo-totals { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: .75rem; }
.regiondo-totals > div { display: grid; grid-template-columns: 42px 1fr; column-gap: .7rem; align-items: center; padding: .85rem; background: #fff; border: 1px solid var(--fi-border); border-radius: var(--fi-radius); }
.regiondo-totals > div > span { grid-row: 1 / 3; width: 42px; height: 42px; display: grid; place-items: center; border-radius: 10px; background: #eaf2ff; color: var(--fi-primary); }
.regiondo-totals small { color: var(--fi-text-light); }
.regiondo-totals strong { font-size: 1rem; }
.regiondo-totals > .regiondo-totals__primary { color: #fff; background: var(--fi-success); border-color: var(--fi-success); }
.regiondo-totals__primary > span { background: rgba(255,255,255,.18) !important; color: #fff !important; }
.regiondo-totals__primary small { color: rgba(255,255,255,.8); }
.regiondo-list-card { overflow: hidden; background: #fff; border: 1px solid var(--fi-border); border-radius: var(--fi-radius); }
.regiondo-list-card__heading { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: 1rem; border-bottom: 1px solid var(--fi-border); }
.regiondo-list-card__heading h2 { margin: 0 0 .15rem; font-size: 1.05rem; }
.regiondo-list-card__heading p { margin: 0; color: var(--fi-text-light); font-size: .78rem; }
.regiondo-list-card__heading > span { color: var(--fi-text-light); font-size: .8rem; white-space: nowrap; }
.regiondo-table { min-width: 1050px; font-size: .84rem; }
.regiondo-table th { padding: .75rem; color: var(--fi-text-light); background: #f8fafc; font-size: .7rem; letter-spacing: .04em; text-transform: uppercase; white-space: nowrap; }
.regiondo-table td { padding: .75rem; }
.regiondo-table td small { display: block; margin-top: .15rem; color: var(--fi-text-light); }
.regiondo-receipt { display: inline-flex; align-items: center; gap: .45rem; color: var(--fi-success); }
.regiondo-receipt i { font-size: 1.1rem; }
.regiondo-receipt.is-missing, .regiondo-receipt.is-cancelled { color: var(--fi-danger); }
.regiondo-list-card__pagination { padding: 1rem; border-top: 1px solid var(--fi-border); }

@media (max-width: 1199.98px) {
    .regiondo-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .regiondo-totals { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 767.98px) {
    .regiondo-report__header { flex-direction: column; }
    .regiondo-filters, .regiondo-totals { grid-template-columns: 1fr; }
}

/* SumUp administration report */
.sumup-report { display: grid; gap: 1rem; }
.sumup-report__header { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; }
.sumup-report__header h1 { margin: .15rem 0 .25rem; font-size: 1.65rem; }
.sumup-report__header p { margin: 0; color: var(--fi-text-light); }
.sumup-report__eyebrow { color: var(--fi-primary); font-size: .72rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.sumup-report__readonly { display: inline-flex; align-items: center; gap: .45rem; padding: .55rem .75rem; border: 1px solid #b7dfca; border-radius: 999px; background: #edf9f2; color: #157347; font-size: .8rem; font-weight: 700; white-space: nowrap; }
.sumup-filters { display: grid; grid-template-columns: repeat(3, minmax(145px, .75fr)) minmax(210px, 1.3fr) auto; align-items: end; gap: .8rem; padding: 1rem; background: #fff; border: 1px solid var(--fi-border); border-radius: var(--fi-radius); }
.sumup-filters label { display: grid; gap: .35rem; color: var(--fi-text-light); font-size: .78rem; font-weight: 600; }
.sumup-totals { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: .75rem; }
.sumup-totals > div { display: grid; grid-template-columns: 42px 1fr; column-gap: .7rem; align-items: center; padding: .85rem; background: #fff; border: 1px solid var(--fi-border); border-radius: var(--fi-radius); }
.sumup-totals > div > span { grid-row: 1 / 3; width: 42px; height: 42px; display: grid; place-items: center; border-radius: 10px; background: #eaf2ff; color: var(--fi-primary); }
.sumup-totals small { color: var(--fi-text-light); }
.sumup-totals strong { font-size: 1rem; }
.sumup-totals > .sumup-totals__primary { color: #fff; background: var(--fi-success); border-color: var(--fi-success); }
.sumup-totals__primary > span { background: rgba(255,255,255,.18) !important; color: #fff !important; }
.sumup-totals__primary small { color: rgba(255,255,255,.8); }
.sumup-list-card { overflow: hidden; background: #fff; border: 1px solid var(--fi-border); border-radius: var(--fi-radius); }
.sumup-list-card__heading { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: 1rem; border-bottom: 1px solid var(--fi-border); }
.sumup-list-card__heading h2 { margin: 0 0 .15rem; font-size: 1.05rem; }
.sumup-list-card__heading p { margin: 0; color: var(--fi-text-light); font-size: .78rem; }
.sumup-list-card__heading > span { color: var(--fi-text-light); font-size: .8rem; white-space: nowrap; }
.sumup-table { min-width: 1180px; font-size: .82rem; }
.sumup-table th { padding: .75rem; color: var(--fi-text-light); background: #f8fafc; font-size: .7rem; letter-spacing: .04em; text-transform: uppercase; white-space: nowrap; }
.sumup-table td { padding: .75rem; }
.sumup-table td small { display: block; margin-top: .22rem; color: var(--fi-text-light); }
.sumup-table__adjustment { background: #fafafa; }
.sumup-type { display: inline-flex; padding: .2rem .45rem; color: #285b96; font-weight: 700; border-radius: .35rem; background: #eaf2ff; }
.sumup-type.is-refund { color: #6c757d; background: #eceff2; }
.sumup-pending { display: inline-flex; align-items: center; gap: .3rem; color: #9a6700; }
.sumup-booking-link { display: inline-flex; align-items: center; gap: .35rem; min-height: 32px; }
.sumup-accounting { display: inline-flex; align-items: center; gap: .3rem; color: #a26100; font-weight: 600; }
.sumup-accounting.is-exported { color: var(--fi-success); }
.sumup-list-card__pagination { padding: 1rem; border-top: 1px solid var(--fi-border); }

@media (max-width: 1199.98px) {
    .sumup-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .sumup-totals { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 767.98px) {
    .sumup-report__header { flex-direction: column; }
    .sumup-filters, .sumup-totals { grid-template-columns: 1fr; }
}

/* PayPal administration report */
.paypal-report { display: grid; gap: 1rem; }
.paypal-report__header { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; }
.paypal-report__header h1 { margin: .15rem 0 .25rem; font-size: 1.65rem; }
.paypal-report__header p { margin: 0; color: var(--fi-text-light); }
.paypal-report__eyebrow { color: #0877c9; font-size: .72rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.paypal-report__readonly { display: inline-flex; align-items: center; gap: .45rem; padding: .55rem .75rem; border: 1px solid #b7dfca; border-radius: 999px; background: #edf9f2; color: #157347; font-size: .8rem; font-weight: 700; white-space: nowrap; }
.paypal-filters { display: grid; grid-template-columns: minmax(150px, .55fr) minmax(230px, .9fr) minmax(260px, 1.25fr) auto; align-items: end; gap: .8rem; padding: 1rem; background: #fff; border: 1px solid var(--fi-border); border-radius: var(--fi-radius); }
.paypal-filters label { display: grid; gap: .35rem; color: var(--fi-text-light); font-size: .78rem; font-weight: 600; }
.paypal-totals { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: .75rem; }
.paypal-totals > div { display: grid; grid-template-columns: 42px 1fr; column-gap: .7rem; align-items: center; padding: .85rem; background: #fff; border: 1px solid var(--fi-border); border-radius: var(--fi-radius); }
.paypal-totals > div > span { grid-row: 1 / 3; width: 42px; height: 42px; display: grid; place-items: center; border-radius: 10px; background: #e8f3fb; color: #0877c9; }
.paypal-totals small { color: var(--fi-text-light); }
.paypal-totals strong { font-size: 1rem; }
.paypal-totals > .paypal-totals__primary { color: #fff; background: #0877c9; border-color: #0877c9; }
.paypal-totals__primary > span { background: rgba(255,255,255,.18) !important; color: #fff !important; }
.paypal-totals__primary small { color: rgba(255,255,255,.8); }
.paypal-list-card { overflow: hidden; background: #fff; border: 1px solid var(--fi-border); border-radius: var(--fi-radius); }
.paypal-list-card__heading { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: 1rem; border-bottom: 1px solid var(--fi-border); }
.paypal-list-card__heading h2 { margin: 0 0 .15rem; font-size: 1.05rem; }
.paypal-list-card__heading p { margin: 0; color: var(--fi-text-light); font-size: .78rem; }
.paypal-list-card__heading > span { color: var(--fi-text-light); font-size: .8rem; white-space: nowrap; }
.paypal-table { min-width: 1180px; font-size: .82rem; }
.paypal-table th { padding: .75rem; color: var(--fi-text-light); background: #f8fafc; font-size: .7rem; letter-spacing: .04em; text-transform: uppercase; white-space: nowrap; }
.paypal-table td { padding: .75rem; }
.paypal-table td small { display: block; margin-top: .22rem; color: var(--fi-text-light); }
.paypal-table__secondary { background: #fafafa; }
.paypal-type { display: inline-flex; padding: .2rem .45rem; color: #075b9a; font-weight: 700; border-radius: .35rem; background: #e8f3fb; }
.paypal-type--t1107 { color: #9a3412; background: #fff0e8; }
.paypal-type--t0300, .paypal-type--t0400 { color: #5b6470; background: #edf0f3; }
.paypal-booking-link { display: inline-flex; align-items: center; gap: .35rem; min-height: 32px; }
.paypal-accounting { display: inline-flex; align-items: center; gap: .3rem; color: #a26100; font-weight: 600; }
.paypal-accounting.is-exported { color: var(--fi-success); }
.paypal-list-card__pagination { padding: 1rem; border-top: 1px solid var(--fi-border); }

@media (max-width: 1199.98px) {
    .paypal-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .paypal-totals { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 767.98px) {
    .paypal-report__header { flex-direction: column; }
    .paypal-filters, .paypal-totals { grid-template-columns: 1fr; }
}

/* Payroll CSV administration */
.payroll-import { display: grid; gap: 1rem; }
.payroll-import__header { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; }
.payroll-import__header h1 { margin: .15rem 0 .25rem; font-size: 1.65rem; }
.payroll-import__header p { margin: 0; color: var(--fi-text-light); }
.payroll-import__eyebrow { color: var(--fi-primary); font-size: .72rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.payroll-import__safe { display: inline-flex; align-items: center; gap: .45rem; padding: .55rem .75rem; color: #8a5a00; font-size: .8rem; font-weight: 700; border: 1px solid #efd18b; border-radius: 999px; background: #fff8e5; white-space: nowrap; }
.payroll-ftp-card, .payroll-upload-card { padding: 1rem; background: #fff; border: 1px solid var(--fi-border); border-radius: var(--fi-radius); }
.payroll-ftp-card { display: grid; grid-template-columns: auto minmax(15rem, 1fr) auto auto; align-items: center; gap: .85rem; }
.payroll-ftp-card__icon { width: 44px; height: 44px; display: grid; place-items: center; color: var(--fi-primary); font-size: 1.2rem; border-radius: 11px; background: #eaf2ff; }
.payroll-ftp-card h2, .payroll-upload-card h2, .payroll-preview-card h2 { margin: 0 0 .2rem; font-size: 1rem; }
.payroll-ftp-card p, .payroll-upload-card p, .payroll-preview-card p { margin: 0; color: var(--fi-text-light); font-size: .8rem; }
.payroll-ftp-card > small { grid-column: 2 / -1; color: var(--fi-text-light); }
.payroll-ftp-status { display: inline-flex; align-items: center; gap: .35rem; color: var(--fi-text-light); font-size: .8rem; font-weight: 600; }
.payroll-ftp-status.is-success { color: var(--fi-success); }
.payroll-ftp-status.is-error { max-width: 28rem; color: var(--fi-danger); }

/* Dashboard prenotazioni */
.dashboard-page { display: grid; gap: 1rem; }
.dashboard-heading { display: flex; align-items: end; justify-content: space-between; gap: 1rem; margin-bottom: 0; }
.dashboard-heading h1 { margin: .15rem 0; }
.dashboard-heading p { margin: 0; color: var(--fi-text-light); }
.dashboard-heading__eyebrow { color: var(--fi-primary); font-size: .72rem; font-weight: 800; letter-spacing: .08em; }
.dashboard-heading__date { display: inline-flex; align-items: center; gap: .55rem; padding: .65rem .8rem; border: 1px solid var(--fi-border); border-radius: .65rem; background: var(--fi-surface); font-weight: 600; text-transform: capitalize; }
.dashboard-filters { display: grid; grid-template-columns: minmax(180px, .45fr) minmax(360px, 1.55fr) auto; align-items: start; gap: .8rem; padding: .85rem; border: 1px solid var(--fi-border); border-radius: var(--fi-radius); background: var(--fi-surface); }
.dashboard-filters label, .dashboard-filters__structures label { display: block; margin: 0; color: var(--fi-text-light); font-size: .75rem; font-weight: 700; }
.dashboard-filters__date > span { display: block; margin-bottom: .3rem; }
.dashboard-filters > .btn { align-self: start; margin-top: 1.45rem; }
.dashboard-filters__structure-heading { display: flex; align-items: center; justify-content: space-between; gap: .75rem; min-height: 18px; margin-bottom: .3rem; }
.dashboard-filters__actions { display: flex; align-items: center; gap: .55rem; min-width: 0; overflow-x: auto; white-space: nowrap; scrollbar-width: none; }
.dashboard-filters__actions::-webkit-scrollbar { display: none; }
.dashboard-filters__actions button { flex: 0 0 auto; padding: 0; border: 0; background: transparent; color: var(--fi-primary); font-size: .7rem; }
.dashboard-filters .ts-control { min-height: 38px; max-height: 38px; overflow-y: auto; }
.dashboard-bookings { overflow: hidden; border: 1px solid var(--fi-border); border-radius: var(--fi-radius); background: var(--fi-surface); }
.dashboard-tabs { display: grid; grid-template-columns: repeat(3, 1fr); gap: .5rem; padding: .65rem; border-bottom: 1px solid var(--fi-border); }
.dashboard-tabs .nav-link { display: flex; align-items: center; justify-content: center; gap: .55rem; color: var(--fi-text-light); font-weight: 600; }
.dashboard-tabs .nav-link strong { min-width: 1.65rem; padding: .12rem .42rem; border-radius: 999px; background: #edf1f6; color: var(--fi-text); font-size: .75rem; }
.dashboard-tabs .nav-link.active strong { background: rgba(255,255,255,.22); color: #fff; }
.dashboard-booking-table { min-width: 1040px; }
.dashboard-booking-table thead th { padding: .65rem .8rem; border-bottom-width: 1px; background: #f8f9fb; color: var(--fi-text-light); font-size: .7rem; letter-spacing: .035em; text-transform: uppercase; }
.dashboard-booking-table tbody td { padding: .7rem .8rem; }
.dashboard-booking-table tbody td:first-child strong, .dashboard-booking-table tbody td:first-child span, .dashboard-booking-table tbody td:nth-child(2) > span { display: block; }
.dashboard-booking-table tbody td:first-child span { color: var(--fi-text-light); font-size: .75rem; }
.dashboard-booking-table tbody td:nth-child(2) { white-space: nowrap; font-size: .78rem; }
.dashboard-booking-table tbody tr:hover { background: #f7faff; }
.dashboard-guests, .dashboard-contacts, .dashboard-signals { display: flex; align-items: center; gap: .35rem; white-space: nowrap; }
.dashboard-guests { font-size: .78rem; }
.dashboard-contacts a { display: grid; place-items: center; width: 31px; height: 31px; border: 1px solid var(--fi-border); border-radius: .5rem; color: var(--fi-primary); }
.dashboard-signals span { display: grid; place-items: center; width: 29px; height: 29px; border-radius: 999px; color: #fff; }
.dashboard-signals .is-ok { background: var(--fi-success); }
.dashboard-signals .is-missing { background: var(--fi-danger); }
.dashboard-open-booking { display: inline-flex; align-items: center; gap: .4rem; white-space: nowrap; }
.dashboard-empty { display: grid; justify-items: center; gap: .2rem; padding: 2rem; color: var(--fi-text-light); }
.dashboard-empty i { margin-bottom: .25rem; font-size: 1.65rem; }
.dashboard-cash { overflow: hidden; border-color: var(--fi-border); border-radius: var(--fi-radius); }
.dashboard-cash__heading { display: flex; align-items: center; justify-content: space-between; padding: .85rem 1rem; border-bottom: 1px solid var(--fi-border); }
.dashboard-cash__heading span { color: var(--fi-primary); font-size: .68rem; font-weight: 800; letter-spacing: .08em; }
.dashboard-cash__heading h2 { margin: .1rem 0 0; font-size: 1rem; }
.dashboard-cash__heading > strong { font-size: 1.15rem; }
.dashboard-cash thead th { background: #f8f9fb; color: var(--fi-text-light); font-size: .72rem; text-transform: uppercase; }
.dashboard-cash tfoot th { background: #263746; color: #fff; }
@media (max-width: 767.98px) {
    .dashboard-heading { align-items: start; }
    .dashboard-heading__date { display: none; }
    .dashboard-filters { grid-template-columns: 1fr; }
    .dashboard-filters > .btn { width: 100%; margin-top: 0; }
    .dashboard-tabs .nav-link { gap: .3rem; padding-inline: .35rem; font-size: .8rem; }
}
.payroll-upload-card { display: flex; align-items: end; justify-content: space-between; gap: 1rem; }
.payroll-upload-form { display: grid; grid-template-columns: minmax(300px, 520px) auto; align-items: end; gap: .75rem; }
.payroll-upload-form label { display: grid; gap: .35rem; color: var(--fi-text-light); font-size: .78rem; font-weight: 600; }
.payroll-summary { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: .75rem; }
.payroll-summary > div { display: grid; grid-template-columns: 40px 1fr; column-gap: .65rem; align-items: center; padding: .8rem; background: #fff; border: 1px solid var(--fi-border); border-radius: var(--fi-radius); }
.payroll-summary > div > span { grid-row: 1 / 3; width: 40px; height: 40px; display: grid; place-items: center; color: var(--fi-primary); border-radius: 10px; background: #eaf2ff; }
.payroll-summary small { color: var(--fi-text-light); }
.payroll-balance { display: flex; align-items: center; justify-content: space-between; padding: .7rem .85rem; border: 1px solid; border-radius: .65rem; }
.payroll-balance span { display: inline-flex; align-items: center; gap: .4rem; font-weight: 700; }
.payroll-balance.is-balanced { color: #087443; border-color: #b7e4cd; background: #eefbf4; }
.payroll-balance.is-unbalanced { color: #8a5a00; border-color: #efd18b; background: #fff8e5; }
.payroll-preview-card { overflow: hidden; background: #fff; border: 1px solid var(--fi-border); border-radius: var(--fi-radius); }
.payroll-preview-card__heading, .payroll-preview-card footer { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem; }
.payroll-preview-card__heading { border-bottom: 1px solid var(--fi-border); }
.payroll-table { min-width: 850px; font-size: .83rem; }
.payroll-table th { padding: .7rem; color: var(--fi-text-light); background: #f8fafc; font-size: .7rem; letter-spacing: .04em; text-transform: uppercase; }
.payroll-table td { padding: .7rem; }
.payroll-center { display: inline-grid; min-width: 28px; min-height: 28px; place-items: center; color: #285b96; font-weight: 700; border-radius: 50%; background: #eaf2ff; }
.payroll-raw-preview { padding: 1rem; border-top: 1px solid var(--fi-border); }
.payroll-raw-preview summary { display: inline-flex; align-items: center; gap: .4rem; color: var(--fi-primary); font-weight: 600; cursor: pointer; }
.payroll-raw-preview textarea { margin-top: .75rem; font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: .75rem; white-space: pre; }
.payroll-preview-card footer { color: var(--fi-text-light); font-size: .8rem; border-top: 1px solid var(--fi-border); }

@media (max-width: 1199.98px) {
    .payroll-ftp-card { grid-template-columns: auto 1fr auto; }
    .payroll-ftp-card form { grid-column: 2 / -1; }
    .payroll-upload-card { align-items: stretch; flex-direction: column; }
    .payroll-summary { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 767.98px) {
    .payroll-import__header, .payroll-preview-card__heading, .payroll-preview-card footer { align-items: stretch; flex-direction: column; }
    .payroll-ftp-card { grid-template-columns: auto 1fr; }
    .payroll-ftp-card > .payroll-ftp-status, .payroll-ftp-card form, .payroll-ftp-card > small { grid-column: 1 / -1; }
    .payroll-upload-form, .payroll-summary { grid-template-columns: 1fr; }
}

/* Administration receipts and invoicing */
.admin-receipts { display: grid; gap: 1rem; }
.admin-receipts__header { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; }
.admin-receipts__header h1 { margin: .15rem 0 .25rem; font-size: 1.65rem; }
.admin-receipts__header p { margin: 0; color: var(--fi-text-light); }
.admin-receipts__eyebrow { color: var(--fi-primary); font-size: .72rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.admin-invoice-alert { min-width: 230px; display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: .7rem; padding: .65rem .8rem; color: var(--fi-text); border: 1px solid var(--fi-border); border-radius: .75rem; background: #fff; }
.admin-invoice-alert > i:first-child { width: 38px; height: 38px; display: grid; place-items: center; color: var(--fi-primary); border-radius: 9px; background: #eaf2ff; }
.admin-invoice-alert small, .admin-invoice-alert strong { display: block; }
.admin-invoice-alert small { color: var(--fi-text-light); }
.admin-invoice-alert strong { font-size: 1rem; }
.admin-invoice-alert.has-work { color: #842029; border-color: #f1aeb5; background: #fff5f5; }
.admin-invoice-alert.has-work > i:first-child { color: #b02a37; background: #f8d7da; }
.admin-receipt-filters { display: grid; grid-template-columns: minmax(320px, 1.8fr) minmax(150px, .6fr) minmax(150px, .6fr) auto; align-items: start; gap: .8rem; padding: 1rem; background: #fff; border: 1px solid var(--fi-border); border-radius: var(--fi-radius); }
.admin-receipt-filters label, .admin-receipt-filters__structures { display: grid; gap: .35rem; color: var(--fi-text-light); font-size: .78rem; font-weight: 600; }
.admin-receipt-filters__structures { min-width: 0; }
.admin-receipt-filters__actions { display: flex; gap: .7rem; }
.admin-receipt-filters__actions button { padding: 0; color: var(--fi-primary); font-size: .72rem; border: 0; background: transparent; }
.admin-receipt-filters .ts-control { max-height: 78px; overflow-y: auto; }
.admin-receipt-filters > .btn { margin-top: 1.45rem; }
.admin-receipt-totals { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .75rem; }
.admin-receipt-totals > div { display: grid; grid-template-columns: 42px 1fr; column-gap: .7rem; align-items: center; padding: .85rem; background: #fff; border: 1px solid var(--fi-border); border-radius: var(--fi-radius); }
.admin-receipt-totals > div > span { grid-row: 1 / 4; width: 42px; height: 42px; display: grid; place-items: center; color: var(--fi-primary); border-radius: 10px; background: #eaf2ff; }
.admin-receipt-totals small, .admin-receipt-totals strong, .admin-receipt-totals em { display: block; }
.admin-receipt-totals small, .admin-receipt-totals em { color: var(--fi-text-light); }
.admin-receipt-totals em { font-size: .72rem; font-style: normal; }
.admin-receipt-totals strong { font-size: 1.02rem; }
.admin-receipt-totals .is-danger > span { color: #b02a37; background: #f8d7da; }
.admin-receipt-totals .is-warning > span { color: #997404; background: #fff3cd; }
.admin-receipt-totals .is-success > span { color: #146c43; background: #d1e7dd; }
.admin-receipt-jump { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .65rem; }
.admin-receipt-jump a { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: .55rem; padding: .65rem .75rem; color: var(--fi-text); border: 1px solid var(--fi-border); border-radius: .65rem; background: #fff; }
.admin-receipt-jump a:hover { color: var(--fi-primary); border-color: #9ec5fe; background: #f5f9ff; }
.admin-receipt-jump a > i { color: var(--fi-primary); }
.admin-receipt-jump a > strong { min-width: 25px; min-height: 25px; display: grid; place-items: center; padding: 0 .35rem; color: var(--fi-primary); font-size: .75rem; border-radius: 999px; background: #eaf2ff; }
.admin-register { overflow: hidden; background: #fff; border: 1px solid var(--fi-border); border-radius: var(--fi-radius); }
.admin-register { scroll-margin-top: 1rem; }
.admin-register > .table-responsive { max-height: 540px; overflow: auto; }
.admin-register > .table-responsive .admin-register-table thead { position: sticky; top: 0; z-index: 2; }
.admin-register > header { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .85rem 1rem; border-bottom: 1px solid var(--fi-border); }
.admin-register > header > div { display: flex; align-items: center; gap: .7rem; }
.admin-register > header h2 { margin: 0 0 .12rem; font-size: 1rem; }
.admin-register > header p { margin: 0; color: var(--fi-text-light); font-size: .76rem; }
.admin-register > header > strong { min-width: 31px; min-height: 31px; display: grid; place-items: center; padding: 0 .45rem; color: var(--fi-primary); border-radius: 999px; background: #eaf2ff; }
.admin-register__icon { width: 38px; height: 38px; display: grid; flex: 0 0 38px; place-items: center; color: var(--fi-primary); border-radius: 9px; background: #eaf2ff; }
.admin-register.is-open-balances .admin-register__icon { color: #b02a37; background: #f8d7da; }
.admin-register.is-receipts .admin-register__icon, .admin-register.is-invoices .admin-register__icon { color: #997404; background: #fff3cd; }
.admin-register__empty { display: flex; align-items: center; justify-content: center; gap: .5rem; min-height: 95px; color: var(--fi-text-light); }
.admin-register__empty i { color: var(--fi-success); font-size: 1.2rem; }
.admin-register-table { min-width: 970px; font-size: .82rem; }
.admin-register-table th { padding: .7rem; color: var(--fi-text-light); background: #f8fafc; font-size: .68rem; letter-spacing: .04em; text-transform: uppercase; white-space: nowrap; }
.admin-register-table td { padding: .7rem; }
.admin-register-table td small { display: block; margin-top: .16rem; color: var(--fi-text-light); }
.admin-amount-due { display: inline-flex; padding: .23rem .48rem; color: #b02a37; font-weight: 700; border-radius: .4rem; background: #f8d7da; white-space: nowrap; }
.admin-booking-link { display: inline-flex; align-items: center; gap: .3rem; min-height: 32px; white-space: nowrap; }
.admin-daily-table { min-width: 900px; }
.admin-daily-table tfoot th { padding: .8rem .7rem; background: #f8fafc; }
.admin-invoice-reasons { display: flex; flex-wrap: wrap; gap: .3rem; }
.admin-invoice-reasons span { display: inline-flex; padding: .2rem .42rem; color: #7a4e00; font-size: .7rem; font-weight: 700; border-radius: .35rem; background: #fff3cd; }

@media (max-width: 1199.98px) {
    .admin-receipt-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .admin-receipt-filters__structures { grid-column: 1 / -1; }
    .admin-receipt-filters > .btn { margin-top: 0; }
    .admin-receipt-totals { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 767.98px) {
    .admin-receipts__header { align-items: stretch; flex-direction: column; }
    .admin-invoice-alert { width: 100%; }
    .admin-receipt-filters, .admin-receipt-totals { grid-template-columns: 1fr; }
    .admin-receipt-filters__structures { grid-column: auto; }
    .admin-receipt-filters > .btn { margin-top: 0; }
    .admin-receipt-jump { grid-template-columns: 1fr; }
}

/* Operatività / chiamate 3CX */
.phone-calls-page { display: grid; gap: 1rem; }
.phone-calls-heading { display: flex; align-items: end; justify-content: space-between; }
.phone-calls-heading span { color: var(--fi-primary); font-size: .72rem; font-weight: 800; letter-spacing: .08em; }
.phone-calls-heading h1 { margin: .15rem 0; }
.phone-calls-heading p { margin: 0; color: var(--fi-text-light); }
.phone-calls-filters { display: grid; grid-template-columns: minmax(300px, 1.5fr) repeat(4, minmax(135px, .55fr)) auto; align-items: start; gap: .75rem; padding: .85rem; border: 1px solid var(--fi-border); border-radius: var(--fi-radius); background: #fff; }
.phone-calls-filters label, .phone-calls-filters__structures > div > label { display: grid; gap: .3rem; color: var(--fi-text-light); font-size: .75rem; font-weight: 700; }
.phone-calls-filters label > span { min-height: 18px; }
.phone-calls-filters__structures > div { display: flex; align-items: center; justify-content: space-between; min-height: 18px; margin-bottom: .3rem; }
.phone-calls-filters__structures > div > span { display: flex; gap: .65rem; }
.phone-calls-filters__structures button { padding: 0; border: 0; background: transparent; color: var(--fi-primary); font-size: .7rem; }
.phone-calls-filters > .btn { align-self: start; margin-top: 1.4rem; }
.phone-call-kpis { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .75rem; }
.phone-call-kpis > div { display: grid; grid-template-columns: 42px 1fr; grid-template-rows: auto auto auto; column-gap: .7rem; padding: .85rem; border: 1px solid var(--fi-border); border-radius: .75rem; background: #fff; }
.phone-call-kpis > div > span { grid-row: 1 / 4; width: 42px; height: 42px; display: grid; place-items: center; border-radius: .6rem; font-size: 1.1rem; }
.phone-call-kpis small, .phone-call-kpis em { color: var(--fi-text-light); font-size: .72rem; font-style: normal; }
.phone-call-kpis strong { font-size: 1.05rem; }
.phone-call-kpis .is-blue { color: var(--fi-primary); background: #eaf2ff; }
.phone-call-kpis .is-green { color: var(--fi-success); background: #d1e7dd; }
.phone-call-kpis .is-red { color: var(--fi-danger); background: #f8d7da; }
.phone-call-kpis .is-amber { color: #997404; background: #fff3cd; }
.phone-calls-layout { display: grid; grid-template-columns: minmax(0, 3fr) minmax(260px, 1fr); align-items: start; gap: .85rem; }
.phone-calls-panel { overflow: hidden; border: 1px solid var(--fi-border); border-radius: var(--fi-radius); background: #fff; }
.phone-calls-panel > header { display: flex; align-items: center; justify-content: space-between; padding: .8rem 1rem; border-bottom: 1px solid var(--fi-border); }
.phone-calls-panel > header h2 { margin: 0 0 .1rem; font-size: 1rem; }
.phone-calls-panel > header p { margin: 0; color: var(--fi-text-light); font-size: .75rem; }
.phone-calls-panel--list .table { min-width: 940px; font-size: .8rem; }
.phone-calls-panel--list th { padding: .65rem .7rem; background: #f8fafc; color: var(--fi-text-light); font-size: .68rem; text-transform: uppercase; white-space: nowrap; }
.phone-calls-panel--list td { padding: .65rem .7rem; }
.phone-calls-panel--list td:first-child strong, .phone-calls-panel--list td:first-child small { display: block; white-space: nowrap; }
.phone-calls-panel--list td:first-child small { color: var(--fi-text-light); }
.phone-calls-panel > footer { padding: .7rem 1rem; border-top: 1px solid var(--fi-border); }
.phone-call-type { display: inline-flex; padding: .2rem .45rem; border-radius: 999px; font-size: .68rem; font-weight: 700; white-space: nowrap; }
.phone-call-type--risposta { color: #0f5132; background: #d1e7dd; }
.phone-call-type--non_risposta { color: #842029; background: #f8d7da; }
.phone-call-type--segreteria { color: #664d03; background: #fff3cd; }
.phone-call-type--altro { color: #41464b; background: #e2e3e5; }
.phone-call-bookings { display: flex; flex-wrap: wrap; gap: .3rem; }
.phone-call-bookings a { display: inline-flex; align-items: center; gap: .25rem; padding: .2rem .4rem; border-radius: .35rem; background: #eaf2ff; font-size: .72rem; font-weight: 700; }
.phone-call-structure-list { display: grid; }
.phone-call-structure-list > div { display: flex; align-items: center; justify-content: space-between; gap: .7rem; padding: .75rem 1rem; border-bottom: 1px solid var(--fi-border); }
.phone-call-structure-list > div:last-child { border-bottom: 0; }
.phone-call-structure-list strong, .phone-call-structure-list small { display: block; }
.phone-call-structure-list small { color: var(--fi-text-light); font-size: .72rem; }
.phone-call-structure-list b { min-width: 30px; height: 30px; display: grid; place-items: center; border-radius: 999px; background: #eaf2ff; color: var(--fi-primary); }
.booking-phone-calls { overflow: hidden; border: 1px solid var(--fi-border); border-radius: .7rem; background: #fff; }
.booking-phone-calls summary { display: flex; align-items: center; justify-content: space-between; gap: .75rem; padding: .75rem .9rem; cursor: pointer; list-style: none; background: #f8fafc; }
.booking-phone-calls summary::-webkit-details-marker { display: none; }
.booking-phone-calls summary > span:first-child { display: flex; align-items: center; gap: .55rem; }
.booking-phone-calls summary i { color: var(--fi-primary); }
.booking-phone-calls .table { font-size: .78rem; }
.booking-phone-calls th { padding: .55rem .7rem; color: var(--fi-text-light); font-size: .67rem; text-transform: uppercase; }
.booking-phone-calls td { padding: .55rem .7rem; }
.booking-phone-calls__empty { padding: .85rem; color: var(--fi-text-light); font-size: .8rem; }
@media (max-width: 1199.98px) {
    .phone-calls-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .phone-calls-filters__structures { grid-column: 1 / -1; }
    .phone-calls-filters > .btn { margin-top: 0; }
    .phone-calls-layout { grid-template-columns: 1fr; }
}
@media (max-width: 767.98px) {
    .phone-calls-filters, .phone-call-kpis { grid-template-columns: 1fr; }
    .phone-calls-filters__structures { grid-column: auto; }
}

/* Operatività / accesso canali */
.channel-access-page { display: grid; gap: 1rem; }
.channel-access-heading { display: flex; align-items: end; justify-content: space-between; gap: 1rem; }
.channel-access-heading > div:first-child > span { color: var(--fi-primary); font-size: .72rem; font-weight: 800; letter-spacing: .08em; }
.channel-access-heading h1 { margin: .15rem 0; }
.channel-access-heading p { margin: 0; color: var(--fi-text-light); }
.channel-access-heading__notice { display: flex; align-items: center; gap: .6rem; padding: .55rem .75rem; border: 1px solid #ffe69c; border-radius: .65rem; background: #fff8db; color: #664d03; }
.channel-access-heading__notice i { font-size: 1.15rem; }
.channel-access-heading__notice span, .channel-access-heading__notice small { line-height: 1.15; }
.channel-access-heading__notice small { color: #806c2e; font-size: .68rem; }
.channel-access-filters { display: grid; grid-template-columns: minmax(360px, 1.5fr) minmax(260px, .8fr) auto; align-items: start; gap: .75rem; padding: .85rem; border: 1px solid var(--fi-border); border-radius: var(--fi-radius); background: #fff; }
.channel-access-filters label, .channel-access-filters__structures > div > label { display: grid; gap: .3rem; margin: 0; color: var(--fi-text-light); font-size: .75rem; font-weight: 700; }
.channel-access-filters label > span { min-height: 18px; }
.channel-access-filters__structures > div { display: flex; align-items: center; justify-content: space-between; min-height: 18px; margin-bottom: .3rem; }
.channel-access-filters__structures > div > span { display: flex; gap: .65rem; }
.channel-access-filters__structures button { padding: 0; border: 0; background: transparent; color: var(--fi-primary); font-size: .7rem; }
.channel-access-filters > .btn { align-self: start; margin-top: 1.4rem; }
.channel-access-list { overflow: hidden; border: 1px solid var(--fi-border); border-radius: var(--fi-radius); background: #fff; }
.channel-access-list > header { padding: .8rem 1rem; border-bottom: 1px solid var(--fi-border); }
.channel-access-list > header h2 { margin: 0 0 .1rem; font-size: 1rem; }
.channel-access-list > header p { margin: 0; color: var(--fi-text-light); font-size: .75rem; }
.channel-access-list table { min-width: 1120px; font-size: .8rem; }
.channel-access-list th { padding: .65rem .7rem; background: #f8fafc; color: var(--fi-text-light); font-size: .68rem; text-transform: uppercase; white-space: nowrap; }
.channel-access-list td { padding: .65rem .7rem; }
.channel-access-list td:nth-child(2) strong, .channel-access-list td:nth-child(2) small { display: block; }
.channel-access-list td:nth-child(2) small { color: var(--fi-text-light); font-size: .7rem; }
.channel-secret { display: flex; align-items: stretch; min-width: 190px; }
.channel-secret input { min-width: 0; border-radius: .375rem 0 0 .375rem; font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; }
.channel-secret .btn { display: grid; place-items: center; min-width: 34px; border-radius: 0; }
.channel-secret .btn:last-child { border-radius: 0 .375rem .375rem 0; }
.channel-secret .btn + .btn { margin-left: -1px; }
.channel-access-open { display: inline-flex; align-items: center; gap: .35rem; white-space: nowrap; }
@media (max-width: 991.98px) {
    .channel-access-filters { grid-template-columns: 1fr; }
    .channel-access-filters > .btn { margin-top: 0; }
}
@media (max-width: 767.98px) {
    .channel-access-heading { align-items: stretch; flex-direction: column; }
    .channel-access-heading__notice { align-self: start; }
}

/* Report / bilancio economico e revenue */
.booking-report { display: grid; gap: 1rem; }
.booking-report__heading { display: flex; align-items: end; justify-content: space-between; gap: 1rem; }
.booking-report__heading > div > span { color: var(--fi-primary); font-size: .72rem; font-weight: 800; letter-spacing: .08em; }
.booking-report__heading h1 { margin: .15rem 0; }
.booking-report__heading p { margin: 0; color: var(--fi-text-light); }
.booking-report__readonly { display: inline-flex; align-items: center; gap: .45rem; padding: .45rem .65rem; border: 1px solid var(--fi-border); border-radius: .6rem; background: #fff; color: var(--fi-text-light); font-size: .75rem; white-space: nowrap; }
.report-filter { display: grid; align-items: start; gap: .75rem; padding: .85rem; border: 1px solid var(--fi-border); border-radius: var(--fi-radius); background: #fff; }
.report-filter--economic { grid-template-columns: minmax(300px, 1.25fr) repeat(2, minmax(300px, 1fr)) auto; }
.report-filter--revenue { grid-template-columns: minmax(360px, 1.5fr) minmax(320px, 1fr) auto; }
.report-filter label { display: grid; gap: .3rem; margin: 0; color: var(--fi-text-light); font-size: .72rem; font-weight: 700; }
.report-filter label > span { min-height: 18px; }
.report-filter__structures > strong { display: flex; align-items: end; min-height: 18px; margin: 0 0 .3rem; color: var(--fi-text-light); font-size: .72rem; }
.report-filter__structures > label { display: flex; align-items: end; min-height: 18px; margin: 0 0 .3rem; color: var(--fi-text-light); font-size: .72rem; font-weight: 700; }
.report-filter fieldset { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .55rem; margin: 0; padding: 0; border: 0; }
.report-filter legend { grid-column: 1 / -1; min-height: 18px; margin: 0; color: var(--fi-text-light); font-size: .72rem; font-weight: 700; }
.report-filter > .btn { align-self: start; margin-top: 3rem; white-space: nowrap; }
.report-filter__select-actions { display: flex; gap: .7rem; padding-top: .25rem; }
.report-filter__select-actions button { padding: 0; border: 0; background: transparent; color: var(--fi-primary); font-size: .68rem; }
.report-kpis { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .75rem; }
.report-kpis--six { grid-template-columns: repeat(6, minmax(0, 1fr)); }
.report-kpis > div { display: grid; grid-template-columns: 38px 1fr; grid-template-rows: auto auto auto; column-gap: .65rem; padding: .8rem; border: 1px solid var(--fi-border); border-radius: .75rem; background: #fff; }
.report-kpis > div > i { grid-row: 1 / 4; width: 38px; height: 38px; display: grid; place-items: center; border-radius: .55rem; background: #eaf2ff; color: var(--fi-primary); font-size: 1rem; }
.report-kpis small, .report-kpis em { color: var(--fi-text-light); font-size: .68rem; font-style: normal; }
.report-kpis strong { font-size: 1rem; white-space: nowrap; }
.report-kpis .is-danger > i { color: var(--fi-danger); background: #f8d7da; }
.report-kpis .is-success { border-color: #a3cfbb; background: #f2fbf6; }
.report-kpis .is-success > i { color: #0f5132; background: #d1e7dd; }
.report-grid { display: grid; grid-template-columns: minmax(300px, .8fr) minmax(0, 1.2fr); gap: 1rem; align-items: start; }
.report-panel { overflow: hidden; border: 1px solid var(--fi-border); border-radius: var(--fi-radius); background: #fff; }
.report-panel > header { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .8rem 1rem; border-bottom: 1px solid var(--fi-border); }
.report-panel > header h2 { margin: 0 0 .1rem; font-size: 1rem; }
.report-panel > header p { margin: 0; color: var(--fi-text-light); font-size: .72rem; }
.report-panel > header > strong { color: var(--fi-primary); }
.report-table { min-width: 900px; font-size: .77rem; }
.report-table th { padding: .6rem .7rem; background: #f8fafc; color: var(--fi-text-light); font-size: .66rem; text-transform: uppercase; white-space: nowrap; }
.report-table td { padding: .6rem .7rem; vertical-align: middle; }
.report-table td small { display: block; color: var(--fi-text-light); font-size: .67rem; }
.report-table td:last-child > .btn { display: inline-grid; place-items: center; width: 32px; height: 32px; min-height: 32px; padding: 0; line-height: 1; vertical-align: middle; }
.report-table td:last-child > .btn i { display: block; margin: 0; line-height: 1; }
.report-table tr.is-weekend td { background: #fffaf0; }
.report-empty { padding: 1rem !important; color: var(--fi-text-light); text-align: center; }
.channel-result { display: grid; grid-template-columns: minmax(120px, .8fr) minmax(80px, 1fr) minmax(120px, .65fr); align-items: center; gap: .7rem; padding: .65rem 1rem; border-bottom: 1px solid var(--fi-border); }
.channel-result:last-child { border-bottom: 0; }
.channel-result strong, .channel-result small { display: block; }
.channel-result small { color: var(--fi-text-light); font-size: .66rem; }
.channel-result > div:last-child { text-align: right; }
.channel-result__bar { overflow: hidden; height: 7px; border-radius: 999px; background: #e8edf4; }
.channel-result__bar span { display: block; height: 100%; border-radius: inherit; background: var(--fi-primary); }
.revenue-chart__plot { display: flex; align-items: end; gap: 3px; height: 220px; padding: 1rem 1rem 1.8rem; overflow-x: auto; }
.revenue-chart__day { position: relative; flex: 1 0 15px; height: 100%; min-width: 15px; display: flex; align-items: end; }
.revenue-chart__day b { width: 100%; min-height: 2px; border-radius: 3px 3px 0 0; background: linear-gradient(180deg, #74a8ff, var(--fi-primary)); }
.revenue-chart__day small { position: absolute; top: calc(100% + .3rem); left: 50%; transform: translateX(-50%); color: var(--fi-text-light); font-size: .55rem; }
.revenue-chart__occupancy { position: absolute; z-index: 2; left: 0; width: 100%; height: 2px; border-radius: 2px; background: #e63956; }
.report-daily-scroll { max-height: 520px; overflow-y: auto; }
.report-daily-scroll thead { position: sticky; top: 0; z-index: 2; }
.report-percent { position: relative; display: inline-flex; justify-content: end; min-width: 86px; padding: .2rem .35rem; overflow: hidden; border-radius: .3rem; background: #edf2f7; }
.report-percent i { position: absolute; inset: 0 auto 0 0; background: #cfe2ff; }
.report-percent b { position: relative; z-index: 1; font-size: .7rem; }
@media (max-width: 1399.98px) { .report-kpis--six { grid-template-columns: repeat(3, 1fr); } .report-filter--economic { grid-template-columns: 1fr 1fr; } .report-filter--economic .report-filter__structures { grid-column: 1 / -1; } .report-filter--economic > .btn { margin-top: 0; } }
@media (max-width: 1099.98px) { .report-filter--revenue { grid-template-columns: repeat(2, 1fr); } .report-filter--revenue .report-filter__structures { grid-column: 1 / -1; } .report-filter--revenue > .btn { margin-top: 0; } .report-grid { grid-template-columns: 1fr; } .report-kpis { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 767.98px) { .booking-report__heading { align-items: start; flex-direction: column; } .report-filter--economic, .report-filter--revenue, .report-kpis, .report-kpis--six { grid-template-columns: 1fr; } .report-filter--economic .report-filter__structures, .report-filter--revenue .report-filter__structures { grid-column: auto; } .report-filter fieldset { grid-template-columns: 1fr; } .channel-result { grid-template-columns: 1fr auto; } .channel-result__bar { grid-column: 1 / -1; grid-row: 2; } }

/* Operatività / tassa di soggiorno */
.tourist-tax-page { display: grid; gap: 1rem; }
.tourist-tax-heading { display: flex; align-items: end; justify-content: space-between; gap: 1rem; }
.tourist-tax-heading > div > span { color: var(--fi-primary); font-size: .72rem; font-weight: 800; letter-spacing: .08em; }
.tourist-tax-heading h1 { margin: .15rem 0; }
.tourist-tax-heading p { margin: 0; color: var(--fi-text-light); }
.tourist-tax-heading > span { display: inline-flex; align-items: center; gap: .4rem; padding: .45rem .65rem; border: 1px solid var(--fi-border); border-radius: .6rem; background: #fff; color: var(--fi-text-light); font-size: .72rem; white-space: nowrap; }
.tourist-tax-filters { display: grid; grid-template-columns: minmax(360px, 1.4fr) minmax(310px, .9fr) minmax(110px, .3fr) auto; align-items: start; gap: .75rem; padding: .85rem; border: 1px solid var(--fi-border); border-radius: var(--fi-radius); background: #fff; }
.tourist-tax-filters label { display: grid; gap: .3rem; margin: 0; color: var(--fi-text-light); font-size: .72rem; font-weight: 700; }
.tourist-tax-filters label > span { min-height: 18px; }
.tourist-tax-filters fieldset { display: grid; grid-template-columns: repeat(2, 1fr); gap: .55rem; margin: 0; padding: 0; border: 0; }
.tourist-tax-filters legend, .tourist-tax-filters__structures > strong { grid-column: 1 / -1; display: flex; align-items: end; min-height: 18px; margin: 0 0 .3rem; color: var(--fi-text-light); font-size: .72rem; font-weight: 700; }
.tourist-tax-filters__structures > label { display: flex; align-items: end; min-height: 18px; margin: .55rem 0 .3rem; }
.tourist-tax-filters__structures > div { display: flex; gap: .7rem; padding-top: .25rem; }
.tourist-tax-filters__structures > div button { padding: 0; border: 0; background: transparent; color: var(--fi-primary); font-size: .68rem; }
.tourist-tax-filters > .btn { align-self: start; margin-top: 3.2rem; white-space: nowrap; }
.tourist-tax-filters__limit { grid-template-columns: 1fr !important; }
.tourist-tax-kpis { display: grid; grid-template-columns: repeat(4, 1fr); gap: .75rem; }
.tourist-tax-kpis > div { display: grid; grid-template-columns: 40px 1fr; grid-template-rows: auto auto auto; column-gap: .65rem; padding: .8rem; border: 1px solid var(--fi-border); border-radius: .75rem; background: #fff; }
.tourist-tax-kpis > div > i { grid-row: 1 / 4; width: 40px; height: 40px; display: grid; place-items: center; border-radius: .55rem; background: #eaf2ff; color: var(--fi-primary); }
.tourist-tax-kpis small, .tourist-tax-kpis em { color: var(--fi-text-light); font-size: .68rem; font-style: normal; }
.tourist-tax-kpis strong { font-size: 1rem; }
.tourist-tax-kpis .is-success { border-color: #a3cfbb; background: #f2fbf6; }
.tourist-tax-kpis .is-success > i { color: #0f5132; background: #d1e7dd; }
.tourist-tax-register { overflow: hidden; border: 1px solid var(--fi-border); border-radius: var(--fi-radius); background: #fff; }
.tourist-tax-register > header { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .8rem 1rem; border-bottom: 1px solid var(--fi-border); }
.tourist-tax-register > header h2 { margin: 0 0 .1rem; font-size: 1rem; }
.tourist-tax-register > header p { margin: 0; color: var(--fi-text-light); font-size: .72rem; }
.tourist-tax-register > header label { position: relative; min-width: 260px; }
.tourist-tax-register > header label i { position: absolute; z-index: 1; top: 50%; left: .7rem; transform: translateY(-50%); color: var(--fi-text-light); }
.tourist-tax-register > header input { padding-left: 2rem; }
.tourist-tax-table-wrap { max-height: 560px; overflow: auto; }
.tourist-tax-table { min-width: 1260px; font-size: .77rem; }
.tourist-tax-table thead { position: sticky; z-index: 2; top: 0; }
.tourist-tax-table th { padding: .6rem .65rem; background: #f8fafc; color: var(--fi-text-light); font-size: .65rem; text-transform: uppercase; white-space: nowrap; }
.tourist-tax-table td { padding: .6rem .65rem; }
.tourist-tax-table td small { display: block; color: var(--fi-text-light); font-size: .67rem; }
.tourist-tax-table td:last-child > .btn { display: inline-grid; place-items: center; width: 32px; height: 32px; min-height: 32px; padding: 0; line-height: 1; }
.tourist-tax-difference { display: inline-flex; justify-content: end; min-width: 72px; padding: .2rem .4rem; border-radius: 999px; font-size: .68rem; font-weight: 700; }
.tourist-tax-difference.is-ok { color: #0f5132; background: #d1e7dd; }
.tourist-tax-difference.is-warning { color: #842029; background: #f8d7da; }
.tourist-tax-export { display: grid; grid-template-columns: minmax(250px, .7fr) minmax(0, 1.3fr); align-items: center; gap: 1rem; padding: 1rem; border: 1px solid var(--fi-border); border-radius: var(--fi-radius); background: #fff; }
.tourist-tax-export > header { display: flex; align-items: center; gap: .7rem; }
.tourist-tax-export > header > span { width: 42px; height: 42px; display: grid; place-items: center; flex: 0 0 42px; border-radius: .6rem; background: #eaf2ff; color: var(--fi-primary); }
.tourist-tax-export h2 { margin: 0 0 .1rem; font-size: 1rem; }
.tourist-tax-export p { margin: 0; color: var(--fi-text-light); font-size: .72rem; }
.tourist-tax-export form { display: grid; grid-template-columns: repeat(2, minmax(180px, 1fr)) auto; align-items: end; gap: .7rem; }
.tourist-tax-export label { display: grid; gap: .3rem; color: var(--fi-text-light); font-size: .72rem; font-weight: 700; }
.tourist-tax-export .btn { white-space: nowrap; }
@media (max-width: 1199.98px) { .tourist-tax-filters { grid-template-columns: repeat(2, 1fr); } .tourist-tax-filters__structures { grid-column: 1 / -1; } .tourist-tax-filters > .btn { margin-top: 0; } .tourist-tax-kpis { grid-template-columns: repeat(2, 1fr); } .tourist-tax-export { grid-template-columns: 1fr; } }
@media (max-width: 767.98px) { .tourist-tax-heading, .tourist-tax-register > header { align-items: stretch; flex-direction: column; } .tourist-tax-filters, .tourist-tax-kpis, .tourist-tax-export form { grid-template-columns: 1fr; } .tourist-tax-filters__structures { grid-column: auto; } .tourist-tax-filters fieldset { grid-template-columns: 1fr; } .tourist-tax-register > header label { min-width: 0; } }

/* Impostazioni / contenuti del soggiorno */
.stay-site-page { display: grid; gap: 1rem; }
.stay-site-heading { display: flex; align-items: end; justify-content: space-between; gap: 1rem; }
.stay-site-heading > div:first-child > span { color: var(--fi-primary); font-size: .72rem; font-weight: 800; letter-spacing: .08em; }
.stay-site-heading h1 { margin: .15rem 0; }
.stay-site-heading p { margin: 0; color: var(--fi-text-light); }
.stay-site-heading__status { display: flex; align-items: center; gap: .6rem; padding: .55rem .7rem; border: 1px solid var(--fi-border); border-radius: .7rem; background: #fff; }
.stay-site-heading__status > span { width: 36px; height: 36px; display: grid; place-items: center; border-radius: .5rem; background: #eaf2ff; color: var(--fi-primary); }
.stay-site-heading__status strong, .stay-site-heading__status small { display: block; white-space: nowrap; }
.stay-site-heading__status small { color: var(--fi-text-light); font-size: .68rem; }
.stay-site-alert { display: flex; align-items: center; gap: .5rem; margin: 0; }
.stay-site-structure { display: flex; align-items: end; justify-content: space-between; gap: 1rem; padding: .8rem; border: 1px solid var(--fi-border); border-radius: var(--fi-radius); background: #fff; }
.stay-site-structure form { min-width: min(460px, 100%); }
.stay-site-structure label { display: grid; gap: .3rem; color: var(--fi-text-light); font-size: .72rem; font-weight: 700; }
.stay-site-structure p { display: flex; align-items: center; gap: .4rem; margin: 0 0 .45rem; color: var(--fi-text-light); font-size: .72rem; }
.stay-site-languages { display: grid; grid-template-columns: repeat(2, minmax(220px, 1fr)); gap: .65rem; margin-bottom: 1rem; }
.stay-site-languages button { display: grid; grid-template-columns: 42px 1fr; align-items: center; gap: .65rem; padding: .7rem; border: 1px solid var(--fi-border); border-radius: .75rem; background: #fff; color: var(--fi-text); text-align: left; }
.stay-site-languages button > span { width: 42px; height: 34px; display: grid; place-items: center; border-radius: .45rem; background: #eef2f6; color: var(--fi-text-light); font-weight: 800; }
.stay-site-languages button strong, .stay-site-languages button small { display: block; }
.stay-site-languages button small { color: var(--fi-text-light); font-size: .68rem; }
.stay-site-languages button.active { border-color: #86b7fe; box-shadow: 0 0 0 2px rgba(13,110,253,.08); }
.stay-site-languages button.active > span { background: var(--fi-primary); color: #fff; }
.stay-site-language { display: none; gap: 1rem; }
.stay-site-language.active { display: grid; }
.stay-site-editor-card { overflow: hidden; border: 1px solid var(--fi-border); border-radius: var(--fi-radius); background: #fff; }
.stay-site-editor-card > header { display: grid; grid-template-columns: 38px 1fr auto; align-items: center; gap: .65rem; padding: .7rem .85rem; border-bottom: 1px solid var(--fi-border); }
.stay-site-editor-card > header > span { width: 38px; height: 38px; display: grid; place-items: center; border-radius: .5rem; background: #eaf2ff; color: var(--fi-primary); }
.stay-site-editor-card h2 { margin: 0 0 .05rem; font-size: .95rem; }
.stay-site-editor-card header p, .stay-site-editor-card header em { margin: 0; color: var(--fi-text-light); font-size: .67rem; font-style: normal; }
.stay-site-toolbar { display: flex; align-items: center; gap: .15rem; padding: .4rem .55rem; overflow-x: auto; border-bottom: 1px solid var(--fi-border); background: #f8fafc; }
.stay-site-toolbar button { min-width: 30px; height: 30px; display: inline-flex; align-items: center; justify-content: center; gap: .25rem; padding: 0 .4rem; border: 1px solid transparent; border-radius: .35rem; background: transparent; color: #465469; }
.stay-site-toolbar button:hover, .stay-site-toolbar button.active { border-color: #cbd8e8; background: #fff; color: var(--fi-primary); }
.stay-site-toolbar button b { font-size: .61rem; }
.stay-site-toolbar > span:not(.stay-site-toolbar__spacer) { width: 1px; height: 20px; margin: 0 .25rem; flex: 0 0 1px; background: var(--fi-border); }
.stay-site-toolbar__spacer { flex: 1; }
.stay-site-editor { min-height: 260px; max-height: 620px; padding: 1rem; overflow: auto; outline: 0; line-height: 1.55; }
.stay-site-editor:focus { box-shadow: inset 0 0 0 2px rgba(13,110,253,.12); }
.stay-site-editor.is-source { background: #172033; color: #d8e4f5; font: .78rem/1.55 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; white-space: pre-wrap; }
.stay-site-editor img { max-width: 100%; height: auto; }
.stay-site-editor .accordion-title { width: 100%; padding: .6rem .75rem; border: 1px solid var(--fi-border); background: #f3f6fa; text-align: left; }
.stay-site-editor .accordion-content { padding: .75rem; border: 1px solid var(--fi-border); border-top: 0; }
.stay-site-savebar { position: sticky; z-index: 10; bottom: .75rem; display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-top: 1rem; padding: .75rem .85rem; border: 1px solid #b6d4fe; border-radius: .75rem; background: rgba(247,251,255,.96); box-shadow: 0 8px 24px rgba(27,52,84,.12); backdrop-filter: blur(8px); }
.stay-site-savebar > div { display: flex; align-items: center; gap: .55rem; }
.stay-site-savebar > div > i { color: var(--fi-primary); font-size: 1.1rem; }
.stay-site-savebar strong, .stay-site-savebar small { display: block; }
.stay-site-savebar small { color: var(--fi-text-light); font-size: .68rem; }
@media (max-width: 767.98px) { .stay-site-heading, .stay-site-structure, .stay-site-savebar { align-items: stretch; flex-direction: column; } .stay-site-languages { grid-template-columns: 1fr; } .stay-site-structure form { min-width: 0; width: 100%; } .stay-site-editor-card > header { grid-template-columns: 38px 1fr; } .stay-site-editor-card > header > em { grid-column: 2; } .stay-site-savebar .btn { width: 100%; } }

/* Booking index */
.filter-multiselect__heading { min-height: 21px; display: flex; align-items: center; justify-content: space-between; gap: .75rem; margin-bottom: .25rem; }
.filter-multiselect__actions { display: inline-flex; align-items: center; gap: .4rem; line-height: 1; }
.filter-multiselect__actions .btn { min-height: 0; height: auto; padding: 0; border: 0; line-height: 1.2; font-size: .68rem; }
.booking-index { display: grid; gap: 1rem; }
.booking-index__header { display: flex; align-items: flex-end; justify-content: space-between; gap: 2rem; padding: .1rem .15rem .25rem; }
.booking-index__eyebrow { display: block; margin-bottom: .25rem; color: var(--fi-primary); font-size: .68rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.booking-index__header h1 { margin: 0; font-size: clamp(1.75rem, 3vw, 2.35rem); line-height: 1.05; }
.booking-index__header p { margin: .35rem 0 0; color: var(--fi-text-light); font-size: .86rem; }
.booking-index__counter { min-width: 190px; display: flex; align-items: center; gap: .75rem; padding: .65rem .8rem; border: 1px solid var(--fi-border); border-radius: .75rem; background: var(--fi-surface); }
.booking-index__counter > span { width: 40px; height: 40px; flex: 0 0 40px; display: grid; place-items: center; border-radius: .6rem; background: #eaf2ff; color: var(--fi-primary); font-size: 1rem; }
.booking-index__counter small, .booking-index__counter strong { display: block; }
.booking-index__counter small { color: var(--fi-text-light); font-size: .68rem; }
.booking-index__counter strong { margin-top: .05rem; font-size: 1rem; }
.booking-index__search { display: grid; grid-template-columns: 42px 1fr auto; align-items: center; gap: .8rem; padding: .7rem .8rem; border: 1px solid #b6d4fe; border-radius: .75rem; background: #f4f8ff; }
.booking-index__search-icon { width: 42px; height: 42px; display: grid; place-items: center; border-radius: .6rem; background: var(--fi-primary); color: #fff; }
.booking-index__search div small, .booking-index__search div strong, .booking-index__search div span { display: block; }
.booking-index__search div small { color: var(--fi-primary); font-size: .65rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.booking-index__search div strong { margin: .05rem 0; }
.booking-index__search div span { color: var(--fi-text-light); font-size: .72rem; }
.booking-index__search > a { height: 38px; display: inline-flex; align-items: center; gap: .4rem; padding: 0 .75rem; border: 1px solid #a8c7f0; border-radius: .55rem; background: #fff; color: var(--fi-primary); font-size: .78rem; font-weight: 600; text-decoration: none; }
.booking-index__list { overflow: hidden; border: 1px solid var(--fi-border); border-radius: var(--fi-radius); background: var(--fi-surface); }
.booking-index__list > header { min-height: 66px; display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .75rem 1rem; border-bottom: 1px solid var(--fi-border); }
.booking-index__list h2 { margin: 0; font-size: 1rem; }
.booking-index__list header p { margin: .15rem 0 0; color: var(--fi-text-light); font-size: .7rem; }
.booking-index__filter-count { display: inline-flex; align-items: center; gap: .4rem; padding: .35rem .55rem; border-radius: 999px; background: #eaf2ff; color: var(--fi-primary); font-size: .68rem; font-weight: 700; }
.booking-index-table { min-width: 1120px; }
.booking-index-table thead th { padding: .62rem .75rem; border-bottom-width: 1px; background: #f8fafc; color: var(--fi-text-light); font-size: .66rem; letter-spacing: .035em; text-transform: uppercase; white-space: nowrap; }
.booking-index-table thead a { display: inline-flex; align-items: center; gap: .35rem; color: inherit; text-decoration: none; }
.booking-index-table thead a:hover { color: var(--fi-primary); }
.booking-index-table thead i { font-size: .7rem; opacity: .65; }
.booking-index-table__sort-group { display: inline-flex; align-items: center; gap: .35rem; }
.booking-index-table__sort-group > span { margin-right: .1rem; }
.booking-index-table__sort-group > a { height: 22px; display: inline-flex; align-items: center; gap: .2rem; padding: 0 .3rem; border: 1px solid #dce4eb; border-radius: .3rem; background: #fff; color: #68778a; font-size: .58rem; }
.booking-index-table__sort-group > a:hover { border-color: #a9c8f5; background: #f1f6ff; }
.booking-index-table tbody td { padding: .72rem .75rem; border-color: #e8edf1; font-size: .78rem; vertical-align: middle; }
.booking-index-table tbody tr { transition: background .15s ease; }
.booking-index-table tbody tr:hover { background: #f7faff; }
.booking-index-table tbody tr.is-cancelled { background: #fbf7f7; }
.booking-index-table tbody tr.is-cancelled td:not(.booking-index-table__action) { opacity: .62; }
.booking-index-table__booking { display: flex; flex-direction: column; color: var(--fi-text); text-decoration: none; white-space: nowrap; }
.booking-index-table__booking strong { color: var(--fi-primary); font-size: .84rem; }
.booking-index-table__booking span, .booking-index-table__guest span, .booking-index-table__channel span, .booking-index-table__updated span { color: var(--fi-text-light); font-size: .67rem; }
.booking-index-table__guest, .booking-index-table__channel, .booking-index-table__updated { display: flex; flex-direction: column; gap: .15rem; }
.booking-index-table__guest { min-width: 185px; }
.booking-index-table__guest span { display: flex; align-items: center; gap: .3rem; }
.booking-index-table__guest i { color: var(--fi-primary); }
.booking-index-table__stay { min-width: 126px; display: grid; gap: .2rem; }
.booking-index-table__stay span { display: grid; grid-template-columns: 16px 1fr; align-items: center; gap: .2rem; white-space: nowrap; }
.booking-index-table__stay i { color: var(--fi-primary); }
.booking-index-table__channel { min-width: 115px; }
.booking-index-table__channel span { max-width: 150px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.booking-index-table__rate { display: block; max-width: 160px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.booking-index-table__status-detail { display: block; max-width: 180px; margin-top: .25rem; color: var(--fi-text-light); font-size: .65rem; line-height: 1.25; }
.booking-index-table__muted { color: var(--fi-text-light); }
.booking-index-table__updated { white-space: nowrap; }
.booking-index-table__action { width: 1%; text-align: right; }
.booking-index-table__action a { height: 34px; display: inline-flex; align-items: center; justify-content: center; gap: .35rem; padding: 0 .65rem; border: 1px solid #a9c8f5; border-radius: .5rem; color: var(--fi-primary); font-size: .72rem; font-weight: 700; text-decoration: none; white-space: nowrap; }
.booking-index-table__action a:hover { border-color: var(--fi-primary); background: var(--fi-primary); color: #fff; }
.booking-index__empty { min-height: 230px; display: flex; flex-direction: column; align-items: center; justify-content: center; color: var(--fi-text-light); text-align: center; }
.booking-index__empty i { margin-bottom: .6rem; font-size: 2rem; }
.booking-index__empty strong { color: var(--fi-text); }
.booking-index__empty span { margin-top: .2rem; font-size: .75rem; }
.booking-index__pagination { display: block; width: 100%; padding: .2rem .1rem; }
.booking-index__pagination nav { width: 100%; margin: 0; }
.booking-index__pagination nav > .d-sm-flex { width: 100%; gap: 2rem; }
.booking-index__pagination .pagination { margin-bottom: 0; }
@media (max-width: 767.98px) {
    .booking-index__header { align-items: stretch; flex-direction: column; gap: .8rem; }
    .booking-index__counter { min-width: 0; width: 100%; }
    .booking-index__search { grid-template-columns: 42px 1fr; }
    .booking-index__search > a { grid-column: 1 / -1; justify-content: center; }
    .booking-index__list > header { align-items: flex-start; flex-direction: column; }
    .booking-index__list .table-responsive { overflow: visible; }
    .booking-index-table { min-width: 0; }
    .booking-index-table thead { display: none; }
    .booking-index-table tbody, .booking-index-table tr, .booking-index-table td { display: block; width: 100%; }
    .booking-index-table tbody { display: grid; gap: .65rem; padding: .65rem; background: #f6f8fa; }
    .booking-index-table tbody tr { position: relative; display: grid; grid-template-columns: 1fr 1fr; padding: .75rem; border: 1px solid var(--fi-border); border-radius: .7rem; background: #fff; }
    .booking-index-table tbody td { padding: .42rem .25rem; border: 0; }
    .booking-index-table tbody td:nth-child(2), .booking-index-table tbody td:nth-child(6) { grid-column: 1 / -1; }
    .booking-index-table tbody td::before { display: block; margin-bottom: .15rem; color: var(--fi-text-light); content: attr(data-label); font-size: .58rem; font-weight: 700; letter-spacing: .035em; text-transform: uppercase; }
    .booking-index-table__guest { min-width: 0; }
    .booking-index-table__rate { max-width: none; }
    .booking-index-table__action { position: absolute; top: .65rem; right: .65rem; width: auto !important; padding: 0 !important; }
    .booking-index-table__action::before { display: none !important; }
    .booking-index-table__action a { width: 34px; padding: 0; }
    .booking-index-table__action a span { display: none; }
    .booking-index-table__booking { padding-right: 42px; }
}

/* Planning page shell */
.planning-page { display: grid; gap: 1rem; }
.planning-page__header { display: flex; align-items: flex-end; justify-content: space-between; gap: 2rem; padding: .1rem .15rem .25rem; }
.planning-page__eyebrow { display: block; margin-bottom: .25rem; color: var(--fi-primary); font-size: .68rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.planning-page__header h1 { margin: 0; font-size: clamp(1.75rem, 3vw, 2.35rem); line-height: 1.05; }
.planning-page__header p { margin: .35rem 0 0; color: var(--fi-text-light); font-size: .86rem; }
.planning-page__switch { display: inline-flex; gap: .2rem; padding: .25rem; border: 1px solid var(--fi-border); border-radius: .7rem; background: var(--fi-surface); }
.planning-page__switch a { min-width: 104px; height: 38px; display: inline-flex; align-items: center; justify-content: center; gap: .45rem; padding: 0 .7rem; border-radius: .5rem; color: var(--fi-text-light); font-size: .76rem; font-weight: 650; text-decoration: none; }
.planning-page__switch a:hover { color: var(--fi-primary); background: #f4f7fb; }
.planning-page__switch a.active { color: #fff; background: var(--fi-primary); box-shadow: 0 3px 9px rgba(13,110,253,.18); }
.planning-page__controls { width: 100%; display: grid; grid-template-columns: minmax(0, 1fr); align-items: stretch; gap: .75rem; }
.planning-page__controls--with-view { grid-template-columns: minmax(0, 1fr) 320px; }
.planning-page__controls > .card { height: 100%; margin: 0 !important; overflow: visible; border-color: var(--fi-border); border-radius: .75rem; box-shadow: none !important; }
.planning-page__controls > .card > .card-header { min-height: 46px; padding: .55rem .75rem; border-color: var(--fi-border); background: #f8fafc; font-size: .76rem; font-weight: 700; }
.planning-page__controls > .card .card-body { padding: .75rem; }
.planning-period-fields { display: grid; grid-template-columns: minmax(180px, 1fr) minmax(180px, 1fr) auto; align-items: end; gap: .75rem; }
.planning-period-fields .form-label { margin-bottom: .3rem; font-size: .72rem; }
.planning-period-buttons { display: flex; align-items: center; gap: .45rem; }
.planning-period-buttons .btn { height: 38px; padding-top: 0; padding-bottom: 0; font-size: .75rem; white-space: nowrap; }
.planning-view-card .card-body { display: flex; align-items: center; }
.planning-view-card form, .planning-view-card .dropdown, .planning-view-card .dropdown > button { width: 100%; }
.planning-view-card .dropdown > button { height: 38px; justify-content: center; font-size: .76rem; }
.planning-page__board { min-width: 0; }
.planning-page__board .planning-room-type { overflow: hidden; margin-bottom: 1rem; border-radius: .75rem; background: var(--fi-surface); box-shadow: 0 4px 14px rgba(24,45,70,.045); }
.planning-page__board .planning-room-type__header { padding: .7rem 1rem; font-size: 1rem; }
.planning-page__timeline-surface { overflow: hidden; border: 1px solid var(--fi-border); border-radius: .75rem; background: var(--fi-surface); box-shadow: 0 4px 14px rgba(24,45,70,.045); }
.planning-page__timeline-surface .planning-scroll-top { margin: 0; background: #f8fafc; }
.planning-page__timeline-surface .planning-wrapper { border-top: 1px solid var(--fi-border); }
.planning-page__timeline-surface .planning-header__label,
.planning-page__timeline-surface .planning-row__label { border-left: 0; }
.planning-page__timeline-surface .planning-header__day:last-child,
.planning-page__timeline-surface .planning-cell:last-of-type { border-right: 0; }
@media (max-width: 991.98px) {
    .planning-page__controls--with-view { grid-template-columns: minmax(0, 1fr) 280px; }
    .planning-period-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .planning-period-buttons { grid-column: 1 / -1; justify-content: flex-end; }
}

/* Gestionale / Agenda e TODO */
.agenda-page { display: grid; gap: 1rem; }
.agenda-heading { display: flex; align-items: end; justify-content: space-between; gap: 1rem; }
.agenda-heading > div > span { color: var(--fi-primary); font-size: .72rem; font-weight: 800; letter-spacing: .08em; }
.agenda-heading h1 { margin: .15rem 0; }
.agenda-heading p { margin: 0; color: var(--fi-text-light); }
.agenda-heading > .btn { white-space: nowrap; }
.agenda-filters { display: grid; grid-template-columns: minmax(230px, 1.2fr) minmax(130px, .55fr) minmax(155px, .65fr) minmax(220px, 1fr) auto; align-items: end; gap: .75rem; padding: .85rem; border: 1px solid var(--fi-border); border-radius: var(--fi-radius); background: #fff; }
.agenda-filters label { display: grid; gap: .3rem; margin: 0; color: var(--fi-text-light); font-size: .72rem; font-weight: 700; }
.agenda-kpis { display: grid; grid-template-columns: repeat(4, 1fr); gap: .75rem; }
.agenda-kpis > div { display: grid; grid-template-columns: 40px 1fr; grid-template-rows: auto auto auto; column-gap: .65rem; padding: .8rem; border: 1px solid var(--fi-border); border-radius: .75rem; background: #fff; }
.agenda-kpis > div > span { grid-row: 1 / 4; width: 40px; height: 40px; display: grid; place-items: center; border-radius: .55rem; background: #edf2f7; color: #526170; }
.agenda-kpis > div > span.is-blue { background: #eaf2ff; color: var(--fi-primary); }
.agenda-kpis > div > span.is-amber { background: #fff3cd; color: #8a6500; }
.agenda-kpis > div.is-danger { border-color: #f1aeb5; background: #fff7f7; }
.agenda-kpis > div.is-danger > span { background: #f8d7da; color: #842029; }
.agenda-kpis small, .agenda-kpis em { color: var(--fi-text-light); font-size: .68rem; font-style: normal; }
.agenda-kpis strong { font-size: 1rem; }
.agenda-list { overflow: hidden; border: 1px solid var(--fi-border); border-radius: var(--fi-radius); background: #fff; }
.agenda-list > header { padding: .8rem 1rem; border-bottom: 1px solid var(--fi-border); }
.agenda-list > header h2 { margin: 0 0 .1rem; font-size: 1rem; }
.agenda-list > header p { margin: 0; color: var(--fi-text-light); font-size: .72rem; }
.agenda-list > footer { padding: .75rem 1rem; border-top: 1px solid var(--fi-border); }
.agenda-list > footer .pagination { margin: 0; }
.agenda-items { display: grid; }
.agenda-item { display: grid; grid-template-columns: 42px minmax(0, 1fr) minmax(165px, auto); gap: .8rem; padding: 1rem; border-bottom: 1px solid #e8edf1; }
.agenda-item:last-child { border-bottom: 0; }
.agenda-item__status { width: 38px; height: 38px; display: grid; place-items: center; border-radius: .55rem; background: #eaf2ff; color: var(--fi-primary); font-size: 1rem; }
.agenda-item--da-controllare .agenda-item__status { background: #fff3cd; color: #8a6500; }
.agenda-item--fatto .agenda-item__status { background: #d1e7dd; color: #0f5132; }
.agenda-item.is-overdue .agenda-item__status { background: #f8d7da; color: #842029; }
.agenda-item__main { min-width: 0; }
.agenda-item__title { display: flex; align-items: center; gap: .55rem; }
.agenda-item__title h3 { min-width: 0; margin: 0; overflow: hidden; font-size: .92rem; text-overflow: ellipsis; white-space: nowrap; }
.agenda-type { padding: .18rem .38rem; border-radius: .3rem; background: #edf2f7; color: #536273; font-size: .6rem; font-weight: 800; letter-spacing: .04em; }
.agenda-item__main > p { display: -webkit-box; margin: .45rem 0; overflow: hidden; color: #475569; font-size: .78rem; line-height: 1.45; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
.agenda-item__meta { display: flex; flex-wrap: wrap; gap: .45rem .9rem; color: var(--fi-text-light); font-size: .67rem; }
.agenda-item__meta span { display: inline-flex; align-items: center; gap: .28rem; }
.agenda-item__structures { display: flex; flex-wrap: wrap; gap: .3rem; margin-top: .5rem; }
.agenda-item__structures span { padding: .16rem .38rem; border-radius: 999px; background: #f1f5f9; color: #526170; font-size: .62rem; }
.agenda-item__action { display: flex; align-items: flex-end; flex-direction: column; gap: .45rem; }
.agenda-item__action form { width: 165px; }
.agenda-item__action label { display: block; margin-bottom: .2rem; color: var(--fi-text-light); font-size: .62rem; }
.agenda-item__action .form-select { min-height: 34px; height: 34px; padding-top: .2rem; padding-bottom: .2rem; font-size: .72rem; }
.agenda-status { display: inline-flex; padding: .25rem .45rem; border-radius: 999px; background: #eaf2ff; color: var(--fi-primary); font-size: .64rem; font-weight: 700; }
.agenda-status--da-controllare { background: #fff3cd; color: #664d03; }
.agenda-status--fatto { background: #d1e7dd; color: #0f5132; }
.agenda-empty { min-height: 230px; display: flex; align-items: center; justify-content: center; flex-direction: column; color: var(--fi-text-light); text-align: center; }
.agenda-empty i { margin-bottom: .5rem; font-size: 2rem; }
.agenda-empty strong { color: var(--fi-text); }
.agenda-empty span { margin-top: .2rem; font-size: .75rem; }
.agenda-create-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .8rem; }
.agenda-create-grid label { display: grid; align-content: start; gap: .3rem; color: var(--fi-text-light); font-size: .72rem; font-weight: 700; }
.agenda-create-grid label.is-wide { grid-column: 1 / -1; }
.agenda-create-grid textarea { resize: vertical; }
.agenda-create-grid label > small { font-weight: 400; }
@media (max-width: 1199.98px) { .agenda-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); } .agenda-filters > .btn { width: fit-content; } }
@media (max-width: 767.98px) {
    .agenda-heading { align-items: stretch; flex-direction: column; }
    .agenda-heading > .btn { width: 100%; }
    .agenda-filters, .agenda-kpis, .agenda-create-grid { grid-template-columns: 1fr; }
    .agenda-filters > .btn { width: 100%; }
    .agenda-create-grid label.is-wide { grid-column: auto; }
    .agenda-item { grid-template-columns: 36px minmax(0, 1fr); padding: .85rem; }
    .agenda-item__status { width: 34px; height: 34px; }
    .agenda-item__action { grid-column: 2; align-items: stretch; flex-direction: row; flex-wrap: wrap; }
    .agenda-item__action form { width: 100%; }
}
@media (max-width: 767.98px) {
    .planning-page__header { align-items: stretch; flex-direction: column; gap: .8rem; }
    .planning-page__switch { width: 100%; }
    .planning-page__switch a { min-width: 0; flex: 1; }
    .planning-page__controls, .planning-page__controls--with-view { grid-template-columns: 1fr; }
    .planning-period-fields { grid-template-columns: 1fr; }
    .planning-period-buttons { grid-column: auto; }
    .planning-period-buttons .btn { flex: 1; }
}

/* Web check-in: modelli email automatiche */
.wc-mail-page { display: grid; gap: 1rem; }
.wc-mail-heading { display: flex; align-items: end; justify-content: space-between; gap: 1rem; }
.wc-mail-heading > div:first-child > span { color: var(--fi-primary); font-size: .72rem; font-weight: 800; letter-spacing: .08em; }
.wc-mail-heading h1 { margin: .15rem 0; }
.wc-mail-heading p { margin: 0; color: var(--fi-text-light); }
.wc-mail-heading__structure { display: flex; align-items: center; gap: .6rem; padding: .65rem .8rem; border: 1px solid var(--fi-border); border-radius: .7rem; background: #fff; }
.wc-mail-heading__structure > i { display: grid; width: 34px; height: 34px; place-items: center; border-radius: .5rem; color: var(--fi-primary); background: #eaf2ff; }
.wc-mail-heading__structure span { display: grid; }
.wc-mail-heading__structure small { color: var(--fi-text-light); font-size: .65rem; }
.wc-mail-heading__structure strong { font-size: .8rem; }
.wc-mail-topbar { display: flex; align-items: end; justify-content: space-between; gap: 1rem; padding: .8rem; border: 1px solid var(--fi-border); border-radius: var(--fi-radius); background: #fff; }
.wc-mail-topbar > label { display: grid; width: min(520px, 100%); gap: .25rem; color: var(--fi-text-light); font-size: .7rem; font-weight: 700; }
.wc-mail-topbar nav { display: flex; gap: .35rem; padding: .25rem; border-radius: .65rem; background: #f1f5f9; }
.wc-mail-topbar nav a { display: inline-flex; align-items: center; gap: .4rem; min-height: 38px; padding: .45rem .7rem; border-radius: .5rem; color: #526170; font-size: .75rem; font-weight: 700; text-decoration: none; }
.wc-mail-topbar nav a.active { color: #fff; background: var(--fi-primary); }
.wc-mail-topbar nav span { padding: .08rem .32rem; border-radius: 999px; color: inherit; background: rgba(255,255,255,.2); font-size: .6rem; }
.wc-mail-layout { display: grid; grid-template-columns: minmax(285px, .75fr) minmax(0, 2fr); align-items: start; gap: 1rem; }
.wc-mail-list, .wc-mail-editor-panel, .wc-mail-sends { overflow: hidden; border: 1px solid var(--fi-border); border-radius: var(--fi-radius); background: #fff; }
.wc-mail-list > header, .wc-mail-editor-panel > header, .wc-mail-sends > header { display: flex; align-items: center; justify-content: space-between; gap: .75rem; padding: .8rem 1rem; border-bottom: 1px solid var(--fi-border); }
.wc-mail-list h2, .wc-mail-editor-panel h2, .wc-mail-sends h2 { margin: 0; font-size: .95rem; }
.wc-mail-list header p, .wc-mail-editor-panel header p, .wc-mail-sends header p { margin: .12rem 0 0; color: var(--fi-text-light); font-size: .7rem; }
.wc-mail-template { display: grid; grid-template-columns: 36px minmax(0,1fr) auto; align-items: center; gap: .65rem; padding: .8rem; border-bottom: 1px solid #edf0f3; color: var(--fi-text); text-decoration: none; }
.wc-mail-template:hover, .wc-mail-template.active { color: var(--fi-text); background: #f5f8ff; }
.wc-mail-template.active { box-shadow: inset 3px 0 var(--fi-primary); }
.wc-mail-template > span { display: grid; width: 34px; height: 34px; place-items: center; border-radius: .5rem; color: var(--fi-primary); background: #eaf2ff; }
.wc-mail-template > div { display: grid; min-width: 0; }
.wc-mail-template strong { overflow: hidden; font-size: .76rem; text-overflow: ellipsis; white-space: nowrap; }
.wc-mail-template small, .wc-mail-template em { color: var(--fi-text-light); font-size: .64rem; font-style: normal; }
.wc-mail-editor-panel > form { display: grid; gap: 1rem; padding: 1rem; }
.wc-mail-schedule { display: grid; grid-template-columns: repeat(3, minmax(100px, .65fr)) repeat(2, minmax(145px, 1fr)); gap: .65rem; }
.wc-mail-schedule label, .wc-mail-subject, .wc-mail-html-field > span { display: grid; gap: .25rem; color: var(--fi-text-light); font-size: .68rem; font-weight: 700; }
.wc-mail-languages { display: flex; gap: .4rem; border-bottom: 1px solid var(--fi-border); }
.wc-mail-languages button { display: flex; align-items: center; gap: .4rem; margin-bottom: -1px; padding: .55rem .8rem; border: 0; border-bottom: 2px solid transparent; color: var(--fi-text-light); background: transparent; }
.wc-mail-languages button.active { border-bottom-color: var(--fi-primary); color: var(--fi-primary); }
.wc-mail-languages b { display: grid; width: 27px; height: 24px; place-items: center; border-radius: .3rem; background: #edf2f7; font-size: .65rem; }
.wc-mail-languages span { font-size: .72rem; font-weight: 700; }
.wc-mail-language { display: none; gap: .8rem; }
.wc-mail-language.active { display: grid; }
.wc-mail-html-field { display: grid; gap: .3rem; }
.wc-mail-toolbar { display: flex; align-items: center; gap: .2rem; padding: .3rem; border: 1px solid var(--fi-border); border-bottom: 0; border-radius: .45rem .45rem 0 0; background: #f8fafc; }
.wc-mail-toolbar button { display: grid; width: 30px; height: 30px; place-items: center; border: 0; border-radius: .3rem; color: #475569; background: transparent; }
.wc-mail-toolbar button:hover { color: var(--fi-primary); background: #eaf2ff; }
.wc-mail-toolbar small { margin-left: auto; color: var(--fi-text-light); font-size: .62rem; }
.wc-mail-html-editor { min-height: 300px; max-height: 520px; padding: .85rem; overflow: auto; border: 1px solid var(--fi-border); border-radius: 0 0 .45rem .45rem; outline: none; background: #fff; font-family: var(--bs-body-font-family); font-size: .82rem; }
.wc-mail-html-editor:focus { border-color: #86b7fe; box-shadow: 0 0 0 .2rem rgba(13,110,253,.13); }
.wc-mail-editor-panel form > footer { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding-top: .8rem; border-top: 1px solid var(--fi-border); }
.wc-mail-editor-panel form > footer span { display: flex; align-items: center; gap: .4rem; color: var(--fi-text-light); font-size: .68rem; }
.wc-mail-send-filters { display: grid; grid-template-columns: minmax(220px,1.2fr) repeat(2,minmax(130px,.65fr)) minmax(120px,.55fr) minmax(200px,1fr) auto; align-items: end; gap: .65rem; padding: .8rem; border-bottom: 1px solid var(--fi-border); }
.wc-mail-send-filters label { display: grid; gap: .25rem; color: var(--fi-text-light); font-size: .68rem; font-weight: 700; }
.wc-mail-sends td > small { display: block; color: var(--fi-text-light); font-size: .65rem; }
.wc-mail-sends td > strong { font-size: .76rem; }
.wc-mail-language-badge { display: inline-flex; padding: .22rem .4rem; border-radius: .35rem; color: var(--fi-primary); background: #eaf2ff; font-size: .62rem; font-weight: 800; }
.wc-mail-booking-link { display: inline-flex; align-items: center; gap: .35rem; min-height: 34px; }
.wc-mail-sends > footer { padding: .7rem 1rem; border-top: 1px solid var(--fi-border); }
.wc-mail-sends > footer .pagination { margin: 0; }
.wc-mail-empty { min-height: 180px; display: flex; align-items: center; justify-content: center; flex-direction: column; color: var(--fi-text-light); text-align: center; }
.wc-mail-empty > i { margin-bottom: .4rem; font-size: 1.8rem; }
.wc-mail-empty strong { color: var(--fi-text); }
.wc-mail-empty span { font-size: .7rem; }
@media (max-width: 1199.98px) { .wc-mail-layout { grid-template-columns: 1fr; } .wc-mail-list > div { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); } .wc-mail-send-filters { grid-template-columns: repeat(3,minmax(0,1fr)); } }
@media (max-width: 767.98px) { .wc-mail-heading, .wc-mail-topbar { align-items: stretch; flex-direction: column; } .wc-mail-heading__structure { width: 100%; } .wc-mail-topbar nav, .wc-mail-topbar nav a { flex: 1; } .wc-mail-list > div, .wc-mail-schedule, .wc-mail-send-filters { grid-template-columns: 1fr; } .wc-mail-toolbar { flex-wrap: wrap; } .wc-mail-toolbar small { width: 100%; margin: .25rem 0 0; } .wc-mail-editor-panel form > footer { align-items: stretch; flex-direction: column; } .wc-mail-editor-panel form > footer .btn { width: 100%; } }
.fi-page-loader {
    position: fixed;
    inset: 0;
    z-index: 2000;
    display: grid;
    place-items: center;
    padding: 1rem;
    background: rgba(244, 247, 251, .72);
    backdrop-filter: blur(2px);
    opacity: 0;
    transition: opacity .16s ease;
}
.fi-page-loader.is-visible { opacity: 1; }
.fi-page-loader__panel {
    display: flex;
    min-width: 180px;
    flex-direction: column;
    align-items: center;
    gap: .65rem;
    padding: 1.1rem 1.35rem .9rem;
    border: 1px solid rgba(148, 163, 184, .35);
    border-radius: .85rem;
    background: rgba(255, 255, 255, .96);
    box-shadow: 0 14px 38px rgba(15, 23, 42, .14);
    color: var(--fi-text-light);
    font-size: .76rem;
    font-weight: 600;
}
.fi-page-loader__panel img {
    width: auto;
    max-width: 138px;
    height: 34px;
    object-fit: contain;
    animation: fi-loader-pulse 1.15s ease-in-out infinite;
}
.fi-page-loader__bar {
    width: 100%;
    height: 3px;
    overflow: hidden;
    border-radius: 999px;
    background: #e2e8f0;
}
.fi-page-loader__bar span {
    display: block;
    width: 45%;
    height: 100%;
    border-radius: inherit;
    background: var(--fi-primary);
    animation: fi-loader-progress 1s ease-in-out infinite;
}
.fi-unsaved-modal { border: 0; border-radius: .85rem; box-shadow: 0 18px 48px rgba(15, 23, 42, .2); }
.fi-unsaved-modal .modal-body { display: flex; align-items: flex-start; gap: .8rem; padding: 1.15rem 1.15rem .8rem; }
.fi-unsaved-modal__icon { display: grid; flex: 0 0 36px; width: 36px; height: 36px; place-items: center; border-radius: .65rem; color: #9a6700; background: #fff3cd; }
.fi-unsaved-modal h2 { margin: .05rem 0 .25rem; font-size: .95rem; font-weight: 700; }
.fi-unsaved-modal p { margin: 0; color: var(--fi-text-light); font-size: .78rem; line-height: 1.45; }
.fi-unsaved-modal .modal-footer { gap: .45rem; padding: .7rem 1.15rem 1rem; border: 0; }
@keyframes fi-loader-pulse { 50% { opacity: .62; transform: scale(.98); } }
@keyframes fi-loader-progress { from { transform: translateX(-110%); } to { transform: translateX(245%); } }
@media (prefers-reduced-motion: reduce) {
    .fi-page-loader__panel img,
    .fi-page-loader__bar span { animation: none; }
}
