/* ============================================================
   HIDRONET — o que a plataforma de parceiros tem e o portal não
   Carrega DEPOIS das três folhas do design system (tokens, portal,
   portal-v2), que são CÓPIAS IDÊNTICAS das do Portal Externo — é
   aqui, e só aqui, que a HidroNet acrescenta peças suas.

   Regra herdada do portal: só se usa o que os tokens definem. As
   poucas cores de estado que aparecem à mão são as que o próprio
   design system já usa (flash de sucesso, ícone de erro, chip de
   rascunho) — não se inventa nenhuma.
   ============================================================ */

/* ---------- Seletor de língua (PT · EN · FR) ---------- */
.hn-lang{display:inline-flex;align-items:center;gap:2px;font-size:.76rem;font-weight:var(--fw-semibold);letter-spacing:.04em}
.hn-lang a{padding:3px 5px;border-radius:6px;color:var(--text-caption)}
.hn-lang a:hover{color:var(--primary)}
.hn-lang a.is-active{color:var(--accent-on-soft);background:var(--accent-soft)}
.hn-lang--on-dark a{color:var(--on-navy-meta)}
.hn-lang--on-dark a:hover{color:#fff}
.hn-lang--on-dark a.is-active{color:var(--accent);background:var(--on-dark-accent-bg)}

/* Ligações da conta no pé da sidebar */
.hn-sidebar__conta{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--space-4);padding:0 var(--space-3)}
.hn-sidebar__conta-links{display:flex;gap:var(--space-6);font-size:.74rem;white-space:nowrap}
.hn-sidebar__conta-links a{color:var(--on-navy-meta)}
.hn-sidebar__conta-links a:hover{color:#fff}
.hs-sidebar__note-txt strong{color:var(--accent);font-weight:var(--fw-semibold)}

/* A sidebar acompanha o scroll: o catálogo e as propostas são páginas longas
   e o pé da sidebar (tabela, conta, sair) não pode ficar lá no fundo. */
.hs-sidebar{position:sticky;top:0;height:100vh;overflow-y:auto}
/* A coluna da sidebar continua navy por baixo dela quando a página é longa. */
.hs-console{background:var(--surface-dark)}

/* Rodapé discreto dentro da consola */
.hn-consola-pe{
  display:flex;justify-content:space-between;gap:var(--space-7);flex-wrap:wrap;
  margin-top:auto;padding:var(--space-9) var(--space-14);
  border-top:1px solid var(--rule);font-size:.76rem;color:var(--text-caption);
}
.hn-consola-pe__links{display:flex;gap:var(--space-8)}
.hn-consola-pe a{color:var(--text-caption)}
.hn-consola-pe a:hover{color:var(--primary)}

/* ---------- Estados das propostas ---------- */
.hn-chip--rascunho{color:#8a6d18;background:#fdf5e3}
.hn-chip--enviada{color:#4a3fb0;background:#eeeefb}
.hn-chip--ganha{color:#1e7a52;background:#e4f5ec}
.hn-chip--perdida{color:#b3261e;background:#fbeae8}
.hn-chip--expirada{color:var(--text-caption);background:var(--bg-soft);border:1px solid var(--rule-strong)}
/* Comissões dos agentes (2026-10-19): o estado de cada venda e de cada fatura */
.hn-chip--por_confirmar,.hn-chip--recebida{color:#8a6d18;background:#fdf5e3}
.hn-chip--a_faturar{color:var(--cyan-text);background:var(--cyan-bg)}
.hn-chip--faturada{color:#4a3fb0;background:#eeeefb}
.hn-chip--paga{color:#1e7a52;background:#e4f5ec}
.hn-chip--nao_conta,.hn-chip--devolvida{color:#b3261e;background:#fbeae8}

/* Indicadores com unidade pequena ao lado (€, %) */
.hs-stat__value small{font-size:.9rem;font-weight:var(--fw-semibold);color:var(--text-body);margin-left:2px}
.hn-stat__sub{font-size:.72rem;color:var(--text-caption);margin-top:6px}
.hs-stat--accent{background:var(--accent-soft);border-color:rgba(41,184,216,.25)}
.hs-stat--accent .hs-stat__value{color:var(--accent-on-soft)}
.hs-stat--accent .hs-stat__label{color:var(--accent-on-soft)}
.hs-stat-row--4{grid-template-columns:repeat(4,minmax(0,1fr))}

/* Validade da proposta no cartão «a acompanhar» */
.hn-validade{display:flex;align-items:center;gap:var(--space-4)}
.hn-validade .hs-progress{flex:1;display:block}
.hn-validade__txt{font-size:.74rem;font-weight:var(--fw-semibold);color:var(--text-body);white-space:nowrap}
.hn-valor{font-size:1.02rem;font-weight:var(--fw-bold);color:var(--primary);white-space:nowrap}

/* Tabela de propostas: mais colunas e acções de estado */
.hn-prop-table .hs-dim-table__head,
.hn-prop-table .hs-dim-table__row{grid-template-columns:1.7fr 1.2fr .95fr .75fr .7fr 290px}
.hn-prop-table--compact .hs-dim-table__head,
.hn-prop-table--compact .hs-dim-table__row{grid-template-columns:1.7fr 1.4fr .9fr .8fr 70px}
.hn-prop-table .hs-dim-table__obra,.hn-prop-table .hs-dim-table__ref{display:block}
.hn-num{font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}
.hs-dim-table__head .hn-num{text-align:right}
.hn-acoes{display:flex;gap:var(--space-6);justify-content:flex-end;flex-wrap:nowrap;align-items:center;white-space:nowrap}
.hn-acoes a,.hn-acoes button{font-size:.78rem;font-weight:var(--fw-semibold)}
.hn-link-btn{border:none;background:none;padding:0;cursor:pointer;color:var(--link)}
.hn-estado-sel{width:auto;max-width:160px;padding:4px 8px 4px 10px;border-radius:var(--radius-pill);font-size:.74rem;font-weight:var(--fw-semibold);color:var(--primary);border-color:var(--rule-pill);cursor:pointer}
.hn-sub{display:block;font-size:.72rem;color:var(--text-caption);font-weight:var(--fw-regular)}
.hn-link-btn:hover{color:var(--link-hover)}

/* Aviso em linha (substitui os fundos amarelos à mão) */
.hn-aviso{
  padding:13px var(--space-9);border-radius:var(--radius-thumb);
  background:var(--surface-card);border:1px solid var(--rule);border-left:4px solid var(--accent);
  box-shadow:var(--shadow-sm);font-size:.88rem;color:var(--text-body);margin-bottom:var(--space-8);
}
.hn-aviso strong{color:var(--text)}
.hn-aviso--warn{border-left-color:#b7791f}

/* Cartão «a sua tabela» / «a sua comissão» da coluna lateral */
.hn-tabela-card{padding:24px 22px}
.hn-tabela-card__nome{font-size:1.05rem;font-weight:var(--fw-bold);letter-spacing:var(--ls-card);margin:6px 0 4px}
.hn-kv{display:flex;flex-direction:column;margin:14px 0 18px}
.hn-kv div{display:flex;justify-content:space-between;gap:var(--space-5);padding:8px 0;border-bottom:1px solid var(--rule-row);font-size:.82rem}
.hn-kv div:last-child{border-bottom:none}
.hn-kv dt{color:var(--text-body)}
.hn-kv dd{font-weight:var(--fw-semibold);color:var(--text);text-align:right}

/* ---------- Catálogo ---------- */
.hn-cat-filtros{display:flex;gap:var(--space-5);align-items:center;flex-wrap:wrap;margin-bottom:var(--space-11)}
.hn-cat-filtros .hs-filter .n{opacity:.6;font-weight:var(--fw-medium);margin-left:4px}
.hn-cat-filtros .hs-select{padding:7px 14px;border-radius:var(--radius-pill);font-size:.78rem;margin-left:auto}
.hn-legenda{display:flex;gap:var(--space-8);flex-wrap:wrap;font-size:.76rem;color:var(--text-caption)}
.hn-legenda b{color:var(--text-chip);font-weight:var(--fw-semibold)}

.hn-cat-sec{margin-bottom:var(--space-17)}
.hn-cat-sec__head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-7);margin-bottom:var(--space-9);padding-bottom:var(--space-6);border-bottom:1px solid var(--rule-strong)}
.hn-cat-sec__titulo{font-size:.8rem;color:var(--text-chip)}
.hn-pag{margin-bottom:var(--space-14)}
.hn-pag__cab{display:flex;gap:var(--space-11);align-items:flex-start;justify-content:space-between;flex-wrap:wrap;margin-bottom:var(--space-7)}
.hn-pag__titulo{display:flex;align-items:center;gap:var(--space-5);flex-wrap:wrap;font-size:1.3rem;font-weight:var(--fw-bold);letter-spacing:var(--ls-card)}
.hn-pag__texto{max-width:640px;margin-top:6px}
.hn-galeria{display:flex;gap:var(--space-4);flex-wrap:wrap}
.hn-galeria img,.hn-figura img{
  max-height:120px;max-width:200px;border-radius:var(--radius-thumb);
  border:1px solid var(--rule);background:#eef0f4;object-fit:contain;
}
.hn-figura{margin-top:var(--space-5)}
.hn-figura img{max-height:220px;max-width:100%}
.hn-bloco{margin:var(--space-7) 0 var(--space-11)}
.hn-bloco__titulo{margin-bottom:var(--space-4)}
.hn-bloco__nota{font-size:.78rem;color:var(--text-caption);margin-top:var(--space-4)}

/* Tabela de preços — o mesmo desenho da .hs-table, mas <table> semântica
   (as colunas de specs variam de bloco para bloco). */
.hn-tabela{background:var(--surface-card);border:1px solid var(--rule);border-radius:var(--radius-table);overflow-x:auto;box-shadow:var(--shadow-sm)}
.hn-tabela table{width:100%;border-collapse:collapse}
.hn-tabela th{
  padding:13px 16px;background:var(--bg-card-soft);border-bottom:1px solid var(--rule);
  font-size:.68rem;font-weight:var(--fw-bold);letter-spacing:var(--ls-meta);
  text-transform:uppercase;color:var(--text-caption);text-align:left;white-space:nowrap;
}
.hn-tabela td{padding:14px 16px;border-bottom:1px solid var(--rule-row);font-size:.84rem;color:var(--text-body);vertical-align:middle}
.hn-tabela tbody tr:last-child td{border-bottom:none}
.hn-tabela tbody tr:not(.sim-row):hover{background:var(--row-hover)}
.hn-tabela .num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.hn-tabela th.num{text-align:right}
.hn-tabela td.prod{min-width:230px}
.hn-prod__nome{font-size:.9rem;font-weight:var(--fw-semibold);color:var(--text);display:flex;align-items:center;gap:var(--space-4);flex-wrap:wrap}
.hn-prod__ref{font-size:.72rem;color:var(--text-caption);margin-top:3px;display:flex;gap:var(--space-5);align-items:center;letter-spacing:.02em}
.hn-prod__ref a{font-weight:var(--fw-semibold)}
.hn-prod__mini{font-size:.78rem;color:var(--text-body);margin-top:4px;max-width:420px}
.hn-preco{font-weight:var(--fw-bold);color:var(--primary)}
.hn-pvp{color:var(--text-chip)}
.hn-desc{color:var(--accent-on-soft);font-weight:var(--fw-semibold)}
.hn-comissao,.hn-tabela .hn-comissao{font-weight:var(--fw-bold);color:var(--accent-on-soft)}
.hn-tabela .hs-pill{padding:3px 9px;font-size:.64rem}
.hn-tabela tr.sim-row td{background:var(--bg-card-soft);padding:6px 16px 18px}

/* Painel «Simular» do simulador comercial dentro do catálogo. O módulo
   (simulador_comercial.js) injeta a sua própria folha com as cores antigas;
   estas regras têm mais especificidade e põem-no no design system sem
   mexer no módulo, que os configuradores também usam. */
.hn-cat .sim-qtd{padding:12px 0 0;font-size:.82rem;font-weight:var(--fw-semibold);color:var(--text-chip)}
.hn-cat .sim-qtd input{width:80px;margin-left:8px;padding:6px 10px;border:1px solid var(--rule-strong);border-radius:var(--radius-input);background:var(--bg-card)}
.hn-cat .hsim{border:1px solid var(--rule);border-radius:var(--radius-panel);background:var(--surface-card);padding:18px 20px;font-size:.86rem;box-shadow:var(--shadow-sm)}
.hn-cat .hsim h4{color:var(--text-caption);font-size:.7rem;letter-spacing:var(--ls-eyebrow);font-weight:var(--fw-semibold)}
.hn-cat .hsim .hsim-slider label,.hn-cat .hsim .hsim-trp label{color:var(--text-chip)}
.hn-cat .hsim input[type=range]{accent-color:var(--accent)}
.hn-cat .hsim .hsim-num,.hn-cat .hsim .hsim-cp,.hn-cat .hsim .hsim-ctx,.hn-cat .hsim .hsim-txt-out{border-color:var(--rule-strong);border-radius:var(--radius-input)}
.hn-cat .hsim .hsim-linhas .k{color:var(--text-body)}
.hn-cat .hsim .hsim-linhas .v.destaque{color:var(--primary)}
.hn-cat .hsim .hsim-nota,.hn-cat .hsim .hsim-max{color:var(--text-caption)}
.hn-cat .hsim .hsim-trp,.hn-cat .hsim .hsim-prop{border-top-color:var(--rule)}
.hn-cat .hsim .hsim-btn{background:var(--bg-card);border:1px solid var(--rule-pill);color:var(--primary);border-radius:var(--radius-pill);padding:5px 14px;font-weight:var(--fw-semibold)}
.hn-cat .hsim .hsim-btn:hover{background:var(--bg-card);border-color:var(--primary)}
.hn-cat .hsim .hsim-btn2{background:var(--primary);border-color:var(--primary);border-radius:var(--radius-pill);padding:8px 20px}
.hn-cat .hsim .hsim-btn2:hover{background:var(--primary-hover);border-color:var(--primary-hover)}
.hn-cat .hsim .hsim-docs .dt,.hn-cat .hsim .hsim-txt .dt{color:var(--text-caption)}
.hn-cat .hsim .hsim-docs a{color:var(--link)}

/* Simulador de comissão da tabela inteira (comissionista com regra) */
.hn-simcom{padding:20px 24px;margin-bottom:var(--space-11)}
.hn-simcom__linha{display:flex;align-items:center;gap:var(--space-7);flex-wrap:wrap;margin-top:var(--space-5)}
.hn-simcom__linha label{font-size:.86rem;font-weight:var(--fw-semibold);color:var(--text-chip)}
.hn-simcom input[type=range]{flex:1;min-width:180px;accent-color:var(--accent)}
.hn-simcom input[type=number]{width:84px;padding:7px 10px;border:1px solid var(--rule-strong);border-radius:var(--radius-input);text-align:right}
.hn-simcom__max{font-size:.76rem;color:var(--text-caption)}
.hn-simcom__atual{margin-left:auto}

/* ---------- Comissões (comissionista) ---------- */
.hn-calc{padding:26px 28px;display:flex;flex-direction:column;gap:var(--space-9)}
.hn-calc__entradas{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:var(--space-11);align-items:end}
.hn-calc__euro{position:relative}
.hn-calc__euro input{width:100%;padding-right:34px;font-weight:var(--fw-semibold)}
.hn-calc__euro span{position:absolute;right:14px;top:50%;transform:translateY(-50%);color:var(--text-caption);font-weight:var(--fw-semibold)}
.hn-calc__desc input[type=range]{flex:1;min-width:160px;accent-color:var(--accent)}
.hn-calc__desc input[type=number]{width:84px;padding:9px 10px;border:1px solid var(--rule-strong);border-radius:var(--radius-input);text-align:right}
.hn-calc__saidas{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-5);padding:var(--space-9) 0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.hn-calc__saidas>div{display:flex;flex-direction:column;gap:6px}
.hn-calc__num{font-size:1.5rem;font-weight:var(--fw-bold);letter-spacing:var(--ls-display);color:var(--text)}
.hn-calc__hero{padding:12px 16px;margin:-12px 0;border-radius:var(--radius-thumb);background:var(--accent-soft)}
.hn-calc__hero .hs-label{color:var(--accent-on-soft)}
.hn-calc__num--hero{font-size:2rem;color:var(--accent-on-soft)}
.hn-com-table .hs-dim-table__head,
.hn-com-table .hs-dim-table__row{grid-template-columns:1.8fr 1.35fr .85fr .6fr .8fr .75fr}
.hn-com-table .hs-dim-table__obra,.hn-com-table .hs-dim-table__ref{display:block}
.hn-lista-simples{display:flex;flex-direction:column;gap:10px;padding-left:18px;font-size:.84rem;line-height:var(--lh-prose);color:var(--text-body)}

/* ---------- Propostas recebidas da Hidrostation (2026-10-13) ---------- */
.hs-sidebar__badge.hn-badge--nova{color:var(--accent);font-weight:var(--fw-bold)}
.hn-recebidas{margin-bottom:var(--space-11)}
.hn-recebidas .hs-dim-table__head,
.hn-recebidas .hs-dim-table__row{grid-template-columns:1.9fr .9fr .8fr .7fr 180px}
.hn-recebidas .hs-dim-table__obra,.hn-recebidas .hs-dim-table__ref{display:block}
.hn-recebidas .is-nova{background:var(--accent-soft)}
.hn-prop-table .is-nova{background:var(--accent-soft)}
.hn-componentes{margin:6px 0 0 16px;font-size:.74rem;color:var(--text-caption)}
.hn-descritivo{padding:18px 22px;margin-bottom:var(--space-6);white-space:pre-wrap;font-size:.9rem;line-height:var(--lh-prose);color:var(--text-body);overflow-wrap:anywhere}
.hn-recebida-texto{padding:18px 22px;margin-bottom:var(--space-11)}
.hn-recebida-texto summary{cursor:pointer;font-weight:var(--fw-semibold);color:var(--text-chip)}
.hn-recebida-texto__corpo{white-space:pre-wrap;font-family:inherit;font-size:.86rem;line-height:var(--lh-prose);color:var(--text-body);margin:14px 0}
.hn-rec-cliente{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-7)}

/* ---------- Comissões dos agentes: vendas por mês e faturas (2026-10-19) ---------- */
.hn-vendas-mes{margin-bottom:var(--space-11)}
.hn-vendas-mes__cab{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-5);flex-wrap:wrap;margin-bottom:var(--space-5)}
.hn-vendas-mes__resumo{font-size:.8rem;color:var(--text-caption)}
.hn-vendas .hs-dim-table__head,
.hn-vendas .hs-dim-table__row{grid-template-columns:1.5fr 1.2fr .8fr .8fr 1.45fr}
.hn-vendas .hs-chip{white-space:nowrap}
.hn-vendas .hs-dim-table__obra,.hn-vendas .hs-dim-table__ref{display:block}
.hn-vendas__nota{display:block;font-size:.74rem;color:var(--text-caption);margin-top:4px;overflow-wrap:anywhere}
.hn-fatura{padding:22px 24px;margin-bottom:var(--space-11);display:flex;flex-direction:column;gap:var(--space-7)}
.hn-fatura__lista{display:flex;flex-direction:column;border:1px solid var(--rule);border-radius:var(--radius-thumb);overflow:hidden}
.hn-fatura__linha{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:var(--space-5);align-items:center;padding:10px 14px;border-bottom:1px solid var(--rule-row);font-size:.84rem;cursor:pointer}
.hn-fatura__linha:last-child{border-bottom:none}
.hn-fatura__linha input{width:17px;height:17px;margin:0;accent-color:var(--accent)}
.hn-fatura__linha small{display:block;color:var(--text-caption);font-size:.74rem}
.hn-fatura__soma{display:flex;justify-content:space-between;gap:var(--space-5);padding:10px 14px;background:var(--bg-card-soft);font-size:.84rem}
.hn-fatura__campos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-7)}
.hn-fatura__ok{color:#1e7a52;font-weight:var(--fw-semibold)}
.hn-faturas .hs-dim-table__head,
.hn-faturas .hs-dim-table__row{grid-template-columns:1.2fr .9fr .9fr 1.4fr 140px}
.hn-faturas .hs-dim-table__obra,.hn-faturas .hs-dim-table__ref{display:block}
.hn-faturas .hn-acoes{display:flex;gap:var(--space-3);flex-wrap:wrap;justify-content:flex-end}

/* ---------- Texto corrido (privacidade) ---------- */
.hn-prosa{max-width:var(--content-prose)}
.hn-prosa h3{font-size:var(--fs-card-title-sm);font-weight:var(--fw-bold);letter-spacing:var(--ls-card);color:var(--text);margin:28px 0 8px}
.hn-prosa p,.hn-prosa ul{margin-bottom:12px}
.hn-prosa ul{padding-left:20px}
.hn-prosa li{margin-bottom:6px}
.hn-prosa strong{color:var(--text)}
.hn-btn--perigo{color:#b3261e;border-color:#b3261e}
.hn-btn--perigo:hover{color:#b3261e;background:#fbeae8;border-color:#b3261e}

/* ---------- Página de configuradores ---------- */
.hn-cfg-grid{grid-template-columns:repeat(3,minmax(0,1fr))}

/* ---------- Responsivo ---------- */
@media (max-width:1180px){
  .hs-stat-row--4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .hn-cfg-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:900px){
  .hn-calc__entradas,.hn-calc__saidas{grid-template-columns:minmax(0,1fr)}
  .hn-calc__hero{margin:0}
  .hn-com-table .hs-dim-table__head{display:none}
  .hn-com-table .hs-dim-table__row{grid-template-columns:minmax(0,1fr);gap:var(--space-2)}
  .hn-com-table .hn-num{text-align:left}
  .hn-prop-table .hs-dim-table__head,.hn-prop-table--compact .hs-dim-table__head{display:none}
  .hn-prop-table .hs-dim-table__row,.hn-prop-table--compact .hs-dim-table__row{grid-template-columns:minmax(0,1fr);gap:var(--space-2)}
  .hn-prop-table .hn-num{text-align:left}
  .hn-acoes{justify-content:flex-start}
  .hn-cat-filtros .hs-select{margin-left:0}
  .hn-consola-pe{padding:var(--space-9) var(--section-px-mobile)}
  .hn-cfg-grid{grid-template-columns:minmax(0,1fr)}
  .hn-recebidas .hs-dim-table__head{display:none}
  .hn-recebidas .hs-dim-table__row{grid-template-columns:minmax(0,1fr);gap:var(--space-2)}
  .hn-recebidas .hn-num{text-align:left}
  .hn-rec-cliente{grid-template-columns:minmax(0,1fr)}
  .hn-vendas .hs-dim-table__head,.hn-faturas .hs-dim-table__head{display:none}
  .hn-vendas .hs-dim-table__row,.hn-faturas .hs-dim-table__row{grid-template-columns:minmax(0,1fr);gap:var(--space-2)}
  .hn-vendas .hn-num,.hn-faturas .hn-num{text-align:left}
  .hn-faturas .hn-acoes{justify-content:flex-start}
  .hn-fatura__campos{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:640px){
  .hs-stat-row,.hs-stat-row--4{grid-template-columns:minmax(0,1fr)}
}
/* Proposta da Hidrostation por preparar (2026-10-16): os botões quebram no telemóvel */
.hn-preparar__botoes{display:flex;flex-wrap:wrap;gap:var(--space-4)}
