        :root {
            /* ===== Brand palette ===== */
            --primary: #16a34a;
            --primary2: #013376;
            --primary2-light: #dbe3e9;
            /* Gharuda green */
            --primary-dark: #0f7a38;
            --primary-light: #e6f7ec;
            --primary-lightTwo: #d0eddb;
            --primary-soft: #eafaf1;

            --accent-blue: #3b82f6;
            --accent-blue-soft: #eaf1ff;

            --accent-amber: #f59e0b;
            --accent-amber-soft: #fef6e0;

            --accent-red: #ef4444;
            --danger: #ef4444;
            --danger-light: #fdecec;
            --accent-red-soft: #fdeaea;

            --accent-violet: #8b5cf6;
            --accent-violet-soft: #f2ecfe;

            --accent-pink: #ec4899;
            --accent-pink-soft: #fdeef5;

            --ink-900: #16202b;
            --ink-700: #3a4652;
            --ink-500: #6b7684;
            --ink-300: #a6afb8;

            --bg-app: #F1F6F4;
            --bg-card: #ffffff;
            --border-soft: #eaeef0;
            --white: #fff;

            --radius-lg: 18px;
            --radius-md: 14px;
            --radius-sm: 10px;
            --shadow-card: 0 1px 2px rgba(20, 30, 25, .04), 0 8px 24px -12px rgba(20, 30, 25, .08);
            --gh-radius: 28px;

            --table-th: #e8edf3;
            --table-black: #00000;
            --table-hover: #f9f9f9;


            --input-bg: #f4f7f6;


            /* gradiant color  */
            --grad-primary: linear-gradient(135deg, #077702 0%, #0ca308 100%) !important;

            /* rail + panel sizing */
            --rail-w: 76px;
            --panel-w: 250px;
            --topbar-h: 70px;

        }

        * {
            box-sizing: border-box;
        }

        body {
            font-family: 'Manrope', sans-serif;
            background: var(--bg-app);
            color: var(--ink-900);
            font-size: 14px;
        }

        h1,
        h2,
        h3,
        .font-display {
            font-family: 'Sora', sans-serif;
        }

        /* ===== Layout ===== */
        .app-shell {
            display: flex;
            min-height: calc(100vh - var(--topbar-h));
        }

        /* =========================================================
           ICON RAIL — always visible, fixed width, icons only.
           This never resizes; it is the permanent left strip.
        ========================================================= */
        .icon-rail {
            width: var(--rail-w);
            flex-shrink: 0;
            background: var(--white);
            /* border-right: 1px solid var(--border-soft); */
            display: flex;
            flex-direction: column;
            align-items: center;
            height: calc(100vh - var(--topbar-h));
            position: sticky;
            top: var(--topbar-h);
            padding: 16px 0 14px;
            z-index: 1000;
        }


        .icon-rail-scroll {
            flex: 1 1 auto;
            min-height: 0;
            overflow-y: auto;
            overflow-x: hidden;
            display: flex;
            flex-direction: column;
            align-items: center;
            gap: 6px;
            width: 100%;
            scrollbar-width: none;
            position: relative;
        }

        .icon-rail-scroll::-webkit-scrollbar {
            display: none;
        }

        .icon-rail-bottom {
            flex-shrink: 0;
            display: flex;
            flex-direction: column;
            align-items: center;
            gap: 12px;
            padding-top: 12px;
            margin-top: 6px;
            border-top: 1px solid var(--border-soft);
            width: 100%;
            position: relative;
        }

        /* rail side indicator - active button mel touch aagura border */
        .rail-active-indicator {
            display: none;
        }

        .panel-open .rail-btn.active-rail::after {
            content: '';
            position: absolute;
            top: 50%;
            right: -22px;
            width: 22px;
            height: 1px;
            border-radius: 3px 0 0 3px;
            background: var(--primary-dark);
            transform: translateY(-50%);
            pointer-events: none;
        }

        .rail-btn {
            width: 40px;
            height: 40px;
            border-radius: 5px;
            border: 0;
            background: transparent;
            color: var(--ink-500);
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 18px;
            transition: background .15s ease, color .15s ease, transform .15s ease;
            flex-shrink: 0;
            position: relative;
            z-index: 5;
        }

        .rail-btn:hover {
            background: var(--bg-card);
            color: var(--ink-900);
        }

        .rail-btn.active-rail {
            background: var(--primary-light);
            color: var(--primary-dark);
            box-shadow: var(--shadow-card);
            border: 1px solid var(--primary);
        }

        .rail-avatar {
            width: 34px;
            height: 34px;
            cursor: pointer;
        }

        /* =========================================================
           SLIDING SIDE PANEL — collapsed to 0 width by default.
           Clicking a rail icon adds `.open`, animating it out with
           a width + slide-in + fade transition. Everything (labels,
           groups, footer) lives inside and is shown once open.
        ========================================================= */
        .side-panel {
            width: 0;
            flex-shrink: 0;
            background: var(--bg-card);
            border-right: 1px solid var(--border-soft);
            height: calc(100vh - var(--topbar-h));
            position: sticky;
            top: var(--topbar-h);
            overflow: hidden;
            display: flex;
            flex-direction: column;
            transition: width .32s cubic-bezier(.22, 1, .36, 1);
            z-index: 1000;
        }

        .side-panel.open {
            width: var(--panel-w);
        }

        /* panel side indicator - matching border touching the rail's indicator */
        .panel-active-indicator {
            position: absolute;
            left: 0;
            width: 3px;
            border-radius: 0 3px 3px 0;
            background: var(--primary-dark);
            opacity: 0;
            top: 0;
            height: 30px;
            transition: top .25s cubic-bezier(.22, 1, .36, 1), height .25s ease, opacity .2s ease;
            z-index: 5;
            pointer-events: none;
            rotate: 90deg;
        }

        .panel-active-indicator.show {
            opacity: 1;
        }

        .side-panel-inner {
            width: var(--panel-w);
            flex: 1 1 auto;
            min-height: 0;
            display: flex;
            flex-direction: column;
            padding: 14px 14px 10px;
            opacity: 0;
            transform: translateX(-16px);
            transition: opacity .28s ease .05s, transform .32s cubic-bezier(.22, 1, .36, 1) .05s;
            padding-left: 0px;
        }

        .side-panel.open .side-panel-inner {
            opacity: 1;
            transform: translateX(0);
        }

        .panel-brand {
            width: var(--panel-w);
            display: flex;
            align-items: center;
            gap: 10px;
            padding: 18px 16px 16px;
            border-bottom: 1px solid var(--border-soft);
            flex-shrink: 0;
            white-space: nowrap;
            /* fixed — never part of the fade/slide-in animation below,
               it just gets revealed as the panel's width opens up */
        }

        .panel-brand-icon {
            width: 34px;
            height: 34px;
            object-fit: contain;
            flex-shrink: 0;
        }

        .panel-brand-text {
            height: 30px;
            width: auto;
            object-fit: contain;
        }

        .panel-scroll {
            flex: 1 1 auto;
            min-height: 0;
            overflow-y: auto;
            /* overflow-x: hidden;
            scrollbar-gutter: stable; */
        }

        .panel-scroll::-webkit-scrollbar {
            width: 5px;
        }

        .panel-scroll::-webkit-scrollbar-track {
            background: transparent;
        }

        .panel-scroll::-webkit-scrollbar-thumb {
            background: var(--primary-lightTwo);
            border-radius: 10px;
        }

        .panel-section {
            margin-bottom: 4px;
            border-radius: 12px;
            transition: background .3s ease;
        }

        .panel-section.highlight {
            /* background: var(--bg-app); */
        }

        .nav-label {
            font-size: 11px;
            font-weight: 700;
            letter-spacing: .08em;
            color: var(--ink-300);
            text-transform: uppercase;
            padding: 14px 12px 6px;
            white-space: nowrap;
            border-bottom: 1px solid var(--border-soft);
            margin-bottom: 5px;
        }

        .nav-link-custom {
            display: flex;
            align-items: center;
            gap: 12px;
            padding: 10px 12px;
            border-radius: 0;
            color: var(--ink-700);
            font-weight: 600;
            font-size: 13.5px;
            text-decoration: none;
            margin-bottom: 2px;
            transition: background .15s;
            white-space: nowrap;
            overflow: hidden;
        }

        .nav-link-custom i {
            font-size: 17px;
            width: 20px;
            text-align: center;
            color: var(--ink-500);
            flex-shrink: 0;
        }

        .nav-link-custom:hover {
            background: var(--bg-app);
            color: var(--ink-900);
        }

        .nav-link-custom.active {
            background: var(--primary-light);
            color: var(--primary-dark);
        }

        .nav-link-custom.active i {
            color: var(--primary-dark);
        }

        /* fixed footer at bottom of panel (user profile) */
        /* .sidebar-footer {
            display: flex;
            align-items: center;
            gap: 10px;
            padding: 14px 6px 4px;
            margin-top: 6px;
            border-top: 1px solid var(--border-soft);
            white-space: nowrap;
            overflow: hidden;
            flex-shrink: 0;
        }

        .sidebar-footer .avatar-sm {
            flex-shrink: 0;
        }

        .sidebar-footer-name {
            font-weight: 700;
            font-size: 13px;
            color: var(--ink-900);
            overflow: hidden;
            text-overflow: ellipsis;
        }

        .sidebar-footer-role {
            font-size: 11.5px;
            color: var(--ink-500);
        } */

        /* backdrop for mobile drawer */
        .sb-backdrop {
            display: none;
            position: fixed;
            inset: 0;
            background: rgba(15, 25, 20, .42);
            z-index: 999;
        }

        body.panel-open .sb-backdrop {
            display: none;
        }

        /* ===== Main ===== */
        .main-area {
            display: flex;
            flex-direction: column;
            flex: 1;
            min-width: 0;
        }

        .side-panel.open .panel-scroll {
            border: 1px solid var(--primary);
            border-radius: 10px;
            padding-left: 0px;
        }


        /* =========================================================
   LAPTOP / SMALLER SCREEN SCALE-DOWN
   Targets typical 14" laptop resolutions where default sizes
   feel too large. Adjust max-width if needed.
========================================================= */
        @media (max-width: 1600px) {
            :root {
                --rail-w: 66px;
                --panel-w: 240px;
                --topbar-h: 60px;
            }

            body {
                font-size: 13px;
            }

            .content-pad {
                padding: 18px 20px 40px;
            }

            .card-custom {
                padding: 16px 18px;
                border-radius: 14px;
            }

            .card-title {
                font-size: 14px;
            }

            .card-sub {
                font-size: 11.5px;
            }

            .stat-card {
                padding: 12px 14px;
            }

            .stat-card .value {
                font-size: 1.4rem;
            }

            .stat-card .label {
                font-size: 11.5px !important;
            }

            .stat-icon {
                width: 26px;
                height: 26px;
                font-size: 12px;
            }

            .icon-chip {
                width: 32px;
                height: 32px;
                font-size: 15px;
            }

            .nav-link-custom {
                padding: 8px 10px;
                font-size: 12.5px;
            }

            .nav-link-custom i {
                font-size: 15px;
            }

            .topbar-brand-icon {
                width: 26px;
                height: 26px;
            }

            .topbar-brand-text {
                height: 18px;
            }

            @media (max-width:500px) {
                .topbar-brand-text {
                    display: none;
                }
            }

            .avatar-sm {
                width: 32px;
                height: 32px;
            }

            .icon-pill,
            .btn-quick {
                width: 34px;
                height: 34px;
                font-size: 12px;
            }
        }

        /* ===== Responsive: mobile — rail stays, panel overlays as a drawer ===== */
        @media (max-width: 991px) {
            .side-panel {
                position: fixed;
                left: var(--rail-w);
                top: var(--topbar-h);
                height: calc(100vh - var(--topbar-h));
                box-shadow: 0 0 0 rgba(0, 0, 0, 0);
            }

            .side-panel.open {
                box-shadow: 16px 0 40px -20px rgba(0, 0, 0, .35);
            }

            body.panel-open .sb-backdrop {
                display: block;
                top: var(--topbar-h);
            }
        }

        @media (max-width: 500px) {
            .icon-rail {
                width: 62px;
            }

            .side-panel {
                left: 62px;
            }
        }

        .topbar {
            display: flex;
            align-items: center;
            gap: 18px;
            padding: 0 8px;
            height: var(--topbar-h);
            background: var(--bg-card);
            border-bottom: 1px solid var(--border-soft);
            position: sticky;
            top: 0;
            z-index: 1002;
            width: 100%;
        }

        @media (max-width:500px) {
            .topbar {
                gap: 10px;
            }
        }

        /* Fixed logo + text in the topbar — this IS the sidebar toggle now.
           It never changes appearance and never hides/shows itself at any
           breakpoint; only the side-panel opens/closes when it's clicked. */
        .topbar-brand {
            display: flex;
            align-items: center;
            gap: 8px;
            flex-shrink: 0;
            cursor: pointer;
            border: 0;
            background: transparent;
            padding: 6px 10px;
            border-radius: 6px;
        }

        .topbar-brand:hover {
            background: var(--bg-app);
        }

        .topbar-brand-icon {
            width: 145px;
            height: 48px;
            object-fit: contain;
            flex-shrink: 0;
        }

        .topbar-brand-text {
            height: 32px;
            width: auto;
            object-fit: contain;
        }

        .topbar .crumb {
            font-weight: 700;
            color: var(--ink-900);
            white-space: nowrap;
        }

        @media (max-width:426px) {
            .topbar .crumb {
                display: none;
            }
        }

        .search-box {
            flex: 1;
            max-width: 420px;
            background: var(--bg-app);
            border-radius: 999px;
            padding: 9px 16px;
            display: flex;
            align-items: center;
            gap: 10px;
            color: var(--ink-500);
            border: 1px solid var(--border-soft);
        }

        @media (max-width: 768px) {
            .search-box {
                display: none;
            }

            .quick-attendance-actions {
                margin-left: auto;
            }

            .quick-attendance-actions .btn-quick {
                margin-left: 0;
            }
        }

        .search-box input {
            border: 0;
            background: transparent;
            outline: none;
            width: 100%;
            font-size: 13.5px;
        }

        .btn-quick {
            width: 38px;
            height: 38px;
            background: var(--primary-light);
            color: var(--primary-dark);
            border: none;
            display: flex;
            align-items: center;
            justify-content: center;
            font-weight: 700;
            border-radius: 999px;
            font-size: 13.5px;
            white-space: nowrap;
        }

        .quick-attendance-actions {
            display: flex;
            align-items: center;
            flex-shrink: 0;
        }

        .quick-attendance-actions .btn-quick:disabled {
            cursor: not-allowed;
            opacity: .55;
            background: var(--bg-app);
            color: var(--ink-500);
        }

        .quick-attendance-actions .quick-checkout-btn {
            background: var(--danger-light);
            color: var(--accent-red);
        }

        .quick-attendance-actions .quick-checkout-btn:hover {
            background: #ffd9d8;
            color: #c9363b;
        }

        .quick-attendance-actions .quick-checkout-btn:disabled {
            background: var(--danger-light);
            color: var(--accent-red);
            opacity: .55;
        }

        .quick-attendance-actions .quick-breakout-btn {
            background: var(--accent-amber-soft);
            color: #b56b00;
        }

        .quick-attendance-actions .quick-breakin-btn {
            background: var(--primary-light);
            color: var(--primary-dark);
        }

        .quick-attendance-actions .quick-lunchout-btn {
            background: var(--accent-blue-soft);
            color: #3564e0;
        }

        .quick-attendance-actions .quick-lunchin-btn {
            background: var(--primary-light);
            color: var(--primary-dark);
        }

        .quick-attendance-actions .quick-breakout-btn:hover,
        .quick-attendance-actions .quick-breakin-btn:hover,
        .quick-attendance-actions .quick-lunchout-btn:hover,
        .quick-attendance-actions .quick-lunchin-btn:hover {
            filter: brightness(.95);
        }

        .attendance-toast {
            position: fixed;
            top: calc(var(--topbar-h) + 16px);
            right: 22px;
            z-index: 1200;
            width: min(340px, calc(100vw - 30px));
            padding: 14px 14px 0;
            color: var(--ink-900);
            background: var(--bg-card);
            border: 1px solid var(--border-soft);
            border-radius: 15px;
            box-shadow: 0 18px 40px rgba(20, 30, 25, .18);
            overflow: hidden;
            animation: attendanceToastIn .35s cubic-bezier(.22, 1, .36, 1) forwards;
        }

        .attendance-toast.is-checkout {
            --toast-accent: var(--accent-blue);
            --toast-soft: var(--accent-blue-soft);
        }

        .attendance-toast:not(.is-checkout) {
            --toast-accent: var(--primary);
            --toast-soft: var(--primary-light);
        }

        .attendance-toast-main {
            display: flex;
            align-items: center;
            gap: 11px;
        }

        .attendance-toast-close {
            align-self: flex-start;
            margin-left: auto;
            padding: 2px 4px;
            border: 0;
            color: var(--ink-500);
            background: transparent;
            cursor: pointer;
            font-size: 15px;
            line-height: 1;
        }

        .attendance-toast-close:hover {
            color: var(--ink-900);
        }

        .attendance-toast-icon {
            display: flex;
            align-items: center;
            justify-content: center;
            width: 32px;
            height: 32px;
            flex-shrink: 0;
            color: var(--toast-accent);
            background: var(--toast-soft);
            border-radius: 11px;
            font-size: 18px;
        }

        .attendance-toast-copy {
            display: flex;
            flex-direction: column;
            gap: 3px;
            min-width: 0;
        }

        .attendance-toast-copy strong,
        .attendance-toast-copy span {
            overflow: hidden;
            text-overflow: ellipsis;
            white-space: nowrap;
        }

        .attendance-toast-kicker {
            color: var(--toast-accent);
            font-size: 9px;
            font-weight: 800;
            letter-spacing: .08em;
        }

        .attendance-toast-copy strong {
            font-size: 14px;
        }

        .attendance-toast-time {
            color: var(--ink-500);
            font-size: 11.5px;
        }

        .attendance-toast-progress {
            height: 3px;
            margin: 13px -14px 0;
            background: var(--toast-soft);
        }

        .attendance-toast-progress::after {
            content: '';
            display: block;
            width: 100%;
            height: 100%;
            background: var(--toast-accent);
            transform-origin: left;
            animation: attendanceToastProgress 3.2s linear forwards;
        }

        .attendance-toast.is-leaving {
            animation: attendanceToastOut .25s ease forwards;
        }

        @keyframes attendanceToastIn {
            from {
                opacity: 0;
                transform: translateY(-12px) scale(.97);
            }

            to {
                opacity: 1;
                transform: translateY(0) scale(1);
            }
        }

        @keyframes attendanceToastOut {
            from {
                opacity: 1;
                transform: translateY(0) scale(1);
            }

            to {
                opacity: 0;
                transform: translateY(-8px) scale(.98);
            }
        }

        @keyframes attendanceToastProgress {
            from {
                transform: scaleX(1);
            }

            to {
                transform: scaleX(0);
            }
        }

        .attendance-modal-backdrop {
            position: fixed;
            inset: 0;
            z-index: 1300;
            display: grid;
            place-items: center;
            padding: 20px;
            background: rgba(22, 32, 43, .42);
            backdrop-filter: blur(5px);
            animation: attendanceModalFadeIn .28s ease forwards;
        }

        .attendance-modal {
            --modal-accent: var(--primary);
            --modal-soft: var(--primary-light);
            position: relative;
            width: min(390px, 100%);
            padding: 30px 28px 25px;
            color: var(--ink-900);
            text-align: center;
            background: var(--bg-card);
            border: 1px solid rgba(22, 32, 43, .08);
            border-radius: 20px;
            box-shadow: 0 28px 70px rgba(22, 32, 43, .24);
            animation: attendanceModalPopIn .48s cubic-bezier(.16, 1, .3, 1) forwards;
        }

        .attendance-modal.is-checkout {
            --modal-accent: var(--accent-red);
            --modal-soft: var(--danger-light);
        }

        .attendance-modal.is-break {
            --modal-accent: #b56b00;
            --modal-soft: var(--accent-amber-soft);
        }

        .attendance-modal.is-lunch {
            --modal-accent: #3564e0;
            --modal-soft: var(--accent-blue-soft);
        }

        .attendance-modal-close {
            position: absolute;
            top: 13px;
            right: 14px;
            width: 28px;
            height: 28px;
            border: 0;
            border-radius: 50%;
            color: var(--ink-500);
            background: var(--bg-app);
            cursor: pointer;
            font-size: 19px;
            line-height: 1;
        }

        .attendance-modal-close:hover {
            color: var(--ink-900);
            background: var(--border-soft);
        }

        .attendance-modal-status-icon {
            display: grid;
            place-items: center;
            width: 66px;
            height: 66px;
            margin: 4px auto 16px;
            color: var(--modal-accent);
            background: var(--modal-soft);
            border: 8px solid rgba(255, 255, 255, .9);
            border-radius: 50%;
            box-shadow: 0 0 0 1px var(--modal-soft), 0 9px 22px rgba(20, 30, 25, .1);
            font-size: 25px;
            animation: attendanceIconIn .55s .12s cubic-bezier(.16, 1, .3, 1) both,
                attendanceIconPulse 2.2s .7s ease-out infinite;
        }

        .attendance-modal-kicker {
            color: var(--modal-accent);
            font-size: 10px;
            font-weight: 800;
            letter-spacing: .12em;
            animation: attendanceContentIn .35s .2s ease both;
        }

        .attendance-modal h3 {
            margin: 5px 0 6px;
            font-family: 'Sora', sans-serif;
            font-size: 21px;
            animation: attendanceContentIn .35s .25s ease both;
        }

        .attendance-modal p {
            margin: 0 auto 18px;
            color: var(--ink-500);
            font-size: 12.5px;
            animation: attendanceContentIn .35s .3s ease both;
        }

        .attendance-modal-time {
            display: inline-flex;
            align-items: center;
            gap: 8px;
            margin-bottom: 22px;
            padding: 9px 15px;
            color: var(--modal-accent);
            background: var(--modal-soft);
            border-radius: 999px;
            font-size: 14px;
            font-weight: 800;
            animation: attendanceTimeIn .4s .36s cubic-bezier(.16, 1, .3, 1) both;
        }

        .attendance-modal-done {
            display: block;
            width: 100%;
            padding: 10px 16px;
            border: 0;
            border-radius: 9px;
            color: #fff;
            background: var(--modal-accent);
            cursor: pointer;
            font-size: 13px;
            font-weight: 800;
            animation: attendanceContentIn .35s .43s ease both;
        }

        .attendance-modal-done:hover {
            filter: brightness(.94);
        }

        @keyframes attendanceModalFadeIn {
            from {
                opacity: 0;
            }

            to {
                opacity: 1;
            }
        }

        @keyframes attendanceModalPopIn {
            from {
                opacity: 0;
                transform: translateY(24px) scale(.9);
            }

            to {
                opacity: 1;
                transform: translateY(0) scale(1);
            }
        }

        @keyframes attendanceIconIn {
            from {
                opacity: 0;
                transform: scale(.45) rotate(-18deg);
            }

            to {
                opacity: 1;
                transform: scale(1) rotate(0);
            }
        }

        @keyframes attendanceIconPulse {

            0%,
            100% {
                box-shadow: 0 0 0 1px var(--modal-soft), 0 9px 22px rgba(20, 30, 25, .1);
            }

            45% {
                box-shadow: 0 0 0 8px var(--modal-soft), 0 12px 28px rgba(20, 30, 25, .13);
            }
        }

        @keyframes attendanceContentIn {
            from {
                opacity: 0;
                transform: translateY(7px);
            }

            to {
                opacity: 1;
                transform: translateY(0);
            }
        }

        @keyframes attendanceTimeIn {
            from {
                opacity: 0;
                transform: translateY(8px) scale(.9);
            }

            to {
                opacity: 1;
                transform: translateY(0) scale(1);
            }
        }

        @media (prefers-reduced-motion: reduce) {

            .attendance-modal-backdrop,
            .attendance-modal,
            .attendance-modal-status-icon,
            .attendance-modal-kicker,
            .attendance-modal h3,
            .attendance-modal p,
            .attendance-modal-time,
            .attendance-modal-done {
                animation: none;
            }
        }

        .icon-pill {
            width: 38px;
            height: 38px;
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
            background: var(--bg-app);
            color: var(--ink-700);
            position: relative;
            flex-shrink: 0;
        }

        .badge-dot {
            position: absolute;
            top: -2px;
            right: -2px;
            background: var(--accent-red);
            color: #fff;
            font-size: 10px;
            font-weight: 700;
            width: 17px;
            height: 17px;
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
            border: 2px solid var(--bg-card);
        }

        .avatar-sm {
            min-width: 38px;
            width: 38px;
            min-height: 38px;
            height: 38px;
            border-radius: 50%;
            object-fit: cover;
        }

        .profile-menu {
            position: relative;
            flex-shrink: 0;
        }

        .profile-menu-trigger {
            display: flex;
            padding: 2px;
            border: 0;
            border-radius: 50%;
            background: transparent;
            cursor: pointer;
        }

        .profile-menu-trigger:hover,
        .profile-menu-trigger:focus-visible {
            outline: 2px solid var(--primary-lightTwo);
            outline-offset: 2px;
        }

        .profile-menu-dropdown {
            position: fixed;
            width: 210px;
            padding: 10px;
            background: var(--bg-card);
            border: 1px solid var(--border-soft);
            border-radius: 12px;
            box-shadow: 0 14px 32px rgba(20, 30, 25, .14);
            opacity: 0;
            visibility: hidden;
            transform: translateY(-6px);
            transition: opacity .16s ease, transform .16s ease, visibility .16s ease;
            z-index: 1100;
            /* Position will be set dynamically by JS */
            top: auto;
            left: auto;
            right: auto;
        }

        .profile-menu-dropdown.open {
            opacity: 1;
            visibility: visible;
            transform: translateY(0);
        }

        .profile-menu-user {
            display: flex;
            align-items: center;
            gap: 10px;
            padding: 5px 6px 9px;
        }

        .profile-menu-user .avatar-sm {
            width: 34px;
            height: 34px;
        }

        .profile-menu-user div {
            display: flex;
            flex-direction: column;
            min-width: 0;
        }

        .profile-menu-user strong {
            color: var(--ink-900);
            font-size: 13px;
        }

        .profile-menu-user span {
            color: var(--ink-500);
            font-size: 11px;
        }

        .profile-menu-divider {
            height: 1px;
            margin: 0 2px 6px;
            background: var(--border-soft);
        }

        .profile-menu-logout {
            display: flex;
            align-items: center;
            gap: 9px;
            padding: 9px 8px;
            border-radius: 8px;
            color: var(--accent-red);
            font-size: 13px;
            font-weight: 700;
            text-decoration: none;
        }

        .profile-menu-logout:hover {
            background: var(--danger-light);
            color: var(--accent-red);
        }

        /* ===== Leave Action Menu (Profile Dropdown) ===== */
        .leave-action-menu {
            width: 150px;
            padding: 6px;
            display: none;
            /* positioning is handled by app.js toggleActionMenu via inline styles */
        }

        .leave-action-profile .leave-action-menu.open {
            position: fixed;
            z-index: 1100;
            right: auto;
            display: block;
            opacity: 1;
            visibility: visible;
        }

        .leave-action-item,
        .leave-action-menu .leave-action-item {
            display: flex !important;
            align-items: center;
            gap: 8px;
            width: 100% !important;
            border: 0;
            border-radius: 8px;
            background: transparent;
            padding: 9px 10px;
            text-align: left;
            font-size: 12px;
            font-weight: 700;
            font-family: 'Manrope', sans-serif;
            color: var(--ink-700);
            cursor: pointer;
            white-space: nowrap;
            transition: background .12s, color .12s;
            box-sizing: border-box;
        }

        .leave-action-item:hover,
        .leave-action-menu .leave-action-item:hover {
            background: var(--primary-light);
            color: var(--primary-dark);
        }

        .leave-action-item i,
        .leave-action-menu .leave-action-item i {
            font-size: 13px;
            color: var(--ink-500);
            flex-shrink: 0;
        }

        .leave-action-item:hover i,
        .leave-action-menu .leave-action-item:hover i {
            color: var(--primary);
        }

        .leave-action-menu .reject-action {
            color: var(--accent-red);
        }

        .leave-action-menu .reject-action:hover {
            background: var(--danger-light);
            color: var(--accent-red);
        }

        .leave-action-menu .view-reason-action {
            color: var(--primary-dark);
            display: flex;
            align-items: center;
            gap: 6px;
        }

        .leave-action-menu .view-reason-action:hover {
            background: var(--primary-light);
        }

        .leave-action-disabled {
            opacity: .45;
            cursor: not-allowed;
        }

        /* ===== Leave Reject Modal ===== */
        .leave-reject-modal {
            position: fixed;
            inset: 0;
            z-index: 3000;
            display: none;
            align-items: center;
            justify-content: center;
            padding: 20px;
            background: rgba(22, 32, 43, .42);
        }

        .leave-reject-modal.show {
            display: flex;
        }

        .leave-reject-dialog {
            width: min(100%, 470px);
            overflow: hidden;
            border-radius: 16px;
            background: #fff;
            box-shadow: 0 24px 70px rgba(22, 32, 43, .22);
            animation: leaveModalIn .2s ease-out;
        }

        .leave-reject-head {
            display: flex;
            align-items: center;
            justify-content: space-between;
            padding: 18px 22px;
            border-bottom: 1px solid var(--border-soft);
        }

        .leave-reject-head h3 {
            margin: 0;
            font: 700 16px 'Sora', sans-serif;
        }

        .leave-reject-close {
            border: 0;
            background: transparent;
            color: var(--ink-500);
            font-size: 20px;
            cursor: pointer;
        }

        .leave-reject-body {
            padding: 20px 22px;
        }

        .leave-reject-body textarea {
            min-height: 115px;
            resize: vertical;
        }

        .leave-reject-foot {
            display: flex;
            justify-content: flex-end;
            gap: 10px;
            padding: 0 22px 20px;
        }

        @keyframes leaveModalIn {
            from {
                opacity: 0;
                transform: translateY(8px) scale(.98);
            }

            to {
                opacity: 1;
                transform: translateY(0) scale(1);
            }
        }

        .content-pad {
            padding: 26px 32px 60px;
        }

        @media (max-width:991px) {
            .content-pad {
                padding: 15px;
            }
        }

        /* ===== Cards ===== */
        .card-custom {
            background: var(--bg-card);
            border: 1px solid var(--border-soft);
            border-radius: var(--radius-lg);
            box-shadow: var(--shadow-card);
            padding: 20px 22px;
            /* height: 100%; */
        }

        .card-head {
            display: flex;
            align-items: flex-start;
            justify-content: space-between;
            margin-bottom: 16px;
        }

        .card-title {
            font-weight: 700;
            font-size: 15.5px;
            color: var(--ink-900);
            margin: 0;
        }

        .card-sub {
            font-size: 12.5px;
            color: var(--ink-500);
            margin-top: 2px;
        }

        .icon-chip {
            width: 38px;
            height: 38px;
            border-radius: 11px;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 17px;
            flex-shrink: 0;
            background: var(--primary-soft);
            color: var(--primary-dark);
        }

        .icon-chip-blue {
            background: var(--accent-blue-soft);
            color: var(--accent-blue);
        }

        .icon-chip-amber {
            background: var(--accent-amber-soft);
            color: var(--accent-amber);
        }

        .icon-chip-violet {
            background: var(--accent-violet-soft);
            color: var(--accent-violet);
        }

        .icon-chip-pink {
            background: var(--accent-pink-soft);
            color: var(--accent-pink);
        }

        .icon-chip-red {
            background: var(--accent-red-soft);
            color: var(--accent-red);
        }

        .shortcut-icon {
            width: 44px;
            height: 44px;
            border-radius: 12px;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 18px;
            background: var(--primary-soft);
            color: var(--primary-dark);
        }

        .shortcut-icon-blue {
            background: var(--accent-blue-soft);
            color: var(--accent-blue);
        }

        .shortcut-icon-amber {
            background: var(--accent-amber-soft);
            color: var(--accent-amber);
        }

        .shortcut-icon-violet {
            background: var(--accent-violet-soft);
            color: var(--accent-violet);
        }

        .dot-primary {
            background: var(--primary);
        }

        .dot-danger {
            background: var(--danger);
        }

        .dot-amber {
            background: var(--accent-amber);
        }

        .time-chip {
            display: inline-flex;
            align-items: center;
            padding: 6px 12px;
            border-radius: 8px;
            font-size: 12px;
            font-weight: 600;
            background: var(--primary-soft);
            color: var(--primary-dark);
        }

        .page-title {
            font-size: 1.7rem;
        }

        .breadcrumb-text {
            font-size: 13px;
        }

        .stat-label {
            margin-bottom: 2px;
        }

        .text-xs {
            font-size: 10px;
        }

        .text-sm {
            font-size: 12px;
        }

        .text-md {
            font-size: 13px;
        }

        .text-lg {
            font-size: 14.5px;
        }


        /* ===== Stat strip ===== */
        .stat-card {
            background: var(--bg-card);
            border: 1px solid var(--border-soft);
            border-radius: var(--radius-md);
            padding: 16px 18px;
            height: 100%;
            cursor: pointer;
        }

        .stat-card .label {
            display: flex;
            align-items: center;
            justify-content: space-between;
            font-size: 12.5px !important;
            color: var(--ink-500);
            font-weight: 600;
            margin-bottom: 10px;
        }

        .stat-card .value {
            font-family: 'Sora', sans-serif;
            font-weight: 700;
            font-size: 1.7rem;
            color: var(--ink-900);
        }

        .stat-card .delta {
            font-size: 12px;
            font-weight: 600;
            margin-top: 4px;
        }

        .stat-icon {
            width: 30px;
            height: 30px;
            border-radius: 8px;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 14px;
            transition: all 0.25s ease;
        }

        .stat-icon-lg {
            width: 44px;
            height: 44px;
            font-size: 18px;
        }

        /* Stat Card Themes */
        .stat-theme-blue .stat-icon {
            color: var(--accent-blue);
            background: var(--accent-blue-soft);
        }

        .stat-theme-blue:hover {
            background: var(--accent-blue-soft);
            border-color: var(--accent-blue-soft);
        }

        .stat-theme-blue:hover .stat-icon {
            background: #fff;
        }

        .stat-theme-primary .stat-icon {
            color: var(--primary-dark);
            background: var(--primary-soft);
        }

        .stat-theme-primary:hover {
            background: var(--primary-soft);
            border-color: var(--primary-soft);
        }

        .stat-theme-primary:hover .stat-icon {
            background: #fff;
        }

        .stat-theme-amber .stat-icon {
            color: var(--accent-amber);
            background: var(--accent-amber-soft);
        }

        .stat-theme-amber:hover {
            background: var(--accent-amber-soft);
            border-color: var(--accent-amber-soft);
        }

        .stat-theme-amber:hover .stat-icon {
            background: #fff;
        }

        .stat-theme-violet .stat-icon {
            color: var(--accent-violet);
            background: var(--accent-violet-soft);
        }

        .stat-theme-violet:hover {
            background: var(--accent-violet-soft);
            border-color: var(--accent-violet-soft);
        }

        .stat-theme-violet:hover .stat-icon {
            background: #fff;
        }

        .stat-theme-red .stat-icon {
            color: var(--accent-red);
            background: var(--accent-red-soft);
        }

        .stat-theme-red:hover {
            background: var(--accent-red-soft);
            border-color: var(--accent-red-soft);
        }

        .stat-theme-red:hover .stat-icon {
            background: #fff;
        }

        .text-neutral {
            color: var(--ink-500);
        }

        .text-up {
            color: var(--primary);
        }

        .text-down {
            color: var(--accent-red);
        }

        /* ===== Buttons ===== */
        .btn-approve {
            background: var(--primary);
            border: none;
            color: #fff;
            font-weight: 700;
            font-size: 12.5px;
            padding: 6px 16px;
            border-radius: 8px;
        }

        .btn-approve:hover {
            background: var(--primary-dark);
            color: #fff;
        }

        .btn-reject {
            background: #fff;
            border: 1px solid var(--border-soft);
            color: var(--ink-700);
            font-weight: 700;
            font-size: 12.5px;
            padding: 6px 16px;
            border-radius: 8px;
        }

        .btn-reject:hover {
            background: var(--bg-app);
        }

        /* ===== Person rows ===== */
        .person-row {
            display: flex;
            align-items: center;
            gap: 12px;
            padding: 12px 0;
            border-bottom: 1px solid var(--border-soft);
        }

        .person-row:last-child {
            border-bottom: none;
            padding-bottom: 0;
        }

        .person-row .avatar-sm {
            width: 42px;
            height: 42px;
        }

        .person-name {
            font-weight: 700;
            font-size: 13.5px;
            color: var(--ink-900);
        }

        .person-meta {
            font-size: 12px;
            color: var(--ink-500);
        }

        .person-meta a,
        .link-strong {
            color: var(--primary-dark);
            font-weight: 600;
            text-decoration: none;
        }

        /* ===== Progress bars ===== */
        .thin-progress {
            height: 8px;
            border-radius: 999px;
            background: var(--bg-app);
            overflow: hidden;
        }

        .thin-progress>div {
            height: 100%;
            border-radius: 999px;
        }

        .approval-row {
            display: flex;
            align-items: center;
            justify-content: space-between;
            padding: 12px 14px;
            border-radius: 10px;
            margin-bottom: 8px;
            font-weight: 600;
            font-size: 13px;
        }

        .approval-row .dot {
            width: 8px;
            height: 8px;
            border-radius: 50%;
            display: inline-block;
            margin-right: 8px;
        }

        .legend-row {
            display: flex;
            align-items: center;
            justify-content: space-between;
            padding: 9px 0;
            font-size: 13px;
            font-weight: 600;
        }

        .legend-row .dot {
            width: 9px;
            height: 9px;
            border-radius: 50%;
            display: inline-block;
            margin-right: 8px;
        }




































        /* ===== Card header polish ===== */
        .js-report-table .card-head {
            flex-wrap: wrap;
            gap: 12px;
        }

        /* ===== Toolbar ===== */
        .report-toolbar {
            display: flex;
            flex-wrap: wrap;
            gap: 10px;
            align-items: center;
            margin-bottom: 18px;
            padding-bottom: 16px;
            border-bottom: 1px solid var(--border-soft);
        }

        .report-toolbar .btn-group .btn {
            font-weight: 600;
            font-size: 13px;
        }

        .report-search {
            display: flex;
            align-items: center;
            gap: 8px;
            background: var(--bg-app);
            border: 1px solid var(--border-soft);
            border-radius: 999px;
            padding: 8px 14px;
            flex: 1;
            min-width: 180px;
            max-width: 320px;
            margin-left: auto;
        }

        .report-search i {
            color: var(--ink-500);
            font-size: 15px;
        }

        .report-search input {
            border: 0;
            background: transparent;
            outline: none;
            width: 100%;
            font-size: 13.5px;
            color: var(--ink-900);
        }

        .report-date-btn {
            width: 40px;
            height: 40px;
            border-radius: 10px;
            border: 1px solid var(--border-soft);
            background: var(--bg-card);
            color: var(--ink-700);
            display: flex;
            align-items: center;
            justify-content: center;
            flex-shrink: 0;
        }

        .report-date-btn:hover {
            background: var(--primary-soft);
            color: var(--primary-dark);
            border-color: var(--primary-soft);
        }

        @media (max-width: 576px) {
            .report-toolbar {
                flex-direction: column;
                align-items: stretch;
            }

            .report-search {
                max-width: none;
                margin-left: 0;
                order: 3;
            }

            .report-toolbar .btn-group {
                width: 100%;
            }

            .report-toolbar .btn-group .btn {
                flex: 1;
            }
        }

        /* ===== Pagination footer polish ===== */
        .report-footer {
            flex-wrap: wrap;
            gap: 14px;
            padding-top: 16px;
            border-top: 1px solid var(--border-soft);
        }

        .report-footer .form-select {
            border-radius: 8px;
            font-weight: 600;
        }

        #pgList .page-link,
        [id$="PgList"] .page-link,
        [id$="pgList"] .page-link {
            border: none;
            background: transparent;
            color: var(--ink-700);
            font-weight: 600;
            font-size: 13px;
            border-radius: 8px;
            margin: 0 2px;
            width: 34px;
            height: 34px;
            display: flex;
            align-items: center;
            justify-content: center;
            padding: 0;
        }

        #pgList .page-link:hover,
        [id$="PgList"] .page-link:hover,
        [id$="pgList"] .page-link:hover {
            background: var(--primary-soft);
            color: var(--primary-dark);
        }

        #pgList .page-item.active .page-link,
        [id$="PgList"] .page-item.active .page-link,
        [id$="pgList"] .page-item.active .page-link {
            background: var(--primary);
            color: #fff;
        }

        #pgList .page-item.disabled .page-link,
        [id$="PgList"] .page-item.disabled .page-link,
        [id$="pgList"] .page-item.disabled .page-link {
            color: var(--ink-300);
            background: transparent;
        }

        @media (max-width: 576px) {
            .report-footer {
                justify-content: center;
                text-align: center;
            }
        }


        .btn-group {
            border-radius: 50px;
            border: 1px solid var(--border-soft);
        }

        .btn-group .view {
            padding: 5px 15px;
            border-radius: inherit;
            background-color: var(--primary-light);
            color: var(--primary);
        }

        .btn-group .edit {
            padding: 5px 15px;
            border-radius: inherit;
            background-color: var(--primary2-light);
            color: var(--primary2);
        }

        .btn-group .danger {
            padding: 5px 15px;
            border-radius: inherit;
            background-color: var(--danger-light);
            color: var(--danger);
        }

        .btn-group .view:hover {
            color: var(--bg-card);
            background-color: var(--primary);
        }

        .btn-group .edit:hover {
            color: var(--bg-card);
            background-color: var(--primary2);
        }

        .btn-group .danger:hover {
            color: var(--bg-card);
            background-color: var(--danger);
        }






































        /* ===== Offcanvas — Column Visibility (modern theme) ===== */
        #ocR {
            width: 340px;
            border-left: none;
            box-shadow: -8px 0 30px rgba(17, 24, 39, .12);
        }

        #ocR .offcanvas-header {
            padding: 18px 20px;
            border-bottom: 1px solid #EEF0FA;
            align-items: flex-start;
        }

        .offcanvas {
            border-radius: 10px;
            height: calc(100% - 20px);
        }

        .offcanvas-end {
            border-radius: 10px;
            height: calc(100% - 20px);
            top: 10px !important;
            right: 10px !important;
        }

        @media (max-width:420px) {
            .offcanvas {
                height: 100%;
                border-radius: 0 !important;
            }

            .offcanvas-end {
                height: 100%;
                top: 0 !important;
                right: 0 !important;
                border-radius: 0 !important;
            }
        }

        #ocR .oc-header-icon {
            width: 38px;
            height: 38px;
            border-radius: 10px;
            background: var(--primary-soft, #EEF1FF);
            color: var(--primary, #4F46E5);
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 1.15rem;
            flex-shrink: 0;
        }

        #ocR .offcanvas-title {
            font-size: 1rem;
            font-weight: 700;
            color: #1F2937;
        }

        #ocR .oc-subtitle {
            font-size: .78rem;
            color: #9CA3AF;
            margin-top: 2px;
        }

        #ocR .btn-close {
            box-shadow: none;
            opacity: .5;
        }

        #ocR .btn-close:hover {
            opacity: 1;
        }

        #ocR .column-toggle-body {
            padding: 16px 16px 8px;
        }

        /* individual column row */
        #ocR .column-toggle-body .row {
            margin: 0 0 8px 0 !important;
        }

        #ocR .column-toggle-body .col-12 {
            background: #FAFBFF;
            border: 1.5px solid #EEF0FA !important;
            border-radius: 12px !important;
            padding: 10px 14px !important;
            transition: border-color .15s ease, background-color .15s ease;
        }

        #ocR .column-toggle-body .col-12:hover {
            border-color: var(--primary-lightTwo, #C7CDF9);
            background: #FFFFFF;
        }

        #ocR .form-check-label {
            font-size: .88rem;
            color: #374151;
            font-weight: 600;
            margin: 0;
        }

        /* switch styling */
        #ocR .form-check-input {
            width: 38px;
            height: 20px;
            cursor: pointer;
            border-color: #D8DAEE;
        }

        #ocR .form-check-input:checked {
            background-color: var(--primary, #4F46E5);
            border-color: var(--primary, #4F46E5);
        }

        #ocR .form-check-input:focus {
            box-shadow: 0 0 0 3px var(--primary-light, #E0E4FF);
        }

        /* footer */
        #ocR .oc-footer {
            display: flex;
            gap: 10px;
            padding: 14px 16px;
            border-top: 1px solid #EEF0FA;
        }

        #ocR .oc-footer .btn {
            flex: 1;
            border-radius: 10px;
            font-size: .82rem;
            font-weight: 600;
        }




        /* ===== Day timeline (checkin/break/lunch/checkout) ===== */
        .day-timeline {
            padding: 18px 6px 4px;
        }

        .tl-track {
            position: relative;
            height: 4px;
            background: var(--bg-app);
            border-radius: 999px;
            margin: 0 22px 0;
        }

        .tl-fill {
            position: absolute;
            top: 0;
            left: 0;
            height: 100%;
            background: var(--primary);
            border-radius: 999px;
            transition: width .3s ease;
        }

        .tl-points {
            display: flex;
            justify-content: space-between;
            margin-top: -14px;
        }

        .tl-point {
            flex: 1;
            display: flex;
            flex-direction: column;
            align-items: center;
            text-align: center;
            position: relative;
        }

        .tl-dot {
            width: 28px;
            height: 28px;
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
            color: #fff;
            font-size: 13px;
            box-shadow: 0 0 0 4px var(--bg-card);
            margin-bottom: 8px;
        }

        .tl-point:not(.done):not(.active) .tl-dot {
            color: var(--ink-500);
            background: var(--bg-app) !important;
            border: 1px solid var(--border-soft);
        }

        .tl-point.active .tl-dot {
            box-shadow: 0 0 0 4px var(--bg-card), 0 0 0 6px var(--accent-blue-soft);
        }

        .tl-label {
            font-weight: 700;
            font-size: 13px;
            color: var(--ink-900);
        }

        .tl-time {
            font-size: 11.5px;
            color: var(--ink-500);
            margin-top: 2px;
            white-space: nowrap;
        }

        @media (max-width: 576px) {
            .tl-label {
                font-size: 11.5px;
            }

            .tl-time {
                font-size: 10px;
            }
        }




















        /* button block  start */

        .btn {
            font-weight: 600;
            border-radius: 8px;
            font-size: .85rem;
            transition: all .15s;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            gap: .35rem;
        }

        .btn-primary {
            background: var(--grad-primary);
            color: #fff;
            box-shadow: 0 6px 18px var(--primary-light);
            border: 0;
        }

        .btn-outline-primary {
            --bs-btn-border-color: var(var(--primary))
        }

        .btn-primary:hover,
        .btn-primary:focus {
            background: var(--grad-primary);
            color: #fff;
            box-shadow: 0 10px 25px var(--primary-lightTwo);
            transform: translateY(-1px);
        }

        .btn-group {
            border-top-left-radius: 50px;
            border-bottom-left-radius: 50px;
            border-top-right-radius: 50px;
            border-bottom-right-radius: 50px;
        }

        .btn-group .btn {
            border-radius: inherit;
        }

        .export-btn-pdf {
            font-size: 12px;
            background-color: var(--primary-light) !important;
            color: var(--primary) !important;
        }

        .columns-btn {
            font-size: 12px;
            background-color: var(--accent-amber-soft) !important;
            color: var(--accent-amber) !important;
        }

        .columns-btn:hover,
        .export-btn-exl:hover,
        .export-btn-pdf:hover {
            opacity: 0.6 !important;
        }


        .export-btn-exl {
            font-size: 12px;
            background-color: var(--danger-light) !important;
            color: var(--danger) !important;
        }
















































        /* ===== Modal entrance animation ===== */
        .modal.fade .modal-dialog {
            transform: scale(0.9) translateY(20px);
            opacity: 0;
            transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
        }

        .modal.show .modal-dialog {
            transform: scale(1) translateY(0);
            opacity: 1;
        }

        .modal-backdrop.show {
            opacity: 0.6;
            backdrop-filter: blur(6px);
        }

        /* ===== Trendy asymmetric modal shape ===== */
        .modal-content {
            border: 1px solid rgba(255, 255, 255, 0.08);
            /* Asymmetric radius - one trendy corner is sharper */
            border-radius: var(--gh-radius) var(--gh-radius) var(--gh-radius) var(--gh-radius);
            box-shadow: 0 25px 60px rgba(0, 0, 0, 0.25), 0 0 0 1px rgba(99, 102, 241, 0.05);
            overflow: hidden;
            background: #ffffff;
            position: relative;
        }

        /* Decorative blob accent - top right */
        .modal-content::before {
            /* content: "";
            position: absolute;
            top: -60px;
            right: -60px;
            width: 160px;
            height: 160px;
            background: radial-gradient(circle, var(--primary-light) 0%, transparent 70%);
            border-radius: 50%;
            pointer-events: none; */
        }

        .modal-close {
            width: 34px;
            height: 34px;
            border-radius: 50px;
            border: 0;
            background: var(--danger-light);
            display: flex;
            align-items: center;
            justify-content: center;
            color: var(--danger);
            font-size: 16px;
            cursor: pointer;
            transition: all .15s ease;
            box-shadow: var(--bs-box-shadow);
        }

        .modal-close:hover {
            background-color: var(--danger);
            color: var(--danger-light);
        }

        .modal-header {
            border-bottom: none;
            padding: 15px 20px;
            background: transparent;
            position: relative;
            border-bottom: 1px solid var(--border-soft);
            justify-content: space-between;
        }


        .modal-title {
            font-weight: 700;
            font-size: 1.2rem;
            color: #14142b;
            margin: 0;
            letter-spacing: -0.01em;
        }

        .modal-title small {
            display: block;
            font-weight: 400;
            font-size: 0.82rem;
            color: #8b8ca7;
            margin-top: 3px;
        }

        .modal-header .btn-close {
            background-color: #f4f4fa;
            border-radius: 50%;
            padding: 8px;
            opacity: 1;
            position: relative;
            z-index: 1;
        }

        .modal-header .btn-close:hover {
            background-color: #eceafc;
            transform: rotate(90deg);
        }

        .modal-body {
            padding: 8px 28px 24px;
            color: #6b6c85;
            position: relative;
            animation: fadeSlideUp 0.45s ease 0.1s backwards;
        }

        @keyframes fadeSlideUp {
            from {
                opacity: 0;
                transform: translateY(12px);
            }

            to {
                opacity: 1;
                transform: translateY(0);
            }
        }

        .modal-footer {
            border-top: 1px solid #f0f0f7;
            padding: 10px 20px;
            background-color: #fafafc;
            /* Match the sharper bottom-left corner */
            border-radius: 0 0 var(--gh-radius) 8px;
        }

        .modal-footer .btn-secondary {
            background-color: #fff;
            color: #4b4c63;
            border: 1px solid #e6e6f0;
        }


























        /* ===== Offcanvas trendy shape ===== */
        .offcanvas-end {
            width: 400px;
            border-left: none;
            border-radius: var(--gh-radius)20px;
            box-shadow: -25px 0 60px rgba(0, 0, 0, 0.15);
            /* smoother slide than default bootstrap */
            transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1) !important;
            overflow: hidden;
        }

        .offcanvas {
            border-radius: 20px !important;
        }

        .offcanvas-start {
            left: 10px !important;
            top: 10px !important;
        }

        .offcanvas-top {
            top: 10px !important;
            left: 10px !important;
            right: 10px !important;
        }

        .offcanvas-bottom {
            bottom: 10px !important;
            left: 10px !important;
            right: 10px !important;
        }

        @media (max-width:420px) {
            .offcanvas-start {
                left: 10px !important;
                top: 10px !important;
            }

            .offcanvas-top {
                top: 10px !important;
                left: 10px !important;
                right: 10px !important;
            }

            .offcanvas-bottom {
                bottom: 10px !important;
                left: 10px !important;
                right: 10px !important;
            }
        }

        .offcanvas-backdrop.show {
            opacity: 0.55;
            backdrop-filter: blur(4px);
        }

        /* Decorative glow blob */
        /* .offcanvas-end::before {
            content: "";
            position: absolute;
            top: -60px;
            left: -60px;
            width: 180px;
            height: 180px;
            background: radial-gradient(circle, rgba(99, 102, 241, 0.12) 0%, transparent 70%);
            border-radius: 50%;
            pointer-events: none;
            z-index: 0;
        } */

        .offcanvas-header {
            border-bottom: 1px solid #f0f0f7;
            padding: 15px 20px;
            position: relative;
            z-index: 1;
        }

        .offcanvas-header-icon {
            width: 42px;
            height: 42px;
            border-radius: 40% 60% 55% 45% / 50% 45% 55% 50%;
            background: linear-gradient(135deg, var(--gh-accent), var(--gh-accent-light));
            display: flex;
            align-items: center;
            justify-content: center;
            margin-right: 12px;
            font-size: 18px;
            color: #fff;
            flex-shrink: 0;
            box-shadow: 0 6px 16px rgba(99, 102, 241, 0.3);
        }

        .offcanvas-title {
            font-weight: 700;
            font-size: 1.1rem;
            color: #14142b;
            letter-spacing: -0.01em;
        }

        .offcanvas-title small {
            display: block;
            font-weight: 400;
            font-size: 0.78rem;
            color: #8b8ca7;
            margin-top: 2px;
        }

        .offcanvas-header .btn-close {
            background-color: #f4f4fa;
            border-radius: 50%;
            padding: 8px;
            opacity: 1;
            transition: all 0.2s ease;
        }

        .offcanvas-header .btn-close:hover {
            background-color: #eceafc;
            transform: rotate(90deg);
        }

        .offcanvas-body {
            padding: 20px 24px 24px;
            color: #6b6c85;
            position: relative;
            z-index: 1;
            overflow: auto;
        }

        /* Stagger fade-in for body content once offcanvas is shown */
        .offcanvas.show .offcanvas-body>* {
            /* animation: fadeSlideUp 0.45s ease backwards; */
        }

        .offcanvas.show .offcanvas-body>*:nth-child(1) {
            /* animation-delay: 0.08s; */
        }

        .offcanvas.show .offcanvas-body>*:nth-child(2) {
            /* animation-delay: 0.14s; */
        }

        .offcanvas.show .offcanvas-body>*:nth-child(3) {
            /* animation-delay: 0.20s; */
        }

        .offcanvas.show .offcanvas-body>*:nth-child(4) {
            /* animation-delay: 0.26s; */
        }

        .offcanvas.show .offcanvas-body>*:nth-child(n+5) {
            /* animation-delay: 0.32s; */
        }

        @keyframes fadeSlideUp {
            from {
                opacity: 0;
                transform: translateY(14px);
            }

            to {
                opacity: 1;
                transform: translateY(0);
            }
        }































        /* input block start */
        .form-label {
            font-size: .8rem;
            font-weight: 600;
            margin-bottom: .4rem;
            color: var(--ny-heading);
        }

        .form-control,
        .form-select {
            background: var(--input-bg);
            border: 1px solid var(--border-soft);
            /* color: var(--ny-body); */
            padding: .6rem .85rem;
            font-size: .85rem;
            border-radius: 10px;
            transition: all .15s;
            box-shadow: 0rem 0.25rem 0.25rem 0rem rgba(219, 219, 219, 0.25);
        }

        .form-control:focus,
        .form-select:focus,
        .form-check-input:focus {
            border-color: var(--primary-lightTwo) !important;
            box-shadow: 0 0 0 0.25rem var(--primary-light);
        }

        /* input block end */


        .custom-tooltip {
            --bs-tooltip-bg: var(--primary-dark);
            --bs-tooltip-color: var(--white);
        }

        .tooltip {
            --bs-tooltip-bg: var(--primary-dark);
            --bs-tooltip-color: var(--white);
            --bs-tooltip-font-size: 11px;
            --bs-tooltip-border-radius: 7px;
            filter: drop-shadow(0 5px 12px rgba(20, 30, 25, .16));
        }

        .tooltip-inner {
            max-width: 180px;
            padding: 6px 10px;
            color: var(--white);
            background: var(--primary-dark);
            border: 1px solid rgba(255, 255, 255, .12);
            border-radius: 7px;
            font-size: 11px;
            font-weight: 700;
            line-height: 1.25;
            letter-spacing: .01em;
        }

        .tooltip-checkout .tooltip-inner {
            background: var(--accent-red);
        }

        .tooltip-breakout .tooltip-inner {
            background: #b56b00;
        }

        .tooltip-breakin .tooltip-inner {
            background: var(--primary-dark);
        }

        .tooltip-lunchout .tooltip-inner {
            background: #3564e0;
        }

        .tooltip-lunchin .tooltip-inner {
            background: #16803a;
        }

        /* Hide Bootstrap tooltip arrows across every page. */
        .tooltip .tooltip-arrow,
        .no-tooltip-arrow .tooltip-arrow {
            display: none;
        }

        /* ===== Add / Remove entry buttons (wizard steps) ===== */
        .btn-add-entry {
            background: var(--primary-light);
            color: var(--primary-dark);
            font-weight: 600;
            border-radius: 8px;
            border: none;
            transition: background .15s ease;
        }

        .btn-add-entry:hover {
            background: var(--primary);
            color: #fff;
        }

        .btn-remove-entry {
            position: absolute;
            top: 0;
            right: 0;
            background: var(--accent-red-soft);
            color: var(--accent-red);
            font-weight: 600;
            border-radius: 8px;
            border: none;
            transition: background .15s ease;
        }

        .btn-remove-entry:hover {
            background: var(--accent-red);
            color: #fff;
        }



















        .mt-search-wrap {
            position: relative
        }

        .mt-search-icon {
            position: absolute;
            left: 12px;
            top: 50%;
            transform: translateY(-50%);
            color: #6c757d;
            font-size: 14px;
            pointer-events: none
        }

        .mt-search-input {
            border: 1px solid var(--border-soft);
            border-radius: 10px;
            padding: 8px 14px 8px 36px;
            font-size: 12.5px;
            font-weight: 500;
            font-family: "Manrope", sans-serif;
            color: var(--ink-700);
            width: 220px;
            transition: border-color .2s, box-shadow .2s
        }

        .mt-search-input:focus {
            outline: none;
            border-color: var(--primary);
            box-shadow: 0 0 0 3px var(--primary-soft)
        }

        .mt-search-input::placeholder {
            color: #adb5bd;
            font-weight: 500
        }


        .select2-container--default .select2-selection--multiple {
            background: var(--input-bg) !important;
            border: 1px solid var(--border-soft) !important;
            /* color: var(--ny-body); */
            padding: .6rem .85rem !important;
            font-size: .85rem !important;
            border-radius: 10px !important;
            transition: all .15s;
            box-shadow: 0rem 0.25rem 0.25rem 0rem rgba(219, 219, 219, 0.25);
            padding-top: 5px !important;
        }