@font-face{font-family:"Inter";src:url("fonts/inter-latin-400-normal.woff2") format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"Inter";src:url("fonts/inter-latin-500-normal.woff2") format("woff2");font-weight:500;font-display:swap}
@font-face{font-family:"Inter";src:url("fonts/inter-latin-600-normal.woff2") format("woff2");font-weight:600;font-display:swap}
@font-face{font-family:"Inter";src:url("fonts/inter-latin-700-normal.woff2") format("woff2");font-weight:700;font-display:swap}

:root{
  --brand:#2563eb;
  --brand-dark:#1d4ed8;
  --brand-soft:rgba(37,99,235,.10);
  --nav-bg:#0f172a;
  --nav-bg-soft:#1e293b;
  --surface:#ffffff;
  --page:#f1f5f9;
  --border:#e2e8f0;
  --border-soft:#edf2f7;
  --muted:#64748b;
  --ink:#0f172a;
  --ink-soft:#334155;
  --radius:10px;
  --shadow-card:0 1px 2px rgba(15,23,42,.05), 0 1px 3px rgba(15,23,42,.08);
  --shadow-hover:0 6px 18px rgba(15,23,42,.10);
}

body{
  padding-top:62px;
  background:var(--page);
  color:var(--ink);
  font-family:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  font-size:.95rem;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  text-rendering:optimizeLegibility;
}

::selection{background:var(--brand-soft)}

::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:8px;border:2px solid var(--page)}
::-webkit-scrollbar-thumb:hover{background:#94a3b8}

a{color:var(--brand)}
a:hover{color:var(--brand-dark)}
a:focus-visible{outline:2px solid var(--brand);outline-offset:2px}

h1,h2,h3,h4,h5,h6{
  color:var(--ink);
  font-weight:700;
  letter-spacing:-.02em;
  line-height:1.25;
}

h1{font-size:1.75rem}
h2{font-size:1.5rem}
h3{font-size:1.2rem}
h4{font-size:1.1rem}

p,.card-body p{line-height:1.6}

.navbar{
  background:var(--nav-bg);
  box-shadow:0 1px 3px rgba(0,0,0,.14);
  padding:0 1rem;
  min-height:58px;
}

.navbar-brand{
  font-weight:700;
  font-size:1.1rem;
  letter-spacing:-.02em;
  display:flex;
  align-items:center;
  gap:6px;
  color:#fff;
}

.navbar-brand:hover{color:#fff}

.navbar .nav-link{
  padding:.62rem .9rem;
  border-radius:7px;
  transition:background .15s,color .15s;
  font-size:.9rem;
  font-weight:500;
  color:rgba(255,255,255,.74);
}

.navbar .nav-link:hover{background:var(--nav-bg-soft);color:#fff}
.navbar .nav-link.active{background:var(--brand);color:#fff}

.navbar .dropdown-menu{
  border:1px solid var(--border);
  box-shadow:0 10px 28px rgba(15,23,42,.14);
  border-radius:10px;
  padding:6px;
  margin-top:8px;
}

.navbar .dropdown-item{
  border-radius:7px;
  padding:.5rem .85rem;
  font-size:.88rem;
  font-weight:500;
  transition:background .12s;
}

.navbar .dropdown-item:hover{background:var(--page)}
.navbar .dropdown-item.active{background:var(--brand);color:#fff}

.user-chip{display:flex;align-items:center;gap:.5rem;margin-right:.4rem}

.user-avatar{
  width:30px;height:30px;
  border-radius:50%;
  background:linear-gradient(135deg,#2563eb,#7c3aed);
  color:#fff;
  display:inline-flex;align-items:center;justify-content:center;
  font-size:.85rem;font-weight:600;flex-shrink:0;
}

.user-role{
  font-size:.72rem;
  color:rgba(255,255,255,.66);
  background:rgba(255,255,255,.12);
  border-radius:999px;
  padding:.14em .6em;
  font-weight:500;
  letter-spacing:.02em;
  text-transform:capitalize;
}

.user-chip:hover .user-avatar{box-shadow:0 0 0 3px rgba(37,99,235,.35)}

a.nav-link.dropdown-toggle[aria-expanded="true"]{color:#fff}

.card{
  border:1px solid var(--border);
  border-radius:var(--radius);
  box-shadow:var(--shadow-card);
  transition:box-shadow .2s,transform .2s;
}

.card:hover{box-shadow:var(--shadow-hover);transform:translateY(-1px)}

.card-header{
  background:transparent;
  border-bottom:1px solid var(--border);
  font-weight:600;
  color:var(--ink);
}

.card.stat-card{
  border:1px solid var(--border);
  border-radius:12px;
  background:var(--surface);
  position:relative;
  overflow:hidden;
}

.card.stat-card::before{
  content:"";
  position:absolute;
  top:0;left:0;right:0;
  height:3px;
  background:linear-gradient(90deg,var(--brand),#60a5fa);
}

.card.stat-card{
  cursor:pointer;
}

.card.stat-card:hover{
  transform:translateY(-2px);
  box-shadow:0 12px 28px rgba(15,23,42,.12);
  border-color:#cbd5e1;
}

.card.stat-card:hover::before{
  background:linear-gradient(90deg,var(--brand-dark),var(--brand));
}

.card.stat-card select.form-select{
  position:relative;
  z-index:2;
}

.stat-card-icon{
  width:42px;
  height:42px;
  border-radius:11px;
  background:var(--brand-soft);
  color:var(--brand);
  display:flex;
  align-items:center;
  justify-content:center;
  margin-bottom:1rem;
}

.stat-card-icon svg{
  width:22px;
  height:22px;
}

.card.stat-card h5{
  font-size:.74rem;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.07em;
  color:var(--muted);
  margin-bottom:.3rem;
}

.card.stat-card .stat-value{
  font-size:2.1rem;
  font-weight:700;
  letter-spacing:-.02em;
  line-height:1.1;
  color:var(--ink);
  font-variant-numeric:tabular-nums;
  margin-bottom:.75rem;
}

.stat-meta{
  color:var(--muted);
  font-size:.82rem;
}

.stat-link{
  display:inline-flex;
  align-items:center;
  gap:.35rem;
  font-size:.8rem;
  font-weight:600;
  color:var(--brand);
  text-decoration:none;
}

.stat-link:hover{
  color:var(--brand-dark);
  text-decoration:underline;
}

.card.alert-panel{
  border:1px solid var(--border);
  border-radius:12px;
  border-left:4px solid var(--brand);
  background:var(--surface);
}

.alert-panel--danger{border-left-color:#dc2626}
.alert-panel--warning{border-left-color:#d97706}

.alert-panel h5{
  font-weight:700;
  font-size:.95rem;
  color:var(--ink);
}

.alert-panel p{
  color:var(--muted);
}

.alert-panel--danger .stat-card-icon{background:rgba(220,38,38,.10);color:#dc2626}
.alert-panel--warning .stat-card-icon{background:rgba(217,119,6,.12);color:#b45309}

.table{
  margin-bottom:0;
}

.table thead th{
  background:#f8fafc;
  border-bottom:2px solid var(--border);
  font-weight:600;
  font-size:.78rem;
  text-transform:uppercase;
  letter-spacing:.04em;
  color:var(--muted);
  padding:.65rem .75rem;
  white-space:nowrap;
}

.table tbody td{
  vertical-align:middle;
  padding:.55rem .75rem;
}

.table-hover tbody tr:hover{background:#f8fafc}
.table-striped tbody tr:nth-of-type(odd){background:rgba(15,23,42,.02)}

.btn{
  border-radius:8px;
  font-weight:600;
  font-size:.875rem;
  letter-spacing:.01em;
  line-height:1.4;
  padding:.5rem 1.1rem;
  border-width:1px;
  transition:box-shadow .15s,transform .12s,background-color .15s,border-color .15s,color .15s;
}

.btn:hover{transform:translateY(-1px)}
.btn:active{transform:translateY(0) scale(.98)}
.btn:focus-visible{outline:none;box-shadow:0 0 0 3px rgba(37,99,235,.25)}
.btn:disabled,.btn.disabled{opacity:.55;box-shadow:none;transform:none}

.btn-sm{
  border-radius:6px;
  padding:.32rem .7rem;
  font-size:.8rem;
  font-weight:600;
}

.btn-lg{
  border-radius:10px;
  padding:.7rem 1.5rem;
  font-size:1rem;
}

.btn-icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:32px;
  height:32px;
  padding:0;
  border-radius:7px;
}

.btn-icon svg{
  width:16px;
  height:16px;
}

.btn-group-actions{
  display:flex;
  align-items:center;
  gap:.35rem;
  white-space:nowrap;
}

.btn-group-actions form{display:inline}

.btn-primary{
  background:var(--brand);
  border-color:var(--brand);
  box-shadow:0 1px 2px rgba(37,99,235,.25);
}

.btn-primary:hover,.btn-primary:focus{
  background:var(--brand-dark);
  border-color:var(--brand-dark);
  box-shadow:0 4px 10px rgba(37,99,235,.35);
}

.btn-success{
  background:#16a34a;
  border-color:#16a34a;
  box-shadow:0 1px 2px rgba(22,163,74,.25);
}

.btn-success:hover{
  background:#15803d;
  border-color:#15803d;
  box-shadow:0 4px 10px rgba(22,163,74,.35);
}

.btn-info{
  background:#0891b2;
  border-color:#0891b2;
  color:#fff;
  box-shadow:0 1px 2px rgba(8,145,178,.25);
}

.btn-info:hover{
  color:#fff;
  background:#0e7490;
  border-color:#0e7490;
  box-shadow:0 4px 10px rgba(8,145,178,.35);
}

.btn-danger{
  background:#dc2626;
  border-color:#dc2626;
  box-shadow:0 1px 2px rgba(220,38,38,.25);
}

.btn-danger:hover{
  background:#b91c1c;
  border-color:#b91c1c;
  box-shadow:0 4px 10px rgba(220,38,38,.35);
}

.btn-warning{
  background:#f59e0b;
  border-color:#f59e0b;
  color:#fff;
  box-shadow:0 1px 2px rgba(217,119,6,.25);
}

.btn-warning:hover{
  background:#b45309;
  border-color:#b45309;
  color:#fff;
  box-shadow:0 4px 10px rgba(217,119,6,.35);
}

.btn-secondary{
  background:#475569;
  border-color:#475569;
  box-shadow:0 1px 2px rgba(71,85,105,.25);
}

.btn-secondary:hover{
  background:#334155;
  border-color:#334155;
  box-shadow:0 4px 10px rgba(71,85,105,.35);
}

.btn-light{
  background:#f8fafc;
  border-color:#e2e8f0;
  color:#334155;
}

.btn-light:hover{
  background:#eef2f7;
  border-color:#cbd5e1;
  color:#0f172a;
  box-shadow:0 4px 10px rgba(15,23,42,.10);
}

.btn-outline-primary{
  color:var(--brand);
  border-color:var(--brand);
}

.btn-outline-primary:hover{
  background:var(--brand);
  border-color:var(--brand);
  color:#fff;
  box-shadow:0 4px 10px rgba(37,99,235,.3);
}

.btn-outline-success{
  color:#16a34a;
  border-color:#16a34a;
}

.btn-outline-success:hover{
  background:#16a34a;
  border-color:#16a34a;
  color:#fff;
}

.btn-outline-danger{
  color:#dc2626;
  border-color:#dc2626;
}

.btn-outline-danger:hover{
  background:#dc2626;
  border-color:#dc2626;
  color:#fff;
}

.btn-outline-warning{
  color:#b45309;
  border-color:#eab308;
}

.btn-outline-warning:hover{
  background:#b45309;
  border-color:#b45309;
  color:#fff;
}

.btn-outline-secondary{
  color:#475569;
  border-color:#cbd5e1;
}

.btn-outline-secondary:hover{
  background:#475569;
  border-color:#475569;
  color:#fff;
}

.btn-outline-info{
  color:#0e7490;
  border-color:#0e7490;
}

.btn-outline-info:hover{
  background:#0e7490;
  border-color:#0e7490;
  color:#fff;
}

.btn-outline-light{
  color:#fff;
  border-color:rgba(255,255,255,.45);
}

.btn-outline-light:hover{
  background:#fff;
  border-color:#fff;
  color:#0f172a;
}

.btn-link{
  font-weight:500;
  color:var(--brand);
  text-decoration:none;
}

.btn-link:hover{
  color:var(--brand-dark);
  text-decoration:underline;
}

.form-control,.form-select{
  border-radius:8px;
  border-color:#cbd5e1;
  font-size:.9rem;
  padding:.45rem .75rem;
  transition:border-color .15s,box-shadow .15s;
}

.form-control:focus,.form-select:focus{
  border-color:var(--brand);
  box-shadow:0 0 0 3px rgba(37,99,235,.16);
}

.form-label{
  font-weight:600;
  font-size:.84rem;
  color:var(--ink-soft);
  margin-bottom:.3rem;
}

.alert{
  border-radius:var(--radius);
  border:1px solid transparent;
  box-shadow:var(--shadow-card);
}

.alert-heading,.alert h5{font-weight:700}

.badge{
  font-weight:600;
  border-radius:6px;
  padding:.3em .6em;
  font-size:.75em;
  letter-spacing:.01em;
}

.page-link{color:var(--brand)}
.page-item.active .page-link{background:var(--brand);border-color:var(--brand)}
.page-item.disabled .page-link{color:#94a3b8}

.login-wrap{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:calc(100vh - 120px);
  padding:2rem 1rem;
}

.login-card{max-width:420px;width:100%}
.login-card .card{overflow:hidden}

.login-brand-band{
  background:var(--nav-bg);
  color:#fff;
  padding:1.75rem 2rem;
  text-align:center;
}

.login-brand-band .login-logo{
  width:56px;height:56px;
  margin:0 auto .85rem;
  border-radius:14px;
  background:linear-gradient(135deg,#2563eb,#7c3aed);
  display:flex;align-items:center;justify-content:center;
}

.login-brand-band h3{margin:0;font-weight:700;letter-spacing:-.02em}
.login-brand-band p{margin:0;color:rgba(255,255,255,.6);font-size:.85rem}

.text-success{color:#16a34a !important}
.text-danger{color:#dc2626 !important}
.text-warning{color:#b45309 !important}
.text-info{color:#0e7490 !important}

.table-responsive{
  -webkit-overflow-scrolling:touch;
}

@media (max-width:991.98px){
  .navbar{
    padding:.5rem 1rem;
  }
  .navbar .nav-link{
    padding:.5rem .75rem;
  }
  .user-chip{
    margin-right:0;
  }
  .navbar .dropdown-menu{
    border:none;
    box-shadow:none;
    padding-left:1rem;
    background:transparent;
  }
  .navbar .dropdown-item{
    color:rgba(255,255,255,.72);
  }
  .navbar .dropdown-item:hover{
    background:var(--nav-bg-soft);
    color:#fff;
  }
  .navbar .dropdown-item.active{
    background:var(--brand);
  }
}

@media (max-width:576px){
  body{
    padding-top:55px;
    font-size:.90rem;
  }
  .btn{
    width:100%;
    margin-bottom:.4rem;
  }
  .btn-group-actions{
    flex-wrap:wrap;
  }
  .btn-group-actions .btn{
    width:auto;
    margin-bottom:0;
  }
  .d-flex.justify-content-between{
    flex-direction:column;
    gap:.5rem;
  }
  .d-flex.justify-content-between .btn{
    width:100%;
  }
  h2{
    font-size:1.35rem;
  }
  .card-body{
    padding:1rem;
  }
}