:root {
  --nx-bg: #F4F7FB;
  --nx-bg-soft: #EEF3F9;
  --nx-surface: #FFFFFF;
  --nx-surface-soft: #F8FAFC;

  --nx-navy: #071B2F;
  --nx-navy-2: #0B2742;
  --nx-blue: #0EA5FF;
  --nx-blue-soft: #E0F2FE;

  --nx-gold: #F4C430;
  --nx-gold-2: #D9A900;
  --nx-gold-soft: #FFF7D6;

  --nx-text: #0F172A;
  --nx-muted: #64748B;
  --nx-border: #DDE7F2;
  --nx-border-soft: #E7EEF7;

  --nx-success: #16A34A;
  --nx-danger: #DC2626;
  --nx-warning: #D97706;

  --nx-shadow-sm: 0 6px 18px rgba(15, 23, 42, .04);
  --nx-shadow: 0 16px 38px rgba(15, 23, 42, .07);
}

html,
body {
  height: 100%;
}

body {
  background:
    radial-gradient(circle at top left, rgba(244, 196, 48, .12), transparent 28rem),
    radial-gradient(circle at top right, rgba(14, 165, 255, .10), transparent 30rem),
    linear-gradient(180deg, #F8FAFC 0%, #EEF3F9 100%);
  color: var(--nx-text);
}

a {
  color: var(--nx-navy);
  text-decoration: none;
}

a:hover {
  color: #0B2742;
}

.text-muted {
  color: var(--nx-muted) !important;
}

.text-dark {
  color: var(--nx-text) !important;
}

.btn {
  border-radius: 12px;
}

.btn-primary,
.nx-btn-primary {
  background: linear-gradient(135deg, #F4C430, #D9A900);
  border-color: #D9A900;
  color: #071B2F;
  font-weight: 700;
  box-shadow: 0 10px 22px rgba(217, 169, 0, .18);
}

.btn-primary:hover,
.nx-btn-primary:hover {
  background: linear-gradient(135deg, #FFD95A, #D9A900);
  color: #071B2F;
}

.btn-primary:focus {
  box-shadow: 0 0 0 .2rem rgba(244, 196, 48, .18);
}

.btn-outline-primary {
  border-color: rgba(7, 27, 47, .35);
  color: var(--nx-navy);
}

.btn-outline-primary:hover {
  background: rgba(7, 27, 47, .06);
  border-color: rgba(7, 27, 47, .35);
  color: var(--nx-navy);
}

.btn-outline-secondary {
  border-color: rgba(100, 116, 139, .30);
  color: var(--nx-navy);
}

.btn-outline-secondary:hover {
  background: rgba(100, 116, 139, .08);
  border-color: rgba(100, 116, 139, .34);
  color: var(--nx-navy);
}

.btn-outline-light {
  border-color: var(--nx-border);
  color: var(--nx-navy);
  background: rgba(255, 255, 255, .72);
}

.btn-outline-light:hover {
  background: rgba(255, 255, 255, .96);
  border-color: var(--nx-border);
  color: var(--nx-navy);
}

.alert {
  border-radius: 18px;
}

.alert-success {
  background: rgba(22, 163, 74, .10);
  border-color: rgba(22, 163, 74, .18);
  color: var(--nx-text);
}

.alert-danger {
  background: rgba(220, 38, 38, .10);
  border-color: rgba(220, 38, 38, .18);
  color: var(--nx-text);
}

.form-label {
  color: #334155;
}

.form-control,
.form-select {
  border-radius: 12px;
  min-height: 44px;
  background-color: #FFFFFF;
  color: var(--nx-text);
  border-color: var(--nx-border);
}

.form-control::placeholder {
  color: rgba(100, 116, 139, .75);
}

.form-control:focus,
.form-select:focus {
  border-color: rgba(244, 196, 48, .85);
  box-shadow: 0 0 0 .2rem rgba(244, 196, 48, .16);
}

select option {
  background: #FFFFFF;
  color: var(--nx-text);
}

.card,
.card-premium,
.metric,
.mobile-card,
.nx-card {
  background: var(--nx-surface);
  border: 1px solid var(--nx-border-soft);
  border-radius: 18px;
  box-shadow: var(--nx-shadow);
  color: var(--nx-text);
}

.nx-hero,
.nx-card-highlight {
  background:
    linear-gradient(135deg, rgba(255, 255, 255, .96), rgba(248, 250, 252, .92)),
    radial-gradient(circle at top right, rgba(244, 196, 48, .16), transparent 18rem);
  border: 1px solid var(--nx-border);
  color: var(--nx-text);
}

.metric .value {
  font-size: 2rem;
  font-weight: 800;
  letter-spacing: -.05em;
  color: var(--nx-navy);
}

/* Page helpers */
.nx-page-header {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
  margin-bottom: 1rem;
}

.nx-page-title {
  color: var(--nx-text);
  font-weight: 800;
  letter-spacing: -.02em;
  line-height: 1.15;
  font-size: clamp(1.25rem, 3.6vw, 1.85rem);
  margin: 0;
}

.nx-responsive-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
}

@media (max-width: 768px) {
  .nx-responsive-actions {
    display: grid;
    grid-template-columns: 1fr;
  }
  .nx-responsive-actions .btn { width: 100%; }
}

/* Print */
.nx-print-only { display: none; }

@media print {
  @page { size: A4 portrait; margin: 12mm 10mm; }

  * { -webkit-print-color-adjust: exact; print-color-adjust: exact; }

  body { background: #fff !important; }
  .tenant-header,
  .nexsum-footer,
  .nx-print-hide,
  .nav,
  form,
  .pagination,
  .btn { display: none !important; }

  .nx-print-only { display: block !important; }

  body, .table { color: #111827 !important; }

  .nx-print-header {
    display: flex !important;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding-bottom: 10px;
    margin-bottom: 12px;
    border-bottom: 1px solid #E5E7EB;
  }

  .nx-print-header .nx-print-brand {
    display: flex;
    align-items: center;
    gap: 10px;
  }

  .nx-print-header .nx-print-logo {
    height: 34px;
    width: auto;
    object-fit: contain;
  }

  .nx-print-header .nx-print-title {
    font-weight: 800;
    letter-spacing: -0.02em;
    font-size: 13pt;
    margin: 0;
    color: #0F172A;
  }

  .nx-print-header .nx-print-subtitle {
    margin: 2px 0 0;
    color: #475569;
    font-size: 9.5pt;
  }

  .nx-print-header .nx-print-meta {
    text-align: right;
    color: #475569;
    font-size: 9.5pt;
    line-height: 1.25;
    white-space: nowrap;
  }

  .card,
  .card-premium,
  .mobile-card,
  .metric,
  .table-responsive {
    box-shadow: none !important;
    border: 0 !important;
    background: transparent !important;
  }

  .table-responsive { padding: 0 !important; }

  .table { font-size: 9.5pt; }
  .table thead th { background: #fff !important; color: #111827 !important; border-bottom: 1px solid #E5E7EB !important; }
  .table > :not(caption) > * > * { border-color: #E5E7EB !important; }

  .badge { border: 1px solid #E5E7EB !important; color: #111827 !important; background: #fff !important; }

  a[href]:after { content: ""; }
}

/* Stat cards */
.nx-stat-card,
.metric {
  min-height: 118px;
  padding: 1.15rem;
}

.nx-stat-label {
  color: var(--nx-muted);
  font-size: .9rem;
}

.nx-stat-value {
  color: var(--nx-text);
  font-size: clamp(1.8rem, 5vw, 2.35rem);
  font-weight: 800;
  line-height: 1;
}

.table {
  color: var(--nx-text);
}

.table-responsive {
  border-radius: 16px;
  border: 1px solid var(--nx-border-soft);
  box-shadow: var(--nx-shadow-sm);
  background: var(--nx-surface);
}

.table > :not(caption) > * > * {
  border-color: var(--nx-border-soft);
}

.table thead th {
  background: #F8FAFC;
  color: #334155;
  border-bottom: 1px solid var(--nx-border);
}

.table-hover tbody tr:hover,
.table tbody tr:hover {
  background: #F8FAFC;
}

.badge {
  font-weight: 700;
  border-radius: 999px;
  padding: .4rem .65rem;
}

.badge-soft {
  background: var(--nx-blue-soft);
  color: var(--nx-navy);
  border: 1px solid rgba(14, 165, 255, .22);
}

/* Tenant layout (header + nav) */
.tenant-header {
  background: rgba(255, 255, 255, .88);
  backdrop-filter: blur(14px);
  border-bottom: 1px solid var(--nx-border);
  box-shadow: 0 10px 30px rgba(15, 23, 42, .06);
  border-radius: 0 0 26px 26px;
  padding: 18px 0 22px;
}

.nx-brand-block {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: .35rem;
}

.tenant-header .nx-header-logo {
  height: 58px;
  width: auto;
  max-width: 260px;
  object-fit: contain;
}

.nx-tenant-name {
  margin-left: 4px;
  letter-spacing: .02em;
  color: var(--nx-muted) !important;
}

.nx-nav .nav-link,
.nx-menu a {
  background: rgba(255, 255, 255, .86);
  border: 1px solid var(--nx-border);
  color: var(--nx-navy);
  box-shadow: var(--nx-shadow-sm);
  border-radius: 14px;
}

.nx-top-menu {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
}

.nx-nav .nav-link.active,
.nx-menu a.active {
  background: linear-gradient(135deg, #FFF7D6, #FFFFFF);
  border-color: rgba(244, 196, 48, .65);
  color: var(--nx-navy);
  font-weight: 700;
}

.nx-nav .nav-link:hover,
.nx-menu a:hover {
  background: var(--nx-blue-soft);
  border-color: rgba(14, 165, 255, .35);
  color: var(--nx-navy);
}

.content-wrap {
  margin-top: 16px;
}

/* Owner layout */
.app-shell {
  min-height: 100vh;
  display: flex;
}

.sidebar {
  width: 280px;
  background: rgba(255, 255, 255, .88);
  backdrop-filter: blur(14px);
  color: var(--nx-text);
  position: sticky;
  top: 0;
  height: 100vh;
  padding: 24px 18px;
  border-right: 1px solid var(--nx-border);
}

.sidebar .nx-sidebar-logo {
  height: 62px;
  width: auto;
  max-width: 220px;
  object-fit: contain;
}

.sidebar .nav-link {
  background: rgba(255, 255, 255, .86);
  border: 1px solid var(--nx-border);
  color: var(--nx-navy);
  border-radius: 14px;
  padding: .75rem .9rem;
  margin: .15rem 0;
  box-shadow: var(--nx-shadow-sm);
}

.sidebar .nav-link:hover {
  background: var(--nx-blue-soft);
  border-color: rgba(14, 165, 255, .35);
  color: var(--nx-navy);
}

.sidebar .nav-link.active {
  background: linear-gradient(135deg, #FFF7D6, #FFFFFF);
  border-color: rgba(244, 196, 48, .65);
  color: var(--nx-navy);
  font-weight: 700;
}

.main {
  flex: 1;
  padding: 28px;
  min-width: 0;
  display: flex;
  flex-direction: column;
}

.topbar {
  background: rgba(255, 255, 255, .90);
  border: 1px solid var(--nx-border);
  border-radius: 22px;
  padding: 16px 20px;
  box-shadow: var(--nx-shadow);
}

/* Footer institucional */
.nexsum-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 1rem 1.5rem;
  margin-top: auto;
  color: var(--nx-muted);
  border-top: 1px solid var(--nx-border);
  background: rgba(255, 255, 255, .72);
  backdrop-filter: blur(12px);
}

.nexsum-footer-logo {
  height: 48px;
  width: auto;
  object-fit: contain;
}

@media (max-width: 991px) {
  .app-shell { display: block; }
  .sidebar { width: 100%; height: auto; position: relative; border-radius: 0 0 24px 24px; }
  .main { padding: 18px; min-height: auto; }
}

@media (max-width: 768px) {
  .tenant-header .nx-header-logo { max-width: 220px; height: auto; }

  .tenant-header .container-fluid { padding-left: 1rem !important; padding-right: 1rem !important; }

  .nx-top-menu {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: .5rem;
  }

  .nx-top-menu .nav-link,
  .nx-top-menu a {
    width: 100%;
    justify-content: center;
    font-size: .88rem;
    padding: .65rem .7rem;
  }
}

@media (max-width: 575px) {
  .nexsum-footer { flex-direction: column; text-align: center; }
}

@media (max-width: 420px) {
  .nx-top-menu { grid-template-columns: 1fr; }
}

/* Login (tema claro premium) */
body.nx-login {
  min-height: 100vh;
  display: grid;
  place-items: center;
  padding: 24px;
}

.nx-login-shell {
  width: 100%;
  max-width: 980px;
  display: grid;
  grid-template-columns: 1.1fr .9fr;
  border-radius: 28px;
  overflow: hidden;
  box-shadow: 0 30px 90px rgba(15, 23, 42, .10);
  border: 1px solid var(--nx-border);
  background: rgba(255, 255, 255, .78);
  backdrop-filter: blur(14px);
}

.nx-login-hero {
  background:
    radial-gradient(circle at top right, rgba(14, 165, 255, .14), transparent 22rem),
    radial-gradient(circle at top left, rgba(244, 196, 48, .16), transparent 20rem),
    linear-gradient(135deg, rgba(255, 255, 255, .92), rgba(248, 250, 252, .92));
  color: var(--nx-text);
  padding: 44px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  min-height: 520px;
  border-right: 1px solid var(--nx-border);
}

.nx-login-pill {
  background: rgba(244, 196, 48, .16);
  border: 1px solid rgba(244, 196, 48, .28);
  border-radius: 999px;
  padding: 8px 12px;
  display: inline-flex;
  width: max-content;
  color: var(--nx-navy);
  font-weight: 600;
}

.nx-login-form {
  padding: 44px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.nx-login-logo {
  height: 96px;
  width: auto;
  max-width: 340px;
  object-fit: contain;
}

@media (max-width: 820px) {
  .nx-login-shell { grid-template-columns: 1fr; }
  .nx-login-hero { min-height: auto; padding: 30px; }
  .nx-login-form { padding: 30px; }
  .nx-login-logo { height: 82px; max-width: 280px; }
}

/* Modals: mobile safe defaults (inclui atendimento) */
@media (max-width: 768px) {
  .modal-dialog { margin: .5rem; }
  .modal-content { border-radius: 1rem; }
  .modal-body { max-height: calc(100vh - 190px); overflow-y: auto; }
  .modal-footer { display: grid; grid-template-columns: 1fr; gap: .5rem; }
  .modal-footer .btn { width: 100%; }
}

/* Atendimento: modal com footer sempre visível */
.nx-work-modal .modal-dialog {
  max-width: 1140px;
}

.nx-work-modal .modal-content {
  max-height: calc(100vh - 3rem);
  display: flex !important;
  flex-direction: column !important;
  overflow: hidden !important;
  border-radius: 20px;
  border: 0;
  box-shadow: 0 24px 70px rgba(15, 23, 42, .22);
}

.nx-work-modal .modal-header {
  flex: 0 0 auto;
  background: linear-gradient(135deg, #FFFFFF, #F8FAFC);
  border-bottom: 1px solid #E7EEF7;
  padding: 1rem 1.25rem;
}

.nx-work-modal .modal-title {
  color: #0F172A;
  font-weight: 800;
  letter-spacing: -.02em;
}

.nx-work-modal-subtitle {
  color: #64748B;
  font-size: .9rem;
  margin-top: .15rem;
}

.nx-work-modal .nx-work-modal-form {
  display: flex !important;
  flex-direction: column !important;
  flex: 1 1 auto !important;
  min-height: 0 !important;
}

.nx-work-modal .modal-body {
  flex: 1 1 auto !important;
  min-height: 0 !important;
  overflow-y: auto !important;
  max-height: none !important;
  background: #F8FAFC;
}

.nx-work-modal .modal-footer,
.nx-work-modal .nx-work-modal-footer {
  flex: 0 0 auto !important;
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  gap: .75rem !important;
  background: #FFFFFF !important;
  border-top: 1px solid #E7EEF7 !important;
  padding: 1rem 1.25rem !important;
  position: relative !important;
  z-index: 5 !important;
}

.nx-work-modal .modal-footer .btn,
.nx-work-modal .nx-work-modal-footer .btn {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 42px !important;
  white-space: nowrap !important;
}

.nx-work-modal-section {
  background: #FFFFFF;
  border: 1px solid #E7EEF7;
  border-radius: 16px;
  padding: 1rem;
  margin-bottom: 1rem;
}

.nx-work-script-box {
  background:
    linear-gradient(135deg, rgba(255, 247, 214, .92), rgba(255, 255, 255, .92));
  border: 1px solid rgba(244, 196, 48, .38);
  border-radius: 16px;
  padding: 1rem;
  color: #0F172A;
  line-height: 1.55;
}

@media (max-width: 768px) {
  .nx-work-modal .modal-dialog {
    margin: .5rem !important;
    max-width: none !important;
  }

  .nx-work-modal .modal-content {
    max-height: calc(100vh - 1rem) !important;
    border-radius: 18px !important;
  }

  .nx-work-modal .modal-body {
    padding: 1rem !important;
  }

  .nx-work-modal .modal-footer,
  .nx-work-modal .nx-work-modal-footer {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: .6rem !important;
    padding: .85rem 1rem 1rem !important;
  }

  .nx-work-modal .modal-footer .btn,
  .nx-work-modal .nx-work-modal-footer .btn {
    width: 100% !important;
    min-height: 46px !important;
  }
}

/* Atendimento (mobile): cards premium */
@media (max-width: 768px) {
  .nx-work-mobile-list {
    margin-left: 0;
    margin-right: 0;
  }

  .nx-mobile-lead-card {
    background: #ffffff;
    border: 1px solid #E6EDF5;
    border-radius: 18px;
    box-shadow: 0 10px 24px rgba(15, 23, 42, .08);
    padding: 16px;
    margin-bottom: 14px;
  }

  .nx-mobile-lead-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 8px;
  }

  .nx-mobile-lead-title {
    font-size: 1.02rem;
    font-weight: 800;
    color: #0F172A;
    line-height: 1.25;
  }

  .nx-mobile-status-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: .35rem .7rem;
    border-radius: 999px;
    font-size: .74rem;
    font-weight: 700;
    white-space: nowrap;
  }

  .nx-mobile-lead-meta {
    color: #64748B;
    font-size: .92rem;
    display: flex;
    align-items: center;
    gap: .45rem;
    flex-wrap: wrap;
    margin-bottom: 10px;
  }

  .nx-mobile-lead-meta i {
    color: rgba(7, 27, 47, .75);
  }

  .nx-meta-sep {
    color: rgba(100, 116, 139, .75);
    padding: 0 .1rem;
  }

  .nx-mobile-lead-interest {
    color: #334155;
    font-size: .95rem;
    margin-bottom: 12px;
  }

  .nx-mobile-lead-interest strong {
    color: #0F172A;
    font-weight: 700;
  }

  .nx-mobile-attendance-alert {
    display: flex;
    align-items: center;
    gap: .55rem;
    border-radius: 14px;
    padding: .70rem .85rem;
    font-size: .92rem;
    margin-bottom: 12px;
    border: 1px solid var(--nx-border);
    background: #F8FAFC;
    color: #334155;
  }

  .nx-mobile-attendance-alert i {
    color: rgba(7, 27, 47, .72);
  }

  .nx-mobile-attendance-alert--me {
    background: #FFF8DB;
    border-color: rgba(244, 196, 48, .55);
    color: #8A6500;
  }

  .nx-mobile-attendance-alert--me i {
    color: #8A6500;
  }

  .nx-mobile-attendance-alert--neutral {
    background: #F1F5F9;
    border-color: #E2E8F0;
    color: #475569;
  }

  .nx-mobile-attendance-alert--info {
    background: #E0F2FE;
    border-color: rgba(14, 165, 255, .30);
    color: #0B2742;
  }

  .nx-mobile-attendance-alert--success {
    background: rgba(22, 163, 74, .10);
    border-color: rgba(22, 163, 74, .18);
    color: #0F172A;
  }

  .nx-mobile-call-btn {
    width: 100%;
    border: 0;
    border-radius: 14px;
    padding: .82rem 1rem;
    font-weight: 800;
    font-size: 1rem;
    background: linear-gradient(135deg, #F4C430, #D9A900);
    color: #071B2F;
    box-shadow: 0 8px 18px rgba(217, 169, 0, .20);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .4rem;
  }

  .nx-mobile-call-btn:hover { filter: brightness(1.02); }

  .nx-mobile-call-btn--disabled,
  .nx-mobile-call-btn[disabled],
  .nx-mobile-call-btn.disabled {
    background: #E2E8F0;
    color: #64748B;
    box-shadow: none;
  }
}
