/* Nimbus Admin – custom styles on top of Bootstrap 5.3 */
:root{--sb-w:260px;--sb-bg:#111827;--sb-link:#9ca3af;--bs-body-font-family:'Inter',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif}
body{background:#f4f6fb;font-size:.925rem}
[data-bs-theme=dark] body{background:#0d1117}
[data-bs-theme=dark]{--sb-bg:#0a0e14}

/* Layout */
.sidebar{position:fixed;inset:0 auto 0 0;width:var(--sb-w);background:var(--sb-bg);z-index:1040;display:flex;flex-direction:column;transition:transform .25s ease}
.sidebar .brand{height:64px;display:flex;align-items:center;gap:.6rem;padding:0 1.25rem;font-weight:700;font-size:1.15rem;color:#fff;text-decoration:none;border-bottom:1px solid rgba(255,255,255,.08)}
.sidebar .brand i{color:var(--bs-primary)}
.sidebar{overflow:hidden}
.sidebar .nav-scroll{flex:1 1 auto;min-height:0;flex-wrap:nowrap;overflow-y:auto;overflow-x:hidden;padding:.5rem .75rem 1rem;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.2) transparent}
.sidebar .nav-scroll>*{flex-shrink:0}
.sidebar .nav-scroll::-webkit-scrollbar{width:6px}
.sidebar .nav-scroll::-webkit-scrollbar-thumb{background:rgba(255,255,255,.2);border-radius:3px}
.sidebar .nav-heading{font-size:.68rem;text-transform:uppercase;letter-spacing:.08em;color:#6b7280;padding:1rem .75rem .35rem}
.sidebar .nav-link{display:flex;align-items:center;gap:.75rem;color:var(--sb-link);padding:.55rem .75rem;border-radius:.5rem;font-size:.9rem}
.sidebar .nav-link:hover{color:#fff;background:rgba(255,255,255,.06)}
.sidebar .nav-link.active{color:#fff;background:var(--bs-primary)}
.sidebar .nav-link .chev{margin-left:auto;font-size:.7rem;transition:transform .2s}
.sidebar .nav-link[aria-expanded=true] .chev{transform:rotate(90deg)}
.sidebar .sub .nav-link{padding-left:2.6rem;font-size:.85rem}
.sidebar .sub .nav-link.active{background:rgba(255,255,255,.1)}
.sidebar-backdrop{display:none;position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:1030}
.main{margin-left:var(--sb-w);min-height:100vh;display:flex;flex-direction:column;transition:margin .25s ease}
.topbar{position:sticky;top:0;z-index:1020;height:64px;display:flex;align-items:center;gap:1rem;padding:0 1.5rem;background:var(--bs-body-bg);border-bottom:1px solid var(--bs-border-color)}
.content{flex:1}
@media(min-width:992px){body.sidebar-collapsed .sidebar{transform:translateX(-100%)}body.sidebar-collapsed .main{margin-left:0}}
@media(max-width:991.98px){.sidebar{transform:translateX(-100%)}body.sidebar-open .sidebar{transform:none}body.sidebar-open .sidebar-backdrop{display:block}.main{margin-left:0}.topbar{padding:0 1rem}}

/* Cards & misc */
.card{border:0;box-shadow:0 1px 3px rgba(16,24,40,.08);border-radius:.75rem}
[data-bs-theme=dark] .card{border:1px solid var(--bs-border-color);box-shadow:none}
.card-header{background:transparent;font-weight:600;padding:1rem 1.25rem}
.stat-icon{width:48px;height:48px;border-radius:.75rem;display:grid;place-items:center;font-size:1.4rem;flex:none}
.avatar{width:36px;height:36px;border-radius:50%;display:inline-grid;place-items:center;font-weight:600;font-size:.8rem;flex:none;background:var(--bs-primary-bg-subtle);color:var(--bs-primary-text-emphasis)}
.avatar-lg{width:64px;height:64px;font-size:1.3rem}
.chart-box{position:relative;height:300px}
.chart-box.sm{height:240px}
.timeline{list-style:none;margin:0;padding:0}
.timeline li{position:relative;padding:0 0 1.1rem 1.5rem;border-left:2px solid var(--bs-border-color);margin-left:.4rem}
.timeline li::before{content:"";position:absolute;left:-7px;top:2px;width:12px;height:12px;border-radius:50%;background:var(--bs-primary);border:2px solid var(--bs-body-bg)}
.timeline li:last-child{border-color:transparent;padding-bottom:0}

/* Icons page */
.icon-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:.75rem}
.icon-item{border:1px solid var(--bs-border-color);border-radius:.6rem;padding:1rem .5rem .75rem;text-align:center;cursor:pointer;background:var(--bs-body-bg);transition:.15s}
.icon-item:hover{border-color:var(--bs-primary);color:var(--bs-primary);transform:translateY(-2px)}
.icon-item i{font-size:1.75rem;display:block;margin-bottom:.4rem}
.icon-item span{font-size:.7rem;word-break:break-all;color:var(--bs-secondary-color)}

/* Dropzone */
.dropzone{border:2px dashed var(--bs-border-color);border-radius:1rem;padding:3rem 1rem;text-align:center;cursor:pointer;transition:.2s;background:var(--bs-body-bg)}
.dropzone:hover,.dropzone.dragover{border-color:var(--bs-primary);background:var(--bs-primary-bg-subtle)}
.dropzone .dz-icon{font-size:3rem;color:var(--bs-primary)}
.file-item{display:flex;align-items:center;gap:1rem;padding:.75rem 0;border-bottom:1px solid var(--bs-border-color)}
.file-item:last-child{border-bottom:0}
.file-thumb{width:48px;height:48px;border-radius:.5rem;object-fit:cover;flex:none;display:grid;place-items:center;background:var(--bs-tertiary-bg);font-size:1.4rem}

/* Table → cards on mobile */
@media(max-width:767.98px){
 .table-stack thead{display:none}
 .table-stack,.table-stack tbody,.table-stack tr,.table-stack td{display:block;width:100%}
 .table-stack tr{margin-bottom:1rem;border:1px solid var(--bs-border-color);border-radius:.75rem;padding:.5rem 1rem;background:var(--bs-body-bg)}
 .table-stack td{display:flex;justify-content:space-between;align-items:center;gap:1rem;border:0!important;padding:.4rem 0;text-align:right}
 .table-stack td::before{content:attr(data-label);font-weight:600;color:var(--bs-secondary-color);text-align:left}
}

/* Quill */
.ql-toolbar.ql-snow{border-color:var(--bs-border-color);border-radius:.5rem .5rem 0 0;background:var(--bs-tertiary-bg)}
.ql-container.ql-snow{border-color:var(--bs-border-color);border-radius:0 0 .5rem .5rem;font-family:inherit;font-size:1rem}
.ql-editor{min-height:260px;color:var(--bs-body-color)}
.ql-editor.ql-blank::before{color:var(--bs-secondary-color)}
[data-bs-theme=dark] .ql-snow .ql-stroke{stroke:#ced4da}
[data-bs-theme=dark] .ql-snow .ql-fill{fill:#ced4da}
[data-bs-theme=dark] .ql-snow .ql-picker{color:#ced4da}
[data-bs-theme=dark] .ql-snow .ql-picker-options{background:var(--bs-tertiary-bg)}

/* DataTables tweaks */
div.dataTables_wrapper div.dataTables_filter input{margin-left:.5rem}
table.dataTable>thead>tr>th{white-space:nowrap}

/* Auth */
.auth-wrap{min-height:100vh;display:grid;place-items:center;padding:1.5rem;background:linear-gradient(135deg,#eef2ff,#f4f6fb)}
[data-bs-theme=dark] .auth-wrap{background:linear-gradient(135deg,#0d1117,#161b22)}
.auth-card{max-width:960px;width:100%;overflow:hidden}
.auth-side{background:linear-gradient(160deg,var(--bs-primary),#6610f2);color:#fff;padding:3rem}

/* Select2 (bootstrap-5 theme) – dark mode + sizing */
.select2-container{max-width:100%}
[data-bs-theme=dark] .select2-container--bootstrap-5 .select2-selection,
[data-bs-theme=dark] .select2-container--bootstrap-5 .select2-dropdown{background-color:var(--bs-body-bg);border-color:var(--bs-border-color);color:var(--bs-body-color)}
[data-bs-theme=dark] .select2-container--bootstrap-5 .select2-selection--single .select2-selection__rendered,
[data-bs-theme=dark] .select2-container--bootstrap-5 .select2-selection--multiple .select2-selection__choice{color:var(--bs-body-color)}
[data-bs-theme=dark] .select2-container--bootstrap-5 .select2-selection--multiple .select2-selection__choice{background:var(--bs-tertiary-bg);border-color:var(--bs-border-color)}
[data-bs-theme=dark] .select2-container--bootstrap-5 .select2-search__field,
[data-bs-theme=dark] .select2-container--bootstrap-5 .select2-dropdown .select2-search .select2-search__field{background-color:var(--bs-body-bg);color:var(--bs-body-color);border-color:var(--bs-border-color)}
[data-bs-theme=dark] .select2-container--bootstrap-5 .select2-results__option--highlighted{background-color:var(--bs-primary)!important;color:#fff!important}
[data-bs-theme=dark] .select2-container--bootstrap-5 .select2-results__option[aria-selected=true]:not(.select2-results__option--highlighted){background-color:var(--bs-tertiary-bg)}

/* DataTables Buttons: never stretch inside a .btn-group */
.dt-buttons .btn,.dt-buttons.btn-group>.btn{flex:0 0 auto}

/* Printable documents (invoice / sales order / purchase order) */
.doc-wrap{overflow-x:auto;padding-bottom:1rem}
.doc-sheet{width:210mm;min-width:210mm;min-height:296mm;margin:0 auto;padding:16mm;background:#fff;color:#212529;box-shadow:0 4px 24px rgba(0,0,0,.12);font-size:.85rem}
.doc-title{font-size:2rem;font-weight:700;letter-spacing:.08em;line-height:1.1}
.doc-table th{background:#f1f3f5!important;font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:#495057}
.doc-table tr{break-inside:avoid}
.doc-total td{border-top:2px solid #212529;font-weight:700;font-size:1rem}
.doc-sign{border-top:1px solid #212529;padding-top:.35rem;margin-top:3rem;font-size:.75rem;color:#495057;text-align:center}
@media print{
  @page{size:A4;margin:0}
  html,body{background:#fff!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .sidebar,.sidebar-backdrop,.topbar,.main>footer,.no-print,.page-head,#toastContainer,.modal,.modal-backdrop{display:none!important}
  .main{margin:0!important;display:block}
  .content{padding:0!important}
  .doc-wrap{overflow:visible;padding:0}
  .doc-sheet{box-shadow:none;margin:0;width:210mm;min-width:0;min-height:296mm;padding:14mm}
  a{text-decoration:none;color:inherit}
}

/* Breadcrumbs */
.breadcrumb{--bs-breadcrumb-divider:"\f285";--bs-breadcrumb-divider-color:var(--bs-tertiary-color);--bs-breadcrumb-item-padding-x:.55rem;
  display:inline-flex;flex-wrap:wrap;align-items:center;gap:.1rem 0;margin-bottom:0;padding:.35rem .9rem;font-size:.8rem;
  background:var(--bs-body-bg);border:1px solid var(--bs-border-color);border-radius:50rem;box-shadow:0 1px 2px rgba(16,24,40,.04)}
.breadcrumb-item{display:inline-flex;align-items:center}
.breadcrumb-item+.breadcrumb-item{padding-left:0}
.breadcrumb-item+.breadcrumb-item::before{font-family:"bootstrap-icons"!important;font-size:.62rem;font-weight:400!important;line-height:1;padding:0 var(--bs-breadcrumb-item-padding-x);color:var(--bs-breadcrumb-divider-color)}
.breadcrumb-item a{color:var(--bs-secondary-color);text-decoration:none;font-weight:500;transition:color .15s}
.breadcrumb-item a:hover{color:var(--bs-primary)}
.breadcrumb-item.active{color:var(--bs-primary);font-weight:600}
