/*
 * byteStudio Inmobiliaria Admin
 * Frontend visual system – Ceccone edition
 * Version 1.0.10
 */

.bsia-root {
    --bsia-ink: #202a31;
    --bsia-ink-soft: #34434b;
    --bsia-muted: #748087;
    --bsia-line: #e4e8e8;
    --bsia-line-strong: #d4dcde;
    --bsia-soft: #f3f5f4;
    --bsia-surface: #ffffff;
    --bsia-surface-warm: #faf9f6;
    --bsia-primary: #253f4b;
    --bsia-primary-2: #47788d;
    --bsia-primary-3: #6d98aa;
    --bsia-accent: #b39a73;
    --bsia-accent-soft: #f3eee7;
    --bsia-danger: #a4473d;
    --bsia-success: #397b64;
    --bsia-warning: #a9762b;
    --bsia-shadow-xs: 0 4px 14px rgba(31, 45, 52, .035);
    --bsia-shadow-sm: 0 10px 30px rgba(31, 45, 52, .06);
    --bsia-shadow-md: 0 18px 45px rgba(31, 45, 52, .10);
    --bsia-radius-sm: 10px;
    --bsia-radius-md: 15px;
    --bsia-radius-lg: 20px;
    font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    color: var(--bsia-ink);
    line-height: 1.45;
    box-sizing: border-box;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

.bsia-root *,
.bsia-root *::before,
.bsia-root *::after {
    box-sizing: border-box;
}

.bsia-root button,
.bsia-root input,
.bsia-root select,
.bsia-root textarea {
    font: inherit;
}

.bsia-root button {
    cursor: pointer;
    text-transform: none;
    letter-spacing: normal;
    box-shadow: none;
}

.bsia-root h1,
.bsia-root h2,
.bsia-root h3,
.bsia-root h4,
.bsia-root strong {
    color: var(--bsia-ink);
}

.bsia-root [hidden] {
    display: none !important;
}

/* Login */
.bsia-login-shell {
    min-height: 78vh;
    display: grid;
    place-items: center;
    padding: 34px 16px;
    border: 1px solid var(--bsia-line);
    border-radius: 22px;
    background:
        radial-gradient(circle at 8% 12%, rgba(71, 120, 141, .11), transparent 28%),
        radial-gradient(circle at 92% 88%, rgba(179, 154, 115, .14), transparent 31%),
        #f3f5f4;
}

.bsia-login-card {
    width: min(100%, 460px);
    padding: 40px;
    border: 1px solid rgba(37, 63, 75, .08);
    border-radius: 22px;
    background: rgba(255, 255, 255, .97);
    box-shadow: 0 26px 72px rgba(31, 45, 52, .12);
}

.bsia-brand-lockup {
    text-align: center;
    margin-bottom: 30px;
}

.bsia-brand-lockup img {
    display: block;
    max-width: 200px;
    max-height: 88px;
    object-fit: contain;
    margin: 0 auto 19px;
}

.bsia-brand-lockup span {
    display: block;
    color: var(--bsia-primary-2);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .17em;
    text-transform: uppercase;
}

.bsia-brand-lockup h1 {
    margin: 8px 0 7px;
    color: var(--bsia-ink);
    font-size: 28px;
    font-weight: 700;
    line-height: 1.16;
}

.bsia-brand-lockup p {
    margin: 0;
    color: var(--bsia-muted);
}

.bsia-login-form {
    display: grid;
    gap: 12px;
}

.bsia-login-form label {
    color: var(--bsia-ink-soft);
    font-size: 13px;
    font-weight: 650;
}

.bsia-login-form input {
    width: 100%;
    height: 52px;
    padding: 0 16px;
    border: 1px solid var(--bsia-line-strong);
    border-radius: 12px;
    outline: 0;
    background: #fff;
    color: var(--bsia-ink);
    font-size: 17px;
    transition: border-color .18s ease, box-shadow .18s ease, background .18s ease;
}

.bsia-login-form input:focus {
    border-color: var(--bsia-primary-2);
    box-shadow: 0 0 0 4px rgba(71, 120, 141, .12);
}

/* Buttons – explicitly scoped to avoid theme colors */
.bsia-root .bsia-primary-btn,
.bsia-root .bsia-primary-btn:visited,
.bsia-root .bsia-primary-btn:focus,
.bsia-root .bsia-primary-btn:active {
    min-height: 44px;
    padding: 11px 19px;
    border: 1px solid var(--bsia-primary) !important;
    border-radius: 11px;
    background: var(--bsia-primary) !important;
    color: #fff !important;
    font-weight: 700;
    text-decoration: none !important;
    transition: transform .18s ease, background .18s ease, border-color .18s ease, box-shadow .18s ease;
}

.bsia-root .bsia-primary-btn:hover {
    border-color: var(--bsia-primary-2) !important;
    background: var(--bsia-primary-2) !important;
    color: #fff !important;
    transform: translateY(-1px);
    box-shadow: 0 9px 22px rgba(37, 63, 75, .16);
}

.bsia-root .bsia-primary-btn:focus-visible {
    outline: 3px solid rgba(71, 120, 141, .24);
    outline-offset: 3px;
}

.bsia-root .bsia-primary-btn:disabled {
    opacity: .58;
    cursor: not-allowed;
    transform: none;
    box-shadow: none;
}

.bsia-root .bsia-secondary-btn,
.bsia-root .bsia-secondary-btn:visited,
.bsia-root .bsia-secondary-btn:focus,
.bsia-root .bsia-secondary-btn:active {
    min-height: 44px;
    padding: 11px 18px;
    border: 1px solid var(--bsia-line-strong) !important;
    border-radius: 11px;
    background: #fff !important;
    color: var(--bsia-ink-soft) !important;
    font-weight: 650;
    transition: border-color .18s ease, background .18s ease, color .18s ease;
}

.bsia-root .bsia-secondary-btn:hover {
    border-color: #b9c6ca !important;
    background: var(--bsia-soft) !important;
    color: var(--bsia-primary) !important;
}

.bsia-root .bsia-back-link,
.bsia-root .bsia-link-btn {
    padding: 0;
    border: 0 !important;
    background: transparent !important;
    color: var(--bsia-primary-2) !important;
    font-weight: 650;
    text-decoration: none !important;
}

.bsia-root .bsia-back-link:hover,
.bsia-root .bsia-link-btn:hover {
    color: var(--bsia-primary) !important;
    text-decoration: underline !important;
    text-underline-offset: 3px;
}

.bsia-login-help {
    margin: 0;
    color: var(--bsia-muted);
    font-size: 13px;
}

.bsia-message {
    margin-top: 15px;
    padding: 0;
    font-size: 14px;
}

.bsia-message.error {
    padding: 11px 13px;
    border: 1px solid #efd2cf;
    border-radius: 10px;
    background: #fff6f5;
    color: #8d312a;
}

/* Application shell */
.bsia-app {
    min-height: 78vh;
    overflow: hidden;
    border: 1px solid var(--bsia-line);
    border-radius: 20px;
    background:
        linear-gradient(rgba(246, 247, 246, .96), rgba(246, 247, 246, .96)),
        radial-gradient(circle at 10% 20%, rgba(71, 120, 141, .12), transparent 31%);
    box-shadow: var(--bsia-shadow-xs);
}

.bsia-app-header {
    position: relative;
    z-index: 20;
    display: grid;
    grid-template-columns: minmax(210px, 1fr) minmax(260px, 1.5fr) minmax(180px, 1fr);
    align-items: center;
    gap: 24px;
    padding: 16px 24px;
    border-bottom: 1px solid var(--bsia-line);
    background: rgba(255, 255, 255, .96);
    backdrop-filter: blur(12px);
}

.bsia-app-brand {
    display: flex;
    align-items: center;
    gap: 13px;
    min-width: 0;
}

.bsia-app-brand img {
    width: 50px;
    height: 50px;
    padding: 4px;
    border: 1px solid var(--bsia-line);
    border-radius: 12px;
    background: #fff;
    object-fit: contain;
}

.bsia-app-brand div {
    min-width: 0;
}

.bsia-app-brand small,
.bsia-user-menu small {
    display: block;
    color: var(--bsia-muted);
    font-size: 9px;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.bsia-app-brand strong {
    display: block;
    overflow: hidden;
    color: var(--bsia-ink) !important;
    font-size: 15px;
    font-weight: 700;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.bsia-header-search {
    position: relative;
}

.bsia-header-search > span {
    position: absolute;
    z-index: 2;
    top: 50%;
    left: 15px;
    transform: translateY(-50%);
    color: #849096;
}

.bsia-header-search input {
    width: 100%;
    height: 44px;
    padding: 0 15px 0 44px;
    border: 1px solid var(--bsia-line-strong);
    border-radius: 13px;
    outline: 0;
    background: #f8f9f8;
    color: var(--bsia-ink);
    transition: border-color .18s ease, background .18s ease, box-shadow .18s ease;
}

.bsia-header-search input::placeholder,
.bsia-inline-search input::placeholder {
    color: #939ca0;
}

.bsia-header-search input:focus {
    border-color: var(--bsia-primary-2);
    background: #fff;
    box-shadow: 0 0 0 4px rgba(71, 120, 141, .10);
}

.bsia-search-results {
    position: absolute;
    top: 51px;
    right: 0;
    left: 0;
    max-height: 350px;
    overflow: auto;
    padding: 8px;
    border: 1px solid var(--bsia-line);
    border-radius: 14px;
    background: #fff;
    box-shadow: var(--bsia-shadow-md);
}

.bsia-root .bsia-search-results button,
.bsia-root .bsia-search-results button:focus,
.bsia-root .bsia-search-results button:active {
    display: grid;
    grid-template-columns: 90px 1fr;
    gap: 2px 10px;
    width: 100%;
    padding: 10px 12px;
    border: 0 !important;
    border-radius: 9px;
    background: #fff !important;
    color: var(--bsia-ink) !important;
    text-align: left;
}

.bsia-root .bsia-search-results button:hover {
    background: var(--bsia-soft) !important;
}

.bsia-search-results button span {
    grid-row: 1 / 3;
    color: var(--bsia-primary-2);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .07em;
    text-transform: uppercase;
}

.bsia-search-results button strong {
    color: var(--bsia-ink) !important;
    font-size: 14px;
}

.bsia-search-results button small,
.bsia-search-results p {
    color: var(--bsia-muted);
}

.bsia-search-results p {
    margin: 10px;
}

.bsia-user-menu {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 13px;
}

.bsia-user-menu div {
    text-align: right;
}

.bsia-user-menu strong {
    color: var(--bsia-ink) !important;
    font-size: 14px;
    font-weight: 700;
}

.bsia-root .bsia-user-menu button,
.bsia-root .bsia-user-menu button:focus,
.bsia-root .bsia-user-menu button:active {
    padding: 8px 13px;
    border: 1px solid var(--bsia-line-strong) !important;
    border-radius: 10px;
    background: #fff !important;
    color: var(--bsia-ink-soft) !important;
    font-weight: 650;
}

.bsia-root .bsia-user-menu button:hover {
    border-color: #dfbbb6 !important;
    background: #fff8f7 !important;
    color: var(--bsia-danger) !important;
}

/* Dashboard */
.bsia-main {
    padding: 28px;
}

.bsia-welcome {
    position: relative;
    isolation: isolate;
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 20px;
    overflow: hidden;
    padding: 29px 31px;
    border: 1px solid rgba(255, 255, 255, .14);
    border-radius: 19px;
    background: linear-gradient(122deg, #263e49 0%, #315865 58%, #527f90 100%);
    color: #fff;
    box-shadow: 0 17px 38px rgba(37, 63, 75, .17);
}

.bsia-welcome::before {
    content: "";
    position: absolute;
    z-index: -1;
    top: -115px;
    right: 11%;
    width: 310px;
    height: 250px;
    border: 1px solid rgba(255, 255, 255, .12);
    border-radius: 50%;
    transform: rotate(-14deg);
}

.bsia-welcome::after {
    content: "";
    position: absolute;
    z-index: -1;
    right: -80px;
    bottom: -130px;
    width: 310px;
    height: 260px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(179, 154, 115, .24), transparent 68%);
}

.bsia-welcome span,
.bsia-section-head span {
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .16em;
    text-transform: uppercase;
}

.bsia-welcome span {
    color: rgba(255, 255, 255, .72);
}

.bsia-welcome h2 {
    margin: 5px 0 5px;
    color: #fff !important;
    font-size: 27px;
    font-weight: 700;
    letter-spacing: -.02em;
}

.bsia-welcome p {
    margin: 0;
    color: rgba(255, 255, 255, .76);
}

.bsia-today {
    flex: 0 0 auto;
    padding: 10px 15px;
    border: 1px solid rgba(255, 255, 255, .24);
    border-radius: 12px;
    background: rgba(255, 255, 255, .055);
    color: #fff;
    font-size: 15px;
    font-weight: 700;
    backdrop-filter: blur(8px);
}

.bsia-stats {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 15px;
    margin: 19px 0;
}

.bsia-stats article {
    --bsia-stat-accent: var(--bsia-primary-2);
    position: relative;
    overflow: hidden;
    padding: 19px 20px 18px;
    border: 1px solid var(--bsia-line);
    border-radius: 15px;
    background: #fff;
    box-shadow: var(--bsia-shadow-xs);
}

.bsia-stats article:nth-child(2) { --bsia-stat-accent: #6d98aa; }
.bsia-stats article:nth-child(3) { --bsia-stat-accent: #b39a73; }
.bsia-stats article:nth-child(4) { --bsia-stat-accent: #7e948c; }

.bsia-stats article::before {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    height: 2px;
    background: linear-gradient(90deg, var(--bsia-stat-accent), transparent 72%);
    opacity: .82;
}

.bsia-stats span,
.bsia-stats small {
    display: block;
    color: var(--bsia-muted);
    font-size: 11px;
}

.bsia-stats strong {
    display: block;
    margin: 6px 0 3px;
    color: var(--bsia-ink) !important;
    font-size: 23px;
    font-weight: 700;
    letter-spacing: -.02em;
}

.bsia-module-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 14px;
}

/* Critical theme isolation: prevents WordPress/theme magenta focus backgrounds */
.bsia-root .bsia-module-card,
.bsia-root .bsia-module-card:visited,
.bsia-root .bsia-module-card:focus,
.bsia-root .bsia-module-card:active {
    position: relative;
    display: flex;
    align-items: center;
    gap: 14px;
    min-height: 112px;
    padding: 19px;
    border: 1px solid var(--bsia-line) !important;
    border-radius: 16px;
    outline: 0;
    background: #fff !important;
    color: var(--bsia-ink) !important;
    box-shadow: var(--bsia-shadow-xs) !important;
    text-align: left;
    text-decoration: none !important;
    transform: none;
    transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease, background .2s ease;
    -webkit-appearance: none;
    appearance: none;
}

.bsia-root .bsia-module-card:hover {
    border-color: #bfd0d5 !important;
    background: linear-gradient(145deg, #fff 0%, #f8faf9 100%) !important;
    color: var(--bsia-ink) !important;
    box-shadow: 0 15px 34px rgba(31, 45, 52, .085) !important;
    transform: translateY(-2px);
}

.bsia-root .bsia-module-card:focus-visible {
    border-color: var(--bsia-primary-2) !important;
    background: #fff !important;
    color: var(--bsia-ink) !important;
    box-shadow: 0 0 0 4px rgba(71, 120, 141, .14), var(--bsia-shadow-sm) !important;
}

.bsia-root .bsia-module-card > span {
    display: grid;
    flex: 0 0 46px;
    place-items: center;
    width: 46px;
    height: 46px;
    border: 1px solid rgba(71, 120, 141, .08);
    border-radius: 13px;
    background: #edf3f5 !important;
    color: var(--bsia-primary-2) !important;
    font-size: 23px;
    transition: background .2s ease, color .2s ease, transform .2s ease;
}

.bsia-root .bsia-module-card:hover > span {
    background: var(--bsia-primary) !important;
    color: #fff !important;
    transform: translateY(-1px);
}

.bsia-module-card div {
    min-width: 0;
}

.bsia-root .bsia-module-card strong {
    display: block;
    color: var(--bsia-ink) !important;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.28;
}

.bsia-root .bsia-module-card small {
    display: block;
    margin-top: 5px;
    color: var(--bsia-muted) !important;
    font-size: 11px;
    line-height: 1.35;
}

.bsia-root .bsia-module-card i {
    position: absolute;
    top: 14px;
    right: 15px;
    color: #aab5b9 !important;
    font-size: 14px;
    font-style: normal;
    transition: color .2s ease, transform .2s ease;
}

.bsia-root .bsia-module-card:hover i {
    color: var(--bsia-accent) !important;
    transform: translateX(2px);
}

.bsia-alerts-panel {
    margin-top: 19px;
    padding: 22px;
    border: 1px solid var(--bsia-line);
    border-radius: 16px;
    background: #fff;
    box-shadow: var(--bsia-shadow-xs);
}

.bsia-section-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 14px;
}

.bsia-section-head span {
    color: var(--bsia-primary-2);
}

.bsia-section-head h3 {
    margin: 4px 0 0;
    color: var(--bsia-ink) !important;
    font-size: 21px;
    font-weight: 700;
    letter-spacing: -.015em;
}

.bsia-alert-list article {
    display: grid;
    grid-template-columns: 12px 1fr auto;
    gap: 13px;
    align-items: center;
    padding: 13px 3px;
    border-top: 1px solid #edf0ef;
}

.bsia-alert-list article:first-child {
    border-top: 0;
}

.bsia-alert-icon {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--bsia-warning);
    box-shadow: 0 0 0 4px rgba(169, 118, 43, .09);
}

.bsia-alert-icon.end {
    background: var(--bsia-danger);
    box-shadow: 0 0 0 4px rgba(164, 71, 61, .09);
}

.bsia-alert-list strong {
    color: var(--bsia-ink) !important;
    font-size: 14px;
}

.bsia-alert-list p {
    margin: 2px 0 0;
    color: var(--bsia-muted);
    font-size: 13px;
}

.bsia-alert-list time {
    color: var(--bsia-ink-soft);
    font-size: 13px;
    font-weight: 650;
}

.bsia-empty {
    margin: 10px 0;
    color: var(--bsia-muted);
}

/* Modals */
body.bsia-modal-open {
    overflow: hidden;
}

.bsia-modal {
    position: fixed;
    z-index: 999999;
    inset: 0;
    display: none;
}

.bsia-modal.open {
    display: block;
}

.bsia-modal-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(17, 27, 32, .66);
    backdrop-filter: blur(6px);
}

.bsia-modal-dialog {
    position: absolute;
    inset: 3.5vh 3vw;
    display: flex;
    overflow: hidden;
    flex-direction: column;
    border: 1px solid rgba(255, 255, 255, .15);
    border-radius: 20px;
    background: #f6f7f6;
    box-shadow: 0 35px 110px rgba(12, 22, 27, .34);
}

.bsia-modal-header {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    padding: 23px 26px;
    border-bottom: 1px solid var(--bsia-line);
    background: #fff;
}

.bsia-modal-header small {
    color: var(--bsia-primary-2);
    font-size: 9px;
    font-weight: 700;
    letter-spacing: .15em;
    text-transform: uppercase;
}

.bsia-modal-header h2 {
    margin: 4px 0 2px;
    color: var(--bsia-ink) !important;
    font-size: 25px;
    font-weight: 700;
    letter-spacing: -.02em;
}

.bsia-modal-header p {
    margin: 0;
    color: var(--bsia-muted);
}

.bsia-root .bsia-modal-close,
.bsia-root .bsia-modal-close:focus,
.bsia-root .bsia-modal-close:active {
    display: grid;
    flex: 0 0 42px;
    place-items: center;
    width: 42px;
    height: 42px;
    padding: 0;
    border: 1px solid var(--bsia-line) !important;
    border-radius: 50%;
    background: #f5f6f5 !important;
    color: #5f6c72 !important;
    font-size: 26px;
    line-height: 1;
}

.bsia-root .bsia-modal-close:hover {
    border-color: #e5c2bd !important;
    background: #fff4f2 !important;
    color: var(--bsia-danger) !important;
}

.bsia-modal-toolbar {
    display: flex;
    justify-content: space-between;
    gap: 15px;
    padding: 14px 25px;
    border-bottom: 1px solid var(--bsia-line);
    background: rgba(255, 255, 255, .96);
}

.bsia-toolbar-filters {
    display: flex;
    flex: 1;
    align-items: center;
    gap: 10px;
}

.bsia-inline-search {
    position: relative;
    min-width: min(440px, 60%);
}

.bsia-toolbar-filters .bsia-inline-search {
    flex: 1;
}

.bsia-inline-search span {
    position: absolute;
    top: 50%;
    left: 13px;
    transform: translateY(-50%);
    color: #879196;
}

.bsia-inline-search input,
.bsia-toolbar-filters select {
    height: 42px;
    border: 1px solid var(--bsia-line-strong);
    border-radius: 10px;
    outline: 0;
    background: #fff;
    color: var(--bsia-ink);
}

.bsia-inline-search input {
    width: 100%;
    padding: 0 12px 0 41px;
}

.bsia-toolbar-filters select {
    min-width: 190px;
    padding: 0 10px;
}

.bsia-inline-search input:focus,
.bsia-toolbar-filters select:focus {
    border-color: var(--bsia-primary-2);
    box-shadow: 0 0 0 3px rgba(71, 120, 141, .10);
}

.bsia-modal-body {
    flex: 1;
    overflow: auto;
    padding: 22px 25px;
}

.bsia-loading {
    display: grid;
    min-height: 220px;
    place-items: center;
    color: var(--bsia-muted);
}

.bsia-empty-state {
    padding: 70px 20px;
    color: var(--bsia-muted);
    text-align: center;
}

.bsia-empty-state span {
    width: 42px;
    height: 42px;
    color: var(--bsia-primary-3);
    font-size: 42px;
}

.bsia-empty-state strong {
    display: block;
    margin: 10px 0 4px;
    color: var(--bsia-ink) !important;
    font-size: 18px;
}

.bsia-error-block {
    padding: 13px;
    border: 1px solid #efd2cf;
    border-radius: 10px;
    background: #fff5f4;
    color: #8d312a;
}

/* Tables and records */
.bsia-responsive-table {
    overflow: auto;
    border: 1px solid var(--bsia-line);
    border-radius: 14px;
    background: #fff;
    box-shadow: var(--bsia-shadow-xs);
}

.bsia-responsive-table table {
    width: 100%;
    min-width: 850px;
    border-collapse: collapse;
}

.bsia-responsive-table th {
    padding: 12px 14px;
    background: #f2f4f3;
    color: #69767c;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .07em;
    text-align: left;
    text-transform: uppercase;
}

.bsia-responsive-table td {
    padding: 13px 14px;
    border-top: 1px solid #edf0ef;
    color: var(--bsia-ink-soft);
    font-size: 13px;
    vertical-align: middle;
}

.bsia-responsive-table tbody tr {
    transition: background .16s ease;
}

.bsia-responsive-table tbody tr:hover {
    background: #fbfcfb;
}

.bsia-responsive-table td > strong {
    display: block;
    color: var(--bsia-ink) !important;
}

.bsia-responsive-table td > small {
    display: block;
    margin-top: 3px;
    color: var(--bsia-muted);
}

.bsia-responsive-table td:last-child {
    white-space: nowrap;
}

.bsia-status-pill,
.bsia-badge,
.bsia-movement {
    display: inline-flex;
    align-items: center;
    padding: 4px 8px;
    border-radius: 999px;
    background: #eef1f1;
    color: #5d6a70;
    font-size: 9px;
    font-weight: 700;
    letter-spacing: .05em;
    text-transform: uppercase;
}

.bsia-status-pill.active,
.bsia-status-pill.rented {
    background: #e9f3ef;
    color: #276b55;
}

.bsia-status-pill.available,
.bsia-status-pill.upcoming {
    background: #edf3f6;
    color: #3e7187;
}

.bsia-status-pill.reserved {
    background: #f8f1e6;
    color: #906524;
}

.bsia-status-pill.finished,
.bsia-status-pill.inactive,
.bsia-status-pill.cancelled {
    background: #f0f1f0;
    color: #6a7174;
}

.bsia-movement.income,
.bsia-movement.other_income {
    background: #e9f3ef;
    color: #276b55;
}

.bsia-movement.owner_payment {
    background: #f8f1e6;
    color: #906524;
}

.bsia-movement.expense {
    background: #f8ebea;
    color: #934039;
}

.bsia-root .bsia-small-btn,
.bsia-root .bsia-small-btn:visited,
.bsia-root .bsia-small-btn:focus,
.bsia-root .bsia-small-btn:active {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    margin: 2px;
    padding: 6px 9px;
    border: 1px solid var(--bsia-line-strong) !important;
    border-radius: 8px;
    background: #fff !important;
    color: var(--bsia-ink-soft) !important;
    font-size: 11px;
    font-weight: 650;
    text-decoration: none !important;
}

.bsia-root .bsia-small-btn:hover {
    border-color: var(--bsia-primary-2) !important;
    background: #f7faf9 !important;
    color: var(--bsia-primary) !important;
}

.bsia-root .bsia-small-btn.danger,
.bsia-root .bsia-icon-btn.danger {
    border-color: #e8c7c3 !important;
    color: var(--bsia-danger) !important;
}

.bsia-alert-table {
    display: grid;
    gap: 12px;
}

.bsia-alert-table article {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 17px;
    border: 1px solid var(--bsia-line);
    border-radius: 14px;
    background: #fff;
    box-shadow: var(--bsia-shadow-xs);
}

.bsia-alert-table article > div:first-child strong {
    display: block;
    margin: 7px 0 3px;
    color: var(--bsia-ink) !important;
}

.bsia-alert-table p {
    margin: 0;
    color: var(--bsia-muted);
    font-size: 13px;
}

.bsia-date-stack {
    display: flex;
    gap: 12px;
}

.bsia-date-stack > span {
    min-width: 150px;
    padding: 9px 11px;
    border: 1px solid #edf0ef;
    border-radius: 10px;
    background: #f5f6f5;
    color: var(--bsia-muted);
    font-size: 9px;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.bsia-date-stack strong,
.bsia-date-stack small {
    display: block;
    text-transform: none;
}

.bsia-date-stack strong {
    margin: 2px 0;
    color: var(--bsia-ink) !important;
    font-size: 14px;
}

.bsia-date-stack small {
    font-size: 11px;
}

/* Forms */
.bsia-form-view {
    max-width: 980px;
    margin: 0 auto;
    padding: 25px;
    border: 1px solid var(--bsia-line);
    border-radius: 16px;
    background: #fff;
    box-shadow: var(--bsia-shadow-xs);
}

.bsia-form-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 20px;
}

.bsia-form-heading h3 {
    margin: 0;
    color: var(--bsia-ink) !important;
    font-size: 21px;
    font-weight: 700;
}

.bsia-form-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
}

.bsia-form-grid label {
    display: grid;
    gap: 7px;
    color: var(--bsia-ink-soft);
    font-size: 13px;
    font-weight: 650;
}

.bsia-form-grid input,
.bsia-form-grid select,
.bsia-form-grid textarea {
    width: 100%;
    padding: 10px 12px;
    border: 1px solid var(--bsia-line-strong);
    border-radius: 10px;
    outline: 0;
    background: #fff;
    color: var(--bsia-ink);
    transition: border-color .18s ease, box-shadow .18s ease, background .18s ease;
}

.bsia-form-grid input,
.bsia-form-grid select {
    height: 44px;
}

.bsia-form-grid textarea {
    resize: vertical;
}

.bsia-form-grid input:focus,
.bsia-form-grid select:focus,
.bsia-form-grid textarea:focus {
    border-color: var(--bsia-primary-2);
    background: #fff;
    box-shadow: 0 0 0 3px rgba(71, 120, 141, .10);
}

.bsia-form-grid input[readonly] {
    cursor: not-allowed;
    border-color: #d8dedd;
    background: #f3f5f4;
    color: #526168;
    font-weight: 700;
    letter-spacing: .025em;
}

.bsia-form-grid input[readonly]:focus {
    border-color: #d8dedd;
    background: #f3f5f4;
    box-shadow: none;
}

.bsia-field-help {
    display: block;
    margin-top: -1px;
    color: var(--bsia-muted);
    font-size: 10.5px;
    font-weight: 500;
    line-height: 1.35;
}

.bsia-span-2 {
    grid-column: span 2;
}

.bsia-file-label {
    padding: 15px;
    border: 1px dashed #b8c4c7;
    border-radius: 12px;
    background: #f8f9f8;
}

.bsia-file-label input {
    height: auto;
    padding: 0;
    border: 0;
    box-shadow: none !important;
}

.bsia-file-label span {
    color: var(--bsia-muted);
    font-size: 11px;
    font-weight: 400;
}

.bsia-form-actions {
    display: flex;
    gap: 10px;
    margin-top: 22px;
}

/* Photo records */
.bsia-photo-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 15px;
}

.bsia-photo-card {
    position: relative;
    overflow: hidden;
    border: 1px solid var(--bsia-line);
    border-radius: 15px;
    background: #fff;
    box-shadow: var(--bsia-shadow-xs);
}

.bsia-photo-card > a {
    display: block;
    aspect-ratio: 4 / 3;
    overflow: hidden;
    background: #e9eeee;
}

.bsia-photo-card img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .25s ease;
}

.bsia-photo-card:hover img {
    transform: scale(1.025);
}

.bsia-photo-card > div {
    padding: 13px;
}

.bsia-photo-card strong {
    display: block;
    margin: 7px 0 2px;
    color: var(--bsia-ink) !important;
}

.bsia-photo-card p,
.bsia-photo-card small {
    display: block;
    margin: 0;
    color: var(--bsia-muted);
    font-size: 12px;
}

.bsia-badge.offer {
    background: #edf3f6;
    color: #3e7187;
}

.bsia-badge.start {
    background: #e9f3ef;
    color: #276b55;
}

.bsia-badge.end {
    background: #f8ebea;
    color: #934039;
}

.bsia-root .bsia-icon-btn,
.bsia-root .bsia-icon-btn:focus,
.bsia-root .bsia-icon-btn:active {
    position: absolute;
    top: 9px;
    right: 9px;
    display: grid;
    place-items: center;
    width: 31px;
    height: 31px;
    padding: 0;
    border: 1px solid rgba(31, 45, 52, .11) !important;
    border-radius: 50%;
    background: rgba(255, 255, 255, .94) !important;
    color: var(--bsia-ink-soft) !important;
    font-size: 19px;
    line-height: 1;
    backdrop-filter: blur(6px);
}

.bsia-toast {
    position: fixed;
    z-index: 1000000;
    right: 24px;
    bottom: 24px;
    max-width: 380px;
    padding: 13px 17px;
    border: 1px solid rgba(255, 255, 255, .12);
    border-radius: 11px;
    background: #2f5f50;
    color: #fff;
    box-shadow: 0 14px 42px rgba(0, 0, 0, .22);
    opacity: 0;
    pointer-events: none;
    transform: translateY(15px);
    transition: opacity .25s ease, transform .25s ease;
}

.bsia-toast.show {
    opacity: 1;
    transform: none;
}

.bsia-toast.error {
    background: #873a33;
}

/* Responsive */
@media (max-width: 1100px) {
    .bsia-app-header {
        grid-template-columns: 1fr 1.3fr;
    }

    .bsia-user-menu {
        display: none;
    }

    .bsia-stats,
    .bsia-module-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .bsia-photo-grid {
        grid-template-columns: repeat(3, 1fr);
    }
}

@media (max-width: 760px) {
    .bsia-app {
        border-right: 0;
        border-left: 0;
        border-radius: 0;
    }

    .bsia-app-header {
        grid-template-columns: 1fr;
        gap: 12px;
        padding: 13px 15px;
    }

    .bsia-app-brand {
        justify-content: center;
    }

    .bsia-main {
        padding: 14px;
    }

    .bsia-welcome {
        display: block;
        padding: 23px;
    }

    .bsia-welcome h2 {
        font-size: 22px;
    }

    .bsia-today {
        display: inline-block;
        margin-top: 16px;
    }

    .bsia-stats {
        gap: 10px;
    }

    .bsia-stats article {
        padding: 15px;
    }

    .bsia-stats strong {
        font-size: 19px;
    }

    .bsia-module-grid {
        grid-template-columns: 1fr;
        gap: 10px;
    }

    .bsia-root .bsia-module-card,
    .bsia-root .bsia-module-card:focus,
    .bsia-root .bsia-module-card:active {
        min-height: 90px;
        padding: 16px;
    }

    .bsia-modal-dialog {
        inset: 0;
        border: 0;
        border-radius: 0;
    }

    .bsia-modal-header {
        padding: 16px;
    }

    .bsia-modal-header h2 {
        font-size: 21px;
    }

    .bsia-modal-header p {
        font-size: 12px;
    }

    .bsia-modal-toolbar {
        display: grid;
        padding: 10px;
    }

    .bsia-toolbar-filters {
        display: grid;
    }

    .bsia-inline-search {
        min-width: 0;
    }

    .bsia-toolbar-filters select {
        width: 100%;
        min-width: 0;
    }

    .bsia-modal-body {
        padding: 10px;
    }

    .bsia-responsive-table {
        overflow: visible;
        border: 0;
        background: transparent;
        box-shadow: none;
    }

    .bsia-responsive-table table,
    .bsia-responsive-table thead,
    .bsia-responsive-table tbody,
    .bsia-responsive-table tr,
    .bsia-responsive-table th,
    .bsia-responsive-table td {
        display: block;
        min-width: 0;
    }

    .bsia-responsive-table thead {
        display: none;
    }

    .bsia-responsive-table tr {
        margin-bottom: 10px;
        padding: 10px;
        border: 1px solid var(--bsia-line);
        border-radius: 13px;
        background: #fff;
        box-shadow: var(--bsia-shadow-xs);
    }

    .bsia-responsive-table td {
        display: grid;
        grid-template-columns: 110px 1fr;
        gap: 10px;
        padding: 8px;
        border-top: 1px solid #edf0ef;
    }

    .bsia-responsive-table td:first-child {
        border-top: 0;
    }

    .bsia-responsive-table td::before {
        content: attr(data-label);
        color: var(--bsia-muted);
        font-size: 9px;
        font-weight: 700;
        letter-spacing: .05em;
        text-transform: uppercase;
    }

    .bsia-responsive-table td:last-child {
        display: flex;
        flex-wrap: wrap;
        padding-left: 118px;
    }

    .bsia-form-view {
        padding: 16px;
        border-radius: 12px;
    }

    .bsia-form-grid {
        grid-template-columns: 1fr;
    }

    .bsia-span-2 {
        grid-column: auto;
    }

    .bsia-form-actions {
        display: grid;
    }

    .bsia-photo-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 10px;
    }

    .bsia-alert-table article {
        display: block;
    }

    .bsia-date-stack {
        display: grid;
        grid-template-columns: 1fr 1fr;
        margin-top: 13px;
    }

    .bsia-date-stack > span {
        min-width: 0;
    }

    .bsia-login-card {
        padding: 28px 21px;
    }

    .bsia-alert-list article {
        grid-template-columns: 10px 1fr;
    }

    .bsia-alert-list time {
        grid-column: 2;
    }

    .bsia-toast {
        right: 12px;
        bottom: 12px;
        left: 12px;
        max-width: none;
    }
}

@media (max-width: 430px) {
    .bsia-stats {
        grid-template-columns: 1fr 1fr;
    }

    .bsia-stats small {
        display: none;
    }

    .bsia-photo-grid,
    .bsia-date-stack {
        grid-template-columns: 1fr;
    }

    .bsia-responsive-table td {
        grid-template-columns: 95px 1fr;
    }

    .bsia-responsive-table td:last-child {
        padding-left: 103px;
    }
}

/* ========================================================================
 * 1.0.2 – Escritorio con navegación lateral y módulos en área de trabajo
 * ===================================================================== */
.bsia-app-shell {
    display: grid;
    grid-template-columns: 228px minmax(0, 1fr);
    min-height: calc(78vh - 77px);
}

.bsia-content-area {
    position: relative;
    min-width: 0;
    background:
        linear-gradient(rgba(246, 247, 246, .95), rgba(246, 247, 246, .95)),
        radial-gradient(circle at 96% 5%, rgba(179, 154, 115, .08), transparent 24%);
}

.bsia-sidebar {
    display: flex;
    min-width: 0;
    flex-direction: column;
    padding: 22px 15px 17px;
    border-right: 1px solid var(--bsia-line);
    background: linear-gradient(180deg, #f8f8f6 0%, #f1f3f2 100%);
}

.bsia-sidebar-heading {
    padding: 0 10px 17px;
    border-bottom: 1px solid rgba(37, 63, 75, .08);
}

.bsia-sidebar-heading small {
    display: block;
    color: var(--bsia-primary-2);
    font-size: 9px;
    font-weight: 750;
    letter-spacing: .15em;
    text-transform: uppercase;
}

.bsia-sidebar-heading strong {
    display: block;
    margin-top: 5px;
    color: var(--bsia-ink) !important;
    font-size: 14px;
    font-weight: 700;
}

.bsia-sidebar-nav {
    display: grid;
    gap: 5px;
    padding-top: 15px;
}

.bsia-root .bsia-sidebar-link,
.bsia-root .bsia-sidebar-link:focus,
.bsia-root .bsia-sidebar-link:active,
.bsia-root .bsia-sidebar-link:visited {
    position: relative;
    display: flex;
    align-items: center;
    gap: 11px;
    width: 100%;
    min-height: 46px;
    padding: 9px 11px;
    border: 1px solid transparent !important;
    border-radius: 11px;
    outline: 0;
    background: transparent !important;
    color: var(--bsia-ink-soft) !important;
    text-align: left;
    text-decoration: none !important;
    transition: background .18s ease, border-color .18s ease, color .18s ease, transform .18s ease, box-shadow .18s ease;
    -webkit-appearance: none;
    appearance: none;
}

.bsia-root .bsia-sidebar-link:hover {
    border-color: rgba(37, 63, 75, .08) !important;
    background: #e8edec !important;
    color: var(--bsia-primary) !important;
    transform: translateX(2px);
}

.bsia-root .bsia-sidebar-link.is-active,
.bsia-root .bsia-sidebar-link.is-active:hover,
.bsia-root .bsia-sidebar-link.is-active:focus {
    border-color: var(--bsia-primary) !important;
    background: var(--bsia-primary) !important;
    color: #fff !important;
    box-shadow: 0 9px 22px rgba(37, 63, 75, .16) !important;
    transform: none;
}

.bsia-root .bsia-sidebar-link > span {
    display: grid;
    flex: 0 0 29px;
    place-items: center;
    width: 29px;
    height: 29px;
    border-radius: 8px;
    background: rgba(71, 120, 141, .09);
    color: var(--bsia-primary-2);
    font-size: 17px;
    transition: background .18s ease, color .18s ease;
}

.bsia-root .bsia-sidebar-link.is-active > span {
    background: rgba(255, 255, 255, .13);
    color: #fff;
}

.bsia-sidebar-link em {
    overflow: hidden;
    font-size: 12px;
    font-style: normal;
    font-weight: 680;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.bsia-sidebar-note {
    display: flex;
    align-items: center;
    gap: 9px;
    margin-top: auto;
    padding: 13px 10px 0;
    border-top: 1px solid rgba(37, 63, 75, .08);
    color: var(--bsia-muted);
}

.bsia-sidebar-note > span {
    color: var(--bsia-success);
    font-size: 19px;
}

.bsia-sidebar-note p {
    margin: 0;
    color: var(--bsia-ink-soft);
    font-size: 11px;
    font-weight: 650;
    line-height: 1.25;
}

.bsia-sidebar-note small {
    color: var(--bsia-muted);
    font-size: 9px;
    font-weight: 500;
}

/* Tarjetas con mayor contraste y oscurecimiento suave al pasar el mouse. */
.bsia-root .bsia-module-card,
.bsia-root .bsia-module-card:visited,
.bsia-root .bsia-module-card:focus,
.bsia-root .bsia-module-card:active {
    --bsia-card-bg: #f2f5f5;
    --bsia-card-hover: #e6ecec;
    border-color: #dbe2e3 !important;
    background: var(--bsia-card-bg) !important;
}

.bsia-root .bsia-module-card:nth-child(2) { --bsia-card-bg: #f5f3ee; --bsia-card-hover: #ebe7dd; }
.bsia-root .bsia-module-card:nth-child(3) { --bsia-card-bg: #f1f5f3; --bsia-card-hover: #e4ece8; }
.bsia-root .bsia-module-card:nth-child(4) { --bsia-card-bg: #f2f4f6; --bsia-card-hover: #e5e9ed; }
.bsia-root .bsia-module-card:nth-child(5) { --bsia-card-bg: #f4f3f1; --bsia-card-hover: #e9e6e1; }
.bsia-root .bsia-module-card:nth-child(6) { --bsia-card-bg: #f2f5f4; --bsia-card-hover: #e5ebe9; }
.bsia-root .bsia-module-card:nth-child(7) { --bsia-card-bg: #f4f4f0; --bsia-card-hover: #e9e9e1; }

.bsia-root .bsia-module-card:hover {
    border-color: #c7d1d3 !important;
    background: var(--bsia-card-hover) !important;
    box-shadow: 0 15px 34px rgba(31, 45, 52, .095) !important;
}

.bsia-root .bsia-module-card:focus-visible {
    background: var(--bsia-card-bg) !important;
}

.bsia-root .bsia-module-card > span {
    background: rgba(255, 255, 255, .74) !important;
}

/* El mismo módulo puede funcionar como modal o como vista interna. */
.bsia-modal.bsia-inline-open {
    position: relative;
    z-index: 1;
    inset: auto;
    display: block;
    min-height: 100%;
    padding: 27px;
}

.bsia-modal.bsia-inline-open .bsia-modal-backdrop {
    display: none;
}

.bsia-modal.bsia-inline-open .bsia-modal-dialog {
    position: relative;
    inset: auto;
    width: 100%;
    min-height: calc(78vh - 132px);
    overflow: hidden;
    border: 1px solid var(--bsia-line);
    border-radius: 18px;
    background: #f7f8f7;
    box-shadow: var(--bsia-shadow-sm);
}

.bsia-modal.bsia-inline-open .bsia-modal-header {
    padding: 24px 26px 20px;
    background: linear-gradient(135deg, #ffffff 0%, #fafaf8 100%);
}

.bsia-module-header-actions {
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    gap: 9px;
}

.bsia-root .bsia-inline-back,
.bsia-root .bsia-inline-back:focus,
.bsia-root .bsia-inline-back:active {
    display: none;
    align-items: center;
    gap: 5px;
    min-height: 39px;
    padding: 8px 12px;
    border: 1px solid var(--bsia-line-strong) !important;
    border-radius: 10px;
    background: #fff !important;
    color: var(--bsia-ink-soft) !important;
    font-size: 12px;
    font-weight: 680;
}

.bsia-root .bsia-inline-back:hover {
    border-color: #bdc9cc !important;
    background: #edf1f0 !important;
    color: var(--bsia-primary) !important;
}

.bsia-inline-back .dashicons {
    width: 16px;
    height: 16px;
    font-size: 16px;
}

.bsia-modal.bsia-inline-open .bsia-inline-back {
    display: inline-flex;
}

.bsia-modal.bsia-inline-open .bsia-modal-close {
    display: none !important;
}

@media (max-width: 1100px) {
    .bsia-app-shell {
        grid-template-columns: 196px minmax(0, 1fr);
    }

    .bsia-sidebar {
        padding-right: 11px;
        padding-left: 11px;
    }

    .bsia-sidebar-link em {
        font-size: 11px;
    }

    .bsia-modal.bsia-inline-open {
        padding: 20px;
    }
}

@media (max-width: 760px) {
    .bsia-app-shell {
        display: block;
        min-height: 0;
    }

    .bsia-sidebar {
        display: block;
        overflow: hidden;
        padding: 9px 10px;
        border-right: 0;
        border-bottom: 1px solid var(--bsia-line);
        background: #f5f6f4;
    }

    .bsia-sidebar-heading,
    .bsia-sidebar-note {
        display: none;
    }

    .bsia-sidebar-nav {
        display: flex;
        overflow-x: auto;
        gap: 7px;
        padding: 0 0 2px;
        scrollbar-width: thin;
        -webkit-overflow-scrolling: touch;
    }

    .bsia-root .bsia-sidebar-link,
    .bsia-root .bsia-sidebar-link:focus,
    .bsia-root .bsia-sidebar-link:active {
        flex: 0 0 auto;
        width: auto;
        min-width: 126px;
        min-height: 42px;
        padding: 7px 10px;
    }

    .bsia-root .bsia-sidebar-link:hover {
        transform: none;
    }

    .bsia-root .bsia-sidebar-link > span {
        flex-basis: 27px;
        width: 27px;
        height: 27px;
        font-size: 16px;
    }

    .bsia-sidebar-link em {
        font-size: 10px;
    }

    .bsia-modal.bsia-inline-open {
        min-height: 0;
        padding: 12px;
    }

    .bsia-modal.bsia-inline-open .bsia-modal-dialog {
        min-height: 68vh;
        border: 1px solid var(--bsia-line);
        border-radius: 14px;
    }

    .bsia-modal.bsia-inline-open .bsia-modal-header {
        align-items: flex-start;
        padding: 16px;
    }

    .bsia-root .bsia-inline-back,
    .bsia-root .bsia-inline-back:focus,
    .bsia-root .bsia-inline-back:active {
        width: 39px;
        min-width: 39px;
        padding: 0;
        justify-content: center;
        font-size: 0;
    }

    .bsia-inline-back .dashicons {
        width: 18px;
        height: 18px;
        font-size: 18px;
    }
}

/* v1.0.3 – importes en formato argentino y Registro IPC */
.bsia-money-field,
.bsia-value-field,
.bsia-suffix-field {
    display: flex;
    align-items: center;
    min-height: 44px;
    overflow: hidden;
    border: 1px solid var(--bsia-line-strong);
    border-radius: 10px;
    background: #fff;
    transition: border-color .18s ease, box-shadow .18s ease, background .18s ease;
}

.bsia-money-field:focus-within,
.bsia-value-field:focus-within,
.bsia-suffix-field:focus-within {
    border-color: var(--bsia-primary-2);
    box-shadow: 0 0 0 3px rgba(71, 120, 141, .10);
}

.bsia-money-field > span,
.bsia-value-field > span,
.bsia-suffix-field > span {
    display: inline-flex;
    align-self: stretch;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    min-width: 43px;
    padding: 0 11px;
    border-right: 1px solid var(--bsia-line);
    background: #f4f6f5;
    color: var(--bsia-primary);
    font-size: 13px;
    font-weight: 750;
}

.bsia-suffix-field > span {
    min-width: 67px;
    border-right: 0;
    border-left: 1px solid var(--bsia-line);
    color: var(--bsia-muted);
    font-size: 11px;
    text-transform: lowercase;
}

.bsia-form-grid .bsia-money-field input,
.bsia-form-grid .bsia-value-field input,
.bsia-form-grid .bsia-suffix-field input,
.bsia-form-grid .bsia-money-field input:focus,
.bsia-form-grid .bsia-value-field input:focus,
.bsia-form-grid .bsia-suffix-field input:focus {
    min-width: 0;
    height: 42px;
    padding: 9px 12px;
    border: 0 !important;
    border-radius: 0;
    background: transparent;
    box-shadow: none !important;
}

.bsia-form-grid label.is-disabled {
    opacity: .52;
}

.bsia-form-grid label.is-disabled input {
    cursor: not-allowed;
    background: #f1f2f1;
}

.bsia-status-pill.confirmed {
    background: #e9f3ef;
    color: #276b55;
}

.bsia-status-pill.draft {
    background: #f8f1e6;
    color: #906524;
}

.bsia-increase-table article {
    align-items: stretch;
}

.bsia-increase-main {
    display: grid;
    flex: 1 1 auto;
    grid-template-columns: minmax(210px, .8fr) minmax(310px, 1.2fr);
    gap: 18px;
    align-items: center;
}

.bsia-ipc-calculation {
    display: grid;
    grid-template-columns: repeat(3, minmax(110px, 1fr));
    gap: 8px 13px;
    padding: 13px 14px;
    border: 1px solid #dce5e6;
    border-radius: 12px;
    background: #f8faf9;
}

.bsia-ipc-calculation > span {
    color: var(--bsia-muted);
    font-size: 10px;
    font-weight: 650;
    letter-spacing: .025em;
    text-transform: uppercase;
}

.bsia-ipc-calculation > span strong,
.bsia-ipc-calculation > strong {
    display: block;
    margin-top: 3px;
    color: var(--bsia-ink) !important;
    font-size: 13px;
    letter-spacing: 0;
    text-transform: none;
}

.bsia-ipc-calculation > small,
.bsia-ipc-calculation > em {
    grid-column: 1 / -1;
    color: var(--bsia-muted);
    font-size: 11px;
    font-style: normal;
}

.bsia-ipc-calculation.ready {
    border-color: #cfe1db;
    background: #f4f9f7;
}

.bsia-ipc-calculation.missing {
    display: block;
    border-color: #ead8b8;
    background: #fffaf1;
}

.bsia-ipc-calculation.missing strong {
    color: #81591c !important;
}

.bsia-ipc-calculation.neutral {
    display: block;
}

.bsia-root .bsia-apply-ipc {
    grid-column: 1 / -1;
    justify-self: start;
    min-height: 38px;
    margin-top: 3px;
    padding: 8px 13px;
    font-size: 12px;
}

@media (max-width: 1180px) {
    .bsia-increase-main {
        grid-template-columns: 1fr;
    }

    .bsia-ipc-calculation {
        grid-template-columns: repeat(3, 1fr);
    }
}

@media (max-width: 760px) {
    .bsia-ipc-calculation {
        grid-template-columns: 1fr;
    }

    .bsia-ipc-calculation > small,
    .bsia-ipc-calculation > em,
    .bsia-root .bsia-apply-ipc {
        grid-column: auto;
    }

    .bsia-increase-main {
        gap: 12px;
    }
}

/* Cuenta corriente del inquilino – v1.0.4 */
.bsia-root .bsia-small-btn.account,
.bsia-root .bsia-small-btn.account:visited,
.bsia-root .bsia-small-btn.account:focus,
.bsia-root .bsia-small-btn.account:active {
    border-color: #c8d9df;
    background: #edf4f6;
    color: var(--bsia-primary);
}

.bsia-root .bsia-small-btn.account:hover {
    border-color: #aac3cd;
    background: #e2edf1;
}

.bsia-balance-due {
    color: #92512e !important;
}

.bsia-balance-clear {
    color: var(--bsia-success) !important;
}

.bsia-tenant-account-view {
    min-height: 390px;
}

.bsia-tenant-account-shell {
    width: min(100%, 1180px);
    margin: 0 auto;
}

.bsia-tenant-account-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 22px;
    margin-bottom: 20px;
    padding: 21px 23px;
    border: 1px solid var(--bsia-line);
    border-radius: var(--bsia-radius-md);
    background: linear-gradient(135deg, #fbfcfc, #f5f8f7);
}

.bsia-tenant-account-head small {
    display: block;
    margin-bottom: 4px;
    color: var(--bsia-primary-2);
    font-size: 10px;
    font-weight: 750;
    letter-spacing: .13em;
    text-transform: uppercase;
}

.bsia-tenant-account-head h3 {
    margin: 0 0 5px;
    font-size: 24px;
    line-height: 1.2;
}

.bsia-tenant-account-head p {
    margin: 0;
    color: var(--bsia-muted);
    font-size: 13px;
}

.bsia-tenant-account-head-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 9px;
}

.bsia-tenant-account-summary {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
    margin-bottom: 18px;
}

.bsia-tenant-account-summary article {
    min-height: 112px;
    padding: 19px 20px;
    border: 1px solid var(--bsia-line);
    border-radius: var(--bsia-radius-md);
    background: #fff;
    box-shadow: var(--bsia-shadow-xs);
}

.bsia-tenant-account-summary article span,
.bsia-tenant-account-summary article small {
    display: block;
    color: var(--bsia-muted);
}

.bsia-tenant-account-summary article span {
    margin-bottom: 7px;
    font-size: 11px;
    font-weight: 650;
}

.bsia-tenant-account-summary article strong {
    display: block;
    margin-bottom: 6px;
    font-size: 22px;
    line-height: 1.1;
}

.bsia-tenant-account-summary article small {
    font-size: 11px;
}

.bsia-tenant-account-summary article.is-due {
    border-color: #ead9c9;
    background: #fffaf5;
}

.bsia-tenant-account-summary article.is-due strong {
    color: #92512e !important;
}

.bsia-tenant-account-summary article.is-clear {
    border-color: #d7e7df;
    background: #f7fbf9;
}

.bsia-tenant-account-summary article.is-clear strong {
    color: var(--bsia-success) !important;
}

.bsia-tenant-expense-list {
    padding: 2px 0;
}

.bsia-tenant-expense-form {
    width: min(100%, 850px);
    margin: 0 auto;
    padding: 22px;
    border: 1px solid var(--bsia-line);
    border-radius: var(--bsia-radius-md);
    background: #fff;
    box-shadow: var(--bsia-shadow-xs);
}

.bsia-form-note {
    margin: 1px 0 16px;
    color: var(--bsia-muted);
    font-size: 12px;
}

.bsia-status-pill.pending {
    background: #fff3df;
    color: #93631f;
}

.bsia-status-pill.partial {
    background: #edf2f7;
    color: #48657a;
}

.bsia-status-pill.paid {
    background: #e8f4ee;
    color: #2f7159;
}

@media (max-width: 860px) {
    .bsia-tenant-account-head {
        flex-direction: column;
    }

    .bsia-tenant-account-head-actions {
        width: 100%;
        justify-content: flex-start;
    }

    .bsia-tenant-account-summary {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 560px) {
    .bsia-tenant-account-head,
    .bsia-tenant-expense-form {
        padding: 17px;
    }

    .bsia-tenant-account-head-actions,
    .bsia-tenant-account-head-actions .bsia-primary-btn,
    .bsia-tenant-account-head-actions .bsia-secondary-btn {
        width: 100%;
    }
}

/* v1.0.6 · Estado visible de adjuntos de contrato */
.bsia-current-file {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 14px 16px;
    border: 1px solid #cddde3;
    border-radius: 14px;
    background: #f5fafb;
}

.bsia-current-file[hidden] {
    display: none !important;
}

.bsia-current-file > div:first-child {
    min-width: 0;
}

.bsia-current-file small {
    display: block;
    margin-bottom: 3px;
    color: var(--bsia-muted);
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: .08em;
}

.bsia-current-file strong {
    display: block;
    overflow: hidden;
    color: var(--bsia-ink);
    text-overflow: ellipsis;
    white-space: nowrap;
}

.bsia-current-file-actions {
    display: flex;
    align-items: center;
    gap: 8px;
    flex: 0 0 auto;
}

.bsia-current-file.is-missing {
    border-color: #ead0c8;
    background: #fff8f5;
}

.bsia-current-file.is-missing strong,
.bsia-file-missing {
    color: #a14f3a !important;
}

.bsia-file-link {
    font-weight: 700;
}

.bsia-danger-btn {
    border-color: #e4c8c0 !important;
    color: #974b38 !important;
    background: #fff !important;
}

.bsia-danger-btn:hover {
    border-color: #d8b3a8 !important;
    background: #fff7f4 !important;
}

@media (max-width: 620px) {
    .bsia-current-file {
        align-items: stretch;
        flex-direction: column;
    }

    .bsia-current-file-actions {
        width: 100%;
        flex-wrap: wrap;
    }

    .bsia-current-file-actions .bsia-small-btn {
        flex: 1 1 150px;
        justify-content: center;
        text-align: center;
    }
}


/* v1.0.7 · Vista previa privada de contratos */
body.bsia-file-viewer-open {
    overflow: hidden;
}

.bsia-file-viewer {
    position: fixed;
    inset: 0;
    z-index: 1000005;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 28px;
}

.bsia-file-viewer.open {
    display: flex;
}

.bsia-file-viewer-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(16, 34, 42, .72);
    backdrop-filter: blur(7px);
}

.bsia-file-viewer-dialog {
    position: relative;
    z-index: 1;
    display: flex;
    overflow: hidden;
    flex-direction: column;
    width: min(1180px, 96vw);
    height: min(880px, 92vh);
    border: 1px solid rgba(255, 255, 255, .5);
    border-radius: 24px;
    background: #f7fafb;
    box-shadow: 0 28px 90px rgba(8, 29, 38, .34);
}

.bsia-file-viewer-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 18px 22px;
    border-bottom: 1px solid #dbe5e8;
    background: #fff;
}

.bsia-file-viewer-header > div {
    min-width: 0;
}

.bsia-file-viewer-header small {
    display: block;
    margin-bottom: 3px;
    color: var(--bsia-primary);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .11em;
    text-transform: uppercase;
}

.bsia-file-viewer-header h2 {
    margin: 0;
    color: var(--bsia-ink);
    font-size: clamp(20px, 2vw, 27px);
    line-height: 1.15;
}

.bsia-file-viewer-header p {
    overflow: hidden;
    margin: 5px 0 0;
    color: var(--bsia-muted);
    font-size: 13px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.bsia-root .bsia-file-viewer-close,
.bsia-root .bsia-file-viewer-close:focus,
.bsia-root .bsia-file-viewer-close:active {
    display: grid;
    flex: 0 0 42px;
    width: 42px;
    height: 42px;
    padding: 0;
    border: 1px solid #d8e2e5;
    border-radius: 50%;
    outline: none;
    color: #5d7079;
    background: #f7fafb;
    box-shadow: none;
    font-size: 26px;
    line-height: 1;
    place-items: center;
}

.bsia-root .bsia-file-viewer-close:hover {
    border-color: #c4d2d7;
    color: var(--bsia-ink);
    background: #edf3f5;
}

.bsia-file-viewer-body {
    display: flex;
    flex: 1 1 auto;
    min-height: 0;
    align-items: center;
    justify-content: center;
    padding: 18px;
    background: #e9eff1;
}

.bsia-file-viewer-frame {
    width: 100%;
    height: 100%;
    border: 0;
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 8px 24px rgba(26, 52, 62, .10);
}

.bsia-file-viewer-image {
    display: block;
    max-width: 100%;
    max-height: 100%;
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 8px 28px rgba(26, 52, 62, .16);
    object-fit: contain;
}

.bsia-file-viewer-fallback {
    max-width: 440px;
    padding: 34px;
    border: 1px solid #d4e0e4;
    border-radius: 18px;
    text-align: center;
    background: #fff;
}

.bsia-file-viewer-fallback .dashicons {
    width: 44px;
    height: 44px;
    margin-bottom: 12px;
    color: var(--bsia-primary);
    font-size: 44px;
}

.bsia-file-viewer-fallback strong {
    display: block;
    color: var(--bsia-ink);
    font-size: 18px;
}

.bsia-file-viewer-fallback p {
    margin: 7px 0 0;
    color: var(--bsia-muted);
}

.bsia-file-viewer-footer {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
    padding: 14px 20px;
    border-top: 1px solid #dbe5e8;
    background: #fff;
}

.bsia-file-preview-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    border: 0;
    color: var(--bsia-primary);
    background: transparent;
    box-shadow: none;
    font: inherit;
    font-weight: 700;
    cursor: pointer;
}

.bsia-file-preview-link:hover,
.bsia-file-preview-link:focus {
    color: var(--bsia-primary-2);
    background: transparent;
    box-shadow: none;
    text-decoration: underline;
}

.bsia-current-file-actions .bsia-file-preview-link {
    padding: 8px 11px;
    border: 1px solid #cbdbe0;
    border-radius: 9px;
    background: #fff;
    text-decoration: none;
}

.bsia-current-file-actions .bsia-file-preview-link:hover {
    border-color: #b8cbd1;
    background: #eef5f6;
    text-decoration: none;
}

@media (max-width: 700px) {
    .bsia-file-viewer {
        padding: 0;
    }

    .bsia-file-viewer-dialog {
        width: 100%;
        height: 100%;
        border: 0;
        border-radius: 0;
    }

    .bsia-file-viewer-header {
        padding: 14px 15px;
    }

    .bsia-file-viewer-body {
        padding: 9px;
    }

    .bsia-file-viewer-frame,
    .bsia-file-viewer-image {
        border-radius: 8px;
    }

    .bsia-file-viewer-footer {
        flex-wrap: wrap;
        padding: 11px 13px calc(11px + env(safe-area-inset-bottom));
    }

    .bsia-file-viewer-footer .bsia-primary-btn,
    .bsia-file-viewer-footer .bsia-secondary-btn {
        flex: 1 1 145px;
        text-align: center;
    }
}

/* v1.0.8 · Contratos activos, historial y paginación */
.bsia-contracts-toolbar {
    align-items: flex-start;
}

.bsia-contract-toolbar-content {
    display: grid;
    flex: 1;
    gap: 10px;
    min-width: 0;
}

.bsia-contract-toolbar-top {
    display: flex;
    align-items: center;
    gap: 12px;
}

.bsia-contract-toolbar-top .bsia-inline-search {
    flex: 1;
    min-width: 240px;
}

.bsia-contract-tabs {
    display: inline-flex;
    flex: 0 0 auto;
    gap: 4px;
    padding: 4px;
    border: 1px solid var(--bsia-line);
    border-radius: 12px;
    background: #f3f6f6;
}

.bsia-root .bsia-contract-tabs button {
    min-height: 36px;
    padding: 7px 13px;
    border: 0 !important;
    border-radius: 9px;
    background: transparent !important;
    color: var(--bsia-muted) !important;
    box-shadow: none !important;
    font-size: 12px;
    font-weight: 750;
    white-space: nowrap;
    cursor: pointer;
}

.bsia-root .bsia-contract-tabs button:hover {
    background: rgba(31, 78, 96, .07) !important;
    color: var(--bsia-primary) !important;
}

.bsia-root .bsia-contract-tabs button.is-active {
    background: #fff !important;
    color: var(--bsia-primary) !important;
    box-shadow: 0 3px 10px rgba(22, 54, 66, .09) !important;
}

.bsia-contract-filter-row {
    display: grid;
    grid-template-columns: minmax(165px, .9fr) repeat(3, minmax(145px, 1fr)) auto;
    gap: 8px;
}

.bsia-contract-filter-row > select,
.bsia-contract-page-size select {
    height: 39px;
    min-width: 0;
    border: 1px solid var(--bsia-line-strong);
    border-radius: 9px;
    outline: 0;
    background: #fff;
    color: var(--bsia-ink);
    font-size: 12px;
}

.bsia-contract-filter-row > select {
    width: 100%;
    padding: 0 9px;
}

.bsia-contract-page-size {
    display: inline-flex;
    align-items: center;
    justify-content: flex-end;
    gap: 7px;
    color: var(--bsia-muted);
    font-size: 12px;
    font-weight: 650;
    white-space: nowrap;
}

.bsia-contract-page-size select {
    width: 68px;
    padding: 0 7px;
}

.bsia-contract-filter-row > select:focus,
.bsia-contract-page-size select:focus {
    border-color: var(--bsia-primary-2);
    box-shadow: 0 0 0 3px rgba(71, 120, 141, .10);
}

.bsia-contract-pagination {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 15px;
    margin-top: 14px;
    padding: 12px 14px;
    border: 1px solid var(--bsia-line);
    border-radius: 11px;
    background: #f8faf9;
}

.bsia-contract-pagination p {
    margin: 0;
    color: var(--bsia-muted);
    font-size: 12px;
}

.bsia-contract-pagination > div {
    display: flex;
    align-items: center;
    gap: 10px;
}

.bsia-contract-pagination > div > span {
    color: var(--bsia-muted);
    font-size: 12px;
    white-space: nowrap;
}

.bsia-contract-pagination button:disabled {
    opacity: .45;
    cursor: default;
}

@media (max-width: 1180px) {
    .bsia-contracts-toolbar {
        flex-wrap: wrap;
    }

    .bsia-contracts-toolbar > .bsia-new-btn {
        margin-left: auto;
    }

    .bsia-contract-filter-row {
        grid-template-columns: repeat(2, minmax(170px, 1fr));
    }

    .bsia-contract-page-size {
        justify-content: flex-start;
    }
}

@media (max-width: 760px) {
    .bsia-contracts-toolbar {
        display: grid;
    }

    .bsia-contract-toolbar-top {
        display: grid;
    }

    .bsia-contract-toolbar-top .bsia-inline-search {
        min-width: 0;
    }

    .bsia-contract-tabs {
        display: grid;
        grid-template-columns: 1fr 1fr;
        width: 100%;
    }

    .bsia-root .bsia-contract-tabs button {
        white-space: normal;
    }

    .bsia-contract-filter-row {
        grid-template-columns: 1fr;
    }

    .bsia-contract-page-size {
        justify-content: space-between;
        padding: 0 3px;
    }

    .bsia-contracts-toolbar > .bsia-new-btn {
        width: 100%;
        margin-left: 0;
    }

    .bsia-contract-pagination {
        align-items: stretch;
        flex-direction: column;
    }

    .bsia-contract-pagination > div {
        justify-content: space-between;
    }
}

@media (max-width: 430px) {
    .bsia-contract-pagination > div {
        display: grid;
        grid-template-columns: 1fr 1fr;
    }

    .bsia-contract-pagination > div > span {
        grid-column: 1 / -1;
        grid-row: 1;
        text-align: center;
    }
}

/* v1.0.10 · Detalle integral de cobros al inquilino */
.bsia-income-breakdown {
    border: 1px solid rgba(20, 69, 82, .16);
    border-radius: 18px;
    background: linear-gradient(180deg, #f7fafb 0%, #f1f6f7 100%);
    padding: 20px;
    box-shadow: 0 10px 28px rgba(28, 54, 63, .05);
}

.bsia-income-breakdown[hidden] {
    display: none !important;
}

.bsia-breakdown-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 16px;
}

.bsia-breakdown-heading small {
    display: block;
    color: #2d7586;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .13em;
    text-transform: uppercase;
    margin-bottom: 4px;
}

.bsia-breakdown-heading h4 {
    margin: 0;
    color: #193a45;
    font-size: 18px;
    line-height: 1.25;
}

.bsia-breakdown-heading p {
    max-width: 690px;
    margin: 6px 0 0;
    color: #667a82;
    font-size: 13px;
    line-height: 1.55;
}

.bsia-movement-items {
    display: grid;
    gap: 10px;
}

.bsia-movement-item {
    display: grid;
    grid-template-columns: minmax(165px, 1.1fr) minmax(160px, 1.2fr) minmax(155px, .9fr) minmax(145px, .8fr) 38px;
    align-items: end;
    gap: 10px;
    border: 1px solid rgba(25, 58, 69, .11);
    border-radius: 14px;
    background: rgba(255, 255, 255, .9);
    padding: 12px;
    transition: border-color .18s ease, box-shadow .18s ease, background .18s ease;
}

.bsia-movement-item:hover {
    border-color: rgba(25, 91, 108, .25);
    background: #fff;
    box-shadow: 0 7px 20px rgba(30, 67, 78, .06);
}

.bsia-movement-item label {
    min-width: 0;
    margin: 0;
}

.bsia-movement-item label > select,
.bsia-movement-item label > input {
    width: 100%;
}

.bsia-movement-item [data-movement-custom-label][hidden] {
    display: none !important;
}

.bsia-movement-item .bsia-icon-btn {
    width: 38px;
    height: 38px;
    align-self: end;
    margin-bottom: 0;
}

.bsia-breakdown-summary {
    display: grid;
    grid-template-columns: repeat(3, minmax(150px, 1fr));
    gap: 10px;
    margin-top: 16px;
}

.bsia-breakdown-summary > span {
    display: flex;
    flex-direction: column;
    gap: 5px;
    border: 1px solid rgba(25, 58, 69, .1);
    border-radius: 13px;
    background: #fff;
    padding: 12px 14px;
    color: #6a7c83;
    font-size: 12px;
}

.bsia-breakdown-summary strong {
    color: #193a45;
    font-size: 16px;
}

.bsia-breakdown-summary .total {
    border-color: rgba(25, 91, 108, .3);
    background: #e9f2f4;
}

.bsia-breakdown-summary .total strong {
    color: #124f5e;
    font-size: 19px;
}

@media (max-width: 1100px) {
    .bsia-movement-item {
        grid-template-columns: repeat(2, minmax(0, 1fr)) 38px;
    }

    .bsia-movement-item .bsia-icon-btn {
        grid-column: 3;
        grid-row: 1;
    }
}

@media (max-width: 700px) {
    .bsia-income-breakdown {
        padding: 15px;
        border-radius: 15px;
    }

    .bsia-breakdown-heading {
        display: grid;
    }

    .bsia-breakdown-heading .bsia-secondary-btn {
        width: 100%;
    }

    .bsia-movement-item {
        grid-template-columns: 1fr 38px;
        padding: 12px;
    }

    .bsia-movement-item label {
        grid-column: 1 / -1;
    }

    .bsia-movement-item .bsia-icon-btn {
        grid-column: 2;
        grid-row: 1;
        justify-self: end;
    }

    .bsia-breakdown-summary {
        grid-template-columns: 1fr;
    }
}

/* v1.0.14 · Alquiler automático e historial del contrato */
.bsia-rent-auto-info{display:flex;align-items:flex-start;gap:12px;margin:0 0 14px;padding:13px 15px;border:1px solid #c9dfda;border-radius:14px;background:#f2f8f6;color:#173d3c}
.bsia-rent-auto-info>.dashicons{width:24px;height:24px;font-size:24px;color:#31786f;flex:0 0 auto}
.bsia-rent-auto-info div{display:grid;gap:3px}
.bsia-rent-auto-info strong{font-size:14px}
.bsia-rent-auto-info small{color:#58706f;line-height:1.45}
.bsia-rent-auto-info em{display:block;margin-top:4px;color:#8a5b18;font-size:12px;font-style:normal;font-weight:650}
.bsia-rent-auto-info.is-warning{border-color:#ead3a8;background:#fff9ed;color:#624314}
.bsia-rent-auto-info.is-warning>.dashicons{color:#a36d18}
.bsia-movement-item.is-auto-rent{border-color:#b9d4ce;background:#f4faf8;box-shadow:inset 3px 0 0 #5f948b}
.bsia-movement-item.is-auto-rent label>small{display:block;margin-top:4px;color:#56716e;font-size:11px;font-weight:600}
.bsia-movement-item.is-auto-rent select:disabled,.bsia-movement-item.is-auto-rent input[readonly]{opacity:1;color:#163b3a;background:#eaf4f1;cursor:not-allowed}
.bsia-breakdown-summary{grid-template-columns:repeat(4,minmax(0,1fr))}

.bsia-contract-history{position:fixed;inset:0;z-index:1000010;display:none;align-items:center;justify-content:center;padding:26px}
.bsia-contract-history.open{display:flex}
.bsia-contract-history-backdrop{position:absolute;inset:0;background:rgba(13,31,36,.72);backdrop-filter:blur(6px)}
.bsia-contract-history-dialog{position:relative;z-index:1;width:min(1180px,100%);max-height:calc(100vh - 52px);display:flex;flex-direction:column;overflow:hidden;border:1px solid rgba(255,255,255,.42);border-radius:24px;background:#f6f8f7;box-shadow:0 28px 80px rgba(8,28,33,.34)}
.bsia-contract-history-header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:23px 27px;border-bottom:1px solid #dce5e2;background:#fff}
.bsia-contract-history-header small{display:block;margin-bottom:5px;color:#4f817b;font-size:10px;font-weight:800;letter-spacing:.13em;text-transform:uppercase}
.bsia-contract-history-header h2{margin:0;color:#17363c;font-size:24px}
.bsia-contract-history-header p{margin:7px 0 0;color:#6b7c7e}
.bsia-contract-history-close{width:42px;height:42px;border:1px solid #d9e3e1;border-radius:50%;background:#f7f9f8;color:#486064;font-size:27px;line-height:1;cursor:pointer}
.bsia-contract-history-body{overflow:auto;padding:24px 27px 30px}
.bsia-contract-history-footer{display:flex;justify-content:flex-end;padding:16px 27px;border-top:1px solid #dce5e2;background:#fff}
.bsia-history-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;margin-bottom:20px}
.bsia-history-summary article{padding:16px;border:1px solid #dce6e3;border-radius:16px;background:#fff;box-shadow:0 7px 18px rgba(20,54,59,.045)}
.bsia-history-summary span,.bsia-history-summary small{display:block;color:#718084;font-size:12px}
.bsia-history-summary strong{display:block;margin:7px 0 3px;color:#16383d;font-size:20px}
.bsia-history-section{margin-top:18px;padding:19px;border:1px solid #dce5e2;border-radius:18px;background:#fff}
.bsia-history-section-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:13px}
.bsia-history-section-head small{color:#56817b;font-size:10px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}
.bsia-history-section-head h3{margin:3px 0 0;color:#17383d;font-size:19px}
.bsia-history-section td small{display:block;margin-top:3px;color:#768588}
.bsia-history-empty{padding:26px;text-align:center;color:#758486}
body.bsia-contract-history-open{overflow:hidden}

@media(max-width:900px){
  .bsia-history-summary{grid-template-columns:1fr 1fr}
  .bsia-breakdown-summary{grid-template-columns:1fr 1fr}
}
@media(max-width:640px){
  .bsia-contract-history{padding:0}
  .bsia-contract-history-dialog{width:100%;height:100%;max-height:none;border-radius:0}
  .bsia-contract-history-header{padding:18px}
  .bsia-contract-history-header h2{font-size:20px}
  .bsia-contract-history-body{padding:16px}
  .bsia-contract-history-footer{padding:13px 16px}
  .bsia-history-summary{grid-template-columns:1fr}
  .bsia-breakdown-summary{grid-template-columns:1fr}
}
.bsia-rent-history-link{justify-self:start;margin-top:5px;padding:0;border:0;background:transparent;color:#2d6f69;font-size:12px;font-weight:800;text-decoration:underline;text-underline-offset:3px;cursor:pointer}

/* v1.0.16 · Liquidación automática al propietario */
.bsia-owner-payment-items {
    display: grid;
    gap: 9px;
    margin: 0 0 16px;
}
.bsia-owner-payment-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 13px 15px;
    border: 1px solid #d8e1e5;
    border-radius: 13px;
    background: #fff;
}
.bsia-owner-payment-item > div {
    display: grid;
    gap: 3px;
    min-width: 0;
}
.bsia-owner-payment-item small {
    color: #6b7c83;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .055em;
    text-transform: uppercase;
}
.bsia-owner-payment-item strong {
    color: #183a43;
    font-size: 13px;
    overflow-wrap: anywhere;
}
.bsia-owner-payment-item > span {
    flex: 0 0 auto;
    color: #173d3c;
    font-size: 14px;
    font-weight: 800;
    white-space: nowrap;
}
.bsia-owner-payment-item.is-discount {
    border-color: #ead8d1;
    background: #fffafa;
}
.bsia-owner-payment-item.is-discount > span {
    color: #8a4141;
}
.bsia-owner-payment-item.is-commission {
    border-color: #e8d3a8;
    background: #fff9ed;
    box-shadow: inset 3px 0 0 #b48236;
}
.bsia-owner-payment-item.is-commission strong,
.bsia-owner-payment-item.is-commission > span {
    color: #704a16;
}
@media (max-width: 620px) {
    .bsia-owner-payment-item {
        align-items: flex-start;
        flex-direction: column;
        gap: 7px;
    }
}

/* v1.0.18 · Eliminación visible de conceptos y pagos anticipados */
.bsia-root .bsia-movement-item .bsia-remove-movement-item,
.bsia-root .bsia-movement-item .bsia-remove-movement-item:focus,
.bsia-root .bsia-movement-item .bsia-remove-movement-item:active {
    position: static !important;
    inset: auto !important;
    display: grid;
    place-items: center;
    align-self: end;
    justify-self: end;
    width: 38px;
    height: 38px;
    margin: 0;
    padding: 0;
    border: 1px solid #e8c4bf !important;
    border-radius: 50%;
    background: #fff7f5 !important;
    color: #a34237 !important;
    box-shadow: none !important;
    font-size: 23px;
    font-weight: 500;
    line-height: 1;
    cursor: pointer;
}
.bsia-root .bsia-movement-item .bsia-remove-movement-item:hover {
    border-color: #d99f97 !important;
    background: #fce9e6 !important;
    color: #842f27 !important;
    transform: none;
}
.bsia-root .bsia-movement-item .bsia-remove-movement-item[hidden] {
    display: none !important;
}
.bsia-root .bsia-rent-auto-info.is-info {
    border-color: #bdd7df;
    background: #f2f8fa;
    color: #194a58;
}
.bsia-root .bsia-rent-auto-info .bsia-rent-notice {
    color: #356773;
    font-style: normal;
}
