/* ============================================================================
   iSET · BRAND CORE — ponte comum (cliente six + admin blend)
   Consome os tokens (tokens.css carregado ANTES) e reveste os primitivos
   Bootstrap do WHMCS para bater com o UI Kit (admin-kit/kit.css). Só
   cor/tipografia/raio/sombra/borda. Dark onix automatico via html.theme-dark.
   ============================================================================ */

/* ---------- Base ---------- */
body{
  font-family:var(--font-sans);
  color:var(--text-hi);
  background:var(--bg);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
h1,h2,h3,h4,h5,.h1,.h2,.h3,.h4,.h5{
  font-family:var(--font-display);
  color:var(--heading);
  letter-spacing:var(--tracking-tight);
  font-weight:600;
}
a{ color:var(--accent); }
a:hover,a:focus{ color:var(--accent-hover); }
code,kbd,pre,samp{ font-family:var(--font-mono); }
hr{ border-color:var(--line); }
::selection{ background:var(--accent-tint-12); }

/* ---------- Foco acessivel (Klein) — igual ao kit (.input:focus) ---------- */
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,
textarea:focus-visible,.btn:focus-visible,.form-control:focus,.input:focus{
  outline:none;
  border-color:var(--accent);
  box-shadow:0 0 0 4px var(--focus-ring);
}

/* ---------- Botoes (kit .btn / .btn-klein / .btn-ghost) ---------- */
.btn{
  display:inline-flex; align-items:center; gap:8px;
  font-family:var(--font-sans);
  font-weight:600;
  border-radius:var(--r-sm);
  border:1px solid transparent;
  transition:all var(--dur) var(--ease);
}
.btn-primary,.btn-primary:focus{
  background:var(--grad-klein-cta);
  border-color:transparent;
  color:var(--on-accent);
  box-shadow:var(--sh-klein);
}
.btn-primary:hover,.btn-primary:active,.btn-primary.active,
.open>.dropdown-toggle.btn-primary{
  filter:brightness(1.08);
  transform:translateY(-1px);
  background:var(--grad-klein-cta);
  border-color:transparent;
  color:var(--on-accent);
}
.btn-success{ background:var(--success); border-color:transparent; color:#fff; }
.btn-success:hover,.btn-success:focus,.btn-success:active{ filter:brightness(1.06); color:#fff; transform:translateY(-1px); }
.btn-danger{ background:var(--danger); border-color:transparent; color:#fff; }
.btn-danger:hover,.btn-danger:focus,.btn-danger:active{ filter:brightness(1.06); color:#fff; }
.btn-info{ background:var(--info); border-color:transparent; color:#fff; }
.btn-warning{ background:var(--warning); border-color:transparent; color:#fff; }
.btn-default,.btn-secondary{
  background:var(--surface);
  border-color:var(--line-strong);
  color:var(--text-hi);
}
.btn-default:hover,.btn-default:focus,.btn-secondary:hover{
  background:var(--surface);
  border-color:var(--accent);
  color:var(--accent);
}
.btn-link{ color:var(--accent); box-shadow:none; }

/* ---------- Formularios (kit .input) ---------- */
.form-control,.input-group-addon,select.form-control,textarea.form-control,
input[type=text],input[type=email],input[type=password],input[type=number],
input[type=search],input[type=tel],input[type=url],select,textarea{
  font-family:var(--font-sans);
  color:var(--text-hi);
  background:var(--surface);
  border:1px solid var(--line-strong);
  border-radius:var(--r-sm);
  box-shadow:none;
}
.form-control::placeholder,input::placeholder{ color:var(--text-low); }
.input-group-addon{ background:var(--surface-2); color:var(--text-mid); border-color:var(--line-strong); }
label,.control-label{ color:var(--text-hi); font-weight:600; }

/* ---------- Cards / Panels ---------- */
.panel,.card,.well{
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:var(--r-lg);
  box-shadow:var(--sh-card);
}
.panel-heading,.card-header{
  background:transparent;
  border-bottom:1px solid var(--line);
  color:var(--heading);
  font-family:var(--font-display);
  font-weight:600;
  border-top-left-radius:var(--r-lg);
  border-top-right-radius:var(--r-lg);
}
.panel-footer,.card-footer{ background:var(--surface-2); border-top:1px solid var(--line); }
.panel-default>.panel-heading{ color:var(--heading); }
.panel-title{ font-family:var(--font-display); }

/* ---------- Tabelas (kit table.dt, em escala legivel do WHMCS) ---------- */
.table,.datatable{ color:var(--text-hi); background:var(--surface); }
.table>thead>tr>th,.datatable th{
  background:var(--surface-2)!important;
  color:var(--text-mid)!important;
  font-family:var(--font-sans);
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.03em;
  font-size:.8rem;
  padding:11px 12px!important;
  border-bottom:2px solid var(--line-strong)!important;
}
.datatable th a,.datatable th a:visited,.table>thead>tr>th a{ color:var(--text-mid)!important; }
.table>tbody>tr>td,.table>tbody>tr>th,.datatable td{
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  color:var(--text-mid);
}
.table-hover>tbody>tr:hover,.datatable tbody tr:hover{ background:var(--accent-tint-04); }
.table-striped>tbody>tr:nth-of-type(odd){ background:var(--surface-2); }

/* ---------- Labels / Badges (kit .badge-*) — tintados, nao chapados ---------- */
.label,.badge{
  font-weight:600; font-size:.7rem; border-radius:var(--r-pill);
  font-family:var(--font-sans); padding:.28em .8em; letter-spacing:.01em;
}
.label-default,.badge{ background:var(--surface-2); color:var(--text-mid); border:1px solid var(--line); }
.label-primary{ background:var(--accent-tint-08); color:var(--accent); }
.label-success{ background:var(--success-bg); color:var(--success); }
.label-info{ background:var(--info-bg); color:var(--info); }
.label-warning{ background:var(--warning-bg); color:var(--warning); }
.label-danger{ background:var(--danger-bg); color:var(--danger); }

/* ---------- Alerts ---------- */
.alert{ border-radius:var(--r-md); border:1px solid transparent; }
.alert-success{ background:var(--success-bg); border-color:rgba(16,185,129,.25); color:var(--success); }
.alert-info{ background:var(--info-bg); border-color:var(--info-border); color:var(--info); }
.alert-warning{ background:var(--warning-bg); border-color:var(--warning-border); color:var(--warning); }
.alert-danger{ background:var(--danger-bg); border-color:rgba(239,68,68,.25); color:var(--danger); }

/* ---------- Navegacao auxiliar ---------- */
.pagination>li>a,.pagination>li>span{ color:var(--accent); background:var(--surface); border-color:var(--line); }
.pagination>.active>a,.pagination>.active>a:hover,.pagination>.active>span{
  background:var(--accent); border-color:var(--accent); color:var(--on-accent);
}
.breadcrumb{ background:transparent; }
.breadcrumb>li>a{ color:var(--accent); }
.breadcrumb>.active{ color:var(--text-mid); }
.nav-tabs{ border-bottom:1px solid var(--line); }
.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover{
  color:var(--accent); border-color:var(--line) var(--line) transparent; background:var(--surface);
}
.nav-tabs>li>a:hover{ border-color:var(--surface-2) var(--surface-2) var(--line); }

/* ---------- Progress / dropdown / modal ---------- */
.progress{ background:var(--surface-2); border-radius:var(--r-pill); }
.progress-bar{ background:var(--accent); }
.dropdown-menu{
  background:var(--surface); border:1px solid var(--line);
  border-radius:var(--r-md); box-shadow:var(--sh-lift);
}
.dropdown-menu>li>a{ color:var(--text-hi); }
.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{ background:var(--accent-tint-08); color:var(--accent); }
.dropdown-menu .divider{ background:var(--line); }
.modal-content{ background:var(--surface); border:1px solid var(--line); border-radius:var(--r-lg); box-shadow:var(--sh-lift); }
.modal-header,.modal-footer{ border-color:var(--line); }
.modal-backdrop.in{ opacity:1; background:var(--overlay); }

/* ---------- Botao de toggle claro/onix ---------- */
.iset-theme-toggle{
  cursor:pointer; border:none; background:transparent;
  color:inherit; font-size:1rem; line-height:1; padding:0 6px;
}
.iset-theme-toggle:hover{ color:var(--accent); }
