/* ============================================================================
   Trakpoints — UI/UX Refresh (Scope #6)
   Modern AdminLTE-3-style visual layer. Override-only: no markup changes, so it
   restyles every existing view at once. Loaded LAST in comman/code_css.php.
   ========================================================================== */

:root{
  --tp-brand:#4f46e5;        /* indigo-600 */
  --tp-brand-600:#4338ca;
  --tp-brand-700:#3730a3;
  --tp-brand-soft:#eef2ff;   /* indigo-50 */
  --tp-ink:#0f172a;          /* slate-900 */
  --tp-body:#334155;         /* slate-700 */
  --tp-muted:#64748b;        /* slate-500 */
  --tp-bg:#f1f5f9;           /* slate-100 */
  --tp-surface:#ffffff;
  --tp-border:#e5e9f0;       /* slate-200-ish */
  --tp-sidebar:#1e293b;      /* slate-800 */
  --tp-sidebar-2:#172033;
  --tp-radius:10px;
  --tp-radius-sm:8px;
  --tp-shadow:0 1px 2px rgba(16,24,40,.06), 0 1px 3px rgba(16,24,40,.05);
  --tp-shadow-md:0 4px 12px rgba(16,24,40,.08);
  --tp-success:#16a34a; --tp-info:#0ea5e9; --tp-warning:#f59e0b; --tp-danger:#dc2626;
  --tp-font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif;
}

/* ---------- Base ---------- */
body, .content-wrapper, .wrapper{ background-color:var(--tp-bg) !important; }
body{ font-family:var(--tp-font) !important; color:var(--tp-body); font-size:14px; -webkit-font-smoothing:antialiased; }
a{ color:var(--tp-brand); }
a:hover, a:focus{ color:var(--tp-brand-700); }
h1,h2,h3,h4,h5,h6,.box-title{ color:var(--tp-ink); font-weight:600; }

/* ---------- Top header ---------- */
.main-header .navbar,
.skin-blue .main-header .navbar{ background:var(--tp-surface) !important; box-shadow:var(--tp-shadow); }
.main-header .logo,
.skin-blue .main-header .logo{
  background:var(--tp-sidebar) !important; color:#fff !important;
  font-weight:700; letter-spacing:.2px; border-bottom:0;
}
.skin-blue .main-header .logo:hover{ background:var(--tp-sidebar-2) !important; }
.main-header .navbar .nav > li > a,
.skin-blue .main-header .navbar .nav > li > a{ color:var(--tp-body) !important; }
.main-header .navbar .nav > li > a:hover,
.skin-blue .main-header .navbar .nav > li > a:hover{ background:var(--tp-brand-soft) !important; color:var(--tp-brand-700) !important; }
.main-header .sidebar-toggle,
.skin-blue .main-header .sidebar-toggle{ color:var(--tp-body) !important; }
.main-header .navbar .bg-green{ background:var(--tp-brand) !important; border-radius:8px; }

/* ---------- Sidebar ---------- */
.main-sidebar, .left-side,
.skin-blue .main-sidebar, .skin-blue .wrapper{ background:var(--tp-sidebar) !important; }
.skin-blue .sidebar-menu > li.header{
  color:#94a3b8 !important; background:transparent !important;
  text-transform:uppercase; font-size:11px; letter-spacing:.08em; padding:14px 15px 6px;
}
.skin-blue .sidebar-menu > li > a{
  color:#cbd5e1 !important; border-left:3px solid transparent; font-weight:500;
  padding:11px 15px; transition:background .15s, color .15s;
}
.skin-blue .sidebar-menu > li:hover > a,
.skin-blue .sidebar-menu > li.active > a,
.skin-blue .sidebar-menu > li.menu-open > a{
  background:rgba(79,70,229,.14) !important; color:#fff !important;
  border-left-color:var(--tp-brand) !important;
}
.skin-blue .sidebar-menu .treeview-menu{ background:rgba(0,0,0,.18) !important; }
.skin-blue .sidebar-menu .treeview-menu > li > a{ color:#94a3b8 !important; padding:8px 5px 8px 20px; }
.skin-blue .sidebar-menu .treeview-menu > li.active > a,
.skin-blue .sidebar-menu .treeview-menu > li > a:hover{ color:#fff !important; }
.skin-blue .sidebar-menu .treeview-menu > li.active > a{ background:rgba(79,70,229,.20) !important; }
.sidebar-menu li > a > .fa, .sidebar-menu li > a > .glyphicon, .sidebar-menu li > a > .ion{ width:22px; }
.user-panel > .info, .user-panel > .info > a{ color:#e2e8f0 !important; }

/* ---------- Content header + breadcrumb ---------- */
.content-header{ padding:18px 20px 4px; }
.content-header > h1{ font-size:22px; font-weight:650; margin:0; }
.content-header > h1 > small{ color:var(--tp-muted); font-size:13px; }
.content-header > .breadcrumb{
  background:var(--tp-surface); border:1px solid var(--tp-border); border-radius:999px;
  padding:6px 14px; top:16px; right:20px; box-shadow:var(--tp-shadow);
}
.content-header > .breadcrumb > li + li:before{ color:#cbd5e1; }
.content-header > .breadcrumb a{ color:var(--tp-muted); }

/* ---------- Boxes / cards ---------- */
.box{
  border:1px solid var(--tp-border) !important; border-top:1px solid var(--tp-border) !important;
  border-radius:var(--tp-radius); box-shadow:var(--tp-shadow) !important; background:var(--tp-surface);
}
.box.box-primary,.box.box-info,.box.box-success,.box.box-warning,.box.box-danger{ border-top:3px solid var(--tp-brand) !important; }
.box.box-info{ border-top-color:var(--tp-info) !important; }
.box.box-success{ border-top-color:var(--tp-success) !important; }
.box.box-warning{ border-top-color:var(--tp-warning) !important; }
.box.box-danger{ border-top-color:var(--tp-danger) !important; }
.box-header{ padding:16px 18px; border-bottom:1px solid var(--tp-border); }
.box-header.with-border{ border-bottom:1px solid var(--tp-border); }
.box-header .box-title{ font-size:16px; font-weight:600; }
.box-body{ padding:18px; }
.box-footer{ background:transparent; border-top:1px solid var(--tp-border); border-radius:0 0 var(--tp-radius) var(--tp-radius); }

/* ---------- Buttons ---------- */
.btn{ border-radius:var(--tp-radius-sm); font-weight:500; padding:7px 14px; border:1px solid transparent; transition:filter .15s, box-shadow .15s; }
.btn:active{ box-shadow:inset 0 2px 4px rgba(0,0,0,.12); }
.btn-primary,.btn-info{ background:var(--tp-brand); border-color:var(--tp-brand); }
.btn-primary:hover,.btn-primary:focus,.btn-info:hover{ background:var(--tp-brand-700); border-color:var(--tp-brand-700); }
.btn-success{ background:var(--tp-success); border-color:var(--tp-success); }
.btn-warning{ background:var(--tp-warning); border-color:var(--tp-warning); color:#fff; }
.btn-danger{ background:var(--tp-danger); border-color:var(--tp-danger); }
.btn-default{ background:#fff; border-color:var(--tp-border); color:var(--tp-body); }
.btn-default:hover{ background:#f8fafc; border-color:#cbd5e1; }
.btn-xs{ padding:3px 8px; border-radius:6px; }
.btn-o.dropdown-toggle{ background:#fff; border:1px solid var(--tp-border); color:var(--tp-body); }

/* ---------- Forms ---------- */
.form-control{
  border:1px solid var(--tp-border); border-radius:var(--tp-radius-sm); box-shadow:none;
  color:var(--tp-ink); height:auto; padding:8px 12px; min-height:38px;
}
.form-control:focus{ border-color:var(--tp-brand); box-shadow:0 0 0 3px rgba(79,70,229,.15); }
label.control-label, .form-group > label{ color:var(--tp-ink); font-weight:600; }
.select2-container--default .select2-selection--single{ border:1px solid var(--tp-border) !important; border-radius:var(--tp-radius-sm) !important; height:38px !important; }
.select2-container--default .select2-selection--single .select2-selection__rendered{ line-height:36px !important; color:var(--tp-ink); }
.select2-container--default .select2-selection--single .select2-selection__arrow{ height:36px !important; }
.select2-dropdown{ border-color:var(--tp-border) !important; border-radius:var(--tp-radius-sm); }
.input-group-addon{ background:#f8fafc; border-color:var(--tp-border); border-radius:var(--tp-radius-sm); }

/* ---------- Tables ---------- */
.table{ color:var(--tp-body); }
.table > thead > tr > th{
  background:#f8fafc; color:var(--tp-muted); font-weight:600; font-size:12px;
  text-transform:uppercase; letter-spacing:.03em; border-bottom:1px solid var(--tp-border) !important; border-top:0;
}
.table > tbody > tr > td{ border-top:1px solid #eef2f7; vertical-align:middle; }
.table-striped > tbody > tr:nth-of-type(odd){ background:#fbfcfe; }
.table-hover > tbody > tr:hover{ background:var(--tp-brand-soft); }
.table-bordered, .table-bordered > thead > tr > th, .table-bordered > tbody > tr > td{ border-color:var(--tp-border); }
/* keep wide tables from breaking the layout on small screens */
.box-body > .table-responsive, .table-responsive{ border:0; }
@media (max-width:768px){ .box-body{ overflow-x:auto; } }

/* ---------- DataTables ---------- */
.dataTables_wrapper .dataTables_filter input,
.dataTables_wrapper .dataTables_length select{ border:1px solid var(--tp-border); border-radius:var(--tp-radius-sm); padding:6px 10px; }
.pagination > li > a, .pagination > li > span{ color:var(--tp-brand); border-color:var(--tp-border); }
.pagination > .active > a, .pagination > .active > a:hover, .pagination > .active > span{ background:var(--tp-brand); border-color:var(--tp-brand); }

/* ---------- Labels / badges / alerts ---------- */
.label{ font-weight:600; padding:.30em .6em; border-radius:999px; font-size:85%; }
.label-success{ background:var(--tp-success); } .label-danger{ background:var(--tp-danger); }
.label-warning{ background:var(--tp-warning); } .label-info{ background:var(--tp-info); }
.label-primary{ background:var(--tp-brand); }
.label-default{ background:#eef2f7; color:var(--tp-muted); }
.alert{ border:0; border-radius:var(--tp-radius-sm); box-shadow:var(--tp-shadow); }
.alert-success{ background:#ecfdf5; color:#166534; } .alert-danger{ background:#fef2f2; color:#991b1b; }
.alert-info{ background:#eff6ff; color:#1e40af; } .alert-warning{ background:#fffbeb; color:#92400e; }
.callout{ border-radius:var(--tp-radius-sm); box-shadow:var(--tp-shadow); }

/* ---------- Dashboard: stat tiles (small-box) ---------- */
.small-box{ border-radius:16px; box-shadow:0 8px 20px rgba(16,24,40,.10); border:0; color:#fff; overflow:hidden; margin-bottom:20px; position:relative; }
.small-box > .inner{ padding:22px 24px; position:relative; z-index:1; }
.small-box h3{ font-size:30px; font-weight:800; color:#fff !important; margin:0 0 4px; text-shadow:none; line-height:1.1; }
.small-box p{ font-size:12.5px; color:rgba(255,255,255,.92) !important; text-transform:uppercase; letter-spacing:.05em; font-weight:600; margin:0; }
.small-box .icon{ font-size:70px; top:12px; right:18px; color:rgba(255,255,255,.20); transition:transform .2s ease; z-index:0; }
.small-box:hover{ transform:translateY(-3px); box-shadow:0 14px 28px rgba(16,24,40,.18); }
.small-box:hover .icon{ transform:scale(1.06) rotate(-4deg); }
.small-box .small-box-footer{ background:rgba(0,0,0,.12); color:rgba(255,255,255,.9); border-radius:0; }
/* cohesive, modern gradients (override custom.css .bg-1..4) */
.small-box.bg-1{ background:linear-gradient(135deg,#6366f1 0%,#8b5cf6 100%) !important; background-position:0 !important; }
.small-box.bg-2{ background:linear-gradient(135deg,#f43f5e 0%,#fb7185 100%) !important; background-position:0 !important; }
.small-box.bg-3{ background:linear-gradient(135deg,#059669 0%,#34d399 100%) !important; background-position:0 !important; }
.small-box.bg-4{ background:linear-gradient(135deg,#0ea5e9 0%,#6366f1 100%) !important; background-position:0 !important; }

/* ---------- Dashboard: info boxes ---------- */
.info-box{ border-radius:16px; box-shadow:var(--tp-shadow); border:1px solid var(--tp-border); background:var(--tp-surface); min-height:96px; padding:0; display:flex; align-items:center; margin-bottom:20px; transition:box-shadow .18s, transform .18s; }
.info-box:hover{ box-shadow:var(--tp-shadow-md); transform:translateY(-2px); }
.info-box .info-box-icon{
  width:64px; height:64px; line-height:64px; font-size:28px; margin:16px; border-radius:14px !important;
  background:var(--tp-brand-soft) !important; color:var(--tp-brand) !important; flex:0 0 auto; text-align:center;
}
.info-box .info-box-content{ margin-left:0; padding:10px 16px 10px 0; flex:1 1 auto; }
.info-box .info-box-text{ color:var(--tp-ink) !important; font-weight:800; font-size:24px !important; display:block; line-height:1.2; }
.info-box .info-box-number{ color:var(--tp-muted) !important; font-weight:600; text-transform:uppercase; letter-spacing:.04em; font-size:12px; }
/* soft colour variety across the four info tiles */
.row > [class*="col-"]:nth-of-type(4n+1) .info-box .info-box-icon{ background:#eef2ff !important; color:#4f46e5 !important; }
.row > [class*="col-"]:nth-of-type(4n+2) .info-box .info-box-icon{ background:#ecfeff !important; color:#0891b2 !important; }
.row > [class*="col-"]:nth-of-type(4n+3) .info-box .info-box-icon{ background:#fff7ed !important; color:#ea580c !important; }
.row > [class*="col-"]:nth-of-type(4n+4) .info-box .info-box-icon{ background:#ecfdf5 !important; color:#059669 !important; }

/* ---------- Dashboard: period toggle (Today/Weekly/...) ---------- */
.box-header .btn-group .get_tab_records{ background:#fff !important; color:var(--tp-body) !important; border:1px solid var(--tp-border) !important; font-weight:500; }
.box-header .btn-group .get_tab_records.active,
.box-header .btn-group .get_tab_records:hover{ background:var(--tp-brand) !important; color:#fff !important; border-color:var(--tp-brand) !important; }
.box.box-solid.box-primary > .box-header{ background:var(--tp-brand); }

/* ---------- Modals ---------- */
.modal-content{ border:0; border-radius:var(--tp-radius); box-shadow:0 20px 60px rgba(2,6,23,.28); }
.modal-header{ border-bottom:1px solid var(--tp-border); }
.modal-footer{ border-top:1px solid var(--tp-border); }

/* ---------- Login / auth ---------- */
.login-page, .register-page{ background:linear-gradient(135deg,#eef2ff 0%, #f1f5f9 100%) !important; }
.login-box, .register-box{ margin-top:6% !important; }
.login-box-body, .register-box-body{ border-radius:var(--tp-radius); box-shadow:var(--tp-shadow-md); border:1px solid var(--tp-border); }
.login-logo a, .register-logo a{ color:var(--tp-ink); font-weight:700; }

/* ---------- DataTables export button group (Copy / Excel / PDF / Print / CSV / Columns) ----------
   The app tags these buttons with AdminLTE's .bg-teal (background-color:#39cccc!important),
   so the override must also use !important and beat .bg-teal on specificity. */
div.dt-buttons{ display:inline-flex; flex-wrap:wrap; gap:6px; float:none; }
div.dt-buttons .btn, div.dt-buttons .btn.bg-teal, div.dt-buttons .buttons-html5,
div.dt-buttons .buttons-print, div.dt-buttons .buttons-colvis{
  background:#fff !important; background-color:#fff !important; color:var(--tp-body) !important;
  border:1px solid var(--tp-border) !important; border-radius:var(--tp-radius-sm) !important;
  padding:6px 13px !important; font-weight:500 !important; box-shadow:none !important; margin:0 !important;
  transition:background .15s, border-color .15s, color .15s;
}
div.dt-buttons .btn:hover, div.dt-buttons .btn.bg-teal:hover{
  background-color:var(--tp-brand-soft) !important; border-color:var(--tp-brand) !important; color:var(--tp-brand-700) !important;
}
div.dt-buttons .btn:active, div.dt-buttons .btn.active{
  background-color:var(--tp-brand) !important; border-color:var(--tp-brand) !important; color:#fff !important;
}

/* ---------- Table footer / totals row ---------- */
.table > tfoot > tr > th, .table > tfoot > tr > td{
  background:#f8fafc; border-top:2px solid var(--tp-border) !important; color:var(--tp-ink); font-weight:600;
}
/* A "Total" summary row rendered inside tbody with the default gray gets lightened too */
.table > tbody > tr.info > td, .table > tbody > tr.total-row > td{ background:#f8fafc !important; color:var(--tp-ink); font-weight:600; }

/* ---------- DataTables controls ---------- */
.dataTables_wrapper .dataTables_paginate .paginate_button{ border-radius:var(--tp-radius-sm) !important; padding:5px 12px !important; }
.dataTables_wrapper .dataTables_paginate .paginate_button.current,
.dataTables_wrapper .dataTables_paginate .paginate_button.current:hover{ background:var(--tp-brand) !important; border-color:var(--tp-brand) !important; color:#fff !important; }
.dataTables_wrapper .dataTables_paginate .paginate_button:hover{ background:var(--tp-brand-soft) !important; border-color:var(--tp-brand) !important; color:var(--tp-brand-700) !important; }
.dataTables_wrapper .dataTables_info{ color:var(--tp-muted); padding-top:12px; }
.dataTables_wrapper .dataTables_filter input:focus,
.dataTables_wrapper .dataTables_length select:focus{ border-color:var(--tp-brand); box-shadow:0 0 0 3px rgba(79,70,229,.15); outline:0; }

/* ---------- Action dropdown buttons in list tables ---------- */
.btn-group > .btn.dropdown-toggle, .btn.btn-o{ background:#fff; border:1px solid var(--tp-border); color:var(--tp-body); }
.btn-group > .btn.dropdown-toggle:hover, .btn.btn-o:hover{ background:var(--tp-brand-soft); border-color:var(--tp-brand); color:var(--tp-brand-700); }
.dropdown-menu{ border:1px solid var(--tp-border); border-radius:var(--tp-radius-sm); box-shadow:var(--tp-shadow-md); padding:6px; }
.dropdown-menu > li > a{ border-radius:6px; padding:7px 12px; }
.dropdown-menu > li > a:hover{ background:var(--tp-brand-soft); color:var(--tp-brand-700); }

/* ---------- Checkboxes / small controls ---------- */
input[type=checkbox], input[type=radio]{ accent-color:var(--tp-brand); }

/* ---------- Misc ---------- */
.nav-tabs-custom{ border-radius:var(--tp-radius); box-shadow:var(--tp-shadow); }
.nav-tabs-custom > .nav-tabs > li.active > a{ border-top-color:var(--tp-brand); }
.progress-bar{ background:var(--tp-brand); }
.logo .logo-mini img, .login-logo img[src$="/"], .register-logo img[src$="/"]{ display:none; } /* hide broken/empty logo images */
::selection{ background:rgba(79,70,229,.20); }
