
/* =============================================
   V19 CLEAN REFACTOR DESIGN SYSTEM
   Final override layer loaded last
   ============================================= */

:root{
  --ds-bg-main:#0b0e13;
  --ds-bg-shell:#0e1117;
  --ds-bg-card:#12161f;
  --ds-bg-card-2:#161b26;
  --ds-bg-input:#10141d;

  --ds-border:#1f2633;
  --ds-border-soft:#1a202c;
  --ds-border-strong:#2a3344;

  --ds-text:#e6eaf2;
  --ds-text-soft:#a7b0c0;
  --ds-text-muted:#6b7485;

  --ds-brand:#a10f14;
  --ds-brand-hover:#7f0b10;
  --ds-brand-soft:rgba(161,15,20,.12);
  --ds-brand-line:rgba(161,15,20,.22);

  --ds-success:#1f7a46;
  --ds-warning:#a15c07;
  --ds-danger:#b42318;

  --ds-radius-xs:10px;
  --ds-radius-sm:12px;
  --ds-radius-md:16px;
  --ds-radius-lg:20px;

  --ds-space-1:8px;
  --ds-space-2:12px;
  --ds-space-3:16px;
  --ds-space-4:20px;
  --ds-space-5:24px;
  --ds-space-6:32px;

  --ds-shadow-sm:0 6px 18px rgba(0,0,0,.22);
  --ds-shadow-md:0 12px 30px rgba(0,0,0,.35);
  --ds-shadow-lg:0 18px 46px rgba(0,0,0,.42);
}

/* -------- App foundation -------- */
html, body{
  background:var(--ds-bg-main) !important;
  color:var(--ds-text) !important;
}

body{
  font-family:Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  letter-spacing:-0.01em;
}

.admin-layout,
.portal-layout,
.main-content,
.section{
  background:transparent !important;
}

.main-content{
  max-width:1440px;
  margin:0 auto;
  padding:0 20px 28px;
}

.section{
  padding:28px 0 8px !important;
}

.section > * + *{
  margin-top:20px;
}

/* -------- Typography -------- */
h1, h2, h3, h4, h5, h6,
.card-title, .panel-title, .crud-title, .topbar-title,
.v10-native-title, .v10-panel-title, .v10-table-title, .v10-summary-title{
  color:var(--ds-text) !important;
  letter-spacing:-0.03em;
}

p, span, label, small,
.card-sub, .panel-subtitle, .crud-subtitle, .topbar-sub,
.v10-native-subtitle, .v10-panel-subtitle, .v10-table-subtitle{
  color:var(--ds-text-soft) !important;
}

/* -------- Sidebar -------- */
.sidebar{
  background:var(--ds-bg-shell) !important;
  border-right:1px solid var(--ds-border) !important;
  box-shadow:none !important;
  padding:18px 16px !important;
}

.sidebar-logo,
.sidebar-brand{
  margin-bottom:18px !important;
}

.logo-icon, .brand-mark, .logo-text-fallback{
  background:linear-gradient(180deg, rgba(161,15,20,.22), rgba(127,11,16,.14)) !important;
  border:1px solid rgba(161,15,20,.18) !important;
  box-shadow:none !important;
  color:#fff !important;
}

.logo-text,
.sidebar-brand strong{
  color:var(--ds-text) !important;
}

.logo-sub,
.sidebar-brand small{
  color:var(--ds-text-muted) !important;
}

.sidebar-user{
  background:var(--ds-bg-card) !important;
  border:1px solid var(--ds-border) !important;
  border-radius:var(--ds-radius-md) !important;
  padding:14px !important;
  box-shadow:var(--ds-shadow-sm) !important;
}

.user-avatar{
  background:linear-gradient(180deg,var(--ds-brand),var(--ds-brand-hover)) !important;
  color:#fff !important;
  box-shadow:none !important;
}

.nav-section-label{
  color:var(--ds-text-muted) !important;
  margin:22px 10px 10px !important;
  font-size:11px !important;
  letter-spacing:.12em !important;
  text-transform:uppercase !important;
}

.nav-item{
  min-height:44px !important;
  padding:0 14px !important;
  border-radius:12px !important;
  border:1px solid transparent !important;
  background:transparent !important;
  color:var(--ds-text-soft) !important;
  transition:background .18s ease, border-color .18s ease, transform .18s ease !important;
}

.nav-item:hover{
  background:rgba(255,255,255,.03) !important;
  border-color:var(--ds-border) !important;
  transform:none !important;
}

.nav-item.active{
  background:linear-gradient(180deg, rgba(161,15,20,.15), rgba(127,11,16,.10)) !important;
  border-color:var(--ds-brand-line) !important;
  color:#ffd8da !important;
  box-shadow:none !important;
}

.nav-item::before{
  display:none !important;
}

.nav-icon{
  color:#ffb6b9 !important;
}

.nav-badge{
  background:var(--ds-brand-soft) !important;
  border:1px solid var(--ds-brand-line) !important;
  color:#ffd1d4 !important;
  min-width:22px !important;
  height:22px !important;
}

/* -------- Topbar -------- */
.topbar{
  background:rgba(14,17,23,.92) !important;
  border:1px solid var(--ds-border) !important;
  border-radius:16px !important;
  box-shadow:var(--ds-shadow-sm) !important;
  padding:14px 18px !important;
  min-height:auto !important;
}

.topbar-title{
  font-size:28px !important;
  font-weight:800 !important;
  color:var(--ds-text) !important;
}

.topbar-sub{
  color:var(--ds-text-muted) !important;
  margin-top:4px;
}

/* -------- Unified surfaces -------- */
.card,
.panel-card,
.crud-card,
.entity-card,
.table-wrapper,
.modal,
.modal-content,
.modal-box,
.modal-panel,
.form-section,
.info-item,
.v10-panel,
.v10-hero,
.v10-stat,
.v10-summary-card,
.v10-finance-side,
.v10-hero-note,
.v10-mini-item,
.v10-table-card,
.v11-client-card,
.v11-ticket-list,
.v11-ticket-detail,
.v13-client-card,
.v13-profile-card,
.v13-feedback-item{
  background:linear-gradient(180deg, var(--ds-bg-card), #10151d) !important;
  border:1px solid var(--ds-border) !important;
  border-radius:var(--ds-radius-md) !important;
  color:var(--ds-text) !important;
  box-shadow:var(--ds-shadow-md) !important;
}

.card,
.panel-card,
.crud-card,
.entity-card,
.v10-panel,
.v10-hero,
.v10-finance-side,
.v10-table-card{
  padding:20px !important;
}

.card::after,
.panel-card::before,
.v10-panel::before,
.v10-hero::after,
.v10-table-card::before,
.modal::before,
.modal-content::before,
.modal-box::before,
.modal-panel::before{
  background:linear-gradient(90deg, transparent, rgba(161,15,20,.18), transparent) !important;
  opacity:.8 !important;
}

/* neutralize legacy force-light rules */
.v10-hero,
.v10-panel,
.v10-stat,
.v10-summary-card,
.v10-finance-side,
.v10-hero-note,
.v10-mini-item,
.v10-ticket-detail{
  color:var(--ds-text) !important;
}

/* -------- Tables -------- */
.table-wrapper{
  padding:0 !important;
  overflow:hidden !important;
}

.table-wrapper table{
  width:100%;
  background:transparent !important;
  border-collapse:separate;
  border-spacing:0;
}

.table-wrapper thead th{
  background:var(--ds-bg-card-2) !important;
  color:#cdb3b5 !important;
  border-bottom:1px solid var(--ds-border-strong) !important;
  padding:14px 16px !important;
  font-size:11px !important;
  letter-spacing:.10em !important;
  text-transform:uppercase !important;
}

.table-wrapper tbody td{
  color:var(--ds-text-soft) !important;
  padding:14px 16px !important;
  border-bottom:1px solid var(--ds-border-soft) !important;
  vertical-align:middle;
}

.table-wrapper tbody tr:hover{
  background:#131823 !important;
  box-shadow:inset 2px 0 0 rgba(161,15,20,.95) !important;
}

.table-wrapper tbody tr:last-child td{
  border-bottom:none !important;
}

td strong, .v13-client-title, .v11-ticket-header, .v11-client-card h4{
  color:var(--ds-text) !important;
}

/* -------- Forms -------- */
.form-group{
  display:flex;
  flex-direction:column;
  gap:8px;
}

.form-label{
  color:#c7cedd !important;
  font-size:12px !important;
  letter-spacing:.04em !important;
  text-transform:uppercase !important;
  font-weight:700 !important;
}

input, select, textarea,
.form-control,
.v10-input,
.v16-search input,
.v16-command-head input,
.v13-search input{
  width:100%;
  min-height:44px !important;
  background:var(--ds-bg-input) !important;
  border:1px solid var(--ds-border) !important;
  border-radius:12px !important;
  color:var(--ds-text) !important;
  padding:0 14px !important;
  box-shadow:none !important;
}

textarea, .form-control[multiple]{
  min-height:110px !important;
  padding-top:12px !important;
  padding-bottom:12px !important;
}

input::placeholder,
textarea::placeholder{
  color:var(--ds-text-muted) !important;
}

input:focus, select:focus, textarea:focus,
.form-control:focus, .v10-input:focus{
  outline:none !important;
  border-color:rgba(161,15,20,.28) !important;
  box-shadow:0 0 0 4px rgba(161,15,20,.10) !important;
  transform:none !important;
}

/* -------- Buttons -------- */
button, .btn, a.btn,
.v13-btn, .v10-btn, .v16-ghost, .v16-sidebar-toggle{
  border-radius:12px !important;
  min-height:40px !important;
  padding:0 14px !important;
  font-size:13px !important;
  font-weight:700 !important;
  transition:background .18s ease, border-color .18s ease, transform .18s ease, box-shadow .18s ease !important;
}

.btn-primary, .v13-btn-primary, .v10-btn-primary{
  background:linear-gradient(180deg, var(--ds-brand), var(--ds-brand-hover)) !important;
  border:1px solid rgba(161,15,20,.25) !important;
  color:#fff !important;
  box-shadow:0 8px 22px rgba(161,15,20,.22) !important;
}

.btn-primary:hover, .v13-btn-primary:hover, .v10-btn-primary:hover{
  filter:brightness(1.03);
}

.btn-outline, .btn-secondary, .btn-ghost, .v13-btn, .v10-btn, .v16-ghost{
  background:var(--ds-bg-input) !important;
  border:1px solid var(--ds-border) !important;
  color:var(--ds-text) !important;
  box-shadow:none !important;
}

.btn-warning{
  background:rgba(161,92,7,.16) !important;
  border:1px solid rgba(161,92,7,.22) !important;
  color:#ffd9a6 !important;
}

.btn-danger{
  background:rgba(180,35,24,.16) !important;
  border:1px solid rgba(180,35,24,.24) !important;
  color:#ffc7c1 !important;
}

button:hover, .btn:hover, a.btn:hover{
  transform:translateY(-1px);
}

/* -------- Badges / chips -------- */
.badge,
.status-badge,
.priority-badge,
.chip,
.tag,
.entity-meta,
.v13-chip,
.v13-badge,
.v10-pill,
.v10-chip,
.v11-ticket-meta{
  background:#0f141d !important;
  border:1px solid var(--ds-border) !important;
  color:var(--ds-text-soft) !important;
  border-radius:999px !important;
  box-shadow:none !important;
}

.badge-danger,
.status-danger,
.priority-urgente,
.v13-badge.status-open{
  background:rgba(180,35,24,.16) !important;
  color:#ffc7c1 !important;
  border-color:rgba(180,35,24,.22) !important;
}

.badge-warning,
.v13-badge.status-progress{
  background:rgba(161,92,7,.16) !important;
  color:#ffd9a6 !important;
  border-color:rgba(161,92,7,.22) !important;
}

.badge-approved,
.badge-success,
.v13-badge.status-done{
  background:rgba(31,122,70,.16) !important;
  color:#c8efda !important;
  border-color:rgba(31,122,70,.22) !important;
}

/* -------- Dashboard / panels -------- */
.stats-grid,
.v10-stats,
.v15-metrics{
  gap:16px !important;
}

.stat-card, .v10-stat, .v15-metric{
  min-height:144px !important;
  padding:18px !important;
  background:linear-gradient(180deg, #171c26, #121720) !important;
}

.stat-eyebrow, .v10-stat-label, .v15-metric h3{
  color:#bb9698 !important;
  font-size:10px !important;
  text-transform:uppercase !important;
  letter-spacing:.12em !important;
  font-weight:800 !important;
}

.stat-title, .v10-stat-title{
  color:var(--ds-text-soft) !important;
  font-size:14px !important;
  font-weight:700 !important;
}

.stat-value, .v10-stat-value, .v15-metric strong{
  color:var(--ds-text) !important;
  font-size:28px !important;
  font-weight:800 !important;
  letter-spacing:-.04em !important;
}

.is-positive{ color:#bfe9d1 !important; }
.is-negative{ color:#ffc2c5 !important; }

/* -------- Ticket chat -------- */
.chat-messages,
#chatMensagens{
  background:#10151d !important;
  border:1px solid var(--ds-border) !important;
  border-radius:16px !important;
  padding:14px !important;
  min-height:260px !important;
}

.v13-message, .v11-message{
  background:#121823 !important;
  border:1px solid var(--ds-border) !important;
  border-radius:14px !important;
  padding:12px 14px !important;
  box-shadow:none !important;
}

.v13-message.me{
  background:linear-gradient(180deg, rgba(161,15,20,.20), rgba(127,11,16,.14)) !important;
  border-color:rgba(161,15,20,.24) !important;
}

.v13-message-role{
  color:#ffccd0 !important;
}

.v13-message-text{
  color:var(--ds-text) !important;
}

.v13-message-time{
  color:var(--ds-text-muted) !important;
}

/* -------- Empty states -------- */
.empty-state,
.v13-empty,
.v18-empty,
.v13-placeholder{
  background:#10151d !important;
  border:1px dashed var(--ds-border-strong) !important;
  border-radius:16px !important;
  padding:22px !important;
  color:var(--ds-text-muted) !important;
}

.empty-state p,
.v13-empty,
.v18-empty{
  color:var(--ds-text-muted) !important;
}

.v18-empty strong{
  color:var(--ds-text) !important;
}

/* -------- Fix unsafe global overrides from older versions -------- */
[style*="background:#fff"],
[style*="background: #fff"],
[style*="background:white"],
[style*="background: white"]{
  background:var(--ds-bg-card) !important;
}

[style*="color:#fff"],
[style*="color: #fff"]{
  color:var(--ds-text) !important;
}

*[style*="margin-top:24px"]{
  margin-top:20px !important;
}

/* -------- Responsive -------- */
@media (max-width: 1080px){
  .main-content{
    padding:0 14px 24px;
  }
  .card,
  .panel-card,
  .crud-card,
  .entity-card,
  .v10-panel,
  .v10-hero,
  .v10-finance-side,
  .v10-table-card{
    padding:16px !important;
  }
}
