/* O mesmo ar da aplicação Windows: sóbrio, de escritório, sem enfeites. As cores são as dela. */
:root {
    --cor: #1F3A5F;
    --cor-clara: #EEF2F7;
    --suave: #5B6B7F;
    --linha: #C9D1DB;
    --alerta: #A3410B;
    --erro: #8B1A1A;
    --fundo: #F5F7FA;
}

* { box-sizing: border-box; }

html, body {
    margin: 0;
    padding: 0;
    background: var(--fundo);
    color: #16202B;
    font-family: "Segoe UI", system-ui, -apple-system, sans-serif;
    font-size: 14px;
}

a { color: var(--cor); }

h1 { font-size: 20px; margin: 16px 0 6px; color: var(--cor); }
h2 { font-size: 15px; margin: 0 0 6px; color: var(--cor); }
h3 { font-size: 14px; margin: 14px 0 6px; color: var(--cor); }

/* ---------------------------------------------------------------- topo */
header.topo {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 10px 18px;
    background: var(--cor);
    color: #fff;
    flex-wrap: wrap;
}

header.topo .marca strong { font-size: 16px; }
header.topo .marca span { color: #C5D3E4; margin-left: 10px; }
header.topo nav { display: flex; align-items: center; gap: 16px; }
header.topo nav a { color: #fff; text-decoration: none; }
header.topo nav a:hover, header.topo nav a.active { text-decoration: underline; }
header.topo nav .quem { color: #C5D3E4; }

main { padding: 0 18px 24px; }

/* ---------------------------------------------------------------- barra do processo */
section.barra {
    background: var(--cor-clara);
    border-bottom: 1px solid var(--linha);
    margin: 0 -18px 12px;
    padding: 10px 18px;
}

section.barra .linha { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin: 4px 0; }
section.barra label { font-weight: 600; color: var(--cor); }
section.barra label.visto { font-weight: 400; display: inline-flex; align-items: center; gap: 6px; }
.alerta { color: var(--alerta); font-weight: 600; }

/* ---------------------------------------------------------------- colunas */
.colunas { display: grid; grid-template-columns: minmax(0, 1fr) 420px; gap: 12px; align-items: start; }
@media (max-width: 1100px) { .colunas { grid-template-columns: minmax(0, 1fr); } }

section.caixa {
    background: #fff;
    border: 1px solid var(--linha);
    padding: 12px;
    margin-bottom: 12px;
}

/* ---------------------------------------------------------------- filtros */
.grade { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
@media (max-width: 900px) { .grade { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.campo { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.campo.largo { grid-column: span 2; }
.campo.botoes { justify-content: flex-end; flex-direction: row; gap: 6px; align-items: flex-end; }
.campo label, .prontas label { color: var(--suave); font-size: 11.5px; }
.juntos { display: flex; gap: 6px; align-items: center; }
.juntos input[type=text] { flex: 1 1 auto; min-width: 0; }

input, select, textarea {
    font-family: inherit;
    font-size: 14px;
    padding: 5px 7px;
    border: 1px solid var(--linha);
    background: #fff;
    color: inherit;
    width: 100%;
}

textarea { resize: vertical; }

button {
    font-family: inherit;
    font-size: 14px;
    padding: 6px 14px;
    border: 1px solid var(--linha);
    background: #fff;
    color: var(--cor);
    cursor: pointer;
}

button:hover:not(:disabled) { background: var(--cor-clara); }
button:disabled { opacity: .5; cursor: default; }
button.principal { background: var(--cor); color: #fff; border-color: var(--cor); font-weight: 600; }

.prontas { display: flex; align-items: flex-end; gap: 8px; margin-top: 10px; padding-top: 10px; border-top: 1px solid var(--linha); }
.prontas select { flex: 1 1 auto; min-width: 0; }

/* ---------------------------------------------------------------- a frase do que foi usado */
section.frase { background: #FFFDF2; border-color: #E2D7A8; }
section.frase p { margin: 0; }

/* ---------------------------------------------------------------- resultados */
table { width: 100%; border-collapse: collapse; font-size: 13px; }
thead th { text-align: left; border-bottom: 1px solid var(--linha); padding: 5px 6px; color: var(--suave); font-weight: 600; white-space: nowrap; }
tbody td { border-bottom: 1px solid #EAEEF3; padding: 5px 6px; vertical-align: top; }
tbody tr { cursor: pointer; }
tbody tr:hover { background: var(--cor-clara); }
tbody tr.escolhida { background: #E3ECF7; }
td.texto { max-width: 420px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.resultados { overflow-x: auto; }
.paginas { display: flex; align-items: center; gap: 10px; margin-top: 10px; }
.paginas span { margin-right: auto; }

/* ---------------------------------------------------------------- registo e referência */
.corpo { white-space: pre-wrap; word-break: break-word; max-height: 320px; overflow: auto; margin: 8px 0; }
pre.referencia {
    white-space: pre-wrap;
    word-break: break-all;
    background: var(--cor-clara);
    border: 1px solid var(--linha);
    padding: 8px;
    font-family: Consolas, "Courier New", monospace;
    font-size: 11.5px;
    margin: 0;
}

ul.observacoes { list-style: none; padding: 0; margin: 0 0 10px; }
ul.observacoes li { border-bottom: 1px solid #EAEEF3; padding: 8px 0; }
ul.observacoes p { margin: 4px 0; white-space: pre-wrap; }
p.resposta { background: var(--cor-clara); padding: 6px 8px; }

.resposta-ia { margin-top: 10px; border-top: 1px solid var(--linha); padding-top: 8px; }
.alerta-caixa { border: 1px solid var(--alerta); background: #FDF3EC; padding: 8px; margin-top: 10px; }
.alerta-caixa ul { margin: 6px 0 0; padding-left: 18px; }

/* ---------------------------------------------------------------- textos */
.suave { color: var(--suave); }
.explica { max-width: 70ch; }
.erro { color: var(--erro); font-weight: 600; }
.aviso { color: var(--suave); padding: 12px 0; }
.aviso-sigilo { border-left: 3px solid var(--alerta); padding: 6px 10px; background: #FDF3EC; max-width: 80ch; }
code { font-family: Consolas, "Courier New", monospace; font-size: 12.5px; }

/* ---------------------------------------------------------------- entrada */
.entrada { max-width: 460px; margin: 40px auto; background: #fff; border: 1px solid var(--linha); padding: 24px; }
.entrada form { display: flex; flex-direction: column; gap: 4px; margin-top: 14px; }
.entrada label { color: var(--suave); font-size: 11.5px; margin-top: 8px; }
.entrada button { margin-top: 16px; }
.entrada .nota { color: var(--suave); font-size: 12px; margin-top: 16px; }

#blazor-error-ui {
    display: none;
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    background: #FFF3CD;
    border-top: 1px solid #E2D7A8;
    padding: 10px 18px;
    z-index: 1000;
}
