/* ===== Calculadora de Nobreak — estilos específicos ===== */

.calc-wrap{padding:34px 0 70px}

/* Classes utilitárias abaixo definem display:flex/grid, o que sobrepõe a regra
   padrão do navegador para o atributo [hidden]. Sem isto, blocos marcados como
   hidden (alerta de carga, recomendação, campo de carga manual) continuam
   aparecendo na tela. */
.calc-wrap [hidden]{display:none!important}

/* Alternador de modo */
.calc-modos{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:18px;margin:-56px 0 34px;position:relative;z-index:3}
.calc-modo{background:#fff;border:2px solid var(--border);border-radius:var(--radius);padding:22px 22px 20px;text-align:left;cursor:pointer;box-shadow:0 10px 26px rgba(16,44,76,.07);transition:.22s}
.calc-modo:hover{transform:translateY(-3px);box-shadow:var(--shadow)}
.calc-modo.is-on{border-color:var(--primary);box-shadow:0 14px 32px rgba(244,125,43,.18)}
.calc-modo-icon{width:46px;height:46px;border-radius:14px;background:#fff1e8;color:var(--primary-text);display:grid;place-items:center;font-size:1.25rem;margin-bottom:12px}
.calc-modo h2{margin:0 0 6px;font-size:1.12rem;color:var(--navy)}
.calc-modo p{margin:0;color:var(--muted);font-size:.92rem;line-height:1.55}

/* Etapas */
.calc-etapa{background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:26px;margin-bottom:22px;box-shadow:0 8px 22px rgba(16,44,76,.05)}
.calc-etapa-head{display:flex;gap:14px;align-items:flex-start;margin-bottom:18px}
.calc-etapa-num{flex:0 0 auto;width:34px;height:34px;border-radius:50%;background:var(--navy);color:#fff;display:grid;place-items:center;font-weight:800;font-size:.9rem}
.calc-etapa-head h2{margin:0;font-size:1.15rem;color:var(--navy)}
.calc-etapa-head p{margin:4px 0 0;color:var(--muted);font-size:.92rem}

/* Categorias */
.calc-cat{border:1px solid var(--border);border-radius:14px;margin-bottom:10px;overflow:hidden;background:#fff}
.calc-cat-head{width:100%;display:flex;align-items:center;gap:12px;background:none;border:0;padding:14px 16px;cursor:pointer;text-align:left;color:var(--ink)}
.calc-cat-head:hover{background:var(--light)}
.calc-cat-icon{width:38px;height:38px;border-radius:11px;background:#fff1e8;color:var(--primary-text);display:grid;place-items:center;flex:0 0 auto}
.calc-cat-nome{flex:1;font-weight:800;color:var(--navy);display:flex;flex-direction:column;line-height:1.3}
.calc-cat-nome small{font-weight:600;color:var(--muted);font-size:.78rem}
.calc-cat-badge{min-width:26px;height:26px;border-radius:999px;display:none;place-items:center;background:var(--primary);color:#fff;font-weight:800;font-size:.8rem;padding:0 8px}
.calc-cat-badge.is-on{display:grid}
.calc-cat-seta{color:var(--muted);transition:.2s}
.calc-cat-head[aria-expanded="true"] .calc-cat-seta{transform:rotate(180deg)}
.calc-cat-body{border-top:1px solid var(--border);background:var(--light)}
.calc-itens{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:10px;padding:14px}

.calc-item{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#fff;border:1px solid var(--border);border-radius:12px;padding:10px 12px}
.calc-item.is-on{border-color:var(--primary);background:#fff9f5}
.calc-item-info{display:flex;flex-direction:column;min-width:0}
.calc-item-nome{font-weight:700;font-size:.9rem;color:var(--ink);line-height:1.35}
.calc-item-w{font-size:.8rem;color:var(--muted);font-weight:700}

.calc-item.is-proibido{border-color:#e6897a;background:#fdf1ef}
.calc-item-tags{display:flex;flex-wrap:wrap;gap:5px;margin-top:5px}
.calc-tag{display:inline-flex;align-items:center;gap:4px;font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.03em;border-radius:999px;padding:2px 8px;line-height:1.5;white-space:nowrap}
.calc-tag-proibido{background:#fdeceb;color:#a52d17}
.calc-tag-pico{background:#fff3e0;color:#8a5300}
.calc-tag-req{background:#eaf1f9;color:#1d4e83}

.calc-stepper{display:flex;align-items:center;gap:4px;flex:0 0 auto}
.calc-step{width:30px;height:30px;border-radius:9px;border:1px solid var(--border);background:#fff;color:var(--navy);font-weight:800;font-size:1rem;cursor:pointer;line-height:1}
.calc-step:hover{background:var(--primary);border-color:var(--primary);color:#fff}
.calc-qtd{width:44px;height:30px;text-align:center;border:1px solid var(--border);border-radius:9px;font-weight:800;color:var(--navy);-moz-appearance:textfield}
.calc-qtd::-webkit-outer-spin-button,.calc-qtd::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}

/* Equipamento personalizado */
.calc-extra-form{display:grid;grid-template-columns:2fr 1fr .7fr auto;gap:10px;margin-top:6px}
.calc-extra-form input{border:1px solid var(--border);border-radius:11px;padding:9px 12px;width:100%}
.calc-extra-form input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 4px rgba(244,125,43,.12)}
.calc-extra{display:flex;justify-content:space-between;align-items:center;gap:10px;background:var(--light);border-radius:11px;padding:9px 12px;margin-top:8px;font-size:.9rem;font-weight:700;color:var(--navy)}
.calc-extra-del{border:0;background:none;color:var(--muted);cursor:pointer;padding:4px 6px;border-radius:8px}
.calc-extra-del:hover{color:#c0341b;background:#fdeceb}
.calc-vazio{color:var(--muted);font-size:.9rem;margin:8px 0 0}

/* Autonomia desejada */
.calc-chips{display:flex;flex-wrap:wrap;gap:10px}
.calc-chip{border:2px solid var(--border);background:#fff;border-radius:999px;padding:9px 18px;font-weight:800;color:var(--navy);cursor:pointer;font-size:.9rem}
.calc-chip:hover{border-color:var(--primary)}
.calc-chip.is-on{background:var(--primary);border-color:var(--primary);color:#fff}

.calc-campos-inline{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:18px}
.calc-rotulo-grupo{display:block;font-weight:800;font-size:.85rem;color:var(--navy);margin-bottom:8px}

.calc-campos{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:16px;margin-top:18px}
.calc-campo label{display:block;font-weight:800;font-size:.85rem;color:var(--navy);margin-bottom:6px}
.calc-campo input,.calc-campo select{width:100%;border:1px solid var(--border);border-radius:11px;padding:10px 12px;background:#fff}
.calc-campo input:focus,.calc-campo select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 4px rgba(244,125,43,.12)}
.calc-campo small{display:block;color:var(--muted);font-size:.78rem;margin-top:5px;line-height:1.45}

/* Recomendação automática de topologia */
.calc-recomenda{display:flex;gap:10px;align-items:flex-start;margin-top:14px;padding:12px 14px;border-radius:12px;background:#eaf1f9;border:1px solid #c7dbf0;color:#1d4e83;font-size:.9rem;line-height:1.55}
.calc-recomenda i{margin-top:2px;flex:0 0 auto}
.calc-recomenda strong{color:var(--navy)}
.calc-recomenda em{font-style:normal;font-weight:700;color:#7a4a04}
.calc-recomenda.is-divergente{background:#fff8ef;border-color:#f3c988;color:#7a4a04}
.calc-tipo-linha{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.btn-link-auto{border:0;background:none;color:var(--primary-text);font-weight:800;font-size:.78rem;cursor:pointer;padding:0;text-decoration:underline}

/* Alerta de carga imprópria */
.calc-alerta{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin-top:18px;padding:16px 18px;border-radius:14px;background:#fdf1ef;border:1px solid #f0b6ae;color:#7a2415}
.calc-alerta-icon{width:38px;height:38px;flex:0 0 auto;border-radius:11px;background:#f8d7d1;color:#a52d17;display:grid;place-items:center;font-size:1.05rem}
.calc-alerta-txt{flex:1 1 260px;font-size:.92rem;line-height:1.55}
.calc-alerta-obs{margin:6px 0 0;font-size:.85rem;color:#8a3b28}
.calc-alerta-btn{flex:0 0 auto}

/* Barra de resumo */
.calc-barra{position:sticky;bottom:0;z-index:60;background:var(--navy);color:#fff;border-radius:16px;padding:14px 20px;display:flex;align-items:center;gap:20px;flex-wrap:wrap;box-shadow:0 -8px 28px rgba(16,44,76,.18);margin-top:18px}
.calc-barra-dado{display:flex;flex-direction:column;line-height:1.2}
.calc-barra-dado strong{font-size:1.25rem}
.calc-barra-dado span{font-size:.78rem;color:#c6d6e6;font-weight:700;text-transform:uppercase;letter-spacing:.05em}
.calc-barra-acoes{margin-left:auto;display:flex;gap:10px;flex-wrap:wrap}
.calc-barra .btn-primary:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}
.btn-ghost{background:transparent;border:2px solid rgba(255,255,255,.4);color:#fff}
.btn-ghost:hover{background:rgba(255,255,255,.12)}

/* Resultado */
.calc-result{background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:30px;margin-top:26px;box-shadow:var(--shadow)}
.calc-result-head h2{margin:6px 0 8px;color:var(--navy);font-size:clamp(1.3rem,2.4vw,1.9rem);line-height:1.3}
.calc-result-head h2 strong{color:var(--primary-text)}
.calc-result-head.is-alerta h2 strong{color:#a52d17}
.calc-result-head p{margin:0;color:var(--muted)}

.calc-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;margin:22px 0}
.calc-kpi{background:var(--light);border:1px solid var(--border);border-radius:14px;padding:16px;display:flex;flex-direction:column;gap:2px}
.calc-kpi-icon{width:34px;height:34px;border-radius:10px;background:#fff1e8;color:var(--primary-text);display:grid;place-items:center;margin-bottom:6px}
.calc-kpi strong{font-size:1.4rem;color:var(--navy);line-height:1.2}
.calc-kpi span{font-size:.82rem;color:var(--muted);font-weight:700}

.calc-result-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:18px}
.calc-box{border:1px solid var(--border);border-radius:14px;padding:20px}
.calc-box h3{margin:0 0 10px;font-size:1rem;color:var(--navy);display:flex;align-items:center;gap:8px}
.calc-box h3 i{color:var(--primary-text)}
.calc-box p{margin:0 0 8px;font-size:.93rem}
.calc-box-sub{font-weight:800;color:var(--navy);margin-top:12px!important}
.calc-box-bom{border-color:#bfe6cd;background:#f3fbf6}
.calc-box-alerta{border-color:#f3c988;background:#fff8ef}
.calc-box-ruim{border-color:#f0b6ae;background:#fdf1ef}
.calc-lista-bat{margin:6px 0 0;padding-left:20px}
.calc-lista-bat li{margin-bottom:4px;font-size:.93rem}
.calc-passos{margin:0;padding-left:20px}
.calc-passos li{margin-bottom:6px;font-size:.92rem;color:var(--muted)}
.calc-passos strong{color:var(--ink)}
.calc-nota{color:var(--muted);font-size:.83rem;line-height:1.5;margin-top:10px!important}

.calc-avisos{border:1px solid #f3c988;background:#fff8ef;border-radius:14px;padding:20px;margin-top:18px}
.calc-avisos h3{margin:0 0 10px;font-size:1rem;color:#7a4a04;display:flex;align-items:center;gap:8px}
.calc-avisos ul{margin:0;padding-left:20px}
.calc-avisos li{margin-bottom:7px;font-size:.92rem;line-height:1.55}

.calc-tabela-wrap{margin-top:22px;overflow-x:auto}
.calc-tabela-wrap h3{margin:0 0 10px;font-size:1rem;color:var(--navy)}
.calc-tabela{width:100%;border-collapse:collapse;font-size:.92rem;min-width:420px}
.calc-tabela th,.calc-tabela td{padding:9px 12px;border-bottom:1px solid var(--border);text-align:left}
.calc-tabela thead th{background:var(--light);color:var(--navy);font-size:.8rem;text-transform:uppercase;letter-spacing:.04em}
.calc-tabela tfoot th{background:var(--light);color:var(--navy)}
.calc-tabela .num{text-align:right;white-space:nowrap}
.calc-tabela-compacta{min-width:0}

.calc-box-destaque{border-color:#c7dbf0;background:#f5f9fd;margin-top:18px}
.calc-tabela tr.linha-abaixo td{color:#a52d17;font-weight:700}
.calc-tabela tr.linha-proibida td{background:#fdf1ef}
.calc-tabela tr.linha-atual td{background:#eaf1f9;font-weight:800}

.calc-acoes{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin-top:22px}
.calc-acoes .btn-outline{border:2px solid var(--border);color:var(--navy);background:#fff}
.calc-acoes .btn-outline:hover{border-color:var(--primary);color:var(--primary-text)}
.calc-acao-msg{font-size:.85rem;font-weight:700;color:var(--primary-text)}
.calc-disclaimer{margin:16px 0 0;font-size:.8rem;color:var(--muted);line-height:1.55}

.calc-gate-nota{margin:14px 0 0;padding:12px 14px;border-radius:12px;background:var(--light);border:1px solid var(--border);color:var(--muted);font-size:.86rem;line-height:1.55;display:flex;gap:8px;align-items:flex-start}
.calc-gate-nota i{color:var(--primary-text);margin-top:3px;flex:0 0 auto}

/* Modal de cadastro para entrega do resultado */
.calc-gate{position:fixed;inset:0;z-index:200;background:rgba(16,44,76,.62);display:flex;align-items:center;justify-content:center;padding:20px;overflow-y:auto}
body.calc-modal-aberto{overflow:hidden}
.calc-gate-caixa{position:relative;background:#fff;border-radius:var(--radius);padding:28px;max-width:620px;width:100%;box-shadow:0 24px 60px rgba(16,44,76,.35);margin:auto}
.calc-gate-caixa h2{margin:6px 0 8px;font-size:1.35rem;color:var(--navy)}
.calc-gate-sub{margin:0 0 18px;color:var(--muted);font-size:.93rem;line-height:1.55}
.calc-gate-fechar{position:absolute;top:12px;right:12px;width:34px;height:34px;border-radius:10px;border:1px solid var(--border);background:#fff;color:var(--muted);cursor:pointer;font-size:1rem;line-height:1}
.calc-gate-fechar:hover{background:var(--light);color:var(--navy)}
.calc-gate-campos{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px}
.calc-gate-opcional{font-weight:600;color:var(--muted);text-transform:none;letter-spacing:0}
.calc-gate-erro{display:block;color:#a52d17;font-size:.8rem;font-weight:700;margin-top:5px;min-height:1px}
.calc-gate-consent{display:flex;gap:10px;align-items:flex-start;margin-top:16px;font-size:.87rem;line-height:1.55;color:var(--ink)}
.calc-gate-consent input{margin-top:3px;width:17px;height:17px;flex:0 0 auto;accent-color:var(--primary)}
.calc-gate-acoes{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}
.calc-gate-acoes .btn-outline{border:2px solid var(--border);color:var(--navy);background:#fff}
.calc-gate-status{margin:12px 0 0;font-size:.88rem;font-weight:700;color:var(--primary-text);min-height:1px}
.calc-gate-status.is-erro{color:#a52d17}
.calc-gate-rodape{margin:14px 0 0;font-size:.78rem;color:var(--muted);line-height:1.55}
@media (max-width:560px){
  .calc-gate{padding:0;align-items:flex-end}
  .calc-gate-caixa{border-radius:18px 18px 0 0;padding:22px 18px 26px;max-height:94vh;overflow-y:auto}
}

/* Cabeçalho só de impressão */
.calc-print-head{display:none}

@media (max-width:760px){
  .calc-modos{margin-top:-28px}
  .calc-etapa{padding:20px 16px}
  .calc-itens{grid-template-columns:1fr}
  .calc-extra-form{grid-template-columns:1fr 1fr}
  .calc-extra-form button{grid-column:1/-1}
  .calc-barra{border-radius:14px;padding:12px 14px;gap:14px}
  .calc-barra-acoes{margin-left:0;width:100%}
  .calc-barra-acoes .btn{flex:1;justify-content:center}
  .calc-result{padding:20px 16px}
}

/* ===== Impressão / PDF ===== */
@media print{
  .topbar,.site-header,.footer,.whatsapp-float,.mobile-action-bar,.cookie-banner,
  .page-hero,.calc-modos,.calc-etapa,.calc-barra,.no-print,.conversion-strip,
  .calc-alerta,main > section{display:none!important}
  body{background:#fff;font-size:11pt}
  body:not(.tem-resultado) .calc-print-head{display:none!important}
  .calc-print-head{display:flex!important;align-items:center;justify-content:space-between;gap:20px;border-bottom:3px solid #f47d2b;padding-bottom:12px;margin-bottom:18px}
  .calc-print-head img{width:170px;height:auto}
  .calc-print-head div{text-align:right;font-size:9.5pt;line-height:1.5;color:#333}
  .calc-result{box-shadow:none;border:0;padding:0;margin:0}
  .calc-result-grid{display:block}
  .calc-box,.calc-avisos{break-inside:avoid;page-break-inside:avoid;margin-bottom:12px}
  .calc-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
  .calc-kpi{background:#f5f7fa!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .calc-tabela{min-width:0}
  a[href]:after{content:""}
}
