/**
 * Contratos v1 — Opção A + prazo/parcela + busca unificada + sort
 * Escopo: .contratos-v1 (tudo dentro do partial tab-contratos.php)
 * Tokens: Pacto DS v1.2 (--pacto-*)
 */

.contratos-v1{
  display:flex;
  flex-direction:column;
  background:var(--pacto-color-bg);
  min-height:100%;
}

/* Tabs (sub-abas internas do módulo Contratos) */
.contratos-v1 .cv-tabs{
  display:flex;
  gap:2px;
  padding:0 var(--pacto-space-5);
  background:var(--pacto-color-surface);
  border-bottom:1px solid var(--pacto-color-border);
}
.contratos-v1 .cv-tab{
  padding:var(--pacto-space-3) var(--pacto-space-4);
  font-size:14px;
  font-weight:600;
  color:var(--pacto-color-text-muted);
  border-bottom:2px solid transparent;
  background:none;
  border-left:0;
  border-right:0;
  border-top:0;
  cursor:pointer;
  transition:var(--pacto-transition-color);
}
.contratos-v1 .cv-tab:hover{
  color:var(--pacto-color-accent);
}
.contratos-v1 .cv-tab[aria-selected="true"]{
  color:var(--pacto-color-accent);
  border-bottom-color:var(--pacto-color-accent);
}
.contratos-v1 .cv-tab-badge{
  display:inline-block;
  margin-left:var(--pacto-space-2);
  padding:2px 8px;
  border-radius:var(--pacto-radius-pill);
  background:var(--pacto-tint-accent-active);
  color:var(--pacto-color-accent);
  font-size:11px;
  font-weight:700;
}
.contratos-v1 .cv-tab-badge.is-danger{
  background:var(--pacto-tint-danger);
  color:var(--pacto-color-danger);
}

/* KPIs */
.contratos-v1 .cv-kpis{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
  gap:var(--pacto-space-3);
  padding:var(--pacto-space-4) var(--pacto-space-5);
  background:var(--pacto-color-surface-alt);
  border-bottom:1px solid var(--pacto-color-border);
}
.contratos-v1 .cv-kpi{
  background:var(--pacto-color-surface);
  padding:var(--pacto-space-3) var(--pacto-space-4);
  border-radius:var(--pacto-radius-md);
  border:1px solid var(--pacto-color-border);
}
.contratos-v1 .cv-kpi-label{
  font-size:11px;
  color:var(--pacto-color-text-subtle);
  text-transform:uppercase;
  letter-spacing:.05em;
  font-weight:600;
}
.contratos-v1 .cv-kpi-value{
  font-size:20px;
  font-weight:700;
  color:var(--pacto-color-primary);
  margin-top:2px;
  font-variant-numeric:tabular-nums;
}
.contratos-v1 .cv-kpi-hint{
  font-size:12px;
  color:var(--pacto-color-text-muted);
  margin-top:2px;
}
.contratos-v1 .cv-kpi-hint.is-danger{color:var(--pacto-color-danger);}
.contratos-v1 .cv-kpi-hint.is-success{color:var(--pacto-color-success);}

/* Filter row */
.contratos-v1 .cv-filter-row{
  display:flex;
  flex-wrap:wrap;
  gap:var(--pacto-space-2);
  padding:var(--pacto-space-3) var(--pacto-space-5);
  background:var(--pacto-color-surface);
  border-bottom:1px solid var(--pacto-color-border);
  align-items:center;
}
.contratos-v1 .cv-filter-row select,
.contratos-v1 .cv-filter-row input{
  height:var(--pacto-control-height-sm);
  padding:0 var(--pacto-space-3);
  font-size:13px;
  font-family:inherit;
  color:var(--pacto-color-text);
  background:var(--pacto-color-surface);
  border:1px solid var(--pacto-color-border);
  border-radius:var(--pacto-radius-sm);
  min-width:140px;
}
.contratos-v1 .cv-filter-row input[type="search"]{
  min-width:280px;
}
.contratos-v1 .cv-filter-row .cv-spacer{flex:1;}

.contratos-v1 .cv-chip-row{display:flex;gap:4px;}
.contratos-v1 .cv-chip{
  padding:6px 12px;
  border-radius:var(--pacto-radius-pill);
  font-size:12px;
  font-weight:600;
  background:var(--pacto-color-surface-alt);
  border:1px solid var(--pacto-color-border);
  color:var(--pacto-color-text-muted);
  cursor:pointer;
  transition:var(--pacto-transition-color);
}
.contratos-v1 .cv-chip[aria-pressed="true"]{
  background:var(--pacto-color-accent);
  border-color:var(--pacto-color-accent);
  color:#fff;
}

/* Table */
.contratos-v1 .cv-content{
  padding:var(--pacto-space-4) var(--pacto-space-5);
  overflow-x:auto;
}
.contratos-v1 .cv-table{
  width:100%;
  border-collapse:collapse;
  background:var(--pacto-color-surface);
  border:1px solid var(--pacto-color-border);
  border-radius:var(--pacto-radius-md);
  overflow:hidden;
  box-shadow:var(--pacto-shadow-sm);
}
.contratos-v1 .cv-table th{
  text-align:left;
  padding:var(--pacto-space-2) var(--pacto-space-3);
  font-size:11px;
  font-weight:700;
  color:var(--pacto-color-text-subtle);
  background:var(--pacto-color-surface-alt);
  border-bottom:1px solid var(--pacto-color-border);
  text-transform:uppercase;
  letter-spacing:.04em;
  white-space:nowrap;
  position:sticky;
  top:0;
}
.contratos-v1 .cv-table th.cv-sortable{
  cursor:pointer;
  user-select:none;
}
.contratos-v1 .cv-table th.cv-sortable:hover{
  color:var(--pacto-color-accent);
  background:var(--pacto-tint-accent-hover);
}
.contratos-v1 .cv-sort-button{
  display:inline-flex;
  align-items:center;
  justify-content:flex-start;
  width:100%;
  padding:0;
  background:none;
  border:0;
  color:inherit;
  font:inherit;
  text-transform:inherit;
  letter-spacing:inherit;
  cursor:pointer;
}
.contratos-v1 .cv-sort-icon{
  display:inline-block;
  margin-left:4px;
  font-size:10px;
  opacity:.4;
  transition:var(--pacto-transition-color);
}
.contratos-v1 .cv-table th.cv-sort-asc .cv-sort-icon,
.contratos-v1 .cv-table th.cv-sort-desc .cv-sort-icon{
  opacity:1;
  color:var(--pacto-color-accent);
}
.contratos-v1 .cv-table td{
  padding:var(--pacto-space-2) var(--pacto-space-3);
  border-bottom:1px solid var(--pacto-color-border);
  font-size:13px;
  color:var(--pacto-color-text);
  vertical-align:middle;
  white-space:nowrap;
}
.contratos-v1 .cv-table tr:last-child td{border-bottom:none;}
.contratos-v1 .cv-table tr:hover td{background:var(--pacto-tint-accent-hover);}

.contratos-v1 .cv-client{font-weight:600;color:var(--pacto-color-primary);}
.contratos-v1 .cv-cpf,
.contratos-v1 .cv-protocol,
.contratos-v1 .cv-phone{
  font-family:ui-monospace,"SF Mono",Menlo,monospace;
  font-size:12px;
  color:var(--pacto-color-text-subtle);
}
.contratos-v1 .cv-value{
  font-weight:700;
  text-align:right;
  font-variant-numeric:tabular-nums;
}
.contratos-v1 .cv-parcela{
  font-variant-numeric:tabular-nums;
  text-align:right;
}
.contratos-v1 .cv-prazo{
  text-align:center;
  font-variant-numeric:tabular-nums;
}

/* Badges */
.contratos-v1 .cv-badge{
  display:inline-block;
  padding:2px 8px;
  border-radius:var(--pacto-radius-pill);
  font-size:11px;
  font-weight:600;
}
.contratos-v1 .cv-badge-neutral{background:var(--pacto-color-border);color:var(--pacto-color-text-muted);}
.contratos-v1 .cv-badge-info{background:var(--pacto-tint-accent-active);color:var(--pacto-color-accent);}
.contratos-v1 .cv-badge-warning{background:var(--pacto-tint-warning);color:var(--pacto-color-warning);}
.contratos-v1 .cv-badge-danger{background:var(--pacto-tint-danger);color:var(--pacto-color-danger);}
.contratos-v1 .cv-badge-success{background:var(--pacto-tint-success);color:var(--pacto-color-success);}
.contratos-v1 .cv-bank-pill{
  display:inline-block;
  padding:2px 8px;
  border-radius:var(--pacto-radius-sm);
  background:var(--pacto-color-surface-alt);
  border:1px solid var(--pacto-color-border);
  font-size:11px;
  font-weight:600;
  letter-spacing:.04em;
}

.contratos-v1 .cv-alert-icon{
  color:var(--pacto-color-warning);
  font-size:14px;
  margin-right:4px;
}
.contratos-v1 .cv-alert-icon.is-critical{color:var(--pacto-color-danger);}

/* Kebab menu */
.contratos-v1 .cv-kebab{position:relative;}
.contratos-v1 .cv-kebab-btn{
  width:28px;
  height:28px;
  border-radius:var(--pacto-radius-sm);
  color:var(--pacto-color-text-muted);
  font-size:16px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:none;
  border:0;
  cursor:pointer;
}
.contratos-v1 .cv-kebab-btn:hover{
  background:var(--pacto-tint-accent-hover);
  color:var(--pacto-color-accent);
}
.contratos-v1 .cv-kebab-menu{
  position:absolute;
  right:0;
  top:32px;
  min-width:220px;
  background:var(--pacto-color-surface);
  border:1px solid var(--pacto-color-border);
  border-radius:var(--pacto-radius-md);
  box-shadow:var(--pacto-shadow-lg);
  padding:4px;
  z-index:20;
  display:none;
}
.contratos-v1 .cv-kebab-menu[data-open="true"]{display:block;}
.contratos-v1 .cv-kebab-item{
  display:block;
  width:100%;
  text-align:left;
  padding:8px 12px;
  font-size:13px;
  color:var(--pacto-color-text);
  border-radius:var(--pacto-radius-sm);
  background:none;
  border:0;
  cursor:pointer;
}
.contratos-v1 .cv-kebab-item:hover{
  background:var(--pacto-tint-accent-hover);
  color:var(--pacto-color-accent);
}
.contratos-v1 .cv-kebab-item.is-danger:hover{
  background:var(--pacto-tint-danger);
  color:var(--pacto-color-danger);
}

.contratos-v1 .cv-empty{
  padding:var(--pacto-space-6);
  text-align:center;
  color:var(--pacto-color-text-subtle);
}

/* Export button cluster */
.contratos-v1 .cv-header-actions{
  display:flex;
  gap:var(--pacto-space-2);
  padding:var(--pacto-space-3) var(--pacto-space-5);
  justify-content:flex-end;
  background:var(--pacto-color-surface);
  border-bottom:1px solid var(--pacto-color-border);
}
.contratos-v1 .cv-btn-ghost{
  display:inline-flex;
  align-items:center;
  gap:var(--pacto-space-2);
  height:var(--pacto-control-height-sm);
  padding:0 var(--pacto-space-3);
  border-radius:var(--pacto-radius-md);
  font-size:13px;
  font-weight:500;
  background:none;
  border:1px solid transparent;
  color:var(--pacto-color-text-muted);
  cursor:pointer;
  transition:var(--pacto-transition-color);
}
.contratos-v1 .cv-btn-ghost:hover{
  background:var(--pacto-tint-accent-hover);
  color:var(--pacto-color-accent);
}

/* Responsivo */
@media (max-width:980px){
  .contratos-v1 .cv-kpis{grid-template-columns:repeat(2,1fr);}
  .contratos-v1 .cv-filter-row input[type="search"]{min-width:100%;flex:1;}
}
@media (max-width:600px){
  .contratos-v1 .cv-kpis{padding:var(--pacto-space-3);grid-template-columns:1fr 1fr;gap:var(--pacto-space-2);}
  .contratos-v1 .cv-content{padding:var(--pacto-space-3);}
  .contratos-v1 .cv-filter-row{padding:var(--pacto-space-2) var(--pacto-space-3);}
  .contratos-v1 .cv-filter-row select{min-width:0;flex:1 1 45%;}
  .contratos-v1 .cv-table td,
  .contratos-v1 .cv-table th{padding:var(--pacto-space-2);font-size:12px;}
}

.contratos-v1 button:focus-visible,
.contratos-v1 select:focus-visible,
.contratos-v1 input:focus-visible,
.contratos-v1 .chip:focus-visible {
  outline: var(--pacto-focus-ring, 2px solid #0066cc);
  outline-offset: 2px;
}
