/* Vagas fixas, candidaturas a vagas fixas, entrevista e currículo (js/views/fixed.js, js/views/resume.js). Prefixo fx-. */

/* ------------------------------------------------------------ feed de vagas fixas */
.fx-section { display: flex; flex-direction: column; gap: 12px; }
.fx-search .input-with-button > input { min-height: 44px; }
.fx-search .btn { min-height: 44px; }

.fx-filters {
  background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius);
}
.fx-filters > summary {
  cursor: pointer; padding: 12px 14px; min-height: 44px; font-weight: 700; color: var(--primary);
  list-style: none; display: flex; align-items: center; gap: 8px;
}
.fx-filters > summary::-webkit-details-marker { display: none; }
.fx-filters > summary::before { content: "⚙"; font-size: 1rem; }
.fx-filters[open] > summary { border-bottom: 1px solid var(--border); }
.fx-filters-body { padding: 12px 14px 14px; display: flex; flex-direction: column; gap: 12px; }
.fx-filters-body .filter-actions { flex-wrap: wrap; }
.fx-filters-body select, .fx-filters-body input { min-height: 44px; }

.fx-list-status:empty { display: none; }
.fx-list { margin: 0; }
.fx-more:empty { display: none; }

.fx-job-card, .fx-app-card { display: flex; flex-direction: column; gap: 4px; }
.fx-job-card .kind-tag, .fx-app-card .kind-tag { align-self: flex-start; margin-bottom: 4px; }
.fx-card-title { font-size: 1.05rem; margin: 0; line-height: 1.3; overflow-wrap: anywhere; }
.fx-company { margin: 0; }
.fx-salary { margin: 4px 0; font-size: 1.05rem; font-weight: 800; color: var(--primary); font-variant-numeric: tabular-nums; }
.fx-salary-lg { font-size: 1.25rem; }
.fx-card-meta { border-top: 1px solid #e8ecf1; padding-top: 6px; }
.fx-card-meta p { margin: 0 0 2px; }
.fx-schedule { font-weight: 600; }
.fx-pcd { margin: 4px 0 0; font-weight: 700; color: var(--fixa); }

.fx-tags { list-style: none; margin: 6px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.fx-tag {
  padding: 2px 10px; border-radius: 999px; background: var(--fixa-soft); color: #0d3c78;
  font-size: 0.82rem; font-weight: 600; border: 1px solid #c3daf5;
}
.fx-tag-check::before { content: "✓ "; font-weight: 800; }
.fx-benefits { margin-bottom: 8px; }

/* ------------------------------------------------------------ detalhe */
.fx-detail { display: flex; flex-direction: column; }
.fx-detail-title { font-size: 1.35rem; margin: 6px 0 2px; line-height: 1.25; overflow-wrap: anywhere; }
.fx-detail .card > p { margin-bottom: 4px; }
.fx-apply { margin-bottom: 16px; }
.fx-apply .hint { margin-top: 6px; }
.fx-detail-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 0 16px; align-items: start; }

/* ------------------------------------------------------------ candidaturas */
.fx-app-link { display: flex; flex-direction: column; gap: 4px; }
.fx-app-link:hover .fx-card-title { color: var(--primary); text-decoration: underline; }
.fx-app-card .row-actions { margin-top: 8px; }
.fx-interview-line { margin: 2px 0 0; }

.fx-interview { background: var(--warning-soft); border-color: #f2d19b; }
.fx-company-msg { margin-top: 8px; padding-top: 8px; border-top: 1px solid #f2d19b; }
.fx-company-msg p { margin: 0 0 2px; }
.fx-video { margin-bottom: 16px; display: flex; flex-direction: column; gap: 6px; }
.fx-video p { margin: 0; }
.fx-actions { display: flex; flex-direction: column; gap: 10px; margin: 4px 0 16px; }
.fx-actions > .btn { width: 100%; min-height: 48px; }

/* ------------------------------------------------------------ currículo */
.fx-resume textarea { width: 100%; }
.fx-counter { text-align: right; }
.fx-exp-items { list-style: none; margin: 0 0 12px; padding: 0; }
.fx-exp {
  display: flex; gap: 12px; justify-content: space-between; align-items: flex-start;
  padding: 10px 0; border-bottom: 1px solid #e8ecf1;
}
.fx-exp:last-child { border-bottom: none; }
.fx-exp-main { min-width: 0; flex: 1; }
.fx-exp-main p { margin: 0 0 2px; overflow-wrap: anywhere; }
.fx-exp-role { font-weight: 700; }
.fx-exp-actions { display: flex; gap: 6px; flex-wrap: wrap; justify-content: flex-end; }
.fx-save { margin: 4px 0 16px; }
.fx-save .hint { margin-top: 6px; text-align: center; }
.fx-pdf { display: flex; flex-direction: column; gap: 10px; }
.fx-pdf-file { display: flex; gap: 12px; align-items: center; }
.fx-pdf-file p { margin: 0; }
.fx-pdf-icon {
  flex: none; display: inline-grid; place-items: center; width: 44px; height: 52px; border-radius: 6px;
  background: var(--danger-soft); color: var(--danger); font-weight: 800; font-size: 0.8rem; border: 1px solid #f3b9b3;
}
.fx-pdf-name { font-weight: 700; overflow-wrap: anywhere; }

@media (max-width: 640px) {
  .fx-detail-grid { grid-template-columns: 1fr; }
  .fx-exp { flex-direction: column; }
  .fx-exp-actions { justify-content: flex-start; }
  .fx-filters-body .filter-actions .btn { flex: 1 1 140px; }
}

@media (min-width: 900px) {
  .fx-actions { flex-direction: row; flex-wrap: wrap; }
  .fx-actions > .btn { width: auto; }
}
