/* ==========================================================================
   Edital — camada responsiva. Os estilos da tela vivem em styles.css (legado, com várias camadas repetidas e
   !important), então aqui as regras de layout também usam !important. Faixas: <= 900px celular/tablet retrato;
   901–1100px sidebar fixa com pouca largura; acima disso, o desenho aprovado. Carregado depois de styles.css e antes
   de mobile-shell.css.
   ========================================================================== */

/* Grades com trilha `1fr` (= minmax(auto, 1fr)) crescem até o conteúdo mais largo e estouram o contêiner. */
.edital-layout-refined,
.edital-left-zone,
.edital-workspace.edital-workspace-refined {
  min-width: 0;
}

.edital-layout-refined > *,
.edital-left-zone > *,
.edital-workspace-refined > * {
  min-width: 0;
}

@media (max-width: 1500px) {
  .edital-layout-refined { grid-template-columns: minmax(0, 1fr) !important; }
}

/* Métricas: cartões quadrados (aspect-ratio 1/1) com o texto de apoio saindo por baixo ("Peso total:" ficava sobre a
   área seguinte) e disciplinas + detalhe lado a lado com menos de ~1180px de largura (colunas de status e ações cortadas). */
/* Desenho de 1181px+: cartões com proporção fixa (1.5/1) e min-height: 0 não crescem quando o texto passa da altura
   ("Incidência total" e "Tópicos sem incidência" vazavam até ~16px em 1920px, onde o cartão tem só ~200px de largura).
   Sem a proporção, a altura vira "no mínimo o que o desenho pedia, ou o conteúdo". */
@media (min-width: 1181px) {
  .edital-metrics-refined .edital-metric { aspect-ratio: auto !important; min-height: 133px !important; height: auto !important; }
}

@media (max-width: 1180px) {
  .edital-metrics-refined .edital-metric {
    aspect-ratio: auto !important;
    min-height: 96px !important;
    height: auto !important;
  }
}

@media (max-width: 1180px) {
  .edital-workspace.edital-workspace-refined {
    grid-template-columns: minmax(0, 1fr) !important;
  }
}

@media (max-width: 900px) {
  /* Cabeçalho: seletor de edital em linha própria; Importar e Gerenciar lado a lado. */
  .edital-head .page-context-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
  }

  .edital-head .page-context-actions > * {
    width: 100%;
    min-width: 0;
    min-height: 44px;
    height: 44px;
  }

  .edital-head .page-context-actions > select { grid-column: 1 / -1; }

  /* Métricas em 2 colunas; a quinta ocupa a linha inteira. Ícone acima, texto em largura total. */
  .edital-metrics.edital-metrics-refined {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 8px !important;
  }

  .edital-metrics-refined .edital-metric:nth-child(5) { grid-column: 1 / -1; }

  .edital-metrics-refined .edital-metric {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    align-content: start;
    gap: 6px !important;
    padding: 12px !important;
  }

  .edital-metrics-refined .edital-metric-content { min-width: 0; }
  .edital-metrics-refined .edital-metric-content > span { overflow-wrap: anywhere; font-size: 11px !important; }
  .edital-metrics-refined .edital-metric-content > small { font-size: 11px !important; }

  /* Painel da disciplina: as três estatísticas em uma linha compacta. */
  .edital-discipline-stats { gap: 8px !important; }
  .edital-discipline-stats > div { min-width: 0; }
  .edital-discipline-stats span { font-size: 11px !important; line-height: 1.2; }

  /* Densidade: o objetivo no celular é mostrar o essencial de cara, não encaixar o desktop. Métricas em duas
     linhas (3 + 2) sem ícones decorativos; disciplinas e tópicos com menos altura por item. */
  .edital-metrics.edital-metrics-refined { grid-template-columns: repeat(6, minmax(0, 1fr)) !important; gap: 6px !important; }
  .edital-metrics-refined .edital-metric { grid-column: span 2 !important; min-height: 0 !important; padding: 8px 10px !important; gap: 2px !important; border-radius: 10px !important; }
  .edital-metrics-refined .edital-metric:nth-child(n+4) { grid-column: span 3 !important; }
  .edital-metrics-refined .edital-metric:nth-child(5) { grid-column: span 3 !important; }
  .edital-metrics-refined .edital-metric-icon { display: none !important; }
  .edital-metrics-refined .edital-metric-content { display: flex !important; flex-direction: column; gap: 1px !important; }
  .edital-metrics-refined .edital-metric-content > * { margin: 0 !important; }
  .edital-metrics-refined .edital-metric-content > span { font-size: 9.5px !important; line-height: 1.15; letter-spacing: .03em; }
  .edital-metrics-refined .edital-metric-content > strong { font-size: 20px !important; line-height: 1.1; }
  .edital-metrics-refined .edital-metric-content > small { overflow: hidden; font-size: 10px !important; line-height: 1.2; text-overflow: ellipsis; white-space: nowrap; }

  /* Lista de disciplinas: só o peso na etiqueta (importância e nível estão no detalhe), progresso mais fino. */
  .edital-discipline-card { display: grid !important; padding: 10px 12px !important; gap: 5px !important; }
  .edital-discipline-card > * { margin: 0 !important; }
  /* A busca esconde cartões com o atributo hidden; um display de autor com !important o anularia. */
  .edital-discipline-card[hidden] { display: none !important; }
  .edital-discipline-card strong { font-size: 14px !important; }
  .edital-discipline-card .discipline-pill-row i:not(.weight) { display: none !important; }
  .edital-discipline-card small { font-size: 11px !important; }
  .edital-discipline-card em { height: 4px !important; }
  .edital-discipline-list { gap: 6px !important; }

  /* Linhas de tópico: nome em largura total; depois prioridade, incidência, status e ações numa só linha; subtópicos
     abaixo. A grade do desktop tem colunas de 180/74/72/94/30px que somam mais que a tela, e o legado posiciona os
     filhos por grid-column/grid-row com !important (status na coluna 4), o que anulava grid-template-columns; por isso
     o posicionamento aqui é explícito e com !important. */
  .edital-tree-area-refined .edital-tree-head { display: none !important; }

  .edital-page .edital-tree-area-refined .edital-topic-row-refined {
    display: grid !important;
    grid-template-columns: auto auto minmax(0, 1fr) auto !important;
    align-items: center;
    gap: 4px 10px !important;
    padding: 8px 10px !important;
  }

  .edital-page .edital-tree-area-refined .edital-topic-row-refined > .edital-topic-main { grid-column: 1 / -1 !important; grid-row: 1 !important; min-width: 0; }
  .edital-page .edital-tree-area-refined .edital-topic-row-refined > :nth-child(2) { grid-column: 1 !important; grid-row: 2 !important; min-width: 0; }
  .edital-page .edital-tree-area-refined .edital-topic-row-refined > .edital-incidence-cell { grid-column: 2 !important; grid-row: 2 !important; }
  .edital-page .edital-tree-area-refined .edital-topic-row-refined > .topic-action-stack { grid-column: 4 !important; grid-row: 2 !important; justify-self: end; }
  .edital-page .edital-tree-area-refined .edital-topic-row-refined > .status-dot { grid-column: 1 / -1 !important; grid-row: 3 !important; justify-self: start; min-width: 0; font-size: 11px; line-height: 1.2; white-space: normal; }
  .edital-page .edital-tree-area-refined .edital-topic-row-refined > .edital-subtopics { grid-column: 1 / -1 !important; grid-row: 4 !important; min-width: 0; }
  .edital-topic-row-refined .drag-handle { display: none !important; }
  .edital-empty-subtopic { padding: 4px 0 !important; font-size: 11px !important; }

  /* Subtópicos: nome, status e ações em uma linha (a grade legada de 5 colunas passava da tela). */
  .edital-page .edital-tree-area-refined .edital-subtopic-row {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto auto !important;
    align-items: center;
    gap: 4px 6px !important;
    padding: 2px 4px !important;
  }

  .edital-page .edital-tree-area-refined .edital-subtopic-row > * { grid-column: auto !important; grid-row: auto !important; min-width: 0; }
  .edital-page .edital-tree-area-refined .edital-subtopic-row > .edital-priority-empty,
  .edital-page .edital-tree-area-refined .edital-subtopic-row > .edital-incidence-dash { display: none !important; }
  .edital-subtopic-row .status-dot { font-size: 10.5px; white-space: nowrap; }
  .edital-subtopic-row .drag-handle { display: none !important; }

  .edital-topic-main input[data-action="edit-topic-name"] { min-width: 0; width: 100%; }

  /* Cabeçalho: o seletor de edital colava no texto secundário; ganha respiro e fica um pouco mais baixo. */
  .edital-head .page-context-actions { margin-top: 10px; }
  .edital-head .page-context-actions > select { height: 40px; min-height: 40px; }

  /* Alvos de toque. */
  .edital-topic-row-refined .topic-toggle,
  .edital-topic-row-refined .topic-action-stack button { min-width: 36px; min-height: 36px; }
  .edital-subtopic-row .subtopic-action-stack .icon-only { width: 32px !important; height: 32px !important; min-width: 32px !important; min-height: 32px !important; }
  .edital-add-line { min-height: 44px; }
  .edital-search-row .edital-add-discipline-button { min-height: 44px; }
}

/* Ações de tópico (+ ✓ lixeira) e de subtópico (✓ lixeira) sempre numa só linha, alinhadas à direita. A grade legada tinha 42px na
   última coluna para 1 botão; com 3 botões a lixeira vazava do contorno da linha, e como 6º filho do subtópico ela quebrava
   para uma linha própria (aumentando o espaço entre subtópicos). */
.subtopic-action-stack { display: inline-flex; align-items: center; justify-content: flex-end; gap: 3px; }
.edital-subtopic-row .subtopic-action-stack .icon-only { width: 24px !important; height: 24px !important; min-height: 24px !important; min-width: 24px !important; padding: 0 !important; }
.edital-subtopic-row .subtopic-action-stack .danger-soft { opacity: 0.28; }
.edital-subtopic-row:hover .subtopic-action-stack .danger-soft,
.edital-subtopic-row .subtopic-action-stack .danger-soft:focus-visible { opacity: 0.9; }

@media (min-width: 901px) {
  .edital-page .edital-tree-area-refined .edital-tree-head,
  .edital-page .edital-tree-area-refined .edital-topic-row-refined,
  .edital-page .edital-tree-area-refined .edital-subtopic-row { grid-template-columns: minmax(140px, 1fr) 86px 84px 116px 84px !important; }
  .edital-page .edital-tree-area-refined .edital-topic-row-refined > .topic-action-stack,
  .edital-page .edital-tree-area-refined .edital-subtopic-row > .subtopic-action-stack { grid-column: 5 !important; justify-self: end !important; }
}

/* Botão "marcar como concluído" (tópico e subtópico), ao lado da lixeira. Vale em qualquer largura. */
.topic-done-button.is-done,
.subtopic-done-button.is-done { border-color: rgba(34, 197, 94, 0.55); background: rgba(34, 197, 94, 0.16); color: #4ade80; }
html[data-theme="light"] .topic-done-button.is-done,
html[data-theme="light"] .subtopic-done-button.is-done { color: #15803d; }
.topic-done-button svg,
.subtopic-done-button svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }
.edital-subtopic-row button.icon-only { min-width: 36px; min-height: 36px; }

/* Etiqueta "Edital ativo" (gerenciador de editais): a versão verde/roxa de contorno se confundia com os botões Editar e
   Excluir do mesmo cartão. Agora é um selo ciano preenchido, sem cara de botão. */
.exam-manager-card .exam-manager-active-badge {
  border: 0;
  border-radius: 999px;
  background: rgba(6, 182, 212, 0.18);
  color: #67e8f9;
  font-weight: 700;
  letter-spacing: 0.04em;
  box-shadow: inset 0 0 0 1px rgba(6, 182, 212, 0.35);
}
html[data-theme="light"] .exam-manager-card .exam-manager-active-badge { background: rgba(8, 145, 178, 0.12); color: #0e7490; box-shadow: inset 0 0 0 1px rgba(8, 145, 178, 0.35); }

/* Confirmações do Edital: variante positiva (concluir/reabrir) do diálogo de exclusão. */
.history-delete-confirm.is-positive .history-confirm-icon { border-color: rgba(34, 197, 94, 0.4); background: rgba(34, 197, 94, 0.1); color: #4ade80; }
.history-delete-confirm.is-positive .history-confirm-record { color: #86efac; }
html[data-theme="light"] .history-delete-confirm.is-positive .history-confirm-icon { color: #15803d; }
html[data-theme="light"] .history-delete-confirm.is-positive .history-confirm-record { color: #15803d; }

/* Botões de ação de 24px (+, concluir, excluir) com raio de 10px viravam círculos; o padrão (--radius-sm) é um quadrado
   arredondado, e círculos ficam reservados a ícones/scores/progresso. */
.topic-action-stack .icon-only,
.subtopic-action-stack .icon-only { border-radius: var(--radius-sm, 7px) !important; }

/* Importar edital: drawer compacto; a prévia é uma nota curta, não um bloco de leitura. */
.edital-import-modal .edital-import-preview { margin-top: 12px; padding: 10px 14px; }
.edital-import-modal .edital-import-preview strong { font-size: 13px; }
.edital-import-modal .edital-import-preview p { margin: 4px 0 0; font-size: 13px; line-height: 1.45; }
