/* ============================================================
   SmartVote Dashboard — modern theme layer (additive)
   Loaded AFTER the base template CSS so it overrides cleanly.
   ============================================================ */
:root{
  --sv-primary:#2563eb;
  --sv-primary-600:#2563eb;
  --sv-primary-700:#1d4ed8;
  --sv-primary-050:#eef4ff;
  --sv-indigo:#4f46e5;
  --sv-success:#16a34a;
  --sv-danger:#dc2626;
  --sv-warning:#f59e0b;
  --sv-info:#0ea5e9;
  --sv-bg:#f5f7fb;
  --sv-card:#ffffff;
  --sv-text:#1f2937;
  --sv-muted:#6b7280;
  --sv-border:#e6e8ee;
  --sv-sidebar:#0f172a;
  --sv-sidebar-2:#111c33;
  --sv-radius:12px;
  --sv-radius-sm:10px;
  --sv-shadow:0 1px 3px rgba(16,24,40,.08), 0 1px 2px rgba(16,24,40,.05);
  --sv-shadow-md:0 4px 16px rgba(16,24,40,.08);
}

/* ---- Base ---- */
body{
  font-family:'Inter',system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif !important;
  background:var(--sv-bg) !important;
  color:var(--sv-text);
  letter-spacing:.1px;
}
a{ color:var(--sv-primary); }
a:hover{ color:var(--sv-primary-700); }
h1,h2,h3,h4,h5,h6{ font-weight:600; color:#111827; }

/* ---- Brand color overrides (Bootstrap) ---- */
.btn-primary{ background-color:var(--sv-primary); border-color:var(--sv-primary); }
.btn-primary:hover,.btn-primary:focus{ background-color:var(--sv-primary-700); border-color:var(--sv-primary-700); box-shadow:0 0 0 .2rem rgba(37,99,235,.25); }
.btn-outline-primary{ color:var(--sv-primary); border-color:var(--sv-primary); }
.btn-outline-primary:hover{ background-color:var(--sv-primary); border-color:var(--sv-primary); }
.text-primary{ color:var(--sv-primary) !important; }
.bg-primary{ background-color:var(--sv-primary) !important; }
.badge.bg-primary{ background-color:var(--sv-primary) !important; }
.page-item.active .page-link{ background-color:var(--sv-primary); border-color:var(--sv-primary); }
.form-check-input:checked{ background-color:var(--sv-primary); border-color:var(--sv-primary); }

/* ---- Buttons ---- */
.btn{ border-radius:var(--sv-radius-sm); font-weight:500; padding:.5rem 1rem; }
.btn-sm{ border-radius:8px; padding:.32rem .7rem; }

/* ---- Cards ---- */
.card{
  border:1px solid var(--sv-border) !important;
  border-radius:var(--sv-radius) !important;
  box-shadow:var(--sv-shadow) !important;
  background:var(--sv-card);
}
.card .card-header{ background:transparent; border-bottom:1px solid var(--sv-border); font-weight:600; }

/* ---- Forms ---- */
.form-control,.form-select{
  border-radius:var(--sv-radius-sm);
  border-color:var(--sv-border);
  padding:.55rem .8rem;
  color:var(--sv-text);
}
.form-control:focus,.form-select:focus{
  border-color:var(--sv-primary);
  box-shadow:0 0 0 .2rem rgba(37,99,235,.18);
}
label,.form-label{ font-weight:500; color:#374151; margin-bottom:.35rem; }

/* ---- Tables ---- */
.table{ color:var(--sv-text); }
.table thead th{
  text-transform:uppercase; font-size:.72rem; letter-spacing:.4px;
  color:var(--sv-muted); font-weight:600;
  background:#f9fafb; border-bottom:1px solid var(--sv-border);
}
.table tbody td{ padding:.7rem .75rem; vertical-align:middle; border-color:#f1f3f7; }
.table-hover tbody tr:hover{ background:var(--sv-primary-050); }
.table-responsive{ border-radius:var(--sv-radius); }

/* DataTables polish */
.dataTables_wrapper .dataTables_filter input,
.dataTables_wrapper .dataTables_length select{
  border:1px solid var(--sv-border); border-radius:8px; padding:.35rem .6rem;
}
.dataTables_wrapper .dataTables_paginate .paginate_button.current{
  background:var(--sv-primary) !important; border-color:var(--sv-primary) !important;
  color:#fff !important; border-radius:8px;
}
.dataTables_wrapper .dataTables_paginate .paginate_button{ border-radius:8px; }

/* ---- Badges ---- */
.badge{ font-weight:600; padding:.4em .65em; border-radius:999px; }

/* ---- Tom Select : match .form-control ---- */
.ts-wrapper{ font-family:inherit; }
.ts-wrapper.single .ts-control,
.ts-control{
  border-radius:var(--sv-radius-sm) !important;
  border-color:var(--sv-border) !important;
  min-height:44px; padding:.5rem .8rem; box-shadow:none;
  font-size:.95rem; color:var(--sv-text);
}
.ts-wrapper.focus .ts-control{
  border-color:var(--sv-primary) !important;
  box-shadow:0 0 0 .2rem rgba(37,99,235,.18) !important;
}
.ts-dropdown{
  border-radius:var(--sv-radius-sm); border:1px solid var(--sv-border);
  box-shadow:var(--sv-shadow-md); overflow:hidden; margin-top:4px;
}
.ts-dropdown .option{ padding:.55rem .8rem; }
.ts-dropdown .option.active{ background:var(--sv-primary-050); color:var(--sv-primary-700); }
.ts-dropdown .option:hover{ background:var(--sv-primary-050); }
.ts-wrapper.single.input-active .ts-control{ background:#fff; }
.ts-control .item{ font-weight:500; }

/* ---- Sidebar (light, professional) ---- */
.sidebar-wrapper{ background:#ffffff !important; border-right:1px solid var(--sv-border) !important; box-shadow:none; }
.sidebar-header{ background:#fff !important; border-bottom:1px solid var(--sv-border) !important; }
.sidebar-header .sv-brand{ display:flex; align-items:center; gap:.6rem; }
.sv-brand-badge{ width:34px; height:34px; border-radius:9px; display:grid; place-items:center;
  background:linear-gradient(135deg,var(--sv-primary),var(--sv-indigo)); color:#fff; font-weight:700; font-size:.9rem; box-shadow:0 4px 10px rgba(37,99,235,.3); }
.sidebar-header .logo-text{ color:#0f172a !important; font-weight:700; letter-spacing:.3px; font-size:1.15rem; }
.sidebar-header .toggle-icon{ color:#94a3b8; }

.sidebar-wrapper .metismenu{ padding:.5rem .55rem; }
.sidebar-wrapper .metismenu>li{ margin-bottom:2px; }
.sidebar-wrapper .metismenu a{ color:#475569 !important; border-radius:9px; padding:.55rem .8rem; transition:.15s; }
.sidebar-wrapper .metismenu a .parent-icon{ color:var(--sv-primary); font-size:1.15rem; }
.sidebar-wrapper .metismenu a:hover{ color:var(--sv-primary-700) !important; background:var(--sv-primary-050) !important; }
.sidebar-wrapper .metismenu a:hover .parent-icon{ color:var(--sv-primary-700); }
.sidebar-wrapper .metismenu li.mm-active>a{ color:#0f172a !important; background:#f1f5f9 !important; }
.sidebar-wrapper .metismenu ul{ background:transparent; }
.sidebar-wrapper .metismenu ul a{ font-size:.85rem; color:#64748b !important; padding:.42rem .8rem .42rem 1rem; }
.sidebar-wrapper .metismenu ul a .bx{ font-size:.55rem; opacity:.55; }
.sidebar-wrapper .metismenu ul a:hover{ color:var(--sv-primary-700) !important; }
.sidebar-wrapper .metismenu ul a.active{ color:var(--sv-primary-700) !important; font-weight:600; background:var(--sv-primary-050) !important;
  box-shadow:inset 3px 0 0 var(--sv-primary); }
.sidebar-wrapper .menu-title{ font-weight:600; }
.sidebar-wrapper .simplebar-content{ padding-bottom:2rem; }

/* ---- Topbar / header ---- */
.topbar{ background:#fff !important; box-shadow:0 1px 3px rgba(16,24,40,.06) !important; border-bottom:1px solid var(--sv-border); }
.topbar .search-control{ border-radius:999px; background:#f3f5f9; border:1px solid var(--sv-border); }
.topbar .search-control:focus{ background:#fff; }
.user-box .user-name{ font-weight:600; color:var(--sv-text); line-height:1.1; }
.user-box .designattion{ font-size:.72rem; color:var(--sv-muted); }
.sv-avatar{ width:38px; height:38px; border-radius:50%; display:grid; place-items:center; flex:0 0 auto;
  background:linear-gradient(135deg,var(--sv-primary),var(--sv-indigo)); color:#fff; font-weight:700; }
.dropdown-menu{ border:1px solid var(--sv-border); border-radius:var(--sv-radius-sm); box-shadow:var(--sv-shadow-md); }
.dropdown-item{ border-radius:8px; }

/* ---- Misc ---- */
.page-footer{ color:var(--sv-muted); font-size:.85rem; background:transparent; }
.back-to-top{ background:var(--sv-primary) !important; border-radius:10px; }
::selection{ background:rgba(37,99,235,.18); }

/* ============ Lists & Dashboards polish (Phase 5 & 6) ============ */
.page-content{ padding:1.25rem 1.4rem; }
.page-content > h6.text-uppercase{ font-weight:700; color:#0f172a; letter-spacing:.5px; font-size:.95rem; margin-bottom:.25rem; }
.page-breadcrumb, .breadcrumb{ background:transparent; }

/* stat / widget cards */
.card.radius-10{ border-radius:var(--sv-radius) !important; transition:transform .15s ease, box-shadow .15s ease; }
.card.radius-10:hover{ transform:translateY(-2px); box-shadow:var(--sv-shadow-md) !important; }
.widgets-icons{ width:48px; height:48px; border-radius:14px; display:flex; align-items:center; justify-content:center; font-size:1.35rem; }
.bg-light-success{ background:rgba(22,163,74,.12) !important; }
.bg-light-danger{ background:rgba(220,38,38,.12) !important; }
.bg-light-primary{ background:rgba(37,99,235,.12) !important; }
.bg-light-warning{ background:rgba(245,158,11,.15) !important; }
.bg-light-info{ background:rgba(14,165,233,.12) !important; }

/* toggle switch -> brand color */
input:checked + .slider{ background-color:var(--sv-primary) !important; }
input:focus + .slider{ box-shadow:0 0 0 .15rem rgba(37,99,235,.25) !important; }

/* tables inside cards */
.table .btn{ padding:.3rem .6rem; }
.table a.btn-sm{ border-radius:8px; }
.list-group-item{ border-color:var(--sv-border); border-radius:10px !important; margin-bottom:4px; }

/* export / action button row */
.dt-buttons .btn, .btn-group .btn{ border-radius:8px; }

/* ---- Professional KPI stat cards ---- */
.sv-pagehead h4{ font-weight:700; color:#0f172a; }
.sv-chip{ background:var(--sv-primary-050); color:var(--sv-primary-700); border-radius:999px; padding:.35rem .8rem; font-size:.8rem; font-weight:600; display:inline-flex; align-items:center; }
.sv-stat .card-body{ padding:1.15rem 1.25rem; }
.sv-stat{ position:relative; overflow:hidden; }
.sv-stat-ic{ width:54px; height:54px; border-radius:15px; display:grid; place-items:center; font-size:1.55rem; flex:0 0 auto; }
.sv-stat-val{ font-size:1.65rem; font-weight:700; line-height:1.05; color:#0f172a; }
.sv-stat-lbl{ font-size:.82rem; color:var(--sv-muted); margin-top:3px; }
.sv-stat.clickable{ cursor:pointer; }
.sv-stat.clickable:hover{ border-color:#cfe0ff !important; }

/* tinted icon chips */
.ic-primary{ background:rgba(37,99,235,.12); color:#2563eb; }
.ic-success{ background:rgba(22,163,74,.12); color:#16a34a; }
.ic-danger{ background:rgba(220,38,38,.12); color:#dc2626; }
.ic-warning{ background:rgba(245,158,11,.16); color:#d97706; }
.ic-info{ background:rgba(14,165,233,.12); color:#0ea5e9; }
.ic-violet{ background:rgba(124,58,237,.12); color:#7c3aed; }
.ic-slate{ background:rgba(100,116,139,.14); color:#475569; }

/* ---- Dashboard list rows (mandals/villages) ---- */
.sv-list-item{ display:flex; align-items:center; padding:.55rem .7rem; border:1px solid var(--sv-border); border-radius:10px; margin-bottom:.5rem; background:#fff; cursor:pointer; transition:.15s; }
.sv-list-item:hover{ background:var(--sv-primary-050); border-color:#cfe0ff; }
.sv-list-badge{ width:34px; height:34px; border-radius:9px; display:grid; place-items:center; font-weight:700; font-size:.8rem; background:var(--sv-primary-050); color:var(--sv-primary-700); }
.sv-list-name{ margin-left:.6rem; font-weight:500; color:#0f172a; }
.sv-list-count{ margin-left:auto; font-weight:600; color:#0f172a; background:#f1f5f9; border-radius:999px; padding:.12rem .6rem; font-size:.8rem; }
.chart-card .card-body{ padding:1rem 1.1rem; }
