:root{
  --brand:#2260ff;
  --brand-2:#00d4ff;
  --radius:16px;
  --surface:#ffffff;
  --surface-soft:#f8fafc;
  --text:#0f172a;
  --muted:#64748b;
  --border:#dbe3ef;
  --shadow:0 12px 34px rgba(15,23,42,.08);
}

*{box-sizing:border-box}

html{scroll-behavior:smooth}

body{
  min-height:100vh;
  overflow-x:hidden;
  background:linear-gradient(180deg, rgba(34,96,255,.045), transparent 30%),var(--surface-soft);
  color:var(--text);
  text-rendering:optimizeLegibility;
  -webkit-font-smoothing:antialiased;
}

img,svg,video,canvas{max-width:100%;height:auto}

a{transition:color .15s ease, background-color .15s ease, border-color .15s ease, box-shadow .15s ease}

a:focus-visible,
button:focus-visible,
.btn:focus-visible,
.form-control:focus,
.form-select:focus{
  outline:3px solid rgba(34,96,255,.24);
  outline-offset:2px;
  box-shadow:0 0 0 .22rem rgba(34,96,255,.12);
}

.card,
.modal-content,
.dropdown-menu,
.offcanvas{
  border-color:var(--border);
}

.card-neo{
  border:1px solid rgba(219,227,239,.9);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  background:var(--surface);
}
/* Sidebar improved: visible only on xl+; main content always uses container-xxl */
.sidebar{width:260px; background:#0f172a; color:#e2e8f0; height:calc(100vh - 56px); position:fixed; top:56px; left:0; overflow:auto; border-right:1px solid rgba(255,255,255,.08);}
.sidebar a{
  color:#e2e8f0;
  text-decoration:none;
  display:flex;
  align-items:center;
  gap:.6rem;
  padding:10px 14px;
  border-radius:10px;
  margin:4px 0;
}
.sidebar a.active,
.sidebar a:hover{
  background:rgba(255,255,255,.10);
  color:#fff;
}
.sidebar a.active{box-shadow:inset 3px 0 0 var(--brand-2)}
.main{padding-left:0}
@media (min-width: 1200px){ .main{ margin-left:260px; } }
.main{max-width:100%;overflow-x:hidden}
.hero{padding:32px;border-radius:20px;background:linear-gradient(135deg,rgba(34,96,255,.08),rgba(0,212,255,.08));}
.btn-gradient{background:linear-gradient(135deg,var(--brand),var(--brand-2));border:0;color:#fff}
.btn-gradient:hover{color:#fff;filter:brightness(.98)}
.signature-canvas{border:1px dashed #cbd5e1;border-radius:12px}

.form-control,
.form-select,
.input-group-text{
  border-color:#cbd5e1;
}

.form-control,
.form-select{
  min-height:2.4rem;
}

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.4rem;
}

.table{
  --bs-table-bg:transparent;
  vertical-align:middle;
}

.table thead th{
  color:#475569;
  font-size:.78rem;
  text-transform:uppercase;
  letter-spacing:.04em;
  border-bottom-color:#cbd5e1;
}

.table-fit td,
.table-fit th{white-space:nowrap}

.table-responsive{
  border-radius:12px;
  scrollbar-width:thin;
  max-width:100%;
}

.badge{
  font-weight:600;
}

.avatar{
  width:32px;
  height:32px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:50%;
  background:#e0ecff;
  color:#1d4ed8;
  font-size:.85rem;
  font-weight:700;
  flex:0 0 auto;
}

.center-badge{
  max-width:220px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.offcanvas-blue{
  background:#0b132b;
  color:#e2e8f0;
}

.offcanvas-blue a{
  color:#e2e8f0;
  text-decoration:none;
  display:flex;
  gap:.55rem;
  align-items:center;
  padding:.55rem .7rem;
  border-radius:.65rem;
}

.offcanvas-blue a.active,
.offcanvas-blue a:hover{
  background:rgba(255,255,255,.10);
  color:#fff;
}

.nav-section-label{
  color:#93c5fd;
  font-size:.78rem;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.06em;
  margin:.8rem .7rem .35rem;
  display:flex;
  align-items:center;
  gap:.45rem;
}

@media (max-width: 767.98px){
  body{font-size:.95rem}
  .container,
  .container-fluid,
  .container-xxl{padding-inline:.85rem}
  .navbar .container-fluid{
    gap:.5rem;
    min-width:0;
  }
  .navbar-brand{
    max-width:54vw;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    font-size:1rem;
  }
  .center-badge{max-width:38vw}
  .main{padding-top:.5rem}
  .card,
  .card-neo,
  .modal-content{
    border-radius:12px;
    box-shadow:0 8px 22px rgba(15,23,42,.07);
  }
  .hero{padding:22px;border-radius:16px}
  .btn,
  .form-control,
  .form-select{
    min-height:44px;
  }
  .btn{
    white-space:normal;
    text-align:center;
    line-height:1.2;
  }
  .btn-group,
  .btn-toolbar{
    flex-wrap:wrap;
    gap:.35rem;
  }
  .table-responsive{
    margin-inline:-.35rem;
    padding-inline:.35rem;
    border-radius:10px;
  }
  .table{
    font-size:.88rem;
  }
  .table td,
  .table th{
    padding:.55rem .45rem;
  }
  .table-fit td,
  .table-fit th{white-space:normal}
  .dropdown-menu{
    max-width:calc(100vw - 1.5rem);
  }
}

@media (prefers-reduced-motion: reduce){
  *,
  *::before,
  *::after{
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
    scroll-behavior:auto !important;
    transition-duration:.01ms !important;
  }
}
