/* ==========================================================================
   APON ERP theme — tokens measured from the live APONTOURS system
   primary #4361ee · secondary #805dca · submenu-active #9acd32
   body #f2f1f4 · dark panel #0e1726 · text #3b3f5c
   ========================================================================== */
:root{
  --erp-primary:#4361ee; --erp-primary-soft:#eff5ff; --erp-primary-dark:#3550c9;
  --erp-secondary:#805dca; --erp-lime:#9acd32;
  --erp-bg:#f2f1f4; --erp-surface:#ffffff; --erp-border:#e0e6ed;
  --erp-text:#3b3f5c; --erp-dark:#0e1726; --erp-muted:#888ea8;
  --erp-sidebar:#ffffff; --erp-sidebar-text:#515365;
  --erp-radius:8px; --erp-radius-lg:10px;
  --erp-shadow:0 0 20px 0 rgba(94,92,154,.08);
  --erp-shadow-card:0 6px 10px 0 rgba(0,0,0,.14),0 1px 18px 0 rgba(0,0,0,.12),0 3px 5px -1px rgba(0,0,0,.2);
  --erp-sidebar-w:255px; --erp-sidebar-collapsed:74px;
}
[data-bs-theme="dark"]{
  --erp-bg:#060818; --erp-surface:#0e1726; --erp-border:#1b2e4b;
  --erp-text:#e0e6ed; --erp-dark:#e0e6ed; --erp-muted:#888ea8;
  --erp-sidebar:#0e1726; --erp-sidebar-text:#d3d3d3; --erp-primary-soft:#1b2e4b;
  --erp-shadow:0 0 20px 0 rgba(0,0,0,.4); --erp-shadow-card:0 6px 10px 0 rgba(0,0,0,.5);
}
body{background:var(--erp-bg);color:var(--erp-text);
  font-family:Nunito,system-ui,-apple-system,"Segoe UI",sans-serif;font-size:13px}
a{text-decoration:none}

/* ---------------------------------------------------------------- Sidebar */
.erp-sidebar{position:fixed;inset:0 auto 0 0;width:var(--erp-sidebar-w);background:var(--erp-sidebar);
  display:flex;flex-direction:column;z-index:1040;transition:width .22s ease;
  box-shadow:5px 0 25px 0 rgba(94,92,154,.06)}
.erp-brand{display:flex;align-items:center;gap:.6rem;padding:.85rem .8rem;min-height:64px;
  border-bottom:1px solid var(--erp-border);position:relative}
.erp-brand .logo-box{width:34px;height:34px;border-radius:8px;flex:0 0 34px;
  background:linear-gradient(135deg,var(--erp-primary),var(--erp-secondary));color:#fff;
  display:grid;place-items:center;font-weight:700}
.erp-brand .brand-name{font-weight:700;letter-spacing:.3px;white-space:nowrap;overflow:hidden;
  font-size:1.15rem;color:var(--erp-dark)}
.erp-clock{position:absolute;top:1px;left:12px;font-size:11px;font-weight:700;color:var(--erp-primary)}
.erp-collapse-btn{margin-left:auto;border:0;background:transparent;color:var(--erp-muted);font-size:1.1rem;line-height:1}

.erp-nav{flex:1;overflow-y:auto;overflow-x:hidden;padding:.6rem 0 2rem .5rem}
.erp-nav .nav-link{display:flex;align-items:center;gap:.7rem;padding:10.2px 16px;margin:0 .5rem .3rem 0;
  border-radius:8px;color:var(--erp-sidebar-text);font-weight:400;font-size:15px;white-space:nowrap;cursor:pointer}
.erp-nav .nav-link i{font-size:1.1rem;width:20px;text-align:center;flex:0 0 20px}
.erp-nav .nav-link:hover{background:var(--erp-primary-soft);color:var(--erp-primary)}
.erp-nav .nav-link.active{background:var(--erp-primary);color:#fff;font-weight:500}
.erp-nav .nav-link.open{color:var(--erp-primary);background:var(--erp-primary-soft)}
.erp-nav .nav-link .caret{margin-left:auto;transition:transform .2s;font-size:.7rem}
.erp-nav .nav-link[aria-expanded="true"] .caret{transform:rotate(180deg)}

.erp-sub{list-style:none;padding:0;margin:0 0 .35rem 0}
.erp-sub a{display:block;padding:10.2px 16px 10.2px 40px;color:var(--erp-sidebar-text);
  font-size:15px;border-radius:10px 0 0 10px;white-space:nowrap}
.erp-sub a:hover{color:var(--erp-primary)}
.erp-sub a.active{background:var(--erp-lime);color:#fff;font-weight:500}

body.sidebar-collapsed .erp-sidebar{width:var(--erp-sidebar-collapsed)}
body.sidebar-collapsed .erp-sidebar .brand-name,
body.sidebar-collapsed .erp-sidebar .nav-link span,
body.sidebar-collapsed .erp-sidebar .caret,
body.sidebar-collapsed .erp-sidebar .erp-sub,
body.sidebar-collapsed .erp-clock{display:none}
body.sidebar-collapsed .erp-main{margin-left:var(--erp-sidebar-collapsed)}
body.sidebar-collapsed .erp-topbar{left:var(--erp-sidebar-collapsed)}

/* --------------------------------------------------------- Topbar + main */
.erp-topbar{position:fixed;top:0;left:var(--erp-sidebar-w);right:0;height:60px;background:var(--erp-surface);
  display:flex;align-items:center;gap:.5rem;padding:0 1rem;z-index:1030;transition:left .22s ease;
  box-shadow:0 0 20px 0 rgba(94,92,154,.08)}
.erp-main{margin-left:var(--erp-sidebar-w);padding:80px 1.25rem 2rem;transition:margin .22s ease;min-height:100vh}
.erp-topbar .btn{font-size:13px;font-weight:600;border-radius:6px;padding:6px 14px}
.erp-avatar{width:38px;height:38px;border-radius:50%;background:var(--erp-primary-soft);
  display:grid;place-items:center;color:var(--erp-primary);font-weight:700}

.page-header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:1rem}
.page-header h4{font-weight:600;margin:0;font-size:1.2rem;color:var(--erp-dark)}
.page-header .breadcrumb{margin:0;font-size:13px}
.page-header .breadcrumb a{color:var(--erp-primary)}

/* ------------------------------------------------------- Welcome banner */
.erp-welcome{position:relative;overflow:hidden;border-radius:var(--erp-radius-lg);padding:1.4rem 1.5rem;color:#fff;
  background:linear-gradient(120deg,#4361ee 0%,#5f4dd0 45%,#d63384 100%)}
.erp-welcome::after{content:"";position:absolute;inset:0;background:
  radial-gradient(circle at 85% 20%,rgba(255,255,255,.2),transparent 45%),
  radial-gradient(circle at 15% 90%,rgba(255,255,255,.12),transparent 40%)}
.erp-welcome>*{position:relative;z-index:1}
.erp-welcome h3{font-weight:700;margin:.35rem 0 .3rem;font-size:1.6rem}
.erp-welcome .meta{font-size:13px;opacity:.93}

/* ------------------------------------------------------------------ Cards */
.erp-card{background:var(--erp-surface);border:1px solid var(--erp-border);border-radius:var(--erp-radius);
  box-shadow:var(--erp-shadow)}
.erp-card .card-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;
  padding:.8rem 1rem;border-bottom:1px solid var(--erp-border)}
.erp-card .card-head h6{margin:0;font-weight:700;font-size:1rem;color:var(--erp-dark)}
.erp-card .card-body{padding:1rem}

/* Filter panel above list pages */
.filter-card{background:var(--erp-surface);border-radius:var(--erp-radius);padding:10px 12px;
  box-shadow:var(--erp-shadow);margin-bottom:1rem}
.filter-card .form-label{font-size:13px;font-weight:600;margin-bottom:.15rem}
.filter-card .form-control,.filter-card .form-select{padding:6px 10px;font-size:13px;height:auto}

/* Stat cards — gradients lifted from the live dashboard */
.stat-card{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.9rem 1rem;
  border-radius:var(--erp-radius-lg);background:var(--erp-surface);box-shadow:var(--erp-shadow-card);
  height:94px;color:var(--erp-dark);transition:transform .15s ease}
.stat-card:hover{transform:translateY(-2px)}
.stat-card .value{font-size:1.6rem;font-weight:600;line-height:1.1;color:var(--erp-dark)}
.stat-card .label{color:#515365;font-size:14px;margin-top:.1rem}
.stat-card .ico{font-size:2.1rem;opacity:.85;color:var(--erp-dark)}

.stat-card.tone-c1{background:linear-gradient(to right,#d7ffd2,#fff)}
.stat-card.tone-c2{background:linear-gradient(to right,#bbebc1,#fff)}
.stat-card.tone-c3{background:linear-gradient(to right,rgba(62,255,158,.35),#fff)}
.stat-card.tone-c4{background:linear-gradient(to right,#82f0ab,#fff)}
.stat-card.tone-c5{background:linear-gradient(to right,#d5e2ff,#fff)}
.stat-card.tone-c6{background:linear-gradient(to right,#b9dafe,#fff)}
.stat-card.tone-c7{background:linear-gradient(to right,#adcaff,#fff)}
.stat-card.tone-c8{background:linear-gradient(to right,#ff0000,#fff)}
.stat-card.tone-c8 .value,.stat-card.tone-c8 .label,.stat-card.tone-c8 .ico{color:#fff}

/* legacy tone names used by module pages — mapped onto the same palette */
.stat-card.tone-blue{background:linear-gradient(to right,#d5e2ff,#fff)}
.stat-card.tone-green{background:linear-gradient(to right,#d7ffd2,#fff)}
.stat-card.tone-cyan{background:linear-gradient(to right,rgba(62,255,158,.35),#fff)}
.stat-card.tone-violet{background:linear-gradient(to right,#e4defb,#fff)}
.stat-card.tone-amber{background:linear-gradient(to right,#ffeccb,#fff)}
.stat-card.tone-rose{background:linear-gradient(to right,#ff0000,#fff)}
.stat-card.tone-rose .value,.stat-card.tone-rose .label,.stat-card.tone-rose .ico{color:#fff}
.stat-card .ico i{font-size:inherit}
[data-bs-theme="dark"] .stat-card{background:var(--erp-surface)!important}
[data-bs-theme="dark"] .stat-card .value,[data-bs-theme="dark"] .stat-card .label{color:var(--erp-text)}

/* ------------------------------------------------------- Tables (bordered) */
.table{--bs-table-bg:transparent;margin:0;color:var(--erp-text);font-size:13px}
.table>thead th{background:#eff5ff;color:var(--erp-dark);font-weight:700;font-size:13px;
  border:1px solid var(--erp-border);white-space:nowrap;padding:7px 8px;vertical-align:middle}
.table>tbody td{padding:6px 8px;vertical-align:middle;border:1px solid var(--erp-border);font-size:13px}
.table>tfoot td,.table>tfoot th{padding:7px 8px;font-weight:700;background:#f8f9fc;border:1px solid var(--erp-border)}
.table-hover>tbody>tr:hover>*{background:var(--erp-primary-soft)}
[data-bs-theme="dark"] .table>thead th{background:#1b2e4b}
[data-bs-theme="dark"] .table>tfoot td{background:#1b2e4b}
.table .text-due,.text-due{color:#e7515a;font-weight:700}

/* ------------------------------------------------------------ Forms / btns */
.form-label{font-weight:500;font-size:14px;margin-bottom:.3rem;color:var(--erp-dark)}
[data-bs-theme="dark"] .form-label{color:var(--erp-text)}
.form-control,.form-select{border-radius:6px;border:1px solid #bfc9d4;background:var(--erp-surface);
  color:var(--erp-text);font-size:14px;padding:9px 14px;line-height:1.4}
.form-control-sm,.form-select-sm{font-size:13px;padding:6px 10px}
.form-control:focus,.form-select:focus{border-color:var(--erp-primary);
  box-shadow:0 0 0 .18rem rgba(67,97,238,.14);background:var(--erp-surface);color:var(--erp-text)}
[data-bs-theme="dark"] .form-control,[data-bs-theme="dark"] .form-select{border-color:#1b2e4b}
.required::after{content:" *";color:#e7515a}

.btn{border-radius:6px;font-size:14px;font-weight:600;padding:7px 18px}
.btn-sm{font-size:12.5px;padding:4px 11px}
.btn-primary{--bs-btn-bg:#4361ee;--bs-btn-border-color:#4361ee;--bs-btn-hover-bg:#3550c9;--bs-btn-hover-border-color:#3550c9}
.btn-outline-primary{--bs-btn-color:#4361ee;--bs-btn-border-color:#4361ee;--bs-btn-hover-bg:#4361ee}
.btn-secondary{--bs-btn-bg:#805dca;--bs-btn-border-color:#805dca;--bs-btn-hover-bg:#6c4bb0;--bs-btn-hover-border-color:#6c4bb0}
.badge{font-weight:600;padding:.4em .65em;border-radius:6px;font-size:11.5px}

/* --------------------------------------------------- Dark invoice sidebar */
.invoice-actions{background:var(--erp-dark);border-radius:var(--erp-radius);padding:12px;color:#e4ff00}
.invoice-actions .row-line{display:flex;align-items:center;gap:8px;margin-bottom:6px}
.invoice-actions .row-line>label{flex:0 0 46%;margin:0;color:#e4ff00;font-size:13px;font-weight:600}
.invoice-actions .row-line>.val{flex:1;text-align:right;color:#fff;font-weight:700}
.invoice-actions .form-control,.invoice-actions .form-select{background:#1b2e4b;border-color:#25406b;color:#fff;
  padding:5px 10px;font-size:13px}
.invoice-actions .form-control.is-highlight{border-color:#e7515a}

/* ------------------------------------------------------------------ Login */
.login-wrap{min-height:100vh;display:flex;background:var(--erp-bg)}
.login-cover{flex:0 0 42%;background:linear-gradient(160deg,#805dca,#4361ee);color:#fff;
  display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2.5rem;text-align:center}
.login-cover h2{font-size:24px;font-weight:600;margin-top:2rem}
.login-form-side{flex:1;display:grid;place-items:center;padding:2rem 1.5rem}
.login-form{width:100%;max-width:420px}
.login-form h2{font-size:24px;font-weight:600;color:var(--erp-text);margin-bottom:.25rem}
@media (max-width:991.98px){.login-cover{display:none}}

/* ------------------------------------------------------------------ Print */
@media print{
  .erp-sidebar,.erp-topbar,.no-print,.page-header .breadcrumb{display:none!important}
  .erp-main{margin:0!important;padding:0!important}
  body{background:#fff}
  .erp-card{box-shadow:none;border:0}
}

@media (max-width:991.98px){
  .erp-sidebar{transform:translateX(-100%);transition:transform .22s ease;width:var(--erp-sidebar-w)}
  body.sidebar-open .erp-sidebar{transform:none}
  .erp-main{margin-left:0!important} .erp-topbar{left:0!important}
}
.erp-backdrop{position:fixed;inset:0;background:rgba(15,23,42,.45);z-index:1035;display:none}
body.sidebar-open .erp-backdrop{display:block}
@media (min-width:992px){.erp-backdrop{display:none!important}}

/* --------------------------------------------- Topbar action buttons */
.erp-topbar .btn-tb{background:transparent;border:0;font-weight:700;font-size:14px;
  padding:6px 12px;border-radius:6px;display:inline-flex;align-items:center;gap:6px}
.erp-topbar .btn-tb:hover{background:var(--erp-primary-soft)}
.erp-topbar .btn-tb.tb-green{color:#00ab55}
.erp-topbar .btn-tb.tb-blue{color:#4361ee}
.erp-topbar .btn-tb.tb-red{color:#e7515a}
.erp-topbar .btn-tb.tb-orange{color:#e2a03f}
.erp-topbar .btn-tb.dropdown-toggle::after{margin-left:2px}

/* ------------------------------------- Invoice with return (create / edit) */
.inv-grid{display:flex;flex-wrap:wrap;gap:16px;align-items:flex-start}
.inv-col-left{flex:1 1 68%;min-width:0}
.inv-col-right{flex:0 0 30%;max-width:30%;min-width:290px}
@media (max-width:1199.98px){.inv-col-left,.inv-col-right{flex:1 1 100%;max-width:100%}}

.inv-strip{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between;
  padding:10px 14px;border-bottom:1px solid var(--erp-border)}
.inv-strip-title{margin:0;font-size:14px;font-weight:700;color:var(--erp-text)}

.btn-inv-search{background:#e7515a;border:0;color:#fff;border-radius:6px;padding:4px 10px;
  font-size:13px;font-weight:600;line-height:1.5}
.btn-inv-search:hover{background:#d2434c;color:#fff}
.btn-inv-search:disabled{opacity:.65}
.btn-inv-save{background:#00ab55;border:0;color:#fff;border-radius:6px;padding:7px 20px;
  font-size:14px;font-weight:600;display:inline-flex;align-items:center;gap:7px}
.btn-inv-save:hover{background:#009448;color:#fff}
.btn-inv-save:disabled{opacity:.7}

.inv-table{width:100%;margin:0;font-size:13px}
.inv-table>:not(caption)>*>*{border:1px solid var(--erp-border);padding:5px 6px;vertical-align:middle;
  background:transparent}
.inv-table thead th{background:var(--erp-primary-soft);color:var(--erp-text);font-weight:700;white-space:nowrap}
.inv-table tfoot td{background:var(--erp-primary-soft);font-weight:700}
.inv-table .form-control{padding:3px 6px;font-size:13px;height:auto;min-height:0}

.inv-suggest{position:absolute;z-index:1060;left:0;right:0;top:100%;margin-top:2px;max-height:260px;
  overflow:auto;background:var(--erp-surface);border:1px solid var(--erp-border);border-radius:6px;
  box-shadow:var(--erp-shadow);display:none}
.inv-suggest button{display:block;width:100%;text-align:left;border:0;background:transparent;
  padding:6px 10px;font-size:13px;color:var(--erp-text)}
.inv-suggest button:hover,.inv-suggest button.active{background:var(--erp-primary-soft);color:var(--erp-primary)}

.invoice-actions .row-line>select{flex:0 0 46%;max-width:46%}
.invoice-actions .row-line>input.form-control{flex:1;min-width:0}
.invoice-actions .form-select.is-highlight{border-color:#e7515a}
.invoice-actions .row-line>.val input[type="text"]{text-align:left}
.invoice-actions .row-line>.val.text-danger{color:#ff6b74!important}
