/* Los imports llevan ?v= MANUAL (hallazgo 29-jul): app.css se re-baja en cada deploy
   (?v=AssetVersion), pero los @import internos tenían URL fija — el navegador servía CSS
   VIEJO cacheado después de desplegar (el shell nuevo llegaba a medias). Si tocás uno de
   estos archivos, subí su ?v= en esta línea. */
@import "brand.css?v=2";
@import "holos-shell.css?v=5";
@import "enterprise-ui.css?v=2";
@import "experiential.css?v=2";
@import "holos-mobile-shell.css?v=2";

html, body {
    margin: 0;
    font-family: "Inter", "Segoe UI", system-ui, -apple-system, sans-serif;
    background: var(--holos-bg);
    color: var(--holos-text);
    -webkit-font-smoothing: antialiased;
}

a { color: var(--holos-brand-primary); }

a:hover {
    color: var(--holos-brand-primary-hover);
}

/* Shell — top navigation (Opera-style) */
.holos-shell {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
    background: var(--holos-page);
}

.holos-sticky-header {
    position: sticky;
    top: 0;
    z-index: 300;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.18);
    overflow: visible;
}

.holos-topnav {
    overflow: visible;
}

.holos-bar {
    width: 100%;
}

.holos-bar-context {
    background: var(--holos-header-bg);
    color: #fff;
    border-bottom: 2px solid transparent;
    border-image: var(--holos-gradient) 1;
}

.holos-bar-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.5rem 1.25rem;
    max-width: 100%;
}

.holos-bar-end {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex-wrap: wrap;
}

.holos-bar-context .property-selector,
.holos-bar-context .property-selector-single,
.holos-bar-context .user-label {
    color: rgba(255, 255, 255, 0.95);
}

.holos-bar-context .property-selector select {
    background: rgba(0, 0, 0, 0.2);
    border-color: rgba(255, 255, 255, 0.25);
    color: #fff;
}

.holos-bar-context .link-btn {
    color: #fff;
}

/* Top horizontal menu */
.holos-topnav {
    background: var(--holos-topnav-bg);
    border-bottom: 1px solid var(--holos-border);
}

.holos-topnav-inner {
    display: flex;
    align-items: stretch;
    gap: 0.25rem;
    padding: 0 0.75rem 0 1rem;
    max-width: 100%;
    min-height: 2.75rem;
}

.topnav-brand {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    text-decoration: none;
    padding: 0.5rem 0.65rem 0.5rem 0;
    margin-right: 0.35rem;
    flex-shrink: 0;
}

.topnav-brand-logo {
    width: 28px;
    height: 28px;
}

.topnav-brand-text {
    font-size: 1.05rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    background: var(--holos-gradient);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}

.topnav-menu-btn,
.topnav-backdrop {
    display: none;
}

.topnav-groups {
    display: flex;
    align-items: stretch;
    flex-wrap: nowrap;
    gap: 0.1rem;
    flex: 1;
    min-width: 0;
    overflow: visible;
}

.topnav-group {
    position: relative;
    display: flex;
    align-self: stretch;
}

.topnav-groups > .topnav-link-direct {
    align-self: center;
}

.topnav-trigger,
.topnav-link-direct {
    display: inline-flex;
    align-items: center;
    padding: 0.55rem 0.75rem;
    font-size: 0.88rem;
    font-weight: 500;
    color: var(--holos-topnav-text);
    cursor: pointer;
    border-radius: 6px;
    white-space: nowrap;
    text-decoration: none;
}

.topnav-trigger::after {
    content: "▾";
    margin-left: 0.35rem;
    font-size: 0.65rem;
    opacity: 0.65;
}

.topnav-trigger:hover,
.topnav-group.is-open > .topnav-trigger {
    background: var(--holos-topnav-hover);
}

.topnav-dropdown {
    display: none;
    position: absolute;
    top: calc(100% + 2px);
    left: 0;
    min-width: 11rem;
    padding: 0.35rem;
    background: var(--holos-dropdown-bg);
    border: 1px solid var(--holos-border);
    border-radius: 8px;
    box-shadow: var(--holos-dropdown-shadow);
    flex-direction: column;
    z-index: 500;
}

.topnav-group.is-open > .topnav-dropdown {
    display: flex;
}

.topnav-link-direct:hover {
    background: var(--holos-topnav-hover);
    color: var(--holos-topnav-text);
}

.topnav-link-direct.active,
.topnav-trigger.active {
    background: var(--holos-topnav-active-bg);
    font-weight: 600;
    box-shadow: inset 0 -2px 0 0 var(--holos-brand-cyan);
}

.topnav-trigger {
    border: none;
    background: transparent;
    font-family: inherit;
}

.topnav-dropdown a {
    display: block;
    padding: 0.45rem 0.65rem;
    border-radius: 6px;
    color: var(--holos-topnav-text);
    text-decoration: none;
    font-size: 0.88rem;
}

.topnav-dropdown a:hover {
    background: var(--holos-topnav-hover);
    color: var(--holos-topnav-text);
}

.topnav-dropdown a.active {
    background: var(--holos-topnav-active-bg);
    font-weight: 600;
}

.topnav-dropdown-divider {
    margin: 0.3rem 0.35rem;
    border: none;
    border-top: 1px solid var(--holos-border);
}

.holos-content {
    flex: 1;
    padding: 0.65rem 1rem 1.5rem;
    width: 100%;
    max-width: none;
    box-sizing: border-box;
}

.property-selector {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    color: var(--holos-muted);
    font-size: 0.875rem;
}

.property-selector select {
    background: var(--holos-bg);
    color: var(--holos-text);
    border: 1px solid var(--holos-border);
    border-radius: 6px;
    padding: 0.35rem 0.5rem;
}

.property-selector-single {
    font-weight: 600;
    color: var(--holos-text);
}

.property-selector-wrap {
    display: flex;
    align-items: center;
    min-width: 0;
}

.inventory-property-banner {
    margin: 0 0 1rem;
    padding: 0.65rem 0.85rem;
    border-left: 3px solid var(--holos-accent);
    background: color-mix(in srgb, var(--holos-accent) 8%, transparent);
}

.property-selector-loading {
    color: var(--holos-muted);
    font-size: 0.9rem;
}

.property-selector-error {
    color: #e8a838;
    font-size: 0.85rem;
}

.property-selector-single-wrap {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.9rem;
}

.row-current-property {
    background: color-mix(in srgb, var(--holos-accent) 12%, transparent);
}

.guest-stays-panel {
    grid-column: 1 / -1;
}

.policy-preview {
    margin: 0.75rem 0;
    padding: 0.75rem 1rem;
    border-radius: 8px;
    background: color-mix(in srgb, var(--holos-accent) 10%, transparent);
    border: 1px solid color-mix(in srgb, var(--holos-accent) 30%, transparent);
}

.policy-group-card {
    margin-bottom: 1.25rem;
}

.user-label {
    margin-right: 1rem;
    color: var(--holos-muted);
    font-size: 0.875rem;
}

.hero h1 {
    font-size: 2.5rem;
    margin: 0 0 0.25rem;
}

.tagline {
    color: var(--holos-accent);
    font-size: 1.1rem;
}

.muted { color: var(--holos-muted); }

.dashboard-cards {
    display: grid;
    gap: 1rem;
    margin-top: 2rem;
    max-width: 640px;
}

.card {
    background: var(--holos-surface);
    border: 1px solid var(--holos-border);
    border-radius: var(--holos-radius);
    padding: 1.25rem;
    box-shadow: var(--holos-shadow-card);
}

.data-table {
    width: 100%;
    border-collapse: collapse;
    margin-top: 1rem;
}

.data-table th,
.data-table td {
    text-align: left;
    padding: 0.75rem;
    border-bottom: 1px solid var(--holos-border);
}

.data-table th {
    color: var(--holos-muted);
    font-weight: 500;
}

.num-col {
    text-align: right;
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}

.login-page {
    min-height: 100vh;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    padding: 10vh 1.5rem 1.5rem;
    background: var(--holos-page);
}

.login-panel {
    width: 100%;
    max-width: 400px;
    padding: 2rem 2rem 1.75rem;
    background: var(--holos-surface);
    border-radius: 16px;
    border: 1px solid var(--holos-border);
    box-shadow: var(--holos-shadow-md);
}

.login-brand {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    margin-bottom: 1.5rem;
    padding-bottom: 1.25rem;
    border-bottom: 1px solid var(--holos-border);
}

.login-logo-wrap {
    width: 220px;
    height: 168px;
    overflow: hidden;
    border-radius: 14px;
    background: #f2f5fa;
    margin-bottom: 0.85rem;
    box-shadow: 0 8px 28px rgba(0, 0, 0, 0.18);
}

.login-logo-wrap img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    object-position: center 8%;
}

.login-tagline {
    margin: 0;
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--holos-brand-purple);
    letter-spacing: 0.22em;
    text-transform: uppercase;
}

.login-form .field {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    margin-bottom: 1rem;
}

.login-form input {
    padding: 0.55rem 0.65rem;
    border-radius: 8px;
    border: 1px solid var(--holos-border);
    background: var(--holos-bg);
    color: var(--holos-text);
    font-size: 1rem;
}

.login-submit {
    width: 100%;
    margin-top: 0.35rem;
    padding: 0.7rem;
    background: var(--holos-gradient);
    color: #fff;
    border: none;
    border-radius: 8px;
    font-weight: 700;
    font-size: 1rem;
    cursor: pointer;
    letter-spacing: 0.02em;
}

.login-submit:hover {
    filter: brightness(1.08);
}

.login-submit:disabled {
    opacity: 0.6;
    cursor: not-allowed;
}

.inventory-grid th,
.inventory-grid td {
    text-align: center;
    font-size: 0.85rem;
}

.inventory-grid th:first-child,
.inventory-grid td:first-child {
    text-align: left;
}

.col-today {
    background: rgba(61, 214, 198, 0.12);
}

.cell-soldout .avail-num {
    color: #f07178;
}

.avail-num {
    font-weight: 700;
    font-size: 1rem;
}

.avail-sub {
    color: var(--holos-muted);
    font-size: 0.7rem;
    display: block;
}

.avail-pct {
    display: block;
    font-size: 0.75rem;
    color: var(--holos-accent);
    margin-top: 0.15rem;
}

.avail-bar {
    height: 5px;
    background: var(--holos-border);
    border-radius: 3px;
    margin-top: 0.35rem;
    overflow: hidden;
}

.avail-bar-fill {
    height: 100%;
    background: var(--holos-accent);
    border-radius: 3px;
    transition: width 0.2s ease;
}

.avail-bar-occ {
    background: #5a7a9a;
}

.inline-bar {
    width: 80px;
    display: inline-block;
    vertical-align: middle;
    margin-right: 0.5rem;
}

.avail-preview {
    margin: 1rem 0;
    padding: 0.75rem;
    background: var(--holos-bg);
    border-radius: 8px;
    border: 1px solid var(--holos-border);
}

.avail-preview h3 {
    margin: 0 0 0.5rem;
    font-size: 0.9rem;
}

.avail-preview-row {
    display: grid;
    grid-template-columns: 4rem 6rem 5rem 1fr;
    gap: 0.5rem;
    align-items: center;
    font-size: 0.85rem;
    margin-bottom: 0.35rem;
}

.filter-row {
    margin-bottom: 1rem;
}

.filter-row select,
.status-select {
    background: var(--holos-bg);
    color: var(--holos-text);
    border: 1px solid var(--holos-border);
    border-radius: 6px;
    padding: 0.35rem;
}

.toggle-row {
    display: flex;
    gap: 0.75rem;
    align-items: flex-start;
    cursor: pointer;
}

.toggle-row small {
    display: block;
    margin-top: 0.35rem;
}

.settings-card {
    max-width: 560px;
}

.save-ok {
    color: var(--holos-accent);
    margin-top: 1rem;
}

.sim-form {
    max-width: none;
    margin-bottom: 0;
}

.sim-form-title {
    margin: 0 0 1rem;
    font-size: 1.05rem;
}

.rate-simulator-layout {
    display: grid;
    grid-template-columns: minmax(280px, 400px) 1fr;
    gap: 1.25rem;
    align-items: start;
}

.rate-simulator-top,
.rate-simulator-workspace {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.65rem;
    align-items: start;
}

.rate-simulator-enterprise {
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
}

.rate-simulator-panel {
    padding: 0.75rem 0.85rem;
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
}

.rate-simulator-panel-head {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: flex-start;
    gap: 0.35rem 0.75rem;
}

.rate-simulator-panel-head h2 {
    margin: 0;
    font-size: 0.95rem;
    font-weight: 600;
}

.rate-simulator-panel-head p {
    margin: 0.15rem 0 0;
    font-size: 0.82rem;
}

.rate-simulator-panel-head .rate-simulator-headline {
    margin: 0.25rem 0 0;
    font-size: 0.88rem;
}

.rate-simulator-guest-search {
    margin: 0;
}

.rate-simulator-hint {
    margin: 0;
    font-size: 0.85rem;
}

.rate-simulator-guest-picks {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
    max-height: 8rem;
    overflow-y: auto;
}

.rate-simulator-guest-pick {
    width: 100%;
    text-align: left;
    padding: 0.45rem 0.55rem;
    border: 1px solid var(--holos-border);
    border-radius: 6px;
    background: transparent;
    color: inherit;
    cursor: pointer;
    font: inherit;
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
}

.rate-simulator-guest-pick:hover {
    border-color: var(--holos-brand-blue);
    background: rgba(59, 130, 246, 0.06);
}

.rate-simulator-selected {
    margin: 0;
    font-size: 0.88rem;
}

.rate-simulator-fields {
    margin: 0;
}

.rate-simulator-panel-foot {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    align-items: center;
    margin-top: auto;
    padding-top: 0.35rem;
    border-top: 1px solid var(--holos-border);
}

.rate-simulator-panel-foot-primary {
    justify-content: space-between;
}

.rate-simulator-result-head {
    margin-bottom: 0.75rem;
    padding-bottom: 0.65rem;
    border-bottom: 1px solid var(--holos-border);
}

.rate-simulator-result-total {
    text-align: right;
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
}

.rate-simulator-result-total strong {
    font-size: 1.35rem;
    color: var(--holos-accent, var(--holos-brand-blue));
}

.rate-simulator-result-grid {
    display: grid;
    grid-template-columns: 1fr minmax(280px, 380px);
    gap: 1.5rem;
    align-items: start;
}

.rate-simulator-side {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}

.rate-simulator-pdf-actions {
    margin-top: 1.25rem;
    padding-top: 1rem;
    border-top: 1px solid var(--holos-border, rgba(255, 255, 255, 0.12));
}

.rate-simulator-pdf-actions .btn-primary,
.rate-simulator-pdf-actions .btn-secondary {
    width: 100%;
    margin-top: 0.5rem;
}

.payment-link-box {
    margin-top: 1rem;
    padding: 0.75rem;
    border-radius: 8px;
    border: 1px dashed var(--holos-border);
}

.payment-link-box label {
    display: block;
    font-size: 0.85rem;
    margin-bottom: 0.35rem;
}

.payment-link-box input {
    width: 100%;
    font-size: 0.8rem;
    margin-bottom: 0.5rem;
}

.payment-link-box a {
    display: inline-block;
    margin-top: 0.5rem;
    font-size: 0.9rem;
}

.guest-portal-shell {
    min-height: 100vh;
    background: var(--holos-bg, #0f1419);
    color: var(--holos-text, #e8eaed);
}

.guest-portal-header {
    padding: 1rem 1.25rem;
    border-bottom: 1px solid var(--holos-border, rgba(255, 255, 255, 0.12));
    display: flex;
    align-items: baseline;
    gap: 0.75rem;
}

.guest-portal-brand {
    font-weight: 700;
    color: var(--holos-brand-cyan);
}

.guest-portal-tagline {
    font-size: 0.85rem;
    color: var(--holos-muted, #9aa0a6);
}

.guest-portal-content {
    max-width: 640px;
    margin: 0 auto;
    padding: 1.5rem 1rem 3rem;
}

.guest-portal-property {
    font-size: 0.9rem;
    color: var(--holos-brand-cyan);
    margin: 0;
}

.guest-portal-session-banner {
    background: rgba(45, 212, 191, 0.12);
    border: 1px solid rgba(45, 212, 191, 0.35);
    border-radius: 8px;
    padding: 1rem;
    margin: 1rem 0;
}

.guest-portal-countdown {
    font-size: 1.1rem;
    margin: 0.5rem 0 0;
}

.guest-portal-stay {
    margin-top: 1.25rem;
}

.guest-portal-totals {
    margin-top: 1rem;
}

.guest-portal-validity {
    font-size: 0.85rem;
    margin-top: 1.25rem;
}

.guest-portal-message {
    margin: 1rem 0;
    padding: 0.75rem;
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.04);
}

/* Portal público (huésped/transportista): formulario y acciones — branded, legible y responsive. */
.guest-portal-card {
    padding: 1.75rem 1.75rem 1.5rem;
    box-shadow: var(--holos-shadow-card);
}

.guest-portal-card--loading {
    text-align: center;
}

/* Encabezado: propiedad (eyebrow) → tour (título) → huésped, con separador sobrio. */
.guest-portal-offer-header {
    padding-bottom: 1.1rem;
    border-bottom: 1px solid var(--holos-border);
}

.guest-portal-card h1 {
    font-size: 1.55rem;
    line-height: 1.2;
    letter-spacing: -0.01em;
    font-weight: 700;
    margin: 0;
    color: var(--holos-text);
}

.guest-portal-eyebrow {
    margin: 0 0 0.4rem;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.09em;
    text-transform: uppercase;
    color: var(--holos-brand-primary);
}

.guest-portal-guest {
    margin: 0.45rem 0 0;
    font-size: 0.92rem;
    color: var(--holos-muted);
}

.guest-portal-card h2 {
    font-size: 1.05rem;
    margin: 0 0 0.75rem;
    color: var(--holos-text);
}

/* Banner de estado (pendiente / confirmado / cancelado / cerrado) — la verdad recién leída. */
.guest-portal-status {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    margin: 1.25rem 0;
    padding: 0.9rem 1rem;
    border: 1px solid var(--holos-border);
    border-radius: var(--holos-radius-sm);
    background: var(--holos-page);
}

.guest-portal-status-icon {
    flex: 0 0 auto;
    width: 1.65rem;
    height: 1.65rem;
    border-radius: 999px;
    display: grid;
    place-items: center;
    font-size: 0.9rem;
    font-weight: 700;
    line-height: 1;
    color: #fff;
    background: var(--holos-muted);
}

.guest-portal-status-body {
    min-width: 0;
}

.guest-portal-status-body strong {
    display: block;
    font-size: 1rem;
    color: var(--holos-text);
}

.guest-portal-status-body p {
    margin: 0.2rem 0 0;
    font-size: 0.9rem;
    line-height: 1.4;
    color: var(--holos-muted);
}

.guest-portal-status--ok {
    background: color-mix(in srgb, var(--holos-success) 9%, #fff);
    border-color: color-mix(in srgb, var(--holos-success) 32%, #fff);
}

.guest-portal-status--ok .guest-portal-status-icon {
    background: var(--holos-success);
}

.guest-portal-status--ok .guest-portal-status-body strong {
    color: #047857;
}

.guest-portal-status--danger {
    background: color-mix(in srgb, var(--holos-danger) 8%, #fff);
    border-color: color-mix(in srgb, var(--holos-danger) 30%, #fff);
}

.guest-portal-status--danger .guest-portal-status-icon {
    background: var(--holos-danger);
}

.guest-portal-status--danger .guest-portal-status-body strong {
    color: #b91c1c;
}

.guest-portal-status--info {
    background: var(--holos-brand-primary-soft);
    border-color: color-mix(in srgb, var(--holos-brand-primary) 22%, #fff);
}

.guest-portal-status--info .guest-portal-status-icon {
    background: var(--holos-brand-primary);
}

/* Alerta de error (acción fallida): visible pero sin colorear todo el estado. */
.guest-portal-alert {
    display: flex;
    align-items: flex-start;
    gap: 0.6rem;
    margin: 1rem 0;
    padding: 0.8rem 1rem;
    border-radius: var(--holos-radius-sm);
    font-size: 0.9rem;
    line-height: 1.4;
}

.guest-portal-alert--error {
    background: color-mix(in srgb, var(--holos-danger) 9%, #fff);
    border: 1px solid color-mix(in srgb, var(--holos-danger) 32%, #fff);
    color: #b91c1c;
}

.guest-portal-alert-icon {
    flex: 0 0 auto;
    font-weight: 700;
}

/* Detalle de la reserva: lista clave/valor con separadores y total destacado. */
.guest-portal-detail {
    margin: 1.25rem 0 0;
}

.guest-portal-detail dl {
    margin: 0;
}

.guest-portal-detail-row {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.7rem 0;
    border-bottom: 1px solid var(--holos-border);
}

.guest-portal-detail-row:last-child {
    border-bottom: none;
}

.guest-portal-detail-row dt {
    color: var(--holos-muted);
    font-size: 0.9rem;
}

.guest-portal-detail-row dd {
    margin: 0;
    text-align: right;
    font-weight: 600;
    color: var(--holos-text);
}

.guest-portal-detail-row--total {
    margin-top: 0.15rem;
    padding-top: 0.85rem;
    border-top: 1px solid var(--holos-border-strong);
}

.guest-portal-detail-row--total dt {
    color: var(--holos-text);
    font-weight: 600;
    font-size: 0.95rem;
}

.guest-portal-detail-row--total dd {
    font-size: 1.2rem;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    text-transform: none;
}

/* Campos de formulario (reprogramar). */
.guest-portal-card label,
.guest-portal-card .field-label {
    display: block;
    font-size: 0.82rem;
    font-weight: 600;
    color: var(--holos-muted);
    margin: 0 0 0.4rem;
}

.guest-portal-field {
    margin-bottom: 0.9rem;
}

.guest-portal-reschedule {
    margin-top: 1.25rem;
}

.guest-portal-card .input,
.guest-portal-card input[type="text"],
.guest-portal-card input[type="date"],
.guest-portal-card input[type="time"],
.guest-portal-card textarea {
    width: 100%;
    box-sizing: border-box;
    min-height: 48px;
    padding: 0.65rem 0.8rem;
    border-radius: var(--holos-radius-sm);
    border: 1px solid var(--holos-border-strong);
    background: var(--holos-surface);
    color: var(--holos-text);
    font-size: 1rem;
    font-family: inherit;
}

.guest-portal-card textarea {
    resize: vertical;
    min-height: 84px;
}

.guest-portal-card .input:focus,
.guest-portal-card input:focus,
.guest-portal-card textarea:focus {
    outline: none;
    border-color: var(--holos-brand-primary);
    box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.15);
}

/* Acciones — botones branded con área de toque ≥ 48px. */
.guest-portal-actions {
    display: flex;
    gap: 0.6rem;
    flex-wrap: wrap;
    margin-top: 1.25rem;
}

.guest-portal-actions--secondary {
    margin-top: 0.6rem;
}

.guest-portal-changes {
    margin-top: 1.5rem;
    padding-top: 1.25rem;
    border-top: 1px solid var(--holos-border);
}

.guest-portal-changes-label {
    margin: 0;
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--holos-muted);
}

.gp-btn {
    flex: 1 1 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    padding: 0.75rem 1.15rem;
    border-radius: var(--holos-radius-sm);
    border: 1px solid transparent;
    font-size: 0.95rem;
    font-weight: 600;
    font-family: inherit;
    line-height: 1.2;
    text-align: center;
    cursor: pointer;
    transition: background 0.15s, border-color 0.15s, box-shadow 0.15s, color 0.15s;
}

.gp-btn--block {
    flex-basis: 100%;
    width: 100%;
}

.gp-btn--primary {
    background: var(--holos-brand-primary);
    color: #fff;
    box-shadow: 0 1px 2px rgba(37, 99, 235, 0.25);
}

.gp-btn--primary:hover:not(:disabled) {
    background: var(--holos-brand-primary-hover);
    box-shadow: 0 4px 14px rgba(37, 99, 235, 0.3);
}

.gp-btn--ghost {
    background: var(--holos-surface);
    border-color: var(--holos-border-strong);
    color: var(--holos-text);
}

.gp-btn--ghost:hover:not(:disabled) {
    background: var(--holos-page);
    border-color: var(--holos-brand-primary);
    color: var(--holos-brand-primary);
}

.gp-btn--danger {
    background: var(--holos-surface);
    border-color: color-mix(in srgb, var(--holos-danger) 45%, #fff);
    color: var(--holos-danger);
}

.gp-btn--danger:hover:not(:disabled) {
    background: color-mix(in srgb, var(--holos-danger) 8%, #fff);
    border-color: var(--holos-danger);
}

.gp-btn:disabled {
    opacity: 0.55;
    cursor: default;
    box-shadow: none;
}

.guest-portal-help {
    margin: 1.5rem 0 0;
    font-size: 0.82rem;
    text-align: center;
    color: var(--holos-muted);
}

/* En el cel (donde el huésped casi siempre lo abre): columna cómoda, botones a todo el ancho. */
@media (max-width: 420px) {
    .guest-portal-content {
        padding: 1rem 0.85rem 2.5rem;
    }

    .guest-portal-card {
        padding: 1.35rem 1.2rem 1.25rem;
    }

    .guest-portal-card h1 {
        font-size: 1.4rem;
    }

    .guest-portal-actions .gp-btn {
        flex-basis: 100%;
    }
}

.offer-session-col {
    font-size: 0.85rem;
    line-height: 1.4;
}

.offer-session-col .muted {
    display: block;
}

.offer-actions-col {
    white-space: nowrap;
    font-size: 0.85rem;
}

.offer-actions-col .link-btn {
    display: block;
    margin-top: 0.25rem;
}

.danger-link {
    color: #f87171;
}

/* Folios list */
/* Reservations list */
.reservations-toolbar {
    margin-bottom: 1.25rem;
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.reservations-search-row label,
.reservations-filter-label {
    display: block;
    font-size: 0.8rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--holos-muted);
    margin-bottom: 0.35rem;
}

.reservations-filter-row {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 0.65rem 1rem;
}

.reservations-filter-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
}

.res-filter-chip {
    padding: 0.3rem 0.7rem;
    border-radius: 999px;
    border: 1px solid var(--holos-border);
    background: transparent;
    color: var(--holos-text);
    font-size: 0.82rem;
    cursor: pointer;
    transition: background 0.15s, border-color 0.15s;
}

.res-filter-chip:hover {
    background: rgba(255, 255, 255, 0.05);
}

.res-filter-chip-active {
    background: rgba(10, 132, 255, 0.2);
    border-color: rgba(0, 229, 255, 0.45);
    color: #93c5fd;
}

.reservations-date-row {
    align-items: flex-end;
}

.reservations-date-controls {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 0.5rem 0.75rem;
    flex: 1;
    min-width: 12rem;
}

.res-date-field,
.res-sort-field {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
}

.res-date-field input,
.res-sort-field select {
    min-height: 2.25rem;
}

.res-sort-field {
    min-width: 11rem;
}

.btn-compact {
    padding: 0.35rem 0.65rem;
    font-size: 0.82rem;
}

.audit-toolbar .reservations-filter-chips {
    max-width: 100%;
}

.audit-action-label {
    display: block;
    font-weight: 500;
    font-size: 0.9rem;
}

.audit-action-code {
    display: block;
    font-size: 0.72rem;
    color: var(--holos-muted);
    margin-top: 0.15rem;
}

.audit-diff {
    font-size: 0.88rem;
    max-width: 14rem;
}

.reservations-result-hint {
    margin: 0;
    font-size: 0.85rem;
}

.reservations-truncation-hint {
    margin: 0.35rem 0 0;
    font-size: 0.85rem;
    color: var(--holos-warning, #b45309);
}

.reservations-pager {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin-top: 0.75rem;
}

.reservations-pager-controls {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.75rem;
}

.res-page-size-field {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.88rem;
}

.reservations-table-wrap {
    max-height: min(70vh, 52rem);
}

.reservations-table thead th {
    position: sticky;
    top: 0;
    z-index: 1;
    background: var(--holos-surface);
    box-shadow: 0 1px 0 var(--holos-border);
}

.res-confirmation {
    color: var(--holos-accent);
}

.folio-balance-credit {
    color: var(--holos-accent);
    font-weight: 600;
}

.status-badge.status-checkout {
    background: rgba(148, 163, 184, 0.15);
    color: #94a3b8;
}

.status-badge.status-cancelled {
    background: rgba(248, 113, 113, 0.12);
    color: #fca5a5;
}

.status-badge.status-noshow {
    background: rgba(245, 158, 11, 0.12);
    color: #fcd34d;
}

.folios-search-bar {
    margin-bottom: 1.25rem;
}

.folios-search-bar label {
    display: block;
    font-weight: 600;
    margin-bottom: 0.5rem;
}

.folios-search-bar .guest-search-bar-controls input {
    flex: 1;
    min-width: 14rem;
}

.folios-search-hint {
    margin: 0.5rem 0 0;
    font-size: 0.85rem;
}

/* Folio sticky summary bar */
.folio-sticky-summary {
    position: sticky;
    top: 5.2rem;
    z-index: 200;
    margin-bottom: 0.75rem;
}

.folio-sticky-summary-inner {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.65rem 1.15rem;
    background: var(--holos-surface);
    border: 1px solid var(--holos-border);
    border-radius: 10px;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.25);
}

.folio-sticky-summary-label {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    font-size: 1rem;
}

.folio-sticky-summary-label .muted {
    font-size: 0.85rem;
}

@media (max-width: 900px) {
    .folio-sticky-summary {
        top: 3rem;
    }

    .folio-sticky-summary-inner {
        flex-direction: column;
        align-items: stretch;
        gap: 0.5rem;
        padding: 0.5rem 0.85rem;
    }
}

/* Folio account */

.folio-account-totals {
    display: flex;
    flex-wrap: wrap;
    gap: 1.25rem;
    margin: 0;
}

.folio-account-totals div {
    min-width: 4.5rem;
}

.folio-account-totals dt {
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--holos-muted);
    margin: 0;
}

.folio-account-totals dd {
    margin: 0.15rem 0 0;
    font-size: 1rem;
}

.folio-balance-row dd {
    font-size: 1.15rem;
}

.folio-balance-due {
    color: #f59e0b;
}

.folio-lines-wrap {
    overflow-x: auto;
    margin-bottom: 1rem;
    max-width: 100%;
    -webkit-overflow-scrolling: touch;
}

.folio-lines-live {
    animation: folio-live-flash 1.2s ease-out;
}

@keyframes folio-live-flash {
    0% { box-shadow: inset 0 0 0 2px rgba(0, 229, 255, 0.45); }
    100% { box-shadow: none; }
}

.folio-live-hint {
    margin: 0 0 0.5rem;
    font-size: 0.85rem;
    color: var(--holos-brand-cyan);
}

.folio-line-section {
    margin-bottom: 1.25rem;
}

.folio-line-section-header {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.5rem;
    margin-bottom: 0.5rem;
}

.folio-line-section-title {
    margin: 0;
    font-size: 0.95rem;
    font-weight: 600;
    color: var(--holos-muted);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.folio-line-section-subtotal {
    font-size: 0.85rem;
}

.folio-select-all-row {
    margin-bottom: 0.65rem;
    font-size: 0.9rem;
}

.folio-select-all-row label {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    cursor: pointer;
}

.folio-line-type {
    display: inline-block;
    font-size: 0.75rem;
    font-weight: 600;
    padding: 0.15rem 0.45rem;
    border-radius: 4px;
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.folio-line-type-room { background: rgba(10, 132, 255, 0.2); color: #93c5fd; }
.folio-line-type-tax { background: rgba(100, 116, 139, 0.25); color: #cbd5e1; }
.folio-line-type-pos { background: rgba(20, 184, 166, 0.2); color: #5eead4; }
.folio-line-type-manual { background: rgba(245, 158, 11, 0.2); color: #fcd34d; }
.folio-line-type-tour { background: rgba(234, 88, 12, 0.2); color: #fdba74; }
.folio-line-type-spa { background: rgba(168, 85, 247, 0.2); color: #c4b5fd; }
.folio-line-type-payment { background: rgba(0, 229, 255, 0.15); color: var(--holos-brand-cyan); }
.folio-line-type-other { background: rgba(123, 44, 191, 0.2); color: #d8b4fe; }

.folio-lines-table .folio-credit {
    color: var(--holos-accent);
    font-weight: 600;
}

.folio-select-col {
    width: 2.25rem;
    text-align: center;
    vertical-align: middle;
}

.folio-select-col input[type="checkbox"] {
    width: 1rem;
    height: 1rem;
    cursor: pointer;
}

.folio-line-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 0.75rem;
    padding: 0.65rem 0.85rem;
    background: rgba(0, 229, 255, 0.06);
    border: 1px solid var(--holos-border);
    border-radius: 8px;
}

.folio-line-actions-buttons {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.btn-danger-outline {
    background: transparent;
    border: 1px solid #f87171;
    color: #fca5a5;
    padding: 0.4rem 0.85rem;
    border-radius: 6px;
    cursor: pointer;
    font-size: 0.9rem;
}

.btn-danger-outline:hover:not(:disabled) {
    background: rgba(248, 113, 113, 0.12);
}

.btn-danger-outline:disabled {
    opacity: 0.45;
    cursor: not-allowed;
}

.folio-executive-block {
    margin-top: 1.5rem;
    padding-top: 1.25rem;
    border-top: 1px dashed var(--holos-border);
}

.folio-executive-block h3 {
    margin: 0 0 0.35rem;
    font-size: 1rem;
}

.folio-line-actions-pm {
    background: rgba(123, 44, 191, 0.1);
    border-color: rgba(123, 44, 191, 0.35);
}

.folio-executive-totals {
    margin-bottom: 0.75rem;
}

.folio-kind-badge {
    display: inline-block;
    font-size: 0.72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    padding: 0.15rem 0.45rem;
    border-radius: 4px;
    white-space: nowrap;
}

.folio-kind-badge-guest {
    background: #dbeafe;
    color: #1e40af;
    border: 1px solid #93c5fd;
}

.folio-kind-badge-pm {
    background: #ede9fe;
    color: #5b21b6;
    border: 1px solid #a78bfa;
}

.folios-list-table .folio-list-row-pm td {
    background: #f5f3ff;
}

.folios-list-table tbody tr.folios-list-row {
    cursor: pointer;
    transition: background 0.12s ease;
}

.folios-list-table tbody tr.folios-list-row:hover td {
    background: #eff6ff;
}

.folios-list-table tbody tr.folio-list-row-pm:hover td {
    background: #ede9fe;
}

.folio-add-charge {
    margin-top: 1.25rem;
    padding-top: 1.25rem;
    border-top: 1px solid var(--holos-border);
}

.folio-add-charge h3 {
    margin: 0 0 0.35rem;
    font-size: 1rem;
}

.folio-documents-block {
    margin-top: 1.25rem;
    padding-top: 1.25rem;
    border-top: 1px solid var(--holos-border);
}

.folio-documents-block h3 {
    margin: 0 0 0.35rem;
    font-size: 1rem;
}

.folio-documents-shell {
    margin-top: 0.75rem;
}

/* Folio enterprise workspace (3-column layout) */
.folio-enterprise {
    margin-bottom: 1rem;
}

.folio-enterprise-grid {
    display: grid;
    grid-template-columns: min(17rem, 22vw) minmax(0, 1fr) min(18rem, 24vw);
    gap: 1rem;
    align-items: start;
}

.folio-enterprise-col {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.folio-enterprise-card {
    background: var(--holos-surface);
    border: 1px solid var(--holos-border);
    border-radius: 12px;
    padding: 1rem 1.1rem;
}

.folio-enterprise-card-title {
    margin: 0 0 0.75rem;
    font-size: 0.82rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--holos-muted);
}

.folio-guest-card {
    text-align: center;
    padding-top: 1.25rem;
}

.folio-guest-avatar {
    width: 3.5rem;
    height: 3.5rem;
    margin: 0 auto 0.75rem;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    font-size: 1.1rem;
    background: linear-gradient(135deg, rgba(0, 82, 255, 0.35), rgba(123, 44, 191, 0.35));
    color: #fff;
}

.folio-guest-name {
    margin: 0 0 0.35rem;
    font-size: 1.15rem;
}

.folio-guest-contact {
    margin: 0.15rem 0;
    font-size: 0.85rem;
    color: var(--holos-muted);
}

.folio-guest-link {
    display: inline-block;
    margin-top: 0.65rem;
    font-size: 0.85rem;
}

.folio-enterprise-facts {
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
    margin: 0;
}

.folio-enterprise-facts dt {
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--holos-muted);
    margin: 0;
}

.folio-enterprise-facts dd {
    margin: 0.1rem 0 0;
    font-size: 0.9rem;
}

.folio-quick-tools {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.folio-quick-tool {
    width: 100%;
    text-align: left;
    background: transparent;
    border: none;
    padding: 0.45rem 0.5rem;
    border-radius: 6px;
    color: var(--holos-text);
    cursor: pointer;
    font-size: 0.88rem;
}

.folio-quick-tool:hover {
    background: rgba(255, 255, 255, 0.05);
}

.folio-enterprise-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    margin-bottom: 0.75rem;
    padding-bottom: 0.5rem;
    border-bottom: 1px solid var(--holos-border);
}

.folio-enterprise-tab {
    background: transparent;
    border: none;
    padding: 0.5rem 0.75rem;
    border-radius: 8px 8px 0 0;
    color: var(--holos-muted);
    cursor: pointer;
    font-size: 0.88rem;
    font-weight: 500;
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
}

.folio-enterprise-tab:hover {
    color: var(--holos-text);
    background: rgba(255, 255, 255, 0.04);
}

.folio-enterprise-tab.is-active {
    color: var(--holos-brand-cyan);
    background: rgba(0, 229, 255, 0.08);
    box-shadow: inset 0 -2px 0 var(--holos-brand-cyan);
}

.folio-tab-count {
    font-size: 0.72rem;
    font-weight: 600;
    padding: 0.1rem 0.4rem;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.08);
    color: var(--holos-muted);
}

.folio-enterprise-tab.is-active .folio-tab-count {
    background: rgba(0, 229, 255, 0.15);
    color: var(--holos-brand-cyan);
}

.folio-info-cards {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(9rem, 1fr));
    gap: 0.65rem;
    margin-bottom: 0.75rem;
}

.folio-info-card {
    background: var(--holos-surface);
    border: 1px solid var(--holos-border);
    border-radius: 10px;
    padding: 0.75rem;
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.folio-info-card.is-empty {
    opacity: 0.55;
}

.folio-info-card-label {
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--holos-muted);
}

.folio-info-card-value {
    font-size: 0.85rem;
    line-height: 1.35;
}

.folio-activity-timeline {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.folio-activity-timeline li {
    display: flex;
    gap: 0.65rem;
    align-items: flex-start;
    font-size: 0.88rem;
}

.folio-activity-dot {
    width: 0.55rem;
    height: 0.55rem;
    margin-top: 0.35rem;
    border-radius: 50%;
    background: var(--holos-brand-cyan);
    flex-shrink: 0;
}

.folio-activity-amount {
    margin-left: 0.35rem;
    font-weight: 600;
    color: var(--holos-brand-cyan);
}

.folio-balance-card {
    text-align: center;
}

.folio-balance-label {
    display: block;
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--holos-muted);
    margin-bottom: 0.35rem;
}

.folio-balance-amount {
    font-size: 1.85rem;
    font-weight: 700;
    line-height: 1.15;
    margin-bottom: 0.75rem;
}

.folio-balance-amount small {
    font-size: 0.55em;
    font-weight: 500;
    color: var(--holos-muted);
}

.folio-balance-breakdown {
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
    margin: 0 0 0.65rem;
    text-align: left;
    font-size: 0.88rem;
}

.folio-balance-breakdown dt {
    color: var(--holos-muted);
    font-size: 0.78rem;
}

.folio-balance-breakdown dd {
    margin: 0;
    text-align: right;
}

.folio-balance-breakdown div {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 0.5rem;
}

.folio-balance-meta {
    margin: 0;
    font-size: 0.8rem;
}

.folio-action-buttons {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.folio-action-buttons .btn-primary,
.folio-action-buttons .btn-secondary,
.folio-action-buttons .btn-danger-outline {
    width: 100%;
    justify-content: center;
}

.folio-inline-form {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.folio-inline-form label {
    font-size: 0.78rem;
    font-weight: 600;
    color: var(--holos-muted);
}

.folio-section-header-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    margin-bottom: 0.5rem;
}

.folio-section-header-row .folio-enterprise-card-title {
    margin: 0;
}

.folio-link-btn {
    background: none;
    border: none;
    color: var(--holos-brand-cyan);
    cursor: pointer;
    font-size: 0.82rem;
    padding: 0;
}

.folio-doc-mini-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.folio-doc-mini-item {
    width: 100%;
    display: flex;
    align-items: center;
    gap: 0.65rem;
    text-align: left;
    background: rgba(255, 255, 255, 0.03);
    border: 1px solid var(--holos-border);
    border-radius: 8px;
    padding: 0.55rem 0.65rem;
    cursor: pointer;
    color: inherit;
}

.folio-doc-mini-item:hover {
    border-color: rgba(0, 229, 255, 0.35);
}

.folio-doc-mini-icon {
    font-size: 1.25rem;
}

.folio-doc-mini-item strong {
    display: block;
    font-size: 0.85rem;
}

.folio-doc-mini-item small {
    font-size: 0.75rem;
}

.folio-service-total {
    margin: 0 0 0.5rem;
    font-size: 1.15rem;
    font-weight: 600;
}

.folio-service-lines {
    list-style: none;
    margin: 0;
    padding: 0;
    font-size: 0.82rem;
    color: var(--holos-muted);
}

.folio-service-lines li {
    padding: 0.2rem 0;
}

.folio-audit-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
}

.folio-audit-list li {
    font-size: 0.85rem;
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    align-items: baseline;
}

.folio-audit-time {
    font-size: 0.78rem;
    color: var(--holos-muted);
    min-width: 5.5rem;
}

.folio-enterprise-table {
    font-size: 0.85rem;
    table-layout: fixed;
    width: 100%;
    min-width: 34rem;
}

.folio-enterprise-table .folio-col-select {
    width: 2.25rem;
}

.folio-enterprise-table .folio-col-date {
    width: 6.25rem;
}

.folio-enterprise-table .folio-col-type {
    width: 6.75rem;
}

.folio-enterprise-table .folio-col-qty {
    width: 3.25rem;
}

.folio-enterprise-table .folio-col-amt {
    width: 6.25rem;
}

.folio-enterprise-table .folio-col-balance {
    width: 7.25rem;
}

.folio-enterprise-table .folio-concept-col {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.folio-enterprise-table .num-col {
    padding-left: 0.35rem;
    padding-right: 0.5rem;
}

.folio-enterprise-table th {
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.folio-operations-slot h2,
.folio-operations-slot h3 {
    margin-top: 0;
}

.folio-notes-list dd {
    white-space: pre-wrap;
}

.fd-folio-enterprise-page .fd-reservation-topbar {
    margin-bottom: 0.75rem;
}

/* Folio page — compact toolbar (back left, folio info right) */
.fd-folio-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 0.5rem;
    padding-bottom: 0.45rem;
    border-bottom: 1px solid var(--holos-border);
    min-height: 2rem;
}

.fd-folio-toolbar-back {
    flex-shrink: 0;
    font-size: 0.82rem;
    color: var(--holos-muted);
    text-decoration: none;
    white-space: nowrap;
}

.fd-folio-toolbar-back:hover {
    color: var(--holos-brand-primary);
}

.fd-folio-toolbar-main {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 0.35rem 0.85rem;
    min-width: 0;
    margin-left: auto;
    text-align: right;
}

.fd-folio-toolbar-title {
    margin: 0;
    font-size: 1.15rem;
    font-weight: 700;
    letter-spacing: -0.02em;
    line-height: 1.2;
}

.fd-folio-toolbar-meta {
    font-size: 0.82rem;
    white-space: nowrap;
}

.fd-folio-enterprise-page .folio-enterprise {
    margin-bottom: 0.35rem;
}

@media (max-width: 768px) {
    .fd-folio-toolbar {
        flex-direction: column;
        align-items: stretch;
        gap: 0.35rem;
    }

    .fd-folio-toolbar-main {
        justify-content: flex-start;
        text-align: left;
        margin-left: 0;
    }
}

.folio-enterprise-flash {
    margin: 0 0 0.5rem;
}

.folio-ops-strip {
    margin-bottom: 0.5rem;
}

.folio-ops-details {
    border: 1px solid var(--holos-border);
    border-radius: 10px;
    background: var(--holos-surface);
    overflow: hidden;
}

.folio-ops-details > summary {
    cursor: pointer;
    font-weight: 600;
    font-size: 0.85rem;
    padding: 0.5rem 0.85rem;
    list-style: none;
    user-select: none;
}

.folio-ops-details > summary::-webkit-details-marker {
    display: none;
}

.folio-ops-details-body {
    padding: 0 0.85rem 0.75rem;
    border-top: 1px solid var(--holos-border);
}

.folio-guest-alert {
    background: rgba(201, 162, 39, 0.1);
    border-color: rgba(201, 162, 39, 0.45);
    font-size: 0.82rem;
}

.folio-guest-alert p {
    margin: 0.25rem 0 0;
}

.folio-guest-badge {
    display: inline-block;
    margin-top: 0.35rem;
    font-size: 0.72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    padding: 0.15rem 0.45rem;
    border-radius: 4px;
    background: rgba(37, 99, 235, 0.12);
    color: var(--holos-brand-primary);
}

.folio-payment-inline {
    margin-top: 0.75rem;
    padding-top: 0.75rem;
    border-top: 1px solid var(--holos-border);
}

.folio-inline-form-actions {
    display: flex;
    gap: 0.5rem;
    align-items: center;
    flex-wrap: wrap;
}

.folio-inline-form-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.5rem;
}

.folio-quick-charge {
    margin-top: auto;
}

.folio-quick-charge-btn {
    width: 100%;
}

.folio-quick-charge-presets {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    margin-bottom: 0.45rem;
}

.folio-quick-charge-preset {
    border: 1px solid var(--holos-border, #e2e8f0);
    background: #fff;
    border-radius: 999px;
    padding: 0.2rem 0.65rem;
    font-size: 0.78rem;
    font-weight: 500;
    color: var(--holos-text-secondary, #475569);
    cursor: pointer;
}

.folio-quick-charge-preset:hover:not(:disabled) {
    border-color: var(--holos-primary, #2563eb);
    color: var(--holos-primary, #2563eb);
}

.folio-quick-charge-preset:disabled {
    opacity: 0.55;
    cursor: not-allowed;
}

.folio-quick-charge-preset.active {
    border-color: var(--holos-primary, #2563eb);
    background: color-mix(in srgb, var(--holos-primary, #2563eb) 10%, #fff);
    color: var(--holos-primary, #2563eb);
    font-weight: 600;
}

.folio-charge-panel {
    border-top: 3px solid var(--holos-primary, #2563eb);
}

.folio-charge-balance-strip {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    margin-bottom: 0.85rem;
    padding: 0.75rem 0.85rem;
    border-radius: 0.5rem;
    background: var(--holos-surface-muted, #f8fafc);
    border: 1px solid var(--holos-border, #e2e8f0);
}

.folio-charge-balance-row {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.75rem;
}

.folio-charge-balance-label {
    font-size: 0.78rem;
    color: var(--holos-text-secondary, #64748b);
}

.folio-charge-balance-value {
    font-size: 0.95rem;
    font-variant-numeric: tabular-nums;
}

.folio-charge-balance-current .folio-charge-balance-current-value {
    font-size: 1.15rem;
    font-weight: 700;
}

.folio-charge-balance-after .folio-charge-balance-label {
    font-weight: 600;
    color: var(--holos-text-primary, #0f172a);
}

.folio-charge-balance-after .folio-charge-balance-value {
    font-size: 1.35rem;
    font-weight: 700;
}

.folio-charge-qty-hint {
    margin: 0.15rem 0 0.35rem;
    font-size: 0.75rem;
}

.folio-charge-credit-limit-notice {
    margin: 0 0 0.85rem;
    padding: 0.55rem 0.75rem;
    border-radius: 0.45rem;
    font-size: 0.85rem;
    line-height: 1.45;
    color: #92400e;
    background: rgba(245, 158, 11, 0.12);
    border: 1px solid rgba(245, 158, 11, 0.35);
}

.folio-charge-qty-row {
    margin-bottom: 0.35rem;
}

.folio-inline-field-error {
    margin: 0.25rem 0 0;
    font-size: 0.78rem;
    color: var(--holos-danger, #dc2626);
}

.folio-ws-load-error .hk-empty-guide,
.folio-ws-ledger-empty.hk-empty-guide {
    padding: 1.25rem 1rem;
    text-align: center;
}

.folio-ws-ledger-empty .btn-secondary {
    margin-top: 0.65rem;
}

.folio-balance-due {
    color: var(--holos-danger, #dc2626);
}

.folio-lines-preview {
    max-height: 14rem;
    overflow: auto;
}

.folio-enterprise-right {
    position: sticky;
    top: calc(var(--holos-topbar-height) + 0.5rem);
    max-height: calc(100vh - var(--holos-topbar-height) - 1.5rem);
    overflow-y: auto;
}

.folio-enterprise-center {
    min-height: 0;
}

/* ── Folio workspace v2 (recepción — vista completa) ── */
.fd-folio-enterprise-page {
    display: flex;
    flex-direction: column;
    min-height: calc(100vh - var(--holos-topbar-height) - 1.25rem);
    overflow: visible;
}

.fd-folio-enterprise-page .folio-workspace {
    flex: 1;
    min-height: 0;
}

.folio-workspace {
    display: flex;
    flex-direction: column;
    gap: 0.55rem;
    min-height: 0;
}

.folio-ws-hero {
    display: grid;
    grid-template-columns: minmax(0, 1.4fr) auto auto;
    gap: 0.75rem 1rem;
    align-items: center;
    padding: 0.75rem 1rem;
    background: var(--holos-surface);
    border: 1px solid var(--holos-border);
    border-radius: 12px;
}

.folio-ws-guest {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem;
    min-width: 0;
}

.folio-ws-guest-main {
    display: flex;
    gap: 0.75rem;
    min-width: 0;
}

.folio-ws-avatar {
    width: 3rem;
    height: 3rem;
    margin: 0;
    flex-shrink: 0;
    font-size: 0.95rem;
}

.folio-ws-guest-copy {
    min-width: 0;
}

.folio-ws-guest-title {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.45rem 0.65rem;
}

.folio-ws-guest-title h1 {
    margin: 0;
    font-size: 1.2rem;
    font-weight: 700;
    letter-spacing: -0.02em;
}

.folio-ws-status {
    font-size: 0.68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    padding: 0.18rem 0.5rem;
    border-radius: 999px;
    background: rgba(100, 116, 139, 0.15);
    color: var(--holos-muted);
}

.folio-ws-status-inhouse {
    background: rgba(16, 185, 129, 0.15);
    color: #059669;
}

.folio-ws-status-arrival {
    background: rgba(10, 132, 255, 0.15);
    color: #2563eb;
}

.folio-ws-status-departure {
    background: rgba(245, 158, 11, 0.15);
    color: #d97706;
}

.folio-ws-guest-meta {
    margin: 0.2rem 0 0;
    font-size: 0.78rem;
    display: flex;
    flex-wrap: wrap;
    gap: 0.25rem 0.65rem;
}

.folio-ws-kpis {
    display: flex;
    gap: 0.5rem;
}

.folio-ws-kpi {
    min-width: 6.5rem;
    padding: 0.45rem 0.65rem;
    border: 1px solid var(--holos-border);
    border-radius: 10px;
    background: #f8fafc;
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
}

.folio-ws-kpi-warn {
    border-color: rgba(245, 158, 11, 0.45);
    background: rgba(245, 158, 11, 0.08);
}

.folio-ws-kpi-label {
    font-size: 0.65rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--holos-muted);
}

.folio-ws-kpi-value {
    font-size: 1.05rem;
    font-variant-numeric: tabular-nums;
}

.folio-ws-kpi-sub {
    font-size: 0.68rem;
    color: var(--holos-muted);
}

.folio-ws-hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    justify-content: flex-end;
}

.folio-ws-body {
    display: grid;
    grid-template-columns: 11rem minmax(0, 1fr) 15rem;
    gap: 0.55rem;
    flex: 1;
    min-height: 0;
    overflow: hidden;
}

.folio-ws-body.folio-ws-body-focus {
    grid-template-columns: minmax(0, 1fr);
    min-height: calc(100vh - var(--holos-topbar-height) - 9.5rem);
}

.folio-ws-body.folio-ws-body-notes {
    grid-template-columns: minmax(0, 1fr) 15rem;
}

.folio-ws-rail {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    min-height: 0;
    min-width: 0;
    overflow-y: auto;
    overflow-x: hidden;
}

.folio-ws-panel {
    background: var(--holos-surface);
    border: 1px solid var(--holos-border);
    border-radius: 10px;
    padding: 0.65rem 0.75rem;
}

.folio-ws-panel-title {
    margin: 0 0 0.5rem;
    font-size: 0.68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--holos-muted);
    white-space: normal;
    overflow-wrap: anywhere;
}

.folio-ws-empty {
    margin: 0;
    font-size: 0.82rem;
}

.folio-ws-timeline {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
}

.folio-ws-timeline-item {
    display: grid;
    grid-template-columns: 0.55rem minmax(0, 1fr);
    gap: 0.45rem;
    font-size: 0.78rem;
}

.folio-ws-timeline-item strong {
    display: block;
    font-size: 0.8rem;
    line-height: 1.25;
}

.folio-ws-timeline-dot {
    width: 0.45rem;
    height: 0.45rem;
    margin-top: 0.35rem;
    border-radius: 50%;
    background: var(--holos-brand-primary);
}

.folio-ws-timeline-item.payment .folio-ws-timeline-dot {
    background: #10b981;
}

.folio-ws-alert-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.folio-ws-alert {
    font-size: 0.78rem;
    padding: 0.35rem 0.45rem;
    border-radius: 6px;
    background: rgba(100, 116, 139, 0.08);
}

.folio-ws-alert-critical {
    background: rgba(239, 68, 68, 0.1);
    color: #b91c1c;
}

.folio-ws-alert-warn {
    background: rgba(245, 158, 11, 0.12);
    color: #b45309;
}

.folio-ws-alert-ok {
    background: rgba(34, 197, 94, 0.12);
    color: #15803d;
}

.folio-ws-main {
    display: flex;
    flex-direction: column;
    min-width: 0;
    min-height: 0;
    background: var(--holos-surface);
    border: 1px solid var(--holos-border);
    border-radius: 10px;
    padding: 0.65rem 0.75rem;
}

.folio-ws-ledger-toolbar {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
    margin-bottom: 0.45rem;
    flex-shrink: 0;
}

.folio-ws-ledger-filters,
.folio-ws-category-filters {
    display: flex;
    flex-wrap: wrap;
    gap: 0.3rem;
}

.folio-ws-filter,
.folio-ws-cat {
    border: 1px solid var(--holos-border);
    background: #f8fafc;
    color: var(--holos-muted);
    border-radius: 999px;
    padding: 0.22rem 0.55rem;
    font-size: 0.75rem;
    font-weight: 500;
    cursor: pointer;
}

.folio-ws-filter.active,
.folio-ws-cat.active {
    border-color: var(--holos-brand-primary);
    background: rgba(10, 132, 255, 0.1);
    color: var(--holos-brand-primary);
}

.folio-ws-ledger {
    flex: 1;
    min-height: 0;
    overflow: auto;
    margin-bottom: 0;
}

.folio-ws-ledger .folio-enterprise-table {
    min-width: 100%;
}

.folio-ledger-section-row td {
    background: #f1f5f9;
    border-bottom: 1px solid var(--holos-border);
    padding-top: 0.45rem;
    padding-bottom: 0.45rem;
    font-size: 0.78rem;
}

.folio-ledger-section-total {
    font-weight: 600;
    white-space: nowrap;
}

.folio-ws-financial-rows {
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.folio-ws-financial-rows div {
    display: flex;
    justify-content: space-between;
    gap: 0.5rem;
    font-size: 0.82rem;
}

.folio-ws-financial-rows dt {
    color: var(--holos-muted);
}

.folio-ws-financial-rows dd {
    margin: 0;
    font-variant-numeric: tabular-nums;
    font-weight: 600;
}

.folio-ws-financial-total {
    margin-top: 0.25rem;
    padding-top: 0.35rem;
    border-top: 1px solid var(--holos-border);
}

.folio-ws-financial-total dd {
    font-size: 1rem;
}

.folio-ws-activity {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    font-size: 0.78rem;
}

.folio-ws-activity li {
    display: flex;
    justify-content: space-between;
    gap: 0.5rem;
}

.folio-ws-nav {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    padding: 0.35rem;
    background: var(--holos-surface);
    border: 1px solid var(--holos-border);
    border-radius: 10px;
    flex-shrink: 0;
}

.folio-ws-nav-tab {
    border: 1px solid transparent;
    background: transparent;
    padding: 0.35rem 0.75rem;
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--holos-muted);
    border-radius: 999px;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
}

.folio-ws-nav-tab:hover {
    color: var(--holos-text);
    background: #f1f5f9;
}

.folio-ws-nav-tab.active {
    color: var(--holos-brand-primary);
    background: rgba(10, 132, 255, 0.1);
    border-color: rgba(10, 132, 255, 0.25);
}

.folio-ws-nav-badge {
    font-size: 0.65rem;
    padding: 0.05rem 0.35rem;
    border-radius: 999px;
    background: rgba(100, 116, 139, 0.15);
}

.folio-ws-main-focus {
    min-height: calc(100vh - var(--holos-topbar-height) - 9.5rem);
}

.folio-ws-focus-head {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-bottom: 0.55rem;
    padding-bottom: 0.45rem;
    border-bottom: 1px solid var(--holos-border);
    flex-shrink: 0;
}

.folio-ws-back-btn {
    border: 1px solid var(--holos-border);
    background: #f8fafc;
    color: var(--holos-text);
    border-radius: 999px;
    padding: 0.3rem 0.65rem;
    font-size: 0.78rem;
    font-weight: 600;
    cursor: pointer;
    white-space: nowrap;
}

.folio-ws-back-btn:hover {
    border-color: var(--holos-brand-primary);
    color: var(--holos-brand-primary);
}

.folio-ws-focus-title {
    margin: 0;
    font-size: 0.95rem;
    font-weight: 700;
}

.folio-ws-focus-content {
    flex: 1;
    min-height: 0;
    display: flex;
    flex-direction: column;
    overflow: auto;
}

.folio-ws-documents-view {
    min-height: 12rem;
}

/* Folio documents — list + Drive-style lightbox */
.folio-docs-browser {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.folio-docs-upload {
    font-size: 0.85rem;
    padding: 0.65rem 0.75rem;
    border: 1px dashed var(--holos-border);
    border-radius: 8px;
    background: #f8fafc;
}

.folio-docs-upload summary {
    cursor: pointer;
    font-weight: 600;
    margin-bottom: 0.45rem;
}

.folio-docs-empty {
    margin: 0;
    padding: 1.5rem;
    text-align: center;
    border: 1px dashed var(--holos-border);
    border-radius: 8px;
}

.folio-docs-grid {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(14rem, 1fr));
    gap: 0.55rem;
}

.folio-doc-card {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    padding: 0.75rem 0.85rem;
    border: 1px solid var(--holos-border);
    border-radius: 10px;
    background: var(--holos-surface);
    cursor: pointer;
    transition: border-color 0.12s, box-shadow 0.12s, background 0.12s;
}

.folio-doc-card:hover {
    border-color: var(--holos-brand-primary);
    background: #eff6ff;
    box-shadow: 0 2px 8px rgba(10, 132, 255, 0.12);
}

.folio-doc-card.is-active {
    border-color: var(--holos-brand-primary);
    background: #eff6ff;
}

.folio-doc-card-icon {
    font-size: 1.35rem;
    line-height: 1;
}

.folio-doc-card-name {
    font-weight: 600;
    font-size: 0.88rem;
    line-height: 1.3;
    word-break: break-word;
}

.folio-doc-card-meta {
    font-size: 0.72rem;
    color: var(--holos-muted);
    line-height: 1.35;
}

body.drive-preview-open,
html:has(.drive-preview-overlay) {
    overflow: hidden;
}

.drive-preview-overlay {
    position: fixed;
    inset: 0;
    z-index: 10050;
    display: flex;
    flex-direction: column;
    background: rgba(32, 33, 36, 0.52);
    backdrop-filter: blur(16px) saturate(120%);
    -webkit-backdrop-filter: blur(16px) saturate(120%);
    color: #e8eaed;
    animation: drive-preview-in 180ms ease-out;
    outline: none;
}

@keyframes drive-preview-in {
    from {
        opacity: 0;
        backdrop-filter: blur(0);
        -webkit-backdrop-filter: blur(0);
    }

    to {
        opacity: 1;
    }
}

.drive-preview-topbar {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.45rem 0.75rem;
    background: rgba(32, 33, 36, 0.94);
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
    flex-shrink: 0;
    min-height: 3rem;
    box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25);
}

.drive-preview-close {
    width: 2.25rem;
    height: 2.25rem;
    border: none;
    border-radius: 50%;
    background: transparent;
    color: #e8eaed;
    font-size: 1.1rem;
    cursor: pointer;
    flex-shrink: 0;
}

.drive-preview-close:hover {
    background: rgba(255, 255, 255, 0.1);
}

.drive-preview-title-wrap {
    min-width: 0;
    flex: 1;
}

.drive-preview-title {
    margin: 0;
    font-size: 0.95rem;
    font-weight: 600;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.drive-preview-meta {
    font-size: 0.72rem;
    color: #9aa0a6;
}

.drive-preview-actions {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-shrink: 0;
}

.drive-preview-action {
    border: none;
    background: transparent;
    color: #8ab4f8;
    font-size: 0.82rem;
    font-weight: 600;
    cursor: pointer;
    text-decoration: none;
    padding: 0.35rem 0.55rem;
    border-radius: 6px;
}

.drive-preview-action:hover {
    background: rgba(138, 180, 248, 0.12);
}

.drive-preview-action-danger {
    color: #f28b82;
}

.drive-preview-stage {
    flex: 1;
    min-height: 0;
    display: flex;
    align-items: stretch;
    justify-content: center;
    overflow: auto;
    padding: 1rem 1.25rem 2.5rem;
    background: transparent;
}

.drive-preview-stage.is-loading {
    opacity: 0.85;
}

.drive-preview-canvas {
    flex: 1;
    width: 100%;
    max-width: 1100px;
    min-height: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.drive-preview-canvas .expediente-doc-embed {
    width: 100%;
    height: calc(100vh - 5rem);
    min-height: 24rem;
    border: none;
    border-radius: 6px;
    background: #fff;
    box-shadow: 0 12px 48px rgba(0, 0, 0, 0.45);
}

.drive-preview-canvas .expediente-doc-image {
    max-width: 100%;
    max-height: calc(100vh - 5rem);
    object-fit: contain;
    border-radius: 4px;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.45);
}

.drive-preview-canvas .expediente-doc-sheet,
.drive-preview-canvas .expediente-doc-word {
    width: 100%;
    max-width: 1100px;
    background: #fff;
    color: #202124;
    padding: 1rem;
    border-radius: 4px;
    overflow: auto;
    max-height: calc(100vh - 5rem);
}

.drive-preview-fallback {
    text-align: center;
    color: #e8eaed;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.75rem;
    margin: auto;
}

.drive-preview-hint {
    position: absolute;
    bottom: 0.65rem;
    left: 50%;
    transform: translateX(-50%);
    margin: 0;
    font-size: 0.72rem;
    color: #9aa0a6;
    pointer-events: none;
}

.folio-ws-documents-view .expediente-shell,
.folio-ws-documents-view .folio-documents-shell {
    flex: 1;
    min-height: calc(100vh - var(--holos-topbar-height) - 12rem);
    height: auto;
    max-height: none;
    border: none;
    border-radius: 8px;
}

.folio-ws-documents-view .expediente-files {
    max-height: none;
}

.folio-ws-documents-view .expediente-viewer {
    min-height: 0;
    flex: 1;
}

.folio-ws-documents-view .expediente-viewer-canvas {
    flex: 1;
    min-height: 20rem;
}

.folio-ws-notes-view .folio-ws-dock-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.folio-ws-audit-view .folio-ws-audit {
    max-height: none;
}

.folio-ws-dock {
    flex-shrink: 0;
    background: var(--holos-surface);
    border: 1px solid var(--holos-border);
    border-radius: 10px;
    overflow: hidden;
    max-height: 12.5rem;
    display: flex;
    flex-direction: column;
}

.folio-ws-dock-tabs {
    display: flex;
    gap: 0;
    border-bottom: 1px solid var(--holos-border);
    background: #f8fafc;
    flex-shrink: 0;
}

.folio-ws-dock-tab {
    border: none;
    background: transparent;
    padding: 0.45rem 0.85rem;
    font-size: 0.78rem;
    font-weight: 600;
    color: var(--holos-muted);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
}

.folio-ws-dock-tab span {
    font-size: 0.68rem;
    padding: 0.05rem 0.35rem;
    border-radius: 999px;
    background: rgba(100, 116, 139, 0.15);
}

.folio-ws-dock-tab.active {
    color: var(--holos-brand-primary);
    box-shadow: inset 0 -2px 0 var(--holos-brand-primary);
    background: var(--holos-surface);
}

.folio-ws-dock-body {
    padding: 0.65rem 0.85rem;
    overflow: auto;
    min-height: 0;
    flex: 1;
}

.folio-ws-dock-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.5rem;
}

.folio-ws-note-card {
    padding: 0.55rem 0.65rem;
    border-radius: 8px;
    border: 1px solid var(--holos-border);
    background: #fffbeb;
    min-height: 4.5rem;
}

.folio-ws-note-card.is-empty {
    opacity: 0.5;
    background: #f8fafc;
}

.folio-ws-note-card h3 {
    margin: 0 0 0.25rem;
    font-size: 0.68rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--holos-muted);
}

.folio-ws-note-card p {
    margin: 0;
    font-size: 0.8rem;
    line-height: 1.35;
    white-space: pre-wrap;
}

.folio-ws-dock-hint {
    margin: 0.45rem 0 0;
    font-size: 0.78rem;
}

.folio-ws-dock-ops .folio-operations-panel,
.folio-ws-dock-ops-inner .folio-operations-panel {
    margin: 0;
    padding: 0;
    border: none;
    background: transparent;
}

.folio-ws-dock-ops-inner {
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
}

.fd-reception-ops {
    gap: 0.85rem;
}

.fd-ops-details {
    border: 1px solid var(--holos-border);
    border-radius: 12px;
    padding: 0.65rem 0.85rem;
    background: var(--holos-bg);
}

.fd-ops-details summary {
    cursor: pointer;
    font-weight: 600;
    font-size: 0.88rem;
    list-style: none;
}

.fd-ops-details summary::-webkit-details-marker {
    display: none;
}

.fd-ops-card {
    border: 1px solid var(--holos-border);
    border-radius: 12px;
    padding: 0.85rem 1rem;
    background: var(--holos-bg);
}

.fd-ops-card-primary {
    border-color: rgba(61, 214, 198, 0.45);
    background: linear-gradient(180deg, rgba(61, 214, 198, 0.08), transparent 70%);
}

.fd-ops-card-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 0.65rem;
}

.fd-ops-card-head h3 {
    margin: 0 0 0.2rem;
    font-size: 1rem;
}

.fd-ops-card-head .field-hint {
    margin: 0;
}

.fd-ops-pill {
    flex-shrink: 0;
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    padding: 0.2rem 0.55rem;
    border-radius: 999px;
}

.fd-ops-pill-ok {
    background: rgba(34, 197, 94, 0.15);
    color: #15803d;
}

.fd-ops-pill-warn {
    background: rgba(245, 158, 11, 0.18);
    color: #b45309;
}

.fd-ops-inline-form {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 0.65rem;
}

.fd-ops-inline-form .sim-row {
    flex: 1 1 12rem;
    margin: 0;
}

.fd-ops-inline-form .btn-primary {
    margin: 0;
}

.fd-ops-card-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr));
    gap: 0.75rem;
}

.fd-ops-card-grid .fd-ops-card h3,
.fd-ops-card-grid .fd-ops-card h4 {
    margin-top: 0;
}

.fd-ops-card-checkout .btn-primary {
    width: 100%;
    margin-top: 0.35rem;
}

.guest-id-docs-capture-fold {
    margin-top: 0.35rem;
}

.guest-id-docs-capture-fold summary {
    cursor: pointer;
    font-size: 0.85rem;
    color: var(--holos-muted);
    margin-bottom: 0.5rem;
}

.fd-identity-capture-panel.fd-ops-details .guest-id-docs-panel-compact .guest-id-docs-head {
    display: none;
}

.folio-ws-audit {
    max-height: 8rem;
    overflow: auto;
}

@media (max-width: 1280px) {
    .folio-ws-hero {
        grid-template-columns: 1fr;
    }

    .folio-ws-kpis {
        flex-wrap: wrap;
    }

    .folio-ws-body {
        grid-template-columns: 10rem minmax(0, 1fr) 14rem;
    }

    .folio-ws-notes-view .folio-ws-dock-grid {
        grid-template-columns: 1fr 1fr;
    }
}

@media (max-width: 1024px) {
    .fd-folio-enterprise-page {
        max-height: none;
        min-height: 0;
    }

    .folio-ws-body {
        grid-template-columns: 1fr;
    }

    .folio-ws-rail-left {
        order: 3;
        flex-direction: row;
        overflow-x: auto;
    }

    .folio-ws-rail-left .folio-ws-panel {
        min-width: 14rem;
    }

    .folio-ws-main {
        order: 1;
        min-height: 18rem;
    }

    .folio-ws-rail-right {
        order: 2;
        flex-direction: row;
        flex-wrap: wrap;
    }

    .folio-ws-rail-right .folio-ws-panel {
        flex: 1 1 12rem;
    }
}

@media (max-width: 1200px) {
    .folio-enterprise-right {
        position: static;
        max-height: none;
        overflow: visible;
    }
}


/* ── Enterprise module shell (lists + ops dashboards) ── */
.holos-module-eyebrow {
    margin: 0 0 0.15rem;
    font-size: 0.72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--holos-muted);
}

.holos-module-lead {
    margin: -0.25rem 0 0.85rem;
    max-width: 52rem;
}

.holos-admin-section {
    margin-top: 0.75rem;
    border: 1px solid var(--holos-border);
    border-radius: 10px;
    background: var(--holos-surface);
    overflow: hidden;
}

.holos-admin-section > summary {
    cursor: pointer;
    font-weight: 600;
    font-size: 0.88rem;
    padding: 0.55rem 0.85rem;
    list-style: none;
    user-select: none;
    color: var(--holos-muted);
}

.holos-admin-section > summary::-webkit-details-marker {
    display: none;
}

.holos-admin-section[open] > summary {
    border-bottom: 1px solid var(--holos-border);
    color: var(--holos-text);
}

.holos-admin-section-body {
    padding: 0.65rem 0.85rem 0.85rem;
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
}

.holos-admin-section-body .holos-admin-card {
    margin: 0;
}

.holos-admin-section-body .holos-admin-card h2 {
    font-size: 0.95rem;
    margin: 0 0 0.5rem;
}

.holos-page-header {
    margin-bottom: 0.65rem;
}

.holos-page-header-main {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.2rem;
    min-width: 0;
}

.holos-page-header-main h1 {
    margin: 0;
}

.holos-page-back {
    font-size: 0.82rem;
    color: var(--holos-muted);
    text-decoration: none;
}

.holos-page-back:hover {
    color: var(--holos-brand-primary);
}

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

.holos-ops-toolbar {
    margin-bottom: 0.75rem;
    padding: 0.65rem 0.85rem;
}

.holos-ops-toolbar-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem 0.75rem;
}

.holos-ops-toolbar-row label {
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--holos-muted);
}

.holos-ops-toolbar-row input[type="date"] {
    min-width: 10rem;
}

.holos-ops-toolbar-actions {
    margin-left: auto;
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    align-items: center;
}

.holos-ops-date-hint {
    font-size: 0.82rem;
}

.holos-metric-strip,
.spa-dashboard-stats,
.tour-dashboard-stats {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(9.5rem, 1fr));
    gap: 0.65rem;
    margin-bottom: 0.75rem;
}

.holos-metric-card,
.spa-stat-card,
.tour-stat-card {
    background: var(--holos-surface);
    border: 1px solid var(--holos-border);
    border-radius: 10px;
    padding: 0.75rem 0.65rem;
    text-align: center;
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
}

.holos-metric-value,
.spa-stat-number,
.tour-stat-number {
    font-size: 1.65rem;
    font-weight: 700;
    line-height: 1.1;
    color: var(--holos-brand-primary);
}

.holos-metric-label,
.spa-stat-label,
.tour-stat-label {
    font-size: 0.72rem;
    color: var(--holos-muted);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.holos-metric-warn,
.tour-stat-card.tour-stat-warn {
    border-color: rgba(245, 158, 11, 0.45);
}

.holos-metric-warn .holos-metric-value,
.tour-stat-warn .tour-stat-number {
    color: #f59e0b;
}

.holos-metric-success {
    border-color: rgba(16, 185, 129, 0.4);
}

.holos-metric-success .holos-metric-value {
    color: #10b981;
}

.holos-metric-info {
    border-color: rgba(37, 99, 235, 0.35);
}

.holos-metric-info .holos-metric-value {
    color: var(--holos-brand-primary);
}

.holos-metric-danger {
    border-color: rgba(239, 68, 68, 0.4);
}

.holos-metric-danger .holos-metric-value {
    color: #ef4444;
}

.hk-stats-row.holos-metric-strip-hk {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem 1.5rem;
    align-items: center;
    margin-bottom: 0;
}

.holos-filter-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
}

.folio-operations-panel {
    margin-top: 0.5rem;
}

.folio-operations-panel h3,
.folio-operations-panel h4 {
    margin: 0 0 0.65rem;
    font-size: 0.95rem;
}

.folio-operations-panel .sim-row {
    margin-bottom: 0.65rem;
}

.folio-operations-panel .btn-primary,
.folio-operations-panel .btn-secondary {
    margin-top: 0.5rem;
}

.fd-checkin-details summary {
    cursor: pointer;
    font-weight: 600;
    font-size: 0.88rem;
    margin-bottom: 0.5rem;
}


@media (max-width: 1200px) {
    .folio-enterprise-grid {
        grid-template-columns: min(15rem, 28vw) minmax(0, 1fr);
    }

    .folio-enterprise-right {
        grid-column: 1 / -1;
        display: grid;
        grid-template-columns: repeat(auto-fill, minmax(14rem, 1fr));
        gap: 0.75rem;
    }

    .folio-balance-card {
        grid-column: 1 / -1;
    }
}

@media (max-width: 768px) {
    .folio-enterprise-grid {
        grid-template-columns: 1fr;
    }

    .folio-enterprise-left {
        order: -1;
    }

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

/* POS */
.pos-outlet-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 1rem;
    margin: 1rem 0;
}

.pos-outlet-meta {
    font-size: 0.85rem;
}

.pos-outlet-card {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    padding: 1.25rem;
    border-radius: 12px;
    background: var(--holos-surface);
    border: 1px solid var(--holos-border);
    text-decoration: none;
    color: var(--holos-text);
    transition: border-color 0.15s, transform 0.15s;
}

.pos-outlet-card:hover {
    border-color: var(--holos-accent);
    transform: translateY(-2px);
}

.pos-outlet-code {
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    color: var(--holos-accent);
}

.pos-outlet-name {
    font-size: 1.1rem;
}

.pos-outlet-ext {
    font-size: 0.8rem;
}

.pos-products-panel {
    margin-top: 1.25rem;
    border-color: var(--holos-brand-primary);
    box-shadow: 0 0 0 1px rgba(37, 99, 235, 0.12);
}

.pos-products-panel-header {
    margin-bottom: 1rem;
    padding-bottom: 0.75rem;
    border-bottom: 1px solid var(--holos-border);
}

.pos-product-form-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(11rem, 1fr));
    gap: 0.75rem 1rem;
    align-items: end;
}

.pos-product-form-grid .holos-filter-field label {
    margin: 0;
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--holos-muted);
}

.modal-card .form-grid-2 > div > label,
.modal-card .form-grid-2 label {
    color: var(--holos-muted);
    text-transform: uppercase;
    font-size: 0.75rem;
    letter-spacing: 0.06em;
}

.modal-card .form-grid-2 input,
.modal-card .form-grid-2 select {
    margin-top: 0.25rem;
}

.pos-form-actions {
    display: flex;
    gap: 0.5rem;
    margin-top: 0.75rem;
}

.pos-row-selected {
    background: rgba(20, 184, 166, 0.08);
}

.pos-menu-section {
    margin-top: 0;
}

.pos-empty-catalog {
    padding: 0.75rem 0 1rem;
    margin-bottom: 0.75rem;
    border-bottom: 1px solid var(--holos-border);
}

.pos-terminal-enterprise {
    display: grid;
    grid-template-columns: minmax(260px, 340px) 1fr;
    gap: 0.65rem;
    align-items: start;
}

.pos-terminal-page {
    padding-bottom: 4.5rem;
    background:
        radial-gradient(1200px 400px at 100% -10%, rgba(20, 184, 166, 0.1), transparent 55%),
        radial-gradient(900px 300px at 0% 0%, rgba(37, 99, 235, 0.08), transparent 50%);
    border-radius: 16px;
    padding: 0.35rem;
}

.pos-terminal-panel {
    padding: 0.75rem 0.85rem;
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
}

.pos-terminal-panel-head {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: flex-start;
    gap: 0.35rem;
}

.pos-terminal-panel-head h2 {
    margin: 0;
    font-size: 0.95rem;
    font-weight: 600;
}

.pos-terminal-panel-head p {
    margin: 0.1rem 0 0;
    font-size: 0.82rem;
}

.pos-cart-total {
    margin: 0;
    font-size: 1.1rem;
}

.pos-terminal-flash {
    margin: 0 0 0.5rem;
}

.pos-category-chips {
    margin-bottom: 0.5rem;
}

.pos-manual-details {
    margin: 0.35rem 0;
    font-size: 0.88rem;
}

.pos-manual-details summary {
    cursor: pointer;
    color: var(--holos-muted);
    font-weight: 600;
}

.pos-cart-empty {
    margin: 0.5rem 0;
    font-size: 0.88rem;
}

.pos-cart-table {
    max-height: 14rem;
}

.pos-guest-picks {
    max-height: 10rem;
}

.holos-folio-header-chip {
    display: inline-block;
    margin-right: 0.5rem;
    font-size: 0.82rem;
}

.fd-folio-enterprise-page .holos-page-header,
.fd-checkin-page .holos-page-header {
    margin-bottom: 0.5rem;
}

.pos-terminal-grid {
    display: grid;
    grid-template-columns: 1fr 1.2fr;
    gap: 1rem;
    align-items: start;
}

.pos-category-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    margin-bottom: 0.75rem;
}

.pos-category-tab {
    padding: 0.35rem 0.75rem;
    border-radius: 999px;
    border: 1px solid var(--holos-border);
    background: var(--holos-bg);
    color: var(--holos-muted);
    cursor: pointer;
    font-size: 0.85rem;
}

.pos-category-tab.active {
    border-color: var(--holos-brand-cyan);
    color: var(--holos-brand-cyan);
    background: rgba(0, 229, 255, 0.1);
}

.pos-product-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(9rem, 1fr));
    gap: 0.5rem;
    margin-bottom: 1rem;
}

.pos-product-chip {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.25rem;
    padding: 0.65rem 0.75rem;
    min-height: 4.1rem;
    border-radius: 8px;
    border: 1px solid var(--holos-border);
    background: var(--holos-bg);
    color: var(--holos-text);
    cursor: pointer;
    font-size: 0.85rem;
    text-align: left;
}

.pos-product-name {
    line-height: 1.25;
}

.pos-product-price {
    color: var(--holos-accent);
    font-weight: 600;
    font-size: 0.9rem;
}

.pos-manual-row {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    align-items: center;
}

.pos-manual-row input[type="number"] {
    width: 6rem;
}

.pos-selected-guest {
    margin-top: 0.75rem;
    padding: 0.65rem;
    border-radius: 8px;
    background: rgba(20, 184, 166, 0.1);
    border: 1px solid rgba(20, 184, 166, 0.3);
}

.pos-post-btn {
    width: 100%;
    margin-top: 0.75rem;
    min-height: 2.85rem;
    font-size: 1rem;
}

.pos-checks-page {
    display: grid;
    gap: 0.9rem;
    margin-bottom: 4rem;
    background:
        radial-gradient(1200px 400px at 100% -10%, rgba(20, 184, 166, 0.1), transparent 55%),
        radial-gradient(900px 300px at 0% 0%, rgba(37, 99, 235, 0.08), transparent 50%);
    border-radius: 16px;
    padding: 0.35rem;
}

.pos-checks-workspace {
    display: grid;
    gap: 0.9rem;
}

.pos-checks-main {
    display: grid;
    gap: 0.9rem;
}

.pos-checks-sticky-panel {
    position: sticky;
    top: 5.4rem;
    align-self: start;
}

.pos-checks-floor-card {
    border: 1px solid rgba(59, 130, 246, 0.26);
}

.pos-floor-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(9rem, 1fr));
    gap: 0.55rem;
}

.pos-floor-table {
    border-radius: 12px;
    border: 1px solid rgba(148, 163, 184, 0.35);
    background: #0f172a;
    color: #e2e8f0;
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    align-items: flex-start;
    padding: 0.65rem 0.7rem;
    min-height: 5rem;
    cursor: pointer;
    transition: transform 0.08s ease, box-shadow 0.08s ease, border-color 0.08s ease;
}

.pos-floor-table:hover,
.pos-floor-table:focus-visible {
    transform: translateY(-1px);
    box-shadow: 0 8px 16px rgba(15, 23, 42, 0.22);
}

.pos-floor-table-available {
    border-color: rgba(45, 212, 191, 0.45);
    background: linear-gradient(140deg, rgba(6, 78, 59, 0.8), rgba(2, 44, 34, 0.95));
}

.pos-floor-table-occupied {
    border-color: rgba(251, 191, 36, 0.55);
    background: linear-gradient(140deg, rgba(120, 53, 15, 0.9), rgba(69, 26, 3, 0.95));
}

.pos-floor-table-active {
    border-color: rgba(96, 165, 250, 0.75);
    background: linear-gradient(140deg, rgba(30, 58, 138, 0.92), rgba(30, 64, 175, 0.95));
    box-shadow: 0 0 0 1px rgba(96, 165, 250, 0.45), 0 8px 16px rgba(37, 99, 235, 0.22);
}

.pos-floor-code {
    font-size: 0.95rem;
    font-weight: 800;
    letter-spacing: 0.01em;
}

.pos-floor-meta {
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    opacity: 0.95;
}

.pos-floor-total {
    margin-top: auto;
    font-size: 0.9rem;
    font-weight: 700;
}

.pos-commands-title {
    margin-top: 1rem;
    margin-bottom: 0.5rem;
}

.pos-command-toolbar {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 0.55rem;
    margin-bottom: 0.55rem;
}

.pos-qty-pills {
    display: flex;
    gap: 0.35rem;
    align-items: center;
}

.pos-qty-pill {
    min-width: 2.1rem;
    height: 2.1rem;
    border-radius: 999px;
    border: 1px solid rgba(148, 163, 184, 0.4);
    background: rgba(15, 23, 42, 0.65);
    color: #e2e8f0;
    font-weight: 700;
    cursor: pointer;
}

.pos-qty-pill.active {
    border-color: rgba(45, 212, 191, 0.7);
    background: linear-gradient(120deg, rgba(20, 184, 166, 0.45), rgba(14, 116, 144, 0.55));
}

.pos-command-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(8.5rem, 1fr));
    gap: 0.42rem;
    margin-bottom: 0.7rem;
}

.pos-command-item {
    border-radius: 10px;
    border: 1px solid rgba(148, 163, 184, 0.34);
    background: linear-gradient(150deg, rgba(30, 41, 59, 0.95), rgba(15, 23, 42, 0.95));
    color: #f8fafc;
    text-align: left;
    padding: 0.58rem 0.62rem;
    min-height: 4rem;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 0.25rem;
    cursor: pointer;
    transition: transform 0.08s ease, border-color 0.08s ease, box-shadow 0.08s ease;
}

.pos-command-item:hover,
.pos-command-item:focus-visible {
    border-color: rgba(45, 212, 191, 0.74);
    transform: translateY(-1px);
    box-shadow: 0 10px 18px rgba(15, 23, 42, 0.24);
}

.pos-command-name {
    font-size: 0.9rem;
    line-height: 1.2;
    font-weight: 600;
}

.pos-command-price {
    font-size: 0.84rem;
    opacity: 0.92;
    color: #99f6e4;
}

.pos-symphony-shell {
    background:
        radial-gradient(1200px 600px at 20% 20%, rgba(30, 58, 138, 0.12), transparent 60%),
        radial-gradient(900px 500px at 80% 10%, rgba(20, 184, 166, 0.1), transparent 55%),
        linear-gradient(180deg, #060b16 0%, #0b1220 100%);
    border-radius: 16px;
    padding: 1rem;
    border: 1px solid rgba(71, 85, 105, 0.35);
}

.pos-symphony-shell .card {
    background: rgba(10, 15, 27, 0.86);
    border: 1px solid rgba(71, 85, 105, 0.5);
    box-shadow: 0 10px 24px rgba(2, 6, 23, 0.35);
}

.pos-symphony-shell .sim-form-title,
.pos-symphony-shell h3,
.pos-symphony-shell label,
.pos-symphony-shell .muted,
.pos-symphony-shell .data-table th,
.pos-symphony-shell .data-table td {
    color: #dbe7ff;
}

.pos-symphony-shell input,
.pos-symphony-shell select {
    background: rgba(15, 23, 42, 0.9);
    color: #f8fafc;
    border: 1px solid rgba(100, 116, 139, 0.6);
}

.pos-symphony-shell .data-table thead th {
    background: rgba(30, 41, 59, 0.8);
}

.pos-symphony-shell .data-table tbody tr:nth-child(even) {
    background: rgba(15, 23, 42, 0.5);
}

.pos-symphony-shell .data-table tbody tr:nth-child(odd) {
    background: rgba(2, 6, 23, 0.55);
}

.pos-symphony-shell .btn-primary {
    background: linear-gradient(130deg, #0b5fff, #1d4ed8);
    border-color: rgba(96, 165, 250, 0.85);
}

.pos-symphony-shell .btn-secondary {
    background: linear-gradient(130deg, #0f172a, #1e293b);
    border-color: rgba(71, 85, 105, 0.85);
    color: #e2e8f0;
}

.pos-symphony-quick-actions {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.55rem;
}

.pos-symphony-action {
    min-height: 5rem;
    border-radius: 12px;
    border: 1px solid rgba(100, 116, 139, 0.62);
    background: linear-gradient(135deg, rgba(15, 23, 42, 0.95), rgba(30, 41, 59, 0.95));
    color: #f8fafc;
    text-align: left;
    padding: 0.75rem;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 0.2rem;
    cursor: pointer;
}

.pos-symphony-action-title {
    font-size: 1rem;
    font-weight: 800;
    letter-spacing: 0.01em;
}

.pos-symphony-action-sub {
    font-size: 0.74rem;
    opacity: 0.82;
    text-transform: uppercase;
    letter-spacing: 0.07em;
}

.pos-symphony-action-primary {
    border-color: rgba(45, 212, 191, 0.85);
    background: linear-gradient(140deg, rgba(8, 145, 178, 0.7), rgba(6, 78, 59, 0.86));
}

.pos-symphony-action-danger {
    border-color: rgba(248, 113, 113, 0.8);
    background: linear-gradient(140deg, rgba(185, 28, 28, 0.8), rgba(127, 29, 29, 0.94));
}

.pos-symphony-order-actions {
    margin-top: 0.8rem;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.45rem;
}

.pos-symphony-order-actions .btn-primary,
.pos-symphony-order-actions .btn-secondary {
    min-height: 2.65rem;
    font-weight: 800;
    letter-spacing: 0.01em;
}

.pos-outlet-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(16rem, 1fr));
    gap: 0.85rem;
}

.pos-outlet-card-dual {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    padding: 1rem;
    border-radius: 12px;
    border: 1px solid rgba(148, 163, 184, 0.35);
    background: #fff;
}

.pos-outlet-actions {
    display: grid;
    gap: 0.45rem;
    margin-top: 0.55rem;
}

.pos-outlet-action-main,
.pos-outlet-action-sub {
    text-align: center;
    min-height: 2.5rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
}

.pos-admin-notice {
    margin-bottom: 1rem;
    padding: 0.75rem 0.9rem;
    border-radius: 10px;
    border: 1px solid rgba(59, 130, 246, 0.35);
    background: rgba(239, 246, 255, 0.9);
}

/* Terminal salón — workflow salonero (tabletas) */
.pos-serve {
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
    min-height: calc(100dvh - 5rem);
    max-width: 52rem;
    margin: 0 auto;
    padding-bottom: 0;
}

.pos-serve-tablet {
    flex: 1;
}

.pos-serve-topbar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 0.75rem;
    padding: 0.55rem 0.75rem;
    border-radius: 10px;
    border: 1px solid rgba(148, 163, 184, 0.35);
    background: #fff;
}

.pos-serve-topbar-main {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex-wrap: wrap;
}

.pos-serve-back {
    text-decoration: none;
    font-weight: 700;
    border: none;
    background: transparent;
    cursor: pointer;
    font-size: 1.25rem;
    line-height: 1;
    padding: 0.25rem 0.45rem;
    color: #1d4ed8;
}

.pos-serve-outlet {
    font-size: 1.05rem;
}

.pos-serve-stat {
    color: #64748b;
    font-size: 0.88rem;
}

.pos-serve-topbar-actions {
    display: flex;
    gap: 0.45rem;
    flex-wrap: wrap;
}

.pos-serve-btn {
    border-radius: 8px;
    border: 1px solid rgba(100, 116, 139, 0.45);
    background: #f8fafc;
    min-height: 2.4rem;
    padding: 0.45rem 0.75rem;
    font-weight: 700;
    cursor: pointer;
}

.pos-serve-btn-new {
    background: #1d4ed8;
    border-color: #1d4ed8;
    color: #fff;
}

.pos-serve-btn-link {
    text-decoration: none;
    display: inline-flex;
    align-items: center;
}

.pos-serve-flash {
    margin: 0;
}

.pos-serve-checks-strip {
    display: flex;
    gap: 0.45rem;
    overflow-x: auto;
    padding-bottom: 0.25rem;
}

.pos-serve-check-card {
    min-width: 8.5rem;
    border-radius: 10px;
    border: 1px solid rgba(148, 163, 184, 0.45);
    background: #fff;
    padding: 0.55rem 0.65rem;
    text-align: left;
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    cursor: pointer;
}

.pos-serve-check-card.active {
    border-color: #2563eb;
    box-shadow: 0 0 0 1px rgba(37, 99, 235, 0.35);
}

.pos-serve-check-code {
    font-weight: 800;
}

.pos-serve-check-meta,
.pos-serve-check-time {
    font-size: 0.75rem;
    color: #64748b;
}

.pos-serve-check-total {
    font-weight: 700;
}

.pos-serve-tables {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
}

.pos-serve-table {
    min-width: 3.2rem;
    min-height: 2.6rem;
    border-radius: 8px;
    border: 1px solid rgba(148, 163, 184, 0.45);
    background: #ecfdf5;
    font-weight: 700;
    cursor: pointer;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 0.25rem 0.45rem;
}

.pos-serve-table.busy {
    background: #fef3c7;
}

.pos-serve-table.active {
    background: #dbeafe;
    border-color: #2563eb;
}

.pos-serve-workspace {
    display: grid;
    grid-template-columns: minmax(14rem, 18rem) minmax(0, 1fr) minmax(14rem, 18rem);
    gap: 0.65rem;
    flex: 1;
    min-height: 0;
}

.pos-serve-ticket,
.pos-serve-menu,
.pos-serve-guest {
    border-radius: 10px;
    border: 1px solid rgba(148, 163, 184, 0.35);
    background: #fff;
    padding: 0.65rem;
    display: flex;
    flex-direction: column;
    min-height: 24rem;
}

.pos-serve-panel-head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 0.55rem;
}

.pos-serve-panel-head h2 {
    margin: 0;
    font-size: 1rem;
}

.pos-serve-check-id {
    font-size: 0.82rem;
    color: #64748b;
}

.pos-serve-lines {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    overflow-y: auto;
    flex: 1;
}

.pos-serve-lines li {
    display: grid;
    grid-template-columns: auto 1fr auto auto;
    gap: 0.35rem;
    align-items: center;
    font-size: 0.9rem;
}

.pos-serve-line-remove {
    padding: 0.15rem 0.35rem;
    font-size: 0.85rem;
    line-height: 1;
    color: #b91c1c;
}

.pos-serve-line-qty {
    font-weight: 700;
}

.pos-serve-totals {
    margin-top: auto;
    border-top: 1px solid rgba(148, 163, 184, 0.35);
    padding-top: 0.55rem;
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    font-size: 0.88rem;
}

.pos-serve-totals div {
    display: flex;
    justify-content: space-between;
}

.pos-serve-total-row {
    font-size: 1rem;
    font-weight: 800;
}

.pos-serve-qty {
    display: flex;
    gap: 0.25rem;
}

.pos-serve-qty-btn {
    width: 2rem;
    height: 2rem;
    border-radius: 999px;
    border: 1px solid rgba(148, 163, 184, 0.45);
    background: #f8fafc;
    font-weight: 700;
    cursor: pointer;
}

.pos-serve-qty-btn.active {
    background: #1d4ed8;
    border-color: #1d4ed8;
    color: #fff;
}

.pos-serve-categories {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    margin-bottom: 0.55rem;
}

.pos-serve-cat {
    border-radius: 999px;
    border: 1px solid rgba(148, 163, 184, 0.45);
    background: #f8fafc;
    padding: 0.35rem 0.65rem;
    font-weight: 600;
    cursor: pointer;
}

.pos-serve-cat.active {
    background: #1d4ed8;
    border-color: #1d4ed8;
    color: #fff;
}

.pos-serve-sections {
    flex: 1;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.pos-serve-subfam {
    margin: 0.55rem 0 0.15rem;
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #64748b;
    border-bottom: 1px solid rgba(148, 163, 184, 0.3);
    padding-bottom: 0.2rem;
}

.pos-serve-sections .pos-serve-subfam:first-child {
    margin-top: 0;
}

.pos-serve-menu-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(7.5rem, 1fr));
    gap: 0.4rem;
}

.pos-serve-menu-item {
    min-height: 4.2rem;
    border-radius: 8px;
    border: 1px solid rgba(100, 116, 139, 0.45);
    background: #f8fafc;
    padding: 0.45rem;
    text-align: left;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    font-weight: 600;
    cursor: pointer;
}

.pos-serve-menu-item:disabled {
    opacity: 0.45;
    cursor: not-allowed;
}

.pos-serve-guest-search {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 0.35rem;
    margin-bottom: 0.55rem;
}

.pos-serve-guest-list {
    list-style: none;
    margin: 0 0 0.55rem;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    max-height: 10rem;
    overflow-y: auto;
}

.pos-serve-guest-pick {
    width: 100%;
    text-align: left;
    border-radius: 8px;
    border: 1px solid rgba(148, 163, 184, 0.35);
    background: #f8fafc;
    padding: 0.45rem 0.55rem;
    cursor: pointer;
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
}

.pos-serve-guest-selected {
    margin-bottom: 0.55rem;
    padding: 0.45rem 0.55rem;
    border-radius: 8px;
    background: #eff6ff;
    border: 1px solid rgba(59, 130, 246, 0.35);
    font-size: 0.9rem;
}

.pos-serve-btn-room {
    width: 100%;
    background: #0f766e;
    border-color: #0f766e;
    color: #fff;
    min-height: 2.8rem;
    margin-top: auto;
}

.pos-serve-btn-room:disabled {
    opacity: 0.5;
}

.pos-serve-room-block {
    margin: 0 0 0.45rem;
    font-size: 0.86rem;
    line-height: 1.35;
}

.pos-serve-pay-divider {
    margin: 0.65rem 0 0.45rem;
    text-align: center;
    font-size: 0.82rem;
    color: #64748b;
}

.pos-serve-pay-row {
    display: grid;
    grid-template-columns: 1fr 5.5rem;
    gap: 0.35rem;
    margin-bottom: 0.45rem;
}

.pos-serve-empty-hint {
    font-size: 0.85rem;
    margin: 0.35rem 0 0.55rem;
}

.pos-serve-btn-pay {
    width: 100%;
    background: #1d4ed8;
    border-color: #1d4ed8;
    color: #fff;
    min-height: 2.5rem;
}

.pos-serve-topbar-title {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
    min-width: 0;
}

.pos-serve-topbar-check {
    font-size: 0.88rem;
    color: #475569;
}

.pos-serve-btn-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 8px;
    border: 1px solid rgba(148, 163, 184, 0.45);
    background: #fff;
    text-decoration: none;
    font-size: 1.1rem;
}

.pos-serve-overflow-notice {
    margin: 0;
    padding: 0.45rem 0.65rem;
    border-radius: 8px;
    background: #fff7ed;
    border: 1px solid #fdba74;
    font-size: 0.88rem;
}

.pos-serve-tab-panel {
    flex: 1;
    min-height: 0;
    overflow-y: auto;
}

.pos-serve-section-title {
    margin: 0 0 0.35rem;
    font-size: 1.05rem;
}

.pos-serve-hint {
    font-size: 0.88rem;
    margin: 0 0 0.65rem;
}

.pos-serve-tables-main {
    grid-template-columns: repeat(auto-fill, minmax(4.5rem, 1fr));
    gap: 0.5rem;
}

.pos-serve-table-code {
    font-size: 1.05rem;
    font-weight: 800;
}

.pos-serve-recent-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(6.5rem, 1fr));
    gap: 0.4rem;
}

.pos-serve-recent-card {
    border-radius: 8px;
    border: 1px solid rgba(148, 163, 184, 0.4);
    background: #fff;
    padding: 0.45rem 0.55rem;
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    cursor: pointer;
    text-align: left;
}

.pos-serve-recent-card.active {
    border-color: #2563eb;
    background: #eff6ff;
}

.pos-serve-transfer {
    margin-top: 0.75rem;
    font-size: 0.9rem;
}

.pos-serve-empty-state {
    text-align: center;
    padding: 2rem 1rem;
}

.pos-serve-menu-layout {
    display: grid;
    grid-template-columns: minmax(11rem, 16rem) minmax(0, 1fr);
    gap: 0.65rem;
}

.pos-serve-ticket-compact {
    border-radius: 10px;
    border: 1px solid rgba(148, 163, 184, 0.35);
    background: #fff;
    padding: 0.55rem;
    display: flex;
    flex-direction: column;
    max-height: 70vh;
}

.pos-serve-ticket-head {
    display: flex;
    flex-direction: column;
    margin-bottom: 0.45rem;
    font-size: 0.88rem;
}

.pos-serve-go-pay {
    margin-top: 0.5rem;
    width: 100%;
}

.pos-serve-menu-area {
    display: flex;
    flex-direction: column;
    min-height: 0;
}

.pos-serve-pay-panel {
    max-width: 28rem;
    margin: 0 auto;
}

.pos-serve-pay-hero {
    text-align: center;
    padding: 1rem;
    border-radius: 12px;
    background: linear-gradient(135deg, #eff6ff, #f8fafc);
    border: 1px solid rgba(59, 130, 246, 0.25);
    margin-bottom: 1rem;
}

.pos-serve-pay-total {
    display: block;
    font-size: 2.25rem;
    line-height: 1.1;
    margin: 0.25rem 0;
}

.pos-serve-split-block,
.pos-serve-pay-block {
    margin-bottom: 1rem;
    padding: 0.75rem;
    border-radius: 10px;
    border: 1px solid rgba(148, 163, 184, 0.35);
    background: #fff;
}

.pos-serve-split-block h3,
.pos-serve-pay-block h3 {
    margin: 0 0 0.35rem;
    font-size: 1rem;
}

.pos-serve-split-counts {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    margin: 0.5rem 0;
}

.pos-serve-split-btn {
    min-width: 2.75rem;
    min-height: 2.75rem;
    border-radius: 999px;
    border: 1px solid rgba(148, 163, 184, 0.45);
    background: #f8fafc;
    font-weight: 700;
    font-size: 1rem;
    cursor: pointer;
}

.pos-serve-split-btn.active {
    background: #1d4ed8;
    border-color: #1d4ed8;
    color: #fff;
}

.pos-serve-split-action {
    width: 100%;
    min-height: 2.75rem;
    margin-top: 0.35rem;
}

.pos-serve-split-advanced {
    margin-top: 0.65rem;
    font-size: 0.9rem;
}

.pos-serve-split-advanced input {
    width: 100%;
    margin: 0.45rem 0;
}

.pos-serve-pay-methods {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0.35rem;
    margin: 0.5rem 0 0.75rem;
}

.pos-serve-pay-method {
    min-height: 2.75rem;
    border-radius: 8px;
    border: 1px solid rgba(148, 163, 184, 0.45);
    background: #f8fafc;
    font-weight: 600;
    cursor: pointer;
}

.pos-serve-pay-method.active {
    background: #1d4ed8;
    border-color: #1d4ed8;
    color: #fff;
}

.pos-serve-btn-pay-main {
    width: 100%;
    min-height: 3.25rem;
    font-size: 1.05rem;
    font-weight: 700;
}

.pos-serve-bottom-nav {
    position: sticky;
    bottom: 0;
    z-index: 10;
    flex-shrink: 0;
    margin-top: auto;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    background: #fff;
    border-top: 1px solid rgba(148, 163, 184, 0.45);
    padding: 0.35rem 0 calc(0.35rem + env(safe-area-inset-bottom));
    box-shadow: 0 -4px 16px rgba(15, 23, 42, 0.06);
}

.pos-serve-nav-btn {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.15rem;
    min-height: 3.25rem;
    border: none;
    background: transparent;
    font-weight: 600;
    font-size: 0.82rem;
    color: #64748b;
    cursor: pointer;
}

.pos-serve-nav-btn.active {
    color: #1d4ed8;
}

.pos-serve-nav-btn:disabled {
    opacity: 0.35;
    cursor: not-allowed;
}

.pos-serve-nav-icon {
    font-size: 1.15rem;
    line-height: 1;
}

.pos-outlet-footnote {
    margin: 0.5rem 0 0;
    font-size: 0.82rem;
}

.pos-checks-serve-link {
    margin: 0.75rem 0;
}

.pos-checks-bottom-nav {
    grid-template-columns: repeat(4, 1fr);
}

.supply-recipe-row-actions {
    display: flex;
    gap: 0.35rem;
    white-space: nowrap;
}

.pos-serve-room-primary {
    border: 2px solid #1d4ed8;
    border-radius: 12px;
    background: #eff6ff;
    padding: 0.85rem;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.pos-serve-room-primary > h3 {
    margin: 0;
    color: #1d4ed8;
}

.pos-checks-outlet-select {
    min-height: 2.4rem;
    border-radius: 8px;
    border: 1px solid rgba(100, 116, 139, 0.45);
    background: #f8fafc;
    font-weight: 700;
    padding: 0.35rem 0.6rem;
    max-width: 16rem;
}

.pos-checks-quick-row {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(8.5rem, 1fr));
    gap: 0.6rem;
}

.pos-checks-card-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(10rem, 1fr));
    gap: 0.6rem;
    margin-top: 0.5rem;
}

.pos-checks-tile {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    align-items: flex-start;
    text-align: left;
    border-radius: 10px;
    border: 1px solid rgba(148, 163, 184, 0.45);
    background: #fff;
    padding: 0.6rem 0.7rem;
    cursor: pointer;
    min-height: 4.5rem;
}

.pos-checks-tile.active {
    border-color: #2563eb;
    box-shadow: 0 0 0 1px rgba(37, 99, 235, 0.35);
}

.pos-checks-tile--closed {
    cursor: default;
    background: #f8fafc;
}

.pos-checks-tile-num {
    font-weight: 800;
    font-size: 0.95rem;
}

.pos-checks-tile-meta {
    font-size: 0.78rem;
    color: #64748b;
}

.pos-checks-tile-total {
    font-size: 1.05rem;
    margin-top: auto;
}

.pos-checks-tile-action {
    margin-top: 0.4rem;
    width: 100%;
}

.pos-checks-detail-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 0.5rem;
}

.pos-checks-reopen-controls {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.75rem;
    margin-top: 0.5rem;
}

.pos-checks-reopen-controls .fd-dash-search-input {
    flex: 1 1 16rem;
}

.pos-checks-advanced {
    margin-top: 1.25rem;
    border-top: 1px solid rgba(148, 163, 184, 0.35);
    padding-top: 0.5rem;
}

.pos-checks-advanced > summary {
    cursor: pointer;
    font-weight: 700;
    color: #475569;
}

.pos-serve-table-picker {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(4.75rem, 1fr));
    gap: 0.5rem;
    margin-bottom: 0.75rem;
}

.pos-serve-table-pick {
    min-height: 4.5rem;
    border-radius: 10px;
    border: 2px solid rgba(148, 163, 184, 0.4);
    background: #fff;
    padding: 0.4rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.15rem;
    cursor: pointer;
    text-align: center;
}

.pos-serve-table-pick.free {
    border-color: rgba(148, 163, 184, 0.45);
}

.pos-serve-table-pick.free.picked {
    border-color: #2563eb;
    background: #eff6ff;
    box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.2);
}

.pos-serve-table-pick.busy {
    background: #fef3c7;
    border-color: #f59e0b;
}

.pos-serve-table-pick.busy.active {
    border-color: #2563eb;
    background: #dbeafe;
}

.pos-serve-table-num {
    font-size: 1.35rem;
    font-weight: 800;
    line-height: 1;
}

.pos-serve-table-guest {
    font-size: 0.72rem;
    font-weight: 600;
    color: #334155;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.pos-serve-takeout-btn {
    width: 100%;
    min-height: 2.75rem;
    border-radius: 8px;
    border: 1px dashed rgba(100, 116, 139, 0.55);
    background: #f8fafc;
    font-weight: 600;
    cursor: pointer;
    margin-bottom: 0.5rem;
}

.pos-serve-takeout-btn.active {
    border-color: #2563eb;
    background: #eff6ff;
    color: #1d4ed8;
}

.pos-serve-open-form {
    margin-top: 0.75rem;
    padding: 1rem;
    border-radius: 12px;
    border: 1px solid rgba(59, 130, 246, 0.35);
    background: #f8fafc;
}

.pos-serve-open-title {
    margin: 0 0 0.65rem;
    font-size: 1.05rem;
}

.pos-serve-field-label {
    display: block;
    font-size: 0.88rem;
    font-weight: 600;
    margin-bottom: 0.35rem;
}

.pos-serve-guest-input {
    width: 100%;
    min-height: 2.75rem;
    font-size: 1rem;
    margin-bottom: 0.65rem;
}

.pos-serve-open-btn {
    width: 100%;
    min-height: 3rem;
    font-size: 1rem;
    font-weight: 700;
}

.pos-serve-guest-edit {
    margin-bottom: 0.55rem;
}

.pos-serve-recent-table {
    font-weight: 700;
    font-size: 0.88rem;
}

.pos-serve-recent-guest {
    font-size: 0.8rem;
    color: #475569;
}

.pos-serve-tab-panel {
    flex: 1;
    min-height: 0;
    overflow-y: auto;
    padding-bottom: 0.5rem;
}

@media (max-width: 900px) {
    .pos-serve-menu-layout {
        grid-template-columns: 1fr;
    }

    .pos-serve-ticket-compact {
        max-height: 14rem;
    }
}

@media (max-width: 1100px) {
    .pos-serve-workspace {
        grid-template-columns: 1fr;
    }

    .pos-serve-ticket,
    .pos-serve-menu,
    .pos-serve-guest {
        min-height: auto;
    }

    .pos-serve-menu-grid {
        max-height: 22rem;
    }
}

@media (max-width: 640px) {
    .pos-serve-topbar {
        flex-direction: column;
        align-items: stretch;
    }

    .pos-serve-menu-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.pos-checks-card {
    border-radius: 12px;
    box-shadow: 0 4px 18px rgba(15, 23, 42, 0.08);
    border: 1px solid rgba(148, 163, 184, 0.28);
}

.pos-checks-detail-card {
    border: 1px solid rgba(20, 184, 166, 0.25);
    box-shadow: 0 0 0 1px rgba(20, 184, 166, 0.08), 0 8px 20px rgba(20, 184, 166, 0.09);
}

.pos-checks-close-actions {
    position: sticky;
    bottom: 0.5rem;
    display: flex;
    justify-content: flex-end;
}

.pos-checks-close-actions .btn-primary {
    min-width: 11rem;
    min-height: 2.8rem;
}

.pos-checks-open-card .btn-primary,
.pos-checks-shift-card .btn-primary,
.pos-checks-shift-card .btn-secondary,
.pos-checks-detail-card .btn-secondary {
    min-height: 2.6rem;
    font-weight: 700;
}

.pos-checks-list-card .btn-sm {
    min-height: 2.2rem;
    padding: 0.35rem 0.75rem;
}

.pos-hero-strip {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.55rem;
    border: 1px solid rgba(20, 184, 166, 0.22);
    background: linear-gradient(135deg, rgba(15, 23, 42, 0.96), rgba(30, 41, 59, 0.94));
    color: #f8fafc;
}

.pos-hero-item {
    padding: 0.75rem;
    border-radius: 10px;
    background: rgba(15, 23, 42, 0.35);
    border: 1px solid rgba(148, 163, 184, 0.2);
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
}

.pos-hero-item strong {
    font-size: 1.02rem;
    letter-spacing: 0.01em;
}

.pos-hero-label {
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: rgba(226, 232, 240, 0.85);
    font-weight: 700;
}

.pos-hero-item--total {
    background: linear-gradient(120deg, rgba(20, 184, 166, 0.35), rgba(37, 99, 235, 0.35));
    border-color: rgba(45, 212, 191, 0.45);
}

.pos-terminal-panel {
    border: 1px solid rgba(148, 163, 184, 0.24);
    box-shadow: 0 4px 16px rgba(15, 23, 42, 0.06);
}

.pos-terminal-cart {
    border-color: rgba(45, 212, 191, 0.28);
}

.pos-terminal-guest {
    border-color: rgba(59, 130, 246, 0.26);
}

.pos-selected-guest {
    margin-top: 0.75rem;
    padding: 0.7rem;
    border-radius: 10px;
    background: linear-gradient(120deg, rgba(20, 184, 166, 0.14), rgba(37, 99, 235, 0.12));
    border: 1px solid rgba(45, 212, 191, 0.36);
}

.pos-product-chip {
    border-width: 1px;
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.05);
    transition: transform 0.1s ease, box-shadow 0.1s ease, border-color 0.1s ease;
}

.pos-product-chip:hover,
.pos-product-chip:focus-visible {
    transform: translateY(-1px);
    border-color: rgba(20, 184, 166, 0.7);
    box-shadow: 0 8px 16px rgba(20, 184, 166, 0.15);
}

.pos-post-btn {
    width: 100%;
    margin-top: 0.75rem;
    min-height: 3rem;
    font-size: 1rem;
    font-weight: 800;
    letter-spacing: 0.01em;
}

@media (max-width: 900px) {
    .pos-terminal-grid,
    .pos-terminal-enterprise {
        grid-template-columns: 1fr;
    }

    .pos-product-grid {
        grid-template-columns: repeat(auto-fill, minmax(8.5rem, 1fr));
    }

    .pos-product-chip {
        min-height: 4.4rem;
        font-size: 0.9rem;
        padding: 0.75rem 0.8rem;
    }

    .pos-terminal-panel {
        padding: 0.85rem 0.9rem;
    }

    .pos-terminal-panel-head h2 {
        font-size: 1rem;
    }

    .pos-checks-close-actions {
        justify-content: stretch;
    }

    .pos-checks-close-actions .btn-primary {
        width: 100%;
    }

    .pos-hero-strip {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .pos-checks-sticky-panel {
        position: static;
    }

    .pos-command-toolbar {
        grid-template-columns: 1fr;
    }

    .pos-symphony-quick-actions {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 640px) {
    .pos-outlet-grid {
        grid-template-columns: 1fr;
    }

    .pos-manual-row {
        display: grid;
        grid-template-columns: 1fr 1fr;
    }

    .pos-manual-row input[type="number"] {
        width: 100%;
    }

    .pos-manual-row .btn-secondary {
        grid-column: 1 / -1;
        min-height: 2.5rem;
    }

    .pos-category-chips {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 0.35rem;
    }

    .pos-category-chips .res-filter-chip {
        min-height: 2.3rem;
        font-size: 0.86rem;
    }

    .pos-floor-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .pos-command-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .pos-symphony-order-actions {
        grid-template-columns: 1fr;
    }
}

@media (min-width: 1100px) {
    .pos-checks-workspace {
        grid-template-columns: 1.15fr 0.95fr;
        align-items: start;
    }
}

.sim-form textarea {
    width: 100%;
    min-height: 4rem;
    padding: 0.5rem 0.65rem;
    border-radius: 8px;
    border: 1px solid var(--holos-border);
    background: var(--holos-bg);
    color: var(--holos-text);
    font-family: inherit;
    resize: vertical;
}

.rate-simulator-result {
    min-height: 0;
    padding: 0.75rem 0.85rem;
}

.rate-simulator-headline {
    margin: 0 0 1rem;
    font-size: 1rem;
    color: var(--holos-muted);
}

.rate-simulator-headline strong {
    color: var(--holos-text);
}

.rate-simulator-nights .num-col {
    text-align: right;
    white-space: nowrap;
}

.rate-simulator-subhead {
    margin: 1.25rem 0 0.5rem;
    font-size: 0.95rem;
}

.rate-simulator-extras {
    margin: 0 0 1rem;
    padding-left: 1.25rem;
    color: var(--holos-muted);
}

.rate-simulator-totals {
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid var(--holos-border, rgba(255, 255, 255, 0.12));
}

.rate-simulator-totals .total-row dd,
.rate-simulator-totals .total-row dt {
    font-size: 1.1rem;
    color: var(--holos-accent);
}

@media (max-width: 900px) {
    .rate-simulator-layout {
        grid-template-columns: 1fr;
    }

    .rate-simulator-top,
    .rate-simulator-workspace {
        grid-template-columns: 1fr;
    }

    .rate-simulator-result-grid {
        grid-template-columns: 1fr;
    }
}

/* Tarjeta ancha — perfiles de huésped */
.guest-profile-page,
.guest-profile-card {
    width: 100%;
    max-width: none;
}

.guest-profile-page {
    padding: 1.25rem 1.5rem;
}

.guest-search-bar label {
    display: block;
    margin-bottom: 0.35rem;
    color: var(--holos-muted);
    font-size: 0.9rem;
}

.guest-search-bar-controls {
    display: flex;
    gap: 0.65rem;
    align-items: stretch;
}

.guest-search-bar-controls input {
    flex: 1;
    min-width: 0;
    padding: 0.55rem 0.75rem;
    border-radius: 8px;
    border: 1px solid var(--holos-border);
    background: var(--holos-bg);
    color: var(--holos-text);
    font-size: 1rem;
}

.guest-search-bar-controls .btn-primary {
    flex-shrink: 0;
    min-width: 6rem;
    min-height: 2.75rem;
}

.guest-result-count {
    margin: 1rem 0 0.5rem;
}

.guest-result-grid {
    display: none;
}

.guest-result-table {
    margin-top: 0.5rem;
}

.guest-result-card {
    display: none;
}

.guest-profile-layout {
    display: grid;
    grid-template-columns: 1fr 1fr minmax(200px, 260px);
    grid-template-rows: auto auto;
    gap: 1.25rem 1.5rem;
    align-items: start;
}

.guest-profile-panel {
    background: var(--holos-bg);
    border: 1px solid var(--holos-border);
    border-radius: 10px;
    padding: 1rem 1.15rem;
}

.guest-profile-panel h2 {
    margin: 0 0 0.75rem;
    font-size: 1rem;
    font-weight: 600;
    color: var(--holos-accent);
}

.guest-profile-panel-notes {
    grid-column: 1 / 3;
}

.guest-profile-panel-id-docs {
    grid-column: 1 / -1;
}

.guest-profile-panel-id-docs .guest-id-docs-panel {
    margin: 0;
}

.guest-id-docs-head h2 {
    margin: 0 0 0.35rem;
    font-size: 1rem;
    font-weight: 600;
    color: var(--holos-accent);
}

.guest-id-docs-capture {
    margin-top: 1rem;
    padding: 1rem;
    border-radius: 10px;
    background: var(--holos-surface);
    border: 1px solid var(--holos-border);
}

.guest-id-docs-type-row {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    margin-bottom: 0.85rem;
    max-width: 280px;
}

.holos-webcam-panel {
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
}

.holos-webcam-host {
    min-height: 220px;
    border-radius: 10px;
    background: #0f172a;
    border: 1px dashed var(--holos-border);
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
}

.holos-webcam-idle {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.45rem;
    padding: 0.85rem 1rem;
    border: 1px dashed var(--holos-border);
    border-radius: 10px;
    background: var(--holos-surface-muted, rgba(15, 23, 42, 0.04));
    max-width: 420px;
}

.holos-webcam-idle-label {
    margin: 0;
    font-size: 0.82rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--holos-muted);
}

.holos-webcam-host.is-live {
    border-style: solid;
    border-color: var(--holos-accent);
}

.holos-webcam-video {
    width: 100%;
    max-height: 360px;
    object-fit: contain;
    display: block;
    background: #000;
}

.holos-webcam-preview img {
    width: 100%;
    max-height: 360px;
    object-fit: contain;
    border-radius: 10px;
    border: 1px solid var(--holos-border);
    background: #000;
}

.holos-webcam-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    align-items: center;
}

.guest-id-docs-upload-fallback {
    margin-top: 0.75rem;
    font-size: 0.9rem;
}

.guest-id-docs-grid {
    list-style: none;
    margin: 1rem 0 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 0.75rem;
}

.guest-id-doc-card {
    border: 1px solid var(--holos-border);
    border-radius: 10px;
    padding: 0.75rem;
    cursor: pointer;
    background: var(--holos-bg);
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    transition: border-color 0.15s ease;
}

.guest-id-doc-card:hover,
.guest-id-doc-card.is-active {
    border-color: var(--holos-accent);
}

.guest-id-doc-type {
    font-weight: 600;
    font-size: 0.9rem;
}

.guest-id-doc-badge {
    align-self: flex-start;
    font-size: 0.7rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    padding: 0.12rem 0.45rem;
    border-radius: 999px;
    background: rgba(34, 197, 94, 0.15);
    color: #15803d;
}

.guest-id-doc-name {
    font-size: 0.82rem;
    word-break: break-all;
}

.guest-id-doc-lightbox-inner {
    max-width: min(920px, 96vw);
    max-height: 92vh;
    background: var(--holos-bg);
    border-radius: 12px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

.guest-id-doc-preview-body {
    padding: 0.75rem;
    overflow: auto;
    text-align: center;
}

.guest-id-doc-preview-body img {
    max-width: 100%;
    max-height: 75vh;
    object-fit: contain;
}

.guest-id-read-confirm {
    margin-bottom: 1rem;
    padding: 1rem;
    border: 1px solid var(--holos-accent);
    border-radius: 10px;
    background: rgba(61, 214, 198, 0.06);
}

.guest-id-read-confirm-head h3 {
    margin: 0 0 0.35rem;
    font-size: 1rem;
}

.guest-id-read-warnings {
    list-style: none;
    margin: 0.5rem 0 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.guest-id-read-preview {
    margin: 0.85rem 0;
    text-align: center;
}

.guest-id-read-preview img {
    max-width: 100%;
    max-height: 220px;
    object-fit: contain;
    border-radius: 8px;
    border: 1px solid var(--holos-border);
}

.guest-id-read-fields {
    margin-top: 0.5rem;
}

.guest-id-read-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-top: 0.85rem;
}

.fd-id-captured-badge {
    display: inline-flex;
    align-items: center;
    padding: 0.12rem 0.45rem;
    border-radius: 999px;
    font-size: 0.68rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    color: #0f766e;
    background: rgba(61, 214, 198, 0.18);
    border: 1px solid rgba(61, 214, 198, 0.45);
    white-space: nowrap;
}

.guest-id-docs-head-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
}

.guest-id-docs-panel-compact .guest-id-docs-head h2 {
    margin: 0;
    font-size: 1rem;
}

.guest-id-docs-panel-compact .guest-id-docs-capture {
    margin-bottom: 0.5rem;
}

.guest-id-docs-history-compact {
    margin-top: 0.5rem;
}

.guest-id-docs-history-compact summary {
    cursor: pointer;
    color: var(--holos-muted);
    font-size: 0.85rem;
}

.fd-identity-capture-panel {
    margin-bottom: 0.75rem;
}

.fd-identity-capture-panel .guest-id-docs-panel {
    margin: 0;
}

.fd-ops-item-main .fd-id-captured-badge {
    margin-left: 0.35rem;
    vertical-align: middle;
}

.fd-registration-badge {
    display: inline-flex;
    align-items: center;
    padding: 0.12rem 0.45rem;
    border-radius: 999px;
    font-size: 0.68rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    white-space: nowrap;
    margin-left: 0.35rem;
    vertical-align: middle;
}

.fd-registration-pending,
.fd-registration-submitted {
    color: #92400e;
    background: rgba(251, 191, 36, 0.18);
    border: 1px solid rgba(251, 191, 36, 0.45);
}

.fd-registration-completed {
    color: #0f766e;
    background: rgba(61, 214, 198, 0.18);
    border: 1px solid rgba(61, 214, 198, 0.45);
}

.fd-registration-expired,
.fd-registration-cancelled {
    color: #991b1b;
    background: rgba(248, 113, 113, 0.15);
    border: 1px solid rgba(248, 113, 113, 0.4);
}

.guest-profile-aside {
    grid-column: 3;
    grid-row: 1 / 3;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    background: var(--holos-bg);
    border: 1px solid var(--holos-border);
    border-radius: 10px;
    padding: 1rem 1.15rem;
    position: sticky;
    top: 1rem;
}

.guest-new-reservation-link {
    display: block;
    text-align: center;
    text-decoration: none;
    padding: 0.55rem 1rem;
    border-radius: 6px;
}

.guest-profile-card {
    padding: 1.5rem;
}

.guest-profile-panel .sim-row input,
.guest-profile-panel .sim-row textarea,
.guest-profile-panel .country-picker {
    width: 100%;
    max-width: none;
    box-sizing: border-box;
}

/* Tarjeta ancha — nueva reserva */
.reservation-card {
    width: 100%;
    max-width: none;
    padding: 1.5rem;
}

.reservation-card-nights {
    background: rgba(61, 214, 198, 0.15);
    color: var(--holos-accent);
    padding: 0.25rem 0.65rem;
    border-radius: 6px;
    font-size: 0.9rem;
    font-weight: 600;
}

.reservation-card-layout {
    display: grid;
    grid-template-columns: 1fr 1fr minmax(220px, 280px);
    grid-template-rows: auto auto;
    gap: 1.25rem 1.5rem;
    align-items: start;
}

.reservation-panel {
    background: var(--holos-bg);
    border: 1px solid var(--holos-border);
    border-radius: 10px;
    padding: 1rem 1.15rem;
}

.reservation-panel h2 {
    margin: 0 0 0.75rem;
    font-size: 1rem;
    font-weight: 600;
    color: var(--holos-accent);
}

.reservation-panel .field-hint {
    font-size: 0.8rem;
    margin: 0.25rem 0 0;
}

.panel-hint {
    margin: -0.35rem 0 0.75rem;
    font-size: 0.85rem;
}

.reservation-panel-notes {
    grid-column: 1 / 3;
}

.reservation-panel-commercial {
    grid-column: 1 / 3;
}

.commercial-readonly {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(12rem, 1fr));
    gap: 0.75rem 1.25rem;
    margin: 0;
}

.commercial-readonly > div {
    margin: 0;
}

.commercial-readonly dt {
    font-size: 0.8rem;
    color: var(--holos-muted);
    margin-bottom: 0.2rem;
}

.commercial-readonly dd {
    margin: 0;
    font-weight: 500;
}

.reservation-aside {
    grid-column: 3;
    grid-row: 1 / 3;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    background: var(--holos-bg);
    border: 1px solid var(--holos-border);
    border-radius: 10px;
    padding: 1rem 1.15rem;
    position: sticky;
    top: 1rem;
}

.reservation-aside h2 {
    margin: 0;
    font-size: 1rem;
    font-weight: 600;
    color: var(--holos-accent);
}

.res-field-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0 1rem;
}

.res-field-grid .span-full {
    grid-column: 1 / -1;
}

.reservation-panel .sim-row,
.reservation-aside .sim-row {
    margin-bottom: 0.65rem;
}

.reservation-panel .sim-row input,
.reservation-panel .sim-row select,
.reservation-panel .sim-row textarea {
    width: 100%;
    box-sizing: border-box;
}

.reservation-panel .guest-search-row {
    max-width: none;
}

.reservation-panel .guest-search-results {
    margin-bottom: 0.75rem;
}

.avail-compact-list {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    flex: 1;
    min-height: 0;
    overflow-y: auto;
    max-height: 14rem;
}

.avail-compact-item {
    padding: 0.45rem 0.5rem;
    background: var(--holos-surface);
    border-radius: 6px;
    border: 1px solid var(--holos-border);
}

.avail-compact-head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-weight: 600;
    font-size: 0.9rem;
}

.btn-confirm-reservation {
    width: 100%;
    margin-top: auto;
    padding: 0.75rem 1rem;
    font-size: 1rem;
    font-weight: 600;
}

/* —— Stepper de fechas (+/- rápido, estilo Opera) —— */
.date-stepper {
    display: flex;
    align-items: stretch;
    gap: 0.25rem;
}

.date-stepper .date-text {
    flex: 1;
    min-width: 0;
    text-align: center;
    font-variant-numeric: tabular-nums;
}

.date-step-btn {
    flex: 0 0 auto;
    width: 2rem;
    border: 1px solid var(--border, #d4d9e2);
    background: #f6f8fb;
    border-radius: 0.4rem;
    font-size: 1.1rem;
    font-weight: 700;
    line-height: 1;
    color: #334155;
    cursor: pointer;
    user-select: none;
    transition: background 0.12s ease, border-color 0.12s ease;
}

.date-step-btn:hover {
    background: #e7edf6;
    border-color: #b9c3d4;
}

.date-step-btn:active {
    background: #d8e2f1;
}

/* —— Resumen de precio de la estadía (antes de confirmar) —— */
.reservation-quote {
    margin-top: 1rem;
    padding: 0.85rem 1rem;
    border: 1px solid var(--border, #d4d9e2);
    border-radius: 0.6rem;
    background: #f8fafc;
}

.reservation-quote-row {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    font-size: 0.9rem;
    color: #475569;
    padding: 0.15rem 0;
}

.reservation-quote-total {
    margin-top: 0.4rem;
    padding-top: 0.5rem;
    border-top: 1px dashed #cbd5e1;
    font-size: 1.05rem;
    font-weight: 700;
    color: #0f172a;
}

.reservation-quote-hint {
    margin: 0.5rem 0 0;
    font-size: 0.8rem;
    color: #64748b;
}

.reservation-quote-error {
    margin-top: 1rem;
    padding: 0.7rem 0.9rem;
    border: 1px solid #f1c4c4;
    border-radius: 0.5rem;
    background: #fdf3f3;
    color: #b4413c;
    font-size: 0.85rem;
}

/* —— Nueva reserva: flujo guiado (C5) —— */
.res-create-page {
    padding: 1.25rem 1.5rem;
}

.res-create-load-error .hk-empty-guide,
.res-create-empty .hk-empty-guide {
    padding: 1.25rem 1rem;
    text-align: center;
}

.res-create-flow-nav {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem 0.75rem;
    margin-bottom: 1rem;
    padding-bottom: 0.75rem;
    border-bottom: 1px solid var(--holos-border, #e2e8f0);
}

.res-create-flow-step {
    font-size: 0.78rem;
    font-weight: 600;
    color: var(--holos-text-secondary, #64748b);
    padding: 0.2rem 0.55rem;
    border-radius: 999px;
    background: var(--holos-surface-muted, #f8fafc);
    border: 1px solid var(--holos-border, #e2e8f0);
}

.res-create-flow-step-summary {
    color: var(--holos-primary, #2563eb);
    border-color: color-mix(in srgb, var(--holos-primary, #2563eb) 35%, #e2e8f0);
    background: color-mix(in srgb, var(--holos-primary, #2563eb) 8%, #fff);
}

.res-create-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(260px, 300px);
    gap: 1.25rem;
    align-items: start;
}

.res-create-main {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    min-width: 0;
}

.res-create-section-head {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    margin-bottom: 0.65rem;
}

.res-create-section-head h2 {
    margin: 0;
}

.res-create-section-num {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.45rem;
    height: 1.45rem;
    border-radius: 50%;
    background: var(--holos-primary, #2563eb);
    color: #fff;
    font-size: 0.78rem;
    font-weight: 700;
    flex-shrink: 0;
}

.res-create-field-error {
    margin: 0.25rem 0 0;
    font-size: 0.78rem;
    color: var(--holos-danger, #dc2626);
}

.res-create-extras-list {
    margin: 0 0 0.85rem;
    padding: 0;
    list-style: none;
    border: 1px solid var(--holos-border, #e2e8f0);
    border-radius: 0.45rem;
    overflow: hidden;
}

.res-create-extras-list li {
    display: flex;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.45rem 0.65rem;
    font-size: 0.85rem;
    border-bottom: 1px solid var(--holos-border, #e2e8f0);
}

.res-create-extras-list li:last-child {
    border-bottom: none;
}

.res-create-extras-empty {
    margin: 0 0 0.85rem;
    font-size: 0.85rem;
}

.res-create-summary {
    grid-column: auto;
    grid-row: auto;
    position: sticky;
    top: calc(var(--holos-topbar-height, 3rem) + 0.75rem);
}

.res-create-quote-always {
    margin-top: 0.35rem;
}

.res-create-availability {
    margin-top: 0.5rem;
    padding-top: 0.65rem;
    border-top: 1px solid var(--holos-border, #e2e8f0);
}

.res-create-availability-title {
    margin: 0 0 0.45rem;
    font-size: 0.88rem;
    font-weight: 600;
    color: var(--holos-text-secondary, #475569);
}

.res-create-action-hint {
    margin: 0;
    font-size: 0.82rem;
}

.res-create-submit {
    width: 100%;
    margin-top: 0.35rem;
}

/* —— Responsive: tablet, móvil (recepción / check-in) —— */

.topnav-open-input {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    border: 0;
}

.table-scroll {
    width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

.mobile-action-bar,
.mobile-only-confirm {
    display: none;
}

@media (max-width: 1024px) {
    .guest-profile-layout {
        grid-template-columns: 1fr 1fr;
    }

    .guest-profile-aside {
        grid-column: 1 / -1;
        grid-row: auto;
        position: static;
        flex-direction: row;
        flex-wrap: wrap;
        align-items: center;
    }

    .guest-profile-aside .btn-primary,
    .guest-profile-aside .guest-new-reservation-link {
        flex: 1;
        min-width: 10rem;
    }

    .guest-profile-panel-notes {
        grid-column: 1 / -1;
    }

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

    .res-create-layout {
        grid-template-columns: 1fr;
    }

    .res-create-summary {
        position: static;
    }

    .reservation-aside {
        grid-column: 1 / -1;
        grid-row: auto;
        position: static;
    }

    .reservation-panel-notes,
    .reservation-panel-commercial {
        grid-column: 1 / -1;
    }

    .avail-compact-list {
        flex-direction: row;
        flex-wrap: nowrap;
        overflow-x: auto;
        max-height: none;
        padding-bottom: 0.25rem;
    }

    .avail-compact-item {
        min-width: 8.5rem;
        flex-shrink: 0;
    }
}

@media (max-width: 900px) {
    .topnav-menu-btn {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        min-width: 2.5rem;
        min-height: 2.5rem;
        margin-left: auto;
        padding: 0.35rem;
        background: transparent;
        border: 1px solid var(--holos-border);
        border-radius: 6px;
        color: var(--holos-topnav-text);
        font-size: 1.2rem;
        cursor: pointer;
    }

    .topnav-open-input {
        display: none;
    }

    .topnav-groups {
        display: none;
        position: absolute;
        left: 0;
        right: 0;
        top: 100%;
        flex-direction: column;
        align-items: stretch;
        padding: 0.5rem;
        background: var(--holos-topnav-bg);
        border-bottom: 1px solid var(--holos-border);
        max-height: min(70vh, 28rem);
        overflow-y: auto;
        box-shadow: var(--holos-dropdown-shadow);
    }

    .holos-topnav {
        position: relative;
    }

    .holos-topnav-inner {
        flex-wrap: wrap;
    }

    .topnav-open-input:checked ~ .holos-topnav .topnav-groups {
        display: flex;
    }

    .topnav-backdrop {
        display: none;
        position: fixed;
        inset: 0;
        z-index: 280;
        background: rgba(0, 0, 0, 0.45);
        cursor: pointer;
    }

    .topnav-open-input:checked ~ .topnav-backdrop {
        display: block;
    }

    .topnav-group {
        flex-direction: column;
        align-items: stretch;
    }

    .topnav-dropdown {
        display: none;
        position: static;
        box-shadow: none;
        border: none;
        padding: 0 0 0.35rem 0.75rem;
        background: transparent;
    }

    .topnav-group.is-open > .topnav-dropdown {
        display: flex;
    }

    .topnav-group .topnav-trigger::after {
        content: "";
    }

    .holos-bar-inner {
        flex-wrap: wrap;
        padding: 0.5rem 0.85rem;
    }

    .holos-bar-end {
        gap: 0.5rem;
    }

    .user-label {
        margin-right: 0;
        font-size: 0.8rem;
        max-width: 10rem;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .holos-content {
        padding: 1rem;
    }

    .page-header {
        flex-wrap: wrap;
    }

    .page-header h1 {
        font-size: 1.35rem;
    }

    .hero h1 {
        font-size: 1.75rem;
    }

    .fd-tabs {
        flex-wrap: wrap;
    }

    .fd-tab {
        flex: 1;
        min-width: calc(50% - 0.25rem);
        text-align: center;
        min-height: 2.75rem;
    }

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

    .guest-search-row input {
        min-width: 0;
        width: 100%;
    }

    .guest-search-row .btn-primary,
    .guest-search-row .btn-secondary {
        width: 100%;
        min-height: 2.75rem;
    }
}

@media (max-width: 768px) {
    .guest-profile-layout {
        grid-template-columns: 1fr;
    }

    .guest-profile-panel-notes {
        grid-column: 1;
    }

    .guest-profile-aside {
        flex-direction: column;
    }

    .guest-result-grid {
        display: grid;
        grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
        gap: 0.75rem;
    }

    .guest-result-card {
        display: block;
        background: var(--holos-bg);
        border: 1px solid var(--holos-border);
        border-radius: 10px;
        padding: 1rem;
        cursor: pointer;
    }

    .guest-result-card:active {
        border-color: var(--holos-accent);
    }

    .guest-result-name {
        margin: 0 0 0.35rem;
        font-size: 1.05rem;
        font-weight: 600;
    }

    .guest-result-meta {
        margin: 0.15rem 0;
        color: var(--holos-muted);
        font-size: 0.9rem;
    }

    .guest-result-badge {
        margin: 0.5rem 0 0;
        font-size: 0.8rem;
        color: var(--holos-accent);
    }

    .guest-result-table {
        display: none;
    }

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

    .res-create-layout {
        grid-template-columns: 1fr;
    }

    .res-field-grid {
        grid-template-columns: 1fr;
    }

    .reservation-panel-notes,
    .reservation-panel-commercial {
        grid-column: 1;
    }

    .commercial-readonly {
        grid-template-columns: 1fr 1fr;
    }

    .reservation-card {
        padding: 1rem;
    }

    .reservation-aside {
        order: 10;
    }

    .btn-confirm-reservation {
        min-height: 3rem;
        font-size: 1.05rem;
    }

    .data-table {
        font-size: 0.85rem;
    }

    .data-table th,
    .data-table td {
        padding: 0.55rem 0.45rem;
        white-space: nowrap;
    }

    .sim-row input,
    .sim-row select,
    .sim-row textarea,
    .country-picker-trigger,
    .country-picker-search {
        font-size: 16px;
        min-height: 2.75rem;
    }

    .sim-row textarea {
        min-height: 4.5rem;
    }

    .btn-primary,
    .btn-secondary,
    .btn-danger {
        min-height: 2.75rem;
        padding: 0.65rem 1rem;
    }

    .fd-card {
        padding: 1rem;
        min-height: 2.75rem;
    }

    .country-picker {
        max-width: none;
        width: 100%;
    }

    .mobile-action-bar {
        display: flex;
        position: fixed;
        left: 0;
        right: 0;
        bottom: 0;
        z-index: 100;
        padding: 0.75rem 1rem;
        padding-bottom: max(0.75rem, env(safe-area-inset-bottom));
        background: var(--holos-surface);
        border-top: 1px solid var(--holos-border);
        box-shadow: 0 -4px 20px rgba(0, 0, 0, 0.35);
        gap: 0.5rem;
    }

    .mobile-action-bar .btn-primary {
        flex: 1;
        min-height: 3rem;
        font-size: 1.05rem;
    }

    .has-mobile-action-bar {
        padding-bottom: 5.5rem;
    }

    .has-mobile-action-bar .mobile-hide-cta {
        display: none;
    }

    .mobile-only-confirm {
        display: flex;
    }
}

@media (min-width: 769px) {
    .mobile-only-confirm {
        display: none !important;
    }
}

@media (max-width: 480px) {
    .property-selector {
        flex-direction: column;
        align-items: flex-start;
        font-size: 0.8rem;
    }

    .property-selector select {
        width: 100%;
        min-height: 2.75rem;
    }

    .reservation-card-nights {
        width: 100%;
        text-align: center;
    }

    .avail-preview-row {
        grid-template-columns: 3rem 1fr;
        grid-template-rows: auto auto;
    }

    .avail-preview-row .avail-pct {
        grid-column: 1 / -1;
    }
}

.sim-row {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    margin-bottom: 0.75rem;
}

.sim-row input,
.sim-row select {
    padding: 0.45rem;
    border-radius: 6px;
    border: 1px solid var(--holos-border);
    background: var(--holos-bg);
    color: var(--holos-text);
}

.btn-primary {
    padding: 0.55rem 1rem;
    background: var(--holos-brand-primary);
    color: #fff;
    border: none;
    border-radius: var(--holos-radius-sm);
    cursor: pointer;
    font-weight: 600;
    box-shadow: 0 1px 2px rgba(37, 99, 235, 0.2);
    transition: background 0.15s, box-shadow 0.15s;
}

.btn-primary:hover {
    background: var(--holos-brand-primary-hover);
    box-shadow: 0 2px 8px rgba(37, 99, 235, 0.28);
}

input:focus,
select:focus,
textarea:focus {
    outline: none;
    border-color: var(--holos-brand-primary);
    box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.15);
}

.quote-totals {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 0.35rem 1rem;
    margin-top: 1rem;
}

.quote-totals dt {
    color: var(--holos-muted);
}

.error-msg {
    color: #f07178;
}

.logout-form {
    display: inline;
    margin: 0;
}

.page-header {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-bottom: 1rem;
}

.page-header h1 {
    margin: 0;
}

.status-badge {
    background: var(--holos-brand-primary-soft);
    color: var(--holos-brand-primary);
    padding: 0.25rem 0.6rem;
    border-radius: 6px;
    font-size: 0.85rem;
    font-weight: 500;
}

.clickable-row {
    cursor: pointer;
}

.clickable-row:hover {
    background: var(--holos-brand-primary-soft);
}

.data-table tbody tr.guest-pick-row:hover td {
    background: color-mix(in srgb, var(--holos-accent) 10%, transparent);
}

.data-table .guest-pick-cell {
    color: var(--holos-accent);
    font-weight: 600;
}

.actions-row {
    display: flex;
    gap: 0.75rem;
    flex-wrap: wrap;
}

.btn-danger {
    padding: 0.5rem 1rem;
    background: #8b2e2e;
    color: #fff;
    border: none;
    border-radius: 6px;
    cursor: pointer;
}

.link-btn {
    background: none;
    border: none;
    color: var(--holos-accent);
    cursor: pointer;
    font-size: inherit;
    padding: 0;
    text-decoration: underline;
}

.info-banner {
    background: rgba(61, 214, 198, 0.12);
    border: 1px solid var(--holos-accent-dim);
    border-radius: 8px;
    padding: 0.75rem 1rem;
    margin-bottom: 1rem;
}

.sim-row textarea {
    width: 100%;
    max-width: 32rem;
    padding: 0.5rem 0.75rem;
    background: var(--holos-bg);
    border: 1px solid var(--holos-border);
    border-radius: 6px;
    color: var(--holos-text);
    font-family: inherit;
    resize: vertical;
}

.country-picker {
    position: relative;
    display: flex;
    align-items: center;
    gap: 0.35rem;
    max-width: 32rem;
}

.country-picker-trigger {
    flex: 1;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.5rem 0.75rem;
    background: var(--holos-bg);
    border: 1px solid var(--holos-border);
    border-radius: 6px;
    color: var(--holos-text);
    cursor: pointer;
    text-align: left;
    font: inherit;
}

.country-picker-trigger:hover {
    border-color: var(--holos-accent-dim);
}

.country-picker-placeholder {
    color: var(--holos-muted);
}

.country-picker-label {
    flex: 1;
}

.country-picker-chevron {
    color: var(--holos-muted);
    font-size: 0.75rem;
}

.country-flag {
    font-size: 1.25rem;
    line-height: 1;
    flex-shrink: 0;
}

.country-picker-clear {
    padding: 0.25rem 0.5rem;
    background: transparent;
    border: 1px solid var(--holos-border);
    border-radius: 6px;
    color: var(--holos-muted);
    cursor: pointer;
    font-size: 1.1rem;
    line-height: 1;
}

.country-picker-clear:hover {
    color: var(--holos-text);
    border-color: var(--holos-accent-dim);
}

.country-picker-panel {
    position: absolute;
    z-index: 50;
    top: calc(100% + 4px);
    left: 0;
    right: 0;
    min-width: 16rem;
    background: var(--holos-surface);
    border: 1px solid var(--holos-border);
    border-radius: 8px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.35);
    overflow: hidden;
}

.country-picker-search {
    width: 100%;
    box-sizing: border-box;
    padding: 0.6rem 0.75rem;
    border: none;
    border-bottom: 1px solid var(--holos-border);
    background: var(--holos-bg);
    color: var(--holos-text);
    font: inherit;
}

.country-picker-search:focus {
    outline: none;
}

.country-picker-list {
    list-style: none;
    margin: 0;
    padding: 0;
    max-height: 16rem;
    overflow-y: auto;
}

.country-picker-option {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.5rem 0.75rem;
    cursor: pointer;
}

.country-picker-option:hover,
.country-picker-option.selected {
    background: rgba(61, 214, 198, 0.12);
}

.country-picker-option-name {
    flex: 1;
}

.country-picker-option-code {
    font-size: 0.8rem;
    color: var(--holos-muted);
}

/* ── Holos combobox (employee search, etc.) ─────────────── */

.holos-combobox {
    position: relative;
    width: 100%;
    max-width: 100%;
}

.holos-combobox-backdrop {
    position: fixed;
    inset: 0;
    z-index: 198;
    background: transparent;
    cursor: default;
}

.holos-combobox--open .holos-combobox-row {
    position: relative;
    z-index: 200;
}

.holos-combobox-row {
    display: flex;
    align-items: stretch;
    gap: 0.35rem;
}

.holos-combobox-trigger {
    flex: 1;
    min-width: 0;
    min-height: 2.65rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    gap: 0.65rem;
    padding: 0.45rem 0.75rem;
    border-radius: 8px;
    border: 1px solid var(--holos-border);
    background-color: #fff;
    color: var(--holos-text);
    cursor: pointer;
    font: inherit;
    text-align: left;
    box-sizing: border-box;
    transition: border-color 0.15s, background-color 0.15s, box-shadow 0.15s;
}

.holos-combobox-trigger:hover:not(:disabled) {
    border-color: var(--holos-border-strong);
    background-color: #fff;
}

.holos-combobox-trigger:focus-visible {
    outline: none;
    border-color: var(--holos-brand-primary);
    box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.15);
}

.holos-combobox--open .holos-combobox-trigger {
    border-color: var(--holos-brand-primary);
    box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.12);
}

.holos-combobox-trigger:disabled {
    opacity: 0.55;
    cursor: not-allowed;
}

.holos-combobox-trigger-input {
    flex: 1;
    min-width: 0;
    min-height: 2.65rem;
    padding: 0.45rem 0.75rem;
    border-radius: 8px;
    border: 1px solid var(--holos-border);
    background-color: #fff;
    color: var(--holos-text);
    font: inherit;
    font-size: 0.9rem;
    box-sizing: border-box;
    transition: border-color 0.15s, box-shadow 0.15s;
}

.holos-combobox-trigger-input:hover:not(:disabled) {
    border-color: var(--holos-border-strong);
}

.holos-combobox-trigger-input:focus {
    outline: none;
    border-color: var(--holos-brand-primary);
    box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.15);
}

.holos-combobox-trigger-input:disabled {
    opacity: 0.55;
    cursor: not-allowed;
}

.holos-combobox--open .holos-combobox-trigger-input {
    border-color: var(--holos-brand-primary);
    box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.12);
}

.holos-combobox-body {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
}

.holos-combobox-primary {
    font-size: 0.9rem;
    font-weight: 500;
    line-height: 1.25;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.holos-combobox-secondary {
    font-size: 0.75rem;
    line-height: 1.2;
    color: var(--holos-muted);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.holos-combobox-placeholder {
    font-size: 0.9rem;
    color: var(--holos-muted);
    line-height: 1.35;
}

.holos-combobox-chevron {
    color: var(--holos-muted);
    font-size: 0.7rem;
    line-height: 1;
    flex-shrink: 0;
    margin-left: 0.35rem;
    transition: transform 0.15s ease;
}

.holos-combobox--open .holos-combobox-chevron {
    transform: rotate(180deg);
}

.holos-combobox-clear-btn {
    flex-shrink: 0;
    align-self: stretch;
    min-width: 2.25rem;
    padding: 0 0.5rem;
    border-radius: 8px;
    border: 1px solid var(--holos-border);
    background: rgba(7, 11, 20, 0.65);
    color: var(--holos-muted);
    font-size: 1.15rem;
    line-height: 1;
    cursor: pointer;
}

.holos-combobox-clear-btn:hover {
    color: var(--holos-text);
    border-color: rgba(0, 229, 255, 0.35);
}

.holos-combobox-panel {
    position: absolute;
    z-index: 210;
    top: calc(100% + 4px);
    left: 0;
    right: 0;
    background: #fff;
    border: 1px solid var(--holos-border);
    border-radius: 8px;
    box-shadow: 0 8px 24px rgba(15, 23, 42, 0.12);
    overflow: hidden;
}

.holos-combobox-search-wrap {
    padding: 0.5rem;
    border-bottom: 1px solid var(--holos-border);
    background: rgba(248, 250, 252, 0.95);
}

.holos-combobox-search {
    width: 100%;
    box-sizing: border-box;
    padding: 0.5rem 0.65rem;
    border-radius: 6px;
    border: 1px solid var(--holos-border);
    background: #fff;
    color: var(--holos-text);
    font: inherit;
    font-size: 0.9rem;
}

.holos-combobox-search:focus {
    outline: none;
    border-color: var(--holos-brand-blue);
    box-shadow: 0 0 0 2px rgba(10, 132, 255, 0.2);
}

.holos-combobox-list {
    list-style: none;
    margin: 0;
    padding: 0.25rem 0;
    max-height: 14rem;
    overflow-y: auto;
}

.holos-combobox-option {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.15rem;
    padding: 0.55rem 0.75rem;
    cursor: pointer;
}

.holos-combobox-option:hover,
.holos-combobox-option.is-selected {
    background: rgba(37, 99, 235, 0.08);
}

.holos-combobox-option-name {
    font-size: 0.9rem;
    font-weight: 500;
    color: var(--holos-text);
}

.holos-combobox-option-meta {
    font-size: 0.75rem;
    color: var(--holos-muted);
}

.holos-combobox-empty {
    padding: 0.75rem;
    color: var(--holos-muted);
    font-size: 0.875rem;
    text-align: center;
}

.people-ops-form .holos-filter-field--wide {
    min-width: min(100%, 22rem);
}

.letter-data-dl {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(14rem, 1fr));
    gap: .5rem 1.25rem;
    margin: 0;
    font-size: .92rem;
}

.letter-data-dl > div {
    display: grid;
    gap: .15rem;
}

.letter-data-dl dt {
    margin: 0;
    font-size: .78rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .03em;
    color: var(--holos-text-muted, #64748b);
}

.letter-data-dl dd {
    margin: 0;
}

/* ── People Ops — expediente digital (minimal) ─────────── */

.expediente-employee-picker {
    position: relative;
    z-index: 1;
}

.expediente-employee-picker:has(.holos-combobox--open) {
    overflow: visible;
    z-index: 220;
}

.expediente-toast {
    margin: 0 0 0.75rem;
    font-size: 0.875rem;
    color: var(--holos-accent, #3dd6c6);
}

.expediente-status-banner {
    margin: 0 0 0.85rem;
    padding: 0.75rem 0.95rem;
    border-radius: 8px;
    font-size: 0.875rem;
    display: grid;
    gap: 0.45rem;
}

.expediente-status-banner--uploading {
    background: #eff6ff;
    border: 1px solid #93c5fd;
    color: #1e3a8a;
}

.expediente-status-banner--success {
    background: #ecfdf5;
    border: 1px solid #6ee7b7;
    color: #047857;
}

.expediente-status-banner--error {
    background: #fef2f2;
    border: 1px solid #fca5a5;
    color: #b91c1c;
}

.expediente-upload-progress-bar {
    height: 0.45rem;
    border-radius: 999px;
    background: rgba(37, 99, 235, 0.15);
    overflow: hidden;
}

.expediente-upload-progress-fill {
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, #2563eb, #3b82f6);
    transition: width 0.15s ease;
}

.expediente-upload-progress-meta {
    font-size: 0.8rem;
    color: #1d4ed8;
}

.expediente-file-input-label {
    display: block;
    margin: 0.35rem 0 0.25rem;
    font-size: 0.78rem;
    color: var(--holos-muted);
}

.expediente-file-input {
    display: block;
    width: 100%;
    box-sizing: border-box;
    font-size: 0.82rem;
}

.expediente-file-input:disabled {
    opacity: 0.55;
    cursor: not-allowed;
}

/* ==========================================================================
   Expediente — sistema de tokens + estilo enterprise (suave, con detalle).
   Paleta neutra cálida, tintes suaves por tipo de archivo, profundidad en
   capas y micro-interacciones. Un solo lenguaje entre sidebar y visor.
   ========================================================================== */
.expediente-shell {
    --exp-bg: #ffffff;
    --exp-canvas: #f6f7f9;
    --exp-border: rgba(18, 25, 38, 0.09);
    --exp-border-soft: rgba(18, 25, 38, 0.06);
    --exp-hover: rgba(18, 25, 38, 0.038);
    --exp-text: #1f2733;
    --exp-text-2: #5b6472;
    --exp-text-3: #98a1af;
    --exp-accent: #2563eb;
    --exp-accent-strong: #1d4ed8;
    --exp-accent-soft: #eef3ff;
    --exp-radius: 14px;
    --exp-radius-sm: 9px;
    --exp-shadow: 0 1px 2px rgba(16, 24, 40, 0.04), 0 14px 34px -18px rgba(16, 24, 40, 0.20);

    display: grid;
    grid-template-columns: 296px 1fr;
    gap: 0;
    min-height: calc(100vh - 11rem);
    border: 1px solid var(--exp-border);
    border-radius: var(--exp-radius);
    overflow: hidden;
    background: var(--exp-bg);
    box-shadow: var(--exp-shadow);
}

@media (max-width: 900px) {
    .expediente-shell {
        grid-template-columns: 1fr;
        min-height: 32rem;
    }
}

.expediente-files {
    border-right: 1px solid var(--exp-border-soft);
    padding: 1rem 0.8rem;
    overflow-y: auto;
    max-height: calc(100vh - 11rem);
    background: var(--exp-bg);
    scrollbar-width: thin;
}
.expediente-files::-webkit-scrollbar { width: 8px; }
.expediente-files::-webkit-scrollbar-thumb { background: var(--exp-border); border-radius: 999px; border: 2px solid var(--exp-bg); }

.expediente-upload-details {
    margin-bottom: 0.9rem;
    padding: 0.65rem 0.7rem;
    border: 1px solid var(--exp-border-soft);
    border-radius: var(--exp-radius-sm);
    background: #fbfcfe;
    font-size: 0.8rem;
    color: var(--exp-text-2);
}

.expediente-upload-details summary {
    cursor: pointer;
    font-weight: 600;
    font-size: 0.78rem;
    color: var(--exp-text);
    list-style: none;
    display: flex;
    align-items: center;
    gap: 0.4rem;
}
.expediente-upload-details summary::-webkit-details-marker { display: none; }
.expediente-upload-details summary::before {
    content: "";
    width: 15px;
    height: 15px;
    flex: 0 0 auto;
    background: currentColor;
    -webkit-mask: no-repeat center / contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4'/%3E%3Cpolyline points='17 8 12 3 7 8'/%3E%3Cline x1='12' y1='3' x2='12' y2='15'/%3E%3C/svg%3E");
    mask: no-repeat center / contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4'/%3E%3Cpolyline points='17 8 12 3 7 8'/%3E%3Cline x1='12' y1='3' x2='12' y2='15'/%3E%3C/svg%3E");
    color: var(--exp-accent);
}
.expediente-upload-details[open] summary { margin-bottom: 0.6rem; }

.expediente-cat-select {
    width: 100%;
    margin-top: 0.5rem;
}

.expediente-files-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 0.66rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--exp-text-3);
    margin: 0.35rem 0.35rem 0.7rem;
}

.expediente-files-count {
    background: var(--exp-hover);
    color: var(--exp-text-2);
    padding: 0.12rem 0.5rem;
    border-radius: 999px;
    font-size: 0.66rem;
    font-weight: 600;
}

.expediente-files-empty {
    font-size: 0.82rem;
    color: var(--exp-text-3);
    margin: 0.5rem 0.35rem;
}

/* Grupos por categoría — así los archivos dejan de estar "chorreados". */
.expediente-file-group {
    margin-bottom: 1.05rem;
}

.expediente-file-group:last-child {
    margin-bottom: 0.25rem;
}

.expediente-group-label {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    padding: 0 0.4rem 0.4rem;
    font-size: 0.64rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    color: var(--exp-text-3);
}

.expediente-group-count {
    font-weight: 600;
    color: var(--exp-text-3);
    opacity: 0.75;
}

.expediente-files-list {
    list-style: none;
    margin: 0;
    padding: 0;
}

.expediente-file-row {
    margin-bottom: 0.15rem;
    border-radius: var(--exp-radius-sm);
    position: relative;
    transition: background 0.16s ease;
}

.expediente-file-row:hover {
    background: var(--exp-hover);
}

.expediente-file-row.is-active {
    background: var(--exp-accent-soft);
    box-shadow: inset 0 0 0 1px rgba(37, 99, 235, 0.14);
}

.expediente-file-btn {
    width: 100%;
    display: flex;
    align-items: center;
    gap: 0.65rem;
    text-align: left;
    padding: 0.5rem 0.55rem;
    border: none;
    border-radius: var(--exp-radius-sm);
    background: transparent;
    color: var(--exp-text);
    cursor: pointer;
    font: inherit;
}
.expediente-file-btn:focus-visible {
    outline: 2px solid var(--exp-accent);
    outline-offset: -1px;
}

.expediente-file-row.is-active .expediente-file-name {
    color: var(--exp-accent-strong);
    font-weight: 600;
}

.expediente-file-text {
    min-width: 0;
    flex: 1;
}

/* Badge de tipo de archivo — tinte suave + texto del mismo tono (enterprise, no saturado). */
.expediente-file-icon {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    border-radius: 8px;
    font-size: 0.5rem;
    font-weight: 700;
    letter-spacing: 0.03em;
    background: #eef1f5;
    color: #667085;
    box-shadow: inset 0 0 0 1px rgba(18, 25, 38, 0.04);
    overflow: hidden;
}

.expediente-file-icon--pdf   { background: #fdecec; color: #d64545; }
.expediente-file-icon--image { background: #e9f6ee; color: #1e9e5a; }
.expediente-file-icon--sheet { background: #e5f4ec; color: #12805c; }
.expediente-file-icon--doc   { background: #eaf1fe; color: #2563eb; }
.expediente-file-icon--file  { background: #eef1f5; color: #667085; }

.expediente-file-name {
    display: block;
    font-size: 0.8rem;
    font-weight: 500;
    line-height: 1.35;
    color: var(--exp-text);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.expediente-file-meta {
    display: block;
    font-size: 0.68rem;
    color: var(--exp-text-3);
    margin-top: 0.12rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.expediente-viewer {
    display: flex;
    flex-direction: column;
    min-height: calc(100vh - 11rem);
    background: var(--exp-canvas);
}

.expediente-viewer-empty {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.85rem;
    color: var(--exp-text-3);
    padding: 2rem;
    text-align: center;
}
.expediente-viewer-empty svg { width: 40px; height: 40px; stroke: var(--exp-text-3); opacity: 0.7; }
.expediente-viewer-empty p { margin: 0; font-size: 0.9rem; }

.expediente-retention-note {
    margin: 1.1rem 0.35rem 0.25rem;
    padding-top: 0.8rem;
    border-top: 1px solid var(--exp-border-soft);
    font-size: 0.68rem;
    line-height: 1.45;
    color: var(--exp-text-3);
}

.expediente-viewer-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.7rem 1rem;
    background: var(--exp-bg);
    border-bottom: 1px solid var(--exp-border-soft);
    flex-shrink: 0;
}

.expediente-viewer-actions {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    flex-shrink: 0;
}

.expediente-action-link,
.expediente-action-danger,
.expediente-action-muted {
    font-size: 0.78rem;
    font-weight: 500;
    background: none;
    border: none;
    cursor: pointer;
    padding: 0.34rem 0.7rem;
    border-radius: 7px;
    font-family: inherit;
    transition: background 0.14s ease, color 0.14s ease;
}

.expediente-action-link {
    color: var(--exp-accent-strong);
    text-decoration: none;
}

.expediente-action-link:hover {
    background: var(--exp-accent-soft);
}

.expediente-action-danger {
    color: #c5364a;
}
.expediente-action-danger:hover {
    background: #fdecef;
}

.expediente-action-muted {
    color: var(--exp-text-2);
}
.expediente-action-muted:hover {
    background: var(--exp-hover);
}

.expediente-delete-confirm {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
}

.expediente-delete-hint {
    margin: 0;
    padding: 0.6rem 1rem;
    font-size: 0.75rem;
    color: #8a6d3b;
    background: #fdf6e3;
    border-bottom: 1px solid #f4e7bf;
}

.expediente-viewer-title-wrap {
    min-width: 0;
}

.expediente-viewer-title {
    margin: 0;
    font-size: 0.86rem;
    font-weight: 600;
    color: var(--exp-text);
    letter-spacing: -0.01em;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.expediente-viewer-meta {
    font-size: 0.71rem;
    color: var(--exp-text-3);
}

.expediente-viewer-canvas {
    flex: 1;
    overflow: auto;
    background: var(--exp-canvas);
    position: relative;
    padding: 1.5rem;
    transition: opacity 0.15s ease;
}

.expediente-viewer-canvas.is-loading {
    opacity: 0.55;
}

.expediente-preview-loading,
.expediente-preview-error {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 16rem;
    color: var(--exp-text-3);
    font-size: 0.9rem;
    padding: 2rem;
}

/* Tarjeta cuando el tipo no admite vista previa. */
.expediente-preview-fallback {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    gap: 0.4rem;
    min-height: 20rem;
    padding: 2.5rem;
    margin: auto;
    max-width: 26rem;
    background: var(--exp-bg);
    border: 1px solid var(--exp-border-soft);
    border-radius: var(--exp-radius);
    box-shadow: 0 1px 2px rgba(16, 24, 40, 0.04), 0 18px 40px -24px rgba(16, 24, 40, 0.22);
}

.expediente-fallback-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 60px;
    height: 60px;
    border-radius: 14px;
    margin-bottom: 0.85rem;
    font-size: 0.8rem;
    font-weight: 700;
    letter-spacing: 0.03em;
    box-shadow: inset 0 0 0 1px rgba(18, 25, 38, 0.05);
}

.expediente-fallback-name {
    margin: 0;
    font-size: 0.95rem;
    font-weight: 600;
    color: var(--exp-text);
    max-width: 22rem;
    word-break: break-word;
}

.expediente-fallback-hint {
    margin: 0;
    font-size: 0.82rem;
    color: var(--exp-text-3);
}

.expediente-fallback-download {
    margin-top: 1rem;
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.55rem 1.25rem;
    border-radius: 9px;
    background: var(--exp-accent);
    color: #fff;
    font-size: 0.82rem;
    font-weight: 600;
    text-decoration: none;
    box-shadow: 0 1px 2px rgba(37, 99, 235, 0.35), 0 8px 20px -10px rgba(37, 99, 235, 0.6);
    transition: background 0.14s ease, transform 0.14s ease, box-shadow 0.14s ease;
}

.expediente-fallback-download:hover {
    background: var(--exp-accent-strong);
    transform: translateY(-1px);
    box-shadow: 0 2px 4px rgba(37, 99, 235, 0.35), 0 12px 24px -10px rgba(37, 99, 235, 0.7);
}

.expediente-doc-embed {
    display: block;
    width: 100%;
    min-height: calc(100vh - 15rem);
    border: 1px solid var(--exp-border-soft, rgba(18, 25, 38, 0.06));
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 1px 2px rgba(16, 24, 40, 0.05), 0 16px 40px -24px rgba(16, 24, 40, 0.28);
}

.expediente-doc-image {
    display: block;
    max-width: 100%;
    margin: 0 auto;
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 1px 2px rgba(16, 24, 40, 0.06), 0 16px 40px -24px rgba(16, 24, 40, 0.30);
}

.expediente-doc-sheet {
    padding: 1rem;
    background: #fff;
    min-height: 100%;
    overflow: auto;
}

.expediente-doc-sheet table {
    border-collapse: collapse;
    font-size: 0.8rem;
    color: #202124;
    width: max-content;
    max-width: 100%;
}

.expediente-doc-sheet td,
.expediente-doc-sheet th {
    border: 1px solid #dadce0;
    padding: 0.35rem 0.5rem;
    white-space: nowrap;
}

.expediente-sheet-note {
    font-size: 0.75rem;
    color: #5f6368;
    margin: 0 0 0.75rem;
}

.expediente-doc-word {
    padding: 1.5rem 2rem;
    max-width: 820px;
    margin: 0 auto;
    background: #fff;
    min-height: 100%;
    color: #202124;
    font-size: 0.9rem;
    line-height: 1.55;
    box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.06);
}

.expediente-doc-word p {
    margin: 0 0 0.75rem;
}

/* ==========================================================================
   Correo del sistema (/admin/email-configuration) — enterprise, suave.
   Estado humano arriba, formulario refinado, detalle técnico plegado.
   ========================================================================== */
.email-admin {
    --eml-bg: #ffffff;
    --eml-border: rgba(18, 25, 38, 0.09);
    --eml-border-soft: rgba(18, 25, 38, 0.06);
    --eml-text: #1f2733;
    --eml-text-2: #5b6472;
    --eml-text-3: #98a1af;
    --eml-accent: #2563eb;
    --eml-accent-strong: #1d4ed8;
    --eml-ok: #16a34a;
    --eml-ok-soft: #ecfdf3;
    --eml-ok-border: #b7ecc9;
    --eml-warn: #b45309;
    --eml-warn-soft: #fef6e7;
    --eml-warn-border: #f4dca6;
    --eml-radius: 14px;
    --eml-radius-sm: 9px;
    --eml-shadow: 0 1px 2px rgba(16, 24, 40, 0.04), 0 12px 30px -18px rgba(16, 24, 40, 0.18);

    display: flex;
    flex-direction: column;
    gap: 1rem;
    max-width: 780px;
}

/* ── Hero de estado ── */
.email-hero {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1.15rem 1.3rem;
    border-radius: var(--eml-radius);
    border: 1px solid var(--eml-border-soft);
    background: var(--eml-bg);
    box-shadow: var(--eml-shadow);
}
.email-hero.is-ready {
    background: linear-gradient(180deg, #f4fbf6 0%, #ffffff 60%);
    border-color: var(--eml-ok-border);
}
.email-hero.is-pending {
    background: linear-gradient(180deg, #fbfaf5 0%, #ffffff 60%);
    border-color: var(--eml-warn-border);
}

.email-hero-icon {
    flex: 0 0 auto;
    width: 48px;
    height: 48px;
    border-radius: 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.email-hero-icon svg { width: 24px; height: 24px; }
.email-hero.is-ready .email-hero-icon { background: var(--eml-ok-soft); color: var(--eml-ok); box-shadow: inset 0 0 0 1px var(--eml-ok-border); }
.email-hero.is-pending .email-hero-icon { background: var(--eml-warn-soft); color: var(--eml-warn); box-shadow: inset 0 0 0 1px var(--eml-warn-border); }

.email-hero-body { min-width: 0; }
.email-hero-title {
    margin: 0;
    font-size: 1.05rem;
    font-weight: 650;
    letter-spacing: -0.01em;
    color: var(--eml-text);
}
.email-hero-sub {
    margin: 0.15rem 0 0;
    font-size: 0.86rem;
    color: var(--eml-text-2);
}
.email-hero-sub strong { color: var(--eml-text); font-weight: 600; }

.email-hero-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    margin-top: 0.6rem;
}
.email-chip {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    padding: 0.2rem 0.6rem 0.2rem 0.5rem;
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 550;
    color: #15803d;
    background: var(--eml-ok-soft);
    box-shadow: inset 0 0 0 1px var(--eml-ok-border);
}
.email-chip::before {
    content: "✓";
    font-weight: 700;
    font-size: 0.7rem;
}

/* ── Tarjetas ── */
.email-card {
    background: var(--eml-bg);
    border: 1px solid var(--eml-border-soft);
    border-radius: var(--eml-radius);
    box-shadow: var(--eml-shadow);
    padding: 1.25rem 1.3rem;
}
.email-card-head { margin-bottom: 1rem; }
.email-card-title {
    margin: 0;
    font-size: 0.98rem;
    font-weight: 620;
    letter-spacing: -0.01em;
    color: var(--eml-text);
}
.email-card-desc {
    margin: 0.3rem 0 0;
    font-size: 0.83rem;
    line-height: 1.5;
    color: var(--eml-text-2);
    max-width: 60ch;
}

/* ── Formulario ── */
.email-form {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.9rem 1rem;
}
.email-field { display: flex; flex-direction: column; gap: 0.3rem; min-width: 0; }
.email-field--wide { grid-column: 1 / -1; }
.email-field--narrow { grid-column: auto; }
.email-field > label {
    font-size: 0.76rem;
    font-weight: 600;
    color: var(--eml-text-2);
}
.email-field .holos-input { width: 100%; }
.email-field-hint {
    font-size: 0.72rem;
    color: var(--eml-text-3);
    line-height: 1.4;
}

.email-toggle {
    grid-column: 1 / -1;
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.83rem;
    color: var(--eml-text);
    cursor: pointer;
}
.email-toggle input { width: 16px; height: 16px; accent-color: var(--eml-accent); }
.email-toggle .email-field-hint { display: inline; }

/* ── Acciones + resultados ── */
.email-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.55rem;
    margin-top: 1.1rem;
}
.email-note { font-size: 0.78rem; color: var(--eml-text-3); }

.email-btn-ghost {
    background: none;
    border: none;
    font: inherit;
    font-size: 0.8rem;
    font-weight: 500;
    color: var(--eml-text-3);
    cursor: pointer;
    padding: 0.34rem 0.6rem;
    border-radius: 7px;
    transition: background 0.14s ease, color 0.14s ease;
}
.email-btn-ghost:hover { background: rgba(18, 25, 38, 0.04); color: var(--eml-text-2); }

.email-result {
    margin-top: 1rem;
    padding: 0.7rem 0.9rem;
    border-radius: var(--eml-radius-sm);
    font-size: 0.84rem;
    line-height: 1.5;
}
.email-result.is-ok { background: var(--eml-ok-soft); color: #15803d; box-shadow: inset 0 0 0 1px var(--eml-ok-border); }
.email-result.is-warn { background: var(--eml-warn-soft); color: var(--eml-warn); box-shadow: inset 0 0 0 1px var(--eml-warn-border); }
.email-result-list { margin: 0.4rem 0 0; padding-left: 1.1rem; }

/* ── Detalles técnicos (plegado) ── */
.email-tech {
    border: 1px solid var(--eml-border-soft);
    border-radius: var(--eml-radius);
    background: var(--eml-bg);
    box-shadow: var(--eml-shadow);
    overflow: hidden;
}
.email-tech > summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.85rem 1.3rem;
    cursor: pointer;
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--eml-text-2);
    list-style: none;
    user-select: none;
}
.email-tech > summary::-webkit-details-marker { display: none; }
.email-tech-caret { transition: transform 0.18s ease; color: var(--eml-text-3); }
.email-tech[open] > summary { border-bottom: 1px solid var(--eml-border-soft); }
.email-tech[open] .email-tech-caret { transform: rotate(180deg); }

.email-tech-body { padding: 1.1rem 1.3rem 1.3rem; }
.email-tech-note {
    margin: 0 0 1rem;
    font-size: 0.78rem;
    color: var(--eml-text-3);
    line-height: 1.5;
}
.email-tech-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 1rem;
}
.email-tech-block {
    border: 1px solid var(--eml-border-soft);
    border-radius: var(--eml-radius-sm);
    padding: 0.85rem 0.95rem;
    background: #fbfcfe;
}
.email-tech-block h3 {
    margin: 0 0 0.6rem;
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--eml-text-3);
}
.email-kv {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 0.3rem 0.75rem;
    margin: 0;
    font-size: 0.78rem;
}
.email-kv dt { color: var(--eml-text-3); white-space: nowrap; }
.email-kv dd { margin: 0; color: var(--eml-text); text-align: right; word-break: break-word; }
.email-kv dd code { font-size: 0.74rem; background: rgba(18, 25, 38, 0.05); padding: 0.05rem 0.35rem; border-radius: 5px; }
.email-kv-mono { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 0.72rem; color: var(--eml-text-2); }
.email-tech-foot {
    margin: 1rem 0 0;
    font-size: 0.74rem;
    color: var(--eml-text-3);
    line-height: 1.5;
}

@media (max-width: 640px) {
    .email-form { grid-template-columns: 1fr; }
    .email-field--narrow { grid-column: 1 / -1; }
}

.country-picker-empty {
    padding: 0.75rem;
    color: var(--holos-muted);
    font-size: 0.9rem;
}

.fd-section-title {
    font-size: 1.1rem;
    margin: 1rem 0 0.75rem;
    font-weight: 600;
}

.fd-tabs {
    display: flex;
    gap: 0.5rem;
    margin: 1rem 0;
}

.fd-tab {
    padding: 0.5rem 1rem;
    background: var(--holos-surface);
    border: 1px solid var(--holos-border);
    border-radius: 6px;
    color: var(--holos-muted);
    cursor: pointer;
}

.fd-tab-active {
    border-color: var(--holos-accent);
    color: var(--holos-accent);
}

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

.fd-card {
    background: var(--holos-surface);
    border: 1px solid var(--holos-border);
    border-radius: 8px;
    padding: 1rem;
    cursor: pointer;
}

.fd-card:hover {
    border-color: var(--holos-accent-dim);
}

.fd-card-alert {
    border-color: #c9a227;
    box-shadow: inset 3px 0 0 #c9a227;
}

.fd-card-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
}

.fd-badge {
    font-size: 0.75rem;
    background: rgba(201, 162, 39, 0.25);
    color: #e8c547;
    padding: 0.15rem 0.5rem;
    border-radius: 4px;
}

.fd-room {
    color: var(--holos-accent);
    font-size: 0.9rem;
}

.fd-guest {
    margin: 0.5rem 0 0.25rem;
    font-size: 1.05rem;
}

.fd-meta, .fd-notes-preview {
    margin: 0.25rem 0;
    color: var(--holos-muted);
    font-size: 0.9rem;
}

/* Front desk operational dashboard */
.fd-dash-command-bar {
    margin-bottom: 0.65rem;
    padding: 0.55rem 0.75rem;
}

.fd-dash-command-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.65rem 0.85rem;
}

.fd-dash-search-form {
    flex: 1 1 16rem;
    min-width: 0;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.4rem 0.65rem;
}

.fd-dash-search-label {
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--holos-muted);
    white-space: nowrap;
}

.fd-dash-search-controls {
    flex: 1 1 12rem;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.4rem;
    min-width: 0;
}

.fd-dash-search-input {
    flex: 1 1 10rem;
    min-width: 8rem;
}

.fd-dash-command-sep {
    width: 1px;
    align-self: stretch;
    min-height: 1.75rem;
    background: var(--holos-border);
    flex-shrink: 0;
}

.fd-dash-date-group {
    flex: 1 1 18rem;
    margin: 0;
}

.fd-dash-search-error {
    margin: 0.45rem 0 0;
    font-size: 0.88rem;
}

.fd-dash-search-panel {
    margin-bottom: 0.65rem;
    padding: 0.55rem 0.75rem;
    border-left: 3px solid var(--holos-brand-blue);
}

.fd-dash-search-panel-head {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.35rem 0.75rem;
    margin-bottom: 0.45rem;
}

.fd-dash-search-panel-head h2 {
    margin: 0;
    font-size: 0.95rem;
    font-weight: 600;
}

.fd-dash-search-panel-head p {
    margin: 0;
    font-size: 0.8rem;
}

.fd-dash-search-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(14rem, 1fr));
    gap: 0.35rem;
    max-height: 9rem;
    overflow-y: auto;
}

.fd-dash-search-hit {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    padding: 0.45rem 0.55rem;
    border: 1px solid var(--holos-border);
    border-radius: 6px;
    cursor: pointer;
    background: var(--holos-surface-elevated, var(--holos-surface));
}

.fd-dash-search-hit:hover {
    border-color: var(--holos-brand-blue);
    background: rgba(59, 130, 246, 0.06);
}

.fd-dash-search-hit-main {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
    min-width: 0;
}

.fd-dash-search-hit-main strong {
    font-size: 0.9rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.fd-dash-search-hit-main .muted {
    font-size: 0.78rem;
}

.status-badge-sm {
    font-size: 0.72rem;
    padding: 0.15rem 0.45rem;
    flex-shrink: 0;
}

.fd-lists-toolbar {
    margin-bottom: 0.65rem;
}

.fd-dash-search-hit-alert {
    border-left: 3px solid #c9a227;
}

.fd-dash-metrics {
    margin-bottom: 0.65rem;
}

.fd-dash-ops-date {
    margin: 1rem 0 0;
}

.fd-ops-date-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.75rem;
}

.fd-ops-date-row label {
    font-weight: 600;
}

.fd-ops-date-row input[type="date"] {
    min-width: 11rem;
}

.fd-ops-date-hint {
    font-size: 0.9rem;
}

.fd-ops-board {
    margin: 0 0 1rem;
}

.fd-ops-board-compact {
    margin-top: 0;
}

.fd-ops-compact-head {
    margin-bottom: 0.55rem;
}

.fd-ops-compact-title {
    margin: 0;
    font-size: 1rem;
    font-weight: 600;
}

.fd-ops-compact-title .muted {
    font-weight: 400;
    font-size: 0.88rem;
}

.fd-ops-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1rem;
    flex-wrap: wrap;
}

.fd-ops-title {
    margin: 0 0 0.25rem;
    font-size: 1.25rem;
}

.fd-ops-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0.65rem;
}

.fd-ops-grid-day {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

@media (max-width: 1280px) {
    .fd-ops-grid-day {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 640px) {
    .fd-ops-grid-day {
        grid-template-columns: 1fr;
    }
}

.fd-ops-notes-banner {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    margin-bottom: 0.65rem;
    padding: 0.65rem 0.85rem;
    border-radius: 8px;
    border: 1px solid rgba(201, 162, 39, 0.45);
    background: rgba(201, 162, 39, 0.12);
    color: #e8c547;
    font-size: 0.92rem;
    font-weight: 600;
}

.fd-ops-notes-banner-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.35rem;
    height: 1.35rem;
    border-radius: 999px;
    background: rgba(201, 162, 39, 0.35);
    font-weight: 700;
    flex-shrink: 0;
}

.fd-ops-rooms {
    border-top: 3px solid #2ecc71;
}

.fd-ops-rooms .fd-ops-kpi {
    color: #2ecc71;
}

.fd-ops-room-stats {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 0.5rem;
    margin-bottom: 0.65rem;
}

.fd-ops-room-stat {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 0.45rem 0.35rem;
    border-radius: 6px;
    background: rgba(255, 255, 255, 0.03);
    border: 1px solid var(--holos-border);
}

.fd-ops-room-stat-num {
    font-size: 1.35rem;
    font-weight: 700;
    line-height: 1.1;
}

.fd-ops-room-stat-label {
    font-size: 0.72rem;
    color: var(--holos-muted);
    text-transform: uppercase;
    letter-spacing: 0.03em;
    text-align: center;
}

.fd-ops-room-stat-clean .fd-ops-room-stat-num { color: #2ecc71; }
.fd-ops-room-stat-dirty .fd-ops-room-stat-num { color: #e74c3c; }
.fd-ops-room-stat-inspected .fd-ops-room-stat-num { color: #3498db; }
.fd-ops-room-stat-ooo .fd-ops-room-stat-num { color: #95a5a6; }

.fd-ops-room-total-label {
    font-size: 0.8rem;
    margin: 0 0 0.5rem;
    text-align: center;
}

.fd-ops-empty-guide {
    padding: 0.75rem 0.35rem;
    font-size: 0.9rem;
    line-height: 1.45;
}

.fd-ops-item-actions-stack {
    flex-direction: column;
    gap: 0.2rem;
    align-items: stretch;
}

.fd-ops-item-actions-stack .btn-op {
    text-align: center;
    white-space: nowrap;
}

.fd-dash-load-error {
    margin-bottom: 1rem;
}

.fd-dash-load-error .hk-empty-guide {
    padding: 1.5rem 1rem;
}

.fd-metric-notes-highlight {
    outline: 2px solid rgba(201, 162, 39, 0.55);
    outline-offset: 2px;
    border-radius: 8px;
}

.fd-ops-panel {
    background: var(--holos-surface);
    border: 1px solid var(--holos-border);
    border-radius: 10px;
    padding: 0.65rem 0.75rem;
    display: flex;
    flex-direction: column;
    min-height: 11rem;
}

.fd-ops-arrivals {
    border-top: 3px solid var(--holos-brand-blue);
}

.fd-ops-inhouse {
    border-top: 3px solid var(--holos-brand-cyan);
}

.fd-ops-departures {
    border-top: 3px solid #e8a838;
}

.fd-ops-panel-head {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-bottom: 0.75rem;
}

.fd-ops-panel-head h3 {
    margin: 0;
    font-size: 1rem;
}

.fd-ops-panel-head p {
    margin: 0.15rem 0 0;
    font-size: 0.85rem;
}

.fd-ops-kpi {
    font-size: 1.65rem;
    font-weight: 700;
    line-height: 1;
    min-width: 2rem;
}

.fd-ops-arrivals .fd-ops-kpi { color: var(--holos-brand-blue); }
.fd-ops-inhouse .fd-ops-kpi { color: var(--holos-brand-cyan); }
.fd-ops-departures .fd-ops-kpi { color: var(--holos-brand-purple); }

.fd-ops-alert {
    font-size: 0.85rem;
    margin: 0 0 0.5rem;
    padding: 0.35rem 0.5rem;
    border-radius: 4px;
    background: rgba(201, 162, 39, 0.15);
    color: #e8c547;
}

.fd-ops-alert-balance {
    background: rgba(232, 168, 56, 0.2);
    color: #f0c070;
}

.fd-ops-list {
    list-style: none;
    margin: 0;
    padding: 0;
    flex: 1;
    overflow-y: auto;
    max-height: 26rem;
}

.fd-ops-item {
    display: flex;
    align-items: stretch;
    gap: 0.35rem;
    border-bottom: 1px solid var(--holos-border);
}

.fd-ops-item-open {
    flex: 1;
    min-width: 0;
    padding: 0.45rem 0.35rem;
    border: none;
    border-radius: 4px;
    background: transparent;
    color: inherit;
    text-align: left;
    cursor: pointer;
    font: inherit;
}

.fd-ops-item-open:hover {
    background: rgba(255, 255, 255, 0.04);
}

.fd-ops-item-actions {
    display: flex;
    align-items: center;
    flex-shrink: 0;
    padding: 0.25rem 0.15rem 0.25rem 0;
}

.fd-ops-room {
    display: inline-block;
    min-width: 2.5rem;
    padding: 0.05rem 0.35rem;
    margin-right: 0.25rem;
    border-radius: 4px;
    background: rgba(59, 130, 246, 0.12);
    color: var(--holos-brand-blue);
    font-size: 0.82rem;
}

.fd-ops-balance-warn {
    color: #e8a838;
}

.fd-ops-item-alert {
    box-shadow: inset 3px 0 0 #c9a227;
}

.fd-ops-item-alert .fd-ops-item-open {
    padding-left: 0.5rem;
}

.fd-ops-item-main {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem 0.5rem;
    align-items: baseline;
}

.fd-ops-item-meta {
    font-size: 0.82rem;
    color: var(--holos-muted);
    margin-top: 0.2rem;
}

.fd-ops-empty {
    color: var(--holos-muted);
    font-size: 0.9rem;
    padding: 0.5rem 0;
}

.fd-ops-more {
    display: inline-block;
    margin-top: 0.75rem;
    font-size: 0.9rem;
}

.fd-ops-more-hint {
    font-size: 0.8rem;
    margin: 0.25rem 0 0;
}

.fd-dash-search {
    margin-bottom: 1rem;
}

@media (max-width: 960px) {
    .fd-dash-command-sep {
        display: none;
    }

    .fd-dash-date-group {
        flex-basis: 100%;
    }

    .fd-ops-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 640px) {
    .fd-dash-search-form,
    .fd-dash-date-group {
        flex-basis: 100%;
    }

    .fd-dash-search-controls {
        width: 100%;
    }
}

.fd-dash-links {
    margin-top: 1rem;
}

.fd-detail-load-error .hk-empty-guide {
    padding: 1.25rem 1rem;
    text-align: center;
}

.fd-guest-stepper {
    margin: 0 0 0.85rem;
    padding: 0.75rem 1rem;
    border: 1px solid var(--holos-border, #e2e8f0);
    border-radius: 0.5rem;
    background: var(--holos-surface-muted, #f8fafc);
}

.fd-guest-stepper-track {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.5rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.fd-guest-stepper-step {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.35rem;
    text-align: center;
    position: relative;
}

.fd-guest-stepper-step:not(:last-child)::after {
    content: "";
    position: absolute;
    top: 0.45rem;
    left: calc(50% + 0.55rem);
    width: calc(100% - 1.1rem);
    height: 2px;
    background: var(--holos-border, #e2e8f0);
    z-index: 0;
}

.fd-guest-stepper-step.is-complete:not(:last-child)::after {
    background: var(--holos-primary, #2563eb);
}

.fd-guest-stepper-dot {
    width: 0.95rem;
    height: 0.95rem;
    border-radius: 50%;
    border: 2px solid var(--holos-border, #cbd5e1);
    background: #fff;
    position: relative;
    z-index: 1;
}

.fd-guest-stepper-step.is-complete .fd-guest-stepper-dot,
.fd-guest-stepper-step.is-current .fd-guest-stepper-dot {
    border-color: var(--holos-primary, #2563eb);
    background: var(--holos-primary, #2563eb);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--holos-primary, #2563eb) 18%, transparent);
}

.fd-guest-stepper-label {
    font-size: 0.72rem;
    font-weight: 600;
    color: var(--holos-text-secondary, #64748b);
    line-height: 1.2;
}

.fd-guest-stepper-step.is-current .fd-guest-stepper-label {
    color: var(--holos-primary, #2563eb);
}

.fd-guest-stepper-step.is-complete .fd-guest-stepper-label {
    color: var(--holos-text-primary, #0f172a);
}

.fd-detail-checkin-panel,
.fd-detail-checkout-panel {
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
}

.fd-detail-primary-action {
    width: 100%;
    margin-top: 0.25rem;
}

.fd-detail-action-hint {
    margin: 0;
    font-size: 0.82rem;
}

.fd-detail-checkout-blocked {
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
    padding: 0.75rem 0.85rem;
    border-radius: 0.45rem;
    background: color-mix(in srgb, var(--holos-warning, #f59e0b) 12%, #fff);
    border: 1px solid color-mix(in srgb, var(--holos-warning, #f59e0b) 35%, #e2e8f0);
}

.fd-detail-checkout-blocked-msg {
    margin: 0;
    font-size: 0.88rem;
    color: var(--holos-text-primary, #0f172a);
}

.fd-detail-checkout-credit-notice {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    padding: 0.75rem 0.85rem;
    border-radius: 0.45rem;
    background: color-mix(in srgb, var(--holos-info, #3b82f6) 10%, #fff);
    border: 1px solid color-mix(in srgb, var(--holos-info, #3b82f6) 28%, #e2e8f0);
}

.fd-detail-checkout-credit-notice-msg {
    margin: 0;
    font-size: 0.88rem;
    color: var(--holos-text-primary, #0f172a);
    line-height: 1.45;
}

.fd-detail-secondary {
    border-style: dashed;
}

.fd-detail-secondary-summary {
    cursor: pointer;
    list-style: none;
    padding: 0.15rem 0;
}

.fd-detail-secondary-summary::-webkit-details-marker {
    display: none;
}

.fd-detail-secondary-summary h4 {
    margin: 0;
    font-size: 0.92rem;
    font-weight: 600;
    color: var(--holos-text-secondary, #475569);
}

.fd-detail-secondary-body {
    margin-top: 0.65rem;
    display: flex;
    flex-direction: column;
    gap: 0.55rem;
}

.fd-detail-identity-hint {
    margin-bottom: 0;
}

.fd-detail-identity-panel {
    margin-top: 0;
}

/* Check-in card (recepción) */
.fd-checkin-page {
    max-width: none;
}

.fd-reservation-topbar {
    margin-bottom: 0.75rem;
    padding-bottom: 0.65rem;
    border-bottom: 1px solid var(--holos-border);
}

.fd-reservation-subtitle {
    margin: 0.25rem 0 0;
}

.fd-reservation-back {
    margin: 0.35rem 0 0;
    font-size: 0.9rem;
}

.fd-reservation-workspace {
    display: grid;
    grid-template-columns: minmax(0, 1fr) min(22rem, 32vw);
    gap: 1rem;
    align-items: start;
}

.fd-reservation-main {
    min-width: 0;
    max-height: calc(100vh - 10.5rem);
    overflow-y: auto;
    overflow-x: auto;
    padding-right: 0.35rem;
    scroll-behavior: smooth;
}

.fd-folio-enterprise-page .fd-reservation-main {
    overflow-x: visible;
}

.fd-reservation-sidebar {
    position: sticky;
    top: 5.75rem;
    align-self: start;
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
    max-height: calc(100vh - 6.5rem);
}

.fd-sidebar-card {
    margin: 0;
    padding: 0.85rem 1rem;
}

.fd-sidebar-card h2 {
    font-size: 0.8rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--holos-muted);
    margin: 0 0 0.5rem;
    font-weight: 600;
}

.fd-sidebar-card .fd-checkin-name {
    font-size: 1.1rem;
    margin-bottom: 0.5rem;
}

.fd-sidebar-facts > div {
    grid-template-columns: 5.5rem 1fr;
    gap: 0.35rem;
}

.fd-sidebar-facts dt {
    font-size: 0.72rem;
}

.fd-sidebar-facts dd {
    font-size: 0.88rem;
}

.fd-sidebar-room {
    margin: 0 0 0.5rem;
    font-size: 1rem;
}

.fd-sidebar-account {
    border-color: rgba(10, 132, 255, 0.35);
    background: linear-gradient(180deg, rgba(10, 132, 255, 0.08) 0%, transparent 100%);
}

.fd-sidebar-folio-ref {
    margin: 0 0 0.5rem;
    font-size: 0.8rem;
}

.fd-sidebar-totals {
    margin-bottom: 0.5rem;
    gap: 0.75rem;
}

.fd-sidebar-totals dd {
    font-size: 0.95rem;
}

.fd-sidebar-balance {
    margin: 0.35rem 0 0.25rem;
    font-size: 0.95rem;
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
}

.fd-sidebar-balance strong {
    font-size: 1.45rem;
    line-height: 1.2;
}

.fd-sidebar-grand {
    margin: 0;
    font-size: 0.82rem;
}

.fd-sidebar-hint {
    margin: 0.65rem 0 0;
    font-size: 0.8rem;
}

.fd-sidebar-alert {
    margin: 0;
    font-size: 0.85rem;
}

.fd-reservation-main .folio-account {
    margin-bottom: 0.75rem;
}

.fd-reservation-main .folio-lines-wrap {
    max-height: none;
}

@media (max-width: 1024px) {
    .fd-reservation-workspace {
        grid-template-columns: 1fr;
    }

    .fd-reservation-sidebar {
        position: static;
        max-height: none;
        order: -1;
    }

    .fd-reservation-main {
        max-height: none;
        overflow: visible;
        padding-right: 0;
    }
}

.fd-checkin-header {
    align-items: flex-start;
    gap: 1rem;
}

.fd-checkin-alert-banner {
    background: rgba(201, 162, 39, 0.12);
    border: 1px solid #c9a227;
    border-radius: 8px;
    padding: 0.75rem 1rem;
    margin-bottom: 1rem;
}

.fd-checkin-alert-banner p {
    margin: 0.35rem 0 0;
}

.fd-checkin-card {
    margin-bottom: 1rem;
}

.fd-checkin-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.25rem 1.5rem;
}

.fd-checkin-block h2 {
    font-size: 0.85rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--holos-muted);
    margin: 0 0 0.5rem;
    font-weight: 600;
}

.fd-checkin-name {
    font-size: 1.25rem;
    font-weight: 600;
    margin: 0 0 0.75rem;
}

.fd-checkin-facts {
    display: grid;
    gap: 0.5rem;
    margin: 0;
}

.fd-checkin-facts > div {
    display: grid;
    grid-template-columns: 6.5rem 1fr;
    gap: 0.5rem;
    margin: 0;
}

.fd-checkin-facts dt {
    margin: 0;
    font-size: 0.8rem;
    color: var(--holos-muted);
}

.fd-checkin-facts dd {
    margin: 0;
    font-weight: 500;
}

.fd-checkin-link {
    display: inline-block;
    margin-top: 0.75rem;
    font-size: 0.9rem;
}

.fd-checkin-balance {
    font-size: 1.1rem;
    margin: 0 0 0.35rem;
}

.fd-balance-due strong {
    color: #e8a838;
}

.fd-checkin-details {
    margin-bottom: 0.75rem;
}

.fd-checkin-details summary {
    cursor: pointer;
    font-weight: 600;
    padding: 0.25rem 0;
}

.fd-checkin-payment {
    margin-bottom: 1rem;
}

.fd-checkin-payment h2 {
    margin-top: 0;
}

.fd-checkin-action-panel {
    margin-top: 1rem;
}

.fd-checkin-action-panel h2 {
    margin-top: 0;
}

.fd-room-move-block {
    margin-top: 1.25rem;
    padding-top: 1rem;
    border-top: 1px solid var(--holos-border, rgba(255, 255, 255, 0.12));
}

.fd-room-move-block h3 {
    margin: 0 0 0.5rem;
    font-size: 1rem;
}

.fd-checkin-room-assigned {
    font-size: 1.15rem;
    margin: 0 0 0.75rem;
}

.fd-room-select {
    min-height: 2.75rem;
    font-size: 1rem;
}

.status-badge.status-pending {
    border-color: #5b9bd5;
    color: #7eb8e8;
}

.status-badge.status-inhouse {
    border-color: var(--holos-accent);
    color: var(--holos-accent);
}

@media (max-width: 900px) {
    .fd-checkin-grid {
        grid-template-columns: 1fr;
    }

    .fd-checkin-facts > div {
        grid-template-columns: 5.5rem 1fr;
    }
}

@media (max-width: 1024px) {
    .fd-ops-grid {
        grid-template-columns: 1fr;
    }

    .fd-ops-list {
        max-height: none;
    }
}

.fd-inhouse-hint {
    margin: 0 0 0.75rem;
}

.fd-inhouse-filters {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-bottom: 1rem;
}

.fd-inhouse-table-wrap {
    margin-bottom: 1rem;
}

.fd-inhouse-table tbody tr {
    cursor: pointer;
}

.fd-inhouse-table tbody tr:hover {
    background: rgba(255, 255, 255, 0.03);
}

.fd-row-alert {
    box-shadow: inset 3px 0 0 #c9a227;
}

.fd-row-overdue {
    box-shadow: inset 3px 0 0 #e74c3c;
}

.fd-room-lg {
    color: var(--holos-accent);
    font-size: 1.1rem;
}

.fd-inhouse-cards {
    display: none;
}

@media (max-width: 768px) {
    .fd-inhouse-table-wrap {
        display: none;
    }

    .fd-inhouse-cards {
        display: grid;
    }
}

.fd-notes-preview {
    color: #e8c547;
}

.fd-notes-panel {
    border-color: #c9a227;
}

.fd-note-block {
    margin-bottom: 1rem;
}

.fd-note-block h3 {
    margin: 0 0 0.35rem;
    font-size: 0.9rem;
    color: var(--holos-muted);
}

.fd-note-critical h3 {
    color: #e8c547;
}

.fd-note-critical p {
    background: rgba(201, 162, 39, 0.1);
    padding: 0.5rem 0.75rem;
    border-radius: 6px;
}

.guest-search-row {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 0.5rem;
}

.guest-search-row input {
    flex: 1;
    min-width: 12rem;
}

.btn-secondary {
    padding: 0.5rem 1rem;
    background: var(--holos-surface);
    border: 1px solid var(--holos-border);
    border-radius: 6px;
    color: var(--holos-text);
    cursor: pointer;
}

.guest-search-results {
    list-style: none;
    margin: 0 0 1rem;
    padding: 0;
    border: 1px solid var(--holos-border);
    border-radius: 8px;
    overflow: hidden;
}

.guest-search-results li + li {
    border-top: 1px solid var(--holos-border);
}

.guest-pick-btn {
    display: block;
    width: 100%;
    text-align: left;
    padding: 0.65rem 1rem;
    background: var(--holos-surface);
    border: none;
    color: var(--holos-text);
    cursor: pointer;
}

.guest-pick-btn:hover {
    background: rgba(61, 214, 198, 0.1);
}

.guest-selected {
    background: rgba(61, 214, 198, 0.1);
    padding: 0.5rem 0.75rem;
    border-radius: 6px;
    margin-bottom: 1rem;
}

.fd-edit-hint {
    margin-top: 1rem;
    font-size: 0.85rem;
}

/* Home dashboard (Opera-style) */
.home-ops-date {
    margin-bottom: 1rem;
}

.home-ops-date .fd-ops-date-row label {
    color: var(--holos-card-text);
}

.home-ops-date .fd-ops-date-hint {
    color: var(--holos-card-muted);
    font-size: 0.9rem;
}

.home-dashboard {
    margin-bottom: 2rem;
}

.home-dash-header {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.25rem;
}

.home-dash-header-compact {
    margin-bottom: 0.65rem;
}

.home-dash-header-compact .home-dash-date {
    margin: 0.15rem 0 0;
    font-size: 0.88rem;
}

.home-dash-property-code {
    margin: 0;
    font-size: 0.8rem;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--holos-muted);
}

.home-dash-property-name {
    margin: 0.15rem 0;
    font-size: 1.75rem;
    font-weight: 700;
    color: var(--holos-text);
}

.home-dash-date {
    margin: 0;
    color: var(--holos-muted);
    text-transform: capitalize;
}

.home-dash-header-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.home-dash-cta {
    text-decoration: none;
    display: inline-flex;
    align-items: center;
}

.home-kpi-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1rem;
    margin-bottom: 1rem;
}

.home-kpi-card {
    background: var(--holos-card);
    color: var(--holos-card-text);
    border-radius: var(--holos-radius);
    padding: 1.1rem 1.25rem;
    box-shadow: var(--holos-shadow-card);
    border: 1px solid var(--holos-border);
    border-top: 4px solid var(--holos-kpi-inhouse);
}

.home-kpi-card h2 {
    margin: 0 0 0.75rem;
    font-size: 1rem;
    color: var(--holos-card-muted);
    font-weight: 600;
}

.home-kpi-arrivals { border-top-color: var(--holos-kpi-arrival); }
.home-kpi-inhouse { border-top-color: var(--holos-kpi-inhouse); }
.home-kpi-departures { border-top-color: var(--holos-kpi-departure); }

.home-kpi-icon {
    float: right;
    font-size: 1.5rem;
    opacity: 0.35;
    line-height: 1;
}

.home-kpi-split {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
}

.home-kpi-label {
    margin: 0 0 0.25rem;
    font-size: 0.8rem;
    color: var(--holos-card-muted);
}

.home-kpi-metric {
    margin: 0;
    font-size: 1rem;
}

.home-kpi-metric strong {
    font-size: 1.75rem;
    font-weight: 700;
}

.home-kpi-metric-lg strong {
    font-size: 2.25rem;
}

.home-kpi-guests {
    margin: 0.35rem 0 0;
    font-size: 0.85rem;
    color: var(--holos-card-muted);
}

.home-kpi-alert {
    margin: 0.75rem 0 0;
    font-size: 0.8rem;
    padding: 0.4rem 0.55rem;
    border-radius: 6px;
    background: rgba(245, 158, 11, 0.15);
    color: #b45309;
}

.home-arrival-progress {
    position: relative;
    height: 2rem;
    background: #e2e8f0;
    border-radius: 999px;
    overflow: hidden;
    margin-bottom: 0.75rem;
}

.home-arrival-bar {
    height: 100%;
    background: linear-gradient(90deg, #3b82f6, #60a5fa);
    border-radius: 999px;
    transition: width 0.4s ease;
}

.home-arrival-count {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    font-size: 0.9rem;
    color: #1e3a5f;
}

.home-panel-light {
    background: var(--holos-card);
    color: var(--holos-card-text);
    border-radius: var(--holos-radius);
    padding: 1.25rem;
    border: 1px solid var(--holos-border);
    box-shadow: var(--holos-shadow-card);
    margin-bottom: 1rem;
}

.home-panel-light h2 {
    margin: 0 0 0.35rem;
    color: var(--holos-card-text);
}

.home-panel-light .muted {
    color: var(--holos-card-muted);
}

.home-panel-light .btn-secondary {
    background: #e2e8f0;
    color: #1e293b;
    border: 1px solid #cbd5e1;
}

.home-panel-light .btn-secondary:hover {
    background: #cbd5e1;
}

.home-room-status-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
    gap: 0.75rem;
    margin-top: 1rem;
}

.home-room-bucket {
    border-radius: 10px;
    padding: 0.85rem;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
}

.home-room-bucket h3 {
    margin: 0 0 0.5rem;
    font-size: 0.9rem;
}

.home-room-bucket dl {
    margin: 0;
    display: grid;
    gap: 0.35rem;
}

.home-room-bucket dl div {
    display: flex;
    justify-content: space-between;
    font-size: 0.85rem;
}

.home-room-bucket dt {
    color: var(--holos-card-muted);
}

.home-room-bucket dd {
    margin: 0;
    font-weight: 700;
}

.home-room-bucket-clean { border-left: 3px solid #22c55e; }
.home-room-bucket-dirty { border-left: 3px solid #ef4444; }
.home-room-bucket-inspected { border-left: 3px solid #3b82f6; }
.home-room-bucket-ooo { border-left: 3px solid #94a3b8; }

.home-room-link {
    display: inline-block;
    margin-top: 0.75rem;
    font-size: 0.9rem;
}

.home-section-title {
    margin: 0 0 0.75rem;
    font-size: 1.1rem;
    color: var(--holos-text);
}

.home-ops-section .fd-ops-panel {
    background: var(--holos-card);
    color: var(--holos-card-text);
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.1);
}

.home-ops-section .fd-ops-panel-head p,
.home-ops-section .fd-ops-item-meta,
.home-ops-section .fd-ops-empty,
.home-ops-section .fd-ops-more-hint {
    color: var(--holos-card-muted);
}

.home-ops-section .fd-ops-item-main .muted {
    color: var(--holos-card-muted);
}

.home-ops-section .fd-ops-title {
    color: var(--holos-text);
}

.home-quick-links {
    margin-top: 0.5rem;
}

.home-quick-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 0.75rem;
}

.home-quick-card {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    padding: 1rem;
    border-radius: 10px;
    background: var(--holos-surface);
    border: 1px solid var(--holos-border);
    text-decoration: none;
    color: var(--holos-text);
    transition: border-color 0.15s, transform 0.15s;
}

.home-quick-card:hover {
    border-color: var(--holos-accent);
    transform: translateY(-2px);
}

.home-quick-card .muted {
    font-size: 0.8rem;
}

.home-quick-icon {
    font-size: 1.25rem;
    color: var(--holos-accent);
    font-weight: 700;
}

/* ═══════════════════ Reception home (compact dashboard) ═══════════════════ */

.reception-home {
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
    max-height: calc(100vh - 5.5rem);
    overflow: hidden;
}

.reception-home-header {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
    padding: 0.35rem 0 0.5rem;
    border-bottom: 1px solid var(--holos-border);
}

.reception-home-title h1 {
    margin: 0;
    font-size: 1.35rem;
    font-weight: 700;
    line-height: 1.2;
    color: var(--holos-text);
}

.reception-home-eyebrow {
    margin: 0;
    font-size: 0.68rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--holos-muted);
}

.reception-home-date {
    margin: 0.15rem 0 0;
    font-size: 0.82rem;
    color: var(--holos-muted);
    text-transform: capitalize;
}

.reception-home-toolbar {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    flex-wrap: wrap;
}

.reception-home-toolbar-label {
    font-size: 0.72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--holos-muted);
}

.reception-home-date-input {
    font-size: 0.85rem;
    padding: 0.35rem 0.5rem;
    border: 1px solid var(--holos-border);
    border-radius: 8px;
    background: var(--holos-surface);
    color: var(--holos-text);
}

.reception-home-kpis {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 0.55rem;
}

.reception-kpi {
    background: #fff;
    border: 1px solid var(--holos-border);
    border-radius: 10px;
    padding: 0.55rem 0.65rem;
    box-shadow: 0 1px 3px rgba(15, 23, 42, 0.06);
    display: flex;
    flex-direction: column;
    gap: 0.05rem;
    min-height: 4.25rem;
}

.reception-kpi-value {
    font-size: 1.55rem;
    font-weight: 700;
    line-height: 1.1;
    color: var(--holos-brand-primary, #2563eb);
}

.reception-kpi-label {
    font-size: 0.68rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--holos-muted);
}

.reception-kpi-sub {
    font-size: 0.72rem;
    color: var(--holos-muted);
}

.reception-kpi-warn .reception-kpi-value {
    color: #d97706;
}

.reception-kpi-info .reception-kpi-value {
    color: #0284c7;
}

.reception-kpi-accent .reception-kpi-value {
    color: #1d4ed8;
}

.reception-insights {
    background: linear-gradient(135deg, #eff6ff 0%, #fff 100%);
    border: 1px solid rgba(37, 99, 235, 0.22);
    border-radius: 10px;
    padding: 0.45rem 0.55rem 0.5rem;
    box-shadow: 0 1px 4px rgba(37, 99, 235, 0.08);
}

.reception-insights-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.5rem;
    padding: 0.15rem 0.35rem 0.35rem;
}

.reception-insights-head h2 {
    margin: 0;
    font-size: 0.78rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #1e40af;
}

.reception-insights-lead {
    margin: 0.1rem 0 0;
    font-size: 0.72rem;
    color: var(--holos-muted);
}

.reception-insights-count {
    font-size: 0.78rem;
    font-weight: 700;
    color: #1d4ed8;
    background: #fff;
    border: 1px solid rgba(37, 99, 235, 0.25);
    border-radius: 999px;
    padding: 0.15rem 0.5rem;
    white-space: nowrap;
}

.reception-insights-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
}

.reception-insight-open {
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: 0.45rem;
    align-items: center;
    width: 100%;
    padding: 0.4rem 0.5rem;
    border: 1px solid rgba(37, 99, 235, 0.12);
    border-radius: 8px;
    background: #fff;
    text-align: left;
    font: inherit;
    color: inherit;
    cursor: pointer;
    transition: border-color 0.12s, box-shadow 0.12s;
}

.reception-insight-open:hover {
    border-color: rgba(37, 99, 235, 0.35);
    box-shadow: 0 2px 6px rgba(37, 99, 235, 0.1);
}

.reception-insight-icon {
    font-size: 1rem;
    line-height: 1;
}

.reception-insight-body {
    display: flex;
    flex-direction: column;
    gap: 0.05rem;
    min-width: 0;
}

.reception-insight-body strong {
    font-size: 0.8rem;
    color: var(--holos-text);
}

.reception-insight-summary {
    font-size: 0.72rem;
    color: var(--holos-muted);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.reception-insight-meta {
    font-size: 0.68rem;
    color: var(--holos-muted);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.reception-insight-ref {
    font-size: 0.68rem;
    font-weight: 700;
    color: #2563eb;
    white-space: nowrap;
}

.reception-insight-side {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 0.2rem;
}

.reception-insight-depts {
    display: flex;
    flex-wrap: wrap;
    gap: 0.2rem;
    justify-content: flex-end;
}

.dept-badge {
    font-size: 0.6rem;
    font-weight: 700;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    padding: 0.1rem 0.35rem;
    border-radius: 4px;
    border: 1px solid var(--holos-border);
    background: #f8fafc;
    color: var(--holos-muted);
}

.dept-badge-1 { color: #1d4ed8; border-color: rgba(37, 99, 235, 0.35); background: #eff6ff; }
.dept-badge-2 { color: #7c3aed; border-color: rgba(124, 58, 237, 0.35); background: #f5f3ff; }
.dept-badge-3 { color: #059669; border-color: rgba(5, 150, 105, 0.35); background: #ecfdf5; }
.dept-badge-4 { color: #c2410c; border-color: rgba(194, 65, 12, 0.35); background: #fff7ed; }
.dept-badge-5 { color: #475569; border-color: rgba(71, 85, 105, 0.35); background: #f1f5f9; }
.dept-badge-6 { color: #0e7490; border-color: rgba(14, 116, 144, 0.35); background: #ecfeff; }

.dept-insights {
    margin-bottom: 0.65rem;
    border: 1px solid rgba(37, 99, 235, 0.18);
    background: linear-gradient(135deg, #f8fbff 0%, #fff 100%);
}

.dept-insights-loading {
    padding: 0.65rem 0.85rem;
}

.dept-insights-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.5rem;
    margin-bottom: 0.45rem;
}

.dept-insights-head h2 {
    margin: 0;
    font-size: 0.9rem;
    font-weight: 700;
}

.dept-insights-lead {
    margin: 0.15rem 0 0;
    font-size: 0.75rem;
    color: var(--holos-muted);
}

.dept-insights-count {
    font-size: 0.78rem;
    font-weight: 700;
    color: #1d4ed8;
    background: #fff;
    border: 1px solid rgba(37, 99, 235, 0.25);
    border-radius: 999px;
    padding: 0.15rem 0.5rem;
}

.dept-insights-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.dept-insight-open {
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: 0.45rem;
    align-items: center;
    width: 100%;
    padding: 0.45rem 0.55rem;
    border: 1px solid var(--holos-border);
    border-radius: 8px;
    background: #fff;
    text-align: left;
    font: inherit;
    color: inherit;
    cursor: pointer;
}

.dept-insight-open:hover {
    border-color: rgba(37, 99, 235, 0.35);
    box-shadow: 0 2px 6px rgba(37, 99, 235, 0.08);
}

.dept-insight-body {
    display: flex;
    flex-direction: column;
    gap: 0.05rem;
    min-width: 0;
}

.dept-insight-body strong {
    font-size: 0.82rem;
}

.dept-insight-summary,
.dept-insight-meta {
    font-size: 0.72rem;
    color: var(--holos-muted);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.dept-insight-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 0.2rem;
    justify-content: flex-end;
}

.dept-insight.priority-critical .dept-insight-open {
    border-color: rgba(220, 38, 38, 0.35);
    background: #fffafb;
}

.dept-insight.priority-high .dept-insight-open {
    border-color: rgba(217, 119, 6, 0.35);
}

.dept-insights-list-compact {
    max-height: 7.5rem;
    overflow-y: auto;
}

.dept-insight-open-compact {
    grid-template-columns: auto 1fr auto;
}

.dept-insight-open-compact .dept-insight-meta {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.dept-insight-conf {
    font-size: 0.68rem;
    font-weight: 700;
    color: #2563eb;
    white-space: nowrap;
}

.dept-insights-footer {
    margin-top: 0.35rem;
    padding-top: 0.35rem;
    border-top: 1px solid var(--holos-border);
    font-size: 0.75rem;
}

.dept-insights-footer a {
    font-weight: 600;
    text-decoration: none;
}

/* Compact insights strip (home dashboard) */
.insights-strip {
    background: linear-gradient(135deg, #eff6ff 0%, #fff 100%);
    border: 1px solid rgba(37, 99, 235, 0.2);
    border-radius: 10px;
    padding: 0.4rem 0.55rem 0.45rem;
    box-shadow: 0 1px 3px rgba(37, 99, 235, 0.06);
}

.insights-strip-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    margin-bottom: 0.35rem;
}

.insights-strip-title-row {
    display: flex;
    align-items: baseline;
    gap: 0.45rem;
}

.insights-strip-head h2 {
    margin: 0;
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #1e40af;
}

.insights-strip-stats {
    font-size: 0.72rem;
    color: var(--holos-muted);
}

.insights-strip-urgent {
    color: #d97706;
    font-weight: 600;
}

.insights-strip-workspace-link {
    font-size: 0.72rem;
    font-weight: 600;
    text-decoration: none;
    white-space: nowrap;
}

.insights-strip-filters {
    display: flex;
    flex-wrap: wrap;
    gap: 0.25rem;
    margin-bottom: 0.35rem;
}

.insights-filter-chip {
    border: 1px solid var(--holos-border);
    background: #fff;
    border-radius: 999px;
    padding: 0.15rem 0.45rem;
    font-size: 0.65rem;
    font-weight: 600;
    color: var(--holos-muted);
    cursor: pointer;
}

.insights-filter-chip.active {
    background: var(--holos-brand-primary, #2563eb);
    border-color: var(--holos-brand-primary, #2563eb);
    color: #fff;
}

.insights-filter-chip.insights-filter-urgent.active {
    background: #d97706;
    border-color: #d97706;
}

.insights-strip-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
}

.insights-strip-open {
    display: grid;
    grid-template-columns: auto 1fr auto auto;
    gap: 0.4rem;
    align-items: center;
    width: 100%;
    padding: 0.28rem 0.4rem;
    border: 1px solid rgba(37, 99, 235, 0.1);
    border-radius: 6px;
    background: #fff;
    text-align: left;
    font: inherit;
    color: inherit;
    cursor: pointer;
}

.insights-strip-open:hover {
    border-color: rgba(37, 99, 235, 0.3);
}

.insights-strip-main {
    min-width: 0;
    display: flex;
    align-items: baseline;
    gap: 0.35rem;
}

.insights-strip-main strong {
    font-size: 0.76rem;
    white-space: nowrap;
}

.insights-strip-meta {
    font-size: 0.68rem;
    color: var(--holos-muted);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.insights-strip-depts {
    display: flex;
    gap: 0.15rem;
}

.insights-strip-conf {
    font-size: 0.65rem;
    font-weight: 700;
    color: #2563eb;
    white-space: nowrap;
}

.insights-strip-footer {
    margin-top: 0.3rem;
    font-size: 0.72rem;
}

.insights-strip-footer a {
    font-weight: 600;
    text-decoration: none;
}

.insights-strip-row.priority-critical .insights-strip-open {
    border-color: rgba(220, 38, 38, 0.3);
    background: #fffafb;
}

.insights-strip-row.priority-high .insights-strip-open {
    border-color: rgba(217, 119, 6, 0.3);
}

/* Full insights workspace */
.insights-workspace-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 0.65rem;
    padding: 0.65rem 0.85rem;
}

.insights-workspace-filters {
    display: flex;
    flex-wrap: wrap;
    gap: 0.3rem;
}

.insights-workspace-search {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    min-width: 14rem;
}

.insights-workspace-search label {
    font-size: 0.68rem;
    font-weight: 600;
    text-transform: uppercase;
    color: var(--holos-muted);
}

.insights-workspace-search input {
    font-size: 0.85rem;
    padding: 0.35rem 0.5rem;
    border: 1px solid var(--holos-border);
    border-radius: 8px;
}

.insights-workspace-table-wrap {
    padding: 0.65rem 0.85rem;
}

.insights-workspace-count {
    margin: 0 0 0.4rem;
    font-size: 0.78rem;
}

.insights-workspace-scroll {
    max-height: calc(100vh - 16rem);
}

.insights-workspace-table .insights-ws-summary {
    font-size: 0.72rem;
    max-width: 28rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.insights-ws-depts {
    display: flex;
    flex-wrap: wrap;
    gap: 0.15rem;
}

.insights-ws-conf {
    font-size: 0.72rem;
}

.insights-ws-row.priority-critical {
    background: rgba(254, 242, 242, 0.6);
}

.insights-ws-row.priority-high {
    background: rgba(255, 251, 235, 0.5);
}

.insights-workspace-empty {
    padding: 1rem 0;
}

.reception-insight.priority-critical .reception-insight-open {
    border-color: rgba(220, 38, 38, 0.35);
    background: #fffafb;
}

.reception-insight.priority-high .reception-insight-open {
    border-color: rgba(217, 119, 6, 0.35);
}

.reception-home-split {
    display: grid;
    grid-template-columns: 1.05fr 0.95fr;
    gap: 0.65rem;
    flex: 1;
    min-height: 0;
}

.reception-panel {
    background: #fff;
    border: 1px solid var(--holos-border);
    border-radius: 10px;
    box-shadow: 0 1px 4px rgba(15, 23, 42, 0.06);
    display: flex;
    flex-direction: column;
    min-height: 0;
    overflow: hidden;
}

.reception-panel-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    padding: 0.5rem 0.75rem;
    border-bottom: 1px solid var(--holos-border);
    background: #f8fafc;
}

.reception-panel-head h2 {
    margin: 0;
    font-size: 0.82rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: var(--holos-text);
}

.reception-panel-count {
    font-size: 0.85rem;
    font-weight: 700;
    color: var(--holos-brand-primary, #2563eb);
}

.reception-table-head {
    display: grid;
    grid-template-columns: 3rem 1fr 3.5rem 3.5rem;
    gap: 0.35rem;
    padding: 0.35rem 0.75rem;
    font-size: 0.65rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--holos-muted);
    border-bottom: 1px solid var(--holos-border);
}

.reception-guest-list,
.reception-task-list {
    list-style: none;
    margin: 0;
    padding: 0;
    flex: 1;
    min-height: 0;
}

.reception-guest-row,
.reception-task-row {
    border-bottom: 1px solid var(--holos-border);
}

.reception-guest-row:last-child,
.reception-task-row:last-child {
    border-bottom: none;
}

.reception-guest-open {
    display: grid;
    grid-template-columns: 3rem 1fr 3.5rem 3.5rem;
    gap: 0.35rem;
    align-items: center;
    width: 100%;
    padding: 0.4rem 0.75rem;
    border: none;
    background: transparent;
    text-align: left;
    font: inherit;
    color: inherit;
    cursor: pointer;
    transition: background 0.12s;
}

.reception-guest-open:hover {
    background: #f1f5f9;
}

.reception-guest-row-warn {
    background: rgba(245, 158, 11, 0.06);
}

.reception-room {
    font-weight: 700;
    font-size: 0.85rem;
    color: var(--holos-brand-primary, #2563eb);
}

.reception-guest-name {
    font-size: 0.82rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.reception-departure,
.reception-balance {
    font-size: 0.78rem;
    color: var(--holos-muted);
    text-align: right;
}

.reception-balance-due {
    color: #d97706;
    font-weight: 700;
}

.reception-task-tabs {
    display: flex;
    gap: 0.25rem;
}

.reception-task-tab {
    border: 1px solid var(--holos-border);
    background: #fff;
    border-radius: 999px;
    padding: 0.2rem 0.45rem;
    font-size: 0.68rem;
    font-weight: 600;
    color: var(--holos-muted);
    cursor: pointer;
    white-space: nowrap;
}

.reception-task-tab.active {
    background: var(--holos-brand-primary, #2563eb);
    border-color: var(--holos-brand-primary, #2563eb);
    color: #fff;
}

.reception-task-row {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.25rem 0.5rem 0.25rem 0.65rem;
}

.reception-task-open {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 0.05rem;
    padding: 0.25rem 0;
    border: none;
    background: transparent;
    text-align: left;
    font: inherit;
    color: inherit;
    cursor: pointer;
}

.reception-task-open strong {
    font-size: 0.82rem;
}

.reception-task-open span {
    font-size: 0.72rem;
    color: var(--holos-muted);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.reception-task-open em {
    font-size: 0.72rem;
    font-style: normal;
    font-weight: 600;
    color: #d97706;
}

.reception-empty {
    padding: 1rem 0.75rem;
    font-size: 0.82rem;
    color: var(--holos-muted);
}

.reception-panel-more {
    padding: 0.35rem 0.75rem;
    font-size: 0.75rem;
    border-top: 1px solid var(--holos-border);
    text-decoration: none;
}

.reception-quick-actions {
    display: flex;
    gap: 0.45rem;
    flex-wrap: wrap;
}

.reception-quick-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.45rem 0.85rem;
    border-radius: 8px;
    border: 1px solid var(--holos-border);
    background: #fff;
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.05);
    text-decoration: none;
    font-size: 0.82rem;
    font-weight: 600;
    color: var(--holos-text);
    transition: border-color 0.12s, box-shadow 0.12s;
}

.reception-quick-btn:hover {
    border-color: var(--holos-brand-primary, #2563eb);
    box-shadow: 0 2px 6px rgba(37, 99, 235, 0.12);
}

.reception-quick-primary {
    background: var(--holos-brand-primary, #2563eb);
    border-color: var(--holos-brand-primary, #2563eb);
    color: #fff;
}

.reception-quick-primary:hover {
    background: #1d4ed8;
    color: #fff;
}

.reception-quick-muted {
    margin-left: auto;
    font-weight: 500;
    color: var(--holos-muted);
}

.reception-quick-icon {
    font-size: 0.95rem;
    font-weight: 700;
    opacity: 0.85;
}

.reception-room-bar {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.45rem 0.65rem;
    background: #fff;
    border: 1px solid var(--holos-border);
    border-radius: 10px;
    box-shadow: 0 1px 3px rgba(15, 23, 42, 0.05);
}

.reception-room-stat {
    display: flex;
    align-items: baseline;
    gap: 0.35rem;
    padding: 0.15rem 0.65rem;
    border-right: 1px solid var(--holos-border);
}

.reception-room-stat:last-of-type {
    border-right: none;
}

.reception-room-stat-value {
    font-size: 1.1rem;
    font-weight: 700;
    line-height: 1;
}

.reception-room-stat-label {
    font-size: 0.72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: var(--holos-muted);
}

.reception-room-stat-clean .reception-room-stat-value { color: #16a34a; }
.reception-room-stat-dirty .reception-room-stat-value { color: #dc2626; }
.reception-room-stat-inspected .reception-room-stat-value { color: #2563eb; }
.reception-room-stat-occupied .reception-room-stat-value { color: #475569; }

.reception-room-link {
    margin-left: auto;
    font-size: 0.78rem;
    font-weight: 600;
    text-decoration: none;
    white-space: nowrap;
}

@media (max-width: 1200px) {
    .reception-home-kpis {
        grid-template-columns: repeat(3, 1fr);
    }

    .reception-home-split {
        grid-template-columns: 1fr;
    }

    .reception-home {
        max-height: none;
        overflow: visible;
    }
}

@media (max-width: 768px) {
    .reception-home-kpis {
        grid-template-columns: repeat(2, 1fr);
    }

    .reception-quick-muted {
        margin-left: 0;
        width: 100%;
    }
}

.home-welcome {
    max-width: 520px;
}

@media (max-width: 1100px) {
    .home-kpi-grid {
        grid-template-columns: 1fr;
    }

    .home-quick-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 600px) {
    .home-quick-grid {
        grid-template-columns: 1fr;
    }

    .home-kpi-split {
        grid-template-columns: 1fr;
    }
}

#blazor-error-ui {
    background: #1e293b;
    color: #e2e8f0;
    padding: 0.65rem 1rem;
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    display: none;
    z-index: 10000;
    font-size: 0.875rem;
    box-shadow: 0 -2px 12px rgba(15, 23, 42, 0.25);
    align-items: center;
    gap: 0.75rem;
}

#blazor-error-ui .holos-blazor-error-text {
    flex: 1;
}

#blazor-error-ui .reload {
    color: #93c5fd;
    font-weight: 600;
    text-decoration: none;
    white-space: nowrap;
}

#blazor-error-ui .reload:hover {
    text-decoration: underline;
}

#blazor-error-ui .dismiss {
    cursor: pointer;
    color: #94a3b8;
    font-size: 1.1rem;
    line-height: 1;
    padding: 0.15rem 0.35rem;
}

/* ═══════════════════ Blazor reconnect modal ═══════════════════ */

#components-reconnect-modal {
    display: none;
}

/* TOAST discreto de esquina (7-ago-2026): el velo de pantalla completa tapaba TODO el trabajo en
   cada parpadeo de red — Joseph lo vio y lo odió. La reconexión no es un evento de página entera:
   es un aviso de esquina que deja seguir viendo la pantalla. Sin backdrop a propósito. */
#components-reconnect-modal.components-reconnect-show,
#components-reconnect-modal.components-reconnect-failed,
#components-reconnect-modal.components-reconnect-rejected {
    display: block;
    position: fixed;
    right: 1rem;
    bottom: 1rem;
    z-index: 10001;
    max-width: 22rem;
}

.holos-reconnect-card {
    position: relative;
    z-index: 1;
    background: #fff;
    color: #0f172a;
    border-radius: 0.75rem;
    padding: 1rem 1.25rem;
    box-shadow: 0 12px 30px rgba(15, 23, 42, 0.3);
    border: 1px solid rgba(15, 23, 42, 0.12);
}

.holos-reconnect-card strong {
    display: block;
    font-size: 1.05rem;
    margin-bottom: 0.5rem;
}

.holos-reconnect-card p {
    margin: 0 0 0.75rem;
    line-height: 1.5;
}

.holos-reconnect-panel {
    display: none;
}

#components-reconnect-modal.components-reconnect-show .holos-reconnect-panel--show,
#components-reconnect-modal.components-reconnect-failed .holos-reconnect-panel--failed,
#components-reconnect-modal.components-reconnect-rejected .holos-reconnect-panel--rejected {
    display: block;
}

.holos-reconnect-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-top: 1rem;
}

.holos-reconnect-attempt {
    font-size: 0.875rem;
}

#components-reconnect-modal {
    transition: visibility 0s linear 500ms;
}

/* ═══════════════════ Blazor stability UX (Phase A) ═══════════════════ */

.holos-sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

@keyframes holos-skeleton-shimmer {
    0% { background-position: 200% 0; }
    100% { background-position: -200% 0; }
}

.holos-skeleton-bar,
.holos-skeleton-card,
.holos-skeleton-panel {
    border-radius: 0.5rem;
    background: linear-gradient(90deg, #e2e8f0 0%, #f1f5f9 45%, #e2e8f0 90%);
    background-size: 200% 100%;
    animation: holos-skeleton-shimmer 1.4s ease-in-out infinite;
}

.holos-loading-skeleton {
    padding: 0.5rem 0 1.5rem;
}

.holos-loading-skeleton__header {
    display: grid;
    gap: 0.65rem;
    margin-bottom: 1.25rem;
}

.holos-skeleton-bar--title {
    height: 1.35rem;
    width: min(22rem, 70%);
}

.holos-skeleton-bar--subtitle {
    height: 0.9rem;
    width: min(30rem, 85%);
}

.holos-loading-skeleton__kpis {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(9rem, 1fr));
    gap: 0.75rem;
    margin-bottom: 1.25rem;
}

.holos-skeleton-card {
    height: 4.75rem;
}

.holos-loading-skeleton__body {
    display: grid;
    grid-template-columns: minmax(12rem, 18rem) 1fr;
    gap: 1rem;
}

.holos-skeleton-panel--sidebar {
    min-height: 18rem;
}

.holos-skeleton-panel--main {
    min-height: 18rem;
}

.holos-loading-skeleton__message {
    margin: 1rem 0 0;
    font-size: 0.875rem;
}

.holos-loading-skeleton--inline .holos-skeleton-bar--inline {
    height: 0.85rem;
    width: 100%;
    margin-bottom: 0.5rem;
}

.holos-loading-skeleton--inline .holos-skeleton-bar--short {
    width: 55%;
}

.holos-workspace-refresh-host {
    position: relative;
}

.holos-workspace-refresh-host.is-refreshing {
    pointer-events: none;
}

.holos-workspace-refresh-host.is-refreshing > :not(.holos-workspace-refresh-overlay) {
    opacity: 0.55;
    transition: opacity 0.15s ease;
}

.holos-workspace-refresh-overlay {
    position: absolute;
    inset: 0;
    z-index: 20;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    padding-top: 3rem;
    background: rgba(248, 250, 252, 0.35);
    border-radius: 0.75rem;
}

.holos-workspace-refresh-overlay__card {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.75rem 1rem;
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 0.65rem;
    box-shadow: 0 8px 24px rgba(15, 23, 42, 0.08);
}

.holos-workspace-refresh-spinner {
    width: 1.1rem;
    height: 1.1rem;
    border: 2px solid #cbd5e1;
    border-top-color: #2563eb;
    border-radius: 50%;
    animation: holos-workspace-spin 0.75s linear infinite;
}

@keyframes holos-workspace-spin {
    to { transform: rotate(360deg); }
}

.holos-workspace-refresh-overlay__message {
    margin: 0;
    font-size: 0.9rem;
    color: #334155;
}

@media (max-width: 900px) {
    .holos-loading-skeleton__body {
        grid-template-columns: 1fr;
    }
}

/* ═══════════════════ Fiscal / Facturación Electrónica ═══════════════════ */

.fiscal-toolbar {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.fiscal-filter-row {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
}

.fiscal-table {
    font-size: 0.92rem;
}

.fiscal-type-badge {
    display: inline-block;
    padding: 0.2rem 0.55rem;
    border-radius: 6px;
    font-size: 0.8rem;
    font-weight: 600;
    white-space: nowrap;
}

.fiscal-type-fe  { background: rgba(10, 132, 255, 0.2); color: var(--holos-brand-blue); }
.fiscal-type-te  { background: rgba(0, 229, 255, 0.15); color: var(--holos-brand-cyan); }
.fiscal-type-nc  { background: rgba(245, 158, 11, 0.2); color: var(--holos-accent-warm); }
.fiscal-type-nd  { background: rgba(139, 46, 46, 0.25); color: #ff6b6b; }

.fiscal-status-accepted  { background: rgba(61, 214, 198, 0.2); color: #3dd6c6; }
.fiscal-status-sent      { background: rgba(10, 132, 255, 0.2); color: var(--holos-brand-blue); }
.fiscal-status-rejected  { background: rgba(139, 46, 46, 0.25); color: #ff6b6b; }
.fiscal-status-draft     { background: rgba(139, 157, 195, 0.15); color: var(--holos-muted); }
.fiscal-status-error     { background: rgba(139, 46, 46, 0.25); color: #ff6b6b; }

.fiscal-detail-grid {
    display: grid;
    grid-template-columns: 1fr 320px;
    gap: 1rem;
    margin-top: 1rem;
}

@media (max-width: 900px) {
    .fiscal-detail-grid {
        grid-template-columns: 1fr;
    }
}

.fiscal-detail-main h2,
.fiscal-detail-status h2 {
    font-size: 1rem;
    color: var(--holos-muted);
    margin-bottom: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.fiscal-detail-fields {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.75rem;
}

@media (max-width: 600px) {
    .fiscal-detail-fields {
        grid-template-columns: 1fr;
    }
}

.fiscal-field {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
}

.fiscal-field-label {
    font-size: 0.78rem;
    color: var(--holos-muted);
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.fiscal-field-value {
    font-size: 0.95rem;
    color: var(--holos-text);
    word-break: break-all;
}

.fiscal-field-mono {
    font-family: 'SF Mono', 'Fira Code', 'Cascadia Code', monospace;
    font-size: 0.82rem;
}

.fiscal-field-total {
    font-size: 1.3rem;
    font-weight: 700;
    color: var(--holos-brand-cyan);
}

.fiscal-status-big {
    display: flex;
    justify-content: center;
    padding: 1rem 0;
}

.fiscal-status-big .status-badge {
    font-size: 1.1rem;
    padding: 0.5rem 1.2rem;
}

.fiscal-xml-section {
    margin-top: 1rem;
}

.fiscal-xml-section summary {
    cursor: pointer;
    color: var(--holos-muted);
    font-weight: 500;
}

.fiscal-xml-pre {
    margin-top: 0.75rem;
    padding: 1rem;
    background: var(--holos-bg);
    border: 1px solid var(--holos-border);
    border-radius: 8px;
    font-family: 'SF Mono', 'Fira Code', monospace;
    font-size: 0.75rem;
    color: var(--holos-muted);
    overflow-x: auto;
    white-space: pre-wrap;
    word-break: break-all;
    max-height: 400px;
    overflow-y: auto;
}

.fd-fiscal-section h2 {
    margin-bottom: 0.75rem;
}

.fiscal-receptor-details {
    margin-top: 0.75rem;
}

.fiscal-receptor-details summary {
    cursor: pointer;
    color: var(--holos-muted);
    font-size: 0.9rem;
}

.fiscal-detail-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-top: 1.25rem;
    padding-top: 1rem;
    border-top: 1px solid var(--holos-border);
}

.fiscal-email-form {
    margin-top: 0.75rem;
    padding: 0.75rem;
    background: var(--holos-bg);
    border: 1px solid var(--holos-border);
    border-radius: 8px;
}

.fiscal-email-form .btn-primary {
    margin-top: 0.5rem;
}

.fiscal-nc-section {
    margin-top: 1rem;
}

.fiscal-nc-section summary {
    cursor: pointer;
    font-weight: 600;
    color: var(--holos-accent-warm);
}

.fiscal-nc-line {
    padding: 0.75rem !important;
    background: var(--holos-bg) !important;
}

.fiscal-config-layout {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
    margin-top: 1rem;
}

.fiscal-config-layout .card h2 {
    margin-bottom: 0.75rem;
}

.fiscal-config-action-buttons {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-top: 0.75rem;
}

.fiscal-connection-test-result {
    margin-bottom: 1rem;
    width: 100%;
}

.fiscal-test-steps {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.fiscal-test-step {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    font-size: 0.9rem;
}

.fiscal-test-step-icon {
    font-weight: 700;
    width: 1.25rem;
    flex-shrink: 0;
}

.fiscal-test-step--ok .fiscal-test-step-icon {
    color: #3dd6c6;
}

.fiscal-test-step--fail .fiscal-test-step-icon {
    color: #f87171;
}

.fiscal-config-actions {
    margin-top: 1.25rem;
    padding-top: 1rem;
    border-top: 1px solid var(--holos-border);
}

@media (max-width: 900px) {
    .fiscal-config-layout {
        grid-template-columns: 1fr;
    }
}

/* ═══════════════════════════════════════════════════════════
   Spa Module
   ═══════════════════════════════════════════════════════════ */

.spa-date-picker {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.75rem 1rem;
    margin-bottom: 1rem;
}

.spa-date-picker label {
    font-weight: 600;
}

.spa-date-picker input[type="date"] {
    padding: 0.35rem 0.5rem;
    border: 1px solid var(--holos-border);
    border-radius: var(--holos-radius-sm, 4px);
    background: var(--holos-surface);
    color: var(--holos-text);
}

.spa-dashboard-stats {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
    gap: 1rem;
    margin-bottom: 1.5rem;
}

.spa-stat-card {
    background: var(--holos-surface);
    border: 1px solid var(--holos-border);
    border-radius: var(--holos-radius, 8px);
    padding: 1rem;
    text-align: center;
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.spa-stat-number {
    font-size: 2rem;
    font-weight: 700;
    color: var(--holos-primary, #5b8dea);
}

.spa-stat-label {
    font-size: 0.85rem;
    color: var(--holos-muted, #999);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.spa-timeline-grid {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.spa-timeline-row {
    display: grid;
    grid-template-columns: 200px 1fr;
    gap: 1rem;
    padding: 0.5rem 0;
    border-bottom: 1px solid var(--holos-border);
    align-items: center;
}

.spa-timeline-label {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
}

.spa-time-range {
    font-size: 0.78rem;
    color: var(--holos-muted, #999);
}

.spa-timeline-slots {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
}

.spa-busy-slot {
    display: inline-block;
    padding: 0.25rem 0.5rem;
    border-radius: 4px;
    background: #5b8dea33;
    color: var(--holos-primary, #5b8dea);
    font-size: 0.8rem;
    white-space: nowrap;
}

.spa-free {
    font-size: 0.8rem;
    color: #50c878;
    font-style: italic;
}

.spa-badge-blocked {
    display: inline-block;
    padding: 0.1rem 0.4rem;
    border-radius: 4px;
    background: #ff4d4d33;
    color: #ff4d4d;
    font-size: 0.75rem;
    font-weight: 600;
}

.spa-status-badge {
    display: inline-block;
    padding: 0.15rem 0.5rem;
    border-radius: 4px;
    font-size: 0.78rem;
    font-weight: 600;
    text-transform: capitalize;
}

.spa-status-pending   { background: #f5a62333; color: #f5a623; }
.spa-status-confirmed { background: #5b8dea33; color: #5b8dea; }
.spa-status-inprogress { background: #9b59b633; color: #9b59b6; }
.spa-status-completed { background: #50c87833; color: #50c878; }
.spa-status-cancelled { background: #ff4d4d33; color: #ff4d4d; }
.spa-status-noshow    { background: #6c757d33; color: #6c757d; }

/* ── Spa Forms ─────────────────────────────────────────── */

.spa-form-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0 2rem;
}

.spa-form-grid .sim-row {
    margin-bottom: 0.85rem;
}

.spa-form-grid .sim-row input,
.spa-form-grid .sim-row select,
.spa-form-grid .sim-row textarea {
    width: 100%;
    box-sizing: border-box;
}

.spa-form-check {
    display: flex;
    align-items: center;
    padding-top: 1.2rem;
}

.spa-form-check label {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    cursor: pointer;
}

.spa-form-check input[type="checkbox"] {
    width: 1.1rem;
    height: 1.1rem;
    accent-color: var(--holos-primary, #5b8dea);
}

.spa-form-actions {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-top: 1.25rem;
    padding-top: 1rem;
    border-top: 1px solid var(--holos-border);
}

.btn-secondary {
    padding: 0.55rem 1rem;
    background: #fff;
    color: var(--holos-text);
    border: 1px solid var(--holos-border-strong);
    border-radius: var(--holos-radius-sm);
    cursor: pointer;
    font-weight: 500;
    transition: background 0.15s, border-color 0.15s;
}

.btn-secondary:hover {
    background: var(--holos-bg);
    border-color: var(--holos-muted);
}

.btn-danger-sm {
    padding: 0.25rem 0.5rem;
    background: rgba(255, 77, 77, 0.15);
    color: #ff4d4d;
    border: 1px solid rgba(255, 77, 77, 0.3);
    border-radius: 4px;
    cursor: pointer;
    font-weight: 600;
    font-size: 0.8rem;
}

.btn-danger-sm:hover {
    background: rgba(255, 77, 77, 0.3);
}

.spa-save-ok {
    color: #50c878;
    font-weight: 600;
    font-size: 0.9rem;
}

.spa-alert-card {
    border-left: 3px solid #f5a623;
}

.spa-alert-card h2 {
    color: #f5a623;
}

.spa-low-value {
    color: #ff4d4d;
    font-weight: 600;
}

.spa-type-badge {
    display: inline-block;
    padding: 0.15rem 0.5rem;
    border-radius: 4px;
    font-size: 0.78rem;
    font-weight: 600;
}

.spa-type-supply { background: #5b8dea22; color: #5b8dea; }
.spa-type-retail { background: #50c87822; color: #50c878; }
.spa-type-both   { background: #9b59b622; color: #9b59b6; }

.spa-recipe-select,
.spa-recipe-input {
    width: 100%;
    padding: 0.4rem;
    border-radius: 6px;
    border: 1px solid var(--holos-border);
    background: var(--holos-bg);
    color: var(--holos-text);
    box-sizing: border-box;
    margin-top: 0.2rem;
}

@media (max-width: 700px) {
    .spa-form-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 700px) {
    .spa-timeline-row {
        grid-template-columns: 1fr;
    }
    .spa-dashboard-stats {
        grid-template-columns: repeat(2, 1fr);
    }
}

/* ═══════════════════ Tours Module ═══════════════════ */

.tour-dashboard-stats {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
    gap: .75rem;
}

.tour-stat-card {
    background: var(--holos-card);
    border: 1px solid var(--holos-border);
    border-radius: 10px;
    padding: 1rem;
    text-align: center;
}

.tour-stat-card.tour-stat-warn {
    border-color: #e6793688;
}

.tour-stat-number {
    display: block;
    font-size: 1.8rem;
    font-weight: 700;
    color: var(--holos-accent);
}

.tour-stat-warn .tour-stat-number {
    color: #e67936;
}

.tour-stat-label {
    display: block;
    font-size: .82rem;
    color: var(--holos-muted);
    margin-top: .15rem;
}

.tour-category-badge {
    display: inline-block;
    padding: .15rem .5rem;
    border-radius: 8px;
    font-size: .72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .3px;
}

.tour-cat-onsite        { background: #3498db22; color: #3498db; }
.tour-cat-offsite       { background: #2ecc7122; color: #2ecc71; }
.tour-cat-adventure     { background: #e6793622; color: #e67936; }
.tour-cat-wellness      { background: #9b59b622; color: #9b59b6; }
.tour-cat-complementary { background: #1abc9c22; color: #1abc9c; }
.tour-cat-private       { background: #f1c40f22; color: #f1c40f; }

.tour-status-badge {
    display: inline-block;
    padding: .15rem .5rem;
    border-radius: 8px;
    font-size: .72rem;
    font-weight: 600;
}

.tour-status-pending   { background: #f39c1222; color: #f39c12; }
.tour-status-confirmed { background: #2ecc7122; color: #2ecc71; }
.tour-status-completed { background: #3498db22; color: #3498db; }
.tour-status-cancelled { background: #e74c3c22; color: #e74c3c; }
.tour-status-noshow    { background: #95a5a622; color: #95a5a6; }

.tour-alert-badge {
    display: inline-block;
    font-size: 1.1rem;
    cursor: help;
}

.tour-actions-row {
    display: flex;
    gap: .3rem;
    flex-wrap: wrap;
    align-items: center;
}

.btn-xs {
    padding: .2rem .5rem;
    font-size: .72rem;
    border-radius: 6px;
    border: 1px solid var(--holos-border);
    background: rgba(255,255,255,0.06);
    color: var(--holos-text);
    cursor: pointer;
    white-space: nowrap;
    transition: background .15s;
}
.btn-xs:hover { background: rgba(255,255,255,0.12); }

.btn-xs.btn-success {
    border-color: #2ecc71;
    color: #2ecc71;
    background: rgba(46,204,113,0.1);
}
.btn-xs.btn-success:hover { background: rgba(46,204,113,0.22); }

.btn-xs.btn-danger {
    border-color: #e74c3c;
    color: #e74c3c;
    background: rgba(231,76,60,0.1);
}
.btn-xs.btn-danger:hover { background: rgba(231,76,60,0.22); }

.btn-xs.btn-warn {
    border-color: #f39c12;
    color: #f39c12;
    background: rgba(243,156,18,0.1);
}
.btn-xs.btn-warn:hover { background: rgba(243,156,18,0.22); }

.report-tour-tag {
    display: inline-block;
    padding: .15rem .45rem;
    margin: .1rem .2rem;
    border-radius: 6px;
    font-size: .75rem;
    background: rgba(255,255,255,0.06);
    border: 1px solid var(--holos-border);
    white-space: nowrap;
}

.guide-assign-list {
    display: flex;
    flex-direction: column;
    gap: .5rem;
}

.guide-assign-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: .6rem .75rem;
    background: rgba(255,255,255,0.04);
    border: 1px solid var(--holos-border);
    border-radius: 8px;
    transition: background .15s;
}

.guide-assign-item:hover {
    background: rgba(255,255,255,0.08);
}

.toast-notification {
    position: fixed;
    bottom: 1.5rem;
    right: 1.5rem;
    padding: .75rem 1.25rem;
    border-radius: 10px;
    font-size: .88rem;
    font-weight: 500;
    z-index: 9999;
    animation: toastIn .3s ease-out;
    box-shadow: 0 4px 20px rgba(0,0,0,0.4);
}

.toast-success {
    background: rgba(46,204,113,0.18);
    border: 1px solid #2ecc71;
    color: #2ecc71;
}

.toast-error {
    background: rgba(231,76,60,0.18);
    border: 1px solid #e74c3c;
    color: #e74c3c;
}

@keyframes toastIn {
    from { opacity: 0; transform: translateY(20px); }
    to   { opacity: 1; transform: translateY(0); }
}

.tour-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: .75rem;
    margin-top: .5rem;
}

.tour-pick-toolbar {
    margin-bottom: .5rem;
}

.tour-pick-search {
    width: 100%;
    max-width: 420px;
    padding: 0.5rem 0.75rem;
    border-radius: 8px;
    border: 1px solid var(--holos-border);
    background: var(--holos-surface);
    color: var(--holos-text);
}

.tour-pick-selected {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.65rem 0.85rem;
    margin-bottom: 0.5rem;
    border-radius: 8px;
    border: 1px solid color-mix(in srgb, var(--holos-accent) 40%, transparent);
    background: color-mix(in srgb, var(--holos-accent) 10%, transparent);
}

.tour-pick-list {
    max-height: min(50vh, 320px);
    overflow-y: auto;
    border: 1px solid var(--holos-border);
    border-radius: 8px;
    background: var(--holos-surface);
}

.tour-pick-item {
    display: flex;
    align-items: flex-start;
    gap: 0.65rem;
    padding: 0.55rem 0.75rem;
    cursor: pointer;
    border-bottom: 1px solid var(--holos-border);
    transition: background 0.12s;
}

.tour-pick-item:last-child {
    border-bottom: none;
}

.tour-pick-item:hover {
    background: color-mix(in srgb, var(--holos-accent) 8%, transparent);
}

.tour-pick-item-main {
    flex: 1;
    min-width: 0;
}

.tour-pick-item-name {
    font-weight: 600;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.tour-pick-item-meta {
    font-size: 0.82rem;
    color: var(--holos-muted);
    margin-top: 0.1rem;
}

.tour-card {
    background: var(--holos-card);
    border: 2px solid var(--holos-border);
    border-radius: 10px;
    padding: .75rem;
    cursor: pointer;
    transition: border-color .15s, box-shadow .15s;
}

.tour-card:hover {
    border-color: var(--holos-accent);
}

.tour-card-selected {
    border-color: var(--holos-accent);
    box-shadow: 0 0 0 2px var(--holos-accent-glow);
}

.tour-card-name {
    font-weight: 600;
    margin-top: .25rem;
}

.tour-card-detail {
    font-size: .82rem;
    color: var(--holos-muted);
    margin-top: .15rem;
}

.tour-booking-section {
    margin-bottom: 1rem;
}

.tour-booking-section > h2 {
    font-size: 1rem;
    margin: 0 0 0.85rem;
    font-weight: 600;
}

.tour-booking-datetime,
.tour-booking-search {
    align-items: flex-end;
}

.tour-booking-datetime .holos-filter-field--narrow .holos-input {
    width: 4.5rem;
    min-width: 4.5rem;
    text-align: center;
}

.tour-booking-datetime .holos-input[type="date"],
.tour-booking-datetime .holos-input[type="time"] {
    min-width: 10.5rem;
}

.holos-input-readonly {
    opacity: 0.85;
    cursor: default;
}

.tour-booking-hint {
    margin: 0.5rem 0 0;
    font-size: 0.8rem;
    line-height: 1.45;
}

.tour-booking-availability {
    margin-top: 1rem;
    padding-top: 0.85rem;
    border-top: 1px solid var(--holos-border);
}

.tour-guest-info {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem 2rem;
}

.tour-guest-alert {
    margin-top: .75rem;
    padding: .75rem 1rem;
    background: rgba(231, 76, 60, 0.12);
    border: 1px solid #e74c3c;
    border-radius: 8px;
    color: #e74c3c;
    display: flex;
    flex-wrap: wrap;
    gap: .25rem .75rem;
    font-size: .9rem;
}

.tour-avail-ok {
    background: #2ecc7118;
    color: #2ecc71;
    border: 1px solid #2ecc7144;
    padding: .5rem .75rem;
    border-radius: 8px;
    font-weight: 600;
}

.tour-avail-fail {
    background: #e74c3c18;
    color: #e74c3c;
    border: 1px solid #e74c3c44;
    padding: .5rem .75rem;
    border-radius: 8px;
}

.tour-avail-fail ul {
    margin: .25rem 0 0 1rem;
    padding: 0;
}

.tour-alternatives {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
    margin-top: .35rem;
}

.tour-success-msg {
    background: #2ecc7118;
    color: #2ecc71;
    border: 1px solid #2ecc7144;
    padding: .5rem .75rem;
    border-radius: 8px;
    margin-top: 1rem;
    font-weight: 600;
}

.tour-error-msg {
    background: #e74c3c18;
    color: #e74c3c;
    border: 1px solid #e74c3c44;
    padding: .5rem .75rem;
    border-radius: 8px;
    margin-top: 1rem;
}

.tour-cap-chip {
    display: inline-flex;
    align-items: center;
    gap: .25rem;
    padding: .2rem .5rem;
    border-radius: 6px;
    border: 1px solid var(--holos-border);
    font-size: .82rem;
    cursor: pointer;
    user-select: none;
}

.tour-cap-chip-active {
    border-color: var(--holos-accent);
    background: var(--holos-accent-glow);
}

.tour-cap-chip input[type="checkbox"] {
    margin: 0;
}

/* ── Modal & Form ─────────────────────────────────── */

.modal-overlay {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.65);
    backdrop-filter: blur(4px);
    z-index: 900;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    padding: 3rem 1rem;
    overflow-y: auto;
}

.modal-card {
    background: var(--holos-surface);
    border: 1px solid var(--holos-border);
    border-radius: 14px;
    padding: 1.5rem 1.75rem;
    width: 100%;
    max-width: 540px;
    box-shadow: 0 12px 48px rgba(0, 0, 0, 0.55);
    animation: modalIn .2s ease-out;
}

@keyframes modalIn {
    from { opacity: 0; transform: translateY(-16px) scale(0.97); }
    to   { opacity: 1; transform: translateY(0) scale(1); }
}

.modal-card h3 {
    margin-top: 0;
    margin-bottom: .75rem;
    font-size: 1.15rem;
    color: var(--holos-text);
}

.modal-card-lg {
    max-width: 720px;
}

.form-grid-2 {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: .75rem;
}

.form-grid-2 > div > label,
.modal-card > div > label {
    font-size: 0.75rem;
    font-weight: 600;
    display: block;
    color: var(--holos-muted);
    margin-bottom: 0.25rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

.form-grid-2 input[type="text"],
.form-grid-2 input[type="number"],
.form-grid-2 input[type="email"],
.form-grid-2 input[type="date"],
.form-grid-2 input[type="time"],
.form-grid-2 select,
.form-grid-2 textarea,
.modal-card input[type="text"],
.modal-card input[type="number"],
.modal-card input[type="email"],
.modal-card input[type="date"],
.modal-card input[type="time"],
.modal-card select,
.modal-card textarea {
    width: 100%;
    padding: 0.5rem 0.75rem;
    min-height: 2.5rem;
    border-radius: var(--holos-radius-sm, 8px);
    border: 1px solid var(--holos-border);
    background-color: #fff;
    color: var(--holos-text);
    color-scheme: light;
    font-size: 0.9rem;
    font-family: inherit;
    transition: border-color 0.15s, background-color 0.15s, box-shadow 0.15s;
    box-sizing: border-box;
}

.form-grid-2 input:hover,
.form-grid-2 select:hover,
.form-grid-2 textarea:hover,
.modal-card input:hover,
.modal-card select:hover,
.modal-card textarea:hover {
    border-color: var(--holos-border-strong);
    background-color: #fff;
}

.form-grid-2 input:focus,
.form-grid-2 select:focus,
.form-grid-2 textarea:focus,
.modal-card input:focus,
.modal-card select:focus,
.modal-card textarea:focus {
    outline: none;
    border-color: var(--holos-brand-primary);
    background-color: #fff;
    box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.15);
}

.modal-card select {
    appearance: none;
    -webkit-appearance: none;
    background-color: #fff;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%2364748b' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 0.65rem center;
    padding-right: 2rem;
    cursor: pointer;
}

.form-grid-2 select {
    appearance: none;
    -webkit-appearance: none;
    background-color: #fff;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%2364748b' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 0.65rem center;
    padding-right: 2rem;
    cursor: pointer;
}

.modal-card select option,
.form-grid-2 select option {
    background: #fff;
    color: var(--holos-text);
}

.form-grid-2 input[type="checkbox"],
.modal-card input[type="checkbox"] {
    appearance: none;
    -webkit-appearance: none;
    width: 1.2rem;
    height: 1.2rem;
    border: 2px solid var(--holos-muted);
    border-radius: 4px;
    background: transparent;
    cursor: pointer;
    position: relative;
    vertical-align: middle;
    flex-shrink: 0;
    transition: background .12s, border-color .12s;
}

.form-grid-2 input[type="checkbox"]:checked,
.modal-card input[type="checkbox"]:checked {
    background: var(--holos-brand-blue);
    border-color: var(--holos-brand-blue);
}

.form-grid-2 input[type="checkbox"]:checked::after,
.modal-card input[type="checkbox"]:checked::after {
    content: "";
    position: absolute;
    top: 1px;
    left: 4px;
    width: 5px;
    height: 9px;
    border: solid #fff;
    border-width: 0 2px 2px 0;
    transform: rotate(45deg);
}

.form-grid-2 input[type="checkbox"]:focus,
.modal-card input[type="checkbox"]:focus {
    box-shadow: 0 0 0 2px rgba(0, 229, 255, 0.25);
}

.modal-card .btn {
    margin-top: .25rem;
}

.modal-card .btn-secondary {
    background: transparent;
    border: 1px solid var(--holos-border);
    color: var(--holos-muted);
}

.modal-card .btn-secondary:hover {
    border-color: var(--holos-text);
    color: var(--holos-text);
}

.form-textarea-row {
    margin-top: .75rem;
}

.form-textarea-row label {
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--holos-muted);
    text-transform: uppercase;
    letter-spacing: 0.06em;
    margin-bottom: 0.25rem;
    display: block;
}

.form-textarea-row textarea {
    width: 100%;
    padding: 0.5rem 0.75rem;
    min-height: 4.5rem;
    border-radius: var(--holos-radius-sm, 8px);
    border: 1px solid var(--holos-border);
    background-color: #fff;
    color: var(--holos-text);
    color-scheme: light;
    font-size: 0.9rem;
    font-family: inherit;
    resize: vertical;
    box-sizing: border-box;
    transition: border-color 0.15s, background-color 0.15s, box-shadow 0.15s;
}

.form-textarea-row textarea:hover {
    border-color: var(--holos-border-strong);
}

.form-textarea-row textarea:focus {
    outline: none;
    border-color: var(--holos-brand-primary);
    background-color: #fff;
    box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.15);
}

.form-textarea-row textarea::placeholder {
    color: var(--holos-muted);
    opacity: 0.65;
}

.form-check-row {
    display: flex;
    align-items: center;
    padding-top: 1.2rem;
}

.form-check-row label {
    display: inline-flex !important;
    align-items: center;
    gap: .5rem;
    font-size: .9rem !important;
    font-weight: 500 !important;
    color: var(--holos-text) !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    cursor: pointer;
    user-select: none;
}

@media (max-width: 700px) {
    .tour-dashboard-stats {
        grid-template-columns: repeat(2, 1fr);
    }
    .tour-grid {
        grid-template-columns: 1fr;
    }
    .form-grid-2 {
        grid-template-columns: 1fr;
    }
    .modal-card {
        margin-top: 1rem;
        padding: 1rem;
    }
}

/* ── Housekeeping ─────────────────────────────────────── */

.hk-stats-row {
    display: flex;
    gap: 1.5rem;
    flex-wrap: wrap;
    align-items: center;
}

.hk-stat {
    display: flex;
    flex-direction: column;
    align-items: center;
    min-width: 70px;
}

.hk-stat-num {
    font-size: 1.6rem;
    font-weight: 700;
    color: var(--holos-text);
}

.hk-stat-label {
    font-size: .75rem;
    color: var(--holos-muted);
    text-transform: uppercase;
    letter-spacing: .04em;
}

.hk-stat-sep {
    width: 1px;
    height: 40px;
    background: var(--holos-border);
}

.hk-clean { color: #2ecc71; }
.hk-inspected { color: #3498db; }
.hk-ooo { color: #e74c3c; }
.hk-progress { color: #f39c12; }
.hk-done { color: #2ecc71; }

.hk-empty-guide {
    padding: 2rem 1.25rem;
    text-align: center;
}

.hk-empty-guide-title {
    margin: 0 0 0.5rem;
    font-size: 1.05rem;
    font-weight: 600;
    color: var(--holos-text);
}

.hk-empty-guide-message {
    margin: 0;
    font-size: 0.95rem;
    color: var(--holos-muted);
    max-width: 36rem;
    margin-inline: auto;
    line-height: 1.5;
}

.hk-empty-hint {
    padding: 0.85rem 1rem;
    border-left: 3px solid var(--holos-accent, #6366f1);
}

.hk-empty-hint-text {
    margin: 0;
    font-size: 0.9rem;
    color: var(--holos-text);
    line-height: 1.45;
}

.hk-empty-hint-link {
    margin-left: 0.35rem;
    font-weight: 600;
    white-space: nowrap;
}

.hk-room-badge {
    display: inline-block;
    padding: .15rem .5rem;
    border-radius: 4px;
    font-size: .75rem;
    font-weight: 600;
}

.hk-room-clean { background: rgba(46,204,113,.15); color: #2ecc71; }
.hk-room-dirty { background: rgba(231,76,60,.15); color: #e74c3c; }
.hk-room-inspected { background: rgba(52,152,219,.15); color: #3498db; }
.hk-room-outoforder { background: rgba(149,165,166,.15); color: #95a5a6; }

.hk-status-badge {
    display: inline-block;
    padding: .15rem .5rem;
    border-radius: 4px;
    font-size: .75rem;
    font-weight: 600;
}

.hk-status-pending { background: rgba(241,196,15,.15); color: #f1c40f; }
.hk-status-assigned { background: rgba(52,152,219,.15); color: #3498db; }
.hk-status-inprogress { background: rgba(243,156,18,.15); color: #f39c12; }
.hk-status-completed { background: rgba(46,204,113,.15); color: #2ecc71; }
.hk-status-inspected { background: rgba(52,152,219,.15); color: #3498db; }
.hk-status-rejected { background: rgba(231,76,60,.15); color: #e74c3c; }
.hk-status-cancelled { background: rgba(149,165,166,.15); color: #95a5a6; }

.hk-maint-open { background: rgba(231,76,60,.15); color: #e74c3c; }
.hk-maint-inprogress { background: rgba(243,156,18,.15); color: #f39c12; }
.hk-maint-completed { background: rgba(46,204,113,.15); color: #2ecc71; }
.hk-maint-cancelled { background: rgba(149,165,166,.15); color: #95a5a6; }

.hk-priority-low { color: var(--holos-muted); }
.hk-priority-normal { color: var(--holos-text); }
.hk-priority-high { color: #f39c12; font-weight: 600; }
.hk-priority-critical { color: #e74c3c; font-weight: 700; }

.btn-sm {
    padding: .3rem .7rem;
    font-size: .8rem;
    border-radius: 4px;
    background: var(--holos-surface);
    color: var(--holos-text);
    border: 1px solid var(--holos-border);
    cursor: pointer;
    transition: background .15s;
}

.btn-sm:hover { background: var(--holos-surface-hover, rgba(255,255,255,0.08)); }

.btn-active {
    background: var(--holos-accent) !important;
    color: #fff !important;
    border-color: var(--holos-accent) !important;
}

.spa-section-title {
    font-size: 1rem;
    font-weight: 600;
    margin: 1rem 0 .5rem;
    color: var(--holos-text);
    border-bottom: 1px solid var(--holos-border);
    padding-bottom: .35rem;
}

.spa-treatment-picks {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem 1rem;
}

.spa-treatment-pick {
    display: flex;
    align-items: center;
    gap: .35rem;
    font-size: .9rem;
    cursor: pointer;
}

/* La cita que el tablero del Spa señaló: se marca para que el ojo la encuentre sin leer la tabla
   entera. Sin animación que distraiga — es una ayuda de ubicación, no un aviso. */
.spa-res-enfocada > td {
    background: color-mix(in srgb, var(--holos-accent, #2563eb) 12%, transparent);
    box-shadow: inset 0 0 0 9999px color-mix(in srgb, var(--holos-accent, #2563eb) 4%, transparent);
}

.spa-res-enfocada > td:first-child {
    border-left: 3px solid var(--holos-accent, #2563eb);
}

.spa-res-notes {
    max-width: 200px;
    font-size: .85rem;
    color: var(--holos-muted);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.spa-res-notes-box {
    padding: .5rem .75rem;
    background: rgba(243,156,18,.08);
    border-left: 3px solid #f39c12;
    border-radius: 4px;
    font-size: .9rem;
}

/* ── Holos select ───────────────────────── */

.holos-select,
.holos-filter-field select {
    min-width: 12rem;
    padding: 0.5rem 2.25rem 0.5rem 0.75rem;
    border-radius: var(--holos-radius-sm);
    border: 1px solid var(--holos-border);
    background-color: #fff;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%2364748b' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 0.7rem center;
    color: var(--holos-text);
    font-size: 0.9rem;
    font-family: inherit;
    cursor: pointer;
    appearance: none;
    -webkit-appearance: none;
    color-scheme: light;
    transition: border-color 0.15s, background-color 0.15s, box-shadow 0.15s;
}

.holos-select:hover,
.holos-filter-field select:hover {
    border-color: var(--holos-border-strong);
    background-color: #fff;
}

.holos-select:focus,
.holos-filter-field select:focus {
    outline: none;
    border-color: var(--holos-brand-primary);
    background-color: #fff;
    box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.15);
}

.holos-select option,
.holos-filter-field select option {
    background: #fff;
    color: var(--holos-text);
}

.holos-input,
.holos-filter-field input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
.holos-filter-field textarea {
    min-width: 10.5rem;
    min-height: 2.5rem;
    padding: 0.5rem 0.75rem;
    border-radius: var(--holos-radius-sm);
    border: 1px solid var(--holos-border);
    background-color: #fff;
    color: var(--holos-text);
    font-size: 0.9rem;
    font-family: inherit;
    box-sizing: border-box;
    color-scheme: light;
    transition: border-color 0.15s, background-color 0.15s, box-shadow 0.15s;
}

.holos-input:hover,
.holos-filter-field input:not([type="checkbox"]):not([type="radio"]):not([type="file"]):hover,
.holos-filter-field textarea:hover {
    border-color: var(--holos-border-strong);
    background-color: #fff;
}

.holos-input:focus,
.holos-filter-field input:not([type="checkbox"]):not([type="radio"]):not([type="file"]):focus,
.holos-filter-field textarea:focus {
    outline: none;
    border-color: var(--holos-brand-primary);
    background-color: #fff;
    box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.15);
}

.holos-filter-field textarea {
    min-height: 4.5rem;
    resize: vertical;
    width: 100%;
}

.holos-filter-field--full {
    flex: 1 1 100%;
    min-width: 100%;
}

.people-ops-employee-search .holos-input {
    min-width: 14rem;
}

.people-ops-search-hint {
    margin: 0 0 0.75rem;
    font-size: 0.85rem;
}

.people-ops-row-inactive td {
    color: var(--holos-muted);
}

.people-ops-section-title {
    margin: 1rem 0 0.5rem;
    font-size: 0.8rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--holos-muted);
}

.people-ops-dl {
    margin: 0;
    font-size: 0.9rem;
}

.people-ops-dl dt {
    margin: 0.5rem 0 0.15rem;
    font-size: 0.7rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--holos-muted);
}

.people-ops-dl dt:first-child {
    margin-top: 0;
}

.people-ops-dl dd {
    margin: 0;
}

.people-ops-check {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.9rem;
    cursor: pointer;
}

.people-ops-check input {
    width: 1rem;
    height: 1rem;
}

.people-ops-form .holos-filter-bar {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(11rem, 1fr));
    align-items: end;
}

.people-ops-leave-new-layout {
    display: grid;
    grid-template-columns: minmax(0, 26rem) minmax(0, 1fr);
    gap: 1.25rem;
    align-items: start;
}

@media (max-width: 960px) {
    .people-ops-leave-new-layout {
        grid-template-columns: 1fr;
    }
}

.people-ops-leave-new-form .holos-filter-bar {
    grid-template-columns: 1fr;
}

.people-ops-leave-field--locked label {
    color: var(--holos-text-muted, #94a3b8);
}

.people-ops-leave-field--locked .holos-input:disabled,
.people-ops-leave-field--locked .holos-select:disabled,
.people-ops-leave-field--locked textarea:disabled {
    opacity: 0.55;
    cursor: not-allowed;
}

.people-ops-leave-history {
    max-height: 28rem;
    overflow: auto;
}

.people-ops-leave-history .data-table {
    font-size: 0.9rem;
}

.people-ops-leave-history .data-table td,
.people-ops-leave-history .data-table th {
    padding: 0.45rem 0.5rem;
}

.holos-check-label {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    font-size: 0.9rem;
    font-weight: 500;
    text-transform: none;
    letter-spacing: normal;
    color: var(--holos-text);
    cursor: pointer;
}

.holos-check-label input[type="checkbox"] {
    accent-color: var(--holos-brand-blue);
    width: 1rem;
    height: 1rem;
}

.supply-pos-outlet-checks {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem 1.25rem;
}

.supply-pos-outlet-checks .holos-check-label {
    flex: 0 0 auto;
}

.holos-filter-bar {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 1rem 1.25rem;
}

.holos-filter-field {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.holos-filter-field label {
    margin: 0;
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--holos-muted);
}

.holos-filter-field--wide .holos-select {
    min-width: 16rem;
}

.holos-filter-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    padding-bottom: 0.1rem;
}

.holos-report-filters {
    margin-bottom: 1rem;
}

.holos-report-property-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem 0.75rem;
    margin-top: 0.35rem;
}

.holos-chip {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.875rem;
    font-weight: 500;
    padding: 0.4rem 0.65rem;
    border-radius: 6px;
    background: rgba(255, 255, 255, 0.07);
    border: 1px solid rgba(255, 255, 255, 0.16);
    color: var(--holos-text, #e8eaed);
    cursor: pointer;
    line-height: 1.2;
}

.holos-chip:hover {
    background: rgba(255, 255, 255, 0.11);
    border-color: rgba(255, 255, 255, 0.22);
}

.holos-chip input[type="checkbox"] {
    flex-shrink: 0;
    accent-color: var(--holos-accent, #3b82f6);
}

.holos-dashboard-widget-picks .holos-chip {
    min-width: 8.5rem;
}

.holos-report-kpis {
    margin-bottom: 1rem;
}

.holos-report-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 1rem;
    margin-top: 1rem;
}

.holos-report-panel--wide {
    grid-column: 1 / -1;
}

.holos-comparison-bar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 1rem 1.5rem;
    margin: 1rem 0;
    padding: 0.75rem 1rem;
}

.holos-comparison-label {
    font-weight: 600;
    color: var(--holos-text-muted, #64748b);
}

.holos-report-header-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-top: 0.5rem;
}

.holos-report-kpi-header {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.75rem;
    margin-bottom: 0.75rem;
}

.holos-active-dashboard-label {
    font-size: 0.875rem;
}

.holos-freshness-badge {
    display: inline-block;
    padding: 0.2rem 0.6rem;
    border-radius: 999px;
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.holos-freshness-badge--closed {
    background: rgba(5, 150, 105, 0.15);
    color: #059669;
}

.holos-freshness-badge--live {
    background: rgba(29, 78, 216, 0.15);
    color: #1d4ed8;
}

.holos-freshness-badge--mixed {
    background: rgba(217, 119, 6, 0.15);
    color: #d97706;
}

.holos-metric-info {
    margin-left: 0.25rem;
    padding: 0;
    border: none;
    background: none;
    color: inherit;
    opacity: 0.55;
    cursor: help;
    font-size: 0.85em;
    line-height: 1;
}

.holos-alerts-banner {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    margin-bottom: 1rem;
}

.holos-alert {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem 1rem;
    padding: 0.65rem 1rem;
    border-radius: 8px;
    font-size: 0.9rem;
}

.holos-alert--warning {
    background: rgba(217, 119, 6, 0.12);
    border: 1px solid rgba(217, 119, 6, 0.35);
}

.holos-alert--critical {
    background: rgba(220, 38, 38, 0.1);
    border: 1px solid rgba(220, 38, 38, 0.35);
}

.holos-alert--info {
    background: rgba(29, 78, 216, 0.08);
    border: 1px solid rgba(29, 78, 216, 0.25);
}

.holos-dashboard-widget-picks {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.success-msg {
    color: #059669;
    margin: 0.5rem 0;
}

.holos-charts-section {
    margin: 1rem 0 1.5rem;
}

.holos-chart-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1rem;
}

@media (min-width: 900px) {
    .holos-chart-grid {
        grid-template-columns: 1fr 1fr;
    }
}

.holos-chart-card {
    padding: 1rem;
}

.holos-chart-title {
    margin: 0 0 0.75rem;
    font-size: 1rem;
    font-weight: 600;
}

.holos-chart-canvas-wrap {
    position: relative;
    height: 260px;
}

.holos-chart-canvas-wrap--compact {
    height: 200px;
    margin-bottom: 0.75rem;
}

.holos-chart-canvas-wrap--forecast {
    height: 240px;
    margin-bottom: 0.75rem;
}

.holos-chart-empty {
    margin: 0 0 0.5rem;
    font-size: 0.875rem;
}

@media (min-width: 1100px) {
    .holos-report-grid {
        grid-template-columns: repeat(3, 1fr);
    }

    .holos-report-panel--wide {
        grid-column: span 2;
    }
}

/* ── Spa Calendar ────────────────────────────────────── */

.spa-cal-toolbar-card {
    margin-bottom: 1rem;
}

.spa-cal-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 1rem 1.5rem;
}

.spa-cal-nav {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex-wrap: wrap;
}

.spa-cal-month {
    margin: 0;
    min-width: 10rem;
    text-align: center;
    text-transform: capitalize;
    font-size: 1.15rem;
    font-weight: 600;
}

.spa-cal-filter {
    display: flex;
    align-items: center;
    gap: 0.65rem;
}

.spa-cal-filter-label {
    margin: 0;
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--holos-muted);
    text-transform: uppercase;
    letter-spacing: 0.06em;
    white-space: nowrap;
}

.spa-cal-filter-select {
    min-width: 14rem;
}

@media (max-width: 640px) {
    .spa-cal-toolbar {
        flex-direction: column;
        align-items: stretch;
    }

    .spa-cal-nav {
        justify-content: center;
    }

    .spa-cal-filter {
        justify-content: space-between;
    }

    .spa-cal-filter-select {
        flex: 1;
        min-width: 0;
    }
}

.spa-cal-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(300px, 0.85fr);
    gap: 1rem;
    align-items: start;
}

.spa-cal-main {
    min-width: 0;
}

.spa-cal-detail-panel {
    position: sticky;
    top: 0.75rem;
    max-height: calc(100vh - 5.5rem);
    overflow-y: auto;
    min-height: 280px;
}

.spa-cal-detail-title {
    margin: 0 0 1rem;
    font-size: 1rem;
    font-weight: 600;
    text-transform: capitalize;
    line-height: 1.35;
    padding-bottom: 0.75rem;
    border-bottom: 1px solid var(--holos-border);
}

.spa-cal-detail-sub {
    margin: 0 0 0.5rem;
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--holos-muted);
}

.spa-cal-detail-table-wrap {
    overflow-x: auto;
    margin-bottom: 1rem;
}

.spa-cal-detail-table {
    font-size: 0.85rem;
}

.spa-cal-detail-table th,
.spa-cal-detail-table td {
    padding: 0.4rem 0.35rem;
}

.spa-cal-name {
    font-weight: 600;
    max-width: 7rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.spa-cal-status-free { color: #2ecc71; }
.spa-cal-status-busy { color: #f39c12; }

.spa-cal-selected {
    background: rgba(0, 229, 255, 0.1) !important;
    box-shadow: inset 0 0 0 2px var(--holos-brand-cyan);
}

.spa-cal-today:not(.spa-cal-selected) {
    box-shadow: inset 0 0 0 1px rgba(0, 229, 255, 0.45);
}

@media (max-width: 1100px) {
    .spa-cal-layout {
        grid-template-columns: 1fr;
    }

    .spa-cal-detail-panel {
        position: static;
        max-height: none;
    }
}

.spa-cal-grid {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 1px;
    background: var(--holos-border);
    border: 1px solid var(--holos-border);
    border-radius: 8px;
    overflow: hidden;
}

.spa-cal-header {
    background: rgba(255,255,255,0.05);
    padding: .5rem;
    text-align: center;
    font-weight: 700;
    font-size: .75rem;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--holos-muted);
}

.spa-cal-cell {
    background: var(--holos-card-bg, #1a1f2e);
    padding: .4rem;
    min-height: 90px;
    cursor: pointer;
    transition: background .15s;
    display: flex;
    flex-direction: column;
}

.spa-cal-cell:hover { background: rgba(255,255,255,0.04); }

.spa-cal-today {
    background: rgba(52, 152, 219, 0.08) !important;
}

.spa-cal-other { opacity: .35; }

.spa-cal-day {
    font-weight: 700;
    font-size: .85rem;
    margin-bottom: .25rem;
}

.spa-cal-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 2px;
    margin-bottom: .2rem;
}

.spa-cal-badge {
    display: inline-flex;
    align-items: center;
    gap: 2px;
    padding: 1px 5px;
    font-size: .6rem;
    border-radius: 4px;
    background: rgba(46,204,113,0.15);
    color: #2ecc71;
    font-weight: 600;
}

.spa-cal-badge small {
    background: rgba(255,255,255,0.15);
    border-radius: 3px;
    padding: 0 3px;
    font-size: .55rem;
}

.spa-cal-more {
    background: rgba(255,255,255,0.08);
    color: var(--holos-muted);
}

.spa-cal-count {
    font-size: .6rem;
    color: var(--holos-muted);
    margin-top: auto;
}

/* ── Night Audit ──────────────────────────────────────── */

.na-status-bar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: .5rem;
}

.na-label {
    font-size: .75rem;
    color: var(--holos-muted);
    text-transform: uppercase;
    letter-spacing: .04em;
    display: block;
}

.na-date {
    font-size: 1.3rem;
    font-weight: 700;
    text-transform: capitalize;
}

.na-kpi-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
    gap: 1rem;
    margin: 1rem 0;
}

.na-kpi {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: .75rem;
    background: var(--holos-bg);
    border-radius: 8px;
    border: 1px solid var(--holos-border);
}

.na-kpi-val {
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--holos-text);
}

.na-kpi-label {
    font-size: .7rem;
    color: var(--holos-muted);
    text-transform: uppercase;
    letter-spacing: .04em;
    margin-top: .25rem;
}

.na-counters {
    display: flex;
    gap: .5rem;
    flex-wrap: wrap;
    margin-top: .5rem;
}

.na-step {
    padding: .75rem;
    background: rgba(255,255,255,0.02);
    border-radius: 8px;
    border: 1px solid var(--holos-border);
}

.na-step-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.na-step-meta { font-size: .8rem; color: var(--holos-muted); }

.na-step-details {
    margin: .5rem 0 0 1rem;
    padding: 0;
    font-size: .85rem;
    color: var(--holos-muted);
    list-style: disc;
}

.na-step-details li { margin-bottom: .2rem; }

.na-check-item {
    padding: .5rem .75rem;
    border-radius: 6px;
    font-size: .9rem;
}

.na-check-warning { background: rgba(243,156,18,.1); border-left: 3px solid #f39c12; }
.na-check-blocker { background: rgba(231,76,60,.1); border-left: 3px solid #e74c3c; }

.na-spinner {
    width: 32px;
    height: 32px;
    border: 3px solid var(--holos-border);
    border-top-color: var(--holos-accent);
    border-radius: 50%;
    animation: na-spin 0.8s linear infinite;
    margin: 1rem auto;
}

@keyframes na-spin { to { transform: rotate(360deg); } }

.modal-overlay {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.5);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1000;
}

.modal-card {
    background: var(--holos-surface, #fff);
    border: 1px solid var(--holos-border);
    border-radius: 12px;
    padding: 1.5rem;
    width: 90%;
    max-height: 85vh;
    overflow-y: auto;
    box-shadow: 0 12px 40px rgba(15, 23, 42, 0.18);
    color: var(--holos-text);
}

/* ── Operación P0: botones, estados, tablas/cards, búsqueda global ── */

.btn-op {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 2.75rem;
    min-width: 2.75rem;
    padding: 0.5rem 1rem;
    font-size: 0.9rem;
    font-weight: 600;
    border-radius: var(--holos-radius-sm);
    border: 1px solid var(--holos-border-strong);
    background: #fff;
    color: var(--holos-text);
    cursor: pointer;
    white-space: nowrap;
    transition: background 0.15s, border-color 0.15s, color 0.15s, box-shadow 0.15s;
}

.btn-op:hover:not(:disabled) {
    background: var(--holos-bg);
    border-color: var(--holos-muted);
}

.btn-op:disabled {
    opacity: 0.45;
    cursor: not-allowed;
}

.btn-op-primary {
    background: var(--holos-brand-primary);
    border-color: var(--holos-brand-primary);
    color: #fff;
    box-shadow: 0 1px 2px rgba(37, 99, 235, 0.2);
}

.btn-op-primary:hover:not(:disabled) {
    background: var(--holos-brand-primary-hover);
    border-color: var(--holos-brand-primary-hover);
    color: #fff;
    box-shadow: 0 2px 8px rgba(37, 99, 235, 0.28);
}

.btn-op-success {
    border-color: #16a34a;
    color: #15803d;
    background: #ecfdf5;
}

.btn-op-success:hover:not(:disabled) {
    background: #d1fae5;
    border-color: #15803d;
    color: #14532d;
}

.btn-op-warn {
    border-color: #d97706;
    color: #b45309;
    background: #fffbeb;
}

.btn-op-warn:hover:not(:disabled) {
    background: #fef3c7;
    border-color: #b45309;
    color: #92400e;
}

.btn-op-danger {
    border-color: #dc2626;
    color: #b91c1c;
    background: #fef2f2;
}

.btn-op-danger:hover:not(:disabled) {
    background: #fee2e2;
    border-color: #b91c1c;
    color: #991b1b;
}

.ops-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    align-items: center;
}

.ops-actions--table {
    flex-wrap: wrap;
    align-items: center;
    gap: 0.25rem;
}

.ops-actions--dining-inline {
    flex-wrap: nowrap;
    align-items: center;
    gap: 0.25rem;
}

.ops-actions--spa-inline {
    flex-wrap: nowrap;
    align-items: center;
    gap: 0.25rem;
}

.ops-actions--spa-inline .btn-op {
    min-height: 1.85rem;
    min-width: 0;
    padding: 0.26rem 0.5rem;
    font-size: 0.76rem;
    border-radius: 7px;
    white-space: nowrap;
}

.ops-actions--table .btn-op,
.ops-actions--table .ops-more > summary.btn-op {
    min-height: 1.95rem;
    min-width: 0;
    padding: 0.3rem 0.6rem;
    font-size: 0.8rem;
    border-radius: 7px;
}

.ops-actions--dining-inline .btn-op {
    min-height: 1.85rem;
    min-width: 0;
    padding: 0.26rem 0.5rem;
    font-size: 0.76rem;
    border-radius: 7px;
    white-space: nowrap;
}

.ops-actions-muted {
    font-size: 0.8rem;
    line-height: 1.95rem;
}

.ops-table-wrap .data-table tbody td {
    vertical-align: middle;
}

.ops-table-wrap .data-table tbody td.ops-actions-cell {
    padding-top: 0.5rem;
    padding-bottom: 0.5rem;
    white-space: nowrap;
}

.ops-more {
    position: relative;
}

.ops-more > summary {
    list-style: none;
    cursor: pointer;
    outline: none;
}

.ops-more > summary:focus {
    outline: 2px solid color-mix(in srgb, var(--holos-accent) 50%, transparent);
    outline-offset: 2px;
}

.ops-more > summary::-webkit-details-marker {
    display: none;
}

.ops-more-panel {
    position: absolute;
    right: 0;
    top: calc(100% + 4px);
    z-index: 60;
    min-width: 10rem;
    padding: 0.35rem;
    background: var(--holos-dropdown-bg);
    border: 1px solid var(--holos-border);
    border-radius: 8px;
    box-shadow: var(--holos-dropdown-shadow);
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.ops-actions--table .ops-more-panel {
    top: auto;
    bottom: calc(100% + 4px);
    z-index: 3000;
    min-width: 8.75rem;
    padding: 0.25rem;
}

.ops-actions--table .ops-more {
    display: inline-block;
}

.ops-more-panel .btn-op,
.ops-more-panel button {
    width: 100%;
    justify-content: flex-start;
    min-height: 2.5rem;
    font-size: 0.85rem;
    font-weight: 500;
}

.ops-actions--table .ops-more-panel .btn-op,
.ops-actions--table .ops-more-panel button {
    min-height: 2.05rem;
    font-size: 0.82rem;
    font-weight: 600;
}

.ops-status,
.tour-status-badge,
.spa-status-badge,
.status-badge.ops-status-inline {
    display: inline-block;
    padding: 0.2rem 0.55rem;
    border-radius: 6px;
    font-size: 0.78rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    white-space: nowrap;
}

.ops-status-pending,
.tour-status-pending,
.spa-status-pending,
.status-badge.status-pending {
    background: rgba(245, 166, 35, 0.22);
    color: #f5a623;
}

.ops-status-confirmed,
.tour-status-confirmed,
.spa-status-confirmed {
    background: rgba(91, 141, 234, 0.22);
    color: #5b8dea;
}

.ops-status-inprogress,
.tour-status-inprogress,
.spa-status-inprogress,
.tour-status-in_progress,
.spa-status-in_progress,
.status-badge.status-inhouse {
    background: rgba(155, 89, 182, 0.22);
    color: #b07fd4;
}

.ops-status-completed,
.tour-status-completed,
.spa-status-completed {
    background: rgba(80, 200, 120, 0.22);
    color: #50c878;
}

.ops-status-cancelled,
.tour-status-cancelled,
.spa-status-cancelled,
.status-badge.status-cancelled {
    background: rgba(255, 77, 77, 0.2);
    color: #ff6b6b;
}

.ops-status-noshow,
.tour-status-noshow,
.spa-status-noshow {
    background: rgba(108, 117, 125, 0.28);
    color: #adb5bd;
}

.ops-status-seated {
    background: rgba(10, 132, 255, 0.22);
    color: #4dabf7;
}

.ops-card-list {
    display: none;
    flex-direction: column;
    gap: 0.65rem;
}

.ops-card {
    padding: 0.85rem 1rem;
    border-radius: 10px;
    border: 1px solid var(--holos-border);
    background: var(--holos-bg);
}

.ops-card-head {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 0.5rem;
    margin-bottom: 0.35rem;
}

.ops-card-time {
    font-size: 1.15rem;
    font-weight: 700;
    color: var(--holos-accent);
}

.ops-card-title {
    font-weight: 600;
    font-size: 1rem;
}

.ops-card-meta {
    font-size: 0.85rem;
    color: var(--holos-muted);
    margin: 0.15rem 0;
}

.ops-card-alert {
    border-left: 3px solid #c9a227;
}

.ops-card-muted {
    opacity: 0.72;
}

.ops-table-wrap {
    display: block;
}

@media (max-width: 1024px) {
    .ops-table-wrap {
        display: none;
    }

    .ops-card-list {
        display: flex;
    }

    .fd-inhouse-table-wrap {
        display: none;
    }

    .fd-inhouse-cards {
        display: grid;
    }
}

.fd-checkin-sticky-bar {
    position: sticky;
    top: 0;
    z-index: 30;
    margin: 0 0 1rem;
    padding: 0.75rem 0;
    background: var(--holos-page);
    border-bottom: 1px solid var(--holos-border);
}

.fd-checkin-sticky-bar .page-header,
.fd-checkin-sticky-bar.fd-checkin-header {
    margin-bottom: 0;
}

.fd-card-actions {
    display: flex;
    gap: 0.5rem;
    margin-top: 0.65rem;
    flex-wrap: wrap;
}

.fd-card-actions .btn-op {
    flex: 1;
    min-width: 7rem;
}

.global-search-backdrop {
    position: fixed;
    inset: 0;
    z-index: 2000;
    background: rgba(0, 0, 0, 0.55);
    display: flex;
    align-items: flex-start;
    justify-content: center;
    padding: 8vh 1rem 1rem;
}

.global-search-panel {
    width: min(32rem, 100%);
    background: var(--holos-surface);
    border: 1px solid var(--holos-border);
    border-radius: 12px;
    box-shadow: 0 16px 48px rgba(0, 0, 0, 0.45);
    overflow: hidden;
}

.global-search-input-row {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.75rem 1rem;
    border-bottom: 1px solid var(--holos-border);
}

.global-search-input-row input {
    flex: 1;
    min-height: 2.75rem;
    padding: 0.5rem 0.75rem;
    font-size: 1rem;
    border: 1px solid var(--holos-border);
    border-radius: 8px;
    background: var(--holos-bg);
    color: var(--holos-text);
}

.global-search-hint {
    font-size: 0.75rem;
    color: var(--holos-muted);
    white-space: nowrap;
}

.global-search-hint kbd {
    padding: 0.1rem 0.35rem;
    border-radius: 4px;
    border: 1px solid var(--holos-border);
    font-size: 0.7rem;
}

.global-search-results {
    max-height: 50vh;
    overflow-y: auto;
}

.global-search-item {
    display: block;
    width: 100%;
    text-align: left;
    padding: 0.75rem 1rem;
    border: none;
    border-bottom: 1px solid var(--holos-border);
    background: transparent;
    color: var(--holos-text);
    cursor: pointer;
    font: inherit;
}

.global-search-item:hover,
.global-search-item:focus {
    background: rgba(255, 255, 255, 0.06);
    outline: none;
}

.global-search-item strong {
    display: block;
    font-size: 0.95rem;
}

.global-search-item span {
    font-size: 0.82rem;
    color: var(--holos-muted);
}

.global-search-empty {
    padding: 1.25rem 1rem;
    color: var(--holos-muted);
    text-align: center;
}

.bar-search-btn {
    min-height: 2.25rem;
    padding: 0.35rem 0.75rem;
    font-size: 0.85rem;
    border-radius: 6px;
    border: 1px solid var(--holos-border);
    background: rgba(255, 255, 255, 0.06);
    color: var(--holos-text);
    cursor: pointer;
}

.bar-search-btn:hover {
    background: rgba(255, 255, 255, 0.12);
}

.holos-ui-language-selector {
    display: inline-flex;
    align-items: center;
    gap: 0.15rem;
    padding: 0.15rem;
    border-radius: 6px;
    border: 1px solid var(--holos-border);
    background: rgba(255, 255, 255, 0.04);
}

.holos-ui-language-option {
    min-height: 1.85rem;
    padding: 0.2rem 0.55rem;
    font-size: 0.78rem;
    border: none;
    border-radius: 4px;
    background: transparent;
    color: var(--holos-muted);
    cursor: pointer;
}

.holos-ui-language-option:hover {
    color: var(--holos-text);
    background: rgba(255, 255, 255, 0.08);
}

.holos-ui-language-option.is-active {
    color: var(--holos-text);
    background: rgba(255, 255, 255, 0.14);
    font-weight: 600;
}

/* Fiscal checkout (front desk) */
.fd-fiscal-prompt-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin-top: 1rem;
}

.fiscal-recommendation {
    border-radius: 8px;
    padding: 0.85rem 1rem;
    border: 1px solid var(--holos-border);
    background: rgba(255, 255, 255, 0.04);
}

.fiscal-recommendation--factura {
    border-color: rgba(10, 132, 255, 0.45);
    background: rgba(10, 132, 255, 0.08);
}

.fiscal-recommendation--tiquete {
    border-color: rgba(48, 209, 88, 0.35);
    background: rgba(48, 209, 88, 0.06);
}

.fiscal-id-lookup-row {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    align-items: center;
}

.fiscal-id-lookup-row input {
    flex: 1 1 12rem;
    min-width: 0;
}

.btn-link-style {
    background: transparent;
    border: none;
    padding: 0;
    text-decoration: underline;
    color: var(--holos-muted);
}

/* Botón que se ve como enlace. Existía SOLO dentro de CostCenters.razor.css y
   ChartOfAccounts.razor.css —CSS con alcance—, así que usarlo en cualquier otra página lo dejaba
   como botón gris del navegador: se ve perfecto en el código y sale roto en pantalla. Vive acá,
   global, porque lo usan Bungalows (quitar un bloqueo) y el archivo bancario de planilla (anular). */
.btn-link {
    background: none;
    border: none;
    color: var(--accent, #2563eb);
    cursor: pointer;
    padding: 0;
    font-size: 0.82rem;
    text-decoration: none;
}

.btn-link:hover {
    text-decoration: underline;
}

.btn-link:disabled {
    color: var(--holos-muted);
    cursor: default;
    text-decoration: none;
}

/* Reloj operativo por propiedad */
.property-clock-badge {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 0.1rem;
    margin-right: 0.75rem;
    padding: 0.35rem 0.65rem;
    border-radius: 8px;
    border: 1px solid var(--holos-border);
    background: rgba(10, 132, 255, 0.08);
    line-height: 1.2;
}

.property-clock-label {
    font-size: 0.68rem;
    color: var(--holos-muted);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.property-clock-date {
    font-size: 0.78rem;
    color: var(--holos-text);
}

.property-clock-time {
    font-size: 1rem;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    color: var(--holos-accent, #0a84ff);
}

.property-clock-live {
    margin: 1rem 0;
    padding: 1rem;
    border-radius: 8px;
    border: 1px solid var(--holos-border);
    background: rgba(10, 132, 255, 0.06);
}

.property-clock-live-title {
    margin: 0 0 0.35rem;
    font-size: 0.85rem;
    color: var(--holos-muted);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.property-clock-live-datetime {
    margin: 0;
    font-size: 1.05rem;
}

.card-inset {
    background: rgba(255, 255, 255, 0.03);
}

.holos-topbar {
    align-items: center;
    gap: 0.4rem;
}

/* —— Contabilidad: UI minimalista unificada —— */
.acct-page {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    max-width: 100%;
}

.acct-page--workspace {
    flex: 1;
    min-height: 0;
}

.holos-content:has(.acct-page--workspace) {
    display: flex;
    flex-direction: column;
    padding-bottom: 0.75rem;
    overflow: hidden;
}

.acct-header {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem 0.85rem;
    flex-shrink: 0;
}

.acct-header-main {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    min-width: 0;
}

.acct-header-row {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.5rem 0.75rem;
}

.acct-header h1 {
    margin: 0;
    font-size: 1.25rem;
    font-weight: 700;
    letter-spacing: -0.02em;
}

.acct-eyebrow {
    font-size: 0.68rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    color: var(--holos-brand-primary);
}

.acct-header-meta {
    font-size: 0.82rem;
    color: var(--holos-muted);
}

.acct-header-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.4rem;
}

.acct-header-actions .btn-primary,
.acct-header-actions .btn-secondary {
    padding: 0.4rem 0.75rem;
    font-size: 0.85rem;
}

.acct-totals-bar {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    padding: 0.35rem 0.65rem;
    border-radius: var(--holos-radius-sm);
    border: 1px solid var(--holos-border);
    background: #fff;
    font-size: 0.85rem;
}

.acct-total-item {
    display: inline-flex;
    align-items: baseline;
    gap: 0.35rem;
}

.acct-total-label {
    font-size: 0.68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--holos-muted);
}

.acct-total-item strong {
    font-variant-numeric: tabular-nums;
    font-weight: 700;
}

.acct-total-item--debit strong {
    color: var(--holos-brand-primary);
}

.acct-total-item--credit strong {
    color: #047857;
}

.acct-total-status {
    padding-left: 0.65rem;
    border-left: 1px solid var(--holos-border);
    font-weight: 600;
    color: var(--holos-muted);
}

.acct-totals-bar--ok {
    border-color: #6ee7b7;
    background: #ecfdf5;
}

.acct-totals-bar--ok .acct-total-status {
    color: #047857;
}

.acct-totals-bar--warn {
    border-color: #fcd34d;
    background: #fffbeb;
}

.acct-totals-bar--warn .acct-total-status {
    color: #b45309;
}

.acct-kpi-strip {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
    flex-shrink: 0;
}

.acct-kpi {
    display: flex;
    align-items: baseline;
    gap: 0.4rem;
    padding: 0.35rem 0.65rem;
    border-radius: var(--holos-radius-sm);
    border: 1px solid var(--holos-border);
    background: #fff;
    font-size: 0.82rem;
}

.acct-kpi--alert {
    border-color: #fcd34d;
    background: #fffbeb;
}

.acct-kpi-label {
    font-size: 0.65rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--holos-muted);
}

.acct-kpi strong {
    font-variant-numeric: tabular-nums;
    font-weight: 700;
}

.acct-split {
    display: grid;
    gap: 0.65rem;
    align-items: start;
}

@media (min-width: 900px) {
    .acct-split {
        grid-template-columns: minmax(11rem, 14rem) minmax(0, 1fr);
    }
}

.acct-nav {
    padding: 0.55rem 0.65rem;
    margin: 0;
}

.acct-nav-group + .acct-nav-group {
    margin-top: 0.55rem;
    padding-top: 0.55rem;
    border-top: 1px solid var(--holos-border);
}

.acct-nav-label {
    display: block;
    margin-bottom: 0.35rem;
    font-size: 0.65rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--holos-muted);
}

.acct-nav-links {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
}

.acct-nav-links a {
    display: block;
    padding: 0.3rem 0.45rem;
    border-radius: 4px;
    font-size: 0.85rem;
    font-weight: 500;
    text-decoration: none;
    color: var(--holos-text);
}

.acct-nav-links a:hover {
    background: var(--holos-brand-primary-soft);
    color: var(--holos-brand-primary);
}

.acct-workspace {
    display: flex;
    flex-direction: column;
    min-height: 0;
    padding: 0.55rem 0.75rem 0.65rem;
    margin: 0;
}

.acct-page--workspace .acct-workspace {
    flex: 1;
}

.acct-workspace-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    margin-bottom: 0.35rem;
    padding-bottom: 0.35rem;
    border-bottom: 1px solid var(--holos-border);
    flex-shrink: 0;
}

.acct-workspace-head h2 {
    margin: 0;
    font-size: 0.72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--holos-muted);
}

.acct-workspace-head a {
    font-size: 0.82rem;
    font-weight: 500;
}

.acct-table-wrap {
    flex: 1;
    min-height: 0;
    overflow: auto;
}

.acct-table {
    width: 100%;
    border-collapse: collapse;
    table-layout: fixed;
    font-size: 0.85rem;
}

.acct-table th {
    padding: 0.35rem 0.45rem;
    font-size: 0.65rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--holos-muted);
    text-align: left;
    background: #f1f5f9;
    border-bottom: 1px solid var(--holos-border);
}

.acct-table th.num,
.acct-table td.num {
    text-align: right;
}

.acct-table td {
    padding: 0.35rem 0.45rem;
    border-bottom: 1px solid color-mix(in srgb, var(--holos-border) 70%, transparent);
    vertical-align: middle;
}

.acct-table--dense td {
    padding: 0.25rem 0.4rem;
}

.acct-table tbody tr:hover td {
    background: var(--holos-brand-primary-soft);
}

.acct-table .clickable-row {
    cursor: pointer;
}

.acct-meta-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem 1.25rem;
    font-size: 0.85rem;
}

.acct-meta-item {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
    min-width: 0;
}

.acct-meta-item span:first-child {
    font-size: 0.65rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--holos-muted);
}

.acct-meta-item--wide {
    flex: 1 1 100%;
}

.acct-details {
    margin: 0;
    border: 1px solid var(--holos-border);
    border-radius: var(--holos-radius-sm);
    background: #fff;
}

.acct-details summary {
    padding: 0.45rem 0.65rem;
    font-size: 0.82rem;
    font-weight: 600;
    cursor: pointer;
    list-style: none;
    user-select: none;
}

.acct-details summary::-webkit-details-marker {
    display: none;
}

.acct-details summary::before {
    content: "▸ ";
    color: var(--holos-muted);
}

.acct-details[open] summary::before {
    content: "▾ ";
}

.acct-details-body {
    padding: 0 0.65rem 0.55rem;
    border-top: 1px solid var(--holos-border);
}

.acct-bar-footer {
    flex-shrink: 0;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    margin-top: 0.45rem;
    padding-top: 0.45rem;
    border-top: 1px solid var(--holos-border);
}

.acct-bar-footer-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    margin-left: auto;
}

.acct-toolbar {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem 0.75rem;
    flex-shrink: 0;
    padding-bottom: 0.5rem;
    border-bottom: 1px solid var(--holos-border);
    margin-bottom: 0.35rem;
}

.acct-toolbar-field {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    min-width: 0;
}

.acct-toolbar-field > span {
    font-size: 0.65rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--holos-muted);
}

.acct-toolbar-field--date {
    flex: 0 0 auto;
}

.acct-toolbar-field--date .holos-input {
    width: 10.5rem;
}

.acct-toolbar-field--grow {
    flex: 1 1 12rem;
}

.acct-toolbar-field--grow .holos-input {
    width: 100%;
}

.acct-page--workspace .holos-input,
.acct-page--workspace .holos-select {
    min-height: 2rem;
    min-width: 0;
    padding: 0.3rem 0.5rem;
    font-size: 0.85rem;
}

.acct-page--workspace .holos-select {
    padding-right: 1.75rem;
}

.acct-table--entry th {
    position: sticky;
    top: 0;
    z-index: 2;
}

.acct-table--entry .holos-select,
.acct-table--entry .holos-input {
    width: 100%;
}

.acct-col-num {
    width: 1.75rem;
    text-align: center;
    font-weight: 600;
    color: var(--holos-muted);
}

.acct-col-account {
    width: 38%;
}

.acct-col-cc {
    width: 4.5rem;
}

.acct-col-amt {
    width: 6.25rem;
}

.acct-col-memo {
    width: 18%;
}

.acct-col-act {
    width: 2rem;
}

.acct-amount-input {
    text-align: right;
    font-variant-numeric: tabular-nums;
    font-weight: 600;
}

.acct-row-remove {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.65rem;
    height: 1.65rem;
    padding: 0;
    border: 1px solid var(--holos-border);
    border-radius: 4px;
    background: #fff;
    color: var(--holos-muted);
    font-size: 1rem;
    line-height: 1;
    cursor: pointer;
}

.acct-row-remove:hover:not(:disabled) {
    color: #dc2626;
    border-color: #fca5a5;
    background: #fef2f2;
}

.acct-row-remove:disabled {
    opacity: 0.3;
    cursor: not-allowed;
}

.acct-inline-msg {
    flex-shrink: 0;
    margin: 0.35rem 0 0;
    font-size: 0.82rem;
}

.acct-inline-msg--hint {
    color: var(--holos-muted);
}

.acct-post-toggle {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    margin: 0;
    font-size: 0.82rem;
    color: var(--holos-muted);
    cursor: pointer;
}

.acct-post-toggle input {
    width: 0.95rem;
    height: 0.95rem;
    accent-color: var(--holos-brand-primary);
}

/* Confirmación de una acción que mueve el mayor (anular borrador / reversar asiento).
   Vive acá y no en un .razor.css porque la usa el detalle del asiento, y el CSS con alcance
   de otra página se ve perfecto en el código y sale sin estilo en pantalla. */
.acct-confirm {
    background: #fff7ed;
    border: 1px solid #fdba74;
    color: #9a3412;
    border-radius: 0.6rem;
    padding: 0.85rem 1rem;
    margin-bottom: 1rem;
}

.acct-confirm-actions {
    display: flex;
    gap: 0.5rem;
    margin-top: 0.6rem;
    flex-wrap: wrap;
}

.status-badge.acct-status-draft {
    background: #fff7ed;
    color: #c2410c;
}

.status-badge.acct-status-posted {
    background: #ecfdf5;
    color: #047857;
}

.status-badge.acct-status-voided {
    background: #fef2f2;
    color: #b91c1c;
}

.acct-table tr.row-total td {
    background: #f1f5f9;
    border-top: 2px solid var(--holos-border);
    font-weight: 600;
}

@media (max-width: 900px) {
    .holos-content:has(.acct-page--workspace) {
        overflow: auto;
    }

    .acct-page--workspace {
        min-height: auto;
    }

    .acct-table-wrap--scroll {
        max-height: 50vh;
    }
}

/* aliases asiento manual (je-*) */
.holos-content:has(.je-composer-page) {
    display: flex;
    flex-direction: column;
    padding-bottom: 0.75rem;
    overflow: hidden;
}

.je-composer-page {
    display: flex;
    flex-direction: column;
    flex: 1;
    min-height: 0;
    gap: 0.5rem;
    max-width: 100%;
}

.je-compact-header {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem 1rem;
    flex-shrink: 0;
}

.je-compact-header h1 {
    margin: 0;
    font-size: 1.25rem;
    font-weight: 700;
}

.je-compact-header-start {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    flex-wrap: wrap;
}

.je-back-btn {
    padding: 0.35rem 0.65rem;
    font-size: 0.82rem;
}

.je-totals-bar {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    padding: 0.35rem 0.65rem;
    border-radius: var(--holos-radius-sm);
    border: 1px solid var(--holos-border);
    background: #fff;
    font-size: 0.85rem;
}

.je-total-item {
    display: inline-flex;
    align-items: baseline;
    gap: 0.35rem;
}

.je-total-label {
    font-size: 0.68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--holos-muted);
}

.je-total-item strong {
    font-variant-numeric: tabular-nums;
    font-weight: 700;
}

.je-total-item--debit strong {
    color: var(--holos-brand-primary);
}

.je-total-item--credit strong {
    color: #047857;
}

.je-total-status {
    padding-left: 0.65rem;
    border-left: 1px solid var(--holos-border);
    font-weight: 600;
    color: var(--holos-muted);
}

.je-totals-bar--ok {
    border-color: #6ee7b7;
    background: #ecfdf5;
}

.je-totals-bar--ok .je-total-status {
    color: #047857;
}

.je-totals-bar--warn {
    border-color: #fcd34d;
    background: #fffbeb;
}

.je-totals-bar--warn .je-total-status {
    color: #b45309;
}

.je-workspace {
    flex: 1;
    display: flex;
    flex-direction: column;
    min-height: 0;
    padding: 0.55rem 0.75rem 0.65rem;
    margin: 0;
}

.je-toolbar {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem 0.75rem;
    flex-shrink: 0;
    padding-bottom: 0.5rem;
    border-bottom: 1px solid var(--holos-border);
    margin-bottom: 0.35rem;
}

.je-toolbar-field {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    min-width: 0;
}

.je-toolbar-field span {
    font-size: 0.65rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--holos-muted);
}

.je-toolbar-field--date {
    flex: 0 0 auto;
}

.je-toolbar-field--date .holos-input {
    width: 10.5rem;
}

.je-toolbar-field--desc {
    flex: 1 1 12rem;
}

.je-toolbar-field--desc .holos-input {
    width: 100%;
}

.je-composer-page .holos-input,
.je-composer-page .holos-select {
    min-height: 2rem;
    min-width: 0;
    padding: 0.3rem 0.5rem;
    font-size: 0.85rem;
}

.je-composer-page .holos-select {
    padding-right: 1.75rem;
}

.je-table-wrap {
    flex: 1;
    min-height: 0;
    overflow: auto;
    margin: 0 -0.15rem;
}

.je-entry-table {
    width: 100%;
    border-collapse: collapse;
    table-layout: fixed;
}

.je-entry-table th {
    position: sticky;
    top: 0;
    z-index: 2;
    padding: 0.35rem 0.4rem;
    font-size: 0.65rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--holos-muted);
    text-align: left;
    background: #f1f5f9;
    border-bottom: 1px solid var(--holos-border);
}

.je-entry-table th.num,
.je-entry-table td.je-col-amt {
    text-align: right;
}

.je-entry-table td {
    padding: 0.2rem 0.3rem;
    vertical-align: middle;
    border-bottom: 1px solid color-mix(in srgb, var(--holos-border) 65%, transparent);
}

.je-entry-table tbody tr:hover td {
    background: var(--holos-brand-primary-soft);
}

.je-col-num {
    width: 1.75rem;
    text-align: center;
    font-size: 0.78rem;
    font-weight: 600;
    color: var(--holos-muted);
}

.je-col-account {
    width: 38%;
}

.je-col-cc {
    width: 4.5rem;
}

.je-col-amt {
    width: 6.25rem;
}

.je-col-memo {
    width: 18%;
}

.je-col-act {
    width: 2rem;
}

.je-entry-table .holos-select,
.je-entry-table .holos-input {
    width: 100%;
}

.je-amount-input {
    text-align: right;
    font-variant-numeric: tabular-nums;
    font-weight: 600;
}

.je-row-remove {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.65rem;
    height: 1.65rem;
    padding: 0;
    border: 1px solid var(--holos-border);
    border-radius: 4px;
    background: #fff;
    color: var(--holos-muted);
    font-size: 1rem;
    line-height: 1;
    cursor: pointer;
}

.je-row-remove:hover:not(:disabled) {
    color: #dc2626;
    border-color: #fca5a5;
    background: #fef2f2;
}

.je-row-remove:disabled {
    opacity: 0.3;
    cursor: not-allowed;
}

.je-inline-msg {
    flex-shrink: 0;
    margin: 0.35rem 0 0;
    font-size: 0.82rem;
}

.je-inline-msg--hint {
    color: var(--holos-muted);
}

.je-workspace-footer {
    flex-shrink: 0;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    margin-top: 0.45rem;
    padding-top: 0.45rem;
    border-top: 1px solid var(--holos-border);
}

.je-add-btn {
    padding: 0.4rem 0.7rem;
    font-size: 0.85rem;
}

.je-workspace-footer-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    margin-left: auto;
}

.je-workspace-footer .btn-primary,
.je-workspace-footer .btn-secondary {
    padding: 0.45rem 0.85rem;
    font-size: 0.85rem;
}

.je-post-toggle {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    margin: 0;
    font-size: 0.82rem;
    color: var(--holos-muted);
    cursor: pointer;
    user-select: none;
}

.je-post-toggle input {
    width: 0.95rem;
    height: 0.95rem;
    accent-color: var(--holos-brand-primary);
}

@media (max-width: 900px) {
    .holos-content:has(.je-composer-page) {
        overflow: auto;
    }

    .je-composer-page {
        min-height: auto;
    }

    .je-table-wrap {
        max-height: 50vh;
    }
}

/* Detalle asiento (tabla lectura) */
.je-lines-card {
    padding: 0;
    overflow: hidden;
}

.je-lines-card-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem 1.25rem;
    border-bottom: 1px solid var(--holos-border);
    background: #f8fafc;
}

.je-lines-card-header h2 {
    margin: 0;
    font-size: 1rem;
    font-weight: 600;
}

.je-lines-scroll {
    overflow-x: auto;
}

.je-lines-table {
    width: 100%;
    min-width: 40rem;
    border-collapse: collapse;
    margin: 0;
}

.je-lines-table th {
    padding: 0.65rem 0.85rem;
    font-size: 0.72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--holos-muted);
    background: #f1f5f9;
    border-bottom: 1px solid var(--holos-border);
    white-space: nowrap;
}

.je-lines-table td {
    padding: 0.65rem 0.85rem;
    border-bottom: 1px solid var(--holos-border);
    vertical-align: middle;
    background: #fff;
}

.je-lines-table tbody tr:hover td {
    background: var(--holos-brand-primary-soft);
}

.je-line-num {
    width: 2rem;
    text-align: center;
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--holos-muted);
    font-variant-numeric: tabular-nums;
}

.je-detail-lines {
    margin-top: 0;
}

.status-badge.je-status-draft {
    background: #fff7ed;
    color: #c2410c;
}

.status-badge.je-status-posted {
    background: #ecfdf5;
    color: #047857;
}

.status-badge.je-status-voided {
    background: #fef2f2;
    color: #b91c1c;
}

.data-table tr.row-total td {
    background: #f1f5f9;
    border-top: 2px solid var(--holos-border);
    font-weight: 600;
}

.holos-hub-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 1rem;
    margin-top: 1rem;
}

.holos-hub-card-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 0.5rem;
}

.holos-hub-card-header h2 {
    margin: 0;
    font-size: 1.1rem;
}

.badge {
    display: inline-block;
    padding: 0.15rem 0.5rem;
    border-radius: 999px;
    font-size: 0.75rem;
    font-weight: 600;
}

.badge-ok {
    background: #ecfdf5;
    color: #047857;
}

.badge-muted {
    background: #f1f5f9;
    color: var(--holos-muted);
}

.guest-portal-pay-btn {
    margin-top: 1rem;
    width: 100%;
    max-width: 24rem;
}

/* ── Supply Item MDM ─────────────────────────────────────── */
.supply-mdm-layout {
    display: grid;
    grid-template-columns: minmax(220px, 280px) 1fr;
    gap: 1rem;
    align-items: start;
}

@media (max-width: 960px) {
    .supply-mdm-layout {
        grid-template-columns: 1fr;
    }
}

.supply-mdm-filters-title {
    margin: 0 0 .75rem;
    font-size: .95rem;
}

/* Allow the 1fr grid track to shrink below the table's intrinsic width so the
   table scrolls inside its card instead of blowing out the whole page. */
.supply-mdm-grid-wrap {
    min-width: 0;
}

.supply-mdm-grid-scroll {
    overflow-x: auto;
}

/* Compact the recipe grid so all columns fit without horizontal scroll. */
.supply-mdm-grid {
    margin-top: 0;
    font-size: 0.82rem;
    table-layout: auto;
}

.supply-mdm-grid th,
.supply-mdm-grid td {
    padding: 0.45rem 0.5rem;
    vertical-align: middle;
}

.supply-mdm-grid td:nth-child(2) {
    min-width: 7rem;
}

.supply-mdm-grid .supply-recipe-row-actions {
    flex-direction: row;
    gap: 0.35rem;
    justify-content: flex-end;
}

.supply-mdm-grid .supply-recipe-row-actions .btn-compact {
    text-align: center;
    padding: 0.3rem 0.55rem;
}

/* Recipe Master: filters as a horizontal bar on top, full-width grid below. */
.supply-recipe-page {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.supply-recipe-filters-bar {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 0.75rem 1rem;
    padding: 0.85rem 1rem;
}

.supply-recipe-filters-bar .holos-filter-field {
    margin: 0;
    min-width: 9rem;
}

.supply-recipe-filter-search {
    flex: 1 1 16rem;
    min-width: 12rem !important;
}

.menu-tree-family {
    border: 1px solid rgba(148, 163, 184, 0.35);
    border-radius: 0.6rem;
    margin-bottom: 0.6rem;
    overflow: hidden;
}

.menu-tree-row {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    padding: 0.5rem 0.75rem;
}

.menu-tree-row--family {
    background: #f1f5f9;
    border-bottom: 1px solid rgba(148, 163, 184, 0.3);
}

.menu-tree-row--sub {
    padding-left: 2rem;
    border-bottom: 1px dashed rgba(148, 163, 184, 0.25);
    font-size: 0.92rem;
}

.menu-tree-family .menu-tree-row:last-child {
    border-bottom: none;
}

.menu-tree-order {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.6rem;
    height: 1.6rem;
    border-radius: 0.4rem;
    background: rgba(148, 163, 184, 0.2);
    font-size: 0.75rem;
    font-weight: 700;
    color: #475569;
}

.menu-tree-actions {
    margin-left: auto;
    display: flex;
    gap: 0.4rem;
    white-space: nowrap;
}

.supply-recipe-filter-checks {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem 1rem;
    align-items: center;
    margin-left: auto;
}

.supply-mdm-grid tbody tr.supply-mdm-row {
    cursor: pointer;
}

.supply-mdm-grid tbody tr.supply-mdm-row:hover {
    background: var(--surface-hover, rgba(255, 255, 255, .04));
}

.supply-mdm-status {
    display: inline-block;
    padding: .15rem .45rem;
    border-radius: 999px;
    font-size: .78rem;
    font-weight: 600;
}

.supply-mdm-status--active { background: rgba(34, 197, 94, .15); color: #047857; }
.supply-mdm-status--inactive { background: rgba(148, 163, 184, .15); color: #64748b; }
.supply-mdm-status--blocked { background: rgba(239, 68, 68, .15); color: #b91c1c; }
.supply-mdm-status--draft { background: rgba(148, 163, 184, .15); color: #475569; }
.supply-mdm-status--archived { background: rgba(100, 116, 139, .12); color: #64748b; }

.supply-recipe-kpi-bar {
    display: flex;
    gap: .5rem;
    flex-wrap: wrap;
    margin: .75rem 0;
}

.supply-recipe-fc--ok { color: #047857; }
.supply-recipe-fc--mid { color: #ca8a04; font-weight: 600; }
.supply-recipe-fc--high { color: #dc2626; font-weight: 600; }

.supply-recipe-ing-table input.holos-input,
.supply-recipe-ing-table select.holos-select {
    min-width: 0;
    width: 100%;
}

.supply-recipe-row-warn { background: rgba(239, 68, 68, .06); }

.supply-recipe-row-actions {
    white-space: nowrap;
    display: flex;
    gap: .15rem;
}

.supply-recipe-alerts { list-style: none; padding: 0; margin: 0; }
.supply-recipe-alert { padding: .5rem .75rem; border-radius: .35rem; margin-bottom: .35rem; font-size: .88rem; }
.supply-recipe-alert--red { background: rgba(239, 68, 68, .1); color: #b91c1c; }
.supply-recipe-alert--yellow { background: rgba(234, 179, 8, .12); color: #a16207; }

.supply-recipe-stock-alert { font-size: .9rem; font-weight: 500; }
.supply-recipe-stock-alert--green { color: #047857; }
.supply-recipe-stock-alert--yellow { color: #a16207; }
.supply-recipe-stock-alert--red { color: #b91c1c; }

.supply-mdm-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 1rem;
    margin-bottom: .75rem;
    flex-wrap: wrap;
}

.supply-mdm-header-main h1 {
    font-size: 1.35rem;
}

.supply-mdm-header-actions {
    display: flex;
    gap: .5rem;
    align-items: center;
}

.supply-mdm-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
    margin-bottom: .75rem;
}

.supply-mdm-tab {
    border: 1px solid var(--holos-border, #e2e8f0);
    background: transparent;
    color: inherit;
    padding: .4rem .75rem;
    border-radius: .35rem;
    cursor: pointer;
    font-size: .88rem;
}

.supply-mdm-tab.active {
    background: var(--holos-primary, #2563eb);
    border-color: var(--holos-primary, #2563eb);
    color: #fff;
}

.supply-mdm-panel {
    min-height: 280px;
}

.supply-mdm-form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .75rem 1rem;
}

.supply-mdm-form-grid .span-2 {
    grid-column: span 2;
}

@media (max-width: 720px) {
    .supply-mdm-form-grid {
        grid-template-columns: 1fr;
    }

    .supply-mdm-form-grid .span-2 {
        grid-column: span 1;
    }
}

.supply-mdm-stock-kpi {
    display: flex;
    gap: .75rem;
    flex-wrap: wrap;
}

.supply-mdm-stock-kpi--policy {
    margin-top: .5rem;
}

.supply-mdm-section-title {
    margin: 0 0 .35rem;
    font-size: .95rem;
    font-weight: 600;
    letter-spacing: .02em;
    text-transform: uppercase;
    color: var(--text-muted, #64748b);
}

.supply-mdm-stock-empty {
    margin: .75rem 0 0;
    font-size: .88rem;
    color: var(--text-muted, #64748b);
}

.supply-mdm-stock-alert {
    margin: .75rem 0 0;
    font-size: .88rem;
}

.supply-mdm-stock-alert--red { color: #dc2626; }
.supply-mdm-stock-alert--yellow { color: #ca8a04; }

.supply-mdm-kpi {
    min-width: 120px;
    padding: .75rem 1rem;
    border-radius: .5rem;
    border: 1px solid var(--holos-border, #e2e8f0);
}

.supply-mdm-kpi span {
    display: block;
    font-size: 1.25rem;
    font-weight: 700;
}

.supply-mdm-kpi small {
    color: var(--holos-muted, #64748b);
}

.supply-mdm-kpi--green { border-color: rgba(34, 197, 94, .4); }
.supply-mdm-kpi--yellow { border-color: rgba(234, 179, 8, .4); }
.supply-mdm-kpi--red { border-color: rgba(239, 68, 68, .4); }
.supply-mdm-kpi--neutral { border-style: dashed; opacity: .92; }

.supply-mdm-audit {
    display: grid;
    grid-template-columns: 120px 1fr;
    gap: .35rem .75rem;
}

.supply-mdm-audit dt {
    font-weight: 600;
    color: var(--holos-muted, #64748b);
}

/* POS enterprise — modifiers, kitchen queue, ops */
.pos-modifier-overlay {
    position: fixed;
    inset: 0;
    z-index: 1200;
    background: rgba(15, 23, 42, .55);
    backdrop-filter: blur(2px);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem;
}

.pos-modifier-dialog {
    width: min(520px, 100%);
    max-height: 92vh;
    display: flex;
    flex-direction: column;
    background: var(--holos-surface, #fff);
    border: 1px solid var(--holos-border, #e2e8f0);
    border-radius: 1rem;
    box-shadow: 0 24px 60px -20px rgba(15, 23, 42, .45);
    overflow: hidden;
}

.pos-modifier-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.15rem 1.35rem;
    border-bottom: 1px solid var(--holos-border, #e2e8f0);
}

.pos-modifier-head h3 {
    margin: 0;
    font-size: 1.2rem;
    font-weight: 650;
    letter-spacing: -.01em;
}

.pos-modifier-sub {
    margin: .2rem 0 0;
    color: var(--holos-muted, #64748b);
    font-size: .85rem;
}

.pos-modifier-total {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    flex-shrink: 0;
}

.pos-modifier-total-label {
    font-size: .7rem;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--holos-muted, #94a3b8);
}

.pos-modifier-total-amount {
    font-size: 1.5rem;
    font-weight: 700;
    line-height: 1.1;
    color: var(--holos-accent, #1d4ed8);
}

.pos-modifier-body {
    padding: 1.1rem 1.35rem;
    overflow: auto;
    display: flex;
    flex-direction: column;
    gap: 1.1rem;
}

.pos-modifier-group {
    border: 0;
    padding: 0;
    margin: 0;
}

.pos-modifier-group-head {
    display: flex;
    align-items: center;
    gap: .5rem;
    margin-bottom: .6rem;
}

.pos-modifier-group-name {
    font-weight: 600;
    font-size: .98rem;
}

.pos-modifier-group-hint {
    margin-left: auto;
    color: var(--holos-muted, #94a3b8);
    font-size: .8rem;
}

.pos-modifier-badge {
    font-size: .68rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .04em;
    padding: .12rem .5rem;
    border-radius: 999px;
}

.pos-modifier-badge.is-required {
    color: #b91c1c;
    background: #fee2e2;
}

.pos-modifier-badge.is-done {
    color: #15803d;
    background: #dcfce7;
}

.pos-modifier-options {
    display: grid;
    gap: .55rem;
}

.pos-modifier-options.is-single,
.pos-modifier-options.is-multi {
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
}

.pos-modifier-option {
    display: flex;
    align-items: center;
    gap: .65rem;
    padding: .7rem .85rem;
    border: 1.5px solid var(--holos-border, #e2e8f0);
    border-radius: .65rem;
    cursor: pointer;
    transition: border-color .12s ease, background-color .12s ease, box-shadow .12s ease;
    background: var(--holos-surface, #fff);
}

.pos-modifier-option:hover {
    border-color: var(--holos-accent, #1d4ed8);
    background: color-mix(in srgb, var(--holos-accent, #1d4ed8) 5%, transparent);
}

.pos-modifier-option.is-selected {
    border-color: var(--holos-accent, #1d4ed8);
    background: color-mix(in srgb, var(--holos-accent, #1d4ed8) 10%, transparent);
    box-shadow: inset 0 0 0 1px var(--holos-accent, #1d4ed8);
}

.pos-modifier-option input[type="radio"],
.pos-modifier-option input[type="checkbox"] {
    width: 1.1rem;
    height: 1.1rem;
    accent-color: var(--holos-accent, #1d4ed8);
    flex-shrink: 0;
    margin: 0;
    cursor: pointer;
}

.pos-modifier-option-name {
    font-weight: 500;
    font-size: .95rem;
}

.pos-modifier-price {
    margin-left: auto;
    color: var(--holos-muted, #64748b);
    font-size: .85rem;
    font-variant-numeric: tabular-nums;
}

.pos-modifier-option.is-selected .pos-modifier-price {
    color: var(--holos-accent, #1d4ed8);
    font-weight: 600;
}

.pos-modifier-guest {
    display: flex;
    flex-direction: column;
    gap: .3rem;
}

.pos-modifier-guest label {
    font-weight: 600;
    font-size: .9rem;
}

.pos-modifier-optional {
    color: var(--holos-muted, #94a3b8);
    font-weight: 400;
    font-size: .82rem;
}

.pos-modifier-error {
    margin: 0;
}

.pos-modifier-actions {
    display: flex;
    gap: .6rem;
    justify-content: flex-end;
    padding: 1rem 1.35rem;
    border-top: 1px solid var(--holos-border, #e2e8f0);
    background: color-mix(in srgb, var(--holos-border, #e2e8f0) 14%, transparent);
}

.pos-serve-modifiers { color: var(--holos-muted, #64748b); font-size: .85em; }

/* Coursing (envío por tandas): la línea retenida se distingue de la ya enviada. */
.pos-serve-held { color: #b45309; font-size: .85em; font-weight: 600; }
.pos-serve-fire {
    width: 100%;
    margin: .5rem 0 .25rem;
    min-height: 44px; /* target táctil (dedo, no mouse) */
    font-size: 1rem;
    font-weight: 700;
    background: #ea580c;
    border-color: #ea580c;
}
.pos-serve-fire:hover:not(:disabled) { background: #c2410c; border-color: #c2410c; }

.pos-enterprise-ops {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: .75rem;
    margin-bottom: 1rem;
}

.pos-enterprise-op {
    padding: .75rem;
    display: flex;
    flex-direction: column;
    gap: .5rem;
}

.pos-enterprise-op h4 { margin: 0; font-size: .95rem; }

.pos-kitchen-toolbar {
    display: flex;
    gap: 1rem;
    align-items: end;
    padding: 1rem;
    margin-top: 1rem;
}

.pos-kitchen-jobs {
    display: grid;
    gap: 1rem;
    margin-top: 1rem;
}

.pos-kitchen-ticket {
    font-family: ui-monospace, monospace;
    font-size: .8rem;
    background: #f8fafc;
    padding: .75rem;
    border-radius: .375rem;
    white-space: pre-wrap;
    margin: .5rem 0;
}

.pos-menu-class {
    display: inline-block;
    padding: .15rem .45rem;
    border-radius: .25rem;
    font-size: .75rem;
    font-weight: 600;
}

.pos-menu-class-star { background: #fef3c7; color: #92400e; }
.pos-menu-class-puzzle { background: #dbeafe; color: #1e40af; }
.pos-menu-class-plowhorse { background: #e0e7ff; color: #3730a3; }
.pos-menu-class-dog { background: #f1f5f9; color: #64748b; }

.pos-modifiers-layout {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 1rem;
    margin-top: 1rem;
}

.pos-modifier-admin-group {
    border-bottom: 1px solid var(--holos-border, #e2e8f0);
    padding: .75rem 0;
}

.pos-modifier-admin-group ul { margin: .35rem 0 0 1rem; }

.pos-modifier-product-link {
    padding: .75rem 0;
    border-bottom: 1px solid var(--holos-border, #e2e8f0);
}

.pos-modifier-link-chips {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    margin-top: .35rem;
}

.pos-modifier-chip { font-size: .875rem; }

.pos-split-line-row,
.pos-split-amount-row {
    display: flex;
    gap: .5rem;
    align-items: center;
    margin: .35rem 0;
}

.pos-split-line-row input,
.pos-split-amount-row input { flex: 1; }

.pos-chart-title { margin: 1rem 0 .5rem; font-size: 1rem; }

.pos-bar-chart,
.pos-menu-engineering-bars { display: flex; flex-direction: column; gap: .4rem; }

.pos-bar-row {
    display: grid;
    grid-template-columns: minmax(100px, 140px) 1fr 48px;
    gap: .5rem;
    align-items: center;
    font-size: .875rem;
}

.pos-bar-track {
    height: 10px;
    background: #e2e8f0;
    border-radius: 4px;
    overflow: hidden;
}

.pos-bar-fill {
    height: 100%;
    background: #2563eb;
    border-radius: 4px;
}

.pos-bar-fill-star { background: #f59e0b; }
.pos-bar-fill-puzzle { background: #3b82f6; }
.pos-bar-fill-plowhorse { background: #6366f1; }
.pos-bar-fill-dog { background: #94a3b8; }

/* PDF.js: páginas renderizadas a canvas — mismo alto/scroll que el embed nativo. */
.expediente-doc-pdfjs {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    width: 100%;
    height: calc(100vh - 5rem);
    min-height: 24rem;
    overflow: auto;
    background: #f1f5f9;
    padding: 8px;
    box-sizing: border-box;
}
.expediente-doc-pdfjs canvas {
    box-shadow: 0 1px 4px rgba(15, 23, 42, .18);
    background: #fff;
}
.drive-preview-canvas .expediente-doc-pdfjs { height: calc(100vh - 5rem); }
