/* =========================
   Support Ticket Details
   ========================= */

.support-details-container {
    background-color: var(--body-bg);
    min-height: calc(100vh - 60px);
}

.ticket-header-modern {
    padding: 1rem 1.5rem;
    background: #fff;
    border-bottom: 1px solid #e1e7ec;
    display: flex;
    align-items: center;
    gap: 1rem;
}

.ticket-header-title {
    font-size: 1.25rem;
    font-weight: 600;
    color: #1f2937;
    margin: 0;
}

/* Timeline / Messages */
.support-timeline {
    padding: 1.5rem;
    max-height: calc(100vh - 300px);
    overflow-y: auto;
}

.message-card {
    background: #fff;
    border: 1px solid #e1e7ec;
    border-radius: 8px;
    margin-bottom: 1.5rem;
    overflow: hidden;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.02);
}

.message-card-header {
    background: #f8f9fa;
    padding: 0.75rem 1rem;
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-bottom: 1px solid #e1e7ec;
}

.message-card-agent .message-card-header {
    background: var(--primary-color) !important;
    color: #fff !important;
    border-bottom: none;
}

.message-card-header .user-name {
    font-weight: 700;
    font-size: 0.9rem;
}

.message-card-header .message-time {
    font-size: 0.8rem;
    opacity: 0.8;
}

.message-card-body {
    padding: 1rem;
    font-size: 0.95rem;
    line-height: 1.6;
    color: #374151;
}

.system-activity-row {
    text-align: center;
    margin: 1.5rem 0;
    position: relative;
    color: #6b7280;
    font-size: 0.85rem;
}

/* Sidebar Styling */
.sidebar-sticky {
    position: sticky;
    top: 1.5rem;
}

.sidebar-card-modern {
    background: #fff;
    border: 1px solid #e1e7ec;
    border-radius: 8px;
    margin-bottom: 1.5rem;
}

.sidebar-card-header {
    padding: 1rem;
    font-weight: 700;
    color: #1f2937;
    border-bottom: 1px solid #e1e7ec;
}

.sidebar-card-body {
    padding: 1rem;
}

.sidebar-prop-item {
    margin-bottom: 0.75rem;
    font-size: 0.9rem;
}

.sidebar-prop-label {
    color: #6b7280;
    width: 100px;
    display: inline-block;
}

.sidebar-prop-value {
    color: #1f2937;
    font-weight: 500;
}

/* Reply Box */
.reply-box-container {
    background: #fff;
    border: 1px solid #e1e7ec;
    border-radius: 8px;
    margin: 0 1.5rem 1.5rem;
    padding: 1rem;
}

.reply-box-footer {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-top: 1rem;
    border-top: 1px solid #f3f4f6;
}

/* Utilities */
.ls-1 {
    letter-spacing: 0.5px;
}

.fs-7 {
    font-size: 0.85rem;
}

/* Color Utilities */
.bg-primary-soft { background-color: #eef2ff !important; color: #4f46e5 !important; }
.bg-success-soft { background-color: #ecfdf5 !important; color: #10b981 !important; }
.bg-warning-soft { background-color: #fffbeb !important; color: #f59e0b !important; }
.bg-danger-soft  { background-color: #fef2f2 !important; color: #ef4444 !important; }
.bg-info-soft    { background-color: #f0f9ff !important; color: #0ea5e9 !important; }

.text-primary-700 { color: #4338ca !important; }
.text-success-700 { color: #15803d !important; }
.text-warning-700 { color: #a16207 !important; }
.text-danger-700  { color: #b91c1c !important; }

/* =========================
   Modern Dashboard
   ========================= */

.dashboard-container {
    padding: 2rem;
    background-color: #f9fafb;
}

.stat-card-modern {
    background: #fff;
    border: none;
    border-radius: 12px;
    padding: 1.5rem;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
    overflow: hidden;
}

.stat-card-modern:hover {
    transform: translateY(-4px);
    box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
}

.stat-icon-wrapper {
    width: 48px;
    height: 48px;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 1.25rem;
}

.stat-value {
    font-size: 1.75rem;
    font-weight: 700;
    color: #111827;
    line-height: 1;
    margin-bottom: 0.25rem;
}

.stat-label {
    font-size: 0.875rem;
    color: #6b7280;
    font-weight: 500;
}

.stat-badge {
    position: absolute;
    top: 1.5rem;
    right: 1.5rem;
    font-size: 0.7rem;
    font-weight: 700;
    padding: 0.25rem 0.6rem;
    border-radius: 6px;
    letter-spacing: 0.5px;
}

/* Activity Banner */
.activity-banner {
    background: var(--primary-gradient);
    color: #fff;
    padding: 1.5rem 2rem;
    border-radius: 12px 12px 0 0;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.activity-banner h5 {
    font-weight: 700;
    margin-bottom: 0.25rem;
}

.activity-banner p {
    font-size: 0.85rem;
    opacity: 0.8;
}

/* Premium Table */
.table-modern {
    margin-bottom: 0;
}

.table-modern thead th {
    background: #fdfdfd;
    padding: 1rem 1.5rem;
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    color: #4b5563;
    letter-spacing: 0.5px;
    border-bottom: 1px solid #f3f4f6;
}

.table-modern tbody td {
    padding: 1.25rem 1.5rem;
    vertical-align: middle;
    border-bottom: 1px solid #f3f4f6;
}

.table-modern tbody tr:last-child td {
    border-bottom: none;
}

/* Dashboard Utilities */
.bg-soft-primary {
    background-color: var(--primary-soft);
    color: var(--primary-text);
}

.bg-soft-danger {
    background-color: #fef2f2;
    color: #ef4444;
}

.bg-soft-warning {
    background-color: #fffbeb;
    color: #d97706;
}

.bg-soft-success {
    background-color: #ecfdf5;
    color: #10b981;
}

.bg-soft-info {
    background-color: var(--info-soft);
    color: var(--info-text);
}

.bg-soft-secondary {
    background-color: var(--secondary-soft);
    color: var(--secondary-text);
}

.btn-gradient-primary {
    background: var(--primary-gradient);
    border: none;
    color: #fff;
    transition: opacity 0.2s;
}

.btn-gradient-primary:hover {
    opacity: 0.9;
    color: #fff;
}

/* =========================
   Sticky Card Header
   ========================= */
.sticky-card-header {
    position: sticky;
    top: 60px;
    /* Aligned with fixed navbar height */
    z-index: 1025;
    /* Lower than navbar search results AND sidebar */
    background: #6c757d;
    /* bg-secondary */
    overflow: visible !important;
    /* Allow dropdowns to be visible */
}

.btn-white {
    background: #fff !important;
    border: 1px solid #e1e7ec !important;
    color: #374151 !important;
}

.btn-white:hover {
    background: #f8f9fa !important;
    color: var(--primary-color) !important;
}

/* Force dropdown visibility over sticky headers */
.dropdown-menu {
    z-index: 10002 !important;
}

.dropdown-z-higher {
    position: relative;
    z-index: 10;
}

.modal-backdrop {
    z-index: 10000 !important;
}

.modal {
    z-index: 10001 !important;
}

/* Override theme forcing icons to white in dark headers */
.btn-white .text-primary,
.btn-white i.text-primary {
    color: var(--primary-color) !important;
    opacity: 1 !important;
}

/* =========================
   Scrollable Table Area
   ========================= */
.table-scroll {
    max-height: calc(100vh - 260px);
    overflow-y: auto;
}

/* =========================
   Sticky Table Header
   ========================= */
.table-scroll thead th {
    position: sticky;
    top: 0;
    z-index: 1020;
    background: #ffffff;
    box-shadow: 0 2px 2px -1px rgba(0, 0, 0, 0.15);
    white-space: nowrap;
}

/* Dark Table Header Support */
.table-scroll .table-dark thead th,
.table-scroll thead.table-dark th {
    background-color: #212529;
    color: #fff;
    box-shadow: 0 1px 0 #343a40;
}

/* Sticky Sub-Header (e.g. Opening Balance) */
.table-scroll tr.sticky-sub-header-row td {
    position: sticky;
    top: 40px;
    /* Adjust based on header height */
    z-index: 1015;
    background-color: #cff4fc;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
}

/* Sticky Footer (e.g. Totals) */
.table-scroll tfoot.sticky-footer-row td,
.table-scroll tr.sticky-footer-row td {
    position: sticky;
    bottom: 0;
    z-index: 1020;
    background-color: #f8f9fa;
    /* Light gray for footer */
    box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.1);
}

/* Helpers */
.font-monospace {
    font-family: var(--bs-font-monospace) !important;
}

#searchResults {
    z-index: 10001 !important;
    /* Higher than everything else */
    border-radius: 1rem !important;
    padding: 0 !important;
    overflow: visible !important;
    box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.1) !important;
    margin-top: 1rem !important;
}

/* Global z-index Standardizations */
.select2-container--open {
    z-index: 10100 !important;
}

.air-datepicker-global-container,
.air-datepicker {
    z-index: 10110 !important;
}

.swal2-container {
    z-index: 1000000 !important;
}

.noty_layout {
    z-index: 1000001 !important;
}

.result-item {
    transition: all 0.2s ease !important;
    cursor: pointer !important;
    background: #fff !important;
    border-bottom: 1px solid #f1f5f9 !important;
}



/* =========================
   Premium Modern UI Utilities
   ========================= */

/* Gradient Text/Background Utilities */
.bg-gradient-primary {
    background: var(--primary-gradient);
    color: #fff;
}

/* Animated Background Gradient */
.bg-gradient-premium {
    background: linear-gradient(-45deg, #f3f4f6, #e5e7eb, #dbeafe, #eff6ff);
    background-size: 400% 400%;
    animation: gradientBG 15s ease infinite;
    min-height: 100vh;
}

@keyframes gradientBG {
    0% {
        background-position: 0% 50%;
    }

    50% {
        background-position: 100% 50%;
    }

    100% {
        background-position: 0% 50%;
    }
}

/* Glassmorphism Card */
.card-glass {
    background: rgba(255, 255, 255, 0.95);
    /* Increased opacity for readability */
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    border: 1px solid rgba(255, 255, 255, 0.8);
    box-shadow: 0 15px 35px -5px rgba(0, 0, 0, 0.1);
}

.shadow-premium {
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.15);
    /* Stronger shadow for depth */
}

/* Modern Typography */
.font-premium {
    font-family: 'Inter', system-ui, -apple-system, sans-serif;
    color: #374151;
    /* Darker base color */
}

/* Modern Rating System */
.rating-modern {
    display: flex;
    flex-direction: row-reverse;
    justify-content: center;
    gap: 0.5rem;
}

.rating-modern input {
    display: none;
}

.rating-modern label {
    cursor: pointer;
    font-size: 2.5rem;
    /* Larger stars */
    color: #cbd5e1;
    /* Slate-300 - Darker than before for visibility */
    transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
    text-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
}

.rating-modern label:hover,
.rating-modern label:hover~label,
.rating-modern input:checked~label {
    color: #f59e0b;
    /* Amber-500 - Richer orange/gold */
    transform: scale(1.15);
    text-shadow: 0 0 15px rgba(245, 158, 11, 0.4);
}

/* Chat Bubble Enhancements */
.chat-bubble-modern {
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.chat-bubble-modern:hover {
    transform: translateY(-1px);
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05);
}

.message-enter {
    animation: slideInUp 0.3s ease-out forwards;
}

@keyframes slideInUp {
    from {
        opacity: 0;
        transform: translateY(10px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Global Nav Pills Style */
.nav-pills .nav-link {
    color: #0a0a0a;
}

/* Custom Secondary Button */
.btn-secondary-color {
    background-color: var(--secondary-color) !important;
    border-color: var(--secondary-color) !important;
    color: #ffffff !important;
}

.btn-secondary-color:hover {


    color: var(--primary-color) !important;
    border-color: var(--secondary-color) !important;
}

/* =========================
   Global Scrollbar
   ========================= */
::-webkit-scrollbar {
    width: 8px;
    height: 8px;
}

::-webkit-scrollbar-track {
    background: transparent;
}

::-webkit-scrollbar-thumb {
    background: #cbd5e1;
    border-radius: 3px;
}

::-webkit-scrollbar-thumb:hover {
    background: #94a3b8;
}

/* Global Fix for Dropdowns in Dark Card Headers */
.card-header .dropdown-menu .dropdown-item {
    color: #212529 !important;
    /* Force dark text */
}

.card-header .dropdown-menu .dropdown-item:hover,
.card-header .dropdown-menu .dropdown-item:focus,
.card-header .dropdown-menu .dropdown-item:active {
    color: #fff !important;
    /* Force white text on hover */
    background-color: #0d6efd !important;
    /* Blue background */
}

/* Ensure Icons retain color but turn white on hover */
.card-header .dropdown-menu .dropdown-item i.icon-bubbles4 {
    color: #198754 !important;
    /* Success Green */
}

.card-header .dropdown-menu .dropdown-item i.icon-mail5 {
    color: #0d6efd !important;
    /* Primary Blue */
}

.card-header .dropdown-menu .dropdown-item:hover i,
.card-header .dropdown-menu .dropdown-item:focus i,
.card-header .dropdown-menu .dropdown-item:active i {
    color: #fff !important;
    /* Icons white on hover */
}

.card-header .dropdown-menu .dropdown-header {
    color: #6c757d !important;
    /* Muted header text */
}

/* Name Truncation Utility */
.name-truncate {
    max-width: 180px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    display: inline-block;
    vertical-align: bottom;
}

/* Summernote Lite Modal UI Fixes */
.note-modal {
    z-index: 10200 !important;
    /* Ensure it is above the global modal (10001) and backdrop (10000) */
}

.note-modal-backdrop {
    z-index: 10199 !important;
}

.note-modal .modal-header {
    background-color: #f8f9fb;
    border-bottom: 1px solid #ebeef2;
    padding: 1rem 1.25rem;
    display: flex;
    align-items: center;
}

.note-modal .modal-title {
    font-size: 0.875rem;
    font-weight: 600;
    text-transform: uppercase;
    color: #444;
    letter-spacing: 0.5px;
}

.note-modal .modal-body {
    padding: 1.25rem;
}

.note-modal label {
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    color: #6c757d;
    margin-bottom: 0.5rem;
}

.note-modal .form-control {
    border-radius: 8px;
    border-color: #dee2e6;
    padding: 0.6rem 0.875rem;
    font-size: 0.9rem;
}

.note-modal .form-control:focus {
    border-color: #2196f3;
    box-shadow: 0 0 0 0.2rem rgba(33, 150, 243, 0.15);
}

.note-modal .checkbox label {
    text-transform: none;
    font-weight: 500;
    font-size: 0.85rem;
    color: #333;
}

.note-modal .modal-footer {
    border-top: 1px solid #ebeef2;
    padding: 1rem 1.25rem;
}

.note-modal .btn-primary {
    background-color: #5c6bc0;
    border-color: #5c6bc0;
    border-radius: 10px;
    padding: 0.5rem 1.5rem;
    font-weight: 600;
    text-transform: uppercase;
    font-size: 0.75rem;
    letter-spacing: 0.5px;
    box-shadow: 0 4px 6px rgba(92, 107, 192, 0.2);
}

.note-modal .btn-primary:active,
.note-modal .btn-primary:focus,
.note-modal .btn-primary:hover {
    background-color: #3f51b5 !important;
    border-color: #3f51b5 !important;
}

.note-modal .close {
    opacity: 0.5;
    background: none;
    border: none;
    font-size: 1.5rem;
    line-height: 1;
    color: #000;
}

/* --- Global Compact Table & Typography Styles --- */
.fs-7 {
    font-size: 1.0rem !important;
}

.table-compact {
    font-size: 0.8rem !important;
}

.table-compact thead th {
    font-size: 0.72rem !important;
    font-weight: 600;
    letter-spacing: 0.01em;
    padding: 0.4rem 0.5rem !important;
    background-color: #f8f9fa;
}

.table-compact tbody td {
    padding: 0.25rem 0.5rem !important;
    vertical-align: middle;
}

.table-compact tfoot td {
    padding: 0.4rem 0.5rem !important;
    font-size: 0.8rem;
}/* Global Search Dropdown Styling */
#global_search_results {
    max-height: 80vh;
    overflow-y: auto;
    margin-top: 10px;
}

.search-result-item a {
    border-radius: 6px !important;
    margin: 2px 8px !important;
    transition: all 0.2s ease !important;
}

.search-result-item a:hover {
    background-color: rgba(33, 150, 243, 0.08) !important;
}

.search-category-header {
    background: rgba(248, 249, 250, 0.8) !important;
    padding: 8px 16px !important;
    margin: 4px 0 !important;
    font-weight: 800 !important;
    color: #1976D2 !important;
    border-left: 3px solid #1976D2 !important;
    letter-spacing: 0.5px !important;
}

/* =========================
   GST / Tax Report Page
   ========================= */

/* Filter Card */
.gst-filter-card {
    border: none;
    box-shadow: 0 2px 12px rgba(0,0,0,0.07);
    border-radius: 16px;
    background: #f8f9fc;
}

.gst-filter-label {
    font-size: 0.72rem; font-weight: 800; color: #6b7280;
    text-transform: uppercase; letter-spacing: 0.6px;
    margin-bottom: 0.4rem; display: block;
}

/* Date input group — gray tinted background */
.gst-input-addon {
    background: #f1f3f9;
    border-right: none;
    border-color: #e2e5ef;
    color: #7c3aed;
    font-size: 1rem;
}
.gst-date-input {
    background: #f1f3f9;
    border-left: none;
    border-color: #e2e5ef;
    color: #374151;
    font-weight: 500;
}
.gst-date-input:focus {
    background: #fff;
    border-color: #7c3aed;
    box-shadow: 0 0 0 0.2rem rgba(124,58,237,0.12);
}
.gst-date-input:focus + .gst-input-addon,
.input-group:focus-within .gst-input-addon {
    background: #fff;
    border-color: #7c3aed;
}

/* Billing Company select */
.gst-filter-card .form-select {
    background-color: #fff;
    border-color: #e2e5ef;
    color: #374151;
    font-weight: 500;
    border-radius: 8px;
    padding: 0.5rem 2.25rem 0.5rem 0.85rem;
    box-shadow: none;
    transition: border-color 0.15s;
}
.gst-filter-card .form-select:focus {
    border-color: #7c3aed;
    box-shadow: 0 0 0 0.2rem rgba(124,58,237,0.12);
}

/* Input group border radius fix */
.gst-filter-card .input-group .gst-input-addon  { border-radius: 8px 0 0 8px; }
.gst-filter-card .input-group .gst-date-input   { border-radius: 0 8px 8px 0; }

/* Generate button — pill shape */
.gst-btn-generate {
    background: linear-gradient(135deg, #4f46e5 0%, #7c3aed 100%);
    border: none; color: #fff; font-weight: 800;
    font-size: 0.82rem; letter-spacing: 0.7px;
    padding: 0.58rem 1.6rem; border-radius: 50px;
    transition: box-shadow 0.2s, transform 0.15s;
    box-shadow: 0 4px 14px rgba(79,70,229,0.4);
    white-space: nowrap;
}
.gst-btn-generate:hover {
    color: #fff;
    box-shadow: 0 6px 20px rgba(79,70,229,0.5);
    transform: translateY(-1px);
}
.gst-btn-generate:active { transform: translateY(0); }

/* Summary Tiles */
.gst-summary-tile {
    background: #fff; border-radius: 12px;
    box-shadow: 0 1px 4px rgba(0,0,0,0.07);
    padding: 1.1rem 1.25rem;
    display: flex; align-items: center; gap: 1rem; height: 100%;
}

.gst-tile-icon {
    width: 56px; height: 56px; border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    font-size: 1.4rem; flex-shrink: 0;
}
.gst-icon-green  { background: #dcfce7; color: #16a34a; }
.gst-icon-blue   { background: #dbeafe; color: #1d4ed8; }
.gst-icon-orange { background: #ffedd5; color: #ea580c; }
.gst-icon-purple { background: #ede9fe; color: #7c3aed; }

.gst-tile-body { flex: 1; min-width: 0; }
.gst-tile-label {
    font-size: 0.67rem; font-weight: 700; color: #9ca3af;
    text-transform: uppercase; letter-spacing: 0.4px;
    line-height: 1.3; margin-bottom: 0.2rem;
}
.gst-tile-value { font-size: 1.2rem; font-weight: 700; line-height: 1.2; margin-bottom: 0.15rem; }
.gst-tile-sub   { font-size: 0.72rem; color: #9ca3af; }

/* Color utilities */
.gst-val-green  { color: #16a34a; }
.gst-val-blue   { color: #1d4ed8; }
.gst-val-red    { color: #dc2626; }
.gst-val-orange { color: #ea580c; }

/* Tab Banner */
.gst-tab-banner {
    background: linear-gradient(135deg, #1e1b4b 0%, #312e81 60%, #3730a3 100%);
    border-radius: 12px 12px 0 0;
    padding: 1rem 1.5rem;
    display: flex; align-items: center; justify-content: space-between;
    overflow: hidden;
}
.gst-tab-list { display: flex; gap: 0.5rem; flex-wrap: wrap; list-style: none; margin: 0; padding: 0; }

.gst-tab-btn {
    background: rgba(255,255,255,0.12);
    border: 1.5px solid rgba(255,255,255,0.25);
    color: rgba(255,255,255,0.82);
    border-radius: 8px; padding: 0.45rem 1rem;
    font-size: 0.85rem; font-weight: 600;
    display: inline-flex; align-items: center; gap: 0.35rem;
    text-decoration: none; transition: all 0.2s; white-space: nowrap;
}
.gst-tab-btn:hover { background: rgba(255,255,255,0.22); color: #fff; text-decoration: none; }
.gst-tab-btn.active {
    background: rgba(255,255,255,0.95); color: #1e1b4b;
    border-color: transparent; box-shadow: 0 2px 8px rgba(0,0,0,0.2);
}

.gst-due-badge {
    background: #ef4444; color: #fff; font-size: 0.65rem;
    font-weight: 700; padding: 0.12rem 0.45rem; border-radius: 20px;
}
.gst-count-badge {
    background: #ef4444; color: #fff; font-size: 0.68rem; font-weight: 700;
    min-width: 20px; height: 20px; border-radius: 20px;
    display: inline-flex; align-items: center; justify-content: center; padding: 0 5px;
}
.gst-count-badge.gst-count-green { background: #16a34a; }
.gst-tab-deco { flex-shrink: 0; pointer-events: none; }

/* Tab Content Card */
.gst-tab-content-card {
    border-radius: 0 0 12px 12px !important;
    border: 1px solid #e5e7eb !important;
    border-top: none !important;
}

/* GST Calculation Row */
.gst-calc-row {
    background: #f8fafc; border: 1px solid #e5e7eb;
    border-radius: 10px; padding: 1rem 1.5rem;
    display: flex; align-items: center; gap: 0.5rem; flex-wrap: wrap;
}
.gst-calc-item { display: flex; align-items: center; gap: 0.65rem; flex: 1; min-width: 130px; }
.gst-calc-icon {
    width: 42px; height: 42px; border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    font-size: 1.1rem; flex-shrink: 0;
}
.gst-calc-icon-green  { background: #dcfce7; color: #16a34a; }
.gst-calc-icon-blue   { background: #dbeafe; color: #1d4ed8; }
.gst-calc-icon-purple { background: #ede9fe; color: #7c3aed; }
.gst-calc-icon-orange { background: #ffedd5; color: #ea580c; }

.gst-calc-label   { font-size: 0.7rem; color: #9ca3af; font-weight: 600; text-transform: uppercase; letter-spacing: 0.3px; white-space: nowrap; }
.gst-calc-amount  { font-size: 1rem; font-weight: 700; line-height: 1.2; }
.gst-calc-taxable { font-size: 0.7rem; color: #9ca3af; }
.gst-calc-op      { font-size: 1.4rem; font-weight: 700; color: #9ca3af; flex-shrink: 0; padding: 0 0.15rem; align-self: center; }

/* Section Title */
.gst-section-title {
    font-size: 0.74rem; font-weight: 700; color: #6b7280;
    text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 0.75rem;
}

/* Input Credit Cards */
.gst-input-card { background: #fff; border: 1px solid #e5e7eb; border-radius: 10px; overflow: hidden; height: 100%; }

.gst-input-card-header {
    font-size: 0.75rem; font-weight: 700; letter-spacing: 0.5px;
    text-transform: uppercase; padding: 0.55rem 1rem;
}
.gst-input-header-blue  { color: #1d4ed8; background: #eff6ff; border-bottom: 1.5px solid #bfdbfe; }
.gst-input-header-green { color: #166534; background: #f0fdf4; border-bottom: 1.5px solid #bbf7d0; }

.gst-input-card-body { padding: 0.75rem 1rem; display: flex; align-items: center; gap: 1rem; }
.gst-input-table-wrap { flex: 1; }
.gst-input-table-wrap .table td { padding: 0.35rem 0.25rem; border: none; font-size: 0.875rem; vertical-align: middle; }
.gst-input-table-wrap .table tr:last-child td { border-top: 1px solid #f3f4f6; padding-top: 0.5rem; }
.gst-donut-wrap { flex-shrink: 0; display: flex; align-items: center; justify-content: center; }

/* CSS Donut Chart */
.gst-donut {
    width: 120px; height: 120px; border-radius: 50%;
    position: relative; display: flex; align-items: center; justify-content: center;
}
.gst-donut-blue  { background: conic-gradient(#2563eb 0deg var(--donut-deg, 270deg), #bfdbfe var(--donut-deg, 270deg) 360deg); }
.gst-donut-green { background: conic-gradient(#16a34a 0deg var(--donut-deg, 270deg), #bbf7d0 var(--donut-deg, 270deg) 360deg); }
.gst-donut-hole  { position: absolute; inset: 18px; border-radius: 50%; background: #fff; display: flex; align-items: center; justify-content: center; }
.gst-donut-text  { text-align: center; padding: 0 4px; }
.gst-donut-amount {
    font-size: 0.6rem; font-weight: 700; line-height: 1.25;
    white-space: nowrap; display: block;
    overflow: hidden; text-overflow: ellipsis; max-width: 74px;
}
.gst-donut-label  { font-size: 0.55rem; color: #9ca3af; font-weight: 600; text-transform: uppercase; letter-spacing: 0.3px; display: block; }

/* Bottom Info Bar */
.gst-bottom-bar {
    display: flex; align-items: center; justify-content: space-between;
    gap: 1rem; padding: 0.75rem 1rem;
    background: #eff6ff; border: 1px solid #bfdbfe;
    border-radius: 8px; flex-wrap: wrap; margin-top: 1rem;
}
.gst-info-note { font-size: 0.82rem; color: #1d4ed8; flex: 1; }

.gst-btn-download {
    background: linear-gradient(135deg, #4f46e5 0%, #7c3aed 100%);
    border: none; color: #fff; font-weight: 700;
    font-size: 0.82rem; letter-spacing: 0.5px;
    padding: 0.5rem 1.25rem; border-radius: 8px;
    white-space: nowrap; transition: opacity 0.2s;
    box-shadow: 0 4px 12px rgba(79,70,229,0.3);
}
.gst-btn-download:hover { opacity: 0.9; color: #fff; }

/* =========================
   GST Report — Print Styles
   ========================= */
@media print {
    @page { size: A4; margin: 12mm 10mm; }

    /* ── Hide chrome / sidebar / nav ── */
    .sidebar,
    .navbar-fixed-top,
    .fixed-top,
    .breadcrumb-line,
    .page-footer,
    .gst-tab-deco,
    .gst-btn-generate,
    .gst-btn-download,
    .dataTables_filter,
    .dataTables_length,
    .dataTables_paginate,
    .dataTables_info,
    #gstDrillModal,
    .modal-backdrop { display: none !important; }

    /* ── Reset layout wrapper so content fills the page ── */
    html, body { height: auto !important; overflow: visible !important; background: #fff !important; }
    .content-wrapper {
        margin-left: 0 !important;
        padding-top: 0 !important;
        height: auto !important;
        overflow: visible !important;
        display: block !important;
    }
    .content-inner, .content { padding: 0 !important; overflow: visible !important; }

    /* ── Filter bar: simplified in print ── */
    .gst-filter-card {
        background: #fff !important; box-shadow: none !important;
        border: 1px solid #e5e7eb !important; border-radius: 8px !important;
        margin-bottom: 0.5rem !important;
    }
    .gst-btn-generate, .gst-filter-card .col-md-3:last-child { display: none !important; }
    .gst-input-addon, .gst-date-input, .gst-filter-card .form-select {
        background: #f8f9fa !important; border-color: #dee2e6 !important;
    }

    /* ── Force Bootstrap grid columns to hold their widths ── */
    .row { display: flex !important; flex-wrap: wrap !important; }
    .col-md-3 { flex: 0 0 25% !important; max-width: 25% !important; width: 25% !important; }
    .col-md-4 { flex: 0 0 33.333% !important; max-width: 33.333% !important; }
    .col-md-6 { flex: 0 0 50% !important; max-width: 50% !important; width: 50% !important; }
    .col-md-12 { flex: 0 0 100% !important; max-width: 100% !important; }

    /* ── Only show active tab panel ── */
    .tab-pane { display: none !important; }
    .tab-pane.show.active { display: block !important; }

    /* ── Preserve background colors / gradients ── */
    * { -webkit-print-color-adjust: exact !important; print-color-adjust: exact !important; }

    /* ── Summary tiles ── */
    .gst-summary-tile {
        display: flex !important;
        box-shadow: none !important;
        border: 1px solid #e5e7eb !important;
        break-inside: avoid;
        padding: 0.7rem !important;
    }
    .gst-tile-value { font-size: 1rem !important; }

    /* ── Tab banner ── */
    .gst-tab-banner {
        display: flex !important;
        border-radius: 8px 8px 0 0 !important;
        padding: 0.6rem 1rem !important;
    }
    .gst-tab-list { gap: 0.35rem !important; }
    .gst-tab-btn { font-size: 0.75rem !important; padding: 0.3rem 0.7rem !important; }

    /* ── Calculation row ── */
    .gst-calc-row {
        display: flex !important;
        flex-wrap: nowrap !important;
        break-inside: avoid;
        padding: 0.6rem 0.75rem !important;
        gap: 0.35rem !important;
    }
    .gst-calc-item { min-width: 0 !important; gap: 0.4rem !important; }
    .gst-calc-amount { font-size: 0.85rem !important; }
    .gst-calc-icon { width: 34px !important; height: 34px !important; font-size: 0.9rem !important; }

    /* ── Input credit cards ── */
    .gst-input-card { break-inside: avoid; }
    .gst-input-card-body { display: flex !important; }

    /* ── Donut chart ── */
    .gst-donut { width: 100px !important; height: 100px !important; }
    .gst-donut-hole { inset: 14px !important; }
    .gst-donut-amount { font-size: 0.6rem !important; }

    /* ── Bottom info bar ── */
    .gst-bottom-bar {
        display: flex !important;
        break-inside: avoid;
        margin-top: 0.5rem !important;
    }
    .gst-btn-download { display: none !important; }

    /* ── Tables ── */
    .table-responsive { overflow: visible !important; }
    table { width: 100% !important; page-break-inside: auto; font-size: 0.78rem !important; }
    thead { display: table-header-group; }
    tr { page-break-inside: avoid; }

    /* ── Shadows off ── */
    .card, .gst-filter-card, .gst-tab-content-card {
        box-shadow: none !important;
        border: 1px solid #e5e7eb !important;
    }
}

/* ── PREMIUM THEME OVERRIDES ── */
:root {
    --primary-indigo: #4f46e5;
    --secondary-indigo: #6366f1;
    --dark-indigo: #2e3192;
    --soft-bg: #f8fafc;
    --card-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
    --input-height: 42px;
    --border-radius: 12px;
}

.bg-dark-indigo { background: var(--dark-indigo) !important; }
.text-indigo-700 { color: #4338ca !important; }
.bg-indigo-50 { background: #eef2ff !important; }

.premium-card {
    border: none !important;
    border-radius: 16px !important;
    box-shadow: var(--card-shadow) !important;
    background: #fff !important;
    margin-bottom: 2rem !important;
}

.premium-card .card-header {
    background: #fff !important;
    border-bottom: 1px solid #f1f5f9 !important;
}

.header-card {
    background: linear-gradient(135deg, #2e3192 0%, #4f46e5 100%) !important;
    border-radius: 16px !important;
    position: relative;
    overflow: hidden;
    color: #fff !important;
}

.header-card::after {
    content: '';
    position: absolute;
    top: -50%;
    right: -10%;
    width: 300px;
    height: 300px;
    background: rgba(255, 255, 255, 0.05);
    border-radius: 50%;
    pointer-events: none;
}

.header-subtitle {
    color: rgba(255, 255, 255, 0.85) !important;
    font-size: 0.95rem;
}

.header-icon-box {
    background: rgba(255, 255, 255, 0.2) !important;
    width: 60px;
    height: 60px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 14px;
    color: #fff !important;
    font-size: 2rem;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}

.stat-card {
    border-radius: 16px;
    padding: 1.25rem;
    transition: transform 0.2s;
    border: 1px solid rgba(0,0,0,0.05) !important;
    background: #fff !important;
}

.stat-card:hover {
    transform: translateY(-5px);
}

.stat-icon {
    width: 48px;
    height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 12px;
}

.stat-value {
    font-size: 1.5rem !important;
    font-weight: 800 !important;
    color: #1e293b !important;
}

.stat-label {
    font-size: 0.85rem !important;
    font-weight: 600 !important;
    color: #64748b !important;
}

.filter-card-header {
    cursor: pointer;
    user-select: none;
}

.input-icon-wrapper {
    position: relative;
    display: flex;
    align-items: center;
}

.input-icon-wrapper i {
    position: absolute;
    left: 14px;
    color: #6366f1 !important;
    font-size: 1.1rem;
    z-index: 5;
    top: 50%;
    transform: translateY(-50%);
    pointer-events: none;
    display: flex;
    align-items: center;
    justify-content: center;
}

.input-icon-wrapper .form-control, 
.input-icon-wrapper .form-select {
    padding-left: 42px !important;
    height: var(--input-height) !important;
    border-radius: 12px !important;
    border: 1px solid #e2e8f0 !important;
    font-size: 0.95rem !important;
    background-color: #fff !important;
}

/* Fix for Select2 inside input-icon-wrapper */
.input-icon-wrapper .select2-container--default .select2-selection--single {
    padding-left: 36px !important;
    height: var(--input-height) !important;
    border-radius: 12px !important;
    border: 1px solid #e2e8f0 !important;
    display: flex;
    align-items: center;
}

.input-icon-wrapper .select2-container--default .select2-selection--single .select2-selection__rendered {
    padding-left: 6px !important;
}

.btn-pill {
    border-radius: 50px !important;
    padding: 0.5rem 1.5rem !important;
    font-weight: 600 !important;
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
}

.btn-indigo {
    background: var(--primary-indigo) !important;
    color: #fff !important;
}

.btn-indigo:hover {
    background: var(--secondary-indigo) !important;
    color: #fff !important;
}

.table thead th {
    background: #f8fafc !important;
    color: #64748b !important;
    font-weight: 700 !important;
    text-transform: uppercase;
    font-size: 0.75rem !important;
    letter-spacing: 0.05em;
    border: none !important;
    padding: 1rem !important;
}

.table tbody td {
    padding: 1rem !important;
    vertical-align: middle !important;
    border-bottom: 1px solid #f1f5f9 !important;
}