/* Dashboard tab — former style="" attributes (CSP style-src hygiene).
   Scoped to #dashboard so these beat index.css element/form rules the
   same way the old inline styles did. Do not drop a property that was
   inline: focus rules repeat background/border/color where the inline
   value used to win over input:focus / textarea:focus. */

#dashboard .dash-stat-hint {
  display: block;
  font-size: 11px;
  color: var(--text-secondary);
  margin-top: 4px;
  font-weight: 500;
}

#dashboard .dash-card-gap { margin-top: 8px; }
#dashboard .dash-card-gap-lg { margin-top: 24px; }
#dashboard .dash-mb-12 { margin-bottom: 12px; }
#dashboard .dash-stack { margin-top: 10px; }
#dashboard .dash-stack-4 { margin-top: 4px; }
#dashboard .dash-stack-16 { margin-top: 16px; }

#dashboard .dash-title {
  font-family: var(--font-display);
  margin: 0;
  font-size: 18px;
}
#dashboard .dash-title-sm {
  font-family: var(--font-display);
  margin: 0;
  font-size: 16px;
}

#dashboard .dash-lead {
  margin: 6px 0 0;
  font-size: 13px;
  color: var(--text-secondary);
  line-height: 1.45;
}
#dashboard .dash-lead-spacious {
  margin: 6px 0 10px;
  font-size: 13px;
  color: var(--text-secondary);
  line-height: 1.45;
}
#dashboard .dash-lead-plain {
  margin: 6px 0 0;
  font-size: 13px;
  color: var(--text-secondary);
}

#dashboard .dash-hint {
  font-size: 12px;
  color: var(--text-muted);
  margin: 8px 0 0;
  line-height: 1.4;
}
#dashboard .dash-hint-loose {
  font-size: 12px;
  color: var(--text-muted);
  margin: 10px 0 0;
  line-height: 1.4;
}
#dashboard .dash-status {
  margin: 10px 0 0;
  font-size: 12px;
  color: var(--text-muted);
  line-height: 1.45;
}
#dashboard .dash-notice {
  margin: 0 0 10px;
  font-size: 12px;
  color: #fde68a;
  line-height: 1.4;
}
#dashboard .dash-scope {
  margin: 10px 0 0;
  font-size: 12px;
  color: var(--text-secondary);
  line-height: 1.4;
}
#dashboard .dash-meta {
  margin: 6px 0 0;
  font-size: 12px;
  color: var(--text-secondary);
}
#dashboard .dash-note-gap { margin: 8px 0 0; }

#dashboard .dash-strong {
  color: #fff;
  font-weight: 600;
}
#dashboard .dash-optin {
  font-weight: 500;
  color: var(--text-muted);
}

#dashboard .dash-field {
  width: 100%;
  margin-top: 6px;
}

#dashboard .dash-label-gap {
  display: block;
  margin-top: 10px;
}
#dashboard .dash-label-gap-sm {
  display: block;
  margin-top: 8px;
}
#dashboard .dash-label-gap-lg {
  display: block;
  margin-top: 12px;
}

#dashboard .dash-job-panel {
  margin-top: 14px;
  padding-top: 12px;
  border-top: 1px solid var(--glass-border);
}

#dashboard .dash-radio {
  display: flex;
  gap: 8px;
  align-items: flex-start;
  font-size: 13px;
  margin-bottom: 6px;
}
#dashboard .dash-radio-last {
  display: flex;
  gap: 8px;
  align-items: flex-start;
  font-size: 13px;
}

#dashboard .dash-actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: 10px;
}
#dashboard .dash-actions-mt8 {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: 8px;
}
#dashboard .dash-actions-tight {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  align-items: center;
  margin-top: 6px;
}
#dashboard .dash-actions-center {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  align-items: center;
  margin-top: 10px;
}
#dashboard .dash-actions-bare {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}
#dashboard .dash-step-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

#dashboard .dash-summary {
  font-size: 12px;
  color: var(--text-muted);
  cursor: pointer;
}
#dashboard .dash-summary-sec {
  cursor: pointer;
  font-size: 12px;
  color: var(--text-secondary);
}

#dashboard .dash-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 12px;
  flex-wrap: wrap;
  margin-bottom: 12px;
}
#dashboard .dash-head-mb10 {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 12px;
  flex-wrap: wrap;
  margin-bottom: 10px;
}

#dashboard .dash-file-label {
  cursor: pointer;
  margin: 0;
}

#dashboard .dash-banner-ok {
  margin: 10px 0 0;
  font-size: 13px;
  color: #a7f3d0;
  line-height: 1.45;
}

#dashboard .dash-code-input,
#dashboard .dash-code-input:focus {
  flex: 1;
  min-width: 160px;
  padding: 10px;
  background: rgba(0, 0, 0, 0.35);
  border: 1px solid var(--glass-border);
  border-radius: 8px;
  color: #fff;
  font-family: var(--font-mono);
  font-size: 13px;
  letter-spacing: 1px;
  text-transform: uppercase;
}

#dashboard .dash-mono,
#dashboard .dash-mono:focus {
  width: 100%;
  margin-top: 6px;
  padding: 10px;
  background: rgba(0, 0, 0, 0.35);
  border: 1px solid var(--glass-border);
  border-radius: 8px;
  color: #a7f3d0;
  font-family: var(--font-mono);
  font-size: 11px;
  resize: vertical;
}
#dashboard .dash-mono-mt8,
#dashboard .dash-mono-mt8:focus {
  width: 100%;
  margin-top: 8px;
  padding: 10px;
  background: rgba(0, 0, 0, 0.35);
  border: 1px solid var(--glass-border);
  border-radius: 8px;
  color: #a7f3d0;
  font-family: var(--font-mono);
  font-size: 11px;
  resize: vertical;
}

#dashboard .dash-activation {
  margin-top: 16px;
  padding: 12px 14px;
  border-radius: 10px;
  border: 1px solid rgba(52, 211, 153, 0.25);
  background: rgba(52, 211, 153, 0.08);
}
#dashboard .dash-activation-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}
#dashboard .dash-kicker {
  margin: 0;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.4px;
  color: #6ee7b7;
}
#dashboard .dash-activation-label {
  margin: 4px 0 0;
  font-size: 14px;
  color: #fff;
  font-weight: 600;
}
#dashboard .dash-btn-11 { font-size: 11px; }
#dashboard .dash-activation-list {
  margin: 12px 0 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

#dashboard .dash-template-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: 10px;
  margin-bottom: 12px;
}

#dashboard .dash-brief-form {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin-bottom: 14px;
}
#dashboard .dash-brief-input,
#dashboard .dash-brief-input:focus {
  width: 100%;
  padding: 8px 10px;
  background: rgba(0, 0, 0, 0.3);
  border: 1px solid var(--glass-border);
  border-radius: 6px;
  color: #fff;
  font-size: 13px;
}
#dashboard .dash-brief-options {
  grid-column: 1 / -1;
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: center;
  font-size: 12px;
  color: var(--text-secondary);
}
#dashboard .dash-check {
  display: flex;
  align-items: center;
  gap: 6px;
  cursor: pointer;
}
#dashboard .dash-brief-submit { margin-left: auto; }
#dashboard .dash-brief-next {
  display: none;
  margin-bottom: 12px;
}
#dashboard .dash-brief-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

#dashboard .dash-portfolio-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 20px;
  flex-wrap: wrap;
  gap: 12px;
}
#dashboard .dash-portfolio-tools {
  display: flex;
  gap: 10px;
  align-items: center;
  flex-wrap: wrap;
}
#dashboard .dash-search-wrap { position: relative; }
#dashboard .dash-search,
#dashboard .dash-search:focus {
  padding: 8px 14px 8px 36px;
  border-radius: 20px;
  border: 1px solid var(--glass-border);
  background: rgba(255, 255, 255, 0.04);
  color: var(--text-primary);
  font-size: 13px;
  width: 220px;
  outline: none;
}
#dashboard .dash-search { transition: border 0.2s; }
#dashboard .dash-search-icon {
  position: absolute;
  left: 12px;
  top: 50%;
  transform: translateY(-50%);
  opacity: 0.4;
}

/* Plantillas generadas por app.js (innerHTML) en el dashboard: sin style= inline (CSP style-src). */
.dash-act-step { display: flex; align-items: center; gap: 8px; font-size: 12px; color: var(--text-secondary); }
.dash-act-step.is-done { color: #a7f3d0; }
.dash-brief-task { display: flex; align-items: flex-start; gap: 10px; padding: 10px 12px; border-radius: 8px; border: 1px solid var(--glass-border); background: rgba(0,0,0,0.2); }
.dash-brief-task.is-done { border-color: rgba(52,211,153,0.25); background: rgba(52,211,153,0.08); }
.dash-brief-label { display: flex; align-items: center; gap: 8px; cursor: pointer; flex: 1; min-width: 0; }
.dash-brief-check { margin-top: 2px; }
.dash-minw0 { min-width: 0; }
.dash-brief-title { display: block; font-size: 13px; color: #fff; }
.dash-brief-task.is-done .dash-brief-title { color: #a7f3d0; }
.dash-brief-hint { font-size: 11px; color: var(--text-muted); line-height: 1.35; }
.dash-brief-hooks { margin: 6px 0 0; padding-left: 16px; font-size: 11px; color: var(--text-muted); line-height: 1.4; }
.dash-brief-hook { color: #e2e8f0; font-weight: 600; }
.dash-btn-xs { font-size: 11px; }
.dash-noshrink { flex-shrink: 0; }
.dash-tpl-card { padding: 12px; border-radius: 10px; border: 1px solid var(--glass-border); background: rgba(0,0,0,0.22); display: flex; flex-direction: column; gap: 8px; }
.dash-tpl-title { display: block; font-size: 13px; color: #fff; }
.dash-tpl-short { font-size: 11px; color: var(--text-muted); }
.dash-tpl-meta { margin: 0; font-size: 10px; color: var(--text-secondary); line-height: 1.35; }
.dash-tpl-actions { display: flex; gap: 6px; flex-wrap: wrap; margin-top: auto; }
.dash-tpl-apply { font-size: 11px; flex: 1; }
