/* Atlas Finance UI kit — layout styles (built on the DS tokens) */

.af-app{
  display:grid; grid-template-columns:var(--sidebar-w) 1fr;
  height:100vh; background:var(--bg-app); color:var(--text-body);
  font-family:var(--font-sans);
}

/* ---- Sidebar ---------------------------------------------------------- */
.af-sidebar{
  display:flex; flex-direction:column; gap:8px;
  background:var(--surface); border-right:1px solid var(--border);
  padding:18px 14px; overflow:hidden;
}
.af-brand{ padding:6px 8px 14px; }
.af-logo{ height:34px; }
.af-logo--dark{ display:none; }
[data-theme="dark"] .af-logo--light{ display:none; }
[data-theme="dark"] .af-logo--dark{ display:block; }

.af-nav{ display:flex; flex-direction:column; gap:2px; }
.af-nav__group{
  font-size:10.5px; font-weight:700; letter-spacing:.07em; text-transform:uppercase;
  color:var(--text-subtle); padding:10px 10px 6px;
}
.af-navitem{
  display:flex; align-items:center; gap:11px; width:100%; text-align:left;
  border:none; background:transparent; cursor:pointer;
  padding:9px 10px; border-radius:var(--radius-md);
  font-family:var(--font-sans); font-size:var(--text-base); font-weight:var(--fw-medium);
  color:var(--text-body); transition:background var(--dur-fast), color var(--dur-fast);
}
.af-navitem svg{ width:18px; height:18px; color:var(--text-muted); flex:none; }
.af-navitem:hover{ background:var(--bg-subtle); color:var(--text-strong); }
.af-navitem--active{ background:var(--primary-subtle); color:var(--primary-subtle-text); font-weight:var(--fw-semibold); }
.af-navitem--active svg{ color:var(--primary); }
.af-navbadge{ margin-left:auto; }

.af-sidefoot{ margin-top:auto; display:flex; flex-direction:column; gap:6px; }
.af-org{
  display:flex; align-items:center; gap:10px; padding:10px; margin-top:6px;
  border:1px solid var(--border); border-radius:var(--radius-md); background:var(--bg-app);
}
.af-org__mark{
  width:32px; height:32px; border-radius:var(--radius-sm); flex:none;
  display:flex; align-items:center; justify-content:center;
  background:var(--ink-900); color:#fff; font-weight:700; font-size:15px;
}
.af-org__txt{ display:flex; flex-direction:column; line-height:1.3; min-width:0; }
.af-org__txt b{ font-size:13px; color:var(--text-strong); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.af-org__txt span{ font-size:11px; color:var(--text-muted); }

/* ---- Main + topbar ---------------------------------------------------- */
.af-main{ display:flex; flex-direction:column; min-width:0; overflow:hidden; }
.af-topbar{
  display:flex; align-items:center; justify-content:space-between; gap:20px;
  padding:16px 28px; border-bottom:1px solid var(--border); background:var(--surface);
}
.af-title{ font-size:var(--text-h2); font-weight:700; letter-spacing:var(--tracking-tight); }
.af-subtitle{ margin:2px 0 0; font-size:var(--text-sm); color:var(--text-muted); }
.af-topbar__actions{ display:flex; align-items:center; gap:10px; }
.af-searchwrap{ position:relative; }
.af-search{
  display:flex; align-items:center; gap:8px; width:300px; height:38px; padding:0 12px;
  background:var(--bg-app); border:1px solid var(--border); border-radius:var(--radius-md);
}
.af-search svg{ width:17px; height:17px; color:var(--text-subtle); }
.af-search input{
  flex:1; min-width:0; border:none; outline:none; background:transparent;
  font-family:var(--font-sans); font-size:var(--text-sm); color:var(--text-strong);
}
.af-search input::placeholder{ color:var(--text-subtle); }
.af-searchpop{
  position:absolute; top:calc(100% + 8px); left:0; z-index:35; width:100%;
  background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-lg);
  box-shadow:var(--shadow-md); overflow:hidden;
}
.af-searchitem{
  width:100%; display:flex; align-items:center; justify-content:space-between; gap:12px;
  padding:12px 14px; background:transparent; border:none; cursor:pointer; text-align:left;
  border-bottom:1px solid var(--border);
}
.af-searchitem:last-child{ border-bottom:none; }
.af-searchitem:hover{ background:var(--bg-subtle); }
.af-searchitem__main{ display:flex; flex-direction:column; gap:2px; min-width:0; }
.af-searchitem__main b{ font-size:13px; color:var(--text-strong); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.af-searchitem__main em{ font-style:normal; font-size:11px; color:var(--text-muted); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.af-searchitem__meta{ font-size:11px; color:var(--text-subtle); text-transform:uppercase; letter-spacing:.04em; flex:none; }
.af-searchempty{ padding:14px; font-size:13px; color:var(--text-muted); }

.af-content{ padding:24px 28px 40px; overflow-y:auto; }
.af-stack{ display:flex; flex-direction:column; gap:18px; max-width:1180px; }

/* ---- KPIs + grids ----------------------------------------------------- */
.af-kpis{ display:grid; grid-template-columns:repeat(4,1fr); gap:14px; }
.af-grid2{ display:grid; grid-template-columns:1.5fr 1fr; gap:14px; align-items:start; }

/* ---- Chart ------------------------------------------------------------ */
.af-chart{ display:flex; flex-direction:column; gap:16px; }
.af-chart__legend{ display:flex; gap:16px; margin-top:8px; font-size:12px; color:var(--text-muted); }
.af-chart__legend span{ display:flex; align-items:center; gap:6px; }
.dot{ width:9px; height:9px; border-radius:3px; display:inline-block; }
.dot--in{ background:var(--positive); }
.dot--out{ background:var(--warning); }
.af-bars{ display:flex; align-items:flex-end; gap:14px; height:150px; }
.af-barcol{ flex:1; display:flex; flex-direction:column; align-items:center; gap:8px; height:100%; }
.af-barpair{ display:flex; align-items:flex-end; gap:5px; height:100%; width:100%; justify-content:center; }
.af-bar{ width:18px; border-radius:5px 5px 0 0; min-height:4px; transition:height var(--dur-slow) var(--ease-out); }
.af-bar--in{ background:var(--positive); }
.af-bar--out{ background:var(--warning); opacity:.85; }
.af-barlabel{ font-size:11px; color:var(--text-muted); font-family:var(--font-mono); }

/* ---- Goals ------------------------------------------------------------ */
.af-goals{ display:flex; flex-direction:column; gap:16px; }
.af-goalnote{
  display:flex; gap:9px; align-items:flex-start; padding:12px 14px; margin-top:2px;
  background:var(--warning-subtle); border-radius:var(--radius-md);
  font-size:var(--text-sm); color:var(--warning-text);
}
.af-goalnote svg{ width:17px; height:17px; flex:none; margin-top:1px; }
.af-goalnote b{ color:var(--warning-text); }

/* ---- Próximos vencimentos list --------------------------------------- */
.af-vlist{ display:flex; flex-direction:column; }
.af-vrow{
  display:grid; grid-template-columns:auto 1fr auto auto auto; align-items:center; gap:16px;
  padding:13px 0; border-bottom:1px solid var(--border);
}
.af-vrow:last-child{ border-bottom:none; }
.af-vrow__ic{
  width:34px; height:34px; border-radius:var(--radius-md); flex:none;
  display:flex; align-items:center; justify-content:center;
  background:var(--primary-subtle); color:var(--primary-subtle-text);
}
.af-vrow__ic svg{ width:17px; height:17px; }
.af-vrow__main{ display:flex; flex-direction:column; min-width:0; }
.af-vrow__main b{ font-size:14px; color:var(--text-strong); }
.af-vrow__main span{ font-size:12px; color:var(--text-muted); }
.af-vrow__date{ display:flex; flex-direction:column; align-items:flex-end; }
.af-vrow__day{ font-family:var(--font-mono); font-size:13px; color:var(--text-strong); font-weight:500; }
.af-vrow__rel{ font-size:11px; color:var(--text-muted); }

/* ---- Toolbar + tables ------------------------------------------------- */
/* Filtro de período (mês / tempo total) */
.af-period{
  display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap;
}
.af-segmented{
  display:inline-flex; align-items:center; gap:2px; padding:3px;
  background:var(--surface-sunken); border:1px solid var(--border); border-radius:var(--radius-lg);
}
.af-seg{
  display:inline-flex; align-items:center; gap:6px; cursor:pointer;
  border:none; background:transparent; color:var(--text-muted);
  font-family:var(--font-sans); font-size:var(--text-sm); font-weight:var(--fw-medium);
  padding:7px 14px; border-radius:var(--radius-md);
  transition:background var(--dur-fast), color var(--dur-fast);
}
.af-seg svg{ width:15px; height:15px; }
.af-seg:hover{ color:var(--text-strong); }
.af-seg--active{
  background:var(--primary); color:var(--text-on-brand); font-weight:var(--fw-semibold);
  box-shadow:var(--shadow-xs);
}
.af-seg--active:hover{ color:var(--text-on-brand); }
.af-period__total{ display:flex; align-items:baseline; gap:10px; }
.af-period__total-label{
  font-size:11px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--text-subtle);
}

/* Estado vazio da tabela */
.af-tableempty{
  display:flex; align-items:center; justify-content:center; gap:9px;
  padding:38px 18px; color:var(--text-muted); font-size:var(--text-sm);
}
.af-tableempty svg{ width:18px; height:18px; color:var(--text-subtle); }
.af-emptyrow:hover{ background:transparent !important; }

.af-toolbar{ display:flex; align-items:center; justify-content:space-between; gap:16px; }
.af-toolbar__right{ display:flex; gap:8px; }
.af-tablecard{
  background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-lg);
  box-shadow:var(--shadow-sm); overflow:hidden;
}
.af-table{ width:100%; border-collapse:collapse; }
.af-table thead th{
  text-align:left; font-size:11px; font-weight:600; letter-spacing:.04em; text-transform:uppercase;
  color:var(--text-muted); padding:13px 18px; background:var(--surface-sunken);
  border-bottom:1px solid var(--border); position:sticky; top:0;
}
.af-table th.r, .af-table td.r{ text-align:right; }
.af-table tbody td{ padding:13px 18px; border-bottom:1px solid var(--border); font-size:var(--text-sm); color:var(--text-body); vertical-align:middle; }
.af-table tbody tr:last-child td{ border-bottom:none; }
.af-table tbody tr:hover{ background:var(--bg-subtle); }
.af-table tfoot td{ padding:13px 18px; border-top:1px solid var(--border-strong); background:var(--surface-sunken); font-size:var(--text-sm); }
.af-foot-label{ font-weight:600; color:var(--text-muted); }

.af-cliente{ display:flex; align-items:center; gap:11px; }
.af-cliente b{ display:block; font-size:14px; color:var(--text-strong); }
.af-cliente span{ font-size:12px; color:var(--text-muted); }
.af-mono{ font-family:var(--font-mono); font-variant-numeric:tabular-nums; color:var(--text-strong); }
.af-id{ color:var(--text-muted); font-size:12px; }
.af-venc{ display:flex; flex-direction:column; gap:1px; }
.af-rel{ font-size:11px; color:var(--text-muted); }
.af-rel--late{ color:var(--negative-text); font-weight:600; }
.af-cat{ display:flex; align-items:center; gap:8px; }
.af-recflag{ display:inline-flex; color:var(--accent); }
.af-recflag svg{ width:15px; height:15px; }
.af-rowactions{ display:flex; align-items:center; gap:6px; justify-content:flex-end; }

/* ---- Kanban / Fluxo de trabalho -------------------------------------- */
.af-kanban{
  display:flex; gap:14px; align-items:flex-start;
  overflow-x:auto; padding-bottom:12px;
}
.af-kcol{
  width:256px; flex:none; display:flex; flex-direction:column;
  background:var(--surface-sunken); border:1px solid var(--border);
  border-radius:var(--radius-lg); transition:outline-color var(--dur-fast), background var(--dur-fast);
  outline:2px dashed transparent; outline-offset:-2px;
}
.af-kcol--over{ outline-color:var(--primary); background:var(--primary-subtle); }
.af-kcol__head{ display:flex; align-items:center; gap:8px; padding:13px 14px 10px; }
.af-kcol__dot{ width:9px; height:9px; border-radius:3px; flex:none; }
.af-kcol__label{
  font-size:11px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--text-strong);
}
.af-kcol__count{
  margin-left:auto; font-family:var(--font-mono); font-size:11px; color:var(--text-muted);
  background:var(--bg-app); border:1px solid var(--border); padding:1px 8px; border-radius:var(--radius-pill);
}
.af-kbody{ display:flex; flex-direction:column; gap:9px; padding:4px 10px 12px; min-height:48px; }

/* soma da coluna (negociações) */
.af-kcol__sum{ padding:0 14px 8px; font-family:var(--font-mono); font-size:12px; font-weight:600; color:var(--text-muted); }
.af-neg-valor{ font-family:var(--font-mono); font-size:14px; font-weight:700; color:var(--primary); margin-top:8px; }

.af-kcard{
  background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-md);
  padding:11px 12px; box-shadow:var(--shadow-xs); cursor:grab;
  transition:border-color var(--dur-fast), box-shadow var(--dur-fast);
}
.af-kcard:hover{ border-color:var(--border-strong); box-shadow:var(--shadow-sm); }
.af-kcard:active{ cursor:grabbing; }
.af-kcard--drag{ opacity:.4; }
.af-kcard b{ display:block; font-size:13.5px; font-weight:var(--fw-semibold); color:var(--text-strong); line-height:1.3; }
.af-kcard__cli{ display:block; font-size:12px; color:var(--text-muted); margin-top:2px; }
.af-kcard__foot{ display:flex; align-items:center; justify-content:space-between; margin-top:11px; }
.af-kcard__prazo{ display:inline-flex; align-items:center; gap:5px; font-family:var(--font-mono); font-size:11px; color:var(--text-muted); }
.af-kcard__prazo svg{ width:13px; height:13px; color:var(--text-subtle); }

.af-kadd{
  display:flex; align-items:center; gap:7px; width:100%; cursor:pointer;
  border:none; background:transparent; color:var(--text-muted);
  font-family:var(--font-sans); font-size:var(--text-sm); font-weight:var(--fw-medium);
  padding:8px 8px; border-radius:var(--radius-md); transition:background var(--dur-fast), color var(--dur-fast);
}
.af-kadd svg{ width:15px; height:15px; }
.af-kadd:hover{ background:var(--bg-subtle); color:var(--text-strong); }

.af-kcomposer{ display:flex; flex-direction:column; gap:8px; }
.af-kcomposer input{
  width:100%; box-sizing:border-box; padding:9px 11px;
  background:var(--surface); border:1px solid var(--border-focus); border-radius:var(--radius-md);
  outline:none; box-shadow:var(--ring);
  font-family:var(--font-sans); font-size:var(--text-sm); color:var(--text-strong);
}
.af-kcomposer__row{ display:flex; align-items:center; gap:8px; }
.af-kcomposer__add{
  cursor:pointer; border:none; background:var(--primary); color:var(--text-on-brand);
  font-family:var(--font-sans); font-size:var(--text-sm); font-weight:var(--fw-semibold);
  padding:7px 14px; border-radius:var(--radius-md);
}
.af-kcomposer__add:hover{ background:var(--primary-hover); }
.af-kcomposer__cancel{
  display:inline-flex; cursor:pointer; border:1px solid var(--border); background:var(--surface);
  color:var(--text-muted); padding:7px; border-radius:var(--radius-md);
}
.af-kcomposer__cancel svg{ width:15px; height:15px; }
.af-kcomposer__cancel:hover{ color:var(--text-strong); border-color:var(--border-strong); }

/* Barra de ações do quadro */
.af-kbar{ display:flex; }
.af-demanda-btn{
  display:inline-flex; align-items:center; gap:8px; cursor:pointer;
  background:var(--primary); color:var(--text-on-brand); border:none;
  font-family:var(--font-sans); font-size:var(--text-sm); font-weight:var(--fw-semibold);
  padding:10px 18px; border-radius:var(--radius-md); box-shadow:var(--shadow-xs);
  transition:background var(--dur-fast);
}
.af-demanda-btn svg{ width:16px; height:16px; }
.af-demanda-btn:hover{ background:var(--primary-hover); }

/* Cabeçalho do card: prioridade + tipo */
.af-kcard{ cursor:pointer; }
.af-kcard__top{ display:flex; align-items:center; justify-content:space-between; gap:8px; margin-bottom:8px; }
.af-kprio{
  font-size:10px; font-weight:700; letter-spacing:.04em; text-transform:uppercase;
  padding:2px 8px; border-radius:var(--radius-pill);
}
.af-kcard__tipo{ font-size:11px; color:var(--text-subtle); font-family:var(--font-mono); }

/* ---- Modal ------------------------------------------------------------ */
.af-scrim{ position:fixed; inset:0; background:rgba(11,31,58,.45); display:flex; align-items:center; justify-content:center; z-index:50; padding:20px; }
.af-modal--lg{ width:620px; display:flex; flex-direction:column; }
.af-modal--lg .af-modal__body{ }

/* Campos de formulário nativos (estilo Atlas) */
.af-field{ display:flex; flex-direction:column; gap:6px; position:relative; }
.af-field > span{
  font-size:12px; font-weight:var(--fw-semibold); color:var(--text-body);
}
.af-field input, .af-field textarea{
  width:100%; box-sizing:border-box; font-family:var(--font-sans); font-size:var(--text-sm);
  color:var(--text-strong); background:var(--surface);
  border:1px solid var(--border); border-radius:var(--radius-md); padding:9px 12px;
  outline:none; transition:border-color var(--dur-fast), box-shadow var(--dur-fast);
}
.af-field textarea{ resize:vertical; line-height:1.5; }
.af-field input::placeholder, .af-field textarea::placeholder{ color:var(--text-subtle); }
.af-field input:focus, .af-field textarea:focus{ border-color:var(--border-focus); box-shadow:var(--ring); }
.af-count{ align-self:flex-end; font-style:normal; font-family:var(--font-mono); font-size:10px; color:var(--text-subtle); }

/* Segmented de prioridade */
.af-prio-seg{ display:flex; gap:6px; }
.af-prio-opt{
  flex:1; cursor:pointer; background:var(--surface-sunken); color:var(--text-muted);
  border:1px solid var(--border); border-radius:var(--radius-md);
  font-family:var(--font-sans); font-size:12px; font-weight:var(--fw-medium); padding:8px 4px;
  transition:background var(--dur-fast), color var(--dur-fast);
}
.af-prio-opt:hover{ color:var(--text-strong); }
.af-prio-opt--active{ font-weight:var(--fw-semibold); }

/* Rodapé do modal com excluir à esquerda */
.af-modal__foot-right{ display:flex; gap:10px; margin-left:auto; }
.af-del-btn{
  display:inline-flex; align-items:center; gap:6px; cursor:pointer;
  background:transparent; border:1px solid var(--border); color:var(--negative-text);
  font-family:var(--font-sans); font-size:var(--text-sm); font-weight:var(--fw-medium);
  padding:8px 14px; border-radius:var(--radius-md); transition:background var(--dur-fast), border-color var(--dur-fast);
}
.af-del-btn svg{ width:15px; height:15px; }
.af-del-btn:hover{ background:var(--negative-subtle); border-color:var(--negative); }

.af-modal{
  width:480px; max-width:100%; display:flex; flex-direction:column; background:var(--surface); border-radius:var(--radius-xl);
  box-shadow:var(--shadow-xl); overflow:hidden;
}
.af-modal__head{ display:flex; align-items:center; justify-content:space-between; padding:14px 20px; border-bottom:1px solid var(--border); }
.af-modal__head h3{ font-size:var(--text-h3); }
.af-modal__body{ padding:16px 20px; display:flex; flex-direction:column; gap:11px; }
.af-modal__row{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:11px; }
.af-modal__row > *{ min-width:0; }
.af-modal__foot{ display:flex; justify-content:flex-end; gap:10px; align-items:center; padding:12px 20px; border-top:1px solid var(--border); background:var(--surface-sunken); }

/* Modal: fontes reduzidas */
.af-modal{ font-size:13px; }
.af-modal .af-modal__head h3{ font-size:15px; }
.af-modal .atlas-field__label,
.af-modal .atlas-select__label,
.af-modal .af-field > span{ font-size:11px; }
.af-modal .atlas-input__el,
.af-modal .atlas-input__affix,
.af-modal .atlas-select__el,
.af-modal .af-field input,
.af-modal .af-field textarea{ font-size:12px; }
.af-modal .atlas-input,
.af-modal .atlas-select__el{ height:34px; }
.af-modal .af-count{ font-size:10px; }

/* Hint de parcelamento (Nova cobrança) */
.af-parc-hint{
  display:flex; align-items:flex-start; gap:9px; padding:11px 13px;
  background:var(--primary-subtle); border:1px solid transparent; border-radius:var(--radius-md);
  font-size:var(--text-sm); color:var(--primary-subtle-text); line-height:1.45;
}
.af-parc-hint svg{ width:16px; height:16px; flex:none; margin-top:1px; }
.af-parc-hint b{ font-weight:var(--fw-semibold); }

/* ---- Clientes -------------------------------------------------------- */
.af-cli-grid{ display:grid; grid-template-columns:repeat(auto-fill, minmax(280px, 1fr)); gap:14px; }
.af-cli-card{
  text-align:left; cursor:pointer; font-family:var(--font-sans);
  background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-lg);
  padding:16px; display:flex; flex-direction:column; gap:14px;
  transition:border-color var(--dur-fast), box-shadow var(--dur-fast), transform var(--dur-fast);
}
.af-cli-card:hover{ border-color:var(--border-strong); box-shadow:var(--shadow-sm); transform:translateY(-1px); }
.af-cli-card__head{ display:flex; align-items:center; gap:11px; }
.af-cli-card__id{ min-width:0; flex:1; display:flex; flex-direction:column; gap:2px; }
.af-cli-card__id b{ font-size:14.5px; font-weight:var(--fw-semibold); color:var(--text-strong); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.af-cli-card__id span{ display:flex; align-items:center; gap:4px; font-size:12px; color:var(--text-muted); }
.af-cli-card__id span svg{ width:12px; height:12px; }
.af-cli-fat{ font-size:10px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; padding:3px 9px; border-radius:var(--radius-pill); flex:none; }
.af-cli-card__fin{ display:grid; grid-template-columns:1fr 1fr; gap:10px; padding-top:13px; border-top:1px solid var(--border); }
.af-cli-fin__lbl{ display:block; font-size:11px; color:var(--text-subtle); margin-bottom:3px; }
.af-fin-open [class*="money"], .af-fin-open{ color:var(--warning-text); }
.af-fin-won [class*="money"], .af-fin-won{ color:var(--positive-text); }

/* Detalhe do cliente */
.af-cli-detail__title{ display:flex; align-items:center; gap:12px; }
.af-cli-detail__title h3{ font-size:var(--text-h3); }
.af-cli-detail__sub{ display:flex; align-items:center; gap:5px; font-size:12px; color:var(--text-muted); margin-top:2px; }
.af-cli-detail__sub svg{ width:13px; height:13px; }
.af-cli-kpis{ display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.af-cli-kpi{ padding:16px; border-radius:var(--radius-lg); border:1px solid var(--border); display:flex; flex-direction:column; gap:6px; }
.af-cli-kpi--open{ background:var(--warning-subtle); border-color:transparent; }
.af-cli-kpi--won{ background:var(--positive-subtle); border-color:transparent; }
.af-cli-kpi__lbl{ display:flex; align-items:center; gap:6px; font-size:12px; font-weight:var(--fw-medium); color:var(--text-body); }
.af-cli-kpi__lbl svg{ width:15px; height:15px; }
.af-cli-kpi--open .af-cli-kpi__lbl{ color:var(--warning-text); }
.af-cli-kpi--won .af-cli-kpi__lbl{ color:var(--positive-text); }
.af-cli-kpi em{ font-style:normal; font-size:11px; color:var(--text-muted); }
.af-cli-info{ display:grid; grid-template-columns:1fr 1fr; gap:12px 18px; padding:16px; background:var(--surface-sunken); border-radius:var(--radius-md); }
.af-cli-info > div{ display:flex; flex-direction:column; gap:3px; }
.af-cli-info span{ font-size:11px; color:var(--text-subtle); text-transform:uppercase; letter-spacing:.04em; }
.af-cli-info b{ font-size:14px; font-weight:var(--fw-medium); color:var(--text-strong); }
.af-cli-hist{ display:flex; flex-direction:column; gap:2px; }
.af-cli-hist__title{ font-size:12px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; color:var(--text-subtle); margin-bottom:8px; }
.af-cli-hist__row{ display:grid; grid-template-columns:1fr auto auto; align-items:center; gap:14px; padding:9px 4px; border-bottom:1px solid var(--border); }
.af-cli-hist__row:last-child{ border-bottom:none; }
.af-cli-hist__proj{ display:flex; flex-direction:column; gap:2px; font-size:13.5px; color:var(--text-strong); font-weight:var(--fw-medium); }
.af-cli-hist__proj em{ font-style:normal; font-size:11px; color:var(--text-muted); font-weight:400; }

/* ---- Menu de linha (3 pontinhos) ------------------------------------- */
.af-rowmenu{ position:relative; display:inline-flex; }
.af-menu{
  position:absolute; right:0; top:calc(100% + 4px); z-index:20; min-width:150px;
  background:var(--surface-raised); border:1px solid var(--border); border-radius:var(--radius-md);
  box-shadow:var(--shadow-lg); padding:5px; display:flex; flex-direction:column; gap:1px;
}
.af-menu__item{
  display:flex; align-items:center; gap:9px; cursor:pointer; width:100%; text-align:left;
  border:none; background:transparent; color:var(--text-body);
  font-family:var(--font-sans); font-size:var(--text-sm); padding:8px 10px; border-radius:var(--radius-sm);
  transition:background var(--dur-fast), color var(--dur-fast);
}
.af-menu__item svg{ width:15px; height:15px; }
.af-menu__item:hover{ background:var(--bg-subtle); color:var(--text-strong); }
.af-menu__item--danger{ color:var(--negative-text); }
.af-menu__item--danger:hover{ background:var(--negative-subtle); color:var(--negative-text); }

/* Linha clicável */
.af-rowclick{ cursor:pointer; }

/* ---- Fluxo de caixa -------------------------------------------------- */
.af-kpis--3{ grid-template-columns:repeat(3, 1fr); }
.af-fc-chart{ display:flex; align-items:flex-end; gap:18px; height:180px; padding:8px 4px 0; }
.af-fc-col{ flex:1; display:flex; flex-direction:column; align-items:center; gap:8px; height:100%; }
.af-fc-bars{ flex:1; display:flex; align-items:flex-end; justify-content:center; gap:7px; width:100%; }
.af-fc-bar{ width:26px; border-radius:4px 4px 0 0; min-height:3px; transition:height var(--dur-base) var(--ease-out); }
.af-fc-bar--in{ background:var(--positive); }
.af-fc-bar--out{ background:var(--warning); }
.af-fc-mon{ font-size:11px; color:var(--text-muted); }
.af-fc-legend{ margin-top:14px; }
.af-table--fc td, .af-table--fc th{ white-space:nowrap; }

/* ---- Login ----------------------------------------------------------- */
.af-login{
  min-height:100vh; display:flex; align-items:center; justify-content:center;
  background:
    radial-gradient(900px 500px at 80% -10%, color-mix(in oklch, var(--primary) 22%, transparent), transparent 60%),
    var(--bg-app);
  font-family:var(--font-sans); padding:24px; box-sizing:border-box;
}
.af-login__panel{ width:100%; max-width:404px; display:flex; flex-direction:column; align-items:center; gap:22px; }
.af-login__logo{ height:40px; }
.af-login__card{
  width:100%; box-sizing:border-box; background:var(--surface); border:1px solid var(--border);
  border-radius:var(--radius-xl); padding:30px 28px; box-shadow:var(--shadow-lg);
  display:flex; flex-direction:column; gap:15px;
}
.af-login__card h1{ font-size:21px; font-weight:var(--fw-bold); color:var(--text-strong); }
.af-login__sub{ font-size:13px; color:var(--text-muted); margin-top:-10px; }
.af-pwd{ position:relative; display:flex; }
.af-pwd input{
  width:100%; box-sizing:border-box; font-family:var(--font-sans); font-size:var(--text-sm);
  color:var(--text-strong); background:var(--surface); border:1px solid var(--border);
  border-radius:var(--radius-md); padding:10px 40px 10px 12px; outline:none;
  transition:border-color var(--dur-fast), box-shadow var(--dur-fast);
}
.af-pwd input:focus{ border-color:var(--border-focus); box-shadow:var(--ring); }
.af-pwd__eye{
  position:absolute; right:6px; top:50%; transform:translateY(-50%);
  background:transparent; border:none; cursor:pointer; color:var(--text-subtle);
  display:flex; padding:6px; border-radius:var(--radius-sm);
}
.af-pwd__eye:hover{ color:var(--text-body); }
.af-pwd__eye svg{ width:17px; height:17px; }
.af-check{ display:flex; align-items:center; gap:9px; font-size:13px; color:var(--text-body); cursor:pointer; user-select:none; }
.af-check input{ width:16px; height:16px; accent-color:var(--primary); cursor:pointer; }
.af-login__submit{ width:100%; justify-content:center; margin-top:4px; }
.af-login__err{
  display:flex; align-items:center; gap:8px; font-size:13px;
  color:var(--negative-text); background:var(--negative-subtle);
  padding:9px 12px; border-radius:var(--radius-md);
}
.af-login__err svg{ width:16px; height:16px; flex:none; }
.af-login__hint{
  display:flex; align-items:flex-start; gap:8px; font-size:12px; color:var(--text-muted);
  background:var(--surface-sunken); border:1px solid var(--border); border-radius:var(--radius-md); padding:10px 12px;
}
.af-login__hint svg{ width:15px; height:15px; flex:none; margin-top:1px; }
.af-login__hint b{ color:var(--text-strong); font-weight:var(--fw-semibold); }
.af-login__foot{ font-size:12px; color:var(--text-subtle); }
.af-pwd-meter{ display:flex; align-items:center; gap:9px; margin-top:-4px; }
.af-pwd-meter__bar{ width:54px; height:5px; border-radius:var(--radius-pill); background:var(--border); flex:none; }
.af-pwd-meter__bar.is-weak{ background:var(--warning); }
.af-pwd-meter__bar.is-ok{ background:var(--positive); }
.af-pwd-meter em{ font-style:normal; font-size:11px; color:var(--text-muted); }

/* ---- Menu de usuário (topbar) --------------------------------------- */
.af-usermenu{ position:relative; }
.af-usermenu__btn{
  display:flex; align-items:center; gap:4px; cursor:pointer;
  background:transparent; border:none; padding:2px; border-radius:var(--radius-pill);
}
.af-usermenu__btn svg{ width:15px; height:15px; color:var(--text-subtle); }
.af-usermenu__pop{ position:absolute; right:0; top:calc(100% + 8px); z-index:40; min-width:184px; }
.af-usermenu__id{ padding:6px 10px 9px; margin-bottom:3px; border-bottom:1px solid var(--border); display:flex; flex-direction:column; gap:1px; }
.af-usermenu__id b{ font-size:13px; color:var(--text-strong); }
.af-usermenu__id span{ font-size:11px; color:var(--text-muted); }

/* Responsive niceties */
@media (max-width:1080px){
  .af-kpis{ grid-template-columns:repeat(2,1fr); }
  .af-grid2{ grid-template-columns:1fr; }
  .af-search{ width:200px; }
}


/* ===== Camada responsiva completa (tablet / mobile) ===== */
@media (max-width:1080px){
  .af-cli-kpis{ grid-template-columns:1fr; }
}
@media (max-width:768px){
  /* Shell: sidebar vira barra de navegacao horizontal no topo */
  .af-app{ grid-template-columns:1fr; grid-template-rows:auto 1fr; }
  .af-sidebar{
    flex-direction:row; align-items:center; gap:4px;
    border-right:none; border-bottom:1px solid var(--border);
    padding:8px 10px; overflow-x:auto; overflow-y:hidden;
  }
  .af-brand{ padding:0 6px 0 2px; flex:none; }
  .af-logo{ height:24px; }
  .af-nav{ flex-direction:row; gap:4px; }
  .af-nav__group{ display:none; }
  .af-navitem{ width:auto; white-space:nowrap; padding:7px 12px; }
  .af-navbadge{ margin-left:6px; }
  .af-sidefoot{ display:none; }

  /* Topbar quebra em linhas */
  .af-topbar{ flex-wrap:wrap; gap:10px; padding:12px 16px; }
  .af-topbar__actions{ flex-wrap:wrap; width:100%; justify-content:flex-start; gap:8px; }
  .af-search{ width:100%; order:-1; }
  .af-subtitle{ display:none; }

  /* Conteudo */
  .af-content{ padding:16px 14px 32px; }
  .af-stack{ max-width:none; }
  .af-kpis{ grid-template-columns:repeat(2,1fr); }

  /* Tabelas rolam na horizontal em vez de espremer */
  .af-tablecard{ overflow-x:auto; }
  .af-table{ min-width:620px; }

  /* Grids empilham */
  .af-modal__row{ grid-template-columns:1fr; }
  .af-cli-info{ grid-template-columns:1fr; }
  .af-toolbar{ flex-direction:column; align-items:stretch; gap:12px; }

  /* Modal ocupa quase toda a largura */
  .af-scrim{ padding:12px; }
  .af-modal--lg{ width:100%; }

  /* Kanban: coluna quase cheia, rola entre elas */
  .af-kcol{ width:82vw; max-width:300px; }
}
@media (max-width:480px){
  .af-kpis{ grid-template-columns:1fr; }
  .af-period{ gap:10px; }
  .af-vrow{ gap:10px; }
  .af-modal__head, .af-modal__body, .af-modal__foot{ padding-left:16px; padding-right:16px; }
}

/* Kanban ocupa a largura cheia do conteudo (sem o cap de 1180px das tabelas/dashboard) */
.af-stack:has(.af-kanban){ max-width:none; }
