/* Apply the theme background & deep black high-contrast font to the entire page */
body {
    background-color: var(--erp-canvas, #edf2f8);
    font-family: system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    color: var(--erp-text, #000000);
}

/* Ensure inputs, labels, tables, cards, buttons and form controls inherit deep black font (normal weight) */
input, select, textarea, button, label, table, td, th, .form-label, .form-control, .form-select {
    color: var(--erp-text, #000000);
}

html,
body {
    overflow-x: hidden;
    overscroll-behavior-x: none;
    touch-action: pan-y;
}

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

/* Ensure the main layout container doesn't block the background */
.page, .main, .content {
    background-color: transparent !important;
}

.page,
.main,
.content,
main {
    min-width: 0;
    max-width: 100%;
    overflow-x: hidden;
    overscroll-behavior-x: none;
}

.content,
.card,
.card-body,
.row,
.row > *,
.ali-grid-container,
.table-responsive {
    min-width: 0;
    max-width: 100%;
}

.content,
.card,
.ali-grid-container,
.table-responsive {
    width: 100%;
}

.table-responsive,
.ali-grid-container,
.ali-grid-header-wrap,
.ali-grid-body-wrap {
    min-width: 0;
    max-width: 100%;
    overscroll-behavior-x: contain;
}

.table-responsive,
.ali-grid-body-wrap {
    touch-action: pan-x pan-y;
}

/* Optional: Make cards stand out with SAP Fiori object page styling */
.card {
    background-color: #ffffff;
    border: 1px solid #d9d9d9; /* Standard SAP border color */
    border-radius: 0.25rem;
    box-shadow: 0 1px 2px rgba(0,0,0,0.05); /* Very subtle shadow */
}


.card-header {
    padding: 0.45rem 0.7rem;
}

.card-body {
    padding: 0.55rem 0.7rem;
}

/* Global compact control height */
.form-control:not(textarea),
.form-select,
.form-control-sm:not(textarea),
.form-select-sm,
.input-group-sm > .form-control:not(textarea),
.input-group-sm > .form-select,
.input-group-sm > .btn,
.input-group > .btn,
.btn-sm,
.erp-mc-input,
.erp-mc-btn,
.al-input,
.sap-input {
    min-height: 32px !important;
    height: 32px !important;
    line-height: 1.3 !important;
}

textarea.form-control,
textarea.form-control-sm {
    min-height: 32px !important;
}

.btn-sm,
.input-group-sm > .btn,
.input-group > .btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.erp-mc {
    --erp-mc-h: 32px !important;
}

/* --- AliGrid SAP Fiori Theme Overrides --- */
/* These rules ensure the Custom Grid matches the Global SAP Theme */

.ali-grid-container {
    background-color: #ffffff;
    border-color: #d9d9d9 !important; /* Sync border with SAP cards */
}

/* Toolbar Styling */
.ali-grid-toolbar {
    background-color: #ffffff !important; /* Match container background */
    border-bottom-color: #d9d9d9 !important;
}

/* Header Styling */
.ali-grid-head th {
    background-color: #f5f7fa !important; /* SAP List Header Background */
    border-color: #d9d9d9 !important;
    color: #48535d !important; /* SAP Label Text Color */
    font-weight: 700;
}

/* Ensure Frozen Headers match the main header */
thead .ali-freeze-left,
thead .ali-freeze-right {
    background-color: #f5f7fa !important;
}

/* Read-only cells blending */
.ali-cell.ali-readonly {
    background-color: #fcfcfc !important; /* Very subtle contrast for read-only */
}


/* =========================
   POPUP (CLEAN - SINGLE BLOCK)
   ========================= */

@keyframes popupIn {
    from {
        transform: translate3d(0, 10px, 0);
        opacity: 0;
    }
    to {
        transform: translate3d(0, 0, 0);
        opacity: 1;
    }
}

.popup-overlay {
    position: fixed;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(17, 24, 39, 0.45);
    /*backdrop-filter: blur(2px);*/
    /* Must outrank every page-specific modal (e.g. ErpNavigationTree's add/edit
       modal at z-index 10600) since this shared popup — used for search-help
       dialogs, alerts, confirms — is frequently opened from inside those modals
       and has to render on top of them, not behind. */
    z-index: 20000;
}

.popup-container {
    position: relative;
    z-index: 20001;
    background: #fff;
    border-radius: 14px;
    border: 1px solid rgba(0,0,0,.08);
    box-shadow: 0 24px 60px rgba(0,0,0,.35);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    min-width: 420px;
    animation: popupIn .18s ease-out;
    /* keep text crisp */
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility;
}

    /* Kill any CSS-generated "X" inside popup */
    .popup-container::before,
    .popup-container::after,
    .popup-header::before,
    .popup-header::after,
    .popup-body::before,
    .popup-body::after {
        content: none !important;
    }

    /* Hide close icons injected by libraries INSIDE popup */
    .popup-container .btn-close,
    .popup-container .e-dlg-closeicon-btn,
    .popup-container .e-dlg-closeicon,
    .popup-container [class*="close"] {
        display: none !important;
        background-image: none !important;
    }

/* Header */
.popup-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 9px 12px;
    border-bottom: 1px solid rgba(0,0,0,.08);
    background: linear-gradient(90deg, rgba(37,99,235,.12), rgba(16,185,129,.12));
}

    .popup-header h4,
    .popup-title {
        margin: 0;
        font-size: 16px;
        font-weight: 700;
        letter-spacing: .2px;
    }

/* Close button */
.popup-close {
    background: transparent;
    border: 0;
    cursor: pointer;
    width: 28px;
    height: 28px;
    border-radius: 10px;
    display: grid;
    place-items: center;
    font-size: 20px;
    line-height: 1;
    color: rgba(17,24,39,.65);
    transition: background .15s ease, transform .08s ease, color .15s ease;
    position: relative;
    z-index: 20002;
    pointer-events: auto;
}

    .popup-close:hover {
        background: rgba(0,0,0,.06);
        color: rgba(17,24,39,.95);
    }

    .popup-close:active {
        transform: scale(.96);
    }

/* Body */
.popup-body {
    padding: 22px 24px 18px 24px;
    flex-grow: 1;
    overflow: auto;
}

/* Message box */
.popup-message {
    padding: 14px 14px;
    border-radius: 12px;
    background: rgba(37,99,235,.08);
    border: 1px solid rgba(37,99,235,.18);
    color: #0f172a;
    font-size: 16px;
    margin-bottom: 18px;
}

    .popup-message.text-danger {
        background: rgba(239,68,68,.10);
        border-color: rgba(239,68,68,.25);
    }

    .popup-message.text-warning {
        background: rgba(245,158,11,.12);
        border-color: rgba(245,158,11,.28);
    }

    .popup-message.text-info {
        background: rgba(59,130,246,.10);
        border-color: rgba(59,130,246,.25);
    }

    .popup-message.text-success {
        background: rgba(16,185,129,.12);
        border-color: rgba(16,185,129,.25);
    }

/* Buttons / actions */
.popup-actions {
    display: flex;
    gap: 10px;
    justify-content: flex-end;
    align-items: center;
}

    .popup-actions .btn {
        padding: 6px 14px;
        font-size: 14px;
        border-radius: 8px;
        min-width: 70px;
    }

        .popup-actions .btn:active {
            transform: translateY(1px);
        }

    .popup-actions .btn-primary {
        box-shadow: none;
    }

/* Freezing Selector column on horizontal scroll (Generic Level) */
.fixed-col {
    position: sticky !important;
    left: 0;
    z-index: 10;
}

.grid-header .fixed-col {
    z-index: 30; /* higher than header z-index 20 */
}

.group-header-row .fixed-col,
.group-footer-row .fixed-col,
.sub-total-row .fixed-col,
.grand-total-row .fixed-col {
    z-index: 12;
}

/* ============================================================================
   SAP BTP RISE & SAP Fiori Horizon UI Theme Extensions
   ========================================================================== */

/* 1. SAP Shell Topbar (Navy shell header bar styling) */
[data-theme="sap-btp"] .topbar,
[data-theme="sap-rise"] .topbar,
[data-theme="sap-horizon"] .topbar {
    background: #1d2d3e !important;
    border-bottom: 1px solid #101a24 !important;
    color: #ffffff !important;
}

[data-theme="sap-btp"] .topbar .topbar-title,
[data-theme="sap-rise"] .topbar .topbar-title,
[data-theme="sap-horizon"] .topbar .topbar-title,
[data-theme="sap-btp"] .topbar .topbar-date,
[data-theme="sap-rise"] .topbar .topbar-date,
[data-theme="sap-horizon"] .topbar .topbar-date {
    color: #ffffff !important;
    font-weight: 600;
}

[data-theme="sap-btp"] .topbar-icon-button,
[data-theme="sap-rise"] .topbar-icon-button,
[data-theme="sap-horizon"] .topbar-icon-button {
    color: #e2e8f0 !important;
    border-radius: 6px;
    transition: background 0.15s ease, color 0.15s ease;
}

[data-theme="sap-btp"] .topbar-icon-button:hover,
[data-theme="sap-rise"] .topbar-icon-button:hover,
[data-theme="sap-horizon"] .topbar-icon-button:hover {
    background: rgba(255, 255, 255, 0.12) !important;
    color: #ffffff !important;
}

[data-theme="sap-btp"] .brand-logo-wrap,
[data-theme="sap-rise"] .brand-logo-wrap,
[data-theme="sap-horizon"] .brand-logo-wrap {
    background: linear-gradient(135deg, #0a6ed1, #0854a0) !important;
    box-shadow: 0 2px 8px rgba(10, 110, 209, 0.4) !important;
}

/* 2. SAP Horizon Cards & Containers */
.card,
.rfq-compact-card,
.rfq-section-card {
    border-radius: 6px !important;
    border: 1px solid var(--erp-border, #d9e1e8) !important;
    box-shadow: 0 1px 3px rgba(10, 30, 65, 0.05), 0 2px 8px rgba(10, 30, 65, 0.03) !important;
    background-color: var(--erp-surface, #ffffff) !important;
}

.card-header,
.rfq-compact-header,
.rfq-section-header {
    background-color: #ffffff !important;
    border-bottom: 1px solid var(--erp-border, #d9e1e8) !important;
    padding: 0.55rem 0.9rem !important;
}

/* 3. SAP Horizon Inputs & Selects */
.form-control,
.form-select,
.form-control-sm,
.form-select-sm,
.erp-mc-input {
    border-radius: 5px !important;
    border: 1px solid #a0aab8 !important;
    background-color: #ffffff !important;
    color: #1d2d3e !important;
    font-size: 0.88rem !important;
    transition: border-color 0.15s ease, box-shadow 0.15s ease !important;
}

.form-control:focus,
.form-select:focus,
.form-control-sm:focus,
.form-select-sm:focus,
.erp-mc-input:focus {
    border-color: #0a6ed1 !important;
    box-shadow: 0 0 0 3px rgba(10, 110, 209, 0.2) !important;
    outline: none !important;
}

.form-control:disabled,
.form-select:disabled,
.form-control-sm:disabled,
.form-select-sm:disabled {
    background-color: #f0f3f6 !important;
    color: #475e75 !important;
    border-color: #d0d7de !important;
}

.form-label,
.form-label.small {
    color: #556b82 !important;
    font-size: 0.78rem !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.4px !important;
    margin-bottom: 0.25rem !important;
}

/* 4. SAP Horizon Button Styling */
.btn-sm,
.btn {
    border-radius: 6px !important;
    font-weight: 600 !important;
    font-size: 0.85rem !important;
    transition: all 0.15s ease-in-out !important;
}

.btn-primary,
.btn-success {
    background-color: #0a6ed1 !important;
    border-color: #0a6ed1 !important;
    color: #ffffff !important;
    box-shadow: 0 2px 4px rgba(10, 110, 209, 0.2) !important;
}

.btn-primary:hover,
.btn-success:hover {
    background-color: #0854a0 !important;
    border-color: #0854a0 !important;
    color: #ffffff !important;
}

.btn-outline-primary,
.btn-outline-secondary,
.btn-outline-info,
.btn-outline-success {
    background-color: #ffffff !important;
    border: 1px solid #0a6ed1 !important;
    color: #0a6ed1 !important;
}

.btn-outline-primary:hover,
.btn-outline-secondary:hover,
.btn-outline-info:hover,
.btn-outline-success:hover {
    background-color: #eef6fc !important;
    color: #0854a0 !important;
    border-color: #0854a0 !important;
}

.btn-danger,
.btn-outline-danger {
    border-color: #bb0000 !important;
    color: #bb0000 !important;
}

.btn-danger:hover,
.btn-outline-danger:hover {
    background-color: #fdebeb !important;
    color: #8b0000 !important;
}

/* 5. SAP Horizon Pill Badges */
.badge {
    border-radius: 12px !important;
    padding: 4px 10px !important;
    font-size: 0.76rem !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
    display: inline-flex !important;
    align-items: center !important;
}

.badge.bg-secondary,
.badge[data-status="SENT"] {
    background-color: #e8f3fc !important;
    color: #0a6ed1 !important;
    border: 1px solid #bfe0fa !important;
}

.badge.bg-success,
.badge[data-status="NEW"],
.badge[data-status="APPROVED"] {
    background-color: #e5f6ed !important;
    color: #107e3e !important;
    border: 1px solid #b7e7cc !important;
}

.badge[data-status="DRAFT"] {
    background-color: #f3f4f6 !important;
    color: #556b82 !important;
    border: 1px solid #d1d5db !important;
}

.badge.bg-warning,
.badge[data-status="PENDING"] {
    background-color: #fff8e6 !important;
    color: #b25900 !important;
    border: 1px solid #ffe5b3 !important;
}

.badge.bg-danger,
.badge[data-status="DELETED"] {
    background-color: #fdebeb !important;
    color: #bb0000 !important;
    border: 1px solid #f8c2c2 !important;
}

/* 6. SAP Horizon Data Grid & Table Styling */
.ali-grid-container {
    border-radius: 6px !important;
    border-color: #d9e1e8 !important;
}

.ali-grid-head th,
.table.table-sm thead th {
    background-color: #edf2f7 !important;
    border-bottom: 2px solid #0a6ed1 !important;
    color: #1d2d3e !important;
    font-weight: 700 !important;
    font-size: 0.84rem !important;
    text-transform: capitalize;
}

.ali-grid-row:hover,
.table.table-sm tbody tr:hover {
    background-color: #edf4fb !important;
}
