/* ===================================================================
   Sholay ERP — Admin UI  (premium theme)
=================================================================== */
:root{
    --navy:#0b1531; --navy2:#111e42; --sidebar-w:272px;
    --blue:#2563eb; --blue2:#1d4ed8; --sky:#38bdf8;
    --amber:#f7b500; --green:#12b76a; --red:#f04438; --violet:#7c3aed;
    --ink:#0f172a; --muted:#64748b; --line:#e8ecf3; --bg:#eef2f8; --card:#ffffff;
    --radius:18px; --radius-sm:12px;
    --shadow:0 1px 2px rgba(16,24,40,.05),0 10px 28px -8px rgba(16,24,40,.10);
    --shadow-lg:0 22px 54px -14px rgba(16,24,40,.22);
    --shadow-glow:0 12px 32px -8px rgba(37,99,235,.42);
    --sidebar-bg:linear-gradient(186deg,#0c1733 0%,#0b1531 56%,#0a1230 100%);
}
*{box-sizing:border-box}
body{
    font-family:'Inter',system-ui,-apple-system,sans-serif;
    background:
        radial-gradient(1100px 480px at 100% -8%, rgba(37,99,235,.07), transparent 60%),
        radial-gradient(900px 460px at -10% 110%, rgba(247,181,0,.05), transparent 60%),
        var(--bg);
    color:var(--ink);
    letter-spacing:-.01em;
    background-attachment:fixed;
    -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4,h5,h6,.fw-bold,.navbar-brand{font-family:'Plus Jakarta Sans',sans-serif;letter-spacing:-.02em}
[data-bs-theme="dark"] body{
    background:
        radial-gradient(1100px 480px at 100% -8%, rgba(37,99,235,.14), transparent 60%),
        radial-gradient(900px 460px at -10% 110%, rgba(247,181,0,.06), transparent 60%),
        #070c1c;
    color:#e5e9f2;
}

/* ===== Layout ===== */
.app-shell{display:flex;min-height:100vh}
.app-main{flex:1;min-width:0;display:flex;flex-direction:column}
.app-content{flex:1;animation:fadeIn .35s ease}
@keyframes fadeIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}

/* ===== Sidebar ===== */
.app-sidebar{
    width:var(--sidebar-w);
    background:var(--sidebar-bg);
    color:#aeb8cf;display:flex;flex-direction:column;
    position:sticky;top:0;height:100vh;overflow-y:auto;
    border-right:1px solid rgba(255,255,255,.05);
    box-shadow:8px 0 36px -10px rgba(3,10,30,.5);
    transition:margin-left .3s cubic-bezier(.4,0,.2,1);
    z-index:1040;
}
.app-sidebar::-webkit-scrollbar{width:6px}
.app-sidebar::-webkit-scrollbar-track{background:transparent}
.app-sidebar::-webkit-scrollbar-thumb{background:rgba(255,255,255,.14);border-radius:3px}
.app-sidebar::-webkit-scrollbar-thumb:hover{background:rgba(255,255,255,.26)}
.sidebar-brand{
    padding:24px 24px 20px;text-align:left;position:relative;margin-bottom:8px;
}
.sidebar-brand::after{content:"";position:absolute;left:24px;right:24px;bottom:0;height:1px;
    background:linear-gradient(90deg,transparent,rgba(255,255,255,.14),transparent)}
.sidebar-logo{max-width:182px;max-height:46px;transition:.3s;filter:drop-shadow(0 2px 8px rgba(0,0,0,.3))}
.sidebar-nav{padding:.4rem .7rem 1rem;flex:1}
.sidebar-nav .nav-link{
    color:#aeb8cf;padding:.66rem .9rem;display:flex;align-items:center;gap:.85rem;
    border-radius:12px;font-size:.94rem;font-weight:500;margin:2px 0;transition:.18s ease;
    position:relative;letter-spacing:-.005em;
}
.sidebar-nav .nav-link:hover{
    background:rgba(255,255,255,.07);color:#fff;transform:translateX(3px);
}
.sidebar-nav .nav-link.active{
    background:linear-gradient(90deg,var(--blue),#3b82f6);color:#fff;
    box-shadow:0 10px 24px -6px rgba(37,99,235,.6);
}
.sidebar-nav .nav-link.active::before{
    content:"";position:absolute;left:-12px;top:18%;height:64%;width:4px;border-radius:4px;background:var(--amber);
    box-shadow:0 0 14px rgba(247,181,0,.75);
}
.sidebar-nav .nav-link i{width:22px;text-align:center;font-size:1.12rem;opacity:.95;transition:transform .2s ease}
.sidebar-nav .nav-link:hover i,.sidebar-nav .nav-link.active i{transform:scale(1.14)}
.nav-section{
    color:#5a6788;font-size:.66rem;text-transform:uppercase;letter-spacing:.16em;
    padding:1.25rem 1.05rem .45rem;font-weight:700;
}
.nav-section:first-child{padding-top:.5rem}
.sidebar-footer{
    padding:1.05rem 1.25rem;border-top:1px solid rgba(255,255,255,.07);
    background:rgba(0,0,0,.18);
}
.sidebar-footer a{color:#8ea0c4;text-decoration:none;transition:.18s;font-weight:500}
.sidebar-footer a:hover{color:#fff}

/* ===== Topbar ===== */
.app-topbar{
    background:rgba(255,255,255,.85);backdrop-filter:blur(16px) saturate(180%);-webkit-backdrop-filter:blur(16px) saturate(180%);
    border-bottom:1px solid var(--line);position:sticky;top:0;z-index:1030;min-height:66px;
    box-shadow:0 1px 0 rgba(16,24,40,.03);
}
[data-bs-theme="dark"] .app-topbar{background:rgba(13,20,42,.85);border-color:#1c2542;box-shadow:0 1px 0 rgba(0,0,0,.3)}
.app-topbar .navbar-brand{font-weight:800;color:var(--ink);font-size:1.1rem;letter-spacing:-.02em}
[data-bs-theme="dark"] .app-topbar .navbar-brand{color:#e5e9f2}
.app-footer{
    border-top:1px solid var(--line);color:var(--muted)!important;
    background:rgba(255,255,255,.6);backdrop-filter:blur(8px);
}
[data-bs-theme="dark"] .app-footer{background:rgba(7,12,28,.6);border-color:#1c2542}

/* ===== Page head ===== */
.page-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.7rem;gap:1rem;flex-wrap:wrap}
.page-head h1{font-size:1.65rem;margin:0;font-weight:800;letter-spacing:-.025em;display:flex;align-items:center;gap:.55rem}
.page-head h1 i{font-size:1.3rem}
.page-head h1 .text-primary{
    background:linear-gradient(135deg,var(--blue),var(--sky));-webkit-background-clip:text;
    background-clip:text;-webkit-text-fill-color:transparent;
}

/* ===== Cards ===== */
.card{
    border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);
    background:var(--card);transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease;
}
[data-bs-theme="dark"] .card{border-color:#1c2542;background:#0f1830}
.card-body{padding:1.4rem}

/* ===== KPI cards ===== */
.kpi-card{
    border:1px solid var(--line);border-radius:var(--radius);transition:.26s cubic-bezier(.4,0,.2,1);
    overflow:hidden;position:relative;background:var(--card);
}
.kpi-card::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;
    background:linear-gradient(90deg,var(--blue),var(--sky));opacity:0;transition:opacity .25s ease}
.kpi-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg);border-color:transparent}
.kpi-card:hover::before{opacity:1}
.kpi-card .kpi-icon{
    font-size:1.35rem;width:54px;height:54px;display:grid;place-items:center;border-radius:14px;
    transition:transform .25s ease;
}
.kpi-card:hover .kpi-icon{transform:scale(1.1) rotate(-4deg)}
.kpi-card .kpi-value{font-size:2rem;font-weight:800;line-height:1;letter-spacing:-.035em;font-family:'Plus Jakarta Sans'}
.kpi-card .kpi-label{color:var(--muted);font-size:.82rem;font-weight:500;margin-top:.22rem}

/* ===== Gradient stat (sales) cards ===== */
.stat-hero{
    border-radius:var(--radius);color:#fff;position:relative;overflow:hidden;border:none;
    box-shadow:0 16px 40px -12px rgba(37,99,235,.45);transition:transform .26s ease,box-shadow .26s ease;
}
.stat-hero:hover{transform:translateY(-5px);box-shadow:0 22px 52px -12px rgba(37,99,235,.55)}
.stat-hero .card-body{padding:1.7rem 1.8rem}
.stat-hero .sh-label{opacity:.9;font-size:.86rem;font-weight:500;display:flex;align-items:center}
.stat-hero .sh-value{font-size:2.15rem;font-weight:800;letter-spacing:-.035em;font-family:'Plus Jakarta Sans';text-shadow:0 2px 12px rgba(0,0,0,.2)}
.stat-hero .sh-ic{font-size:2.9rem;opacity:.24;position:absolute;right:1.4rem;top:50%;transform:translateY(-50%);transition:transform .4s ease}
.stat-hero:hover .sh-ic{transform:translateY(-50%) scale(1.14) rotate(8deg)}
.stat-hero::after{content:"";position:absolute;right:-50px;top:-50px;width:190px;height:190px;border-radius:50%;background:rgba(255,255,255,.1);transition:transform .5s ease}
.stat-hero:hover::after{transform:scale(1.15)}
.stat-blue{background:linear-gradient(120deg,#2563eb,#1e40af)}
.stat-green{background:linear-gradient(120deg,#12b76a,#047857);box-shadow:0 16px 40px -12px rgba(18,183,106,.45)}
.stat-green:hover{box-shadow:0 22px 52px -12px rgba(18,183,106,.55)}

/* ===== Tables ===== */
.table{--bs-table-bg:transparent;margin-bottom:0}
.table>:not(caption)>*{padding:.8rem .9rem;vertical-align:middle}
.table thead th{
    font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);
    font-weight:700;border-bottom:1px solid var(--line);background:rgba(248,250,252,.6);
}
[data-bs-theme="dark"] .table thead th{background:rgba(255,255,255,.02);color:#8a96b3}
.table-hover>tbody>tr{transition:background .15s ease}
.table-hover>tbody>tr:hover>*{background:rgba(37,99,235,.05)}
[data-bs-theme="dark"] .table-hover>tbody>tr:hover>*{background:rgba(56,189,248,.07)}
.card .table:last-child{margin-bottom:0}

/* Badges softer */
.badge{font-weight:600;letter-spacing:.01em;padding:.42em .75em;border-radius:8px;font-size:.72rem}

/* Buttons */
.btn{border-radius:11px;font-weight:600;transition:.18s ease;letter-spacing:-.005em}
.btn-primary{background:var(--blue);border-color:var(--blue)}
.btn-primary:hover{background:var(--blue2);border-color:var(--blue2);box-shadow:var(--shadow-glow);transform:translateY(-1px)}
.btn-primary:active{transform:translateY(0)}
.btn-sm{border-radius:9px}
.btn-outline-secondary{border-radius:10px}
.btn-outline-secondary:hover{background:var(--ink);border-color:var(--ink)}
[data-bs-theme="dark"] .btn-outline-secondary:hover{background:#fff;color:#0b1531}

/* Forms */
.form-control,.form-select{border-radius:11px;border-color:var(--line);padding:.62rem .9rem;transition:.18s ease;background-color:#fff}
[data-bs-theme="dark"] .form-control,[data-bs-theme="dark"] .form-select{background-color:#0f1830;border-color:#1c2542;color:#e5e9f2}
.form-control:focus,.form-select:focus{border-color:var(--blue);box-shadow:0 0 0 .22rem rgba(37,99,235,.14);background-color:#fff}
[data-bs-theme="dark"] .form-control:focus,[data-bs-theme="dark"] .form-select:focus{background-color:#0f1830}
.form-label{font-weight:600;font-size:.86rem;color:#344054;margin-bottom:.35rem}
[data-bs-theme="dark"] .form-label{color:#c2cbdd}

/* Dropdown polish */
.dropdown-menu{border-radius:13px;border:1px solid var(--line);box-shadow:var(--shadow-lg);padding:.4rem;animation:ddPop .16s ease}
@keyframes ddPop{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
.dropdown-item{border-radius:8px;padding:.5rem .75rem;font-weight:500;transition:.12s}
.dropdown-item:hover{background:rgba(37,99,235,.08);color:var(--blue)}
.dropdown-item-text{border-radius:8px}

/* Alerts smoother */
.alert{border-radius:13px;border:1px solid transparent;padding:.9rem 1.15rem;font-weight:500}
.alert-dismissible .btn-close{padding:1.15rem}

/* Chart canvas wrapper keeps a stable height */
.chart-wrap{position:relative;height:280px}
.chart-wrap-sm{position:relative;height:230px}

/* ===== Login ===== */
.login-page{
    min-height:100vh;display:grid;place-items:center;padding:1rem;position:relative;overflow:hidden;
    background:linear-gradient(135deg,#0b1531 0%,#12245a 52%,#1d4ed8 122%);
}
.login-page::before,.login-page::after{content:"";position:absolute;border-radius:50%;filter:blur(14px)}
.login-page::before{width:380px;height:380px;background:rgba(247,181,0,.2);top:-95px;right:-75px}
.login-page::after{width:340px;height:340px;background:rgba(56,189,248,.22);bottom:-95px;left:-75px}
.login-card{
    width:100%;max-width:450px;border:none;border-radius:26px;position:relative;z-index:2;
    box-shadow:0 38px 76px rgba(3,10,30,.6);animation:loginIn .5s cubic-bezier(.4,0,.2,1);
}
@keyframes loginIn{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}
.login-logo{max-width:232px;max-height:80px}

/* Links inside cards */
.card a:not(.btn):not(.nav-link){transition:color .15s}

/* ===== Responsive sidebar ===== */
@media (max-width:991.98px){
    .app-sidebar{position:fixed;z-index:1050;margin-left:calc(-1 * var(--sidebar-w) - 8px);box-shadow:2px 0 36px rgba(0,0,0,.42)}
    .app-sidebar.show{margin-left:0}
    .page-head h1{font-size:1.32rem}
}

/* ===== Backdrop for mobile sidebar ===== */
.sidebar-backdrop{position:fixed;inset:0;background:rgba(3,10,30,.5);backdrop-filter:blur(2px);z-index:1045;
    opacity:0;visibility:hidden;transition:.3s}
.sidebar-backdrop.show{opacity:1;visibility:visible}

/* ===== Global search ===== */
.global-search .gs-input{padding-left:2.1rem;border-radius:10px;background:var(--bg);border-color:transparent;height:38px}
.global-search .gs-input:focus{background:#fff;border-color:var(--blue);box-shadow:0 0 0 .2rem rgba(37,99,235,.12)}
[data-bs-theme="dark"] .global-search .gs-input{background:#0b1220}
[data-bs-theme="dark"] .global-search .gs-input:focus{background:#0f1830}
.global-search .gs-ic{position:absolute;left:.7rem;top:50%;transform:translateY(-50%);color:var(--muted);font-size:.9rem;z-index:2}
.global-search .gs-kbd{position:absolute;right:.6rem;top:50%;transform:translateY(-50%);font-size:.7rem;background:#fff;border:1px solid var(--line);border-radius:5px;padding:0 .35rem;color:var(--muted)}
.gs-results{position:absolute;top:calc(100% + 6px);left:0;right:0;background:#fff;border:1px solid var(--line);border-radius:12px;
    max-height:60vh;overflow-y:auto;z-index:1050;display:none;padding:.35rem}
[data-bs-theme="dark"] .gs-results{background:#0f1830;border-color:#1c2542}
.gs-results.show{display:block}
.gs-item{display:flex;align-items:center;gap:.7rem;padding:.55rem .7rem;border-radius:9px;color:inherit;text-decoration:none}
.gs-item:hover,.gs-item.active{background:rgba(37,99,235,.08)}
.gs-item .gs-i{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;background:var(--bg);color:var(--blue);flex-shrink:0}
.gs-item small{color:var(--muted)}
.gs-type{margin-left:auto;font-size:.68rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:700}
.gs-empty{padding:1rem;text-align:center;color:var(--muted);font-size:.9rem}
@media (max-width:575px){.global-search{max-width:none}.global-search .gs-input{font-size:.85rem}}

/* ===== Bulk action bar ===== */
.bulk-bar{position:sticky;top:66px;z-index:15;background:linear-gradient(90deg,var(--blue),#3b82f6);color:#fff;
    border-radius:12px;padding:.6rem 1rem;display:none;align-items:center;gap:.8rem;margin-bottom:1rem;box-shadow:var(--shadow)}
.bulk-bar.show{display:flex}
.bulk-bar .btn{--bs-btn-color:#fff;--bs-btn-border-color:rgba(255,255,255,.5)}
.list-toolbar{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center;justify-content:space-between;margin-bottom:1rem}
.list-toolbar .filters{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}

/* ===== Lead Kanban ===== */
.kanban{display:flex;gap:14px;overflow-x:auto;padding-bottom:1rem;scroll-snap-type:x proximity}
.kanban-col{flex:0 0 280px;background:var(--bg);border-radius:14px;display:flex;flex-direction:column;max-height:calc(100vh - 220px);scroll-snap-align:start}
[data-bs-theme="dark"] .kanban-col{background:#0b1220}
.kanban-col-head{padding:.8rem 1rem;font-weight:700;display:flex;align-items:center;justify-content:space-between;border-bottom:2px solid var(--line);position:sticky;top:0}
.kanban-col-head .dot{width:9px;height:9px;border-radius:50%;display:inline-block;margin-right:.5rem}
.kanban-body{padding:.7rem;overflow-y:auto;flex:1;min-height:80px}
.kanban-body.drop-hover{background:rgba(37,99,235,.08);outline:2px dashed var(--blue);outline-offset:-4px;border-radius:10px}
.kcard{background:#fff;border:1px solid var(--line);border-radius:11px;padding:.7rem .8rem;margin-bottom:.6rem;cursor:grab;box-shadow:var(--shadow);transition:box-shadow .15s,transform .15s}
[data-bs-theme="dark"] .kcard{background:#0f1830;border-color:#1c2542}
.kcard:hover{box-shadow:var(--shadow-lg)}
.kcard.dragging{opacity:.5;transform:rotate(1.5deg)}
.kcard .kc-name{font-weight:600;font-size:.92rem}
.kcard .kc-meta{color:var(--muted);font-size:.78rem;margin-top:.2rem;display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}
.kcard a{color:inherit;text-decoration:none}

/* ===== Activity timeline ===== */
.timeline{position:relative;padding-left:2.2rem}
.timeline::before{content:"";position:absolute;left:11px;top:4px;bottom:4px;width:2px;background:var(--line)}
.tl-item{position:relative;padding-bottom:1.3rem}
.tl-item:last-child{padding-bottom:0}
.tl-dot{position:absolute;left:-2.2rem;top:0;width:24px;height:24px;border-radius:50%;display:grid;place-items:center;
    font-size:.72rem;color:#fff;box-shadow:0 0 0 3px var(--card)}
.tl-title{font-weight:600;font-size:.94rem}
.tl-desc{color:var(--muted);font-size:.86rem}
.tl-date{color:var(--muted);font-size:.76rem}

/* ============================================================
   COMPACT DENSITY  (tighter spacing across the admin)
============================================================ */
:root{ --radius:14px; --radius-sm:10px; }
.app-content{ padding:1rem 1.1rem !important; }
.app-content .row.g-3{ --bs-gutter-x:.7rem; --bs-gutter-y:.7rem; }
.app-content .row.g-4{ --bs-gutter-x:1rem; --bs-gutter-y:1rem; }
.app-content .mb-4{ margin-bottom:.95rem !important; }
.app-content .mb-3{ margin-bottom:.7rem !important; }

.card-body{ padding:1.05rem; }
.card-body.py-3{ padding-top:.7rem; padding-bottom:.7rem; }

.page-head{ margin-bottom:1rem; }
.page-head h1{ font-size:1.32rem; }
.page-head h1 i{ font-size:1.05rem; }

.app-topbar{ min-height:56px; }
.sidebar-brand{ padding:16px 20px 13px; margin-bottom:5px; }
.sidebar-logo{ max-height:40px; }
.sidebar-nav .nav-link{ padding:.5rem .8rem; font-size:.9rem; margin:1px 0; border-radius:10px; }
.nav-section{ padding:.85rem .95rem .3rem; }

.kpi-card .kpi-value{ font-size:1.6rem; }
.kpi-card .kpi-icon{ width:44px; height:44px; font-size:1.12rem; border-radius:12px; margin-bottom:.4rem !important; }
.kpi-card .kpi-label{ font-size:.78rem; margin-top:.12rem; }

.stat-hero .card-body{ padding:1.1rem 1.25rem; }
.stat-hero .sh-value{ font-size:1.7rem; }
.stat-hero .sh-label{ font-size:.8rem; }
.stat-hero .sh-ic{ font-size:2.2rem; }

.table{ --bs-table-cell-padding-y:.46rem; --bs-table-cell-padding-x:.65rem; }
.table>:not(caption)>*>*{ padding:.46rem .65rem; }
.table thead th{ font-size:.72rem; }
.card h6, h6.card-title{ margin-bottom:.55rem !important; font-size:.95rem; }

.list-toolbar{ margin-bottom:.7rem; }
.chart-wrap{ height:230px; }
.chart-wrap-sm{ height:195px; }
.timeline .tl-item{ padding-bottom:1rem; }
.form-label{ margin-bottom:.25rem; font-size:.83rem; }
.form-control,.form-select{ padding:.42rem .7rem; }
.btn{ }

/* ===== Module summary stat cards ===== */
.stat-mini{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:.7rem .85rem;
    display:flex;align-items:center;gap:.7rem;height:100%;transition:transform .2s,box-shadow .2s,border-color .2s}
.stat-mini:hover{transform:translateY(-3px);box-shadow:var(--shadow);border-color:transparent}
.stat-mini .sm-ic{width:40px;height:40px;border-radius:11px;display:grid;place-items:center;font-size:1.08rem;flex-shrink:0}
.stat-mini .sm-val{font-size:1.35rem;font-weight:800;line-height:1;font-family:'Plus Jakarta Sans';letter-spacing:-.02em}
.stat-mini .sm-lbl{font-size:.74rem;color:var(--muted);margin-top:.16rem;font-weight:500}
[data-bs-theme="dark"] .stat-mini{background:#0f1830;border-color:#1c2542}
