/* SAP Fiori Horizon Style for TokoAragPC */

:root {
    --sap-background: #f2f2f2;
    --sap-page-background: #ffffff;
    --sap-blue: #0070f2;
    --sap-blue-hover: #005bb7;
    --sap-text: #32363a;
    --sap-label: #6a6d70;
    --sap-border: #d9d9d9;
    --sap-field-background: #ffffff;
    --sap-shadow: 0 0.125rem 0.5rem 0 rgba(0, 0, 0, 0.1);
    --sap-header-background: #ffffff;
    --sap-font: "72", "72full", Arial, Helvetica, sans-serif;
    --sap-font-size: 1.125rem;
    /* 18px baseline */
    --sap-font-size-sm: 1rem;
    --sap-font-size-lg: 1.25rem;
    --sap-font-size-xl: 1.75rem;
    --sap-font-size-title: 2rem;

    /* Semantic Colors */
    --blue-50: #eff6ff;
    --blue-500: #3b82f6;
    --blue-600: #2563eb;
    --blue-700: #1d4ed8;
    --green-50: #ecfdf5;
    --green-500: #10b981;
    --green-600: #059669;
    --yellow-50: #fffbeb;
    --yellow-500: #f59e0b;
    --yellow-600: #d97706;
    --red-50: #fef2f2;
    --red-100: #fee2e2;
    --red-600: #dc2626;
    --red-700: #b91c1c;
    --orange-50: #fff7ed;
    --orange-500: #f97316;
    --gray-50: #f9fafb;
    --gray-100: #f3f4f6;
    --gray-200: #e5e7eb;
    --gray-400: #9ca3af;
    --gray-800: #1f2937;
    --indigo-100: #e0e7ff;
    --indigo-600: #4f46e5;
}

/* Base Semantic Utilities */
.sap-bg-blue-50 { background-color: var(--blue-50) !important; }
.sap-bg-green-50 { background-color: var(--green-50) !important; }
.sap-bg-yellow-50 { background-color: var(--yellow-50) !important; }
.sap-bg-red-50 { background-color: var(--red-50) !important; }
.sap-bg-orange-50 { background-color: var(--orange-50) !important; }
.sap-bg-gray-50 { background-color: var(--gray-50) !important; }
.sap-bg-gray-100 { background-color: var(--gray-100) !important; }

.sap-text-red-700 { color: var(--red-700) !important; }
.sap-text-gray-400 { color: var(--gray-400) !important; }
.sap-text-gray-800 { color: var(--gray-800) !important; }

.sap-accent-blue { border-left: 4px solid var(--blue-500) !important; }
.sap-accent-green { border-left: 4px solid var(--green-500) !important; }
.sap-accent-yellow { border-left: 4px solid var(--yellow-500) !important; }
.sap-accent-red { border-left: 4px solid var(--red-600) !important; }
.sap-accent-orange { border-left: 4px solid var(--orange-500) !important; }
.sap-accent-gray { border-left: 4px solid var(--gray-400) !important; }

.sap-border-bottom-light { border-bottom: 1px solid var(--gray-200) !important; }
.sap-border-dashed-light { border-top: 1px dashed var(--gray-200) !important; }

.sap-opacity-0-2 { opacity: 0.2 !important; }

/* Fixed Asset Specific Layouts */
.sap-stat-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, min-min-max(240px, 1fr));
    gap: 1.5rem;
    margin-bottom: 1.5rem;
}

.sap-stat-card {
    background: var(--sap-page-background);
    border-radius: 12px;
    padding: 1.25rem;
    box-shadow: var(--sap-shadow);
    display: flex;
    align-items: center;
    gap: 1rem;
    border: 1px solid var(--sap-border);
}

.sap-stat-icon {
    width: 3.5rem;
    height: 3.5rem;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.5rem;
    color: white;
}

.sap-stat-content {
    display: flex;
    flex-direction: column;
}

.sap-stat-label {
    font-size: 0.85rem;
    color: var(--sap-label);
    font-weight: 600;
    text-transform: uppercase;
}

.sap-stat-value {
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--sap-text);
}

/* History Timeline Fiori Style */
.sap-timeline-container {
    position: relative;
    padding-left: 2rem;
}

.sap-timeline-container::before {
    content: '';
    position: absolute;
    left: 0.625rem;
    top: 0.35rem;
    bottom: 0.35rem;
    width: 2px;
    background: var(--sap-border);
}

.sap-timeline-item {
    position: relative;
    padding-bottom: 1.25rem;
}

.sap-timeline-dot {
    position: absolute;
    left: -1.75rem;
    top: 0.25rem;
    width: 0.75rem;
    height: 0.75rem;
    border-radius: 50%;
    background: var(--gray-400);
    border: 2px solid white;
    box-shadow: 0 0 0 2px var(--sap-border);
}

.sap-timeline-content {
    background: var(--sap-background);
    border-radius: 4px;
    padding: 0.5rem 1rem;
    font-size: 0.9rem;
}

.sap-min-h-100 { min-height: 100px !important; }
.sap-min-h-150 { min-height: 150px !important; }
.sap-min-h-200 { min-height: 200px !important; }

.sap-h-2-5rem { height: 2.5rem !important; }
.sap-h-3-5rem { height: 3.5rem !important; }
.sap-w-200px { width: 200px !important; }
.sap-max-w-300 { max-width: 300px !important; }
.sap-max-w-800 { max-width: 800px !important; }

.sap-w-70 { width: 70px !important; }
.sap-w-140 { width: 140px !important; }
.sap-w-120 { width: 120px !important; }

.sap-square-48 { width: 48px !important; height: 48px !important; min-width: 48px !important; }
.sap-square-50 { width: 50px !important; height: 50px !important; min-width: 50px !important; }

.sap-pre-wrap { white-space: pre-wrap !important; }

.sap-font-0-75rem { font-size: 0.75rem !important; }
.sap-font-2-25rem { font-size: 2.25rem !important; }

/* Inventory & Asset Accents */
.sap-accent-red { border-left: 4px solid #dc2626 !important; }
.sap-accent-blue { border-left: 4px solid var(--sap-accent) !important; }
.sap-accent-green { border-left: 4px solid #10b981 !important; }
.sap-inventory-accent { border-top: 2px solid var(--sap-accent) !important; }

/* Input Group Helpers */
.sap-input-group {
    display: flex !important;
    align-items: stretch !important;
    border: 1px solid var(--sap-border);
    border-radius: 4px;
    background: #fff;
    overflow: hidden;
    height: 3.25rem;
}

.sap-input-group .sap-input {
    border: none !important;
    flex: 1;
}

.sap-input-group-append {
    background: #f8fafc;
    padding: 0 12px;
    display: flex;
    align-items: center;
    color: #64748b;
    font-weight: 600;
    font-size: 0.85rem;
    border-left: 1px solid #e2e8f0;
}

.sap-input-group.bg-light {
    background: #f8f9fa !important;
}

.sap-input-group.bg-light .sap-input {
    background: transparent !important;
}

/* Red KPIs for Shrinkage/Damage */
.sap-kpi-loss .sap-kpi-icon { color: #dc2626 !important; }
.sap-kpi-loss .sap-kpi-value { color: #b91c1c !important; }

/* Semantic Translucency Badges */
.sap-badge-success-glow {
    background: rgba(16, 185, 129, 0.1) !important;
    color: #059669 !important;
    border: 1px solid rgba(16, 185, 129, 0.2) !important;
    padding: 5px 12px !important;
}

.sap-badge-danger-glow {
    background: rgba(239, 68, 68, 0.1) !important;
    color: #dc2626 !important;
    border: 1px solid rgba(239, 68, 68, 0.2) !important;
    padding: 5px 12px !important;
}

/* Flexbox & Layout Utilities (for Bootstrap 3 compatibility) */
.d-flex {
    display: flex !important;
}

.flex-column {
    flex-direction: column !important;
}

.justify-content-between {
    justify-content: space-between !important;
}

.justify-content-center {
    justify-content: center !important;
}

.align-items-center {
    align-items: center !important;
}

.align-items-start {
    align-items: flex-start !important;
}

.align-items-baseline {
    align-items: baseline !important;
}

.align-items-end {
    align-items: flex-end !important;
}

.flex-grow-1 {
    flex-grow: 1 !important;
}

.gap-2 {
    gap: 0.5rem !important;
}

.gap-3 {
    gap: 1rem !important;
}

.sap-gap-8 {
    gap: 0.5rem !important;
}

/* Responsive Utilities (Mobile First) */
@media (max-width: 767px) {
    .flex-column-mobile {
        flex-direction: column !important;
    }
    .align-items-stretch-mobile {
        align-items: stretch !important;
    }
    .w-100-mobile {
        width: 100% !important;
    }
    .mb-3-mobile {
        margin-bottom: 1rem !important;
    }
    .mr-0-mobile {
        margin-right: 0 !important;
    }
}

@media (min-width: 768px) {
    .flex-md-row {
        flex-direction: row !important;
    }
    .w-md-auto {
        width: auto !important;
    }
    .mr-md-3 {
        margin-right: 1rem !important;
    }
    .mb-md-0 {
        margin-bottom: 0 !important;
    }
}

/* Spacing Utilities */
.mb-0 {
    margin-bottom: 0 !important;
}

.mb-1 {
    margin-bottom: 0.25rem !important;
}

.mb-2 {
    margin-bottom: 0.5rem !important;
}

.mb-4 {
    margin-bottom: 1.5rem !important;
}

.mt-1 {
    margin-top: 0.25rem !important;
}

.mt-2 {
    margin-top: 0.5rem !important;
}

.mt-3 {
    margin-top: 1rem !important;
}

.mt-4 {
    margin-top: 1.5rem !important;
}

.mr-1 {
    margin-right: 0.25rem !important;
}

.mr-2 {
    margin-right: 0.5rem !important;
}

.mr-3 {
    margin-right: 1rem !important;
}

.ml-1 {
    margin-left: 0.25rem !important;
}

.ml-3 {
    margin-left: 1rem !important;
}

.p-2 {
    padding: 0.5rem !important;
}

.p-3 {
    padding: 1rem !important;
}

.p-4 {
    padding: 1.5rem !important;
}

.px-0 {
    padding-left: 0 !important;
    padding-right: 0 !important;
}

.px-4 {
    padding-left: 1.5rem !important;
    padding-right: 1.5rem !important;
}

.py-5 {
    padding-top: 3rem !important;
    padding-bottom: 3rem !important;
}

/* Color Utilities */
.text-blue-500 {
    color: var(--blue-500) !important;
}

.text-blue-600 {
    color: var(--blue-600) !important;
}

.text-blue-700 {
    color: var(--blue-700) !important;
}

.text-green-500 {
    color: var(--green-500) !important;
}

.text-green-600 {
    color: var(--green-600) !important;
}

.text-red-600 {
    color: var(--red-600) !important;
}

.text-gray-600 {
    color: #4b5563 !important;
}

.bg-blue-50 {
    background-color: var(--blue-50) !important;
}

.bg-green-50 {
    background-color: var(--green-50) !important;
}

.bg-yellow-50 {
    background-color: var(--yellow-50) !important;
}

.bg-red-100 {
    background-color: var(--red-100) !important;
}

.bg-indigo-100 {
    background-color: var(--indigo-100) !important;
}

.bg-gray-50 {
    background-color: var(--gray-50) !important;
}

.bg-gray-200 {
    background-color: var(--gray-200) !important;
}

/* Components */
.rounded {
    border-radius: 0.25rem !important;
}

.rounded-circle {
    border-radius: 50% !important;
}

.shadow-sm {
    box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05) !important;
}

.font-weight-bold {
    font-weight: 700 !important;
}

.small {
    font-size: 0.875rem !important;
}

.uppercase {
    text-transform: uppercase !important;
}

.sap-outline-none {
    outline: none !important;
}

.sap-no-appearance {
    -webkit-appearance: none !important;
    -moz-appearance: none !important;
    appearance: none !important;
}

.sap-h-full {
    height: 100% !important;
}

.sap-h-3-25rem {
    height: 3.25rem !important;
}

.sap-min-w-100px {
    min-width: 100px !important;
}

.sap-flex-1 {
    flex: 1 !important;
}

.sap-flex-fill {
    flex: 1 1 auto !important;
}

.sap-cursor-pointer {
    cursor: pointer !important;
}

.sap-rounded-4 {
    border-radius: 4px !important;
}

.sap-rounded-8 {
    border-radius: 8px !important;
}

.sap-rounded-20 {
    border-radius: 20px !important;
}

.sap-bg-white-trans {
    background: rgba(255, 255, 255, 0.5) !important;
}

.sap-border-faint {
    border: 1px solid rgba(0, 0, 0, 0.05) !important;
}

.sap-border-top-faint {
    border-top: 1px solid rgba(0, 0, 0, 0.05) !important;
}

.sap-invisible {
    visibility: hidden !important;
}

.sap-opacity-0-6 {
    opacity: 0.6 !important;
}

.sap-opacity-0-8 {
    opacity: 0.8 !important;
}

.sap-opacity-75 {
    opacity: 0.75 !important;
}

.sap-bg-success-faint {
    background-color: rgba(40, 167, 69, 0.05) !important;
}

.sap-bg-f8f9fa {
    background-color: #f8f9fa !important;
}

.sap-icon-lg-fiori {
    font-size: 1.5rem !important;
    color: var(--sap-blue);
}

/* Typography Utilities */
.text-xs {
    font-size: 0.75rem !important;
    /* 12px */
}

.text-sm {
    font-size: 0.875rem !important;
    /* 14px */
}

.text-base {
    font-size: 1rem !important;
    /* 16px */
}

.text-lg {
    font-size: 1.125rem !important;
    /* 18px */
}

.text-xl {
    font-size: 1.25rem !important;
    /* 20px */
}

.sap-font-mono {
    font-family: 'Consolas', 'Monaco', 'Courier New', monospace !important;
}

.sap-font-semibold {
    font-weight: 500 !important;
}

.sap-font-600 {
    font-weight: 600 !important;
}

.sap-font-700 {
    font-weight: 700 !important;
}

.sap-font-0-65rem {
    font-size: 0.65rem !important;
}

.sap-font-0-85rem {
    font-size: 0.85rem !important;
}

.sap-font-0-9rem {
    font-size: 0.9rem !important;
}

.sap-font-0-95rem {
    font-size: 0.95rem !important;
}

.sap-font-1rem {
    font-size: 1rem !important;
}

.sap-font-1-1rem {
    font-size: 1.1rem !important;
}

.sap-font-1-125rem {
    font-size: 1.125rem !important;
}

.sap-font-1-2rem {
    font-size: 1.2rem !important;
}

.sap-line-h-1-5 {
    line-height: 1.5 !important;
}

.sap-max-w-150 {
    max-width: 150px !important;
}

.sap-max-w-250 {
    max-width: 250px !important;
}

body {
    background-color: var(--sap-background) !important;
    color: var(--sap-text);
    font-family: var(--sap-font);
    font-size: 1rem;
}

/* SAP Fiori Page Layout */
.sap-fiori-page {
    display: flex;
    flex-direction: column;
    min-height: calc(100vh - 50px);
    width: 100%;
    overflow-x: hidden;
}

.sap-header {
    background: var(--sap-header-background);
    padding: 1rem 2rem;
    border-bottom: 2px solid var(--sap-blue);
    display: flex;
    justify-content: space-between;
    align-items: center;
    box-shadow: var(--sap-shadow);
    margin-bottom: 1rem;
}

.sap-title {
    font-size: var(--sap-font-size-title);
    font-weight: 600;
    color: var(--sap-text);
    margin: 0;
}

.sap-title-sub {
    font-size: 0.6em !important;
    font-weight: normal !important;
}

.sap-header-badge {
    margin-left: 1rem;
    padding: 0.35rem 0.8rem;
    border-radius: 1rem;
    font-size: var(--sap-font-size-sm);
    font-weight: 600;
    background-color: rgba(0, 112, 242, 0.1);
    color: var(--sap-blue);
    border: none;
    display: inline-flex;
    align-items: center;
}

.sap-actions {
    display: flex;
    gap: 0.5rem;
}

/* Buttons */
.sap-btn-primary {
    background-color: var(--sap-blue) !important;
    color: white !important;
    border: none !important;
    border-radius: 0.25rem !important;
    padding: 0.6rem 1.25rem !important;
    font-weight: 500 !important;
    font-size: 1.125rem !important;
    line-height: 1.5 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    transition: background 0.2s;
    height: 3.25rem;
}

.sap-btn-primary:hover {
    background-color: var(--sap-blue-hover) !important;
}

.sap-btn-secondary {
    background-color: transparent !important;
    color: var(--sap-blue) !important;
    border: 1px solid var(--sap-blue) !important;
    border-radius: 0.25rem !important;
    padding: 0.6rem 1.25rem !important;
    font-weight: 500 !important;
    font-size: 1.125rem !important;
    line-height: 1.5 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    height: 3.25rem;
}

.sap-btn-secondary:hover {
    background: rgba(0, 112, 242, 0.05) !important;
}

/* Object Page Structure */
.sap-content {
    padding: 1rem 2rem;
    flex-grow: 1;
}

.sap-section {
    background: var(--sap-page-background);
    border-radius: 0.5rem;
    padding: 1.5rem;
    margin-bottom: 1.5rem;
    box-shadow: var(--sap-shadow);
    border: 1px solid var(--sap-border);
}

.sap-section-title {
    font-size: 1.1rem;
    font-weight: 600;
    color: var(--sap-text);
    margin-bottom: 1rem;
    padding-bottom: 0.5rem;
    border-bottom: 1px solid var(--sap-border);
}

/* Inputs & Labels */
.sap-group {
    margin-bottom: 1.5rem;
}

.sap-label {
    display: block;
    font-size: 1.125rem;
    color: var(--sap-label);
    margin-bottom: 0.25rem;
}

.sap-input {
    width: 100%;
    padding: 0.6rem 1rem;
    border: 1px solid var(--sap-border);
    border-radius: 0.25rem;
    background-color: var(--sap-field-background);
    color: var(--sap-text);
    font-size: 1.125rem;
    line-height: 1.5;
    height: 3.25rem;
    transition: border-color 0.2s;
}

.sap-input:focus {
    outline: none;
    border-color: var(--sap-blue);
}

.sap-input[readonly] {
    background-color: var(--sap-background);
    cursor: default;
}

select.sap-input option {
    color: #32363a !important;
    background-color: #ffffff !important;
    font-weight: 500 !important;
}

select option {
    color: #32363a !important;
    background-color: #ffffff !important;
    font-weight: 500 !important;
}

/* Fix for Select2 Option contrasts if Fiori style initializes Select2 under the hood unexpectedly */
.select2-results__option {
    color: #32363a !important;
    background-color: #ffffff !important;
}

.select2-results__option--highlighted {
    color: #ffffff !important;
    background-color: #0070f2 !important;
}

/* Select2 Fiori Style Overrides */
.select2-container--default .select2-selection--single {
    height: 3.25rem !important;
    padding: 0.6rem 1rem !important;
    border: 1px solid var(--sap-border) !important;
    border-radius: 0.25rem !important;
    background-color: var(--sap-field-background) !important;
    font-size: 1.125rem !important;
}

.select2-container--default .select2-selection--single .select2-selection__rendered {
    line-height: 1.5 !important;
    padding-left: 0 !important;
    color: var(--sap-text) !important;
}

.select2-container--default .select2-selection--single .select2-selection__arrow {
    height: 3.25rem !important;
    right: 5px !important;
}

.select2-container--default .select2-selection--multiple {
    min-height: 3.25rem !important;
    border: 1px solid var(--sap-border) !important;
    border-radius: 0.25rem !important;
    padding: 0.3rem 0.6rem !important;
}

.select2-container--default .select2-selection--multiple .select2-selection__choice {
    background-color: var(--blue-50) !important;
    border: 1px solid var(--blue-500) !important;
    color: var(--blue-600) !important;
    font-weight: 500 !important;
    font-size: 1rem !important;
}

.select2-container--default .select2-search--dropdown .select2-search__field {
    border: 1px solid var(--sap-border) !important;
    border-radius: 4px !important;
}

/* Table */
/* Table Container for Sticky Header */
.table-responsive {
    max-height: 70vh;
    overflow-y: auto;
    overflow-x: auto;
    border-radius: 0.25rem;
}

.sap-table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
}

.sap-table th {
    background: var(--sap-background);
    padding: 0.75rem;
    text-align: left;
    font-weight: 600;
    font-size: 1.125rem;
    color: var(--sap-label);
    border-bottom: 1px solid var(--sap-border);
    position: sticky;
    top: 0;
    z-index: 10;
    box-shadow: inset 0 -1px 0 var(--sap-border);
    /* Replacement for border-bottom during scroll */
}

/* SAP KPI Cards */
.sap-kpi-card {
    background: var(--sap-background);
    padding: 1.5rem;
    border-radius: 8px;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
    border: 1px solid var(--sap-border);
    display: flex;
    align-items: center;
    gap: 1rem;
    height: 100%;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.sap-kpi-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.08);
}

.sap-kpi-icon {
    font-size: 2rem;
    opacity: 0.8;
}

.sap-kpi-content {
    display: flex;
    flex-direction: column;
}

.sap-kpi-value {
    font-size: 1.4rem;
    font-weight: 700;
    color: var(--sap-text);
    line-height: 1.2;
}

.sap-kpi-label {
    font-size: 0.85rem;
    color: var(--sap-label);
    font-weight: 500;
}

.sap-table td {
    padding: 0.75rem;
    border-bottom: 1px solid var(--sap-border);
    vertical-align: middle;
    font-size: 1.125rem;
}

.sap-table tr:hover {
    background: rgba(0, 112, 242, 0.02);
}

/* Modern Dashboard Enhancements */
.sap-fiori-layout {
    background: #f4f7f6;
    padding: 0;
}

.sap-section.h-100 {
    height: 100% !important;
}

.card-glow-primary {
    border-top: 4px solid var(--blue-500);
}

.card-glow-success {
    border-top: 4px solid var(--green-500);
}

.card-glow-warning {
    border-top: 4px solid var(--yellow-500);
}

.card-glow-info {
    border-top: 4px solid #06b6d4;
}

.pulse-icon {
    width: 10px;
    height: 10px;
    background: var(--blue-500);
    border-radius: 50%;
    box-shadow: 0 0 0 rgba(59, 130, 246, 0.4);
    animation: pulse 2s infinite;
}

@keyframes pulse {
    0% {
        transform: scale(0.95);
        box-shadow: 0 0 0 0 rgba(59, 130, 246, 0.7);
    }

    70% {
        transform: scale(1);
        box-shadow: 0 0 0 10px rgba(59, 130, 246, 0);
    }

    100% {
        transform: scale(0.95);
        box-shadow: 0 0 0 0 rgba(59, 130, 246, 0);
    }
}

.avatar-mini {
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--gray-200);
    color: var(--gray-600);
    font-weight: bold;
    border-radius: 50%;
}

.sap-user-avatar {
    width: 24px;
    height: 24px;
    background: #eee;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: bold;
    color: #555;
}

.badge-success-fiori {
    background: #e8f5e9;
    color: #2e7d32;
    padding: 2px 10px;
    border-radius: 12px;
    font-size: 0.75rem;
    font-weight: 600;
}

.sap-max-w-100 {
    max-width: 100%;
}

.badge-outline-primary {
    border: 1px solid var(--blue-500);
    color: var(--blue-500);
    background: transparent;
    padding: 2px 8px;
    border-radius: 12px;
}

.border-left-alert {
    border-left: 6px solid #ef4444;
}

.border-left-info {
    border-left: 6px solid var(--indigo-600);
}

/* Progress Bar Customization */
.progress {
    background-color: var(--gray-200);
    box-shadow: none;
    overflow: hidden;
}

.progress-bar.bg-blue-500 {
    background-color: var(--blue-500);
}

.list-group-item.bg-transparent {
    background-color: transparent !important;
}

.sap-table th.border-0 {
    border: none !important;
}

.sap-table td.border-0 {
    border: none !important;
}

/* Utility */
.sap-mt-3 {
    margin-top: 1rem;
}

.sap-mb-3 {
    margin-bottom: 1rem;
}

/* SAP Badges */
.sap-badge {
    padding: 0.4em 0.8em;
    border-radius: 4px;
    font-size: 1rem;
    font-weight: 600;
    line-height: 1;
    text-align: center;
    white-space: nowrap;
    vertical-align: baseline;
    display: inline-block;
}

.sap-badge-code {
    font-family: 'Consolas', 'Monaco', monospace;
    font-weight: 700;
    color: var(--sap-blue);
    background-color: rgba(0, 112, 242, 0.1);
    letter-spacing: 0.05em;
    padding: 0.3em 0.6em;
    border-radius: 4px;
    font-size: 1.125rem;
}

.sap-text-sap {
    color: var(--sap-text) !important;
}

.sap-text-sap-accent {
    color: var(--sap-accent) !important;
}

.sap-text-blue {
    color: var(--sap-blue) !important;
}

.sap-text-muted-gray {
    color: var(--sap-label) !important;
}

.sap-badge-success {
    background-color: #d4edda;
    color: #155724;
}

.sap-badge-warning {
    background-color: #fff3cd;
    color: #856404;
}

.sap-badge-danger {
    background-color: #f8d7da;
    color: #721c24;
}

.sap-badge-info {
    background-color: #d1ecf1;
    color: #0c5460;
}

.sap-badge-secondary {
    background-color: #e2e3e5;
    color: #383d41;
}

.sap-badge-primary {
    background-color: rgba(0, 112, 242, 0.1);
    color: var(--sap-text);
}

.sap-badge-pill {
    padding: 0.4rem 0.8rem;
    border-radius: 1rem;
    font-size: var(--sap-font-size-sm);
    font-weight: 600;
}

.sap-alert-fiori {
    border-radius: 8px;
    border: none;
    box-shadow: 0 2px 5px rgba(0,0,0,0.05);
}

/* Category Specific Badges - Professional Palette */
.sap-badge-cat-1 {
    background-color: #e0f2fe;
    color: #0369a1;
    border: 1px solid #bae6fd;
}

/* Blue/Cyan */
.sap-badge-cat-2 {
    background-color: #fce7f3;
    color: #be185d;
    border: 1px solid #fbcfe8;
}

/* Pink */
.sap-badge-cat-3 {
    background-color: #fef3c7;
    color: #b45309;
    border: 1px solid #fde68a;
}

/* Amber */
.sap-badge-cat-4 {
    background-color: #dcfce7;
    color: #15803d;
    border: 1px solid #bbf7d0;
}

/* Green */
.sap-badge-cat-5 {
    background-color: #ede9fe;
    color: #6d28d9;
    border: 1px solid #ddd6fe;
}

/* Violet */
.sap-badge-cat-6 {
    background-color: #ffedd5;
    color: #c2410c;
    border: 1px solid #fed7aa;
}

/* Orange */
.sap-badge-cat-7 {
    background-color: #f1f5f9;
    color: #334155;
    border: 1px solid #e2e8f0;
}

/* Slate */
.sap-badge-cat-8 {
    background-color: #fae8ff;
    color: #a21caf;
    border: 1px solid #f5d0fe;
}

/* Fuchsia */
.sap-badge-cat-9 {
    background-color: #ecfdf5;
    color: #047857;
    border: 1px solid #d1fae5;
}

/* Emerald */
.sap-badge-cat-10 {
    background-color: #fef2f2;
    color: #b91c1c;
    border: 1px solid #fee2e2;
}

/* Red */

.sap-btn-sm {
    padding: 0.4rem 0.8rem;
    font-size: 0.85rem;
}

/* Select2 SAP Fiori Overrides */
.select2-container--default .select2-selection--multiple,
.select2-container--default .select2-selection--single {
    border: 1px solid var(--sap-border) !important;
    border-radius: 0.25rem !important;
    height: 3.25rem !important;
    background-color: var(--sap-field-background) !important;
}

.select2-container--default.select2-container--focus .select2-selection--multiple,
.select2-container--default.select2-container--focus .select2-selection--single {
    border-color: var(--sap-blue) !important;
}

.select2-container--default .select2-selection--multiple .select2-selection__choice {
    background-color: var(--sap-blue) !important;
    border: none !important;
    color: white !important;
    border-radius: 4px !important;
    padding: 2px 10px !important;
    margin-top: 5px !important;
    font-weight: 600 !important;
    font-size: 0.85rem !important;
}

.select2-container--default .select2-selection--multiple .select2-selection__choice__remove {
    color: rgba(255, 255, 255, 0.8) !important;
    margin-right: 5px !important;
    border: none !important;
    transition: all 0.2s;
}

.select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {
    color: white !important;
    background: rgba(255, 255, 255, 0.2) !important;
}

.select2-container .select2-search--inline .select2-search__field {
    margin-top: 7px !important;
    padding-left: 8px !important;
    font-family: var(--sap-font) !important;
}

/* Single Select Styling */
.select2-container--default .select2-selection--single .select2-selection__rendered {
    line-height: 3.25rem !important;
    color: var(--sap-text) !important;
    padding-left: 10px !important;
}

.select2-container--default .select2-selection--single .select2-selection__arrow {
    height: 3.25rem !important;
}

/* Print Optimization for SAP Fiori Layouts */
/* SAP Fiori Object Page Layouts */
.sap-object-page {
    background: #ffffff;
    border-radius: 0.25rem;
    overflow: hidden;
}

.sap-object-page-header {
    background: #ffffff;
    padding: 1rem 2rem;
    border-bottom: 1px solid #d9d9d9;
}

.sap-content-container {
    padding: 2rem;
    background: #f2f2f2;
    min-height: calc(100vh - 200px);
}

.sap-object-page-title-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 1.5rem;
}

.sap-object-page-facet-row {
    display: flex;
    flex-wrap: wrap;
    gap: 3rem;
    padding: 0.5rem 0 1.5rem 0;
    border-bottom: 1px solid #f0f0f0;
}

.sap-facet-group {
    display: flex;
    flex-direction: column;
    min-width: 150px;
}

.sap-facet-label {
    font-size: 0.8125rem;
    color: #6a6d70;
    margin-bottom: 0.25rem;
    text-transform: none;
}

.sap-facet-value {
    font-size: 1rem;
    font-weight: 600;
    color: #32363a;
}

.sap-object-section {
    padding: 1.5rem 0;
}

.sap-section-header {
    font-size: 1.125rem;
    font-weight: 700;
    color: #32363a;
    margin-bottom: 1.5rem;
    display: flex;
    align-items: center;
}

.sap-section-header::after {
    content: '';
    flex: 1;
    height: 1px;
    background: #eeeeee;
    margin-left: 1rem;
}

/* Responsive Overrides */
@media (max-width: 768px) {
    .sap-header {
        flex-direction: column;
        align-items: flex-start;
        gap: 1rem;
        padding: 1rem;
    }

    .sap-header .d-flex.align-items-center {
        flex-wrap: wrap;
        width: 100%;
        gap: 0.5rem;
    }

    .sap-actions {
        width: 100%;
        flex-direction: column;
        gap: 0.5rem;
    }

    .sap-actions .btn-group {
        width: 100%;
        display: flex;
        margin-right: 0 !important;
    }

    .sap-actions .btn-group a {
        flex: 1;
        justify-content: center;
        padding: 0.5rem !important;
        font-size: 0.9rem !important;
        height: auto !important;
    }

    .sap-btn-primary {
        width: 100%;
        height: auto !important;
        padding: 0.8rem !important;
        font-size: 1rem !important;
    }

    .sap-title {
        font-size: 1.5rem !important;
    }

    /* Standardize Section Widths/Padding */
    .sap-section {
        padding: 1rem !important;
        margin-bottom: 1rem !important;
    }

    .sap-group {
        margin-bottom: 1rem !important;
    }

    .sap-header-badge {
        margin-left: 0;
        margin-top: 0.25rem;
    }

    /* Stacked Table for mobile */
    #itemsTable thead {
        display: none;
    }

    #itemsTable tr.item-row {
        display: block;
        margin-bottom: 0.75rem;
        border: 1px solid var(--sap-border);
        border-radius: 6px;
        background: #fff;
        padding: 0.75rem;
        /* Match section padding */
        box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
    }

    #itemsTable td {
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        border-bottom: 1px dashed #eee;
        padding: 0.4rem 0 !important;
        text-align: left !important;
        min-height: auto;
    }

    #itemsTable td:last-child {
        border-bottom: none;
        align-items: center;
        padding-top: 0.5rem !important;
    }

    #itemsTable td::before {
        content: attr(data-label);
        font-weight: 700;
        color: var(--sap-label);
        font-size: 0.75rem;
        margin-bottom: 0.15rem;
    }

    #itemsTable .sap-input {
        width: 100% !important;
        height: 2.25rem !important;
        font-size: 1rem !important;
        padding: 0.35rem 0.5rem !important;
    }

    #itemsTable .stock-info {
        position: static !important;
        display: block !important;
        text-align: left !important;
        width: 100%;
        margin-top: 0.1rem;
        font-size: 0.75rem !important;
        color: var(--sap-accent) !important;
    }

    /* Scrollable items area for mobile */
    .sap-mobile-scroll {
        max-height: 350px;
        overflow-y: auto !important;
        padding: 0.5rem;
        margin-bottom: 1rem;
        border: 1px solid var(--sap-border);
        border-radius: 4px;
        background: #fdfdfd;
    }
}

/* Print Overrides for Object Pages */
@media print {

    /* Hide navigation and UI controls */
    .main-sidebar,
    .sidebar-toggle,
    .global-toggle-container,
    .sap-actions,
    #filterForm,
    .breadcrumb,
    .sap-btn-secondary,
    .main-header,
    .btn,
    .main-footer,
    .sap-btn-primary i,
    .fa-arrow-left,
    .panel-title-box-right {
        display: none !important;
    }

    /* Reset layout for full page width */
    .content-wrapper,
    .sap-fiori-page,
    body,
    html {
        margin-left: 0 !important;
        padding: 0 !important;
        background: white !important;
        width: 100% !important;
        height: auto !important;
    }

    .wrapper {
        background: white !important;
        overflow: visible !important;
    }

    .sap-content {
        padding: 0 !important;
        margin: 0 !important;
    }

    /* Professional Solid Report Header */
    .sap-header {
        border-bottom: 2px solid #000 !important;
        margin-bottom: 25px !important;
        padding: 0 0 10px 0 !important;
        display: block !important;
        box-shadow: none !important;
    }

    .sap-header .d-flex {
        display: flex !important;
        align-items: flex-end !important;
        justify-content: space-between !important;
        width: 100% !important;
    }

    .sap-title {
        font-size: 26px !important;
        color: #000 !important;
        margin: 0 !important;
        font-weight: bold !important;
    }

    .sap-badge-code {
        background: transparent !important;
        border: 1px solid #000 !important;
        color: #000 !important;
        padding: 2px 8px !important;
        font-size: 14px !important;
    }

    /* Condensed KPI Grid for Print */
    .row {
        display: flex !important;
        flex-wrap: wrap !important;
        margin: 0 -5px 20px -5px !important;
    }

    .col-md-3 {
        width: 25% !important;
        float: left !important;
        padding: 0 5px !important;
    }

    .sap-kpi-card {
        padding: 8px !important;
        border: 1px solid #000 !important;
        background: #fff !important;
        box-shadow: none !important;
        height: auto !important;
        text-align: center !important;
        display: block !important;
    }

    .sap-kpi-icon {
        display: none !important;
    }

    .sap-kpi-content {
        display: block !important;
    }

    .sap-kpi-value {
        font-size: 14px !important;
        color: #000 !important;
        display: block !important;
    }

    .sap-kpi-label {
        font-size: 9px !important;
        text-transform: uppercase !important;
        color: #666 !important;
        display: block !important;
        margin-bottom: 2px !important;
    }

    /* Solid Table for Audit-Ready Printing */
    .table-responsive {
        overflow: visible !important;
        max-height: none !important;
    }

    .sap-table {
        width: 100% !important;
        border: 1px solid #000 !important;
        border-collapse: collapse !important;
    }

    .sap-table th {
        background: #eee !important;
        color: #000 !important;
        border: 1px solid #000 !important;
        font-size: 11px !important;
        padding: 6px 4px !important;
        position: static !important;
        text-align: center !important;
    }

    .sap-table td {
        border: 1px solid #000 !important;
        font-size: 10px !important;
        padding: 4px !important;
        color: #000 !important;
    }

    .sap-table .text-right {
        text-align: right !important;
    }

    /* Fix color contrasts for B&W printing */
    .text-green-600,
    .text-red-600,
    .text-blue-600 {
        color: #000 !important;
        font-weight: bold !important;
    }

    .sap-badge {
        border: 1px solid #000 !important;
        background: transparent !important;
        color: #000 !important;
        padding: 1px 4px !important;
        font-size: 9px !important;
    }

    /* Page Breaks */
    tr {
        page-break-inside: avoid !important;
    }

    thead {
        display: table-header-group !important;
    }

    /* Document Margin */
    @page {
        margin: 1.5cm;
        size: portrait;
    }
}
/* ===== SAP Sort Link (CSP Compliant - replaces inline styles in @sortablelink directive) ===== */
.sap-sort-link {
    text-decoration: none !important;
    color: inherit !important;
    display: inline-flex !important;
    align-items: center !important;
}
.sap-sort-link:hover {
    color: var(--sap-primary, #1a73e8) !important;
}
.sap-sort-icon-inactive {
    font-size: 0.8em !important;
    opacity: 0.3;
}

/* CSP Hardening Utilities - Product Page */
.sap-outline-none {
    outline: none !important;
}

.sap-scroll-x-touch {
    white-space: nowrap !important;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch !important;
}

.sap-rounded-pill {
    border-radius: 20px !important;
}

.sap-mobile-img-container {
    width: 70px !important;
    height: 70px !important;
    min-width: 70px !important;
    background: #f8f9fa !important;
    border-radius: 8px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    border: 1px solid var(--sap-border) !important;
}

.sap-desktop-img-container {
    width: 50px !important;
    height: 50px !important;
    background: white !important;
    border: 1px solid var(--sap-border) !important;
    border-radius: 6px !important;
    overflow: hidden !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}

.sap-img-contain {
    max-width: 100% !important;
    max-height: 100% !important;
    object-fit: contain !important;
}

.sap-font-10 {
    font-size: 10px !important;
}

.sap-font-11 {
    font-size: 11px !important;
}

.sap-font-base {
    font-size: 1rem !important;
}

.sap-font-600 {
    font-weight: 600 !important;
}

.sap-font-500 {
    font-weight: 500 !important;
}

.sap-text-courier {
    font-family: 'Courier New', monospace !important;
}

.sap-max-w-300 {
    max-width: 300px !important;
}

.sap-ellipsis {
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
}

.sap-gap-8 {
    gap: 8px !important;
}

.sap-flex-1 {
    flex: 1 !important;
}

.sap-visibility-hidden {
    visibility: hidden !important;
}

.sap-no-decoration {
    text-decoration: none !important;
}

.sap-opacity-2 {
    opacity: 0.2 !important;
}

.sap-text-muted-gray {
    color: #6c757d !important;
}

.sap-min-w-70 {
    min-width: 70px !important;
}

.sap-rounded-4 {
    border-radius: 4px !important;
}

/* Trial Balance Import CSP Hardening Utilities */
.sap-title-sub {
    font-size: 0.6em !important;
    font-weight: 400 !important;
}

.sap-input-file-padding {
    padding-top: 0.35rem !important;
}

.sap-text-semibold {
    font-weight: 600 !important;
}

.sap-text-blue {
    color: var(--sap-blue) !important;
}

/* Canvas Order CSP Hardening Utilities */
.sap-min-w-180 { min-width: 180px !important; }
.sap-min-w-320 { min-width: 320px !important; }
.sap-min-w-300 { min-width: 300px !important; }
.sap-font-800 { font-weight: 800 !important; }
.sap-font-1-8rem { font-size: 1.8rem !important; }
.sap-font-1-25rem { font-size: 1.25rem !important; }
.sap-border-dashed { border-style: dashed !important; }
.sap-bg-fbfbfb { background: #fbfbfb !important; }
.sap-bg-fafafa { background: #fafafa !important; }
.sap-bg-f1f8ff { background: #f1f8ff !important; }
.sap-text-sap-accent { color: var(--sap-accent) !important; }
.sap-h-3-25rem { height: 3.25rem !important; }
.sap-gap-10 { gap: 10px !important; }
.sap-font-1-5rem { font-size: 1.5rem !important; }
.sap-opacity-3 { opacity: 0.3 !important; }
.sap-border-top-thick { border-top: 2px solid #ddd !important; }
.sap-font-1-125rem { font-size: 1.125rem !important; }
.sap-max-w-1200 { max-width: 1200px !important; }
.sap-rounded-8 { border-radius: 8px !important; }
.sap-border-left-red { border-left: 5px solid #d32f2f !important; }
.sap-h-2-8rem { height: 2.8rem !important; }
.sap-h-2-5rem { height: 2.5rem !important; }
.sap-opacity-7 { opacity: 0.7 !important; }
.sap-p-5 { padding: 5px !important; }
.sap-font-0-85rem { font-size: 0.85rem !important; }
.sap-font-0-9rem { font-size: 0.9rem !important; }
.sap-font-1-1em { font-size: 1.1em !important; }
.sap-text-green-600 { color: #2e7d32 !important; }
.sap-max-h-400 { max-height: 400px !important; }
.sap-bg-e1f5fe { background: #e1f5fe !important; }
.sap-bg-f1f8ff { background: #f1f8ff !important; }
.sap-flex-1 { flex: 1 !important; }
.sap-h-8px { height: 8px !important; }
.sap-rounded-4px { border-radius: 4px !important; }
.sap-w-0 { width: 0% !important; }
.sap-text-warning-dark { color: #856404 !important; }
.sap-border-warning-dark { border-color: #856404 !important; }
.sap-w-100 { width: 100px !important; }
.sap-w-120 { width: 120px !important; }
.sap-inline-block { display: inline-block !important; }
.sap-border-blue { border-color: #3c8dbc !important; }
.sap-alert-fiori-info { background: rgba(0, 112, 242, 0.05) !important; color: #0070f2 !important; border: 1px dashed #0070f2 !important; border-radius: 8px !important; }
.sap-avatar-mini {
    width: 24px !important;
    height: 24px !important;
    background: #eee !important;
    border-radius: 50% !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-weight: bold !important;
    color: #555 !important;
}

.sap-opacity-5 {
    opacity: 0.5 !important;
}

.sap-shadow-micro {
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05) !important;
}

.sap-border-none {
    border: none !important;
}

.sap-min-h-250 {
    min-height: 250px !important;
}

.sap-max-h-300 {
    max-height: 300px !important;
}

.sap-img-detail-container {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}

/* Category & Master UI Enhancements */
.sap-icon-circle-lg {
    width: 45px !important;
    height: 45px !important;
    background: #eef2f7 !important;
    border-radius: 50% !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: 1.2rem !important;
}

.sap-section-danger {
    background: #fff8f8 !important;
    border: 1px solid #ffebeb !important;
}

.sap-text-lg {
    font-size: 1.1rem !important;
}

.sap-font-lg {
    font-size: 1.2rem !important;
}

.sap-font-xl {
    font-size: 1.4rem !important;
}

.sap-font-monospace {
    font-family: 'Courier New', Courier, monospace !important;
}

/* Background utilities */
.sap-bg-light { background-color: #f5f5f5 !important; }
.sap-bg-gray-50 { background-color: var(--gray-50, #f9fafb) !important; }
.sap-bg-green-50 { background-color: var(--green-50, #ecfdf5) !important; }
.sap-bg-yellow-50 { background-color: var(--yellow-50, #fffbeb) !important; }

/* Text color utilities */
.sap-text-green-600 { color: var(--green-600, #059669) !important; }
.sap-text-yellow-600 { color: var(--yellow-600, #d97706) !important; }
.sap-text-red-600 { color: var(--red-600, #dc2626) !important; }

/* Utility Classes */
.sap-cursor-pointer { cursor: pointer !important; }

/* Button Color Variants */
.sap-btn-green {
    background-color: var(--green-600) !important;
    border-color: var(--green-600) !important;
    color: white !important;
}
.sap-btn-yellow {
    background-color: var(--yellow-600) !important;
    border-color: var(--yellow-600) !important;
    color: white !important;
}

.sap-icon-lg-fiori {
    font-size: 24px !important;
    display: block !important;
    margin-bottom: 8px !important;
}

.sap-max-w-150 {
    max-width: 150px !important;
}

.sap-max-w-100 {
    max-width: 100px !important;
}

/* Finance & Kas/Bank specialized utilities */
.sap-accent-blue { border-left: 4px solid var(--sap-blue, #0a6ed1) !important; }
.sap-accent-green { border-left: 4px solid #10b981 !important; }
.sap-accent-orange { border-left: 4px solid #f59e0b !important; }
.sap-accent-red { border-left: 4px solid #ef4444 !important; }
.sap-accent-gray { border-left: 4px solid #6c757d !important; }

.sap-font-700 { font-weight: 700 !important; }
.sap-font-600 { font-weight: 600 !important; }
.sap-font-monospace { font-family: 'Courier New', monospace !important; }
.sap-font-xs { font-size: 0.7rem !important; }
.sap-font-xsmall { font-size: 0.65rem !important; }

.sap-icon-placeholder { opacity: 0.2 !important; }

.sap-amount-debit { color: #10b981 !important; font-weight: 700 !important; }
.sap-amount-credit { color: #f59e0b !important; font-weight: 700 !important; }
.sap-amount-negative { color: #ef4444 !important; font-weight: 700 !important; }

.sap-icon-circle-sm {
    width: 30px !important;
    height: 30px !important;
    background: #e0e7ff !important;
    border-radius: 50% !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    color: #4338ca !important;
    font-size: 0.9rem !important;
    font-weight: bold !important;
}

.sap-badge-pill-fiori {
    font-size: 0.7rem !important;
    font-weight: 600 !important;
    min-width: 70px !important;
    padding: 0.35rem !important;
    text-transform: uppercase !important;
}

/* Spinner Utility Classes (CSP Compliant) */
.sap-spinner-lg {
    width: 3rem !important;
    height: 3rem !important;
}

.sap-spinner-xl {
    width: 100px !important;
    height: 100px !important;
    border-width: 10px !important;
}

.sap-img-preview {
    max-width: 200px !important;
    max-height: 200px !important;
    border: 1px solid #ddd !important;
    padding: 5px !important;
    object-fit: contain !important;
}

/* Hardening Utility Classes */
.sap-rounded-8 { border-radius: 8px !important; }
.sap-gap-8 { gap: 8px !important; }
.sap-gap-10 { gap: 10px !important; }
.sap-gap-5 { gap: 5px !important; }
.sap-gap-4 { gap: 4px !important; }
.sap-text-main { color: var(--sap-text) !important; }
.sap-font-tiny { font-size: 0.7rem !important; }
.sap-font-xs { font-size: 0.75rem !important; }
.sap-font-10 { font-size: 10px !important; }
.sap-border-dashed { border: 1px dashed #ccc !important; }
.sap-toggle-btn { text-decoration: none; font-size: 1.4rem; transition: transform 0.2s; }
.sap-modal-rounded { border-radius: 12px !important; overflow: hidden !important; }
.sap-color-picker-input { width: 50px !important; height: 38px !important; }
.sap-avatar-mini-fiori { width: 24px !important; height: 24px !important; font-size: 10px !important; background: #e0e7ff !important; color: #4f46e5 !important; border-radius: 50% !important; display: flex !important; align-items: center !important; justify-content: center !important; }

/* Themed Alerts */
.sap-alert-success-fiori { 
    border-left: 5px solid #059669 !important; 
    background: #ecfdf5 !important; 
    border-radius: 8px !important; 
    border-top: none !important; 
    border-bottom: none !important; 
    border-right: none !important; 
}
.sap-alert-danger-fiori { 
    border-left: 5px solid #dc3545 !important; 
    background: #fdf2f2 !important; 
    border-radius: 8px !important; 
    border-top: none !important; 
    border-bottom: none !important; 
    border-right: none !important; 
}

/* Font Preview Component (CSP Compliant) */
.sap-font-preview-item {
    cursor: pointer;
    transition: all 0.2s;
}
.sap-font-preview-item:hover {
    background-color: #f4f6f9 !important;
    border-color: #d2d6de !important;
}
.sap-font-preview-active {
    background-color: #ebf5ff !important;
    border-color: #3c8dbc !important;
}
.sap-text-preview-lg {
    font-size: 1.1em !important;
}

/* Select2 Dropdown Responsive Fixes */
.select2-dropdown {
    border: 1px solid var(--sap-border) !important;
    border-radius: 0.25rem !important;
    box-shadow: var(--sap-shadow) !important;
    max-width: 100% !important;
    z-index: 1060 !important;
    background-color: #fff !important;
}

.select2-container .select2-results__options {
    max-height: 300px !important;
}

.select2-results__option {
    padding: 10px 15px !important;
    font-size: 1.125rem !important;
    border-bottom: 1px solid rgba(0,0,0,0.03);
}

.select2-results__option:last-child {
    border-bottom: none;
}

.select2-container--default .select2-results__option--highlighted[aria-selected] {
    background-color: var(--sap-blue) !important;
    color: white !important;
}

/* Dashboard Layout Standardization (Rule 3) */
.sap-dashboard-main {
    display: flex;
    flex-direction: column;
    width: 100%;
}

.sap-dashboard-header {
    padding: 1.5rem 1.5rem 0.5rem 1.5rem !important; /* Standard 24px (p-4 equivalent) */
}

.sap-dashboard-body {
    padding: 0 1.5rem 1.5rem 1.5rem !important; /* Match header padding */
}

/* Force standard Bootstrap row behavior within standardized dashboard container */
.sap-dashboard-body .row {
    margin-left: -15px !important;
    margin-right: -15px !important;
}

/* Zero-Drift Padding Sync: Ensure all borders start at the exact same coordinate */
.sap-dashboard-body [class*="col-"] {
    padding-left: 15px !important;
    padding-right: 15px !important;
}

@media (max-width: 768px) {
    .sap-dashboard-header {
        padding: 1.25rem 1.25rem 0.5rem 1.25rem !important; /* Mobile standard 20px */
    }
    .sap-dashboard-body {
        padding: 0 1.25rem 1.25rem 1.25rem !important;
    }
}


.sap-fiori-page {
    width: 100% !important;
    box-sizing: border-box !important;
}

.sap-center-block {
    display: block !important;
    margin-left: auto !important;
    margin-right: auto !important;
    float: none !important;
}

.sap-plan-badge {
    font-size: 0.5em !important;
    vertical-align: middle !important;
    padding: 4px 10px !important;
    border-radius: 20px !important;
}
