/* Bramfor Reclutamiento – páginas públicas (candidatos, empresas, empleos). Colores de bramfor.com. */
.brm-portal {
	--brm-primary: #00529b;   /* azul oscuro de bramfor.com */
	--brm-secondary: #4678ab; /* azul del logo */
	--brm-accent: #ea6859;    /* coral de "Business Consulting" */
	--brm-text: #1d2327;
	--brm-muted: #5c6670;
	--brm-line: #dfe3e8;
	max-width: 720px; margin: 0 auto; font-size: 16px; line-height: 1.55; color: var(--brm-text);
}
.brm-portal *, .brm-portal *::before, .brm-portal *::after { box-sizing: border-box; }

/* Logo */
.brm-portal .brm-brand { text-align: center; padding: 8px 0 18px; margin-bottom: 22px; border-bottom: 3px solid var(--brm-accent); }
.brm-portal .brm-brand img { max-width: 260px; width: 100%; height: auto; display: inline-block; }

/* Cajas */
.brm-portal .brm-box { background: #fff; border: 1px solid var(--brm-line); border-top: 4px solid var(--brm-primary); border-radius: 10px; padding: 28px; margin-bottom: 20px; }
.brm-portal .brm-box h2 { margin-top: 0; font-size: 1.4em; color: var(--brm-primary); }
.brm-portal .brm-box h3 { margin: 0; font-size: 1.15em; color: var(--brm-primary); }
.brm-portal .brm-ok { border-top-color: #1e8a3e; background: #f4fbf5; }
.brm-portal .brm-ok h2 { color: #1e6b33; }
.brm-portal a { color: var(--brm-primary); }

/* Formularios */
.brm-portal fieldset { border: 0; padding: 0; margin: 0 0 24px; }
.brm-portal legend { font-weight: 700; font-size: 1.05em; margin-bottom: 10px; padding: 0 0 4px; color: var(--brm-primary); border-bottom: 2px solid var(--brm-accent); }
.brm-portal label, .brm-portal .brm-question { display: block; margin: 0 0 14px; font-weight: 600; }
.brm-portal input[type=text], .brm-portal input[type=email], .brm-portal input[type=tel], .brm-portal input[type=file], .brm-portal textarea, .brm-portal select {
	display: block; width: 100%; margin-top: 6px; padding: 10px 12px; font-size: 16px; font-weight: 400; font-family: inherit;
	border: 1px solid #c3c4c7; border-radius: 6px; background: #fff; color: var(--brm-text);
}
.brm-portal input:focus, .brm-portal textarea:focus, .brm-portal select:focus { outline: 2px solid var(--brm-secondary); outline-offset: 1px; border-color: var(--brm-secondary); }
.brm-portal .brm-qlabel { display: block; margin-bottom: 6px; }
.brm-portal .brm-options { display: flex; flex-wrap: wrap; gap: 8px; }
.brm-portal .brm-option { display: inline-flex; align-items: center; gap: 6px; font-weight: 400; margin: 0; padding: 8px 12px; border: 1px solid #c3c4c7; border-radius: 6px; cursor: pointer; }
.brm-portal .brm-option:has(input:checked) { border-color: var(--brm-primary); background: #eef4fa; }
.brm-portal .brm-optional { font-weight: 400; color: var(--brm-muted); }
.brm-portal .brm-note { display: block; font-weight: 400; color: var(--brm-muted); font-size: .95em; }
.brm-portal .brm-consent { display: flex; gap: 10px; align-items: flex-start; font-weight: 400; font-size: .9em; color: #3c434a; margin: 8px 0 20px; }
.brm-portal .brm-consent input { margin-top: 4px; flex: 0 0 auto; }
.brm-portal .brm-tests { display: flex; flex-direction: column; gap: 8px; margin-top: 6px; }
.brm-portal .brm-test-row { display: grid; grid-template-columns: 2fr 1fr; gap: 8px; }
.brm-portal .brm-test-row input { margin-top: 0; }

/* Botones */
.brm-portal .brm-submit { display: block; width: 100%; padding: 14px; font-size: 17px; font-weight: 700; color: #fff; background: var(--brm-primary); border: 0; border-radius: 8px; cursor: pointer; font-family: inherit; }
.brm-portal .brm-submit:hover { background: #003f78; color: #fff; }
.brm-portal .brm-submit[disabled] { background: #a7aaad; cursor: not-allowed; }
.brm-portal .brm-link-button { display: inline-block; width: auto; padding: 11px 26px; text-decoration: none; text-align: center; }

/* Mensajes */
.brm-portal .brm-errors { background: #fcf0f1; border: 1px solid #f0b5b7; border-radius: 6px; padding: 12px 16px; margin-bottom: 20px; color: #8a1f21; }
.brm-portal .brm-errors ul { margin: 6px 0 0 18px; }
.brm-portal .brm-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.brm-portal .brm-description { margin: 0 0 16px; }
.brm-preview-banner { max-width: 720px; margin: 0 auto 12px; background: #fdecea; color: #8c3b31; border-left: 4px solid var(--brm-accent, #ea6859); border-radius: 6px; padding: 10px 16px; font-weight: 600; }

/* Empleos */
.brm-portal .brm-job h2 { margin-bottom: 4px; }

/* Portal de empresas */
.brm-portal .brm-back { margin: 0 0 12px; }
.brm-portal .brm-company-intro h2 { margin-bottom: 6px; }
.brm-portal .brm-vc-top { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; margin-bottom: 4px; }
.brm-portal .brm-status { flex: 0 0 auto; font-size: 12px; font-weight: 700; padding: 3px 10px; border-radius: 12px; background: #eef4fa; color: var(--brm-primary); white-space: nowrap; }
.brm-portal .brm-status-enviados, .brm-portal .brm-status-garantia { background: #fdecea; color: #a8402f; }
.brm-portal .brm-status-cerrada { background: #e8f5ec; color: #1e6b33; }
.brm-portal .brm-status-pausada { background: #f0f0f1; color: #50575e; }
.brm-portal .brm-counters { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; margin-top: 14px; }
.brm-portal .brm-counters div { background: #f6f8fb; border-radius: 8px; padding: 10px 6px; text-align: center; }
.brm-portal .brm-counters b { display: block; font-size: 1.5em; color: var(--brm-primary); line-height: 1.2; }
.brm-portal .brm-counters span { display: block; font-size: 12px; color: var(--brm-muted); line-height: 1.3; }
.brm-portal .brm-pending { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; background: #fdecea; border-left: 4px solid var(--brm-accent); border-radius: 6px; padding: 10px 14px; margin: 12px 0 0; font-weight: 600; color: #8c3b31; }
.brm-portal .brm-pending .brm-link-button { padding: 8px 18px; font-size: 15px; }

/* Pruebas */
.brm-portal .brm-timer { position: sticky; top: 0; z-index: 10; background: var(--brm-primary); color: #fff; font-weight: 700; text-align: center; padding: 10px; border-radius: 8px; margin-bottom: 16px; }
.brm-portal .brm-timer.is-ending { background: var(--brm-accent); }
.brm-portal .brm-test-q { padding: 20px 24px; }
.brm-portal .brm-q-number { font-size: 12px; font-weight: 700; color: var(--brm-secondary); margin-bottom: 6px; }
.brm-portal .brm-q-text { font-weight: 600; margin-bottom: 10px; }
.brm-portal .brm-q-text p { margin: 0 0 8px; }
.brm-portal .brm-q-text img { max-width: 100%; height: auto; }
.brm-portal .brm-answers { display: flex; flex-direction: column; gap: 6px; }
.brm-portal .brm-answer { display: flex; gap: 10px; align-items: flex-start; margin: 0; padding: 9px 12px; border: 1px solid var(--brm-line); border-radius: 6px; font-weight: 400; cursor: pointer; }
.brm-portal .brm-answer:has(input:checked) { border-color: var(--brm-primary); background: #eef4fa; }
.brm-portal .brm-answer input { margin-top: 4px; flex: 0 0 auto; }
.brm-portal .brm-answer img { max-width: 140px; height: auto; }
.brm-portal .brm-done-note { background: #e8f5ec; color: #1e6b33; border-radius: 6px; padding: 8px 12px; font-weight: 600; }

@media (max-width: 600px) {
	.brm-portal .brm-box { padding: 20px 16px; }
	.brm-portal .brm-counters { grid-template-columns: repeat(2, 1fr); }
}
