/*
 * Shared Central, Vendor and Partner console layout contract.
 * Loaded after tenant/custom colors so structural rules remain stable while
 * theme and tenant branding can still select colors and assets.
 */
html,
body {
    width: 100%;
    max-width: 100%;
    min-width: 0;
}

.main-content {
    width: auto;
    max-width: 100%;
    min-width: 0;
}

.main-content,
.main-content *,
.lw-form-card-box,
.lw-form-card-box * {
    box-sizing: border-box;
}

.main-content .row,
.main-content [class*="col-"],
.main-content .card,
.main-content .card-body {
    min-width: 0;
}

.main-content > .container-fluid,
.main-content .header > .container-fluid {
    width: 100%;
    max-width: 100%;
    min-width: 0;
}

/* A Partner-owned background is resolved once from the scoped branding cache.
 * Without this class, the existing Vihar Chat pattern remains the fallback. */
body.lw-partner-custom-background {
    background-image: var(--partner-background-image) !important;
    background-position: center center !important;
    background-repeat: no-repeat !important;
    background-size: cover !important;
    background-attachment: fixed !important;
}

body.lw-partner-custom-background > .main-content,
body.lw-partner-custom-background.lw-partner-console,
body.lw-partner-custom-background.lw-partner-console > .main-content {
    background-color: transparent !important;
}

/* Partner cards remain native, opaque Vihar Chat surfaces over either the
 * shared pattern or an optional Partner background. */
.lw-partner-console .card,
.lw-partner-console .card-header,
.lw-partner-console .card-body,
.lw-partner-console .card-footer {
    background-clip: padding-box;
}

.lw-configuration-page .lw-scrollable-main-card,
.lw-vendor-settings-page .lw-scrollable-main-card {
    height: auto !important;
    min-height: 0 !important;
    overflow: visible !important;
}

.lw-configuration-page .lw-scrollable-main-card > .card-body,
.lw-vendor-settings-page .lw-scrollable-main-card > .card-body,
.lw-whatsapp-setup-page > [class*="col-"] {
    min-width: 0;
    width: 100%;
}

.lw-whatsapp-setup-page {
    width: 100%;
    max-width: 100%;
    min-width: 0;
}

.lw-whatsapp-setup-page .card,
.lw-whatsapp-setup-page fieldset,
.lw-whatsapp-setup-page .accordion {
    width: 100%;
    max-width: 100%;
}

.lw-whatsapp-setup-page fieldset {
    min-width: 0;
    margin: 0 0 1.25rem;
    padding: 1.25rem;
}

.lw-whatsapp-setup-page fieldset fieldset {
    padding: 1rem;
}

.lw-whatsapp-setup-page fieldset > legend {
    display: inline-block;
    float: none;
    width: auto;
    max-width: calc(100% - 1rem);
    margin: 0 0 .9rem;
    padding: .25rem .55rem;
    line-height: 1.35;
    white-space: normal;
    overflow-wrap: break-word;
}

.lw-whatsapp-setup-page dl,
.lw-whatsapp-setup-page dt,
.lw-whatsapp-setup-page dd,
.lw-whatsapp-setup-page .btn-group,
.lw-whatsapp-setup-page .dropdown-menu {
    min-width: 0;
    max-width: 100%;
}

.lw-whatsapp-setup-page .btn {
    max-width: 100%;
    white-space: normal;
    overflow-wrap: break-word;
}

.lw-whatsapp-setup-page .lw-whatsapp-setup-aside > fieldset,
.lw-whatsapp-setup-page .lw-whatsapp-setup-aside > template + fieldset {
    width: 100%;
}

.lw-whatsapp-setup-page .lw-whatsapp-operations .btn-group {
    display: inline-flex;
    flex-wrap: wrap;
    vertical-align: top;
}

.lw-whatsapp-setup-page .lw-whatsapp-health .float-right {
    float: none !important;
    display: inline-flex;
    margin: 0 0 .75rem;
}

.lw-vendor-dashboard-page,
.lw-whatsapp-setup-page,
.lw-whatsapp-setup-page .card-body,
.lw-whatsapp-setup-page fieldset,
.lw-whatsapp-setup-page form,
.lw-partner-console .card,
.lw-partner-console .card-body,
.lw-partner-console fieldset,
.lw-partner-console form {
    min-width: 0;
}

.lw-whatsapp-setup-page dd,
.lw-whatsapp-setup-page p,
.lw-whatsapp-setup-page pre,
.lw-partner-console td,
.lw-partner-console dd {
    overflow-wrap: anywhere;
    word-break: break-word;
}

.table-responsive {
    max-width: 100%;
    overflow-x: auto;
    overscroll-behavior-x: contain;
    -webkit-overflow-scrolling: touch;
}

/* Shared console control contract. Colors are supplied by custom-styles.css,
 * which maps directly to Central Console > Look and Feel. This block only
 * normalizes structure and contrast across core and optional addon views. */
body.lw-authenticated-page .form-control,
body.lw-authenticated-page .custom-select,
body.lw-authenticated-page .selectize-input,
body.lw-authenticated-page .input-group-alternative,
body.lw-authenticated-page .custom-file-label,
body.lw-authenticated-page .filepond--panel-root,
body.lw-authenticated-page textarea,
body.lw-authenticated-page input[type="date"],
body.lw-authenticated-page input[type="time"],
body.lw-authenticated-page input[type="search"] {
    max-width: 100%;
    border-color: var(--lw-ui-control-border, #8995a5) !important;
    background-color: var(--lw-ui-control-bg, #fff);
    color: var(--lw-ui-text, #32325d);
    box-shadow: none;
}

body.lw-authenticated-page .form-control:focus,
body.lw-authenticated-page .custom-select:focus,
body.lw-authenticated-page .selectize-input.focus,
body.lw-authenticated-page .custom-file-input:focus ~ .custom-file-label,
body.lw-authenticated-page textarea:focus,
body.lw-authenticated-page input[type="date"]:focus,
body.lw-authenticated-page input[type="time"]:focus,
body.lw-authenticated-page input[type="search"]:focus {
    border-color: var(--lw-checkbox-accent, #007bff) !important;
    box-shadow: 0 0 0 .2rem var(--lw-ui-control-focus, rgba(0, 123, 255, .2)) !important;
    outline: 0;
}

body.lw-authenticated-page .form-control:disabled,
body.lw-authenticated-page .form-control[readonly],
body.lw-authenticated-page .custom-select:disabled,
body.lw-authenticated-page .custom-file-input:disabled ~ .custom-file-label {
    cursor: not-allowed;
    opacity: .68;
}

body.lw-authenticated-page .selectize-dropdown,
body.lw-authenticated-page .dropdown-menu,
body.lw-authenticated-page .modal-content {
    border: 1px solid var(--lw-ui-control-border, #8995a5);
    background-color: var(--lw-ui-surface, #fff);
    color: var(--lw-ui-text, #32325d);
}

body.lw-authenticated-page .selectize-dropdown-content .option,
body.lw-authenticated-page select option {
    background-color: var(--lw-ui-surface, #fff);
    color: var(--lw-ui-text, #32325d);
}

body.lw-authenticated-page .card:not([class*="card-"]),
body.lw-authenticated-page fieldset:not(.filepond--file-wrapper),
body.lw-authenticated-page .table-responsive,
body.lw-authenticated-page .modal-content,
body.lw-authenticated-page .list-group-item {
    border-color: var(--lw-ui-card-border, #d5dae0) !important;
}

body.lw-authenticated-page .table th,
body.lw-authenticated-page .table td {
    border-color: var(--lw-ui-card-border, #d5dae0);
}

body.lw-authenticated-page .btn:not(.btn-link):not(.close) {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .35rem;
    min-height: 2.35rem;
    max-width: 100%;
    line-height: 1.2;
    white-space: normal;
}

body.lw-authenticated-page .btn-sm:not(.btn-link):not(.close),
body.lw-authenticated-page .btn-group-sm > .btn:not(.btn-link) {
    min-height: 1.95rem;
    padding-top: .35rem;
    padding-bottom: .35rem;
}

body.lw-authenticated-page .btn[class*="btn-outline-"] {
    border-width: 1px !important;
    border-style: solid !important;
    border-color: color-mix(in srgb, currentColor 78%, var(--lw-ui-text, #32325d)) !important;
    font-weight: 500;
    box-shadow: inset 0 0 0 1px color-mix(in srgb, currentColor 22%, transparent);
}

body.lw-authenticated-page .btn[class*="btn-outline-"]:focus,
body.lw-authenticated-page .btn[class*="btn-outline-"]:focus-visible {
    box-shadow: 0 0 0 .2rem var(--lw-ui-control-focus, rgba(0, 123, 255, .2));
}

body.lw-authenticated-page .btn:disabled,
body.lw-authenticated-page .btn.disabled {
    cursor: not-allowed;
    opacity: .62;
}

.lw-app-theme-dark .btn-outline-primary {
    color: color-mix(in srgb, var(--lw-checkbox-accent, #007bff) 68%, var(--lw-ui-text, #f3f6fa)) !important;
}

@media (prefers-color-scheme: dark) {
    .lw-app-theme-system_default .btn-outline-primary {
        color: color-mix(in srgb, var(--lw-checkbox-accent, #007bff) 68%, var(--lw-ui-text, #f3f6fa)) !important;
    }
}

body.lw-authenticated-page .badge {
    max-width: 100%;
    padding: .35em .6em;
    line-height: 1.15;
    white-space: normal;
    overflow-wrap: anywhere;
}

body.lw-authenticated-page .pagination {
    flex-wrap: wrap;
    gap: .2rem;
}

body.lw-authenticated-page .pagination .page-link {
    min-width: 2.25rem;
    min-height: 2.25rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--lw-ui-control-border, #8995a5) !important;
    background-color: var(--lw-ui-surface, #fff);
}

/* Final checkbox guard: framework and addon styles load in different orders.
 * The visual state is centralized here while inputs, names and values remain
 * untouched. */
body.lw-authenticated-page input[type="checkbox"]:not(.custom-control-input):not([role="switch"]):not(.form-switch .form-check-input) {
    border-color: var(--lw-checkbox-border, #7b8794) !important;
    background-color: var(--lw-checkbox-surface, #fff);
    background-position: center !important;
    background-repeat: no-repeat !important;
}

body.lw-authenticated-page input[type="checkbox"]:not(.custom-control-input):not([role="switch"]):not(.form-switch .form-check-input):checked {
    border-color: var(--lw-checkbox-accent, #007bff) !important;
    background-color: var(--lw-checkbox-accent, #007bff) !important;
    background-image: var(--lw-checkbox-check) !important;
    background-size: .7rem .7rem !important;
}

body.lw-authenticated-page .custom-checkbox .custom-control-label::before {
    border-color: var(--lw-checkbox-border, #7b8794) !important;
    background-color: var(--lw-checkbox-surface, #fff) !important;
}

body.lw-authenticated-page .custom-checkbox .custom-control-input:checked ~ .custom-control-label::before {
    border-color: var(--lw-checkbox-accent, #007bff) !important;
    background-color: var(--lw-checkbox-accent, #007bff) !important;
}

body.lw-authenticated-page .custom-checkbox .custom-control-input:checked ~ .custom-control-label::after {
    content: "" !important;
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    border: 0 !important;
    background: transparent var(--lw-checkbox-check) center / .7rem .7rem no-repeat !important;
    transform: none !important;
}

body.lw-authenticated-page .custom-switch .custom-control-label::before,
body.lw-authenticated-page .form-switch .form-check-input,
body.lw-authenticated-page input[type="checkbox"][role="switch"] {
    border-color: var(--lw-checkbox-border, #7b8794) !important;
}

body.lw-authenticated-page .custom-switch .custom-control-input:checked ~ .custom-control-label::before,
body.lw-authenticated-page .form-switch .form-check-input:checked,
body.lw-authenticated-page input[type="checkbox"][role="switch"]:checked {
    border-color: var(--lw-checkbox-accent, #007bff) !important;
    background-color: var(--lw-checkbox-accent, #007bff) !important;
}

#navbar-main {
    min-height: 72px;
}

/* Tenant colors are presentation data only. They may color the shared light
 * header without replacing the Vendor/Partner layout or its dark surface. */
.lw-app-theme-light.lw-partner-domain #navbar-main,
.lw-app-theme-light.lw-partner-console #navbar-main,
.lw-app-theme-system_default.lw-partner-domain #navbar-main,
.lw-app-theme-system_default.lw-partner-console #navbar-main {
    background: var(--partner-primary) !important;
    border-color: var(--partner-primary) !important;
}

.lw-app-theme-dark #navbar-main,
.lw-app-theme-dark .main-content .navbar-top,
.lw-app-theme-dark.lw-partner-console #navbar-main,
.lw-app-theme-dark.lw-partner-console .main-content .navbar-top {
    background: var(--lw-dark-surface-color, #171b22) !important;
    border-bottom: 1px solid var(--lw-dark-border-color, #2b3643) !important;
}

.lw-app-theme-dark.lw-theme-pattern-enabled #navbar-main,
.lw-app-theme-dark.lw-theme-pattern-enabled .main-content .navbar-top,
.lw-app-theme-dark.lw-theme-pattern-enabled.lw-partner-console #navbar-main {
    background-color: rgba(16, 19, 24, .90) !important;
    background-color: color-mix(in srgb, var(--lw-dark-page-color, #101318) 90%, transparent) !important;
}

.lw-app-theme-dark .main-content,
.lw-app-theme-dark.lw-partner-console {
    background-color: var(--lw-dark-page-color, #101318);
}

.lw-app-theme-dark.lw-theme-pattern-enabled .main-content,
.lw-app-theme-dark.lw-partner-console.lw-theme-pattern-enabled {
    background-color: transparent;
}

.lw-app-theme-dark.lw-partner-console .bg-light {
    background-color: var(--lw-dark-elevated-color, #1d2530) !important;
}

/* Partner pages share the native console surfaces. Keep cards opaque so the
 * optional WhatsApp pattern cannot bleed through card content. */
.lw-app-theme-dark.lw-partner-console .card,
.lw-app-theme-dark.lw-partner-console .card-header,
.lw-app-theme-dark.lw-partner-console .card-body,
.lw-app-theme-dark.lw-partner-console .card-footer,
.lw-app-theme-dark.lw-partner-console .table {
    background-color: var(--lw-dark-elevated-color, #1d2530) !important;
    border-color: var(--lw-dark-border-color, #2b3643) !important;
}

.lw-app-theme-dark.lw-partner-console .card {
    box-shadow: 0 0.5rem 1.25rem rgba(0, 0, 0, .18);
}

.lw-app-theme-dark.lw-partner-domain .lw-partner-auth-name {
    color: #fff;
}

.lw-app-theme-dark.lw-partner-domain .lw-partner-auth-tagline {
    color: #c3c3c3;
}

.lw-app-theme-dark .table-responsive,
.lw-app-theme-dark .modal-content,
.lw-app-theme-dark .dropdown-menu,
.lw-app-theme-dark .pagination .page-link {
    border-color: var(--lw-dark-border-color, #2b3643);
}

.lw-app-theme-dark .table,
.lw-app-theme-dark .table td,
.lw-app-theme-dark .table th {
    color: #d1d1d1;
}

.lw-app-theme-dark .lw-addon-card,
.lw-app-theme-dark .lw-configuration-page .lw-scrollable-main-card,
.lw-app-theme-dark .lw-vendor-settings-page .lw-scrollable-main-card {
    border-color: var(--lw-dark-border-color, #2b3643) !important;
}

@media (prefers-color-scheme: dark) {
    .lw-app-theme-system_default #navbar-main,
    .lw-app-theme-system_default .main-content .navbar-top,
    .lw-app-theme-system_default.lw-partner-domain #navbar-main,
    .lw-app-theme-system_default.lw-partner-domain .main-content .navbar-top,
    .lw-app-theme-system_default.lw-partner-console #navbar-main,
    .lw-app-theme-system_default.lw-partner-console .main-content .navbar-top {
        background: var(--lw-dark-surface-color, #171b22) !important;
        border-bottom: 1px solid var(--lw-dark-border-color, #2b3643) !important;
    }

    .lw-app-theme-system_default .main-content,
    .lw-app-theme-system_default.lw-partner-console {
        background-color: var(--lw-dark-page-color, #101318);
    }

    .lw-app-theme-system_default.lw-theme-pattern-enabled .main-content,
    .lw-app-theme-system_default.lw-partner-console.lw-theme-pattern-enabled {
        background-color: transparent;
    }

    .lw-app-theme-system_default.lw-theme-pattern-enabled #navbar-main,
    .lw-app-theme-system_default.lw-theme-pattern-enabled .main-content .navbar-top,
    .lw-app-theme-system_default.lw-theme-pattern-enabled.lw-partner-console #navbar-main {
        background-color: rgba(16, 19, 24, .90) !important;
        background-color: color-mix(in srgb, var(--lw-dark-page-color, #101318) 90%, transparent) !important;
    }

    .lw-app-theme-system_default.lw-partner-console .bg-light {
        background-color: var(--lw-dark-elevated-color, #1d2530) !important;
    }

    .lw-app-theme-system_default.lw-partner-console .card,
    .lw-app-theme-system_default.lw-partner-console .card-header,
    .lw-app-theme-system_default.lw-partner-console .card-body,
    .lw-app-theme-system_default.lw-partner-console .card-footer,
    .lw-app-theme-system_default.lw-partner-console .table {
        background-color: var(--lw-dark-elevated-color, #1d2530) !important;
        border-color: var(--lw-dark-border-color, #2b3643) !important;
    }

    .lw-app-theme-system_default.lw-partner-domain .lw-partner-auth-name {
        color: #fff;
    }

    .lw-app-theme-system_default.lw-partner-domain .lw-partner-auth-tagline {
        color: #c3c3c3;
    }
}

@media (max-width: 767.98px) {
    .main-content {
        margin-left: 0 !important;
        margin-right: 0 !important;
        width: 100% !important;
    }

    .main-content > .container-fluid,
    .main-content .header > .container-fluid {
        padding-left: 1rem !important;
        padding-right: 1rem !important;
    }

    .lw-whatsapp-setup-page .card-body,
    .lw-whatsapp-setup-page fieldset {
        padding-left: 1rem;
        padding-right: 1rem;
    }

    .lw-whatsapp-setup-page .lw-whatsapp-setup-aside {
        margin-top: 1rem;
    }

    .lw-whatsapp-setup-summary .card-body {
        align-items: flex-start !important;
    }

    .lw-alert-dismissible-container {
        left: 1rem;
        right: 1rem;
        width: auto;
    }

    .lw-vendor-dashboard-page > .container-fluid {
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    .lw-vendor-dashboard-page .header-body > .row > [class*="col-"],
    .lw-vendor-dashboard-page .header-body > .row > .col-12 > .row > [class*="col-"] {
        flex: 0 0 100%;
        max-width: 100%;
    }

    .lw-vendor-dashboard-page .card.card-stats {
        height: auto;
        min-height: 0;
    }

    .lw-vendor-dashboard-page .card.card-stats .card-body {
        padding: 1rem;
    }

    .lw-vendor-dashboard-page .alert {
        max-width: 100%;
        overflow-wrap: anywhere;
    }

    .lw-partner-console .form-row > [class*="col-"],
    .lw-partner-console .row > [class*="col-"] {
        min-width: 0;
    }

    .lw-partner-console .card-header.d-flex,
    .lw-partner-console .modal-footer {
        align-items: flex-start !important;
        flex-wrap: wrap;
        gap: 0.5rem;
    }

    .lw-partner-console .btn {
        max-width: 100%;
        white-space: normal;
    }

    .lw-partner-console .table-responsive > .table {
        min-width: 44rem;
    }
}

@media (max-width: 575.98px) {
    .main-content > .container-fluid,
    .main-content .header > .container-fluid,
    .lw-partner-console .main-content > .container-fluid {
        padding-left: 0.75rem !important;
        padding-right: 0.75rem !important;
    }

    .lw-vendor-dashboard-page .alert .btn {
        display: block;
        width: 100%;
        max-width: 100%;
        white-space: normal;
    }

    .lw-whatsapp-setup-page [class*="col-"],
    .lw-whatsapp-setup-page .d-flex,
    .lw-whatsapp-setup-page .input-group,
    .lw-whatsapp-setup-page .selectize-control,
    .lw-whatsapp-setup-page .selectize-input {
        min-width: 0;
        max-width: 100%;
    }

    .lw-whatsapp-setup-page .d-flex {
        flex-wrap: wrap;
    }

    .lw-whatsapp-setup-page .card-body,
    .lw-whatsapp-setup-page fieldset,
    .lw-whatsapp-setup-page fieldset fieldset {
        width: 100%;
        padding-left: 0.75rem;
        padding-right: 0.75rem;
    }

    .lw-whatsapp-setup-page fieldset > legend {
        max-width: calc(100% - .5rem);
        margin-bottom: .75rem;
        padding-left: .4rem;
        padding-right: .4rem;
    }

    .lw-whatsapp-setup-page legend,
    .lw-whatsapp-setup-page .badge {
        max-width: 100%;
        white-space: normal;
        overflow-wrap: anywhere;
    }

    .lw-whatsapp-setup-page .float-right {
        float: none !important;
        display: block;
        width: 100%;
        margin: 0.5rem 0;
    }

    .lw-whatsapp-setup-page .btn:not(.dropdown-toggle):not(.btn-link),
    .lw-calling-eligibility-card form,
    .lw-calling-eligibility-card form .btn {
        width: 100%;
        max-width: 100%;
        white-space: normal;
        overflow-wrap: anywhere;
    }

    .lw-whatsapp-setup-page .btn .h2 {
        font-size: 1rem;
        line-height: 1.35;
        white-space: normal;
    }

    .lw-whatsapp-setup-page .input-group {
        flex-wrap: wrap;
        width: 100%;
        padding: 0 0 0.75rem;
    }

    .lw-whatsapp-setup-page .input-group-append {
        width: 100%;
        margin-left: 0;
    }

    .lw-whatsapp-setup-page .input-group-append .btn {
        width: 100%;
        border-radius: 0 0 0.375rem 0.375rem;
    }

    .lw-whatsapp-setup-page pre {
        max-width: 100%;
        white-space: pre-wrap;
    }

    .lw-partner-console .form-row > [class*="col-"] {
        flex: 0 0 100%;
        max-width: 100%;
        margin-bottom: 0.75rem;
    }

    .lw-partner-console .input-group {
        flex-wrap: wrap;
        width: 100%;
        padding: 0;
    }

    body.lw-partner-custom-background {
        background-attachment: scroll !important;
    }
}

@media (min-width: 768px) {
    body.lw-minimized-menu .main-content,
    body.lw-partner-console .main-content {
        min-height: 100vh;
    }
}
