:root{
  --app-bg:#f6f8fb;
  --app-surface:#ffffff;
  --app-surface-2:#f8fafc;
  --app-border:#d7dee9;
  --app-border-strong:#b8c3d3;
  --app-text:#0f172a;
  --app-muted:#64748b;
  --app-primary:#7c3aed;
  --app-primary-dark:#5b21b6;
  --app-primary-soft:#f3e8ff;
  --app-warning:#f59e0b;
  --app-danger:#dc3545;
  --app-shadow:0 16px 42px rgba(15,23,42,.08);
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  background:linear-gradient(180deg,#f8fbff 0%,var(--app-bg) 100%);
  font-family:Inter,system-ui,-apple-system,"Segoe UI",Arial,sans-serif;
  color:var(--app-text);
  min-height:100vh;
  -webkit-font-smoothing:antialiased;
}
.app-navbar{
  background:rgba(255,255,255,.94);
  backdrop-filter:blur(14px);
  border-bottom:1px solid rgba(215,222,233,.9);
  box-shadow:0 10px 30px rgba(15,23,42,.05);
}
.navbar-brand{color:var(--app-text)!important;letter-spacing:-.02em;}
.navbar .nav-link{color:#475569!important;border-radius:12px;padding:.55rem .8rem!important;font-weight:600;}
.navbar .nav-link:hover{background:var(--app-primary-soft);color:var(--app-primary-dark)!important;}
.navbar .nav-link.active{background:linear-gradient(135deg,#8b5cf6,#6d28d9);color:#fff!important;}
.top-user-area{color:var(--app-muted);}
.app-container{max-width:1540px;padding-left:1rem;padding-right:1rem;}
h1,h2,h3{letter-spacing:-.025em;color:var(--app-text);}
.text-muted{color:var(--app-muted)!important;}
.card{
  border:1px solid rgba(215,222,233,.85);
  border-radius:22px;
  background:var(--app-surface);
  box-shadow:var(--app-shadow);
}
.card-body{padding:1.25rem;}
.stat-card{overflow:hidden;position:relative;transition:transform .18s ease,box-shadow .18s ease;}
.stat-card:hover{transform:translateY(-2px);box-shadow:0 22px 55px rgba(15,23,42,.11);}
.stat-card:after{content:"";position:absolute;right:-34px;bottom:-42px;width:125px;height:125px;border-radius:999px;background:rgba(124,58,237,.13);}
.display-6{font-size:2rem;}
.table{--bs-table-bg:transparent;margin-bottom:0;color:var(--app-text);}
.table thead th{
  font-size:.76rem;text-transform:uppercase;letter-spacing:.04em;color:#52627a;
  background:var(--app-surface-2);border-bottom:1px solid var(--app-border);white-space:nowrap;
}
.table td,.table th{vertical-align:middle;border-color:#edf1f6;}
.table tbody tr:hover{background:#fbfdff;}
.table-responsive{border-radius:18px;border:1px solid #edf1f6;background:#fff;}
.btn{border-radius:14px;font-weight:700;min-height:42px;display:inline-flex;align-items:center;justify-content:center;gap:.35rem;}
.btn-success{background:linear-gradient(135deg,#8b5cf6,#6d28d9);border-color:#7c3aed;color:#fff;}
.btn-success:hover,.btn-success:focus{background:linear-gradient(135deg,#7c3aed,#5b21b6);border-color:#5b21b6;color:#fff;}
.btn-outline-success{border-color:var(--app-primary);color:var(--app-primary);}
.btn-outline-success:hover{background:var(--app-primary);border-color:var(--app-primary);color:#fff;}
.form-label{font-weight:700;color:#223047;margin-bottom:.45rem;}
.form-control,.form-select,textarea.form-control{
  border-radius:14px!important;
  border:1.5px solid var(--app-border-strong)!important;
  background-color:#ffffff!important;
  color:var(--app-text)!important;
  min-height:48px;
  font-size:16px;
  box-shadow:none!important;
}
.form-control:focus,.form-select:focus,textarea.form-control:focus{
  border-color:var(--app-primary)!important;
  box-shadow:0 0 0 .22rem rgba(124,58,237,.16)!important;
  background:#fff!important;color:var(--app-text)!important;
}
.form-control::placeholder{color:#7b8797!important;opacity:1!important;}
.form-select option{color:var(--app-text);background:#fff;}
input[type="date"],input[type="time"],input[type="number"],input[type="text"],input[type="password"],input[type="email"]{color-scheme:light;}
.input-group .form-control{border-top-right-radius:0!important;border-bottom-right-radius:0!important;}
.input-group .btn{border-top-left-radius:0;border-bottom-left-radius:0;}
.user-chip{border:1px solid #dce4ef;padding:.35rem .7rem;border-radius:999px;background:#f8fafc;color:#334155;font-weight:700;}
.badge-soft{background:#eef7ff;color:#1d4ed8;border-radius:999px;padding:.42rem .68rem;font-weight:700;}
.badge{border-radius:999px;padding:.45rem .7rem;}
.required:after{content:" *";color:#dc3545;}
.sticky-actions{
  position:sticky;bottom:0;background:rgba(255,255,255,.94);backdrop-filter:blur(12px);
  padding:1rem;border-top:1px solid #e5e7eb;margin:1rem -1.25rem -1.25rem;border-radius:0 0 22px 22px;
}
.kpi-danger{border-left:6px solid var(--app-danger);}.kpi-warning{border-left:6px solid var(--app-warning);}.kpi-success{border-left:6px solid #198754;}
.small-help{font-size:.84rem;color:var(--app-muted);margin-top:.3rem;}
.alert{border-radius:16px;border-width:1px;font-weight:600;}
hr{border-color:#dfe6ef;opacity:1;}

@media (max-width: 991.98px){
  .app-container{padding-left:.75rem;padding-right:.75rem;}
  .navbar-collapse{padding-top:1rem;}
  .navbar-nav{gap:.25rem;}
  .top-user-area{width:100%;justify-content:space-between;margin-top:.75rem;padding-top:.75rem;border-top:1px solid #edf1f6;}
  .card{border-radius:20px;}
  .card-body{padding:1rem;}
}
@media (max-width: 767.98px){
  body{background:#f8fafc;}
  h1.h3{font-size:1.35rem;}
  .display-6{font-size:1.65rem;}
  .btn{width:100%;min-height:48px;}
  .btn.btn-sm{width:auto;min-height:36px;}
  .input-group{display:block;}
  .input-group .form-control,.input-group .btn{width:100%;border-radius:14px!important;margin-bottom:.5rem;}
  .sticky-actions{position:fixed;left:0;right:0;bottom:0;z-index:1030;border-radius:18px 18px 0 0;margin:0;padding:1rem;box-shadow:0 -12px 35px rgba(15,23,42,.12);}
  main.app-container{padding-bottom:6.5rem;}
  .table-responsive{border:0;background:transparent;overflow:visible;}
  .table-mobile-card thead{display:none;}
  .table-mobile-card,.table-mobile-card tbody,.table-mobile-card tr,.table-mobile-card td{display:block;width:100%;}
  .table-mobile-card tr{background:#fff;border:1px solid #e6edf5;border-radius:18px;margin-bottom:.85rem;padding:.7rem;box-shadow:0 12px 28px rgba(15,23,42,.06);}
  .table-mobile-card td{border:0!important;display:flex;justify-content:space-between;gap:1rem;padding:.55rem .35rem!important;text-align:right;}
  .table-mobile-card td:before{content:attr(data-label);font-weight:800;color:#52627a;text-align:left;min-width:42%;}
  .table-mobile-card td .small{display:block;text-align:right;}
}
