/* Card 1058503 — Minhas propostas, proposta e janela de dados. Prefixo .pp-*.
   Faixa (.ph-*) e tokens seguem Favoritos v4 (favoritos.css). Abaixo de 760 px: uma coluna. */

.pp-pagina {
    --ink: #16215b; --ink-soft: #465479; --page: #f4f7fb; --white: #fff; --line: #dbe3f0; --line-soft: #e9eef6;
    --teal-100: #e6f5f3; --teal-500: #12968a; --teal-600: #0d7a70; --teal-700: #0a5e57;
    --cinza-faixa: #c3cad8; --amber-100: #fdf3dc; --amber-700: #8a5a00; --erro: #c62828;
    --r: 14px; --r-sub: 12px;
    --sombra-card: 0 10px 30px rgba(22, 33, 91, .08); --sombra-barra: 0 18px 44px rgba(22, 33, 91, .16);
    margin: -24px; min-height: calc(100vh - 64px);
    font-family: "Open Sans", system-ui, sans-serif; font-size: 15px; line-height: 1.5;
    color: var(--ink); background: var(--page);
}
.pp-pagina *, .pp-pagina *::before, .pp-pagina *::after { box-sizing: border-box; }
.pp-pagina :focus-visible { outline: 2px solid var(--teal-500); outline-offset: 2px; }
.pp-pagina button, .pp-pagina input, .pp-pagina select, .pp-pagina textarea { font-family: inherit; }
.pp-pagina .ph-titulo:focus-visible { outline: none; }
.pp-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

.pp-conteudo { max-width: 1320px; margin: -64px auto 0; padding: 0 clamp(16px, 2.6vw, 32px) 80px; position: relative; }

/* ── Botões ── */
.pp-btn-nova { display: inline-flex; align-items: center; gap: 10px; min-height: 48px; padding: 0 22px; border: 0;
    border-radius: 12px; background: var(--white); color: var(--ink); font-weight: 800; font-size: 14px;
    letter-spacing: .04em; cursor: pointer; box-shadow: 0 8px 24px rgba(0, 0, 0, .15); }
.pp-btn-nova:hover { background: #eef3fb; }
.pp-btn-nova:focus-visible { outline: 2px solid #7ed0c7; outline-offset: 3px; }
.pp-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; padding: 0 18px;
    border-radius: 10px; font-weight: 800; font-size: 13px; letter-spacing: .04em; cursor: pointer; text-decoration: none; }
.pp-btn-pri { background: var(--ink); color: #fff; border: 0; }
.pp-btn-pri:hover { background: #22307a; }
.pp-btn-pri:disabled { background: #9aa3bd; cursor: default; }
.pp-btn-sec { background: var(--white); color: var(--ink); border: 1px solid var(--line); }
.pp-btn-sec:hover { background: var(--page); }

/* ── Barra: abas, busca, ordenar ── */
.pp-barra { background: var(--white); border-radius: var(--r); box-shadow: var(--sombra-barra); padding: 14px 18px;
    display: flex; flex-wrap: wrap; align-items: center; gap: 12px 16px; }
.pp-abas { display: inline-flex; gap: 4px; padding: 4px; background: var(--page); border-radius: 12px; }
.pp-aba { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; padding: 0 16px; border: 0; border-radius: 9px;
    background: transparent; color: var(--ink); font-weight: 700; font-size: 14px; cursor: pointer; }
.pp-aba:hover { background: #e9eef7; }
.pp-aba-ativa, .pp-aba-ativa:hover { background: var(--ink); color: #fff; }
.pp-contador { display: inline-flex; align-items: center; justify-content: center; min-width: 22px; height: 22px; padding: 0 6px;
    border-radius: 11px; background: var(--white); color: var(--ink); font-size: 12px; font-weight: 800; }
.pp-aba-ativa .pp-contador { background: rgba(255, 255, 255, .2); color: #fff; }
.pp-busca-rotulo { flex: 1 1 240px; min-width: 0; }
.pp-busca { width: 100%; min-height: 44px; padding: 0 14px 0 40px; border: 1px solid var(--line); border-radius: 10px;
    background: var(--page) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%23465479' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.5-3.5'/%3E%3C/svg%3E") no-repeat 14px center;
    color: var(--ink); font-size: 15px; }
.pp-ordenar-rotulo { display: inline-flex; align-items: center; gap: 10px; font-size: 12px; font-weight: 800; letter-spacing: .06em; color: var(--ink-soft); }
.pp-ordenar { min-height: 44px; padding: 0 12px; border: 1px solid var(--line); border-radius: 10px; background: var(--white);
    color: var(--ink); font-size: 15px; font-weight: 600; letter-spacing: 0; }

/* ── Grade de cards ── */
.pp-grade { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 420px), 1fr)); gap: 18px; margin-top: 22px; }
.pp-card { background: var(--white); border-radius: var(--r); box-shadow: var(--sombra-card); padding: 22px 20px 18px;
    border-top: 6px solid var(--cinza-faixa); display: flex; flex-direction: column; min-width: 0; }
.pp-card-salva { border-top-color: var(--teal-500); }
.pp-card-topo { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; }
.pp-selo { display: inline-block; padding: 4px 10px; border-radius: 8px; background: var(--page); color: var(--ink-soft);
    font-size: 11px; font-weight: 800; letter-spacing: .1em; }
.pp-card-salva .pp-selo { background: var(--teal-100); color: var(--teal-700); }
.pp-editado { font-size: 13px; color: var(--ink-soft); }
.pp-card-cliente { font-size: 19px; font-weight: 800; margin: 12px 0 0; line-height: 1.25; overflow-wrap: anywhere; }
.pp-card-nome { margin: 2px 0 0; font-size: 14px; color: var(--ink-soft); overflow-wrap: anywhere; }
.pp-card-marca { margin: 2px 0 0; font-size: 14px; color: var(--ink-soft); }
.pp-tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 12px; }
.pp-tag { display: inline-block; padding: 3px 10px; border-radius: 999px; background: var(--pp-tag-bg, var(--page));
    color: var(--pp-tag-fg, var(--ink)); font-size: 11px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.pp-card-rodape { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 12px;
    margin-top: auto; padding-top: 14px; border-top: 1px solid var(--line-soft); }
.pp-card > .pp-tags + .pp-card-rodape, .pp-card > p + .pp-card-rodape { margin-top: 16px; }
.pp-card-qtd { font-size: 11px; font-weight: 800; letter-spacing: .1em; color: var(--ink-soft); }
.pp-card-valor { font-size: 21px; font-weight: 800; }
.pp-card-acao { display: inline-flex; align-items: center; min-height: 44px; padding: 0 16px; border-radius: 10px; background: var(--ink);
    color: #fff; font-weight: 800; font-size: 13px; letter-spacing: .04em; text-decoration: none; }
.pp-card-acao:hover { background: #22307a; }
.pp-vazio { margin: 22px 0 0; padding: 40px 28px; background: var(--white); border-radius: var(--r); box-shadow: var(--sombra-card);
    text-align: center; color: var(--ink-soft); }

/* ── Janela Nova proposta / Editar dados ── */
/* A janela vive no MudDialogProvider, fora de .pp-pagina: repete os tokens que os componentes .pp-* usam. */
.pp-dlg { --ink: #16215b; --ink-soft: #465479; --page: #f4f7fb; --white: #fff; --line: #dbe3f0; --teal-500: #12968a;
    font-family: "Open Sans", system-ui, sans-serif; color: #16215b; padding: 4px 2px 2px; }
.pp-dlg :focus-visible { outline: 2px solid #12968a; outline-offset: 2px; }
.pp-dlg *, .pp-dlg *::before, .pp-dlg *::after { box-sizing: border-box; }
.pp-dlg-titulo { margin: 0; font-size: 22px; font-weight: 800; }
.pp-dlg-sub { margin: 6px 0 0; color: #465479; font-size: 14px; }
.pp-campo { display: flex; flex-direction: column; gap: 6px; margin-top: 18px; min-width: 0; }
.pp-campo-topo { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; }
.pp-campo label { font-size: 13px; font-weight: 700; }
.pp-opcional { font-weight: 400; color: #465479; }
.pp-campo input, .pp-campo select { width: 100%; min-height: 44px; padding: 0 12px; border: 1px solid #c9d3e3; border-radius: 10px;
    background: #fff; color: #16215b; font: inherit; font-size: 15px; }
.pp-campo input:focus-visible, .pp-campo select:focus-visible { outline: 2px solid #12968a; outline-offset: 1px; }
.pp-campo-erro input { border-color: #c62828; border-width: 2px; }
.pp-campo-msg { color: #c62828; font-size: 13px; }
.pp-dlg-contador { font-size: 12px; color: #465479; }
.pp-dlg-aviso { display: block; padding: 8px 10px; border-radius: 8px; background: #fdf3dc; color: #7a520a; font-size: 13px; }
.pp-campo-linha { display: grid; grid-template-columns: 1fr 1fr; gap: 0 14px; }
.pp-dlg-acoes { display: flex; justify-content: flex-end; flex-wrap: wrap; gap: 10px; margin-top: 24px; }
.pp-dlg .pp-btn-pri { background: #16215b; color: #fff; border: 0; }
.pp-dlg .pp-btn-sec { background: #fff; color: #16215b; border: 1px solid #dbe3f0; }

/* ── Página da proposta ── */
.pp-faixa .ph-in { padding-bottom: 104px; }
.pp-faixa-status { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; margin-top: 12px; font-size: 13px; color: rgba(255, 255, 255, .85); }
.pp-faixa .pp-selo { background: rgba(255, 255, 255, .16); color: #fff; }
.pp-nao-salvas { color: #ffd98a; font-weight: 700; }
.pp-metas { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 16px; }
.pp-meta { display: inline-flex; align-items: baseline; gap: 8px; padding: 6px 14px; border-radius: 999px;
    border: 1px solid rgba(255, 255, 255, .35); font-size: 14px; font-weight: 700; color: #fff; overflow-wrap: anywhere; }
.pp-meta small { font-size: 10px; font-weight: 800; letter-spacing: .1em; color: #7ed0c7; }
.pp-conteudo-solto { margin-top: 0; padding-top: 40px; }
.pp-nao-encontrada { background: var(--white); border-radius: var(--r); box-shadow: var(--sombra-card); padding: 40px 28px; text-align: center; }
.pp-nao-encontrada p { margin: 0 0 16px; font-size: 18px; font-weight: 700; }

.pp-acoes { background: var(--white); border-radius: var(--r); box-shadow: var(--sombra-barra); padding: 12px 16px;
    display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; }
.pp-qtd { display: inline-flex; align-items: center; gap: 8px; font-weight: 700; padding-right: 14px; border-right: 1px solid var(--line); }
.pp-qtd strong { display: inline-flex; align-items: center; justify-content: center; min-width: 32px; height: 32px; border-radius: 8px;
    background: var(--teal-500); color: #fff; font-size: 15px; }
.pp-acao { display: inline-flex; align-items: center; min-height: 44px; padding: 0 10px; border: 0; border-radius: 10px; background: transparent;
    color: var(--ink); font-weight: 700; font-size: 14px; cursor: pointer; text-decoration: none; }
.pp-acao:hover { background: var(--page); }
.pp-acoes-fim { margin-left: auto; display: inline-flex; align-items: center; gap: 8px; }
.pp-btn-teal { background: var(--teal-500); color: #fff; border: 0; }
.pp-btn-teal:hover { background: var(--teal-600); }
.pp-btn-teal:disabled { background: var(--teal-100); color: var(--teal-700); cursor: default; }
.pp-icone { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; padding: 0; border: 1px solid var(--line);
    border-radius: 10px; background: var(--white); color: var(--ink); cursor: pointer; font-size: 20px; line-height: 1; }
.pp-icone svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.pp-icone:hover:not(:disabled) { background: var(--page); }
.pp-icone:disabled { opacity: .35; cursor: default; }
.pp-icone-perigo { color: var(--erro); }
.pp-mais-ancora { position: relative; }
.pp-menu { position: absolute; right: 0; top: calc(100% + 6px); z-index: 5; display: flex; flex-direction: column; min-width: 200px;
    background: var(--white); border: 1px solid var(--line); border-radius: 12px; box-shadow: var(--sombra-barra); padding: 6px; }
.pp-menu button { min-height: 44px; padding: 0 12px; border: 0; border-radius: 8px; background: transparent; color: var(--ink);
    text-align: left; font-size: 14px; font-weight: 600; cursor: pointer; }
.pp-menu button:hover { background: var(--page); }
.pp-menu .pp-menu-perigo { color: var(--erro); }
.pp-aviso-salvo { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 16px; margin-top: 14px;
    padding: 12px 18px; border-radius: 12px; background: var(--teal-100); color: var(--teal-700); font-weight: 700; }
.pp-aviso-salvo a { color: var(--teal-700); font-weight: 800; font-size: 13px; letter-spacing: .04em; min-height: 44px; display: inline-flex; align-items: center; }

.pp-layout { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 22px; align-items: start; margin-top: 22px; }
.pp-principal { display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.pp-lista { display: flex; flex-direction: column; gap: 16px; }
.pp-lista-vazia { background: var(--white); border-radius: var(--r); box-shadow: var(--sombra-card); padding: 32px 24px; text-align: center; }
.pp-lista-vazia p { margin: 0 0 14px; color: var(--ink-soft); }

.pp-sol { background: var(--white); border-radius: var(--r); box-shadow: var(--sombra-card); border-top: 5px solid var(--pp-cor, var(--teal-500));
    padding: 18px 18px 12px; min-width: 0; }
.pp-sol-indisponivel { border-top-color: var(--cinza-faixa); }
.pp-sol-indisponivel .pp-sol-titulo, .pp-sol-indisponivel .pp-sol-texto { opacity: .6; }
.pp-sol-corpo { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 4px 14px; align-items: start; }
.pp-sol-ordem { display: inline-flex; align-items: center; justify-content: center; width: 30px; height: 30px; border-radius: 50%;
    background: var(--page); font-weight: 800; font-size: 13px; margin-top: 2px; }
.pp-sol-tags { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.pp-sol-selo { display: inline-block; padding: 3px 10px; border-radius: 999px; background: var(--page); color: var(--ink);
    font-size: 11px; font-weight: 800; letter-spacing: .04em; }
.pp-sol-selo-alerta { background: var(--amber-100); color: var(--amber-700); }
.pp-sol-titulo { margin: 8px 0 0; font-size: 18px; font-weight: 800; line-height: 1.3; }
.pp-sol-nome { color: var(--ink); text-decoration: none; overflow-wrap: anywhere; }
.pp-sol-nome:hover { text-decoration: underline; }
.pp-sol-texto { margin: 4px 0 0; color: var(--ink-soft); font-size: 14px; }
.pp-sol-valor { text-align: right; }
.pp-sol-valor-rotulo { font-size: 11px; font-weight: 800; letter-spacing: .1em; color: var(--ink-soft); }
.pp-sol-valor-num { font-size: 20px; font-weight: 800; white-space: nowrap; }
.pp-sol-sem-valor { font-size: 13px; font-weight: 700; color: var(--ink-soft); white-space: normal; }
.pp-sol-comp { list-style: none; margin: 14px 0 0; padding: 8px; background: var(--page); border-radius: var(--r-sub); display: flex; flex-direction: column; gap: 6px; }
.pp-sol-comp li { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; padding: 10px 12px; background: var(--white); border-radius: 10px; }
.pp-comp-desc { flex: 1 1 220px; font-size: 14px; min-width: 0; }
.pp-comp-tag { padding: 2px 8px; border-radius: 999px; background: #e7edfb; color: #143d94; font-size: 11px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.pp-comp-tag-est { background: var(--teal-100); color: var(--teal-700); }
.pp-comp-valor { font-weight: 800; white-space: nowrap; }
.pp-sol-rodape { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; margin-top: 14px;
    padding-top: 10px; border-top: 1px solid var(--line-soft); }
.pp-sol-comp-btn { min-height: 44px; padding: 0 4px; border: 0; background: transparent; color: var(--teal-700); font-weight: 800;
    font-size: 12px; letter-spacing: .08em; cursor: pointer; }
.pp-sol-botoes { display: inline-flex; gap: 6px; margin-left: auto; }

.pp-adicionar { display: flex; align-items: center; justify-content: center; gap: 10px; min-height: 60px; border: 2px dashed #b9c4d8; border-radius: var(--r); background: transparent; color: var(--ink);
    font-weight: 800; font-size: 13px; letter-spacing: .08em; cursor: pointer; }
.pp-adicionar:hover { background: var(--white); border-color: var(--teal-500); }

.pp-naotech { background: var(--white); border-radius: var(--r); box-shadow: var(--sombra-card); border-top: 5px solid var(--ink); padding: 18px; }
.pp-naotech-topo { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; }
.pp-selo-naotech { padding: 4px 10px; border-radius: 999px; background: var(--ink); color: #fff; font-size: 11px; font-weight: 800; letter-spacing: .08em; }
.pp-naotech-titulo { margin: 0; font-size: 18px; font-weight: 800; flex: 1 1 auto; }
.pp-despesas { margin-top: 14px; padding: 8px; background: #eef1f8; border-radius: var(--r-sub); }
.pp-despesas ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.pp-despesa { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; padding: 12px; background: var(--white); border-radius: 10px; }
.pp-despesa-texto { flex: 1 1 220px; display: flex; flex-direction: column; min-width: 0; overflow-wrap: anywhere; }
.pp-despesa-desc { font-size: 13px; color: var(--ink-soft); }
.pp-despesa-tags { display: inline-flex; flex-wrap: wrap; gap: 6px; }
.pp-despesa-classe, .pp-despesa-rec { padding: 2px 8px; border-radius: 999px; background: var(--page); font-size: 11px; font-weight: 800;
    letter-spacing: .06em; text-transform: uppercase; }
.pp-despesa-rec { background: var(--amber-100); color: var(--amber-700); }
.pp-despesa-mensal { background: var(--teal-100); color: var(--teal-700); }
.pp-despesa-valor { font-weight: 800; margin-left: auto; overflow-wrap: anywhere; }
.pp-despesas-nota { margin: 8px 4px 0; font-size: 12px; color: var(--ink-soft); }
.pp-info { margin: 14px 0 0; }
.pp-info dt { margin-top: 12px; font-size: 11px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: var(--ink-soft); }
.pp-info dd { margin: 2px 0 0; white-space: pre-line; overflow-wrap: anywhere; }

.pp-resumo { display: flex; flex-direction: column; gap: 16px; position: sticky; top: 80px; }
.pp-resumo-card { background: var(--white); border-radius: var(--r); box-shadow: var(--sombra-card); padding: 18px; }
.pp-resumo-titulo { margin: 0; font-size: 18px; font-weight: 800; line-height: 1.25; }
.pp-total { margin-top: 14px; padding: 14px 16px; border-radius: 12px; background: linear-gradient(105deg, #0f3f6b, #0a5e57); color: #fff; }
.pp-total-rotulo { font-size: 11px; font-weight: 800; letter-spacing: .1em; }
.pp-total-valor { font-size: 26px; font-weight: 800; }
.pp-sem-valor { margin: 10px 0 0; font-size: 12px; color: var(--ink-soft); }
.pp-resumo-sub { margin: 16px 0 8px; font-size: 11px; font-weight: 800; letter-spacing: .1em; color: var(--ink-soft); }
.pp-ports { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.pp-port-linha { display: flex; align-items: center; gap: 8px; }
.pp-port-qtd { font-size: 12px; color: var(--ink-soft); }
.pp-port-valor { margin-left: auto; font-weight: 800; font-size: 14px; white-space: nowrap; }
.pp-port-trilho { margin-top: 4px; height: 5px; border-radius: 3px; background: var(--page); }
.pp-port-barra { height: 100%; border-radius: 3px; }
.pp-resumo-naotech { margin-top: 16px; padding: 14px; border-radius: 12px; background: #eef1f8; }
.pp-resumo-naotech-titulo { margin: 0 0 8px; font-size: 15px; font-weight: 800; }
.pp-resumo-naotech ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.pp-resumo-naotech li { display: flex; justify-content: space-between; gap: 10px; font-size: 13px; }
.pp-resumo-naotech li span { min-width: 0; overflow-wrap: anywhere; }
.pp-resumo-naotech strong { white-space: nowrap; }
.pp-resumo-nota { margin: 8px 0 0; font-size: 12px; color: var(--ink-soft); }
.pp-resumo-ref { margin: 14px 0 0; font-size: 12px; color: var(--ink-soft); }
.pp-obs-internas p { margin: 0; white-space: pre-line; overflow-wrap: anywhere; }
.pp-obs-internas .pp-resumo-sub { margin-top: 0; }

/* ── Janela Adicionar soluções ── */
.pp-add-lista { list-style: none; margin: 14px 0 0; padding: 0; max-height: 50vh; overflow-y: auto; display: flex; flex-direction: column; gap: 4px; }
.pp-add-item label { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; min-height: 44px; padding: 6px 10px; border-radius: 10px; cursor: pointer; }
.pp-add-item label:hover { background: #f4f7fb; }
.pp-add-item input { width: 20px; height: 20px; accent-color: #12968a; }
.pp-add-nome { flex: 1 1 200px; font-weight: 600; }
.pp-add-ja { font-size: 12px; color: #465479; }
.pp-add-falha { margin: 14px 0 0; padding: 10px 12px; border-radius: 8px; background: #fdf3dc; color: #7a520a; font-size: 14px; }
.pp-add-vazio, .pp-add-erro { margin: 16px 0 0; color: #465479; }
.pp-add-erro { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.pp-add-rodape { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; margin-top: 16px;
    padding-top: 12px; border-top: 1px solid #e9eef6; font-weight: 700; }
.pp-add-rodape .pp-dlg-acoes { margin-top: 0; }
.pp-add .pp-campo > span { font-size: 13px; font-weight: 700; }
.pp-add-abas { display: flex; gap: 4px; padding: 4px; margin-top: 16px; background: #f4f7fb; border-radius: 12px; }
.pp-add-abas .pp-aba { flex: 1 1 0; justify-content: center; }
.pp-add-grupo h3 { margin: 16px 0 0; font-size: 12px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: #465479; }
.pp-add-grupo .pp-add-lista { margin-top: 6px; max-height: none; overflow: visible; }
.pp-add-grupo + .pp-add-grupo { margin-top: 4px; }
#pp-add-painel { max-height: 55vh; overflow-y: auto; }
#pp-add-painel > .pp-add-lista { max-height: none; overflow: visible; }
.pp-add-valor { font-weight: 800; font-size: 13px; white-space: nowrap; }
.pp-add-esqueleto { display: flex; flex-direction: column; gap: 8px; margin-top: 16px; }
.pp-add-esqueleto span { height: 44px; border-radius: 10px; background: linear-gradient(90deg, #eef1f8, #f8f9fc, #eef1f8);
    background-size: 200% 100%; animation: pp-brilho 1.2s linear infinite; }
@keyframes pp-brilho { to { background-position: -200% 0; } }
@media (prefers-reduced-motion: reduce) { .pp-add-esqueleto span { animation: none; } }

/* ── Despesas e informações adicionais (Task 6) ── */
.pp-layout-topo { margin-top: 0; }
.pp-dp-card { background: var(--white); border-radius: var(--r); box-shadow: var(--sombra-card); padding: 20px; min-width: 0; }
.pp-dp-card-topo { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 14px; }
.pp-dp-card-topo h2 { margin: 0; font-size: 20px; font-weight: 800; }
.pp-dp-contador { font-size: 13px; color: var(--ink-soft); }
.pp-dp-ajuda { margin: 4px 0 14px; font-size: 13px; color: var(--ink-soft); }
.pp-dp-linha { display: flex; flex-direction: column; gap: 10px; padding: 14px; margin-bottom: 10px; border: 1px solid var(--line);
    border-radius: var(--r-sub); background: var(--page); }
.pp-dp-campo { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
label.pp-dp-campo > span { font-size: 11px; font-weight: 800; letter-spacing: .1em; color: var(--ink-soft); }
.pp-dp-campo input, .pp-dp-campo select, .pp-dp-campo textarea, .pp-dp-internas textarea { width: 100%; min-height: 44px; padding: 10px 12px;
    border: 1px solid #c9d3e3; border-radius: 10px; background: var(--white); color: var(--ink); font: inherit; font-size: 15px; }
.pp-dp-campo textarea, .pp-dp-internas textarea { resize: vertical; }
.pp-dp-campo input:focus-visible, .pp-dp-campo select:focus-visible, .pp-dp-campo textarea:focus-visible,
.pp-dp-internas textarea:focus-visible { outline: 2px solid var(--teal-500); outline-offset: 1px; }
.pp-dp-trio { display: grid; grid-template-columns: 1.3fr 1fr 1.2fr; gap: 10px; }
.pp-dp-remover { align-self: flex-start; }
.pp-dp-adicionar { width: 100%; }
.pp-dp-texto { margin-top: 14px; }
.pp-dp-campo-rotulo { font-size: 14px; font-weight: 800; }
.pp-dp-campo-ajuda { font-size: 12px; color: var(--ink-soft); }
.pp-dp-internas { border-top: 5px solid var(--cinza-faixa); }
.pp-dp-resumo-card { padding: 0; overflow: hidden; }
.pp-dp-resumo-topo { padding: 18px; background: linear-gradient(105deg, #0f3f6b, #0a5e57); color: #fff; }
.pp-dp-resumo-titulo { margin: 0; font-size: 12px; font-weight: 800; letter-spacing: .12em; }
.pp-dp-numeros { display: flex; gap: 40px; margin-top: 12px; }
.pp-dp-numeros small { display: block; font-size: 10px; font-weight: 800; letter-spacing: .1em; color: #7ed0c7; }
.pp-dp-numeros strong { font-size: 24px; font-weight: 800; }
.pp-dp-resumo-topo p { margin: 10px 0 0; font-size: 12px; color: rgba(255, 255, 255, .85); }
.pp-dp-status { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; padding: 14px 18px 0; font-size: 13px; color: var(--ink-soft); }
.pp-dp-ok { color: var(--teal-700); }
.pp-dp-erro { color: var(--erro); font-weight: 700; }
.pp-dp-tentar { min-height: 44px; padding: 0 10px; border: 0; background: transparent; color: var(--erro); font-weight: 800; text-decoration: underline; cursor: pointer; }
.pp-dp-voltar { width: calc(100% - 36px); margin: 12px 18px 0; }
.pp-dp-resumo-card .pp-resumo-nota { padding: 0 18px 18px; }

@media (max-width: 1023.98px) {
    .pp-layout { grid-template-columns: minmax(0, 1fr) 300px; }
}

@media (max-width: 759.98px) {
    .pp-barra { padding: 12px; }
    .pp-abas { width: 100%; }
    .pp-aba { flex: 1 1 0; justify-content: center; padding: 0 8px; }
    .pp-ordenar-rotulo { width: 100%; justify-content: space-between; }
    .pp-ordenar { flex: 1 1 auto; }
    .pp-campo-linha { grid-template-columns: 1fr; }
    .pp-card-acao { width: 100%; justify-content: center; }
    /* Proposta: uma coluna, resumo depois da lista. */
    .pp-layout { grid-template-columns: 1fr; }
    .pp-resumo { position: static; }
    .pp-qtd { border-right: 0; padding-right: 0; }
    .pp-acoes-fim { margin-left: 0; width: 100%; }
    .pp-salvar { flex: 1 1 auto; }
    .pp-sol-corpo { grid-template-columns: auto minmax(0, 1fr); }
    .pp-sol-valor { grid-column: 2; text-align: left; }
    .pp-dp-trio { grid-template-columns: 1fr; }
}

/* ── Janela "Adicionar à proposta" na página da solução (Task 8) ── */
.pp-pk-nova { margin-top: 14px; width: 100%; }
.pp-pk-ok, .pp-pk-erro { margin: 12px 0 0; padding: 10px 12px; border-radius: 8px; font-size: 14px; }
.pp-pk-ok { background: #e6f5f3; color: #0a5e57; font-weight: 700; }
.pp-pk-ok a { color: #0a5e57; font-weight: 800; margin-left: 6px; }
.pp-pk-erro { background: #fdecea; color: #c62828; }
.pp-pk-lista { list-style: none; margin: 14px 0 0; padding: 0; display: flex; flex-direction: column; gap: 6px; max-height: 50vh; overflow-y: auto; }
.pp-pk-item { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 12px; padding: 10px 12px;
    border: 1px solid #e9eef6; border-radius: 10px; }
.pp-pk-texto { display: flex; flex-direction: column; min-width: 0; flex: 1 1 200px; }
.pp-pk-nome { font-weight: 700; overflow-wrap: anywhere; }
.pp-pk-sub { font-size: 12px; color: #465479; }
.pp-pk-ja { font-size: 13px; font-weight: 700; color: #0a5e57; }

/* ── Exportar PDF (Task 7) ── */
.pp-exportar { gap: 8px; }
.pp-exportar-icone { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.pp-acoes-fim .mc-acoes { display: inline-flex; align-items: center; gap: 8px; }
/* Só existe para a impressão: composição fechada e rodapé de referência. */
.pp-so-impressao { display: none; }

/* O PDF é a impressão do navegador desta página (decisão de 05/10): sai o que não é proposta (topo, menu,
   botões, avisos) e as observações internas, que nunca vão para o PDF. Cores mantidas (faixas e selos). */
@media print {
    @page { margin: 14mm 12mm; }
    .ah-topo, .spark-drawer, .mud-drawer, .mud-appbar, .mud-snackbar-provider, #blazor-error-ui,
    .pp-acoes, .pp-aviso-salvo, .pp-adicionar, .pp-sol-rodape, .pp-sol-botoes, .pp-sol-comp-btn, .pp-naotech-editar, .pp-mais,
    .pp-obs-internas, .pp-sem-valor, .pp-resumo-ref, .pp-naotech-vazio, .ph-breadcrumb, .pp-faixa-status, .mc-acoes, .mc-aviso { display: none !important; }
    .pp-so-impressao { display: block; }
    html, body, .mud-main-content, .pp-pagina { background: #fff !important; }
    .mud-main-content { padding: 0 !important; margin: 0 !important; }
    .pp-pagina { margin: 0; min-height: 0; }
    .pp-pagina, .pp-pagina * { print-color-adjust: exact; -webkit-print-color-adjust: exact; }
    .pp-faixa .ph-in { padding: 18px 20px 20px; }
    .pp-conteudo { margin-top: 12px; padding: 0; max-width: none; }
    /* Ordem do PDF: topo, investimento, soluções, não Tech, informações, rodapé. */
    .pp-layout { display: flex; flex-direction: column; gap: 14px; margin-top: 0; }
    .pp-resumo { order: -1; position: static; }
    .pp-sol, .pp-naotech, .pp-resumo-card, .pp-despesa, .pp-sol-comp li, .pp-port { break-inside: avoid; }
    .pp-sol, .pp-naotech, .pp-resumo-card { box-shadow: none; border: 1px solid #dbe3f0; }
    .pp-sol-nome { text-decoration: none; }
    .pp-rodape-impressao { margin: 16px 0 0; font-size: 11px; color: #465479; }
}
