﻿/*@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@200..800&display=swap');*/

.manrope-400 {
    font-family: "Manrope", sans-serif !important;
    font-optical-sizing: auto;
    font-weight: 400;
    font-style: normal;
}


/* =====================================================
   Anoop Shakya: ver.2
   Start Date: 6 Jan, 2026
   ===================================================== */

/* =====================
   ROOT VARIABLES
   ===================== */
:root {
    --fontfamily-manrope: "Manrope", system-ui, -apple-system, sans-serif;
    /* Brand */
    --color-primary: #0F4386;
    --color-primary-hover: #0A366F;
    /* Background */
    --bg-app: #EAECF4;
    --bg-surface: #ffffff;
    --bg-sidebar: #242F57;
    --bg-header: #ffffff;
    --bg-navitem-active: #EFF4FA;
    /* Text */
    --text-main: #0f172a;
    --text-muted: #64748b;
    --text-light: #cbd5f5;
    --text-inverse: #ffffff;
    /* Border */
    --border-color: #e5e7eb;
    /* Status */
    --success: #16a34a;
    --warning: #f59e0b;
    --danger: #FF5328;
    --info: #0284c7;
    /* Radius */
    --radius-sm: 6px;
    --radius-md: 10px;
    --radius-lg: 14px;
    /* Shadows */
    --shadow-soft: 0 1px 3px rgba(0,0,0,0.06);
    --shadow-card: 0 6px 18px rgba(0,0,0,0.08);
    /* Transition */
    --transition: 0.25s ease;
    --sidebar-width: 240px;
    /*bootstrap _root*/
    --bs-primary: #0F4386;
    /* end bootstrap _root*/
}

/* =====================
   DARK MODE
   ===================== */
[data-theme="dark"] {
    --bg-app: #020617;
    --bg-surface: #020617;
    /*--bg-sidebar: #020617;*/
    --bg-header: #020617;
    --text-main: #e5e7eb;
    --text-muted: #9ca3af;
    --border-color: #1e293b;
    --shadow-soft: none;
    --shadow-card: none;
}

/* =====================
   BASE
   ===================== */
body {
    margin: 0;
    font-family: "Manrope", system-ui, -apple-system, sans-serif !important;
    background: var(--bg-app);
    color: var(--text-main);
    font-weight: 600;
    font-size: 14px;
    scrollbar-width: thin; /* auto | thin | none */
    scrollbar-color: #cbd5e1 #F8F8F8; /* thumb color track color */
}
a {
    text-decoration: none;
    color: inherit;
}
label, input, input textarea {
    font-family: "Manrope", sans-serif !important;
    font-size: 14px;
}

input[disabled],
.e-float-input input[disabled],
.e-float-input input.e-disabled,
.e-float-input.e-control-wrapper input[disabled],
.e-float-input.e-control-wrapper input.e-disabled {
    cursor: text;
}
/* =====================
   SCROLLBAR (DESKTOP)
   ===================== */
::-webkit-scrollbar {
    width: 6px;
}
::-webkit-scrollbar-thumb {
    background: #cbd5e1;
    border-radius: 4px;
}

/* For Chrome, Safari, Edge, and Opera */
body::-webkit-scrollbar {
    width: 6px;
    height: 6px;
}
body::-webkit-scrollbar-track {
    background: #F8F8F8;
    border-radius: 4px;
}
body::-webkit-scrollbar-thumb {
    background-color: #80CAFF;
    border-radius: 4px;
}

    body::-webkit-scrollbar-thumb:hover {
        background-color: #80CAFF;
    }
/*login page*/
.gradient-bg {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: -1;
    background: linear-gradient(45deg, #FFA342, #C1337B, #3B8BAE, #434F83);
    background-size: 400% 400%;
    animation: gradient 18s ease infinite;
}

@keyframes gradient {
    0% {
        background-position: 0% 50%;
    }

    50% {
        background-position: 100% 50%;
    }

    100% {
        background-position: 0% 50%;
    }
}
.main-container {
    min-height: 100vh;
}

.content-box {
    background-color: rgba(256,256,256,1);
    border-radius: 40px;
    box-shadow: 0px 10px 58px rgba(0,0,0,0.3);
    backdrop-filter: blur(20px);
}

    .content-box .e-control {
        letter-spacing: 1px;
    }

.left-side {
    padding: 3rem;
}

.logo {
    display: block;
    margin: 0 auto 1rem auto;
    max-width: 230px;
    height: 100px;
    background-color: #fff;
    margin-top: -50px;
    padding: 0 20px;
    border-radius: 60px;
    box-shadow: 0 16px 180px #efefef;
}

/* =========================
   Global
========================= */
.app-shell {
    display: flex;
    min-height: 100vh;
}

.main-area {
    /*    width: calc(100vw - var(--sidebar-width));*/
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    min-height: 100vh;
/*    position: absolute;
    right: 0;*/
/*    margin-left: var(--sidebar-width);*/
    transition: width 0.2s ease, margin-left 0.2s ease;
}
/* Main container reacts */
.main-area.sidebar-expanded {
    margin-left: 240px;
}

.main-area.sidebar-collapsed {
    margin-left: 70px;
}

.page-content {
    flex: 1;
    padding: 10px 2px;
    overflow-y: auto;
}
h2 {
    font-size: 1.4rem;
    color: #484848;
    padding-bottom: 0px;
    font-weight: 600;
}
h5 {
    font-size: 1rem;
    color: #484848;
    padding-bottom: 4px;
    font-weight: 400;
}
.e-btn-md{height:40px;}
.e-btn, .e-css.e-btn,
.e-footer-content .e-btn,
.e-primary,
.e-lib e-primary,
.e-btn.e-primary,
.e-css.e-btn.e-primary,
.e-footer-content .e-primary {
    font-weight: 500;
    line-height: 1.6rem;
    font-family: "Manrope", sans-serif !important;
    transition: all 0.3s;
    border-color: var(--border-color);
    align-items: center;
    display: inline-flex;
}
.e-primary {
    background: linear-gradient(155deg, #2F71A0, #1C498C) !important;
    height: 36px;
}

    .e-lib e-primary:hover, .e-btn.e-primary:hover, .e-css.e-btn.e-primary:hover {
        background: linear-gradient(155deg, #1C498C, #1C498C);
        border-color: var(--color-primary-hover);
    }
.e-btn-light {
    background: #E4ECF7;
    color: var(--color-primary);
    height: 36px;
}
    .e-btn-light:hover {
        background: #D0E1F4;
        color: var(--color-primary-hover);
        border-color: #E4ECF7;
    }

    .e-btn-light:disabled, .e-btn-light.e-disabled {
        background: rgba(108, 117, 125, .65);
        border-color: rgba(108, 117, 125, .65);
        box-shadow: none;
        color: hsla(0, 0%, 100%, .65);
    }

.e-btn-md {
    height: 40px;
}
    .small-help {
        font-size: 0.9rem;
        margin-bottom: 0.5rem;
        font-weight: 400;
    }

/* =====================
   APP LAYOUT
   ===================== */
.app-layout {
    display: flex;
    min-height: 100vh;
}

/* =====================
   SIDEBAR
   ===================== */

.sidebar {
    flex: 0 0 var(--sidebar-width);
    width: var(--sidebar-width);
    height: 100vh;
    background: var(--bg-surface);
    color: var(--text-main);
    border-right: 1px solid #ccc;
    overflow: hidden;
    position: fixed;
    z-index: 2;
    transition: width 0.25s ease;
}

    .sidebar.expanded {
        --sidebar-width: 240px;
    }
    .sidebar.collapsed {
        --sidebar-width: 70px;
    }

.sidebar-header .SS-logo{
    width:150px;
}
.sidebar.collapsed .sidebar-header .SS-logo span {
    width: 45px;
    overflow:hidden;
    display:block;
    margin-right:15px;
}
.sidebar.collapsed:hover .sidebar-header .SS-logo span {
    width: 150px;
    overflow: inherit;
    display: block;
    margin-right: 15px;
}
.sidebar-header img {
    width: 120px;
    padding-left: 5px;
}

.sidebar-title {
    font-size: 18px;
    font-weight: 600;
    color: #ffffff;
    margin-bottom: 24px;
}

/*.sidebar-header {
    padding: 0.4rem;
    border-bottom: 1px solid rgba(255,255,255,0.15);
}*/

/* Header */
.sidebar-header {
    height: 64px;
    padding: 0 16px;
    border-bottom: 1px solid rgba(255,255,255,0.08);
}

.sidebar-nav a {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 14px;
    margin-bottom: 2px;
    min-width: 50px;
    max-width: 100%;
    border-radius: var(--radius-sm);
    font-size: 14px;
    transition: var(--transition);
    color: var(--color-primary);
}
.sidebar-nav .nav-link i {
    color: var(--color-primary);
}

.sidebar-nav a:hover,
.sidebar-nav a.active {
    background: var(--bg-navitem-active);
    color: var(--color-primary);
}
.sidebar-toggle {
    cursor: pointer;
    font-size: 18px;
    color: var(--color-primary);
    margin-right:-10px;
    z-index:2;
    
}

/* Nav */
.sidebar-nav {
    padding: 8px 8px;
    height: calc(100vh - 104px);
    overflow-y: auto;
    scrollbar-width: thin;
}

/* Icons */
.sidebar-nav i {
    font-size: 18px;
    min-width: 24px;
    text-align: center;
}

/* Text */
.menu-text {
    flex: 1 1 auto;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* Collapsed behavior */
.sidebar.collapsed .menu-text {
    display: none;
}

/* Hover expand */
.sidebar.collapsed:hover {
    --sidebar-width: 240px;
}

    /* Show text on hover */
    .sidebar.collapsed:hover .menu-text {
        display: inline;
    }

/* sidebar Footer */
.gc-footer {
    background: #fff;
    padding: 0 4px;
    position: absolute;
    bottom: 0px;
    z-index: 2;
    width: calc(var(--sidebar-width) - 2px);
    height: 40px;
    color: var(--bs-gray-700);
}
.gc-footer-inner {
    border-top: 1px solid #eaecf4;
    margin-left: 12px;
    margin-right: 12px;
    transition: all 0.2s ease;
}

.gc-footer a {
    text-decoration: none;
    height: 14px;
    display: block;
    margin: -6px 0 0;
    padding-top: 0;
}
.sidebar.collapsed .gc-footer-inner {
    margin-left: 1px;
    transition: all 0.2s ease;
}
/* =====================
   MAIN CONTENT
   ===================== */
.main {
    flex: 1;
    display: flex;
    flex-direction: column;
}

/* =====================
   HEADER
   ===================== */
/* Navbar / Topbar */
.topbar {
    height: 50px;
    background-color: var(--bg-header);
    /*border-bottom: 1px solid #e5e7eb;
    box-shadow: 0 1px 2px rgba(0,0,0,0.04);*/
    display: flex;
    align-items: center;
    justify-content: flex-end;
    position: sticky;
    top: 0;
    z-index: 3000;
    isolation: isolate;
}
    .topbar i {font-size:16px;}

.e-toast-container.e-toast-top-right,
.e-toast-container.e-toast-top-left,
.e-toast-container.e-toast-top-center {
    top: 64px !important;
    z-index: 20000 !important;
}

.profile-menu {
    outline: none;
}

.dropdown-panel {
    position: absolute;
    top: 48px;
    right: 0;
    z-index: 1000;
}

.header {
    height: 64px;
    background: var(--bg-header);
    border-bottom: 1px solid var(--border-color);
    padding: 0 24px;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.header-title {
    font-size: 16px;
    font-weight: 600;
}

.header-actions {
    display: flex;
    align-items: center;
    gap: 16px;
}

/* =====================
   PAGE CONTENT
   ===================== */
.page {
    padding: 24px;
}

/* =====================
   CARDS
   ===================== */
.card {
    background: var(--bg-surface);
    border-radius: var(--radius-md);
    padding: 20px;
    border: 1px solid var(--border-color);
    box-shadow: var(--shadow-soft);
}

.card-header {
    font-size: 14px;
    color: var(--text-muted);
    margin-bottom: 8px;
}

.card-value {
    font-size: 28px;
    font-weight: 600;
}

/* =====================
   BUTTONS
   ===================== */
.btn {
    padding: 10px 16px;
    border-radius: var(--radius-sm);
    font-size: 13px;
    border: none;
    cursor: pointer;
/*    transition: var(--transition);*/
    line-height: 1.2rem;
    font-weight:600;
}

.btn-primary {
    background: var(--color-primary);
    color: var(--bs-white);
}

    .btn-primary:hover {
        background: var(--color-primary-hover);
    }

.btn-outline {
    background: transparent;
    border: 1px solid var(--border-color);
    color: var(--text-main);
}
.e-btn.e-danger, .e-css.e-btn.e-danger {
    background: var(--bs-white);
    border-color: var(--bs-white);
    color: var(--danger);
}
    .e-btn.e-danger:hover, .e-css.e-btn.e-danger:hover,
    .e-btn.e-danger:focus, .e-css.e-btn.e-danger:focus {
        background: var(--danger);
        border-color: var(--danger);
        color: var(--bs-white);
    }
.e-btn.e-flat, .e-css.e-btn.e-flat {
    background: rgba(91, 99, 106, 0);
    border-color: rgba(86.4, 93, 100, 0);
    box-shadow: none;
    color: var(--bs-link-color);
}
    .e-btn.e-flat:hover, .e-css.e-btn.e-flat:hover,
    .e-btn.e-flat:focus, .e-css.e-btn.e-flat:focus {
        background: rgba(91, 99, 106, 0);
        border-color: rgba(86.4, 93, 100, 0);
        box-shadow: none;
        color: var(--bs-link-hover-color);
    }
.e-btn.e-flat:disabled, .e-btn.e-flat.e-disabled, .e-css.e-btn.e-flat:disabled, .e-css.e-btn.e-flat.e-disabled {
    background: none;
    border-color: rgba(255,255,255,0.0);
    color: rgba(108, 117, 125, .65);
}
.e-btn-round {
    background: none;
    border: none;
    box-shadow: none;
    color: var(--bs-link-color);
    width: 24px;
    max-height: 24px !important;
    border-radius: 20%;
    outline: none;
}
    .e-btn-round:hover,
    .e-btn-round:focus {
        background: rgba(256,256,256,0.4);
        color: var(--color-primary-hover);
        outline: none;
        box-shadow: none;
    }
    .e-btn .e-btn-icon {
        margin-top: 2px;
    }

.expand-trow::after {
    content: '\F229';
    font-family: bootstrap-icons !important;
    font-weight: 900;
    margin-left: 5px;
    color: var(--bs-gray-600);
    font-size: 10px;
    opacity: 0;
}
.expand-trow:hover::after {
    opacity: 1;
}

/* =====================
   TABLES
   ===================== */
.table {
    width: 100%;
    border-collapse: collapse;
}

    .table th {
        font-size: 13px;
        color: var(--text-muted);
        text-align: left;
        padding: 12px;
        border-bottom: 1px solid var(--border-color);
    }

    .table td {
        padding: 14px 12px;
        border-bottom: 1px solid var(--border-color);
        font-size: 14px;
    }
.e-pager{
    font-size:12px;
}
    .e-pager .e-pagerdropdown {
        margin-top: -29px;
    }
        .e-pager .e-pagerdropdown e-ddl.e-input-group .e-dropdownlis {
            height: 36px;
        }

        /* =====================
   BADGES
   ===================== */
        .badge {
            padding: 4px 10px;
            font-size: 12px;
            border-radius: 999px;
            font-weight: 500;
        }

.badge-success {
    background: #dcfce7;
    color: #166534;
}

.badge-warning {
    background: #fef3c7;
    color: #92400e;
}

.badge-danger {
    background: #fee2e2;
    color: #991b1b;
}

.badge-info {
    background: #e0f2fe;
    color: #075985;
}

/* =====================
   FORMS
   ===================== */

/*controllers*/
.e-control input[type="password"] {
    font-size: 30px;
}

.e-textbox.invalid-input input {
    border-color: #d13438 !important;
    box-shadow: 0 0 0 1px rgba(209, 52, 56, 0.4);
}

.validation-message {
    color: #d13438;
    font-size: 13px;
}

/*end*/
input.e-input, .e-input-group input, .e-input-group.e-control-wrapper input, .e-input-group input.e-input, .e-input-group.e-control-wrapper input.e-input{
    height:36px;
}

.sf-textbox, .e-input-group, .e-dropdownlist, .e-numerictextbox {
    width: 100% !important;
}

.e-float-input input:focus ~ label.e-float-text, .e-float-input input:valid ~ label.e-float-text, .e-float-input input ~ label.e-label-top.e-float-text,
.e-float-input input[readonly] ~ label.e-label-top.e-float-text, .e-float-input input[disabled] ~ label.e-label-top.e-float-text,
.e-float-input input label.e-float-text.e-label-top, .e-float-input.e-control-wrapper input:focus ~ label.e-float-text,
.e-float-input.e-control-wrapper input:valid ~ label.e-float-text, .e-float-input.e-control-wrapper input ~ label.e-label-top.e-float-text,
.e-float-input.e-control-wrapper input[readonly] ~ label.e-label-top.e-float-text, .e-float-input.e-control-wrapper input[disabled] ~ label.e-label-top.e-float-text,
.e-float-input.e-control-wrapper input label.e-float-text.e-label-top, .e-float-input.e-control-wrapper.e-input-focus input ~ label.e-float-text,
.e-float-input.e-input-focus input ~ label.e-float-text,
.e-float-input.e-control-wrapper textarea:valid ~ label.e-float-text,
.e-float-input.e-control-wrapper textarea ~ label.e-label-top.e-float-text {
    font-size: 14px;
    font-weight: 500;
    transform: translate3d(-10px, -46px, 0) scale(1);
}
.form-group {
    margin-bottom: 1rem;
}
.input {
    width: 100%;
    padding: 10px 12px;
    border-radius: var(--radius-sm);
    border: 1px solid var(--border-color);
    background: transparent;
    color: var(--text-main);
}
    .input:focus {
        outline: none;
        border-color: var(--color-primary);
    }
.Fsection {
    background-color: #F8F8F8;
    padding: 1.2rem 1rem 1.5rem;
    border-radius: 6px;
}
.label, .control-label {
    font-size: 14px;
    font-weight: 500;
    transform: translate3d(2px, -4px, 0) scale(1);
    line-height: 19px;
    color: var(--bs-gray-700);
}
.caps-text .e-input,
.caps-text .e-list-item,
.caps-text .e-dropdowns{
    text-transform: capitalize !important;
}

/* Checkbox wrapper */
.e-checkbox-wrapper .e-frame,
.e-css.e-checkbox-wrapper .e-frame {
    width: 18px !important;
    height: 18px !important;
    line-height: 17px !important;
    font-size: 10px !important;
    border: 2px solid #a3adb7;
}
.e-checkbox-wrapper .e-frame::before,
.e-css.e-checkbox-wrapper .e-frame::before {
    line-height: 17px;
    font-size: 10px;
}

.e-checkbox-wrapper label:hover .e-frame,
.e-css.e-checkbox-wrapper label:hover .e-frame {
    border-color: var(--color-primary-hover);
    color: var(--color-primary-hover);
    content: "\e727";
}
.e-checkbox-wrapper .e-checkbox:focus + .e-frame.e-check::before,
.e-checkbox-wrapper .e-checkbox:active + .e-frame.e-check::before,
.e-css.e-checkbox-wrapper .e-checkbox:focus + .e-frame.e-check::before,
.e-css.e-checkbox-wrapper .e-checkbox:active + .e-frame.e-check::before {
    font-size: 10px !important;
    color: #fff;
}

.e-float-input.e-control-wrapper:not(.e-error) input:focus ~ label.e-float-text, .e-float-input.e-control-wrapper:not(.e-error) input:valid ~ label.e-float-text,
.e-float-input.e-control-wrapper:not(.e-error) input ~ label.e-label-top.e-float-text, .e-float-input.e-control-wrapper:not(.e-error) input[readonly] ~ label.e-label-top.e-float-text,
.e-float-input.e-control-wrapper:not(.e-error) input[disabled] ~ label.e-label-top.e-float-text, .e-float-input .e-control-wrapper:not(.e-error) input label.e-float-text.e-label-top,
.e-float-input.e-control-wrapper:not(.e-error).e-input-focus input ~ label.e-float-text, .e-float-input.e-control-wrapper:not(.e-error) textarea:focus ~ label.e-float-text,
.e-float-input.e-control-wrapper:not(.e-error) textarea:valid ~ label.e-float-text, .e-float-input.e-control-wrapper:not(.e-error) textarea ~ label.e-label-top.e-float-text,
.e-float-input.e-control-wrapper:not(.e-error) textarea[readonly] ~ label.e-label-top.e-float-text,
.e-float-input.e-control-wrapper:not(.e-error) textarea[disabled] ~ label.e-label-top.e-float-text, .e-float-input.e-control-wrapper:not(.e-error) textarea label.e-float-text.e-label-top {
    color: var(--bs-gray-700);
}

/*custom tabs*/
.customer-wizard .e-stepper-item.e-active .e-stepper-label {
    color: #0F4386;
    font-weight: 600;
}

.wizard-body {
    min-height: 300px;
}

.file-upload-card {
    max-width: 360px;
}

.upload-label {
    font-size: 13px;
    font-weight: 600;
    color: #344054;
    margin-bottom: 6px;
    display: block;
}

.upload-box {
    position: relative;
    border: 2px dashed #d0d5dd;
    border-radius: 8px;
    padding: 24px;
    text-align: center;
    background-color: #fafafa;
    cursor: pointer;
    transition: all 0.2s ease;
}

    .upload-box:hover {
        border-color: #0F4386;
        background-color: #f0f6ff;
    }

.file-input {
    position: absolute;
    inset: 0;
    opacity: 0;
    cursor: pointer;
}

.upload-text {
    font-size: 13px;
    color: #667085;
}

.preview-image {
    margin-top: 12px;
    max-height: 120px;
    border-radius: 6px;
    border: 1px solid #e4e7ec;
}

/*.e-grid .e-dialog .e-footer-content button {
    pointer-events: none;
    opacity: 0.5;
}*/
.disable-dialog-actions,
.e-grid .e-footer-content,
.custom-edit-dialog-stepper .e-dialog .e-footer-content {
    display: flex;
}

.stepper-action-bottom {
    position: absolute;
    width: 100%;
    bottom: 0%;

    border-top: 1px dotted gray;
}
    .stepper-action-bottom button{
        width: 120px
    }
    /* Tab header container */
    .e-tab .e-tab-header {
        /*    border-bottom: 1px solid #e0e0e0;*/
    }
    .e-tab .e-tab-header::before{
        border:none;
    }
    /* Individual tab */
    .e-tab .e-tab-header .e-toolbar-items {
        height: 40px;
        border: none;
    }
    .e-tab .e-tab-header .e-toolbar-item {
        padding: 6px 18px;
        border: none;
        height: 40px;
    }
        .e-tab .e-tab-header .e-toolbar-item .e-tab-wrap {
            height: 40px;
            border: none;
        }
        .e-tab .e-tab-header .e-toolbar-item .e-text-wrap {
            height: 40px;
        }
        .e-tab .e-tab-header .e-toolbar-item .e-tab-text {
            font-family: "Manrope", sans-serif !important;
            font-weight: 600;
            font-size: 14px;
            color: var(--bs-gray-600);
        }

        .e-tab .e-tab-header .e-toolbar-item.e-active,
        .e-tab .e-tab-header .e-toolbar-item.e-active .e-tab-wrap {
            border: none;
        }
        .e-tab .e-tab-header .e-toolbar-item.e-active:hover {
            background: none;
            border: none;
        }
        .e-tab .e-tab-header .e-toolbar-item .e-tab-wrap:hover,
        .e-tab .e-tab-header .e-toolbar-item .e-tab-wrap:active {
            border: none;
            color: var(--text-main);
        }
        .e-tab .e-tab-header .e-toolbar-item.e-active .e-tab-text {
            font-weight: 600;
            font-size: 14px;
            border: none;
        }
        .e-tab .e-tab-header .e-toolbar-item.e-active.e-ileft .e-text-wrap,
        .e-tab .e-tab-header .e-toolbar-item.e-active.e-iright .e-text-wrap {
            height: 40px;
        }
        .e-tab .e-tab-header:not(.e-vertical) .e-toolbar-item.e-active{
            border:none;
        }
        /* Active tab */
        .e-tab .e-tab-header .e-toolbar-item.e-active .e-text-wrap,
        .e-tab .e-tab-header .e-toolbar-item.e-active .e-text-wrap {
            height: 40px;
            font-weight: 600;
            border: none;
        }
        .e-tab .e-tab-header .e-toolbar-item.e-active .e-tab-text {
            color: var(--text-main);
            font-weight: 600;
            border: none;
        }
        /* Hover */


/* Active underline */
.e-tab .e-tab-header .e-indicator {
    background-color: #1A4D8F;
    height: 3px;
}

/* Tab content */
.e-tab .e-content {
    padding: 20px;
}

/* ===== SYNCFUSION TAB WRAPPER ===== */
.crm-tabs {
    background: #fff;
    border-radius: 10px;
    box-shadow: 0 4px 12px rgba(0,0,0,.04);
}

    /* ===== TAB HEADER ===== */
    .crm-tabs .e-tab-header {
        background: #f8fafc;
        border-bottom: 1px solid #e5e7eb;
        padding: 0 12px;
        border-radius: 10px 10px 0 0;
    }

    /* ===== TAB ITEM ===== */
    .crm-tabs .e-toolbar-item {
        margin-right: 4px;
    }

    .crm-tabs .e-tab-text {
        font-size: 14px;
        font-weight: 600;
        color: #64748b;
        padding: 12px 18px;
    }

    /* ===== ACTIVE TAB ===== */
    .crm-tabs .e-toolbar-item.e-active {
        color: #0F4386; /* your primary */
        border-radius: 8px 8px 0 0;
    }

        .crm-tabs .e-toolbar-item.e-active .e-tab-text {
            color: #fff;
        }

    /* ===== HOVER ===== */
    .crm-tabs .e-toolbar-item:not(.e-active):hover {
        color: #e8eef7;
        border-radius: 8px;
    }

    /* ===== TAB CONTENT ===== */
    .crm-tabs .e-content {
        padding: 20px;
        background: #fff;
        border-radius: 0 0 10px 10px;
    }



.e-search-input {
    width: 100%;
    max-width: 320px;
}

    .e-search-input .e-input-group-icon {
        color: #6c757d;
        cursor: pointer;
    }

    .e-search-input .e-input {
        padding-left: 0 !important;
    }

/*anoop code start*/
.google-apps-wrapper {
    position: relative;
    display: inline-block;
    outline: none;
    z-index: 3100;
}

/* circular button */
.google-apps-btn {
    width: 38px;
    height: 38px;
    border-radius: 50%;
    border: none;
    background: none;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    font-size: 25px;
    transition: background .2s, transform .06s;
}

    .google-apps-btn:hover {
        background: #eaecf4;
        color: #000;
    }

/*.google-apps-btn:focus {
        outline: 2px solid rgba(31,79,155,0.12);
    }*/

/* icon */
.google-apps-icon {
    width: 22px;
    height: 22px;
    object-fit: contain;
}

/* dropdown panel */
.google-apps-menu {
    position: absolute;
    top: 52px;
    right: 0;
    width: 220px;
    background: #fff;
    border-radius: 12px;
    padding: 12px;
    box-shadow: 0 8px 30px rgb(5, 0, 0, 0.36);
    z-index: 3200;
    pointer-events: auto;
}

/* grid */
.app-grid {
    display: grid;
    grid-template-rows: repeat(3, 1fr);
    gap: 12px;
}

/* item */
.app-item {
    position: relative;
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-start;
    border-radius: 10px;
    padding: 8px;
    background: #f8f9fa;
    color: #222;
    border: none;
    cursor: pointer;
    transition: transform .08s, background .12s;
    text-align: left;
    text-decoration: none;
    pointer-events: auto;
}

.app-item:hover, .app-item:focus {
        background: #e8f0fe;
        outline: none;
    }

.app-thumb {
    width: 24px;
    height: 24px;
    border-radius: 10px;
    /*background: linear-gradient(180deg,#fff,#f0f4ff);*/
    position:relative;
    display: inline-block;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    color: #1f4f9b;
    margin-bottom: 8px;
}
.app-thumb i{font-size:20px}

.app-label {
        font-size: 13px;
        position: relative;
        display: inline-block;
        margin-left: 8px;
    }

.profile-menu {
    position: relative;
    display: inline-block;
}

    /* Remove default marker */
    .profile-menu summary {
        list-style: none;
    }

        .profile-menu summary::-webkit-details-marker {
            display: none;
        }

/* Avatar button */
.profile-trigger {
    display: flex;
    align-items: center;
    cursor: pointer;
    margin: 0 6px;
    border-radius: 50%;
    transition: background 0.2s;
}

    .profile-trigger:hover {
        background: #f2f2f2;
    }

.profile-avatar {
    width: 36px;
    height: 36px;
    border-radius: 50%;
}

/* Dropdown Panel */
.dropdown-panel {
    position: absolute;
    right: 0;
    margin-top: 12px;
    width: 240px;
    background: #fff;
    border-radius: 12px;
    padding: 12px;
    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.08);
    animation: fadeIn 0.15s ease-out;
    z-index: 20;
    color: #000000;
}

/* User section */
.user-info {
    display: flex;
    align-items: center;
    gap: 12px;
    padding-bottom: 10px;
    border-bottom: 1px solid #eee;
}

.avatar-large {
    width: 50px;
    height: 50px;
    border-radius: 50%;
}

.user-info h4 {
    margin: 0;
    font-size: 16px;
}

.user-info p {
    margin: 0;
    color: #666;
    font-size: 13px;
}

/* Menu items */
.menu-item {
    display: block;
    padding: 10px;
    font-size: 14px;
    cursor: pointer;
    border-radius: 8px;
    color: #333;
    text-decoration: none;
    transition: background 0.15s;
}

    .menu-item i {
        padding-right: 10px
    }

/*.menu-item:hover {
        background: #f5f6f7;
    }*/

.logout {
    color: #d9534f;
    font-weight: bold;
}

/* Divider */
.divider {
    height: 1px;
    background: #e5e5e5;
    margin: 10px 0;
}

/* Animation */
@keyframes fadeIn {
    from {
        opacity: 0;
        transform: translateY(-5px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/*custom modal*/
.custom-edit-dialog.e-popup-open {
    max-width:50%;
}
.e-dlg-content {
/*    background-color: #F8F8F8;*/
}
.e-edit-dialog .e-dlg-header {
    display: none;
}
.e-footer-content .e-btn.e-flat{min-width:120px}
.e-footer-content .e-primary {
    float: right;
    width:30%;
}
    .e-footer-content .e-primary:hover,
    .e-footer-content .e-btn.e-primary.e-flat:not([DISABLED]):not(.e-success):not(.e-danger):not(.e-warning):not(.e-info) {
        color: #fff !important;
        background: var(--color-primary-hover);
        border-color: var(--color-primary-hover);
    }
    .e-footer-content .e-btn.e-flat:not([DISABLED]):not(.e-success):not(.e-danger):not(.e-warning):not(.e-info) {
        background: var(--bg-navitem-active);
        color: var(--color-primary);
        border-color: var(--bg-navitem-active);
    }
.e-footer-content .e-btn:hover.e-flat:not([DISABLED]):not(.e-success):not(.e-danger):not(.e-warning):not(.e-info) {
    background: #dbe6f5;
    border-color: #dbe6f5;
    color: var(--color-primary-hover);
}

.hideheader .e-dialog .e-dlg-header-content{
    display:none;
}



/*anoop code end*/


.row-actions {
    display: flex;
    gap: 12px;
    opacity: 0;
    transition: opacity 0.2s ease;
    cursor: pointer;
}

/* Show icons on row hover */
.e-grid .e-row:hover .row-actions {
    opacity: 1;
}

/* Icon styling */
.row-actions .e-icons {
    font-size: 16px;
    color: #475569;
}

    .row-actions .e-icons:hover {
        color: #2563eb;
    }


/* =========================
   RESPONSIVE
========================= */

/*@media (max-width: 768px) {
    .sidebar {
        width: 190px;
    }

    .main-area {
        margin-left: 190px;
    }
}*/


/*table*/
.e-grid .e-headercell, .e-grid .e-detailheadercell {
    height: 2.5rem;
    background: #f2f4f7;
}
    .e-grid .e-headercell:hover, .e-grid .e-detailheadercell:hover
     {
        background: #d4dfef;
    }
    .e-grid .e-headercell.e-rcursor{}
    .e-grid .e-gridheader {
        color: #63727c;
    }

.e-grid .e-headercelldiv, e-headertext,
table thead tr td{
    font-weight: 600;
    font-size: 0.75rem;
    text-transform: uppercase;
}

.e-grid .e-rowcell {
    line-height: 2.25rem;
}

.e-grid .e-rowcell, .e-grid .e-groupcaption, .e-grid .e-indentcell,
.e-grid .e-recordplusexpand, .e-grid .e-recordpluscollapse, .e-grid .e-rowdragdropcell,
.e-grid .e-detailrowcollapse, .e-grid .e-detailrowexpand,
.e-grid .e-detailindentcell, .e-grid .e-detailcell,
.e-grid .e-emptyrow.e-show-added-row .e-lastrowcell {
    border-left: 1px solid #f7f7f7;
}
.e-grid .e-row:hover .e-rowcell {
    border-left: 1px solid #d7d7d7;
}
    .e-grid .e-gridheader tr:first-child th:not(.e-freezeleftborder,.e-freezerightborder) {
        border-left: 1px solid #d7d7d7;
    }

/* ===== FILTER TOOLBAR ===== */
.filter-toolbar {
    border-radius: 8px;
}

    .filter-toolbar .form-control,
    .filter-toolbar .form-select {
        border-radius: 6px;
    }

    .filter-toolbar .input-group-text {
        border-radius: 6px 0 0 6px;
        font-size: 0.8rem;
    }

    .filter-toolbar .form-control::placeholder {
        font-size: 0.8rem;
        color: #9ca3af;
    }

    .filter-toolbar select {
        font-size: 0.8rem;
    }

    .filter-toolbar input[type="date"] {
        font-size: 0.8rem;
    }

    .filter-toolbar button {
        border-radius: 6px;
    }

/* emp dashboard   */
.bday-bg {
/*    background: url(../images/bday-bg2.jpg) no-repeat top right;
    background-size: cover;*/
}

.full-glass-dialog .e-dlg-overlay {
    background-color: rgba(255, 154, 158, .3);
}
.birthday-dialog .e-dlg-content {
    background: rgba(255,255,255,0.1);
    backdrop-filter: blur(20px);
    text-align: center;
    padding: 30px;
}
.birthday-dialog .e-dialog {
    border: none;
}

.birthday-modal-content {
    text-align: center;
    background: rgba(255,255,255,0.12);
    backdrop-filter: blur(18px);
    padding: 50px 40px;
    border-radius: 25px;
    color: white;
    width: 420px;
    /*    box-shadow: 0 15px 40px rgba(0,0,0,0.4);*/
    animation: popIn 0.5s ease;
}
.glass-card .e-card-header-title {
    font-weight: 600;
}
.modal-avatar {
    width: 100px;
    height: 100px;
    border-radius: 50%;
    margin-bottom: 15px;
    border: 3px solid #A53E6B;
    object-fit: cover;
    box-shadow: 0 15px 40px rgba(165, 62, 107, 0.3);
}

.default-avatar::before {
    display: inline-block;
    font-family: bootstrap-icons !important;
    font-style: normal;
    font-weight: 400 !important;
    font-variant: normal;
    text-transform: none;
    line-height: 1;
    vertical-align: -.125em;
    content: "\F4DA";
    font-size: 38px;
    color: gray;
}

.person-row img::before {
    display: inline-block;
    line-height: 1;
    vertical-align: -.125em;
    content: "images/default-user.jpg";
}

.wish-btn {
    background: linear-gradient(135deg, #A53E6B, #861F50);
    color: white;
    padding: 10px 20px;
    border: none;
    border-radius: 30px;
    margin-top: 15px;
    transition: 0.3s;
}

.wish-btn:hover {
    transform: scale(1.05);
    background: linear-gradient(15deg, #A53E6B, #861F50);
}

.close-floating {
    background: none;
    border-radius:50%;
}
.close-floating:hover {
    background: linear-gradient(45deg, #ff9a9e, #fad0c4)
}
/* ================= Cake ================= */
.cake {
    width: 90px;
    height: 60px;
    background: #ff8fab;
    margin: 0 auto;
    border-radius: 10px;
    position: relative;
    box-shadow: 0 6px 0 #e76f9a;
}

.candle {
    width: 8px;
    height: 25px;
    background: white;
    position: absolute;
    top: -25px;
    left: 50%;
    transform: translateX(-50%);
}

.flame {
    width: 12px;
    height: 12px;
    background: orange;
    border-radius: 50%;
    position: absolute;
    top: -12px;
    left: -2px;
    animation: flicker 1s infinite alternate;
}

/* ================= Ribbons ================= */
.ribbon {
    position: absolute;
    width: 100px;
    height: 120px;
    background: radial-gradient(circle, #ff4d6d, transparent);
    opacity: 0.5;
    animation: floatRibbon 6s infinite ease-in-out;
}

.ribbon-left {
    top: 10%;
    left: 10%;
}

.ribbon-right {
    bottom: 10%;
    right: 10%;
}



/*.full-glass-dialog {
    backdrop-filter: blur(25px);
    background: linear-gradient(45deg, #ff9a9e, #fad0c4) !important;
    border-radius: 0px !important;
}*/

.full-glass-dialog .e-dlg-content {
    backdrop-filter: blur(25px);
    background: linear-gradient(45deg, #ff9a9e, #fad0c4) !important;
    color: #861F50;
    display: flex;
    justify-content: center;
    align-items: center;
}

    .full-glass-dialog .e-dlg-header-content {
        background-color: transparent !important;
        color: #861F50;
        display: none !important;
        /* border-bottom: 1px solid rgba(255,255,255,0.2); */
    }

.birthday-dialog .e-icon-btn {
    background: none !important;
}

.e-dialog.full-glass-dialog {
    top: 0 !important;
    left: 0 !important;
}

.birthday-modal-content {
    color: #861F50;
}
/* ================= GLASS EFFECT ================= */
.glass-card {
    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
    background: rgba(255, 255, 255, 0.8);
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: 22px;
    box-shadow: 0 8px 15px rgba(0, 0, 0, 0.05);
    color: white;
    /* transition: all 0.4s ease; */
    justify-content: flex-start;
}

    .glass-card:hover {
        /* transform: translateY(-2px);
        box-shadow: 0 12px 40px rgba(0,0,0,0.15); */
    }

    .glass-card .e-card-header {
        margin-bottom: 20px;
    }

/* ================= PERSON ROW ================= */
.person-row {
    display: flex;
    align-items: center;
    background: rgba(250, 208, 196, 0.15);
    padding: 10px 15px;
    border-radius: 10px;
    margin-bottom: 10px;
    transition: all 0.3s ease;
}

    .person-row:hover {
        background: rgba(250, 208, 196, 0.25);
        transform: translateY(-2px);
        box-shadow: 0 12px 40px rgba(0,0,0,0.15);
    }

    .person-row img {
        width: 42px;
        height: 42px;
        border-radius: 50%;
        margin-right: 10px;
    }


.date-badge {
    padding: 4px 12px;
    border-radius: 20px;
    font-size: 12px;
    background: bisque;
}

    .date-badge .bi {
        color: #ff4d6d;
    }

.festival-img {
    width: 75px;
    height: 75px;
    border-radius: 50%;
    border: 3px solid #C32D7A;
}

.birthdays {
    border-left: 4px solid #e76f9a;
}

    .birthdays:hover {
        border-left: 4px solid #ff4d6d;
    }

    .birthdays img {
        border: 2px solid #e76f9a;
        box-shadow: 0px 0px 10px 2px rgba(165,62,107,0.02) inset;
        -webkit-box-shadow: 0px 0px 12px 2px rgba(165,62,107,0.02) inset;
        -moz-box-shadow: 0px 0px 12px 2px rgba(165,62,107,0.02) inset;
    }

    .birthdays:hover img {
        border: 2px solid #ff4d6d;
    }

.anniversaries {
    border-left: 4px solid #6CA94C;
}

    .anniversaries:hover {
        border-left: 4px solid #2AA185;
    }

    .anniversaries img {
        border: 2px solid #6CA94C;
        box-shadow: 0px 0px 10px 2px rgba(165,62,107,0.02) inset;
        -webkit-box-shadow: 0px 0px 12px 2px rgba(165,62,107,0.02) inset;
        -moz-box-shadow: 0px 0px 12px 2px rgba(165,62,107,0.02) inset;
    }

    .anniversaries:hover img {
        border: 2px solid #2AA185;
    }
@keyframes floatRibbon {
    0% {
        transform: translateY(0px);
    }

    50% {
        transform: translateY(-20px);
    }

    100% {
        transform: translateY(0px);
    }
}

@keyframes popIn {
    from {
        opacity: 0;
        transform: scale(0.85);
    }

    to {
        opacity: 1;
        transform: scale(1);
    }
}

/* =====================================================
   SITE.CSS ADDITIONS
   Employee Management & Reusable UI Components
   Add these to your existing site.css file
   ===================================================== */

/* =====================
   PAGE HEADER SECTION
   ===================== */
.page-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px 0 14px 0;
    border-bottom: 1px solid var(--border-color);
    
}

.page-header-left h2 {
    margin: 0;
    padding: 0;
    font-size: 1.3rem;
    font-weight: 700;
    color: var(--text-main);
    letter-spacing: -0.3px;
}

.page-header-left .page-subtitle {
    font-size: 12px;
    color: var(--text-muted);
    font-weight: 400;
    margin-top: 2px;
}

.page-header-right {
    display: flex;
    align-items: center;
    gap: 10px;
}

/* =====================
   SECTION CARD
   ===================== */
.section-card {
    background: var(--bg-surface);
    border-radius: var(--radius-md);
    border: 1px solid var(--border-color);
    box-shadow: var(--shadow-soft);
    padding: 20px 24px;
    margin-bottom: 16px;
}

.section-card-title {
    font-size: 13px;
    font-weight: 700;
    color: var(--color-primary);
    text-transform: uppercase;
    letter-spacing: 0.6px;
    margin-bottom: 16px;
    padding-bottom: 10px;
    border-bottom: 1px dashed var(--border-color);
    display: flex;
    align-items: center;
    gap: 8px;
}

    .section-card-title i {
        font-size: 15px;
        opacity: 0.75;
    }

/* =====================
   FORM LAYOUT HELPERS
   ===================== */
.form-row-gap {
    row-gap: 18px;
}

.field-wrap {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.field-label {
    font-size: 12px;
    font-weight: 600;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 4px;
}

/* =====================
   GRID / TABLE ENHANCEMENTS
   ===================== */
.grid-wrapper {
    background: var(--bg-surface);
    border-radius: var(--radius-md);
    border: 1px solid var(--border-color);
    box-shadow: var(--shadow-soft);
    overflow: hidden;
}

/* Emp Code pill */
.emp-code-pill {
    display: inline-block;
    color: var(--color-primary);
    padding: 2px 10px;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.4px;
}

/* Avatar + Name combo in grid */
.emp-name-cell {
    display: flex;
    align-items: center;
    gap: 10px;
}

.emp-avatar {
    width: 30px;
    height: 30px;
    border-radius: 50%;
    background: linear-gradient(135deg, #2F71A0, #1C498C);
    color: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    font-weight: 700;
    flex-shrink: 0;
}

.emp-fullname {
    font-weight: 600;
    font-size: 13px;
    color: var(--text-main);
    text-transform: uppercase;
}

/* Status badge variants */
.status-active {
    background: #dcfce7;
    color: #166534;
    padding: 3px 10px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 600;
}

.status-inactive {
    background: #fee2e2;
    color: #991b1b;
    padding: 3px 10px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 600;
}

/* =====================
   DIALOG / MODAL OVERRIDES
   ===================== */
.e-dlg-overlay {
    inset: 0 !important;
    height: 100vh !important;
    position: fixed !important;
    width: 100vw !important;
    z-index: 4000 !important;
}

.e-dlg-container {
    inset: 0 !important;
    position: fixed !important;
    z-index: 4001 !important;
}

.e-dlg-container .e-dialog {
    z-index: 4002 !important;
}

.dialog-form-wrap {
    padding: 4px 2px;
}

.dialog-section {
    background: #F8FAFD;
    border: 1px solid #E4ECF7;
    border-radius: var(--radius-md);
    padding: 18px 20px 20px;
    margin-bottom: 16px;
}

.dialog-section-title {
    font-size: 12px;
    font-weight: 700;
    color: var(--color-primary);
    text-transform: uppercase;
    letter-spacing: 0.6px;
    margin-bottom: 16px;
    display: flex;
    align-items: center;
    gap: 6px;
}

    .dialog-section-title::before {
        content: '';
        width: 3px;
        height: 14px;
        background: var(--color-primary);
        border-radius: 2px;
        display: inline-block;
    }

/* =====================
   TOOLBAR AREA
   ===================== */
.grid-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 12px 16px;
    background: var(--bg-surface);
    border-bottom: 1px solid var(--border-color);
    gap: 12px;
    flex-wrap: wrap;
}

.grid-toolbar-left {
    display: flex;
    align-items: center;
    gap: 8px;
}

.grid-toolbar-right {
    display: flex;
    align-items: center;
    gap: 8px;
}

/* Record count chip */
.record-count-chip {
    background: #EFF4FA;
    color: var(--color-primary);
    border-radius: 20px;
    padding: 3px 12px;
    font-size: 12px;
    font-weight: 700;
}

/* =====================
   EMPTY STATE
   ===================== */
.empty-state {
    text-align: center;
    padding: 60px 20px;
    color: var(--text-muted);
}

    .empty-state i {
        font-size: 48px;
        opacity: 0.25;
        display: block;
        margin-bottom: 12px;
    }

    .empty-state p {
        font-size: 14px;
        font-weight: 500;
        margin: 0;
    }

/* =====================
   LOADING OVERLAY
   ===================== */
.loading-overlay {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 40px;
    gap: 10px;
    color: var(--text-muted);
    font-size: 13px;
}

/* =====================
   INFO ROW (key-value display)
   ===================== */
.info-row {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    padding: 6px 0;
    border-bottom: 1px solid #f1f5f9;
    font-size: 13px;
}

    .info-row:last-child {
        border-bottom: none;
    }

.info-label {
    min-width: 140px;
    color: var(--text-muted);
    font-weight: 500;
    flex-shrink: 0;
}

.info-value {
    color: var(--text-main);
    font-weight: 600;
}

/* =====================
   UTILITY CLASSES
   ===================== */
.text-primary-brand {
    color: var(--color-primary) !important;
}

.fw-700 {
    font-weight: 700 !important;
}

.fs-12 {
    font-size: 12px !important;
}

.fs-13 {
    font-size: 13px !important;
}

.gap-8 {
    gap: 8px !important;
}

.rounded-pill-sm {
    border-radius: 999px;
}

.border-primary-left {
    border-left: 3px solid var(--color-primary);
    padding-left: 10px;
}

/* =====================
   RESPONSIVE
   ===================== */
@media (max-width: 768px) {
    .page-header {
        flex-direction: column;
        align-items: flex-start;
        gap: 10px;
    }

    .grid-toolbar {
        flex-direction: column;
        align-items: flex-start;
    }

    .dialog-section {
        padding: 14px;
    }
}

/* =====================================================
   SITE.CSS — Leave Allocated Page Additions
   Add these to your existing site.css
   ===================================================== */

/* =====================
   LEAVE BALANCE CHIPS
   ===================== */
.leave-chip {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 3px 10px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 700;
}

.leave-chip-allocated {
    background: #EFF4FA;
    color: var(--color-primary);
}

.leave-chip-availed {
    background: #fef3c7;
    color: #92400e;
}

.leave-chip-balance {
    background: #dcfce7;
    color: #166534;
}

    .leave-chip-balance.low {
        background: #fee2e2;
        color: #991b1b;
    }

/* =====================
   LEAVE TYPE BADGE
   ===================== */
.leave-type-badge {
    display: inline-block;
    color: #3B5FC0;
    padding: 2px 10px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.5px;
    text-transform: uppercase;
}

/* =====================
   FINANCIAL YEAR DISPLAY
   ===================== */
.fy-text {
    font-size: 12px;
    color: var(--text-muted);
    font-weight: 600;
    display: flex;
    align-items: center;
    gap: 4px;
}

    .fy-text i {
        font-size: 13px;
        color: var(--color-primary);
        opacity: 0.7;
    }

* =====================
STATUS PILLS
===================== */
.status-pill {
    border-radius: 999px;
    font-size: 11px;
    font-weight: 700;
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 4px 12px;
    letter-spacing: 0.3px;
    text-transform: uppercase;
}

.status-pill::before {
    content: '';
    width: 6px;
    height: 6px;
    border-radius: 50%;
    flex-shrink: 0;
}

.status-pill.pending {
    background: #fef9ec;
    color: #92400e;
    border: 1px solid #fde68a;
}

    .status-pill.pending::before {
        background: #f59e0b;
    }

.status-pill.approved {
    background: #f0fdf4;
    color: #166534;
    border: 1px solid #bbf7d0;
}

    .status-pill.approved::before {
        background: #22c55e;
    }

.status-pill.rejected {
    background: #fff1f2;
    color: #9f1239;
    border: 1px solid #fecdd3;
}

    .status-pill.rejected::before {
        background: #f43f5e;
    }

.status-pill.cancelled {
    background: #f8fafc;
    color: #475569;
    border: 1px solid #cbd5e1;
}

    .status-pill.cancelled::before {
        background: #94a3b8;
    }

.status-pill.processed {
    background: #f5f3ff;
    color: #5b21b6;
    border: 1px solid #ddd6fe;
}

    .status-pill.processed::before {
        background: #7c3aed;
    }

/* =====================
   ACTION ICON BUTTONS
   ===================== */
.action-icon-btn {
    width: 30px;
    height: 30px;
    border-radius: 8px;
    border: none;
    background: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    font-size: 15px;
    transition: background 0.15s, transform 0.1s;
    outline: none;
    text-decoration: none;
}

    .action-icon-btn.approve {
        color: #16a34a;
    }

        .action-icon-btn.approve:hover {
            background: #dcfce7;
            transform: scale(1.1);
        }

    .action-icon-btn.decline {
        color: #dc2626;
    }

        .action-icon-btn.decline:hover {
            background: #fee2e2;
            transform: scale(1.1);
        }

/* =====================
   LEAVE DAYS BADGE
   ===================== */
.leave-days-badge {
    display: inline-block;
    background: #EFF4FA;
    color: var(--color-primary);
    border-radius: 6px;
    padding: 2px 10px;
    font-size: 12px;
    font-weight: 700;
    min-width: 36px;
    text-align: center;
}

/* =====================
   DATE RANGE DISPLAY
   ===================== */
.date-range-cell {
    display: flex;
    flex-direction: column;
    gap: 1px;
    font-size: 12px;
}

    .date-range-cell .date-from {
        font-weight: 700;
        color: var(--text-main);
    }

    .date-range-cell .date-to {
        color: var(--text-muted);
        font-weight: 500;
    }

    .date-range-cell .date-arrow {
        color: var(--text-muted);
        font-size: 10px;
        margin: 0 2px;
    }

/* =====================
   SKELETON LOADER ROWS
   ===================== */
.skeleton-row {
    display: flex;
    gap: 12px;
    padding: 14px 16px;
    border-bottom: 1px solid var(--border-color);
    align-items: center;
}

.skeleton-cell {
    height: 14px;
    border-radius: 6px;
    background: linear-gradient(90deg, #f0f4f8 25%, #e2e8f0 50%, #f0f4f8 75%);
    background-size: 200% 100%;
    animation: shimmer 1.4s infinite;
}

@keyframes shimmer {
    0% {
        background-position: 200% 0;
    }

    100% {
        background-position: -200% 0;
    }
}

/* =====================
   EMPTY / ERROR STATE
   ===================== */
.leave-empty-state {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 60px 20px;
    color: var(--text-muted);
    gap: 10px;
}

    .leave-empty-state i {
        font-size: 40px;
        opacity: 0.2;
    }

    .leave-empty-state p {
        font-size: 14px;
        font-weight: 500;
        margin: 0;
    }

/* =====================
   REASON TEXT
   ===================== */
.reason-text {
    max-width: 180px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    font-size: 13px;
    color: var(--text-muted);
    display: block;
}

/* =====================================================
   SITE.CSS — Salary Structure Additions
   ===================================================== */

/* =====================
   SALARY AMOUNT CELL
   ===================== */
.salary-amount {
    font-size: 13px;
    font-weight: 600;
    color: var(--text-main);
    font-variant-numeric: tabular-nums;
}

/* =====================
   GROSS SALARY CHIP (grid)
   ===================== */
.gross-chip {
    display: inline-block;
    color: var(--color-primary);
    padding: 3px 10px;
    font-size: 12px;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
}

/* =====================
   GROSS SALARY DISPLAY (dialog)
   ===================== */
.gross-salary-display {
    display: flex;
    flex-direction: column;
    justify-content: center;
    background: linear-gradient(135deg, #EFF4FA, #dbeafe);
    border: 1px solid #bfdbfe;
    border-radius: var(--radius-md);
    padding: 10px 16px;
    height: 56px;
    gap: 2px;
}

.gross-label {
    font-size: 11px;
    font-weight: 600;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.gross-value {
    font-size: 18px;
    font-weight: 700;
    color: var(--color-primary);
    font-variant-numeric: tabular-nums;
    line-height: 1.2;
}

/* =====================================================
   PAYROLL ENTRY PAGE — Additional Classes
   ===================================================== */

/* Salary structure preview bar */
.salary-structure-preview {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    background: #F8FAFD;
    border: 1px solid #E4ECF7;
    border-radius: var(--radius-md);
    padding: 12px 16px;
}

.preview-item {
    display: flex;
    flex-direction: column;
    padding: 6px 14px;
    border-right: 1px solid #e4ecf7;
    min-width: 80px;
}

    .preview-item:last-child {
        border-right: none;
    }

.preview-label {
    font-size: 11px;
    color: var(--text-muted);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.4px;
}

.preview-val {
    font-size: 14px;
    font-weight: 700;
    color: var(--text-main);
    font-variant-numeric: tabular-nums;
}

.preview-item.preview-gross .preview-val {
    color: var(--color-primary);
    font-size: 16px;
}

/* Earnings / Deductions table */
.payroll-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
}

    .payroll-table thead tr th {
        background: #f2f4f7;
        padding: 8px 10px;
        font-size: 11px;
        font-weight: 700;
        text-transform: uppercase;
        color: var(--text-muted);
        letter-spacing: 0.4px;
        border-bottom: 1px solid var(--border-color);
    }

    .payroll-table tbody tr td {
        padding: 6px 8px;
        border-bottom: 1px solid #f1f5f9;
        vertical-align: middle;
    }

    .payroll-table tbody tr:last-child td {
        border-bottom: none;
    }

    .payroll-table tfoot tr td {
        padding: 10px 10px 6px;
        border-top: 2px solid var(--border-color);
    }

.payroll-total-label {
    font-size: 12px;
    font-weight: 700;
    color: var(--text-muted);
    text-transform: uppercase;
}

.payroll-total-value {
    font-size: 15px;
    font-weight: 700;
    color: var(--color-primary);
    font-variant-numeric: tabular-nums;
}

/* Net Pay summary bar */
.net-pay-bar {
    display: flex;
    align-items: center;
    gap: 0;
    background: var(--bg-surface);
    border: 1px solid var(--border-color);
    border-radius: var(--radius-md);
    padding: 14px 24px;
    box-shadow: var(--shadow-soft);
}

.net-pay-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    flex: 1;
}

.net-pay-sep {
    font-size: 22px;
    font-weight: 300;
    color: var(--text-muted);
    padding: 0 16px;
}

.net-label {
    font-size: 11px;
    font-weight: 600;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.4px;
}

.net-value {
    font-size: 18px;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    color: var(--text-main);
}

.net-pay-highlight {
    background: linear-gradient(135deg, #EFF4FA, #dbeafe);
    border-radius: var(--radius-md);
    padding: 10px 24px;
    border: 1px solid #bfdbfe;
}

    .net-pay-highlight .net-value {
        color: var(--color-primary);
        font-size: 22px;
    }

/* =====================================================
   QUOTATION MANAGEMENT PAGE
   ===================================================== */

/* ── Page wrapper ── */
.qt-page {
    padding: 1.5rem 1.25rem 2rem;
}

/* ── Filter bar grid ── */
.qt-filters {
    display: grid;
    grid-template-columns: 1.2fr 1fr 1fr 1fr 140px 140px 36px;
    gap: 8px;
    margin-bottom: 1.25rem;
    align-items: center;
}

.filter-wrap {
    position: relative;
}

.filter-icon {
    position: absolute;
    left: 10px;
    top: 50%;
    transform: translateY(-50%);
    pointer-events: none;
    color: #9ca3af;
    font-size: 13px;
    z-index: 1;
}

.filter-wrap .e-input-group {
    padding-left: 28px !important;
}

/* Reset button */
.btn-reset {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: var(--radius-sm);
    border: 0.5px solid #fca5a5;
    background: #fef2f2;
    color: #dc2626;
    cursor: pointer;
    transition: all 0.15s;
    font-size: 14px;
}

    .btn-reset:hover {
        background: #fee2e2;
        border-color: #f87171;
    }

/* ── Page title ── */
.qt-title {
    font-size: 22px;
    font-weight: 700;
    color: var(--color-primary);
    letter-spacing: -0.5px;
}

/* ── Add button ── */
.btn-add {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 16px;
    font-size: 13px;
    font-weight: 600;
    border: none;
    border-radius: var(--radius-sm);
    background: linear-gradient(155deg, #2F71A0, #1C498C);
    color: #fff;
    cursor: pointer;
    transition: background 0.15s;
    font-family: var(--fontfamily-manrope);
}

    .btn-add:hover {
        background: linear-gradient(155deg, #1C498C, #1C498C);
    }

    .btn-add i {
        font-size: 13px;
    }

/* ── Main table wrapper ── */
.qt-table-wrap {
    border: 0.5px solid var(--border-color);
    border-radius: var(--radius-lg);
    overflow: hidden;
}

.qt-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
}

    .qt-table thead th {
        padding: 11px 16px;
        font-size: 11px;
        font-weight: 700;
        letter-spacing: 0.07em;
        text-transform: uppercase;
        color: var(--text-muted);
        background: #f8fafc;
        border-bottom: 0.5px solid var(--border-color);
        white-space: nowrap;
    }

    .qt-table tbody tr {
        border-bottom: 0.5px solid #f1f5f9;
        transition: background 0.1s;
    }

        .qt-table tbody tr:last-child {
            border-bottom: none;
        }

        .qt-table tbody tr:hover {
            background: #f8fafc;
        }

    .qt-table tbody td {
        padding: 13px 16px;
        color: var(--text-main);
        vertical-align: middle;
    }

.col-right {
    text-align: right;
}

.col-center {
    text-align: center;
}

/* ── Cell type classes ── */
.qt-link {
    font-size: 12.5px;
    font-weight: 700;
    color: var(--color-primary);
    background: none;
    border: none;
    padding: 0;
    cursor: pointer;
    letter-spacing: 0.01em;
    font-family: var(--fontfamily-manrope);
}

    .qt-link:hover {
        text-decoration: underline;
    }

.td-name {
    font-weight: 600;
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: var(--text-main);
}

.td-sp {
    font-size: 12.5px;
    font-weight: 600;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.td-date {
    color: var(--text-muted);
    font-size: 12.5px;
    font-weight: 500;
}

.td-num {
    font-variant-numeric: tabular-nums;
}

.td-net {
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    color: var(--text-main);
}

.td-row-num {
    color: #94a3b8;
    font-size: 12px;
    font-weight: 500;
}

/* Entry type pill */
.td-entry {
    display: inline-flex;
    align-items: center;
    padding: 3px 9px;
    border-radius: var(--radius-sm);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.05em;
}

.td-entry-buy {
    background: #eff6ff;
    color: #1d4ed8;
}

.td-entry-sell {
    background: #f0fdf4;
    color: #15803d;
}

/* ── Status badges ── */
.badge-draft {
    background: #f8fafc;
    color: #475569;
    border: 0.5px solid #e2e8f0;
}

.badge-invoiced {
    background: #ede9fe;
    color: #5b21b6;
}

.badge-paid {
    background: #ecfdf5;
    color: #065f46;
}

.badge-onhold {
    background: #fff7ed;
    color: #c2410c;
}

.badge-overdue {
    background: #fef2f2;
    color: #991b1b;
}

/* ── Action buttons (table row) ── */
.action-group {
    display: inline-flex;
    align-items: center;
    gap: 4px;
}

.btn-action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border-radius: 7px;
    border: 0.5px solid var(--border-color);
    background: #fff;
    color: var(--text-muted);
    cursor: pointer;
    transition: all 0.15s;
    font-size: 13px;
    outline: none;
}

    .btn-action:hover:not(:disabled) {
        border-color: #cbd5e1;
        color: var(--text-main);
        background: #f8fafc;
    }

    .btn-action:disabled {
        opacity: 0.3;
        cursor: not-allowed;
    }

/* ── Emailed-to-customer marker ──
   A quotation or invoice that has been mailed keeps a green envelope on its row permanently.
   The toast that follows a send lasts three seconds and never arrives at all if the response is
   lost, so this - read back from the send log - is what actually answers "did it go out?".
   Re-sending stays available: a revised quotation is meant to be sent again. */
.btn-action.mailed {
    position: relative;
    border-color: #86efac;
    color: #16a34a;
    background: #f0fdf4;
}

    .btn-action.mailed:hover:not(:disabled) {
        border-color: #4ade80;
        color: #15803d;
        background: #dcfce7;
    }

    /* Sent more than once - the count sits on the corner of the envelope. */
    .btn-action.mailed .mail-count {
        position: absolute;
        top: -5px;
        right: -5px;
        min-width: 14px;
        height: 14px;
        padding: 0 3px;
        border-radius: 7px;
        background: #16a34a;
        color: #fff;
        font-size: 9px;
        font-weight: 600;
        line-height: 14px;
        text-align: center;
    }

/* ── Expand / Line-items row ── */
.expand-row > td {
    background: #f1f5f9 !important;
    padding: 0 !important;
    border-bottom: 0.5px solid var(--border-color) !important;
}

.expand-inner {
    padding: 20px 24px 22px 60px;
}

.expand-label {
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: #94a3b8;
    margin-bottom: 12px;
}

.sub-wrap {
    min-width: 600px;
    width: auto;
    border: 0.5px solid #e2e8f0;
    border-radius: var(--radius-md);
    overflow: hidden;
    background: #fff;
    box-shadow: var(--shadow-soft);
}

.sub-table {
    width: 100%;
    border-collapse: collapse;
}

    .sub-table thead tr {
        background: #f8fafc;
        border-bottom: 0.5px solid #e2e8f0;
    }

    .sub-table thead th {
        padding: 11px 18px;
        font-size: 10.5px;
        font-weight: 700;
        text-transform: uppercase;
        letter-spacing: 0.08em;
        color: var(--text-muted);
        white-space: nowrap;
    }

        .sub-table thead th.sub-right {
            text-align: right;
        }

    .sub-table tbody tr {
        border-bottom: 0.5px solid #f1f5f9;
        transition: background 0.1s;
    }

        .sub-table tbody tr:last-child {
            border-bottom: none;
        }

        .sub-table tbody tr:hover {
            background: #f8fafc;
        }

    .sub-table tbody td {
        padding: 13px 18px;
        font-size: 13px;
        font-weight: 500;
        color: var(--text-main);
    }

        .sub-table tbody td.sub-right {
            text-align: right;
            font-variant-numeric: tabular-nums;
        }

.sub-td-item {
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.02em;
}

.sub-td-qty {
    color: var(--text-muted);
    font-weight: 600;
}

.sub-td-price {
    color: var(--text-muted);
}

.sub-td-comm {
    color: #7c3aed;
    font-weight: 600;
}

.sub-td-total {
    font-weight: 700;
    color: var(--text-main);
    font-size: 13.5px;
}

.sub-empty {
    padding: 18px 20px;
    font-size: 13px;
    color: #94a3b8;
    font-style: italic;
}

/* ── Table footer / pagination ── */
.qt-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 2px 0;
}

.footer-info {
    font-size: 12.5px;
    color: var(--text-muted);
    font-weight: 500;
}

.btn-page {
    padding: 5px 12px;
    font-size: 12.5px;
    border-radius: var(--radius-sm);
    border: 0.5px solid #e2e8f0;
    background: #fff;
    color: var(--text-main);
    cursor: pointer;
    transition: background 0.12s;
    font-weight: 600;
    font-family: var(--fontfamily-manrope);
}

    .btn-page:hover:not(:disabled) {
        background: #f8fafc;
        border-color: #cbd5e1;
    }

    .btn-page:disabled {
        opacity: 0.35;
        cursor: not-allowed;
    }

    .btn-page.active {
        background: var(--color-primary);
        color: #fff;
        border-color: var(--color-primary);
    }

/* ── Loading state ── */
.qt-loading {
    display: flex;
    justify-content: center;
    align-items: center;
    height: 200px;
}

/* =====================================================
   QUOTATION MODAL
   ===================================================== */

.qt-modal-backdrop {
    position: fixed;
    inset: 0;
    z-index: 1040;
    background: rgba(15, 23, 42, 0.45);
}

.qt-modal-wrap {
    position: fixed;
    inset: 0;
    z-index: 1050;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem;
}

.qt-modal {
    background: #fff;
    border-radius: var(--radius-lg);
    border: 0.5px solid #e2e8f0;
    width: 100%;
    max-width: 880px;
    max-height: 90vh;
    overflow-y: auto;
    box-shadow: 0 20px 60px rgba(15, 23, 42, 0.18);
}

.qt-modal-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 18px 24px;
    border-bottom: 0.5px solid var(--border-color);
    position: sticky;
    top: 0;
    background: #fff;
    z-index: 2;
    border-radius: var(--radius-lg) var(--radius-lg) 0 0;
}

.qt-modal-title {
    font-size: 16px;
    font-weight: 700;
    color: var(--text-main);
}

.btn-close-modal {
    background: none;
    border: none;
    cursor: pointer;
    color: #94a3b8;
    font-size: 22px;
    line-height: 1;
    transition: color 0.15s;
}

    .btn-close-modal:hover {
        color: var(--text-main);
    }

.qt-modal-body {
    padding: 24px;
}

.qt-modal-footer {
    padding: 16px 24px;
    border-top: 0.5px solid var(--border-color);
    display: flex;
    justify-content: flex-end;
    gap: 8px;
    position: sticky;
    bottom: 0;
    background: #fff;
    z-index: 2;
    border-radius: 0 0 var(--radius-lg) var(--radius-lg);
}

/* ── Line items table (modal) ── */
.li-table-wrap {
    border: 0.5px solid var(--border-color);
    border-radius: var(--radius-md);
    overflow: hidden;
    margin-bottom: 20px;
}

.li-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
}

    .li-table thead th {
        padding: 10px 14px;
        font-size: 10.5px;
        font-weight: 700;
        text-transform: uppercase;
        letter-spacing: 0.07em;
        color: var(--text-muted);
        background: #f8fafc;
        border-bottom: 0.5px solid var(--border-color);
        white-space: nowrap;
    }

        .li-table thead th.li-right {
            text-align: right;
        }

    .li-table tbody tr {
        border-bottom: 0.5px solid #f1f5f9;
    }

        .li-table tbody tr:last-child {
            border-bottom: none;
        }

    .li-table tbody td {
        padding: 10px 14px;
        vertical-align: middle;
    }

        .li-table tbody td.li-right {
            text-align: right;
        }

/* ── Amount summary cards (modal) ── */
.amount-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
}

/* ── Modal action buttons ── */
.btn-cancel {
    padding: 8px 18px;
    font-size: 13px;
    border-radius: var(--radius-sm);
    border: 0.5px solid #e2e8f0;
    background: #fff;
    color: #374151;
    cursor: pointer;
    font-weight: 600;
    font-family: var(--fontfamily-manrope);
}

    .btn-cancel:hover {
        background: #f8fafc;
    }

.btn-save {
    padding: 8px 18px;
    font-size: 13px;
    border-radius: var(--radius-sm);
    border: none;
    background: linear-gradient(155deg, #2F71A0, #1C498C);
    color: #fff;
    cursor: pointer;
    font-weight: 700;
    font-family: var(--fontfamily-manrope);
    transition: background 0.15s;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    height: 36px;
}

    .btn-save:hover:not(:disabled) {
        background: linear-gradient(155deg, #1C498C, #1C498C);
    }

    .btn-save:disabled {
        opacity: 0.5;
        cursor: not-allowed;
    }

/* =====================================================
   RESPONSIVE — QUOTATION PAGE
   ===================================================== */
@media (max-width: 1024px) {
    .qt-filters {
        grid-template-columns: 1fr 1fr 1fr;
    }
}

@media (max-width: 768px) {
    .qt-filters {
        grid-template-columns: 1fr 1fr;
    }

    .amount-grid {
        grid-template-columns: 1fr;
    }

    .sub-wrap {
        min-width: 100%;
    }
}

/* =====================================================
   QUOTATION MODAL — PROFESSIONAL REDESIGN
   ===================================================== */

/* Wider modal */
.qt-modal-xl {
    max-width: 1020px !important;
}

/* ── Modal Header ── */
.qt-modal-header-left {
    display: flex;
    align-items: center;
    gap: 14px;
}

.qt-modal-icon {
    width: 42px;
    height: 42px;
    border-radius: 10px;
    background: #EFF4FA;
    color: var(--color-primary);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
    flex-shrink: 0;
}

.qt-modal-subtitle {
    font-size: 12px;
    color: var(--text-muted);
    font-weight: 500;
    margin-top: 1px;
}

/* ── Section blocks ── */
.qm-section {
    border: 0.5px solid var(--border-color);
    border-radius: var(--radius-md);
    overflow: hidden;
    margin-bottom: 16px;
}

.qm-section-header {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 11px 18px;
    background: #f8fafc;
    border-bottom: 0.5px solid var(--border-color);
}

.qm-section-icon {
    color: var(--color-primary);
    font-size: 15px;
    display: flex;
    align-items: center;
}

.qm-section-title {
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    color: var(--text-main);
}

.qm-section-badge {
    margin-left: auto;
    background: #EFF4FA;
    color: var(--color-primary);
    border-radius: 20px;
    padding: 2px 10px;
    font-size: 11px;
    font-weight: 700;
}

.qm-section-body {
    padding: 20px;
    background: #fff;
}

/* ── Field with label ── */
.qm-field {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.qm-label {
    font-size: 12px;
    font-weight: 700;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-bottom: 0;
}

.qm-required {
    color: #dc2626;
    margin-left: 2px;
}

.qm-optional {
    color: #94a3b8;
    font-weight: 400;
    text-transform: none;
    letter-spacing: 0;
    font-size: 11px;
}

.qm-error {
    font-size: 11px;
    color: #dc2626;
    font-weight: 500;
    margin-top: 2px;
}

/* Customer dropdown item */
.qm-customer-item {
    padding: 2px 0;
}

/* ── Line item action buttons ── */
.qm-btn-add {
    border-color: #bfdbfe !important;
    color: #2563eb !important;
    background: #eff6ff !important;
}

    .qm-btn-add:hover:not(:disabled) {
        background: #dbeafe !important;
        border-color: #93c5fd !important;
    }

.qm-btn-del {
    border-color: #fca5a5 !important;
    color: #dc2626 !important;
    background: #fef2f2 !important;
}

    .qm-btn-del:hover:not(:disabled) {
        background: #fee2e2 !important;
        border-color: #f87171 !important;
    }

/* ── Amount Summary Row ── */
.qm-amount-row {
    display: flex;
    align-items: stretch;
    gap: 0;
    background: #fff;
    border-radius: var(--radius-md);
    border: 0.5px solid var(--border-color);
    overflow: hidden;
}

.qm-amount-card {
    flex: 1;
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 18px 22px;
    transition: background 0.15s;
}

    .qm-amount-card:hover {
        background: #f8fafc;
    }

.qm-amount-card-highlight {
    background: #f0fdf4;
}

    .qm-amount-card-highlight:hover {
        background: #dcfce7;
    }

.qm-amount-divider {
    width: 0.5px;
    background: var(--border-color);
    flex-shrink: 0;
    align-self: stretch;
}

.qm-amount-icon {
    width: 40px;
    height: 40px;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 17px;
    flex-shrink: 0;
}

.qm-amount-icon-gray {
    background: #f1f5f9;
    color: #475569;
}

.qm-amount-icon-purple {
    background: #ede9fe;
    color: #7c3aed;
}

.qm-amount-icon-green {
    background: #dcfce7;
    color: #16a34a;
}

.qm-amount-info {
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.qm-amount-label {
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--text-muted);
}

.qm-amount-value {
    font-size: 1.2rem;
    font-weight: 700;
    color: var(--text-main);
    font-variant-numeric: tabular-nums;
    line-height: 1.2;
}

/* ── Modal footer buttons ── */
.btn-cancel i,
.btn-save i {
    font-size: 12px;
}

/* =====================================================
   CRM PAGES — QUOTATION, INVOICE, PURCHASE, CONVERT
   Add this entire block at the END of site.css
   Replace any previously added quotation_additions.css
   ===================================================== */

/* ── Page wrapper ── */
.qt-page {
    padding: 1.5rem 1.25rem 2rem;
}

/* ── Page title ── */
.qt-title {
    font-size: 22px;
    font-weight: 700;
    color: var(--color-primary);
    letter-spacing: -0.5px;
}

/* ── Page subtitle (already in site.css via .page-header-left .page-subtitle) ── */
.page-subtitle {
    font-size: 12px;
    color: var(--text-muted);
    font-weight: 400;
    margin-top: 2px;
}

/* =====================
   FILTER BAR
   ===================== */
.qt-filters {
    display: grid;
    grid-template-columns: 1.2fr 1fr 1fr 1fr 140px 140px 36px;
    gap: 8px;
    margin-bottom: 1.25rem;
    align-items: center;
}

.filter-wrap {
    position: relative;
}

.filter-icon {
    position: absolute;
    left: 10px;
    top: 50%;
    transform: translateY(-50%);
    pointer-events: none;
    color: #9ca3af;
    font-size: 13px;
    z-index: 1;
}

.filter-wrap .e-input-group {
    padding-left: 28px !important;
}

.btn-reset {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: var(--radius-sm);
    border: 0.5px solid #fca5a5;
    background: #fef2f2;
    color: #dc2626;
    cursor: pointer;
    transition: all 0.15s;
    font-size: 14px;
}

    .btn-reset:hover {
        background: #fee2e2;
        border-color: #f87171;
    }

/* =====================
   ADD / SAVE / CANCEL BUTTONS
   ===================== */
.btn-add {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 16px;
    font-size: 13px;
    font-weight: 600;
    border: none;
    border-radius: var(--radius-sm);
    background: linear-gradient(155deg, #2F71A0, #1C498C);
    color: #fff;
    cursor: pointer;
    transition: background 0.15s;
    font-family: var(--fontfamily-manrope);
}

    .btn-add:hover {
        background: linear-gradient(155deg, #1C498C, #1C498C);
    }

    .btn-add i {
        font-size: 13px;
    }

.btn-save {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 18px;
    height: 36px;
    font-size: 13px;
    font-weight: 700;
    border: none;
    border-radius: var(--radius-sm);
    background: linear-gradient(155deg, #2F71A0, #1C498C);
    color: #fff;
    cursor: pointer;
    transition: background 0.15s;
    font-family: var(--fontfamily-manrope);
}

    .btn-save:hover:not(:disabled) {
        background: linear-gradient(155deg, #1C498C, #1C498C);
    }

    .btn-save:disabled {
        opacity: 0.5;
        cursor: not-allowed;
    }

    .btn-save i,
    .btn-cancel i {
        font-size: 12px;
    }

.btn-cancel {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 18px;
    font-size: 13px;
    font-weight: 600;
    border-radius: var(--radius-sm);
    border: 0.5px solid #e2e8f0;
    background: #fff;
    color: #374151;
    cursor: pointer;
    font-family: var(--fontfamily-manrope);
    transition: background 0.15s;
}

    .btn-cancel:hover {
        background: #f8fafc;
    }

/* =====================
   TABLE
   ===================== */
.qt-table-wrap {
    border: 0.5px solid var(--border-color);
    border-radius: var(--radius-lg);
    overflow: hidden;
}

.qt-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
}

    .qt-table thead th {
        padding: 11px 16px;
        font-size: 11px;
        font-weight: 700;
        letter-spacing: 0.07em;
        text-transform: uppercase;
        color: var(--text-muted);
        background: #f8fafc;
        border-bottom: 0.5px solid var(--border-color);
        white-space: nowrap;
    }

    .qt-table tbody tr {
        border-bottom: 0.5px solid #f1f5f9;
        transition: background 0.1s;
    }

        .qt-table tbody tr:last-child {
            border-bottom: none;
        }

        .qt-table tbody tr:hover {
            background: #f8fafc;
        }

    .qt-table tbody td {
        padding: 13px 16px;
        color: var(--text-main);
        vertical-align: middle;
    }

.col-right {
    text-align: right;
}

.col-center {
    text-align: center;
}

/* ── Cell helpers ── */
.qt-link {
    font-size: 12.5px;
    font-weight: 700;
    color: var(--color-primary);
    background: none;
    border: none;
    padding: 0;
    cursor: pointer;
    letter-spacing: 0.01em;
    font-family: var(--fontfamily-manrope);
}

    .qt-link:hover {
        text-decoration: underline;
    }

.td-name {
    font-weight: 600;
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: var(--text-main);
}

.td-sp {
    font-size: 12.5px;
    font-weight: 600;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.td-date {
    color: var(--text-muted);
    font-size: 12.5px;
    font-weight: 500;
}

.td-num {
    font-variant-numeric: tabular-nums;
}

.td-net {
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    color: var(--text-main);
}

.td-row-num {
    color: #94a3b8;
    font-size: 12px;
    font-weight: 500;
}

/* Entry type pill */
.td-entry {
    display: inline-flex;
    align-items: center;
    padding: 3px 9px;
    border-radius: var(--radius-sm);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.05em;
}

.td-entry-buy {
    background: #eff6ff;
    color: #1d4ed8;
}

.td-entry-sell {
    background: #f0fdf4;
    color: #15803d;
}

/* =====================
   STATUS BADGES
   ===================== */
.status-badge {
    display: inline-block;
    padding: 4px 10px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 700;
    white-space: nowrap;
}

.status-success {
    background: #ecfdf5;
    color: #047857;
}

.status-warning {
    background: #fff7ed;
    color: #c2410c;
}

.status-info {
    background: #ede9fe;
    color: #5b21b6;
}

.status-secondary {
    background: #f3f4f6;
    color: #374151;
}

.status-danger {
    background: #fef2f2;
    color: #b91c1c;
}

/* badge-* variants used in quotation list */
.badge-draft {
    background: #f8fafc;
    color: #475569;
    border: 0.5px solid #e2e8f0;
}

.badge-invoiced {
    background: #ede9fe;
    color: #5b21b6;
}

.badge-paid {
    background: #ecfdf5;
    color: #065f46;
}

.badge-onhold {
    background: #fff7ed;
    color: #c2410c;
}

.badge-overdue {
    background: #fef2f2;
    color: #991b1b;
}

/* =====================
   ACTION BUTTONS
   ===================== */
.action-group {
    display: inline-flex;
    align-items: center;
    gap: 4px;
}

.btn-action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border-radius: 7px;
    border: 0.5px solid var(--border-color);
    background: #fff;
    color: var(--text-muted);
    cursor: pointer;
    transition: all 0.15s;
    font-size: 13px;
    outline: none;
}

    .btn-action:hover:not(:disabled) {
        border-color: #cbd5e1;
        color: var(--text-main);
        background: #f8fafc;
    }

    .btn-action:disabled {
        opacity: 0.3;
        cursor: not-allowed;
    }

/* =====================
   EXPAND / LINE ITEMS ROW
   ===================== */
.expand-row > td {
    background: #f1f5f9 !important;
    padding: 0 !important;
    border-bottom: 0.5px solid var(--border-color) !important;
}

.expand-inner {
    padding: 20px 24px 22px 60px;
}

.expand-label {
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: #94a3b8;
    margin-bottom: 12px;
}

.sub-wrap {
    min-width: 600px;
    width: auto;
    border: 0.5px solid #e2e8f0;
    border-radius: var(--radius-md);
    overflow: hidden;
    background: #fff;
    box-shadow: var(--shadow-soft);
}

.sub-table {
    width: 100%;
    border-collapse: collapse;
}

    .sub-table thead tr {
        background: #f8fafc;
        border-bottom: 0.5px solid #e2e8f0;
    }

    .sub-table thead th {
        padding: 11px 18px;
        font-size: 10.5px;
        font-weight: 700;
        text-transform: uppercase;
        letter-spacing: 0.08em;
        color: var(--text-muted);
        white-space: nowrap;
    }

        .sub-table thead th.sub-right {
            text-align: right;
        }

    .sub-table tbody tr {
        border-bottom: 0.5px solid #f1f5f9;
        transition: background 0.1s;
    }

        .sub-table tbody tr:last-child {
            border-bottom: none;
        }

        .sub-table tbody tr:hover {
            background: #f8fafc;
        }

    .sub-table tbody td {
        padding: 13px 18px;
        font-size: 13px;
        font-weight: 500;
        color: var(--text-main);
    }

        .sub-table tbody td.sub-right {
            text-align: right;
            font-variant-numeric: tabular-nums;
        }

.sub-td-item {
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.02em;
}

.sub-td-qty {
    color: var(--text-muted);
    font-weight: 600;
}

.sub-td-price {
    color: var(--text-muted);
}

.sub-td-comm {
    color: #7c3aed;
    font-weight: 600;
}

.sub-td-total {
    font-weight: 700;
    color: var(--text-main);
    font-size: 13.5px;
}

.sub-empty {
    padding: 18px 20px;
    font-size: 13px;
    color: #94a3b8;
    font-style: italic;
}

/* =====================
   PAGINATION / FOOTER
   ===================== */
.qt-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 2px 0;
}

.footer-info {
    font-size: 12.5px;
    color: var(--text-muted);
    font-weight: 500;
}

.btn-page {
    padding: 5px 12px;
    font-size: 12.5px;
    border-radius: var(--radius-sm);
    border: 0.5px solid #e2e8f0;
    background: #fff;
    color: var(--text-main);
    cursor: pointer;
    transition: background 0.12s;
    font-weight: 600;
    font-family: var(--fontfamily-manrope);
}

    .btn-page:hover:not(:disabled) {
        background: #f8fafc;
        border-color: #cbd5e1;
    }

    .btn-page:disabled {
        opacity: 0.35;
        cursor: not-allowed;
    }

    .btn-page.active {
        background: var(--color-primary);
        color: #fff;
        border-color: var(--color-primary);
    }

/* ── Loading spinner ── */
.qt-loading {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 200px;
}

/* =====================
   MODAL — SHARED
   ===================== */
.qt-modal-backdrop {
    position: fixed;
    inset: 0;
    z-index: 1040;
    background: rgba(15, 23, 42, 0.45);
}

.qt-modal-wrap {
    position: fixed;
    inset: 0;
    z-index: 1050;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem;
}

.qt-modal {
    background: #fff;
    border-radius: var(--radius-lg);
    border: 0.5px solid #e2e8f0;
    width: 100%;
    max-width: 880px;
    max-height: 90vh;
    overflow-y: auto;
    box-shadow: 0 20px 60px rgba(15, 23, 42, 0.18);
}

.qt-modal-xl {
    max-width: 1020px !important;
}

.qt-modal-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 18px 24px;
    border-bottom: 0.5px solid var(--border-color);
    position: sticky;
    top: 0;
    background: #fff;
    z-index: 2;
    border-radius: var(--radius-lg) var(--radius-lg) 0 0;
}

.qt-modal-header-left {
    display: flex;
    align-items: center;
    gap: 14px;
}

.qt-modal-icon {
    width: 42px;
    height: 42px;
    border-radius: 10px;
    background: #EFF4FA;
    color: var(--color-primary);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
    flex-shrink: 0;
}

.qt-modal-title {
    font-size: 16px;
    font-weight: 700;
    color: var(--text-main);
}

.qt-modal-subtitle {
    font-size: 12px;
    color: var(--text-muted);
    font-weight: 500;
    margin-top: 1px;
}

.btn-close-modal {
    background: none;
    border: none;
    cursor: pointer;
    color: #94a3b8;
    font-size: 22px;
    line-height: 1;
    transition: color 0.15s;
}

    .btn-close-modal:hover {
        color: var(--text-main);
    }

.qt-modal-body {
    padding: 24px;
}

.qt-modal-footer {
    padding: 16px 24px;
    border-top: 0.5px solid var(--border-color);
    display: flex;
    justify-content: flex-end;
    gap: 8px;
    position: sticky;
    bottom: 0;
    background: #fff;
    z-index: 2;
    border-radius: 0 0 var(--radius-lg) var(--radius-lg);
}

/* =====================
   MODAL — SECTION BLOCKS
   ===================== */
.qm-section {
    border: 0.5px solid var(--border-color);
    border-radius: var(--radius-md);
    overflow: hidden;
    margin-bottom: 16px;
}

.qm-section-header {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 11px 18px;
    background: #f8fafc;
    border-bottom: 0.5px solid var(--border-color);
}

.qm-section-icon {
    color: var(--color-primary);
    font-size: 15px;
    display: flex;
    align-items: center;
}

.qm-section-title {
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    color: var(--text-main);
}

.qm-section-badge {
    margin-left: auto;
    background: #EFF4FA;
    color: var(--color-primary);
    border-radius: 20px;
    padding: 2px 10px;
    font-size: 11px;
    font-weight: 700;
}

.qm-section-body {
    padding: 20px;
    background: #fff;
}

/* ── Field label ── */
.qm-field {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.qm-label {
    font-size: 12px;
    font-weight: 700;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-bottom: 0;
}

.qm-required {
    color: #dc2626;
    margin-left: 2px;
}

.qm-optional {
    color: #94a3b8;
    font-weight: 400;
    text-transform: none;
    letter-spacing: 0;
    font-size: 11px;
}

.qm-error {
    font-size: 11px;
    color: #dc2626;
    font-weight: 500;
    margin-top: 2px;
}

.qm-customer-item {
    padding: 2px 0;
}

/* ── Line item table (modal) ── */
.li-table-wrap {
    border: 0.5px solid var(--border-color);
    border-radius: var(--radius-md);
    overflow: hidden;
    margin-bottom: 20px;
}

.li-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
}

    .li-table thead th {
        padding: 10px 14px;
        font-size: 10.5px;
        font-weight: 700;
        text-transform: uppercase;
        letter-spacing: 0.07em;
        color: var(--text-muted);
        background: #f8fafc;
        border-bottom: 0.5px solid var(--border-color);
        white-space: nowrap;
    }

        .li-table thead th.li-right {
            text-align: right;
        }

    .li-table tbody tr {
        border-bottom: 0.5px solid #f1f5f9;
    }

        .li-table tbody tr:last-child {
            border-bottom: none;
        }

    .li-table tbody td {
        padding: 10px 14px;
        vertical-align: middle;
    }

        .li-table tbody td.li-right {
            text-align: right;
        }

/* ── Line item add/del buttons ── */
.qm-btn-add {
    border-color: #bfdbfe !important;
    color: #2563eb !important;
    background: #eff6ff !important;
}

    .qm-btn-add:hover:not(:disabled) {
        background: #dbeafe !important;
        border-color: #93c5fd !important;
    }

.qm-btn-del {
    border-color: #fca5a5 !important;
    color: #dc2626 !important;
    background: #fef2f2 !important;
}

    .qm-btn-del:hover:not(:disabled) {
        background: #fee2e2 !important;
        border-color: #f87171 !important;
    }

/* ── Amount summary cards ── */
.amount-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
}

.qm-amount-row {
    display: flex;
    align-items: stretch;
    background: #fff;
    border-radius: var(--radius-md);
    border: 0.5px solid var(--border-color);
    overflow: hidden;
}

.qm-amount-card {
    flex: 1;
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 18px 22px;
    transition: background 0.15s;
}

    .qm-amount-card:hover {
        background: #f8fafc;
    }

.qm-amount-card-highlight {
    background: #f0fdf4;
}

    .qm-amount-card-highlight:hover {
        background: #dcfce7;
    }

.qm-amount-divider {
    width: 0.5px;
    background: var(--border-color);
    flex-shrink: 0;
    align-self: stretch;
}

.qm-amount-icon {
    width: 40px;
    height: 40px;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 17px;
    flex-shrink: 0;
}

.qm-amount-icon-gray {
    background: #f1f5f9;
    color: #475569;
}

.qm-amount-icon-purple {
    background: #ede9fe;
    color: #7c3aed;
}

.qm-amount-icon-green {
    background: #dcfce7;
    color: #16a34a;
}

.qm-amount-info {
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.qm-amount-label {
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--text-muted);
}

.qm-amount-value {
    font-size: 1.2rem;
    font-weight: 700;
    color: var(--text-main);
    font-variant-numeric: tabular-nums;
    line-height: 1.2;
}

/* =====================
   CONVERT QUOTATION — FIELDS
   ===================== */
.cq-readonly {
    height: 36px;
    display: flex;
    align-items: center;
    font-size: 13px;
    font-weight: 600;
    color: var(--text-main);
    background: #f8fafc;
    border: 0.5px solid var(--border-color);
    border-radius: var(--radius-sm);
    padding: 0 12px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.cq-input {
    width: 100%;
    height: 36px;
    border: 0.5px solid var(--border-color);
    border-radius: var(--radius-sm);
    padding: 0 10px;
    font-size: 13px;
    color: var(--text-main);
    background: #fff;
    outline: none;
    font-family: var(--fontfamily-manrope);
    transition: border-color 0.15s;
}

    .cq-input:focus {
        border-color: #378ADD;
    }

.cq-input-sm {
    height: 32px;
    font-size: 12.5px;
}

.cq-select {
    width: 100%;
    height: 36px;
    border: 0.5px solid var(--border-color);
    border-radius: var(--radius-sm);
    padding: 0 28px 0 10px;
    font-size: 13px;
    color: var(--text-main);
    background: #fff;
    outline: none;
    font-family: var(--fontfamily-manrope);
    appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24'%3E%3Cpath fill='%236b7280' d='M7 10l5 5 5-5z'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 10px center;
    cursor: pointer;
    transition: border-color 0.15s;
}

    .cq-select:focus {
        border-color: #378ADD;
    }

.cq-select-sm {
    height: 32px;
    font-size: 12.5px;
}

/* ── Alert banners ── */
.cq-alert {
    display: flex;
    align-items: center;
    padding: 12px 18px;
    border-radius: var(--radius-md);
    font-size: 13px;
    font-weight: 600;
    margin-bottom: 16px;
}

.cq-alert-danger {
    background: #fef2f2;
    color: #991b1b;
    border: 0.5px solid #fca5a5;
}

.cq-alert-success {
    background: #f0fdf4;
    color: #166534;
    border: 0.5px solid #86efac;
}

.cq-alert-info {
    background: #eff6ff;
    color: #1e40af;
    border: 0.5px solid #93c5fd;
}

/* ── Action footer ── */
.cq-action-footer {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
    padding: 16px 0 8px;
    border-top: 0.5px solid var(--border-color);
    margin-top: 4px;
}

/* =====================
   RESPONSIVE
   ===================== */
@media (max-width: 1024px) {
    .qt-filters {
        grid-template-columns: 1fr 1fr 1fr;
    }
}

@media (max-width: 768px) {
    .qt-filters {
        grid-template-columns: 1fr 1fr;
    }

    .amount-grid {
        grid-template-columns: 1fr;
    }

    .sub-wrap {
        min-width: 100%;
    }

    .qm-amount-row {
        flex-direction: column;
    }
}

/* =====================================================
   APPLY LEAVE PAGE — Additions
   Append these to site.css (these classes are NEW and
   do NOT duplicate any existing class in site.css)
   ===================================================== */

/* ── Options row: half-day checkboxes + days badge ── */
.al-options-row {
    display: flex;
    align-items: center;
    gap: 16px;
    background: #f8fafc;
    border: 1px solid var(--border-color);
    border-radius: var(--radius-sm);
    padding: 8px 12px;
    height: 36px;
}

.al-halfday-check {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 13px;
    font-weight: 600;
    color: var(--text-muted);
    cursor: pointer;
    user-select: none;
    white-space: nowrap;
}

    .al-halfday-check input[type="checkbox"] {
        accent-color: var(--color-primary);
        width: 15px;
        height: 15px;
        cursor: pointer;
    }

.al-days-display {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.al-days-label {
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--text-muted);
}

/* ── Balance quick-view card ── */
.al-balance-card {
    background: #f8fafc;
    border: 1px solid var(--border-color);
    border-radius: var(--radius-sm);
    padding: 8px 12px;
    min-height: 36px;
    display: flex;
    align-items: center;
}

.al-balance-row {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.al-balance-item {
    display: inline-flex;
    align-items: center;
    gap: 5px;
}

.al-balance-lbl {
    font-size: 11px;
    font-weight: 600;
    color: var(--text-muted);
}

.al-balance-sep {
    color: var(--border-color);
    font-size: 16px;
    line-height: 1;
}

.al-balance-empty {
    font-size: 12px;
    color: var(--text-muted);
    font-weight: 500;
    font-style: italic;
}

/* ── Reason textarea ── */
.al-textarea {
    resize: none;
    min-height: 76px;
    font-size: 13px;
    line-height: 1.5;
}

/* ── Form footer action bar ── */
.al-form-footer {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    padding-top: 16px;
    border-top: 1px solid var(--border-color);
    margin-top: 4px;
}

/* ── Syncfusion dropdown popup width fix ──
   Width="100%" on SfDropDownList makes the input fill its container.
   PopupWidth="auto" then sizes the popup to match that input width. */
.e-ddl.e-input-group {
    width: 100% !important;
}

/* =====================================================
   MY TEAM PAGE — Additions
   Append these to site.css (classes are NEW — no
   duplicates of existing site.css classes)
   ===================================================== */

/* ── KPI Strip ── */
.mt-kpi-strip {
    display: flex;
    gap: 14px;
    flex-wrap: wrap;
}

.mt-kpi-card {
    display: flex;
    align-items: center;
    gap: 14px;
    background: var(--bg-surface);
    border: 1px solid var(--border-color);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-soft);
    padding: 14px 20px;
    min-width: 180px;
    flex: 1 1 180px;
    max-width: 260px;
    transition: box-shadow var(--transition);
}

    .mt-kpi-card:hover {
        box-shadow: var(--shadow-card);
    }

.mt-kpi-icon {
    width: 42px;
    height: 42px;
    border-radius: var(--radius-sm);
    background: #EFF4FA;
    color: var(--color-primary);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
    flex-shrink: 0;
}

.mt-kpi-icon--green {
    background: #f0fdf4;
    color: #16a34a;
}

.mt-kpi-icon--purple {
    background: #f5f3ff;
    color: #7c3aed;
}

.mt-kpi-info {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.mt-kpi-value {
    font-size: 22px;
    font-weight: 700;
    color: var(--text-main);
    line-height: 1.1;
    font-variant-numeric: tabular-nums;
}

.mt-kpi-label {
    font-size: 12px;
    font-weight: 600;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

/* ── Department badge ── */
.mt-dept-badge {
    display: inline-block;
    background: #EFF4FA;
    color: var(--color-primary);
    border-radius: var(--radius-sm);
    padding: 3px 10px;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.02em;
}

/* ── Email link ── */
.mt-email-link {
    font-size: 13px;
    font-weight: 500;
    color: var(--color-primary);
    text-decoration: none;
    transition: color var(--transition);
}

    .mt-email-link:hover {
        color: var(--color-primary-hover);
        text-decoration: underline;
    }

/* ── Branch pill ── */
.mt-branch-pill {
    display: inline-flex;
    align-items: center;
    font-size: 12px;
    font-weight: 600;
    color: var(--text-muted);
}

/* =====================================================
   TIMESHEET PAGE — Additions
   Append to site.css — all classes are NEW (ts- prefix),
   no duplicates of existing site.css classes.
   ===================================================== */

/* ── Dialog body padding ── */
.ts-dialog-body {
    padding: 4px 2px;
}

/* ── Total hours pill inside dialog section title ── */
.ts-total-pill {
    display: inline-flex;
    align-items: center;
    background: #EFF4FA;
    color: var(--color-primary);
    border-radius: 999px;
    padding: 2px 12px;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.02em;
}

/* ── Task table inside dialog ── */
.ts-task-table-wrap {
    border: 0.5px solid var(--border-color);
    border-radius: var(--radius-md);
    overflow: hidden;
}

.ts-task-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
}

    .ts-task-table thead tr {
        background: #f2f4f7;
    }

    .ts-task-table thead th {
        padding: 9px 12px;
        font-size: 11px;
        font-weight: 700;
        text-transform: uppercase;
        letter-spacing: 0.06em;
        color: var(--text-muted);
        border-bottom: 1px solid var(--border-color);
    }

    .ts-task-table tbody tr {
        border-bottom: 0.5px solid #f1f5f9;
        transition: background 0.1s;
    }

        .ts-task-table tbody tr:last-child {
            border-bottom: none;
        }

        .ts-task-table tbody tr:hover {
            background: #fafbfc;
        }

    .ts-task-table tbody td {
        padding: 8px 10px;
        vertical-align: middle;
    }

    .ts-task-table tfoot tr {
        background: #f8fafc;
        border-top: 2px solid var(--border-color);
    }

    .ts-task-table tfoot td {
        padding: 10px 12px;
    }

.ts-row-num {
    font-size: 12px;
    font-weight: 700;
    color: #94a3b8;
    text-align: center;
    display: block;
}

.ts-total-label {
    font-size: 12px;
    font-weight: 700;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.ts-total-value {
    font-size: 15px;
    font-weight: 700;
    color: var(--color-primary);
    font-variant-numeric: tabular-nums;
}

/* ── Activity textarea inside task table ── */
.ts-activity-input.e-input-group,
.ts-activity-input {
    width: 100% !important;
    min-height: 36px !important;
    font-size: 13px !important;
    resize: none;
}

/* ── Hours input inside task table ── */
.ts-hours-input.e-input-group,
.ts-hours-input {
    width: 80px !important;
    text-align: right;
}

/* ── Location badge (grid column) ── */
.ts-location-badge {
    display: inline-flex;
    align-items: center;
    font-size: 12px;
    font-weight: 600;
    padding: 3px 10px;
    border-radius: var(--radius-sm);
    white-space: nowrap;
}

    .ts-location-badge.ts-loc-wfo {
        background: #EFF4FA;
        color: var(--color-primary);
    }

    .ts-location-badge.ts-loc-wfh {
        background: #f0fdf4;
        color: #16a34a;
    }

/* ── Tasks cell in grid ── */
.ts-tasks-cell {
    display: flex;
    flex-direction: column;
    gap: 3px;
    padding: 2px 0;
}

.ts-task-item {
    display: flex;
    align-items: baseline;
    gap: 6px;
    font-size: 13px;
}

.ts-task-num {
    font-size: 11px;
    font-weight: 700;
    color: #94a3b8;
    min-width: 16px;
    flex-shrink: 0;
}

.ts-task-text {
    color: var(--text-main);
    font-weight: 500;
    line-height: 1.4;
}

/* ── Hours cell in grid ── */
.ts-hours-cell {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
}

/* =====================================================
   EMPLOYEE PAYROLL PAGE — Additions
   Append to site.css — all classes are NEW (ep- prefix).
   ===================================================== */

/* ── Amount text (no background, just color) ── */
.ep-amount {
    font-size: 13px;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    color: var(--text-main);
}

.ep-amount--earn {
    color: var(--success);
}

.ep-amount--deduct {
    color: var(--danger);
}

.ep-amount--net {
    font-size: 14px;
    font-weight: 700;
    color: var(--color-primary);
}

/* ── Status text only (no pill/badge background) ── */
.ep-status {
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.ep-status--done {
    color: var(--success);
}

.ep-status--pending {
    color: var(--warning);
}

/* ── PDF Download button ── */
.ep-download-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border-radius: var(--radius-sm);
    border: 0.5px solid #fca5a5;
    background: #fef2f2;
    color: #dc2626;
    cursor: pointer;
    font-size: 15px;
    transition: all 0.15s;
    outline: none;
}

    .ep-download-btn:hover {
        background: #dc2626;
        border-color: #dc2626;
        color: #fff;
        transform: scale(1.08);
    }

/* =====================================================
   TASK PAGES (TaskList + TaskDetails) — Additions
   Append to site.css — all NEW classes (tl- prefix).
   Reused from existing site.css:
   .page-header, .section-card, .section-card-title,
   .record-count-chip, .status-pill, .td-row-num,
   .emp-name-cell, .emp-avatar, .emp-fullname,
   .date-range-cell, .date-from, .date-to,
   .action-group, .btn-action, .action-icon-btn,
   .approve, .decline, .dialog-section, .dialog-section-title,
   .field-wrap, .field-label, .ts-activity-input,
   .info-row, .info-label, .info-value,
   .leave-days-badge, .reason-text, .td-date,
   .cq-alert, .cq-alert-success, .cq-alert-info
   ===================================================== */

/* ── Task title in grid ── */
.tl-title {
    font-size: 13px;
    font-weight: 600;
    color: var(--text-main);
}

/* ── Priority badge — text only with left dot ── */
.tl-priority {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    padding: 3px 10px;
    border-radius: 999px;
}

    .tl-priority::before {
        content: '';
        width: 6px;
        height: 6px;
        border-radius: 50%;
        flex-shrink: 0;
    }

.tl-priority--urgent {
    background: #fff1f2;
    color: #be123c;
    border: 1px solid #fecdd3;
}

    .tl-priority--urgent::before {
        background: #f43f5e;
    }

.tl-priority--high {
    background: #fff7ed;
    color: #c2410c;
    border: 1px solid #fed7aa;
}

    .tl-priority--high::before {
        background: #f97316;
    }

.tl-priority--medium {
    background: #fefce8;
    color: #a16207;
    border: 1px solid #fde68a;
}

    .tl-priority--medium::before {
        background: #eab308;
    }

.tl-priority--low {
    background: #f0fdf4;
    color: #15803d;
    border: 1px solid #bbf7d0;
}

    .tl-priority--low::before {
        background: #22c55e;
    }

/* ── Task description in detail page ── */
.td-description {
    font-size: 13px;
    color: var(--text-muted);
    font-weight: 500;
    line-height: 1.6;
    padding: 10px 14px;
    background: #f8fafc;
    border-left: 3px solid var(--color-primary);
    border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
}

/* ── Progress bar (task overview) ── */
.tl-progress-track {
    height: 10px;
    background: #e2e8f0;
    border-radius: 999px;
    overflow: hidden;
}

.tl-progress-fill {
    height: 100%;
    background: linear-gradient(90deg, #2F71A0, #1C498C);
    border-radius: 999px;
    transition: width 0.4s ease;
}

.tl-progress-pct {
    font-size: 13px;
    font-weight: 700;
    color: var(--color-primary);
}

/* ── Inline progress bar in grid column ── */
.tl-inline-progress {
    position: relative;
    height: 20px;
    background: #e2e8f0;
    border-radius: 999px;
    overflow: hidden;
    min-width: 80px;
}

.tl-inline-fill {
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    background: linear-gradient(90deg, #2F71A0, #0f9d58);
    border-radius: 999px;
    transition: width 0.3s ease;
}

.tl-inline-pct {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 10px;
    font-weight: 700;
    color: var(--text-main);
    mix-blend-mode: multiply;
}

/* Responsive guardrails for laptop screens and 125% browser zoom */
*,
*::before,
*::after {
    box-sizing: border-box;
}

html,
body {
    min-width: 0;
    overflow-x: hidden;
}

.app-shell,
.main-area,
.page-content,
.topbar,
.content,
.main-content {
    min-width: 0;
}

.page-content,
.content {
    overflow-x: auto;
}

.topbar {
    min-height: 48px;
    flex-wrap: nowrap;
}

.topbar .ms-auto {
    min-width: 0;
}

.google-apps-menu,
.notification-dropdown,
.dropdown-panel {
    max-width: min(92vw, 360px);
}

.e-grid,
.e-control,
.e-content,
.e-gridcontent,
.e-gridheader,
.e-table {
    max-width: 100%;
}

.e-grid .e-gridcontent,
.e-grid .e-content,
.e-grid .e-gridheader,
.table-responsive,
.responsive-table {
    overflow-x: auto;
}

.e-grid .e-table {
    min-width: 100%;
}

.e-dialog,
.e-popup,
.e-dropdown-popup,
.e-tooltip-wrap {
    max-width: calc(100vw - 24px);
}

img,
svg,
canvas,
video {
    max-width: 100%;
}

/* CRM workspace pages: page and grid polish only. Menu/topbar keep the existing layout styling. */
.crm-workspace-content {
    background: #f5f7fb;
    padding: 18px 18px 26px;
}

.crm-workspace-content .crm-page-shell,
.crm-workspace-content .qt-page,
.crm-workspace-content .tds-page,
.crm-workspace-content .price-page,
.crm-workspace-content > .container-fluid,
.crm-workspace-content > div:not(.db-page) {
    font-family: "Segoe UI", system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
}

.crm-workspace-content .crm-page-shell,
.crm-workspace-content .qt-page,
.crm-workspace-content .tds-page,
.crm-workspace-content .price-page {
    padding: 0;
}

.crm-workspace-content > .container-fluid {
    padding: 0 !important;
}

.crm-workspace-content .page-header,
.crm-workspace-content .tds-header,
.crm-workspace-content .price-hero,
.crm-workspace-content > .mb-2.px-3.d-flex,
.crm-workspace-content > .container-fluid > .mb-2.px-3.d-flex {
    align-items: center;
    background: #ffffff;
    border: 1px solid #e3e9f2;
    border-radius: 10px;
    box-shadow: none;
    display: flex;
    justify-content: space-between;
    margin: 0 0 14px !important;
    padding: 15px 18px !important;
}

.crm-workspace-content .page-header-left h2,
.crm-workspace-content .qt-title,
.crm-workspace-content .tds-title,
.crm-workspace-content .price-hero h1,
.crm-workspace-content h2.mb-0 {
    color: #0f4386;
    font-size: 18px;
    font-weight: 800;
    letter-spacing: 0;
    line-height: 1.2;
    margin: 0;
    padding: 0;
}

.crm-workspace-content .page-subtitle,
.crm-workspace-content .tds-header p,
.crm-workspace-content .price-hero p {
    color: #64748b;
    font-size: 12px;
    font-weight: 600;
    margin-top: 4px;
}

.crm-workspace-content .price-eyebrow,
.crm-workspace-content .fw-semibold {
    color: #334155;
    font-size: 11px !important;
    font-weight: 800 !important;
    letter-spacing: .03em;
    text-transform: uppercase;
}

.crm-workspace-content .qt-filters,
.crm-workspace-content .tds-filters,
.crm-workspace-content .toolbar-card,
.crm-workspace-content .crm-grid-shell > .d-flex:first-child,
.crm-workspace-content .container-fluid > .mb-2,
.crm-workspace-content .filter-toolbar {
    background: #ffffff;
    border: 1px solid #e3e9f2;
    border-radius: 10px;
    box-shadow: none;
    margin-bottom: 12px;
    padding: 12px !important;
}

.crm-workspace-content .crm-grid-shell,
.crm-workspace-content .grid-card,
.crm-workspace-content .card,
.crm-workspace-content .qt-table-wrap,
.crm-workspace-content .tds-table-wrap,
.crm-workspace-content > div > .e-grid,
.crm-workspace-content .container-fluid .e-grid {
    background: #ffffff;
    border: 1px solid #e3e9f2 !important;
    border-radius: 10px !important;
    box-shadow: none !important;
    overflow: hidden;
}

.crm-workspace-content .crm-grid-shell {
    padding: 0;
}

.crm-workspace-content .e-grid {
    border: 0 !important;
    color: #111827;
    font-size: 12.5px;
}

.crm-workspace-content .e-grid .e-gridheader,
.crm-workspace-content .e-grid .e-headercontent,
.crm-workspace-content .qt-table thead,
.crm-workspace-content .price-grid thead,
.crm-workspace-content table.table thead {
    background: #f8fafc !important;
}

.crm-workspace-content .e-grid .e-headercell,
.crm-workspace-content .e-grid .e-detailheadercell,
.crm-workspace-content .qt-table th,
.crm-workspace-content .price-grid th,
.crm-workspace-content table.table th {
    background: #f8fafc !important;
    border-color: #e6edf5 !important;
    color: #475569 !important;
    font-size: 11px !important;
    font-weight: 800 !important;
    height: 38px;
    letter-spacing: .03em;
    text-transform: uppercase;
}

.crm-workspace-content .e-grid .e-rowcell,
.crm-workspace-content .qt-table td,
.crm-workspace-content .price-grid td,
.crm-workspace-content table.table td {
    border-color: #e6edf5 !important;
    color: #111827;
    font-size: 12.5px;
    line-height: 1.45;
    padding: 9px 12px;
}

.crm-workspace-content .e-grid .e-row:hover .e-rowcell,
.crm-workspace-content .qt-table tbody tr:hover,
.crm-workspace-content .price-grid tbody tr:hover,
.crm-workspace-content table.table tbody tr:hover {
    background: #f8fafc !important;
}

.crm-workspace-content .receipt-credit-amount {
    color: #047857;
    font-weight: 500;
    font-variant-numeric: tabular-nums;
}

.crm-workspace-content .e-pager,
.crm-workspace-content .crm-grid-footer,
.crm-workspace-content .qt-pagination {
    background: #ffffff !important;
    border-color: #e6edf5 !important;
    color: #475569;
    font-size: 12px;
    min-height: 42px;
}

.crm-workspace-content .e-input-group,
.crm-workspace-content .e-ddl.e-input-group,
.crm-workspace-content .e-date-wrapper,
.crm-workspace-content .e-control-wrapper,
.crm-workspace-content .form-control,
.crm-workspace-content .form-select,
.crm-workspace-content .search-shell {
    background: #ffffff !important;
    border: 1px solid #d8e1ec !important;
    border-radius: 8px !important;
    box-shadow: none !important;
    min-height: 34px;
}

.crm-workspace-content .e-input-group:hover,
.crm-workspace-content .e-ddl.e-input-group:hover,
.crm-workspace-content .e-date-wrapper:hover,
.crm-workspace-content .form-control:hover,
.crm-workspace-content .form-select:hover {
    border-color: #aebdd0 !important;
}

.crm-workspace-content .e-input,
.crm-workspace-content input,
.crm-workspace-content select,
.crm-workspace-content textarea {
    color: #111827;
    font-size: 12.5px !important;
}

.crm-workspace-content .btn-add,
.crm-workspace-content .btn-save,
.crm-workspace-content .primary-btn,
.crm-workspace-content .e-primary,
.crm-workspace-content .e-btn.e-primary {
    background: #0f4386 !important;
    border-color: #0f4386 !important;
    border-radius: 8px !important;
    box-shadow: none !important;
    color: #ffffff !important;
    font-size: 12px !important;
    font-weight: 800 !important;
    min-height: 34px;
}

.crm-workspace-content .btn-add:hover,
.crm-workspace-content .btn-save:hover,
.crm-workspace-content .primary-btn:hover,
.crm-workspace-content .e-primary:hover,
.crm-workspace-content .e-btn.e-primary:hover {
    background: #123a70 !important;
    border-color: #123a70 !important;
}

.crm-workspace-content .btn-reset,
.crm-workspace-content .ghost-btn,
.crm-workspace-content .btn-cancel {
    background: #f8fafc !important;
    border: 1px solid #d8e1ec !important;
    border-radius: 8px !important;
    color: #334155 !important;
    font-size: 12px !important;
    font-weight: 800 !important;
    min-height: 34px;
}

.crm-workspace-content .record-count-chip,
.crm-workspace-content .subtle-chip,
.crm-workspace-content .stat-chip {
    background: #f8fafc !important;
    border: 1px solid #e3e9f2;
    border-radius: 999px;
    color: #334155 !important;
    font-size: 11px;
    font-weight: 800;
}

.crm-workspace-content .section-card,
.crm-workspace-content .dialog-section,
.crm-workspace-content .Fsection,
.crm-workspace-content .crm-tabs {
    background: #ffffff !important;
    border: 1px solid #e3e9f2 !important;
    border-radius: 10px !important;
    box-shadow: none !important;
}

.crm-workspace-content .price-hero {
    gap: 18px;
}

.crm-workspace-content .hero-stats {
    gap: 8px;
}

.crm-workspace-content .grid-scroll-shell,
.crm-workspace-content .qt-table-wrap {
    overflow-x: auto;
}

.crm-workspace-content .e-dialog {
    border-radius: 12px !important;
    box-shadow: 0 24px 60px rgba(15, 23, 42, .22) !important;
}

.crm-workspace-content .e-dialog .e-dlg-header-content {
    background: #ffffff;
    border-bottom: 1px solid #edf1f7;
}

.crm-workspace-content .e-dialog .e-dlg-content {
    background: #ffffff;
}

/* Keep custom CRM tables from being clipped by the generic responsive shell */
.qt-table-wrap,
.li-table-wrap,
.sub-wrap {
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
}

.qt-table {
    width: 100%;
    min-width: 1180px;
}

.qt-table .td-name {
    max-width: 360px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.qt-table .td-sp,
.qt-table .td-date,
.qt-table .td-num,
.qt-table .td-net,
.qt-table .action-group {
    white-space: nowrap;
}

.li-table,
.sub-table {
    min-width: 720px;
}

@media (max-width: 1200px) {
    .sidebar.expanded {
        --sidebar-width: 180px;
    }

    .main-area.sidebar-expanded {
        margin-left: 180px;
    }

    .page-content {
        padding: 8px 6px;
    }
}

@media (max-width: 992px) {
    .app-shell {
        display: block;
    }

    .sidebar {
        width: 64px;
        flex-basis: 64px;
        min-width: 64px;
    }

    .sidebar.expanded,
    .sidebar.collapsed {
        --sidebar-width: 64px;
    }

    .main-area.sidebar-expanded,
    .main-area.sidebar-collapsed {
        margin-left: 64px;
    }

    .sidebar.expanded .menu-text,
    .sidebar.expanded .gc-footer,
    .sidebar.expanded .sidebar-header .SS-logo span {
        display: none;
    }

    .sidebar.collapsed:hover,
    .sidebar.expanded:hover {
        --sidebar-width: 64px;
    }

    .sidebar.collapsed:hover .menu-text {
        display: none;
    }

    .topbar {
        padding-inline: 10px !important;
    }
}

@media (max-width: 768px) {
    .sidebar {
        height: 100vh;
    }

    .main-area.sidebar-expanded,
    .main-area.sidebar-collapsed {
        margin-left: 56px;
    }

    .sidebar,
    .sidebar.expanded,
    .sidebar.collapsed {
        --sidebar-width: 56px;
        width: 56px;
        flex-basis: 56px;
        min-width: 56px;
    }

    .page-content {
        padding: 6px 4px;
    }

    .topbar .ms-auto {
        gap: 0.5rem !important;
    }

    .google-apps-menu,
    .notification-dropdown,
    .dropdown-panel {
        right: 6px;
    }
}

@media (max-width: 520px) {
    .main-area.sidebar-expanded,
    .main-area.sidebar-collapsed {
        margin-left: 52px;
    }

    .sidebar,
    .sidebar.expanded,
    .sidebar.collapsed {
        --sidebar-width: 52px;
        width: 52px;
        flex-basis: 52px;
        min-width: 52px;
        transform: none;
    }

    .sidebar .menu-text,
    .sidebar .gc-footer,
    .sidebar .sidebar-header .SS-logo span {
        display: none;
    }

    .topbar {
        padding-inline: 8px !important;
    }
}
.bank-account-editor {
    display: flex;
    flex-direction: column;
    gap: 14px;
    padding: 20px 22px 24px;
    background: #fff;
}

.customer-bank-dialog.e-popup-open,
.branch-bank-dialog.e-popup-open {
    max-width: calc(100vw - 32px) !important;
}

.customer-bank-dialog.e-dialog,
.branch-bank-dialog.e-dialog,
.customer-bank-dialog .e-dialog,
.branch-bank-dialog .e-dialog {
    border-radius: 12px;
    overflow: hidden;
}

.customer-bank-dialog .e-dlg-content,
.branch-bank-dialog .e-dlg-content {
    padding: 0 !important;
    background: #ffffff;
}

.customer-bank-dialog .e-footer-content,
.branch-bank-dialog .e-footer-content {
    border-top: 1px solid #e5eaf1;
    background: #ffffff;
    padding: 14px 18px !important;
}

.bank-account-panel {
    border: 1px solid #e5eaf1;
    border-radius: 10px;
    background: #fff;
    box-shadow: 0 8px 20px rgba(15, 23, 42, 0.035);
    overflow: hidden;
}

.bank-account-panel-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 14px 16px;
    border-bottom: 1px solid #eef2f7;
    background: #f8fafc;
}

.bank-panel-title {
    color: #0f172a;
    font-size: 13px;
    font-weight: 700;
}

.bank-panel-subtitle {
    color: #64748b;
    font-size: 12px;
    margin-top: 2px;
}

.bank-field-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
    padding: 16px;
}

.bank-field {
    min-width: 0;
}

.bank-field.col-span-2 {
    grid-column: span 2;
}

.bank-field label {
    display: block;
    color: #475569;
    font-size: 11px;
    font-weight: 700;
    margin-bottom: 6px;
    text-transform: uppercase;
}

.bank-field .e-input-group,
.bank-field .e-control-wrapper,
.bank-field .e-dropdownlist,
.bank-field .e-input {
    width: 100% !important;
}

.bank-proof-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding: 14px 16px 16px;
    border-top: 1px solid #f1f5f9;
    background: #fcfdff;
    flex-wrap: wrap;
}

.bank-proof-title {
    color: #0f172a;
    font-size: 12.5px;
    font-weight: 700;
}

.bank-proof-subtitle {
    color: #64748b;
    font-size: 12px;
    margin-top: 2px;
}

.bank-upload-btn,
.bank-add-btn,
.bank-icon-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    border-radius: 8px;
    font-size: 12px;
    font-weight: 700;
    cursor: pointer;
    transition: border-color 0.15s ease, background 0.15s ease, color 0.15s ease;
}

.bank-upload-btn {
    min-height: 36px;
    padding: 0 14px;
    border: 1px solid #cbd5e1;
    background: #fff;
    color: #334155;
}

.bank-upload-btn:hover {
    border-color: #94a3b8;
    background: #f8fafc;
}

.bank-file-input {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
    pointer-events: none;
}

.bank-proof-preview {
    width: 44px;
    height: 44px;
    border-radius: 8px;
    object-fit: cover;
    border: 1px solid #e2e8f0;
    background: #fff;
}

.bank-icon-btn {
    width: 34px;
    height: 34px;
    border: 1px solid #e2e8f0;
    background: #fff;
    color: #475569;
}

.bank-icon-btn.danger {
    color: #b91c1c;
    border-color: #fecaca;
    background: #fff7f7;
}

.bank-icon-btn.danger:hover {
    background: #fee2e2;
}

.bank-add-btn {
    align-self: flex-start;
    min-height: 38px;
    padding: 0 16px;
    border: 1px solid #bfdbfe;
    background: #eff6ff;
    color: #1d4ed8;
}

.bank-add-btn:hover {
    background: #dbeafe;
}

@media (max-width: 900px) {
    .bank-field-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 640px) {
    .bank-account-editor {
        padding: 16px;
    }

    .bank-field-grid {
        grid-template-columns: 1fr;
    }

    .bank-field.col-span-2 {
        grid-column: span 1;
    }

    .bank-proof-row {
        align-items: stretch;
        flex-direction: column;
    }

    .bank-upload-btn,
    .bank-add-btn {
        width: 100%;
    }
}
