@import url('/static/css/tokens.css');

        /* ==========================================================================
           STUNNING GLASSMORPHISM CLIENT METRIC CARDS
           ========================================================================== */
        .stat-badge {
            display: inline-flex !important;
            align-items: center !important;
            justify-content: center !important;
            gap: 6px !important;
            padding: 6px 14px !important;
            font-size: 11px !important;
            font-weight: 700 !important;
            border-radius: var(--radius-sm) !important;
            height: 34px !important;
            box-sizing: border-box !important;
            background: var(--bg-card) !important;
            border: 1px solid var(--border) !important;
            color: var(--text-primary) !important;
            box-shadow: var(--shadow-sm) !important;
            transition: all 0.2s ease !important;
            text-transform: uppercase !important;
            letter-spacing: 0.5px !important;
        }

        .stat-badge:hover {
            transform: translateY(-1px) !important;
            box-shadow: 0 6px 12px rgba(0, 0, 0, 0.3) !important;
            border-color: var(--border-subtle) !important;
        }

        .stat-badge i {
            font-size: 11px !important;
        }

        .stat-badge strong {
            font-family: var(--font-main) !important;
            font-weight: 900 !important;
            font-size: 12px !important;
            margin-left: 2px !important;
        }

        .stat-badge.total {
            border-color: var(--border) !important;
        }
        .stat-badge.total i {
            color: var(--text-muted) !important;
        }

        .stat-badge.online {
            border-color: var(--success-subtle) !important;
        }
        .stat-badge.online:hover {
            border-color: var(--success) !important;
        }
        .stat-badge.online i {
            color: var(--success) !important;
        }
        [data-theme="light"] .stat-badge.online i {
            color: var(--success-text) !important;
        }

        .stat-badge.offline {
            border-color: var(--danger-subtle) !important;
        }
        .stat-badge.offline:hover {
            border-color: var(--danger) !important;
        }
        .stat-badge.offline i {
            color: var(--danger) !important;
        }

        .stat-badge.isolir {
            border-color: var(--warning-subtle) !important;
        }
        .stat-badge.isolir:hover {
            border-color: var(--warning) !important;
        }
        .stat-badge.isolir i {
            color: var(--warning-text) !important;
        }

        .text-green { color: var(--success) !important; }
        [data-theme="light"] .text-green { color: var(--success-text) !important; }
        .text-red { color: var(--danger) !important; }
        .text-purple { color: var(--accent) !important; }
        [data-theme="light"] .text-purple { color: var(--accent) !important; }

        /* Premium Badge Glassmorphism Overrides for client status */
        .pill {
            padding: 4px 10px !important;
            font-size: 10px !important;
            font-weight: 800 !important;
            text-transform: uppercase !important;
            letter-spacing: 0.5px !important;
            border: 1px solid transparent !important;
            display: inline-flex !important;
            align-items: center !important;
            justify-content: center !important;
            border-radius: var(--radius-sm) !important;
            white-space: nowrap !important;
        }

        [data-theme="light"] .pill.green {
            background: var(--success-subtle) !important;
            color: var(--success-text) !important;
            border: 1px solid var(--success-subtle) !important;
        }
        [data-theme="dark"] .pill.green {
            background: var(--success-subtle) !important;
            color: var(--success) !important;
            border: 1px solid var(--success-subtle) !important;
        }
        [data-theme="light"] .pill.orange {
            background: var(--warning-subtle) !important;
            color: var(--warning-text) !important;
            border: 1px solid var(--warning-subtle) !important;
        }
        [data-theme="dark"] .pill.orange {
            background: var(--warning-subtle) !important;
            color: var(--warning-text) !important;
            border: 1px solid var(--warning-subtle) !important;
        }
        [data-theme="light"] .pill.red {
            background: var(--danger-subtle) !important;
            color: var(--danger-text) !important;
            border: 1px solid var(--danger-subtle) !important;
        }
        [data-theme="dark"] .pill.red {
            background: var(--danger-subtle) !important;
            color: var(--danger-text) !important;
            border: 1px solid var(--danger-subtle) !important;
        }
        [data-theme="light"] .pill.purple {
            background: var(--info-subtle) !important;
            color: var(--info-text) !important;
            border: 1px solid var(--info-subtle) !important;
        }
        [data-theme="dark"] .pill.purple {
            background: var(--info-subtle) !important;
            color: var(--info-text) !important;
            border: 1px solid var(--info-subtle) !important;
        }

        table {
            width: 100%;
            border-collapse: collapse;
            min-width: 600px !important;
            font-family: var(--font-main) !important;
            font-size: 12px !important;
        }

        th {
            background-color: var(--table-head-bg) !important;
            color: var(--table-head-text, #334155) !important;
            font-weight: 700 !important;
            font-size: 11px !important;
            text-transform: uppercase !important;
            letter-spacing: 0.5px !important;
            padding: 9px 12px !important;
            border-bottom: 1px solid var(--table-border) !important;
            white-space: nowrap;
            font-family: var(--font-main) !important;
        }

        [data-theme="dark"] th {
            color: var(--text-muted) !important;
        }

        td {
            padding: 8px 12px !important;
            border-bottom: 1px solid var(--table-border) !important;
            color: var(--text-primary) !important;
            vertical-align: middle;
            white-space: nowrap;
            font-size: 12px !important;
            font-family: var(--font-main) !important;
        }

        td.col-name {
            font-size: 12px !important;
            font-weight: 700 !important;
        }

        td.col-name b {
            font-weight: 700 !important;
        }

        td.col-id code {
            font-size: 11px !important;
            font-family: var(--font-mono) !important;
            font-weight: 700 !important;
        }

        tbody tr:hover {
            background-color: var(--table-row-hover) !important;
        }

        /* Kolom Aksi Global */
        th[data-lang="th_action"] {
            width: 240px !important;
            min-width: 240px !important;
        }

        .td-actions {
            display: flex !important;
            gap: 5px !important;
            flex-wrap: nowrap !important;
            justify-content: flex-start !important;
            align-items: center !important;
        }

        /* Default action buttons inside td-actions: compact 28px square icon buttons */
        .td-actions .btn-xs {
            width: 28px !important;
            min-width: 28px !important;
            height: 28px !important;
            padding: 0 !important;
            display: inline-flex !important;
            align-items: center !important;
            justify-content: center !important;
            border-radius: var(--radius-sm, 6px) !important;
            font-size: 12px !important;
            cursor: pointer !important;
            box-sizing: border-box !important;
            flex-shrink: 0 !important;
            transition: all 0.15s ease !important;
        }

        /* Text-based buttons inside td-actions: flex-width pill buttons */
        .td-actions .btn-xs.btn-text,
        .td-actions .btn-done,
        .td-actions .btn-pay {
            width: auto !important;
            min-width: max-content !important;
            height: 28px !important;
            padding: 0 10px !important;
            font-size: 11px !important;
            font-weight: 700 !important;
            letter-spacing: 0.3px !important;
            white-space: nowrap !important;
            gap: 4px !important;
        }

        .td-actions .btn-pay {
            background: var(--success-text) !important;
            border: 1px solid var(--success-text) !important;
            color: var(--text-inverse) !important;
        }
        .td-actions .btn-pay:hover {
            filter: brightness(0.92) !important;
        }

        .td-actions .btn-done {
            background: var(--bg-card-subtle) !important;
            border: 1px solid var(--border) !important;
            color: var(--text-secondary) !important;
        }
        .td-actions .btn-done:hover {
            background: var(--accent-subtle) !important;
            color: var(--accent) !important;
            border-color: var(--accent) !important;
        }

        /* Responsivitas Layar Kecil */
        @media (max-width: 768px) {

            .main,
            .main-content {
                padding: 15px !important;
            }

            table {
                min-width: auto !important;
                /* Jadikan benar-benar fleksibel */
            }

            th,
            td {
                padding: 8px 6px !important;
                font-size: 11px !important;
                width: auto !important;
            }

            th[data-lang="th_action"] {
                width: 180px !important;
                min-width: 180px !important;
            }

            /* Optimasi Ukuran Tombol Aksi di Mobile */
            .td-actions .btn-xs {
                width: 24px !important;
                min-width: 24px !important;
                height: 24px !important;
                font-size: 10px !important;
            }

            .td-actions .btn-xs.btn-text,
            .td-actions .btn-done,
            .td-actions .btn-pay {
                height: 24px !important;
                padding: 0 6px !important;
                font-size: 9px !important;
            }

            .td-actions {
                gap: 3px !important;
            }

            .pill {
                padding: 2px 6px !important;
                font-size: 9px !important;
            }

            .desktop-only {
                display: none !important;
            }

            .mobile-only {
                display: block !important;
            }

            /* METRIC BADGES RESPONSIVE MOBILE */
            .stat-badge-container {
                gap: 6px !important;
                margin-bottom: 10px !important;
            }

            .stat-badge {
                padding: 4px 8px !important;
                height: 28px !important;
                font-size: 10px !important;
                gap: 4px !important;
            }

            .stat-badge strong {
                font-size: 11px !important;
            }

            #screenOptionsToggle {
                width: auto !important;
                max-width: max-content !important;
                flex: 0 0 auto !important;
                margin: 0 !important;
                display: inline-flex !important;
                align-items: center !important;
                height: 28px !important;
                padding: 4px 10px !important;
                font-size: 11px !important;
            }

            .screen-options-drawer {
                padding: 12px 14px !important;
                margin-bottom: 14px !important;
                border-radius: var(--radius-md) !important;
            }

            .checkbox-group {
                gap: 6px 8px !important;
            }

            .checkbox-label-compact {
                padding: 4px 8px !important;
                font-size: 11px !important;
            }
        }

        @media (min-width: 769px) {
            .mobile-only {
                display: none !important;
            }

            .desktop-only {
                display: table-cell !important;
            }
        }

        /* --- PREMIUM TOAST NOTIFICATION --- */
        #toast-container {
            position: fixed;
            top: 20px;
            right: 20px;
            z-index: 10000;
            display: flex;
            flex-direction: column;
            gap: 10px;
            pointer-events: none;
        }

        .toast-msg {
            min-width: 250px;
            background: var(--bg-card) !important;
            color: var(--text-primary) !important;
            padding: 14px 20px;
            border-radius: 10px;
            box-shadow: var(--shadow-lg);
            border: 1px solid var(--border);
            border-left: 5px solid var(--accent);
            display: flex;
            align-items: center;
            gap: 12px;
            pointer-events: auto;
            animation: toast-slide-in 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275) forwards;
            font-size: 14px;
            font-weight: 600;
        }

        .toast-msg i { color: var(--accent); }
        .toast-msg.success { border-left-color: var(--accent); }
        .toast-msg.success i { color: var(--accent); }
        .toast-msg.error { border-left-color: var(--danger); }
        .toast-msg.error i { color: var(--danger); }
        .toast-msg.warning { border-left-color: var(--warning, #f59e0b); }
        .toast-msg.warning i { color: var(--warning, #f59e0b); }

        @keyframes toast-slide-in {
            from {
                transform: translateX(120%);
                opacity: 0;
            }

            to {
                transform: translateX(0);
                opacity: 1;
            }
        }

        .toast-fade-out {
            animation: toast-fade-out 0.4s ease-in forwards !important;
        }

        @keyframes toast-fade-out {
            from {
                transform: translateX(0);
                opacity: 1;
            }

            to {
                transform: translateX(40px);
                opacity: 0;
            }
        }

        /* --- MODAL STYLING --- */
        .modal-box {
            background: var(--bg-card) !important;
            border: 1px solid var(--border) !important;
            border-radius: var(--radius-lg) !important;
            width: 100%;
            padding: 0;
            overflow: hidden;
            display: flex;
            flex-direction: column;
            max-height: 90vh; /* Responsive Max Height */
            box-shadow: var(--shadow-lg) !important;
            animation: modal-pop 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
            color: var(--text-primary) !important;
        }

        @keyframes modal-pop {
            from {
                transform: scale(0.9);
                opacity: 0;
            }

            to {
                transform: scale(1);
                opacity: 1;
            }
        }

        .modal-head {
            padding: 16px 20px;
            border-bottom: 1px solid var(--border) !important;
            display: flex;
            justify-content: space-between;
            align-items: center;
            flex-shrink: 0; /* Keep header fixed */
            background: var(--bg-card) !important;
        }

        .modal-head b {
            font-size: 16px;
            color: var(--text-primary) !important;
            font-weight: 800;
        }

        .modal-close {
            cursor: pointer;
            opacity: 0.7;
            font-weight: bold;
            transition: all 0.2s;
            color: var(--text-secondary) !important;
            width: 30px;
            height: 30px;
            display: flex;
            align-items: center;
            justify-content: center;
            border-radius: 50%;
            border: 1px solid var(--border) !important;
            background: var(--bg-card-subtle) !important;
            font-size: 16px;
            line-height: 1;
            padding: 0;
        }

        .modal-close:hover {
            opacity: 1;
            background: var(--bg-card) !important;
            color: var(--danger) !important;
            border-color: var(--danger) !important;
            transform: scale(1.05);
        }

        .modal-body {
            padding: 20px;
            overflow-y: auto; /* Enable scroll if content is long */
            flex: 1;
            background: var(--bg-card) !important;
            color: var(--text-primary) !important;
        }

        /* Mobile Adjustments for Modal */
        @media (max-width: 480px) {
            .modal {
                padding: 10px;
            }
            .modal-box {
                max-width: 95% !important;
                max-height: 95vh;
            }
            .modal-body {
                padding: 15px;
            }
        }

        .pay-history-item {
            font-size: 12px;
            color: var(--text-secondary);
            margin-top: 4px;
            padding-left: 10px;
            position: relative;
        }

        .pay-history-item::before {
            content: "•";
            position: absolute;
            left: 0;
            color: var(--accent);
            font-weight: bold;
        }

        #print-mode-wrapper {
            display: none;
        }

        /* ==========================================================================
           SCREEN OPTIONS (OPSI LAYAR) DRAWER & TOGGLE
           ========================================================================== */
        #screenOptionsToggle {
            display: inline-flex;
            align-items: center;
            gap: 6px;
            font-size: 11px;
            font-weight: 600;
            padding: 5px 12px;
            border-radius: var(--radius-sm);
            cursor: pointer;
            transition: all 0.2s ease;
        }

        .screen-options-drawer {
            display: none;
            background: var(--bg-card) !important;
            border: 1px solid var(--border) !important;
            border-radius: var(--radius-lg);
            padding: 16px 20px;
            margin-bottom: 20px;
            box-shadow: var(--shadow-md);
            animation: slideDown 0.25s cubic-bezier(0.16, 1, 0.3, 1) forwards;
            color: var(--text-primary);
        }
        @keyframes slideDown {
            from { opacity: 0; transform: translateY(-8px); }
            to { opacity: 1; transform: translateY(0); }
        }
        .screen-options-drawer h4 {
            margin: 0 0 12px 0;
            font-size: 11px;
            font-weight: 700;
            color: var(--text-muted);
            text-transform: uppercase;
            letter-spacing: 0.5px;
        }
        .checkbox-group {
            display: flex;
            flex-wrap: wrap;
            gap: 10px 16px;
        }
        .checkbox-label-compact {
            display: inline-flex;
            align-items: center;
            gap: 8px;
            font-size: 12px;
            color: var(--text-primary);
            cursor: pointer;
            user-select: none;
            padding: 5px 10px;
            border-radius: 6px;
            background: var(--bg-card-subtle);
            border: 1px solid var(--border-subtle);
            transition: all 0.15s ease;
        }
        .checkbox-label-compact:hover:not([style*="not-allowed"]) {
            background: var(--border-subtle);
            border-color: var(--border);
        }
        .checkbox-label-compact input[type="checkbox"] {
            accent-color: var(--accent);
            width: 14px;
            height: 14px;
            cursor: pointer;
            margin: 0;
        }

        #clientTableContainer.hide-col-num .col-num { display: none !important; }
        #clientTableContainer.hide-col-id .col-id { display: none !important; }
        #clientTableContainer.hide-col-paket .col-paket { display: none !important; }
        #clientTableContainer.hide-col-ip .col-ip { display: none !important; }
        #clientTableContainer.hide-col-induk .col-induk { display: none !important; }
        #clientTableContainer.hide-col-wa .col-wa { display: none !important; }
        #clientTableContainer.hide-col-join .col-join { display: none !important; }
        #clientTableContainer.hide-col-aktif .col-aktif { display: none !important; }

        /* Printing Layout for Mobile Fallback printing */
        @media print {
            body {
                background-color: #fff !important;
                background: #fff !important;
                color: #000 !important;
            }
            body > *:not(#print-mode-wrapper) {
                display: none !important;
            }
            #print-mode-wrapper {
                display: block !important;
                width: 100% !important;
                margin: 0 !important;
                padding: 0 !important;
                background: #fff !important;
                color: #000 !important;
            }
            #print-mode-wrapper * {
                color: #000 !important;
            }
        }

        /* ======================================================================
           THEME REPAIR - CLIENT ACTIONS, PAYMENT MODAL & LIGHT MONOCHROME
           Keep semantic status colors, but never allow legacy inline text colors
           to make Light Mode unreadable.
           ====================================================================== */

        /* Action column: keep every action visible instead of letting buttons
           collapse into each other when a row has many actions. */
        #clientTableContainer th[data-lang="th_action"],
        #clientTableContainer td.col-action {
            width: 320px !important;
            min-width: 320px !important;
        }

        /* Calm, high-contrast success shades.  The former neon green was
           especially harsh in Light Monochrome. */
        #clientTableContainer {
            --client-action-success: var(--success-text);
            --client-action-success-hover: var(--success);
            --client-status-success: var(--success-text);
        }

        [data-theme="dark"] #clientTableContainer {
            --client-status-success: var(--success);
        }

        #clientTableContainer .td-actions {
            min-width: max-content !important;
            overflow: visible !important;
        }

        #clientTableContainer .td-actions > .btn-xs {
            flex: 0 0 auto !important;
            line-height: 1 !important;
            font-family: var(--font-main) !important;
        }

        /* LUNAS / tambah pembayaran: readable in Light Monochrome and Dark. */
        #clientTableContainer .td-actions .btn-done {
            background: var(--bg-card-subtle) !important;
            border: 1px solid var(--border) !important;
            color: var(--text-primary) !important;
            text-shadow: none !important;
        }

        #clientTableContainer .td-actions .btn-done:hover {
            background: var(--accent-subtle) !important;
            border-color: var(--accent) !important;
            color: var(--accent) !important;
        }

        /* Payment, activation, isolation and WhatsApp actions retain their
           semantic colors with explicit high-contrast foregrounds. */
        #clientTableContainer .td-actions .btn-accent,
        #clientTableContainer .td-actions button[onclick^="manualAktifkan"] {
            background: var(--client-action-success) !important;
            border-color: var(--client-action-success) !important;
            color: var(--text-inverse, #ffffff) !important;
        }

        #clientTableContainer .td-actions .btn-accent:hover,
        #clientTableContainer .td-actions button[onclick^="manualAktifkan"]:hover {
            background: var(--client-action-success-hover) !important;
            border-color: var(--client-action-success-hover) !important;
        }

        #clientTableContainer .td-actions button[onclick^="manualIsolir"] {
            background: var(--danger-text) !important;
            border-color: var(--danger-text) !important;
            color: var(--text-inverse) !important;
        }

        #clientTableContainer .td-actions button[onclick^="sendWaReminder"] {
            background: var(--client-action-success) !important;
            border-color: var(--client-action-success) !important;
            color: var(--text-inverse, #ffffff) !important;
        }

        #clientTableContainer .td-actions button[onclick^="sendWaReminder"]:hover {
            background: var(--client-action-success-hover) !important;
            border-color: var(--client-action-success-hover) !important;
        }

        #clientTableContainer .td-actions button[onclick^="reprintReceipt"] {
            background: var(--accent) !important;
            border-color: var(--accent) !important;
            color: var(--accent-contrast) !important;
        }

        #clientTableContainer .td-actions button[onclick^="enableBilling"],
        #clientTableContainer .td-actions button[onclick^="disableBilling"] {
            color: var(--text-primary) !important;
        }

        /* An active bypass includes the translated GRATIS label.  It must be
           allowed to grow beyond the icon-only action buttons. */
        #clientTableContainer .td-actions .btn-bypass {
            flex: 0 0 auto !important;
        }

        #clientTableContainer .td-actions .btn-bypass-active {
            width: auto !important;
            min-width: max-content !important;
            padding: 0 9px !important;
            gap: 4px !important;
            white-space: nowrap !important;
            background: var(--accent-subtle) !important;
            border-color: var(--accent) !important;
            color: var(--accent) !important;
        }

        /* Dynamic expiry states deliberately use classes rather than legacy
           inline neon colors, so every theme remains legible. */
        #clientTableContainer .client-expiry {
            font-weight: 600 !important;
        }

        #clientTableContainer .client-expiry-expired {
            color: var(--danger-text) !important;
        }

        #clientTableContainer .client-expiry-today {
            color: var(--warning-text) !important;
        }

        #clientTableContainer .client-expiry-valid {
            color: var(--client-status-success) !important;
        }

        #clientTableContainer .td-actions button[onclick^="deleteClient"] {
            color: var(--danger-text) !important;
            border-color: var(--danger-text) !important;
        }

        /* Payment modal: replace legacy pale cyan/white inline text with
           readable semantic tokens. */
        #paymentModal .modal-box,
        #paymentModal .modal-head,
        #paymentModal .modal-body,
        #importModal .modal-box,
        #importModal .modal-head,
        #importModal .modal-body {
            color: var(--text-primary) !important;
        }

        #paymentModal .form-group label,
        #paymentModal label,
        #importModal .form-group label {
            color: var(--text-secondary) !important;
        }

        #paymentModal input[readonly] {
            opacity: 1 !important;
            color: var(--text-primary) !important;
            background: var(--bg-card-subtle) !important;
        }

        #paymentModal .hint,
        #paymentModal [data-lang="hint_bill_fixed"],
        #paymentModal [data-lang="hint_edit_expiry_no_pay"] {
            color: var(--text-secondary) !important;
        }

        #paymentModal #groupPayFixedDay {
            background: var(--accent-subtle) !important;
            border-color: var(--accent) !important;
        }

        #paymentModal #groupPayFixedDay label,
        #paymentModal #payProfileInput + datalist + .hint {
            color: var(--accent) !important;
        }

        #paymentModal #payFixedDay {
            border-color: var(--accent) !important;
        }

        #paymentModal [data-lang="lbl_arrears_months"] {
            color: var(--danger-text) !important;
        }

        #paymentModal #payArrearsMonths {
            border-color: var(--danger-text) !important;
        }

        #paymentModal [data-lang="hint_pay_duration"] {
            color: var(--text-muted) !important;
        }

        #paymentModal [data-lang="hint_pay_no_change_month"] {
            color: var(--warning-text) !important;
        }

        #paymentModal #payTotalDisplay {
            color: var(--success-text) !important;
        }

        [data-theme="dark"] #paymentModal #payTotalDisplay {
            color: var(--success) !important;
        }

        #paymentModal #payHistorySection {
            border-top-color: var(--border) !important;
        }

        #paymentModal #payHistorySection > div:first-child {
            color: var(--info-text) !important;
        }

        #paymentModal #payArrearsInfo button {
            color: var(--info-text) !important;
        }

        #paymentModal .modal-close,
        #importModal .modal-close {
            color: var(--text-secondary) !important;
            background: var(--bg-card-subtle) !important;
            border-color: var(--border) !important;
            opacity: 1 !important;
        }

        /* ==========================================================================
           BOTTOM GUIDE & STATUS BADGES (Streamlined & Slop-Free)
           ========================================================================== */
        .client-guide-title,
        [data-lang="leg_action"],
        [data-lang="info_isolate_title"] {
            font-size: 11px !important;
            font-weight: 700 !important;
            color: var(--text-primary) !important;
            margin-bottom: 12px;
            text-transform: uppercase;
            letter-spacing: 0.8px;
        }

        .client-guide-card {
            background: var(--bg-card-subtle);
            border: 1px solid var(--border);
            border-radius: 12px;
            padding: 18px;
            display: flex;
            flex-direction: column;
            gap: 12px;
            height: calc(100% - 30px);
            box-shadow: var(--shadow-sm);
        }

        .client-guide-row {
            display: flex;
            align-items: center;
            gap: 12px;
        }

        /* Unified Minimalist Guide Badges */
        .guide-badge {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            width: 105px;
            flex-shrink: 0;
            padding: 4px 8px;
            font-size: 10px;
            font-weight: 700;
            border-radius: var(--radius-sm);
            letter-spacing: 0.5px;
            text-transform: uppercase;
            white-space: nowrap;
            border: 1px solid var(--border);
            background: var(--bg-card);
            color: var(--text-secondary);
        }

        .guide-badge-on {
            color: var(--info-text);
            background: var(--info-subtle);
            border-color: rgba(59, 130, 246, 0.2);
        }

        .guide-badge-off {
            color: var(--warning-text);
            background: var(--warning-subtle);
            border-color: rgba(245, 158, 11, 0.2);
        }

        .guide-badge-free {
            color: var(--info-text);
            background: var(--info-subtle);
            border-color: rgba(59, 130, 246, 0.2);
        }

        .guide-badge-wa {
            color: var(--success-text);
            background: var(--success-subtle);
            border-color: rgba(16, 185, 129, 0.2);
        }

        .guide-badge-isolir {
            color: var(--danger-text);
            background: var(--danger-subtle);
            border-color: rgba(239, 68, 68, 0.2);
        }

        .guide-badge-pay {
            background: var(--accent);
            color: var(--accent-contrast, #ffffff);
            border: 1px solid transparent;
        }

        /* Description & Hint Texts: Crisp, high-contrast */
        .client-guide-hint,
        [data-lang="leg_billing_on_hint"],
        [data-lang="leg_billing_off_hint"],
        [data-lang="leg_free_hint"],
        [data-lang="leg_wa_rem_hint"],
        [data-lang="leg_isolir_hint"],
        [data-lang="leg_pay_hint"],
        [data-lang="info_isolate_desc"] {
            font-size: 11px !important;
            font-weight: 500 !important;
            color: var(--text-secondary) !important;
            line-height: 1.5 !important;
        }

        .terminal-guide-subtitle,
        [data-lang="leg_terminal_hint"] {
            font-size: 11px !important;
            font-style: italic !important;
            color: var(--text-muted) !important;
            margin-bottom: 8px !important;
        }

        /* Dual-Theme Reactive Terminal / Mikrotik Command Box */
        .terminal-cmd-box,
        #cmdBox {
            background: var(--input-bg) !important;
            border: 1px solid var(--border) !important;
            border-radius: var(--radius-md);
            padding: 12px 42px 12px 12px !important;
            font-family: var(--font-mono) !important;
            font-size: 11px !important;
            line-height: 1.6 !important;
            min-height: 64px;
            height: 100%;
            overflow: hidden;
            position: relative;
            word-break: break-all;
            white-space: pre-wrap;
            box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.05);
            color: var(--text-primary) !important;
            transition: border-color var(--transition-fast), background var(--transition-fast);
        }

        [data-theme="light"] .terminal-cmd-box,
        [data-theme="light"] #cmdBox,
        :root:not([data-theme="dark"]) .terminal-cmd-box,
        :root:not([data-theme="dark"]) #cmdBox {
            background: var(--bg-card-subtle) !important;
            border-color: var(--border) !important;
            color: var(--text-primary) !important;
        }

        [data-theme="dark"] .terminal-cmd-box,
        [data-theme="dark"] #cmdBox {
            background: #090d16 !important;
            border-color: #1e293b !important;
            color: #38bdf8 !important;
            box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.5);
        }

        .terminal-cmd-box #mkCommandText,
        #cmdBox #mkCommandText {
            display: block;
            user-select: all;
            color: inherit !important;
        }

        [data-theme="light"] .terminal-cmd-box #mkCommandText,
        [data-theme="light"] #cmdBox #mkCommandText,
        :root:not([data-theme="dark"]) .terminal-cmd-box #mkCommandText,
        :root:not([data-theme="dark"]) #cmdBox #mkCommandText {
            color: var(--text-primary) !important;
            font-weight: 600 !important;
        }

        [data-theme="dark"] .terminal-cmd-box #mkCommandText,
        [data-theme="dark"] #cmdBox #mkCommandText {
            color: #7dd3fc !important;
            font-weight: 500 !important;
        }

        /* Copy Button inside Terminal Box */
        .btn-copy-cmd {
            position: absolute;
            right: 8px;
            top: 8px;
            width: 28px;
            height: 28px;
            border-radius: 6px;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            cursor: pointer;
            transition: all var(--transition-fast);
            background: var(--bg-card);
            border: 1px solid var(--border);
            color: var(--text-secondary);
        }

        [data-theme="dark"] .btn-copy-cmd {
            background: rgba(255, 255, 255, 0.06);
            border-color: rgba(255, 255, 255, 0.12);
            color: var(--text-secondary);
        }

        .btn-copy-cmd:hover {
            background: var(--bg-hover);
            color: var(--accent);
            border-color: var(--accent);
            transform: translateY(-1px);
        }

        .terminal-copy-toast {
            position: absolute;
            top: -25px;
            right: 0;
            background: var(--accent);
            color: var(--accent-contrast, #ffffff);
            padding: 3px 8px;
            border-radius: 4px;
            font-size: 9px;
            font-weight: 700;
            opacity: 0;
            transition: opacity 0.3s ease;
            pointer-events: none;
            z-index: 10;
        }

        /* Bulk Billing Control Buttons */
        .btn-bulk-toggle {
            display: inline-flex;
            align-items: center;
            gap: 6px;
            padding: 6px 14px;
            font-size: 11px;
            font-weight: 700;
            border-radius: var(--radius-sm);
            cursor: pointer;
            transition: all var(--transition-fast);
            background: var(--bg-card-subtle);
            border: 1px solid var(--border);
            color: var(--text-primary);
        }

        .btn-bulk-toggle:hover {
            background: var(--bg-hover);
            border-color: var(--border-subtle);
            color: var(--accent);
        }

        /* Table Client ID Code */
        .client-id-code {
            font-weight: 700;
            font-family: var(--font-mono);
            color: var(--text-primary);
        }

        /* Action Buttons Default (Standard colorful accents) */
        .btn-act-activate {
            background: var(--client-action-success, #15803d) !important;
            color: var(--text-inverse, #ffffff) !important;
            border: none !important;
        }
        .btn-act-isolate {
            background: var(--danger-text, #b91c1c) !important;
            color: var(--text-inverse, #ffffff) !important;
            border: none !important;
        }
        .btn-act-pay {
            background: var(--client-action-success, #059669) !important;
            color: var(--text-inverse, #ffffff) !important;
            border: 1px solid var(--client-action-success, #047857) !important;
        }
        .btn-act-wa {
            background: var(--client-action-success, #16a34a) !important;
            color: var(--text-inverse, #ffffff) !important;
            border: none !important;
        }
        .btn-act-reprint {
            background: var(--bg-card-subtle) !important;
            color: var(--text-primary) !important;
            border: 1px solid var(--border) !important;
        }

        /* ==========================================================================
           SPECIAL MONOCHROME THEME (Linear / Apple Minimalist: Pure Dynamic Tokens)
           Adapts seamlessly to both Light and Dark themes without any hardcoded hexes
           ========================================================================== */
        [data-accent="monochrome"] {
            /* Guide Badges: Clean, elegant neutral tones */
            .guide-badge-on {
                color: var(--text-primary) !important;
                background: var(--bg-card-subtle) !important;
                border-color: var(--border) !important;
            }
            .guide-badge-off {
                color: var(--text-muted) !important;
                background: var(--bg-card-subtle) !important;
                border-color: var(--border) !important;
            }
            .guide-badge-free {
                color: var(--text-secondary) !important;
                background: var(--bg-card-subtle) !important;
                border-color: var(--border) !important;
            }
            .guide-badge-wa {
                color: var(--text-secondary) !important;
                background: var(--bg-card-subtle) !important;
                border-color: var(--border) !important;
            }
            /* Exactly 1 soft alert accent (danger/isolir) */
            .guide-badge-isolir {
                color: var(--danger-text) !important;
                background: var(--danger-subtle) !important;
                border-color: var(--danger-subtle) !important;
            }
            .guide-badge-pay {
                background: var(--accent) !important;
                color: var(--accent-contrast) !important;
                border: 1px solid var(--accent) !important;
            }

            /* Table Action Buttons: Disciplined Monochrome */
            .btn-act-activate {
                background: var(--accent) !important;
                color: var(--accent-contrast) !important;
                border: 1px solid var(--accent) !important;
            }
            .btn-act-isolate {
                background: var(--danger-subtle) !important;
                color: var(--danger-text) !important;
                border: 1px solid var(--danger-subtle) !important;
            }
            .btn-act-pay {
                background: var(--accent) !important;
                color: var(--accent-contrast) !important;
                border: 1px solid var(--accent) !important;
            }
            .btn-act-wa {
                background: var(--bg-card-subtle) !important;
                color: var(--text-primary) !important;
                border: 1px solid var(--border) !important;
            }
            .btn-act-reprint {
                background: var(--bg-card-subtle) !important;
                color: var(--text-secondary) !important;
                border: 1px solid var(--border) !important;
            }
            .btn-done {
                background: var(--bg-card-subtle) !important;
                color: var(--text-secondary) !important;
                border: 1px solid var(--border) !important;
            }
            .btn-bypass-active {
                background: var(--bg-card-subtle) !important;
                color: var(--text-primary) !important;
                border-color: var(--border) !important;
            }

            /* Status Pills in Table: Soft understated tones */
            .pill.green {
                background: var(--bg-card-subtle) !important;
                color: var(--text-primary) !important;
                border-color: var(--border) !important;
            }
            .pill.orange {
                background: var(--bg-card-subtle) !important;
                color: var(--text-muted) !important;
                border-color: var(--border) !important;
            }
            .pill.red {
                background: var(--danger-subtle) !important;
                color: var(--danger-text) !important;
                border-color: var(--danger-subtle) !important;
            }

            /* Expiry Dates in Table: Soft & clean */
            .client-expiry-valid {
                color: var(--text-secondary) !important;
            }
            .client-expiry-today {
                color: var(--text-muted) !important;
                font-weight: 700 !important;
            }
            .client-expiry-expired {
                color: var(--danger-text) !important;
                font-weight: 700 !important;
            }

            /* Terminal Box: Respects theme tokens in monochrome */
            .terminal-cmd-box,
            #cmdBox {
                background: var(--input-bg) !important;
                border-color: var(--border) !important;
                color: var(--text-primary) !important;
            }
            .terminal-cmd-box #mkCommandText,
            #cmdBox #mkCommandText {
                color: var(--text-primary) !important;
            }
            .btn-copy-cmd {
                background: var(--bg-card) !important;
                border-color: var(--border) !important;
                color: var(--text-secondary) !important;
            }
            .btn-copy-cmd:hover {
                background: var(--accent) !important;
                color: var(--accent-contrast) !important;
                border-color: var(--accent) !important;
            }
        }

        @media (max-width: 768px) {
            #clientTableContainer th[data-lang="th_action"],
            #clientTableContainer td.col-action {
                width: 300px !important;
                min-width: 300px !important;
            }
        }
    


        /* ==========================================================================
           PROFESSIONAL SAAS ACTION BUTTONS & TABLE COLUMN STYLING
           ========================================================================== */
        #clientTableContainer th.col-action,
        #clientTableContainer td.col-action,
        th.col-action,
        td.col-action {
            min-width: 290px !important;
            width: auto !important;
            text-align: center !important;
        }

        .td-actions {
            display: flex !important;
            gap: 6px !important;
            flex-wrap: nowrap !important;
            justify-content: flex-start !important;
            align-items: center !important;
            min-width: max-content !important;
        }

        /* Square icon buttons */
        .td-actions .btn-xs {
            width: 28px !important;
            min-width: 28px !important;
            height: 28px !important;
            padding: 0 !important;
            display: inline-flex !important;
            align-items: center !important;
            justify-content: center !important;
            border-radius: var(--radius-sm, 6px) !important;
            font-size: 12px !important;
            cursor: pointer !important;
            box-sizing: border-box !important;
            flex-shrink: 0 !important;
            transition: all 0.15s cubic-bezier(0.4, 0, 0.2, 1) !important;
        }

        .td-actions .btn-xs:hover {
            filter: brightness(1.1) !important;
            transform: translateY(-1px) !important;
        }

        /* Pill text-based buttons (LUNAS, BAYAR, AKTIFKAN, ISOLIR, GRATIS) */
        .td-actions .btn-xs.btn-text,
        .td-actions .btn-done,
        .td-actions .btn-pay,
        .td-actions .btn-act-pay,
        .td-actions .btn-act-activate,
        .td-actions .btn-act-isolate,
        .td-actions .btn-bypass-active {
            width: auto !important;
            min-width: max-content !important;
            height: 28px !important;
            padding: 0 10px !important;
            font-size: 11px !important;
            font-weight: 700 !important;
            letter-spacing: 0.3px !important;
            white-space: nowrap !important;
            gap: 5px !important;
            display: inline-flex !important;
            align-items: center !important;
            justify-content: center !important;
            border-radius: var(--radius-sm, 6px) !important;
        }

        /* BAYAR Button */
        .td-actions .btn-pay,
        .td-actions .btn-act-pay {
            background: #10b981 !important;
            border: 1px solid #059669 !important;
            color: #ffffff !important;
            box-shadow: 0 2px 6px rgba(16, 185, 129, 0.25) !important;
        }
        .td-actions .btn-pay:hover,
        .td-actions .btn-act-pay:hover {
            background: #059669 !important;
            filter: brightness(1.1) !important;
            box-shadow: 0 3px 8px rgba(16, 185, 129, 0.35) !important;
        }

        /* LUNAS Button */
        .td-actions .btn-done {
            background: var(--bg-card-subtle) !important;
            border: 1px solid var(--border) !important;
            color: var(--text-primary) !important;
        }
        .td-actions .btn-done:hover {
            background: var(--accent-subtle) !important;
            color: var(--accent) !important;
            border-color: var(--accent) !important;
        }

        /* AKTIFKAN Button */
        .td-actions .btn-act-activate {
            background: #22c55e !important;
            border: 1px solid #16a34a !important;
            color: #ffffff !important;
            box-shadow: 0 2px 6px rgba(34, 197, 94, 0.25) !important;
        }
        .td-actions .btn-act-activate:hover {
            background: #16a34a !important;
            filter: brightness(1.1) !important;
            box-shadow: 0 3px 8px rgba(34, 197, 94, 0.35) !important;
        }

        /* ISOLIR Button */
        .td-actions .btn-act-isolate {
            background: #ef4444 !important;
            border: 1px solid #dc2626 !important;
            color: #ffffff !important;
            box-shadow: 0 2px 6px rgba(239, 68, 68, 0.25) !important;
        }
        .td-actions .btn-act-isolate:hover {
            background: #dc2626 !important;
            filter: brightness(1.1) !important;
            box-shadow: 0 3px 8px rgba(239, 68, 68, 0.35) !important;
        }

        /* WhatsApp Button */
        .td-actions .btn-act-wa {
            background: #25d366 !important;
            border: 1px solid #1ea952 !important;
            color: #ffffff !important;
        }
        .td-actions .btn-act-wa:hover {
            background: #1ea952 !important;
        }

        /* Reprint Button */
        .td-actions .btn-act-reprint {
            background: var(--accent) !important;
            border: 1px solid var(--accent) !important;
            color: var(--accent-contrast, #ffffff) !important;
        }

        /* Bypass Active (GRATIS) */
        .td-actions .btn-bypass-active {
            background: var(--accent-subtle) !important;
            border: 1px solid var(--accent) !important;
            color: var(--accent) !important;
        }

        /* Delete Button */
        .td-actions button[onclick^="deleteClient"] {
            background: rgba(239, 68, 68, 0.1) !important;
            border: 1px solid rgba(239, 68, 68, 0.3) !important;
            color: #ef4444 !important;
        }
        .td-actions button[onclick^="deleteClient"]:hover {
            background: #ef4444 !important;
            color: #ffffff !important;
            border-color: #dc2626 !important;
        }
