* { box-sizing: border-box; }
html, body { height: 100%; }
body {
  margin: 0;
  background: var(--dp-bg);
  color: var(--dp-ink);
  font-family: var(--dp-font-sans);
}

.app-frame {
  max-width: 600px;
  margin: 0 auto;
  min-height: 100vh;
  padding: var(--dp-space-5) var(--dp-space-4) 60px;
  display: flex;
  flex-direction: column;
  gap: var(--dp-space-5);
}

.dp-header { display: flex; align-items: center; justify-content: space-between; gap: var(--dp-space-3); }
.dp-wordmark { font-family: var(--dp-font-serif); font-style: italic; font-size: 20px; }
.dp-logo { height: 30px; width: auto; display: block; }
.dp-logo-header { height: 22px; }

.dp-card {
  background: var(--dp-bg-elevated);
  border: 1px solid var(--dp-border);
  border-radius: var(--dp-radius-lg);
  padding: var(--dp-space-5);
  box-shadow: 0 4px 14px rgba(26, 26, 26, 0.05);
}

.dp-section-title {
  font-size: 12px; letter-spacing: 0.08em; text-transform: uppercase;
  color: var(--dp-ink-faint); margin: 0 0 var(--dp-space-3);
}

.dp-input, .dp-textarea, .dp-select {
  width: 100%; font: inherit; font-size: 14.5px;
  border: 1px solid var(--dp-border); border-radius: var(--dp-radius-sm);
  padding: 10px 12px; background: var(--dp-bg); color: var(--dp-ink);
  margin-bottom: var(--dp-space-3);
}
.dp-textarea { min-height: 80px; resize: vertical; }
.dp-input:focus, .dp-textarea:focus, .dp-select:focus { outline: none; border-color: var(--dp-ink); background: #fff; }

.dp-label { display: block; font-size: 12.5px; color: var(--dp-ink-soft); margin-bottom: 4px; }

.dp-btn {
  font: inherit; font-size: 14px; font-weight: 600;
  border-radius: var(--dp-radius-sm); padding: 10px 16px;
  border: 1px solid transparent; cursor: pointer; transition: 0.14s;
}
.dp-btn-ink { background: var(--dp-ink); color: #fff; }
.dp-btn-ink:hover { background: #000; }
.dp-btn-accent { background: var(--dp-accent); color: var(--dp-ink); }
.dp-btn-accent:hover { filter: brightness(0.95); }
.dp-btn-ghost { background: transparent; border-color: var(--dp-border); color: var(--dp-ink); }
.dp-btn-ghost:hover { background: var(--dp-accent-soft); }
.dp-btn-sm { font-size: 12.5px; padding: 6px 10px; }
.dp-btn:disabled { opacity: 0.5; cursor: default; }
.dp-btn-danger { color: var(--dp-danger); border-color: var(--dp-danger); }

.dp-row { display: flex; gap: var(--dp-space-3); }
.dp-row > * { flex: 1; }
.dp-row-between { display: flex; align-items: center; justify-content: space-between; gap: var(--dp-space-3); }

.dp-badge {
  font-size: 10.5px; text-transform: uppercase; letter-spacing: 0.04em;
  padding: 2px 8px; border-radius: 999px; background: var(--dp-accent-soft); color: var(--dp-accent-ink);
}
.dp-badge.extra { background: #f3e2da; color: var(--dp-danger); }

.dp-gate { text-align: center; padding: var(--dp-space-6) var(--dp-space-4); display: flex; flex-direction: column; align-items: center; gap: var(--dp-space-4); }
.dp-gate p { color: var(--dp-ink-soft); font-size: 14.5px; max-width: 340px; }
.dp-hint { font-size: 12.5px; color: var(--dp-ink-faint); }
.dp-hint.warn { color: var(--dp-danger); font-weight: 600; }

/* dashboard / picker de entidades */
.dp-entidade-picker { display: flex; gap: var(--dp-space-2); flex-wrap: wrap; margin-bottom: var(--dp-space-3); }
.dp-entidade-chip {
  font-size: 13px; padding: 6px 12px; border-radius: 999px; border: 1px solid var(--dp-border);
  background: #fff; cursor: pointer;
}
.dp-entidade-chip.ativo { background: var(--dp-accent); color: var(--dp-ink); border-color: var(--dp-accent); font-weight: 700; }

.dp-entidade-lista-item {
  display: flex; align-items: center; justify-content: space-between; padding: var(--dp-space-3) 0;
  border-bottom: 1px solid var(--dp-border); cursor: pointer;
}
.dp-entidade-lista-item:last-child { border-bottom: none; }
.dp-entidade-lista-item b { font-size: 14.5px; }
.dp-entidade-lista-item span { font-size: 12px; color: var(--dp-ink-faint); }

/* subnav */
.dp-subnav {
  display: flex; gap: 4px; background: var(--dp-bg-elevated); border: 1px solid var(--dp-border);
  border-radius: 999px; padding: 4px; overflow-x: auto;
}
.dp-subnav-item {
  flex: 1; text-align: center; font: inherit; font-size: 12.5px; font-weight: 600; white-space: nowrap;
  padding: 8px 10px; border: none; border-radius: 999px; background: none; color: var(--dp-ink-soft); cursor: pointer;
}
.dp-subnav-item.on { background: var(--dp-accent); color: var(--dp-ink); }

/* tipo de registro — seletor de chips */
.dp-tipo-picker { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: var(--dp-space-4); }
.dp-tipo-chip {
  font: inherit; font-size: 13px; font-weight: 600; padding: 8px 14px; border-radius: var(--dp-radius-sm);
  border: 1px solid var(--dp-border); background: var(--dp-bg); cursor: pointer; color: var(--dp-ink-soft);
}
.dp-tipo-chip.on { background: var(--dp-ink); color: #fff; border-color: var(--dp-ink); }

/* editor de pontos de pauta */
.dp-ponto { border: 1px solid var(--dp-border); border-radius: var(--dp-radius-sm); padding: var(--dp-space-3); margin-bottom: var(--dp-space-3); background: var(--dp-bg); }
.dp-ponto-titulo { font-weight: 700; font-size: 14px; margin-bottom: 6px; display: flex; justify-content: space-between; gap: 8px; }
.dp-ponto textarea { width: 100%; font: inherit; font-size: 13.5px; border: 1px solid var(--dp-border); border-radius: 6px; padding: 8px; background: #fff; min-height: 60px; resize: vertical; margin-bottom: 6px; }
.dp-encaminhamento { background: var(--dp-accent-soft); border-radius: 6px; padding: 8px 10px; font-size: 12.5px; margin-top: 6px; }
.dp-encaminhamento b { color: var(--dp-accent-ink); }
.dp-add-ponto { display: flex; gap: 8px; }
.dp-add-ponto input { flex: 1; }

/* registros no histórico */
.dp-registro { padding: var(--dp-space-3) 0; border-bottom: 1px solid var(--dp-border); }
.dp-registro:last-child { border-bottom: none; }
.dp-registro-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 4px; }
.dp-registro-data { font-size: 13px; font-weight: 600; }
.dp-registro-campo { font-size: 13.5px; line-height: 1.5; margin: 4px 0; }
.dp-registro-campo b { color: var(--dp-ink-soft); font-weight: 600; }

/* membros / gestão */
.dp-membro-row { display: flex; align-items: center; justify-content: space-between; padding: var(--dp-space-2) 0; border-bottom: 1px solid var(--dp-border); font-size: 14px; gap: 8px; }
.dp-membro-row:last-child { border-bottom: none; }
.dp-papel { font-size: 11.5px; color: var(--dp-ink-faint); text-transform: uppercase; letter-spacing: 0.04em; }
.dp-acesso-select { font: inherit; font-size: 12px; border: 1px solid var(--dp-border); border-radius: 6px; padding: 4px 6px; background: #fff; }

.dp-ficha-campo { display: flex; justify-content: space-between; padding: 8px 0; border-bottom: 1px solid var(--dp-border); font-size: 13.5px; }
.dp-ficha-campo:last-child { border-bottom: none; }
.dp-ficha-campo .label { color: var(--dp-ink-faint); }
.dp-ficha-campo .valor { font-weight: 600; text-align: right; }

.dp-alerta { background: var(--dp-accent-soft); border: 1px solid var(--dp-accent); border-radius: var(--dp-radius-md); padding: var(--dp-space-4); }
.dp-alerta p { margin: 0 0 8px; font-size: 13.5px; }
