/* NexCustor — lenguaje visual compartido con d10digital. */
:root {
  --nc-night: #080b12;
  --nc-night-soft: #111522;
  --nc-paper: #f4f1eb;
  --nc-primary: #7657e8;
  --nc-primary-deep: #6243d5;
  --nc-signal: #54d9c8;
  --nc-ink: #171820;
  --nc-muted: #737684;
  --nc-border: #dedde5;
  --bs-primary: #7657e8;
  --bs-primary-rgb: 118, 87, 232;
  --bs-link-color: #6043c9;
  --bs-link-hover-color: #4f34ac;
  --bs-body-color: var(--nc-ink);
  --bs-body-font-family: "Segoe UI Variable", "Aptos", system-ui, -apple-system, "Segoe UI", sans-serif;
}
body, body.bg-light {
  background-color: var(--nc-paper) !important;
  background-image: linear-gradient(rgba(21,22,30,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(21,22,30,.025) 1px,transparent 1px);
  background-size: 36px 36px;
}
.sidebar {
  background: radial-gradient(circle at 88% 8%,rgba(118,87,232,.28),transparent 27%),linear-gradient(180deg,#101521,#070910 44%);
  border-right: 1px solid rgba(255,255,255,.07);
}
.sidebar > a { letter-spacing: -.035em; }
.sidebar > small { font-family: "Cascadia Code",Consolas,monospace; font-size: .65rem; }
.sidebar .nav-link { border: 1px solid transparent; border-radius: 10px; }
.sidebar .nav-link:hover { background: rgba(255,255,255,.06); border-color: rgba(255,255,255,.05); }
.sidebar .nav-link.active {
  background: linear-gradient(90deg,rgba(118,87,232,.25),rgba(118,87,232,.09));
  border-color: rgba(168,139,255,.13);
  box-shadow: inset 2px 0 var(--nc-signal);
}
.sidebar .nav-link > i { color: #a7a9b6; }
.sidebar .nav-link.active > i { color: #a8f0e6; }
.card { border-color: var(--nc-border); border-radius: 15px; box-shadow: 0 20px 46px -32px rgba(9,11,18,.4); }
.card-header { border-color: var(--nc-border); }
.accordion {
  --bs-accordion-active-bg: #efebff;
  --bs-accordion-active-color: #6043c9;
  --bs-accordion-border-color: #dedde5;
  --bs-accordion-btn-focus-box-shadow: 0 0 0 3px rgba(118,87,232,.15);
}
h1,h2,h3,.fs-2 { letter-spacing: -.035em; }
.btn { border-radius: 9px; }
.btn-primary {
  --bs-btn-bg: #7657e8; --bs-btn-border-color: #7657e8;
  --bs-btn-hover-bg: #6243d5; --bs-btn-hover-border-color: #6243d5;
  --bs-btn-active-bg: #6043c9; --bs-btn-active-border-color: #6043c9;
  --bs-btn-disabled-bg: #7657e8; --bs-btn-disabled-border-color: #7657e8;
  background-image: linear-gradient(135deg,rgba(255,255,255,.12),transparent);
  box-shadow: 0 10px 20px -13px rgba(118,87,232,.8);
}
.btn-outline-primary {
  --bs-btn-color: #6043c9; --bs-btn-border-color: #7657e8;
  --bs-btn-hover-bg: #6243d5; --bs-btn-hover-border-color: #6243d5;
  --bs-btn-active-bg: #6043c9; --bs-btn-active-border-color: #6043c9;
}
.page-link { color: var(--nc-primary-deep); }
.active > .page-link, .page-link.active { background: var(--nc-primary-deep); border-color: var(--nc-primary-deep); color: #fff; }
.form-control:focus,.form-select:focus { border-color: #9c84ef; box-shadow: 0 0 0 3px rgba(118,87,232,.15); }
a:focus-visible,button:focus-visible { outline: 3px solid #7657e8; outline-offset: 3px; }
.table { --bs-table-border-color: #e8e4ec; --bs-table-hover-bg: #f7f3ff; }
.table-light { --bs-table-bg: #f0ede8; --bs-table-color: #65616e; }
.list-scroll table thead.table-light th { background-color: #f0ede8; }
.table thead th { letter-spacing: .065em; }
body.nc-login {
  min-height: 100vh; padding: 24px 16px;
  background: radial-gradient(circle at 72% 18%,rgba(118,87,232,.34),transparent 30%),linear-gradient(145deg,#111522,#06080d 70%) !important;
}
.nc-login .login-card {
  width: 100%; max-width: 420px; border-radius: 20px;
  color: #f2efe8; background: rgba(10,12,19,.88);
  border: 1px solid rgba(255,255,255,.14);
  box-shadow: 0 30px 80px -28px #000;
}
.nc-login .text-muted,.nc-login .form-label { color: #b3b4c1 !important; }
.nc-login a:not(.btn) { color: #c1b0ff; }
.nc-login .form-control { color: #f2efe8; background: rgba(255,255,255,.055); border-color: rgba(255,255,255,.2); }
.nc-login .btn-outline-secondary { color: #d8d6e2; border-color: #777787; }
.nc-login .btn-outline-secondary:hover { background: #373342; }
.nc-login .ms-btn { background: #7657e8; color: #fff; border: 1px solid #7657e8; }
.nc-login .ms-btn:hover { background: #6243d5; }
.nc-mobile-bar { background: #101521; }
@media (max-width: 767.98px) {
  .sidebar { --bs-offcanvas-width: 280px; width: 280px; position: fixed; height: 100dvh; }
  .sidebar span,.sidebar small { display: inline !important; }
  main > .d-flex:first-child { flex-wrap: wrap; gap: 10px; }
}
@media (prefers-reduced-motion: reduce) { .btn,.sidebar .nav-link { transition: none; } }
@media print { body,body.bg-light { background: #fff !important; } }
