/* Disciplina: estilos de presentación locales. Cargar después de polish-accounts.css. */
.polished-screen.discipline-screen {
  --dc-mono: var(--finance-font-mono);
  --dc-sm: var(--finance-text-sm);
  --dc-base: var(--finance-text-base);
  --dc-lg: var(--finance-text-lg);
  --dc-xl: var(--finance-text-xl);
  --dc-1: var(--finance-space-1);
  --dc-2: var(--finance-space-2);
  --dc-3: var(--finance-space-3);
  --dc-4: var(--finance-space-4);
  --dc-8: var(--finance-space-8);
  --dc-control: var(--finance-control-size);
  --dc-line-height: var(--finance-line-height);
  min-width: 0;
}

.discipline-screen :is(.dc-toolbar, .dc-toolbar-group, .dc-actions, .dc-inline) {
  display: flex;
  align-items: center;
  gap: var(--dc-2);
  min-width: 0;
}
.discipline-screen .dc-toolbar { justify-content: space-between; flex-wrap: wrap; gap: var(--dc-3); margin-bottom: var(--dc-4); }
.discipline-screen .dc-toolbar-group { flex-wrap: wrap; }
.discipline-screen .dc-account-filter { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--dc-2); width: min(100%, 360px); }
.discipline-screen .dc-status-today,
.discipline-screen .dc-banner,
.discipline-screen .dc-empty {
  min-width: 0;
  padding: var(--dc-4);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--panel-2);
  color: var(--text);
  line-height: var(--dc-line-height);
}
.discipline-screen .dc-status-today { display: grid; grid-template-columns: minmax(0, 1fr); align-items: center; gap: var(--dc-2) var(--dc-4); }
.discipline-screen .dc-today-head { display: grid; grid-template-columns: minmax(0, 1fr) minmax(220px, 320px); align-items: center; gap: var(--dc-4); }
.discipline-screen .dc-status-today > :first-child { min-width: 0; }
.discipline-screen .dc-status-today :is(p, small, .dc-hint) { color: var(--muted); font-size: var(--dc-sm); }
.discipline-screen .dc-status-today :is(b, strong, .dc-value) { font-weight: 600; font-variant-numeric: tabular-nums; }
.discipline-screen .dc-status-today[data-state="stop"] { border-inline-start: 3px solid var(--red); }
.discipline-screen .dc-status-today[data-state="ready"] { border-inline-start: 3px solid var(--orange); }
.discipline-screen .dc-today-groups { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); gap: var(--dc-2); min-width: 0; }
.discipline-screen .dc-today-group { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: baseline; gap: var(--dc-1) var(--dc-3); min-width: 0; padding: var(--dc-3); border: 1px solid var(--line); border-radius: var(--radius); background: var(--panel-2); }
.discipline-screen .dc-today-group > b { color: var(--text); font-weight: 500; overflow-wrap: anywhere; }
.discipline-screen .dc-today-group > span { color: var(--text); font-size: var(--dc-sm); font-weight: 500; text-align: right; }
.discipline-screen .dc-today-group > small { grid-column: 1 / -1; color: var(--muted); font-size: var(--dc-sm); line-height: var(--dc-line-height); }

.discipline-screen .dc-metrics { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--dc-4); }
.discipline-screen .dc-metrics > article { display: flex; flex-direction: column; gap: var(--dc-2); min-width: 0; padding: var(--dc-3); border: 1px solid var(--line); border-radius: var(--radius); background: var(--panel); }
.discipline-screen .dc-metrics > article > span { color: var(--muted); font-size: var(--dc-base); font-weight: 500; line-height: var(--dc-line-height); }
.discipline-screen .dc-metrics > article > b { color: var(--text); font: 600 var(--dc-lg)/1.1 var(--dc-mono); font-variant-numeric: tabular-nums; text-align: right; overflow-wrap: anywhere; }
.discipline-screen .dc-metrics > article > small { color: var(--muted); font-size: var(--dc-sm); line-height: var(--dc-line-height); }
.discipline-screen .dc-status-today > .dc-metrics { margin-top: var(--dc-2); }
.discipline-screen .dc-history-metrics { margin: var(--dc-4) 0; }
.discipline-screen .dc-metric,
.discipline-screen .dc-card {
  min-width: 0;
  padding: var(--dc-4);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--panel);
}
.discipline-screen .dc-metric { display: flex; flex-direction: column; gap: var(--dc-2); }
.discipline-screen .dc-metric-label { color: var(--muted); font-size: var(--dc-base); font-weight: 500; }
.discipline-screen .dc-metric-value { color: var(--text); font: 600 var(--dc-xl)/1.1 var(--dc-mono); font-variant-numeric: tabular-nums; text-align: right; overflow-wrap: anywhere; }
.discipline-screen .dc-metric-hint { color: var(--muted); font-size: var(--dc-sm); line-height: var(--dc-line-height); }
.discipline-screen .dc-section { margin-top: var(--dc-4); }
.discipline-screen .dc-section-title { margin: 0 0 var(--dc-3); color: var(--text); font-size: var(--dc-lg); font-weight: 600; line-height: 1.1; letter-spacing: -.02em; }
.discipline-screen .dc-muted,
.discipline-screen .dc-hint { color: var(--muted); font-size: var(--dc-sm); line-height: var(--dc-line-height); }
.discipline-screen .dc-number,
.discipline-screen .dc-date,
.discipline-screen .dc-amount { font-variant-numeric: tabular-nums; }
.discipline-screen .dc-number,
.discipline-screen .dc-amount { font-family: var(--dc-mono); }
.discipline-screen .dc-amount { text-align: right; white-space: nowrap; }

.discipline-screen .dc-heatmap { min-width: 0; overflow: visible; }
.discipline-screen .dc-heatmap-grid {
  display: grid;
  grid-auto-flow: column;
  grid-template-rows: repeat(7, 44px);
  grid-auto-columns: 44px;
  gap: var(--dc-1);
  min-width: 0;
  width: 100%;
  max-width: 100%;
  overflow-x: auto;
}
.discipline-screen .dc-day {
  display: grid;
  place-items: center;
  min-width: 44px;
  min-height: 44px;
  padding: var(--dc-1);
  border: 1px solid var(--line);
  border-radius: 6px;
  background: var(--panel-2);
  color: var(--muted);
  font: 500 var(--dc-sm)/1.2 var(--dc-mono);
  font-variant-numeric: tabular-nums;
  text-align: center;
}
.discipline-screen button.dc-day { min-width: 44px; min-height: 44px; cursor: pointer; }
.discipline-screen .dc-day:is(:hover, :focus-visible) { border-color: var(--orange); color: var(--text); }
.discipline-screen .dc-day[aria-pressed="true"] { outline: 2px solid var(--orange); outline-offset: 1px; color: var(--text); }
.discipline-screen .dc-day.is-clean { background: var(--panel-2); color: var(--text); border-color: var(--green); }
.discipline-screen .dc-day.is-broken { background: var(--panel-2); color: var(--text); border-color: var(--red); }
.discipline-screen .dc-day.is-broken-multiple { background: var(--panel-3); color: var(--text); border-color: var(--red); }
.discipline-screen .dc-day.is-no-trades { background: var(--panel); color: var(--muted); border-style: dashed; }
.discipline-screen .dc-heatmap-legend { display: flex; flex-wrap: wrap; gap: var(--dc-2) var(--dc-4); margin-top: var(--dc-3); color: var(--muted); font-size: var(--dc-sm); }
.discipline-screen .dc-legend-item { display: inline-flex; align-items: center; gap: var(--dc-2); }
.discipline-screen .dc-legend-swatch { width: 14px; height: 14px; border: 1px solid var(--line); border-radius: 4px; background: var(--panel-2); }
.discipline-screen .dc-legend-swatch.is-clean { border-color: var(--green); }
.discipline-screen .dc-legend-swatch.is-broken { border-color: var(--red); }
.discipline-screen .dc-legend-swatch.is-broken-multiple { background: var(--panel-3); border-color: var(--red); }
.discipline-screen .dc-legend-swatch.is-no-trades { background: var(--panel); border-style: dashed; }

.discipline-screen .dc-date-detail { display: block; }
.discipline-screen .dc-account-day { margin-top: var(--dc-3); padding: var(--dc-3); border: 1px solid var(--line); border-radius: var(--radius); background: var(--panel-2); }
.discipline-screen .dc-account-day h4 { display: flex; flex-wrap: wrap; align-items: center; gap: var(--dc-2); margin: 0 0 var(--dc-2); color: var(--text); font-size: var(--dc-base); font-weight: 600; }
.discipline-screen .dc-detail-metrics { display: flex; flex-wrap: wrap; gap: var(--dc-2) var(--dc-4); padding-bottom: var(--dc-2); border-bottom: 1px solid var(--line); color: var(--muted); font-size: var(--dc-sm); }
.discipline-screen .dc-detail-metrics b { color: var(--text); font-family: var(--dc-mono); font-weight: 500; font-variant-numeric: tabular-nums; }
.discipline-screen .dc-signed { font: inherit; }
.discipline-screen .dc-signed.positive { color: var(--positive); }
.discipline-screen .dc-signed.negative { color: var(--negative); }
.discipline-screen .dc-rule-detail-list { display: grid; gap: var(--dc-1); margin-top: var(--dc-2); }
.discipline-screen .dc-rule-detail { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: var(--dc-1) var(--dc-3); padding: var(--dc-2) 0; border-bottom: 1px solid var(--line); color: var(--text); }
.discipline-screen .dc-rule-detail b { font-weight: 500; text-align: right; }
.discipline-screen .dc-rule-detail small { grid-column: 1 / -1; color: var(--muted); font-size: var(--dc-sm); line-height: var(--dc-line-height); }
.discipline-screen .dc-rule-detail.is-broken b { color: var(--red); }
.discipline-screen .dc-rule-detail.is-complete b { color: var(--green); }
.discipline-screen .dc-rules-table :is(th, td):nth-child(n + 2) { text-align: right; font-variant-numeric: tabular-nums; }
.discipline-screen .dc-rules-table tbody th[scope="row"] { text-align: left; }
.discipline-screen .dc-detail-list { display: grid; gap: 0; min-width: 0; }
.discipline-screen .dc-detail-row { display: flex; justify-content: space-between; align-items: baseline; gap: var(--dc-3); min-width: 0; padding: var(--dc-2) 0; border-bottom: 1px solid var(--line); }
.discipline-screen .dc-detail-row > * { min-width: 0; overflow-wrap: anywhere; }
.discipline-screen .dc-detail-row :is(b, strong) { color: var(--text); font-weight: 500; text-align: right; }
.discipline-screen .dc-reason { margin: var(--dc-1) 0 0; color: var(--muted); font-size: var(--dc-sm); }
.discipline-screen .dc-rule-state { display: inline-flex; align-items: center; gap: var(--dc-1); color: var(--muted); }
.discipline-screen .dc-rule-state.is-broken { color: var(--red); }
.discipline-screen .dc-rule-state.is-kept { color: var(--green); }

.discipline-screen .dc-tabs { display: flex; flex-wrap: wrap; gap: var(--dc-1); width: fit-content; max-width: 100%; margin: 0 0 var(--dc-4); padding: var(--dc-1); border: 1px solid var(--line); border-radius: var(--radius); background: var(--panel); }
.discipline-screen .dc-tab { min-width: var(--dc-control); min-height: var(--dc-control); padding: var(--dc-2) var(--dc-3); border: 1px solid transparent; border-radius: var(--radius); background: transparent; color: var(--muted); font-family: inherit; font-size: var(--dc-base); font-weight: 500; line-height: var(--dc-line-height); text-align: center; white-space: normal; cursor: pointer; }
.discipline-screen .dc-tab[aria-selected="true"],
.discipline-screen .dc-tab.is-active { background: var(--panel-3); color: var(--text); box-shadow: inset 0 -2px var(--orange); }
.discipline-screen .dc-tab:hover { background: var(--panel-2); color: var(--text); }

.discipline-screen .dc-table-wrap { min-width: 0; max-width: 100%; max-height: var(--finance-table-height); overflow: auto; border: 1px solid var(--line); border-radius: var(--radius); }
.discipline-screen .dc-table { width: 100%; min-width: 760px; border-collapse: collapse; background: var(--panel); }
.discipline-screen .dc-table :is(th, td) { padding: var(--dc-2) var(--dc-3); border-bottom: 1px solid var(--line); color: var(--text); font-size: var(--dc-base); line-height: var(--dc-line-height); vertical-align: middle; }
.discipline-screen .dc-table th { position: sticky; top: 0; z-index: 1; background: var(--panel-2); color: var(--muted); font-size: var(--dc-sm); font-weight: 500; text-align: left; }
.discipline-screen .dc-table :is(th, td).dc-amount { text-align: right; }
.discipline-screen .dc-table tbody tr:hover { background: var(--panel-2); }

.discipline-screen :is(.dc-control, .dc-rule-editor input, .dc-rule-editor select, .dc-rule-editor textarea, .dc-missed-form input, .dc-missed-form select, .dc-missed-form textarea) {
  max-width: 100%;
  min-height: var(--dc-control);
  padding: var(--dc-2) var(--dc-3);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--panel);
  color: var(--text);
  font-family: inherit;
  font-size: var(--dc-base);
  font-weight: 400;
  line-height: var(--dc-line-height);
}
.discipline-screen :is(.dc-control, .dc-rule-editor input, .dc-rule-editor select, .dc-rule-editor textarea, .dc-missed-form input, .dc-missed-form select, .dc-missed-form textarea):disabled { background: var(--panel-2); color: var(--muted); }
.discipline-screen :is(.dc-control, .dc-rule-editor input, .dc-rule-editor select, .dc-rule-editor textarea, .dc-missed-form input, .dc-missed-form select, .dc-missed-form textarea)::placeholder { color: var(--muted); opacity: 1; }
.discipline-screen :is(button, a, input, select, textarea, [tabindex]):focus-visible { outline: 2px solid var(--orange); outline-offset: 4px; }
.discipline-screen .dc-rule-editor,
.discipline-screen .dc-missed-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--dc-4); min-width: 0; }
.discipline-screen .dc-field { display: grid; align-content: start; gap: var(--dc-2); min-width: 0; }
.discipline-screen .dc-field > label,
.discipline-screen .dc-field-label { color: var(--muted); font-size: var(--dc-base); font-weight: 500; }
.discipline-screen .dc-field-help { color: var(--muted); font-size: var(--dc-sm); line-height: var(--dc-line-height); }
.discipline-screen .dc-switch-row,
.discipline-screen .dc-check-row { display: flex; align-items: center; gap: var(--dc-2); min-height: var(--dc-control); color: var(--text); line-height: var(--dc-line-height); }
.discipline-screen .dc-switch-row input,
.discipline-screen .dc-check-row input { width: 20px; height: 20px; flex: 0 0 auto; accent-color: var(--orange); }
.discipline-screen .dc-rule-list,
.discipline-screen .dc-checklist,
.discipline-screen .dc-template-list,
.discipline-screen .dc-routine-list { display: grid; gap: var(--dc-2); min-width: 0; }
.discipline-screen .dc-rule-item { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: var(--dc-2); min-width: 0; padding: var(--dc-2); border: 1px solid var(--line); border-radius: var(--radius); background: var(--panel-2); }
.discipline-screen .dc-rule-item :is(input, textarea) { min-width: 0; width: 100%; }
.discipline-screen .dc-rule-item-actions { display: flex; align-items: center; flex-wrap: wrap; gap: var(--dc-1); }
.discipline-screen .dc-playbooks { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--dc-4); }
.discipline-screen .dc-playbook-card,
.discipline-screen .dc-routine-card { min-width: 0; padding: var(--dc-4); border: 1px solid var(--line); border-radius: var(--radius); background: var(--panel); }
.discipline-screen .dc-playbook-card :is(h3, h4),
.discipline-screen .dc-routine-card :is(h3, h4) { margin-top: 0; color: var(--text); font-size: var(--dc-lg); font-weight: 600; line-height: 1.1; letter-spacing: -.02em; }
.discipline-screen .dc-playbook-card p,
.discipline-screen .dc-routine-card p { color: var(--muted); line-height: var(--dc-line-height); }
.discipline-screen .dc-template-list { grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr)); }
.discipline-screen .dc-checklist { counter-reset: dc-rule; }
.discipline-screen .dc-checklist > * { min-width: 0; }
.discipline-screen .dc-streak { display: inline-flex; align-items: center; gap: var(--dc-2); padding: var(--dc-2) var(--dc-3); border: 1px solid var(--line); border-radius: var(--radius); background: var(--panel-2); color: var(--text); font: 500 var(--dc-base)/var(--dc-line-height) var(--dc-mono); font-variant-numeric: tabular-nums; }
.discipline-screen .dc-missed-stats { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--dc-4); }
.discipline-screen .dc-missed-table .dc-table { min-width: var(--finance-table-width); }

@media (max-width: 1100px) {
  .discipline-screen .dc-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
  .discipline-screen :is(.dc-metrics, .dc-playbooks, .dc-missed-stats, .dc-date-detail, .dc-rule-editor, .dc-missed-form) { grid-template-columns: minmax(0, 1fr); }
  .discipline-screen .dc-toolbar { align-items: stretch; }
  .discipline-screen .dc-toolbar > *,
  .discipline-screen .dc-account-filter { width: 100%; }
  .discipline-screen .dc-tabs { width: 100%; }
  .discipline-screen .dc-tab { flex: 1 1 auto; }
  .discipline-screen .dc-status-today { grid-template-columns: minmax(0, 1fr); }
  .discipline-screen .dc-rule-item { grid-template-columns: minmax(0, 1fr); }
  .discipline-screen .dc-rule-item-actions { justify-content: flex-start; }
}

/* Trades no tomados: datos fuera del P&L de operaciones ejecutadas. */
.discipline-screen .dc-missed-intro { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: var(--dc-4); margin-bottom: var(--dc-4); padding: var(--dc-4); border: 1px solid var(--line); border-radius: var(--radius); background: var(--panel-2); }
.discipline-screen .dc-missed-intro > div { min-width: 0; flex: 1 1 460px; }
.discipline-screen .dc-missed-intro h3 { margin: var(--dc-1) 0 var(--dc-2); color: var(--text); font-size: var(--dc-lg); font-weight: 600; line-height: 1.1; }
.discipline-screen .dc-missed-intro p { max-width: 70ch; margin: 0 0 var(--dc-2); color: var(--muted); font-size: var(--dc-base); line-height: var(--dc-line-height); }
.discipline-screen .dc-missed-intro small { color: var(--muted); font-size: var(--dc-sm); }
.discipline-screen .dc-missed-intro > .button.primary,
.discipline-screen .dc-missed-empty .button.primary { background: var(--panel); border-color: var(--line); color: var(--text); }
.discipline-screen .dc-missed-intro > .button.primary:hover,
.discipline-screen .dc-missed-empty .button.primary:hover { background: var(--panel-3); border-color: var(--orange); }
.discipline-screen .dc-missed-stats { margin-bottom: var(--dc-4); }
.discipline-screen .dc-missed-stats > article { display: grid; gap: var(--dc-2); min-width: 0; padding: var(--dc-4); border: 1px solid var(--line); border-radius: var(--radius); background: var(--panel); }
.discipline-screen .dc-missed-stats span { color: var(--muted); font-size: var(--dc-base); font-weight: 500; }
.discipline-screen .dc-missed-stats b { color: var(--text); font: 600 var(--dc-xl)/1.1 var(--dc-mono); font-variant-numeric: tabular-nums; text-align: right; }
.discipline-screen .dc-missed-empty { padding: 0; border: 0; background: transparent; }
.discipline-screen .dc-missed-empty .empty-state { padding: var(--dc-8) var(--dc-4); border: 1px solid var(--line); border-radius: var(--radius); background: var(--panel-2); }
.discipline-screen .dc-missed-table .table-wrap { max-width: 100%; overflow: auto; }
.discipline-screen .dc-missed-table table { min-width: var(--finance-table-width); }
.discipline-screen .dc-missed-table th:nth-child(5),
.discipline-screen .dc-missed-table td:nth-child(5) { text-align: right; font-family: var(--dc-mono); font-variant-numeric: tabular-nums; white-space: nowrap; }
.discipline-screen .dc-missed-table td:first-child { font-variant-numeric: tabular-nums; white-space: nowrap; }
.discipline-screen .dc-missed-table td:first-child small { display: block; margin-top: var(--dc-1); color: var(--muted); font-size: var(--dc-sm); }
.discipline-screen .dc-missed-step { min-width: 0; margin-bottom: var(--dc-4); padding: var(--dc-4); border: 1px solid var(--line); border-radius: var(--radius); background: var(--panel-2); }
.discipline-screen .dc-missed-step h3 { margin: 0 0 var(--dc-3); color: var(--text); font-size: var(--dc-lg); font-weight: 600; line-height: 1.1; }
.discipline-screen .dc-missed-step .dc-editor-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.discipline-screen .dc-missed-step:nth-of-type(2) .dc-editor-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.discipline-screen .dc-missed-preview { margin: var(--dc-3) 0 0; padding: var(--dc-3); border: 1px solid var(--line); border-radius: var(--radius); background: var(--panel); color: var(--text); font: 500 var(--dc-base)/var(--dc-line-height) var(--dc-mono); font-variant-numeric: tabular-nums; }
.discipline-screen .dc-missed-preview.is-error { border-color: var(--red); color: var(--red); font-family: inherit; font-weight: 500; }
.discipline-screen .dc-missed-reasons { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--dc-2); margin: 0 0 var(--dc-3); padding: var(--dc-3); border: 1px solid var(--line); border-radius: var(--radius); }
.discipline-screen .dc-missed-reasons legend { padding: 0 var(--dc-1); color: var(--muted); font-size: var(--dc-sm); }
.discipline-screen .dc-missed-reasons label { display: flex; align-items: center; gap: var(--dc-2); min-height: var(--dc-control); padding: var(--dc-2); border: 1px solid var(--line); border-radius: var(--radius); background: var(--panel); color: var(--text); line-height: var(--dc-line-height); cursor: pointer; }
.discipline-screen .dc-missed-reasons input { width: 20px; height: 20px; flex: 0 0 auto; accent-color: var(--orange); }
#modalRoot .dc-missed-step { min-width: 0; margin-bottom: var(--finance-space-4); padding: var(--finance-space-4); border: 1px solid var(--line); border-radius: var(--radius); background: var(--panel-2); }
#modalRoot .dc-missed-step h3 { margin: 0 0 var(--finance-space-3); color: var(--text); font-size: var(--finance-text-lg); font-weight: 600; line-height: 1.1; }
#modalRoot .dc-editor-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--finance-space-4); }
#modalRoot .dc-missed-step:nth-of-type(2) .dc-editor-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
#modalRoot .dc-full { grid-column: 1 / -1; }
#modalRoot .dc-missed-preview { margin: var(--finance-space-3) 0 0; padding: var(--finance-space-3); border: 1px solid var(--line); border-radius: var(--radius); background: var(--panel); color: var(--text); font: 500 var(--finance-text-base)/var(--finance-line-height) var(--finance-font-mono); font-variant-numeric: tabular-nums; }
#modalRoot .dc-missed-preview.is-error { border-color: var(--red); color: var(--red); font-family: inherit; }
#modalRoot .dc-missed-reasons { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--finance-space-2); margin: 0 0 var(--finance-space-3); padding: var(--finance-space-3); border: 1px solid var(--line); border-radius: var(--radius); }
#modalRoot .dc-missed-reasons legend { padding: 0 var(--finance-space-1); color: var(--muted); font-size: var(--finance-text-sm); }
#modalRoot .dc-missed-reasons label { display: flex; align-items: center; gap: var(--finance-space-2); min-height: var(--finance-control-size); padding: var(--finance-space-2); border: 1px solid var(--line); border-radius: var(--radius); background: var(--panel); color: var(--text); line-height: var(--finance-line-height); cursor: pointer; }
#modalRoot .dc-missed-reasons input { width: 20px; height: 20px; flex: 0 0 auto; accent-color: var(--orange); }
#modalRoot .dc-routine-add-row { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(160px, .7fr) auto; align-items: end; gap: var(--finance-space-2); margin-bottom: var(--finance-space-4); }
#modalRoot .dc-routine-list { display: grid; gap: var(--finance-space-4); }
#modalRoot .dc-routine-phase { min-width: 0; }
#modalRoot .dc-routine-phase h4 { margin: 0 0 var(--finance-space-2); color: var(--muted); font-size: var(--finance-text-sm); font-weight: 500; }
#modalRoot .dc-routine-item { display: grid; gap: var(--finance-space-2); min-width: 0; margin-bottom: var(--finance-space-2); padding: var(--finance-space-2); border: 1px solid var(--line); border-radius: var(--radius); background: var(--panel-2); }
#modalRoot .dc-routine-edit-fields { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(160px, .7fr); gap: var(--finance-space-2); }
#modalRoot .dc-routine-weekdays { display: flex; flex-wrap: wrap; gap: var(--finance-space-1); }
#modalRoot .dc-routine-weekdays label { display: inline-flex; align-items: center; gap: var(--finance-space-1); min-width: 44px; min-height: var(--finance-control-size); padding: var(--finance-space-1) var(--finance-space-2); border: 1px solid var(--line); border-radius: var(--radius); background: var(--panel); color: var(--text); font-size: var(--finance-text-sm); }
#modalRoot .dc-routine-weekdays input { width: 18px; height: 18px; accent-color: var(--orange); }
:is(.discipline-screen, #modalRoot) .dc-routine-pin { display: inline-flex; align-items: center; flex-wrap: wrap; gap: 8px; min-width: 0; min-height: 40px; padding: 6px 10px; border: 1px solid var(--line); border-radius: var(--radius); color: var(--text); cursor: pointer; }
:is(.discipline-screen, #modalRoot) .dc-routine-pin input { width: 18px; height: 18px; flex: 0 0 auto; accent-color: var(--orange); }
#modalRoot .dc-routine-pin { margin-bottom: var(--finance-space-3); }
#modalRoot .dc-routine-actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--finance-space-2); }
#modalRoot .dc-weekdays { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: var(--finance-space-1); margin: var(--finance-space-4) 0; padding: var(--finance-space-3); border: 1px solid var(--line); border-radius: var(--radius); }
#modalRoot .dc-weekdays label { display: grid; justify-items: center; align-content: center; gap: var(--finance-space-1); min-height: var(--finance-control-size); border: 1px solid var(--line); border-radius: var(--radius); background: var(--panel); color: var(--text); font-size: var(--finance-text-sm); }
#modalRoot .dc-weekdays input { width: 20px; height: 20px; accent-color: var(--orange); }
#modalRoot .dc-editor-grid > .dc-rule-editor { display: grid; grid-template-columns: minmax(0, 1fr); align-content: start; gap: var(--finance-space-3); min-width: 0; margin: 0; padding: var(--finance-space-3); border: 1px solid var(--line); border-radius: var(--radius); background: var(--panel-2); }
#modalRoot .dc-editor-grid > .dc-rule-editor legend { padding: 0 var(--finance-space-1); color: var(--text); font-size: var(--finance-text-base); font-weight: 600; }
#modalRoot .dc-editor-grid > .dc-rule-editor .dc-toggle { display: flex; align-items: center; gap: var(--finance-space-2); min-height: var(--finance-control-size); color: var(--text); }
#modalRoot .dc-toggle input { width: 20px; height: 20px; flex: 0 0 auto; accent-color: var(--orange); }
#modalRoot .dc-inline-fields { display: grid; grid-template-columns: auto repeat(2, minmax(0, 1fr)); align-items: end; gap: var(--finance-space-2); }
#modalRoot .dc-zone { padding-bottom: var(--finance-space-3); color: var(--muted); font-size: var(--finance-text-sm); }
#modalRoot .dc-note { margin: 0 0 var(--finance-space-3); color: var(--muted); font-size: var(--finance-text-base); line-height: var(--finance-line-height); }
#modalRoot .dc-template-rule { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: var(--finance-space-2); margin-bottom: var(--finance-space-2); padding: var(--finance-space-2); border: 1px solid var(--line); border-radius: var(--radius); background: var(--panel-2); }
#modalRoot .dc-template-rule textarea { min-width: 0; width: 100%; min-height: 64px; resize: vertical; }
#modalRoot .dc-rule-actions { display: flex; flex-wrap: wrap; gap: var(--finance-space-1); }
#modalRoot .dc-add-rule-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: var(--finance-space-2); margin-top: var(--finance-space-3); }
#modalRoot .dc-toggle.dc-active-toggle { display: flex; align-items: center; gap: var(--finance-space-2); min-height: var(--finance-control-size); margin-top: var(--finance-space-3); color: var(--text); }
#modalRoot .dc-template-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--finance-space-2); }
#modalRoot .dc-template-button { display: flex; flex-direction: column; align-items: flex-start; gap: var(--finance-space-1); min-width: 0; min-height: var(--finance-control-size); padding: var(--finance-space-3); border: 1px solid var(--line); border-radius: var(--radius); background: var(--panel-2); color: var(--text); text-align: left; cursor: pointer; }
#modalRoot .dc-template-button span { color: var(--muted); font-size: var(--finance-text-sm); line-height: var(--finance-line-height); }

@media (max-width: 760px) {
  .discipline-screen .dc-missed-intro { align-items: stretch; }
  .discipline-screen .dc-missed-intro > .button { width: 100%; }
  .discipline-screen .dc-missed-step .dc-editor-grid,
  .discipline-screen .dc-missed-step:nth-of-type(2) .dc-editor-grid,
  .discipline-screen .dc-missed-reasons { grid-template-columns: minmax(0, 1fr); }
}
@media (prefers-reduced-motion: reduce) {
  .discipline-screen *, .discipline-screen *::before, .discipline-screen *::after { scroll-behavior: auto !important; transition-duration: 0s !important; animation-duration: 0s !important; }
}

/* Clases concretas del marcado Reglas / Playbooks. */
.discipline-screen .dc-legend { display: flex; align-items: center; flex-wrap: wrap; gap: var(--dc-2) var(--dc-3); color: var(--muted); font-size: var(--dc-sm); }
.discipline-screen .dc-legend > span { display: inline-flex; align-items: center; gap: var(--dc-1); white-space: nowrap; }
.discipline-screen .dc-swatch { width: 14px; height: 14px; flex: 0 0 auto; border: 1px solid var(--line); border-radius: 4px; background: var(--panel-2); }
.discipline-screen .dc-swatch.clean { border-color: var(--green); }
.discipline-screen .dc-swatch.broken-1 { border-color: var(--red); }
.discipline-screen .dc-swatch.broken-2 { border: 2px double var(--red); background: var(--panel-3); }
.discipline-screen .dc-swatch.no-trades { border-style: dashed; background: var(--panel); }
.discipline-screen .dc-day[data-state="clean"] { border-color: var(--green); }
.discipline-screen .dc-day[data-state="broken-1"] { border-color: var(--red); }
.discipline-screen .dc-day[data-state="broken-2"] { border: 2px double var(--red); background: var(--panel-3); }
.discipline-screen .dc-day[data-state="partial"] { border-style: dashed; border-color: var(--orange); }
.discipline-screen .dc-day[data-state="no-trades"] { border-style: dashed; color: var(--muted); }
.discipline-screen .dc-day.is-selected { outline: 2px solid var(--orange); outline-offset: 2px; }
.discipline-screen .dc-footnote { margin-top: var(--dc-3); color: var(--muted); font-size: var(--dc-sm); line-height: var(--dc-line-height); }
.discipline-screen .dc-history-metrics > article { min-height: 132px; }
.discipline-screen .dc-template-picker { margin-top: var(--dc-4); }
.discipline-screen .dc-template-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--dc-2); }
.discipline-screen .dc-template-grid-compact { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.discipline-screen .dc-template-button { display: flex; flex-direction: column; align-items: flex-start; gap: var(--dc-1); min-width: 0; min-height: var(--dc-control); padding: var(--dc-3); border: 1px solid var(--line); border-radius: var(--radius); background: var(--panel-2); color: var(--text); text-align: left; cursor: pointer; }
.discipline-screen .dc-template-button:hover { border-color: var(--orange); background: var(--panel-3); }
.discipline-screen .dc-template-button b { font-size: var(--dc-base); font-weight: 600; }
.discipline-screen .dc-template-button span { color: var(--muted); font-size: var(--dc-sm); line-height: var(--dc-line-height); }
.discipline-screen .dc-playbooks-intro { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(260px, .9fr); gap: var(--dc-4); margin-bottom: var(--dc-4); padding: var(--dc-4); border: 1px solid var(--line); border-radius: var(--radius); background: var(--panel-2); }
.discipline-screen .dc-playbooks-intro h3 { margin: 0 0 var(--dc-2); font-size: var(--dc-lg); font-weight: 600; }
.discipline-screen .dc-playbooks-intro :is(p, li) { color: var(--muted); font-size: var(--dc-base); line-height: var(--dc-line-height); }
.discipline-screen .dc-playbooks-intro ol { margin: 0; padding-left: 1.5em; }
.discipline-screen .dc-playbooks-intro li + li { margin-top: var(--dc-1); }
.discipline-screen .dc-playbook-heading { display: flex; justify-content: space-between; align-items: flex-start; gap: var(--dc-3); }
.discipline-screen .dc-playbook-heading h3 { margin: var(--dc-2) 0; }
.discipline-screen .dc-playbook-heading p { max-width: 70ch; }
.discipline-screen .dc-playbook-rule-count { flex: 0 0 auto; color: var(--muted); font: 500 var(--dc-sm)/var(--dc-line-height) var(--dc-mono); font-variant-numeric: tabular-nums; }
.discipline-screen ol.dc-template-list { display: grid; gap: var(--dc-2); margin: var(--dc-3) 0; padding-left: 1.5em; }
.discipline-screen .dc-template-list li { padding-left: var(--dc-1); color: var(--muted); font-size: var(--dc-base); line-height: var(--dc-line-height); }
.discipline-screen .dc-playbook-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--dc-2); margin-top: var(--dc-3); }
.discipline-screen .dc-playbook-stats > div { display: grid; gap: var(--dc-1); min-width: 0; padding: var(--dc-2); border: 1px solid var(--line); border-radius: var(--radius); background: var(--panel-2); }
.discipline-screen .dc-playbook-stats span,
.discipline-screen .dc-playbook-stats small { color: var(--muted); font-size: var(--dc-sm); line-height: var(--dc-line-height); }
.discipline-screen .dc-playbook-stats b { font: 500 var(--dc-base)/var(--dc-line-height) var(--dc-mono); font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.discipline-screen .dc-card-actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--dc-2); margin-top: var(--dc-3); }
.discipline-screen .dc-editor-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--dc-4); }
.discipline-screen .dc-editor-grid > .dc-rule-editor { display: grid; grid-template-columns: minmax(0, 1fr); align-content: start; gap: var(--dc-3); min-width: 0; margin: 0; padding: var(--dc-3); border: 1px solid var(--line); border-radius: var(--radius); background: var(--panel-2); }
.discipline-screen .dc-editor-grid > .dc-rule-editor legend { padding: 0 var(--dc-1); color: var(--text); font-size: var(--dc-base); font-weight: 600; }
.discipline-screen .dc-editor-grid > .dc-rule-editor .dc-toggle { display: flex; align-items: center; gap: var(--dc-2); min-height: var(--dc-control); color: var(--text); }
.discipline-screen .dc-toggle input,
.discipline-screen .dc-weekdays input { width: 20px; height: 20px; flex: 0 0 auto; accent-color: var(--orange); }
.discipline-screen .dc-weekdays { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: var(--dc-1); }
.discipline-screen .dc-weekdays label { display: grid; justify-items: center; align-content: center; gap: var(--dc-1); min-height: var(--dc-control); border: 1px solid var(--line); border-radius: var(--radius); background: var(--panel); color: var(--text); font-size: var(--dc-sm); }
.discipline-screen .dc-inline-fields { display: grid; grid-template-columns: auto repeat(2, minmax(0, 1fr)); align-items: end; gap: var(--dc-2); }
.discipline-screen .dc-zone { padding-bottom: var(--dc-3); color: var(--muted); font-size: var(--dc-sm); }
.discipline-screen .dc-editor-grid .dc-full { grid-column: 1 / -1; }
.discipline-screen .dc-note { margin: 0 0 var(--dc-3); color: var(--muted); font-size: var(--dc-base); line-height: var(--dc-line-height); }
.discipline-screen .dc-template-rule { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: var(--dc-2); padding: var(--dc-2); border: 1px solid var(--line); border-radius: var(--radius); background: var(--panel-2); }
.discipline-screen .dc-rule-list-editor { display: grid; gap: var(--dc-2); min-width: 0; }
.discipline-screen .dc-template-rule textarea { min-width: 0; width: 100%; min-height: 64px; resize: vertical; }
.discipline-screen .dc-rule-actions { display: flex; flex-wrap: wrap; gap: var(--dc-1); }
.discipline-screen .dc-add-rule-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: var(--dc-2); margin-top: var(--dc-3); }
.discipline-screen .dc-toggle.dc-active-toggle { display: flex; align-items: center; gap: var(--dc-2); min-height: var(--dc-control); margin-top: var(--dc-3); color: var(--text); }
.discipline-screen .dc-modal-body { max-height: min(70vh, 760px); overflow-y: auto; padding: var(--dc-4); }
.discipline-screen .dc-modal-footer { display: flex; justify-content: flex-end; flex-wrap: wrap; gap: var(--dc-2); padding: var(--dc-3) var(--dc-4); border-top: 1px solid var(--line); }
.discipline-screen .dc-modal-footer .button.primary { background: var(--orange); color: var(--bg); }
.discipline-screen .dc-modal-footer :is(button, a) { min-height: var(--dc-control); }
.discipline-screen .dc-inline-fields .field { min-width: 0; }
.discipline-screen .dc-rule-editor :is(p, small) { color: var(--muted); font-size: var(--dc-sm); line-height: var(--dc-line-height); }

/* El modal se monta fuera de la raíz del módulo en #modalRoot. */
#modalRoot .dc-modal-backdrop { position: fixed; inset: 0; z-index: 1000; display: grid; place-items: center; padding: var(--finance-space-4); background: rgba(0, 0, 0, .72); }
#modalRoot .dc-modal { display: flex; flex-direction: column; width: min(860px, 100%); max-height: min(92vh, 960px); overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius); background: var(--panel); color: var(--text); }
#modalRoot .dc-modal > form { display: flex; flex: 1 1 auto; flex-direction: column; min-height: 0; overflow: hidden; }
#modalRoot .dc-modal .modal-header { flex: 0 0 auto; margin: 0; padding: var(--finance-space-4); border-bottom: 1px solid var(--line); background: var(--panel); }
#modalRoot .dc-modal :is(h2, h3) { color: var(--text); }
#modalRoot .dc-modal .dc-modal-body { flex: 1 1 auto; min-height: 0; overflow-y: auto; padding: var(--finance-space-4); }
#modalRoot .dc-modal .dc-modal-footer { flex: 0 0 auto; }
#modalRoot .dc-modal :is(button, a, input, select, textarea, [tabindex]):focus-visible { outline: 2px solid var(--orange); outline-offset: 4px; }
#modalRoot .dc-control { max-width: 100%; min-height: var(--finance-control-size); padding: var(--finance-space-2) var(--finance-space-3); border: 1px solid var(--line); border-radius: var(--radius); background: var(--panel-2); color: var(--text); font-family: inherit; font-size: var(--finance-text-base); font-weight: 400; line-height: var(--finance-line-height); }
#modalRoot .dc-control:disabled { background: var(--panel); color: var(--muted); }
#modalRoot .dc-control::placeholder { color: var(--muted); opacity: 1; }
#modalRoot .dc-control[type="number"] { font-family: var(--finance-font-mono); font-variant-numeric: tabular-nums; }

@media (max-width: 760px) {
  .discipline-screen :is(.dc-editor-grid, .dc-playbooks-intro) { grid-template-columns: minmax(0, 1fr); }
  .discipline-screen .dc-today-head { grid-template-columns: minmax(0, 1fr); }
  .discipline-screen .dc-template-grid,
  .discipline-screen .dc-playbook-stats { grid-template-columns: minmax(0, 1fr); }
  .discipline-screen .dc-template-rule,
  .discipline-screen .dc-add-rule-row { grid-template-columns: minmax(0, 1fr); }
  .discipline-screen .dc-weekdays { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  #modalRoot .dc-modal-backdrop { align-items: end; padding: 0; }
  #modalRoot .dc-modal { width: 100%; height: 92vh; max-height: 92vh; border-radius: var(--radius) var(--radius) 0 0; }
  #modalRoot .dc-modal .dc-modal-footer { justify-content: stretch; }
  #modalRoot .dc-modal .dc-modal-footer > * { flex: 1 1 100%; }
  #modalRoot .dc-editor-grid,
  #modalRoot .dc-missed-step:nth-of-type(2) .dc-editor-grid,
  #modalRoot .dc-missed-reasons,
  #modalRoot .dc-routine-add-row,
  #modalRoot .dc-routine-edit-fields,
  #modalRoot .dc-template-grid,
  #modalRoot .dc-template-rule,
  #modalRoot .dc-add-rule-row { grid-template-columns: minmax(0, 1fr); }
  #modalRoot .dc-weekdays { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

/* Rutinas, basado en el flujo inspeccionado por Auditoría. */
.discipline-screen .dc-routine-dashboard { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--dc-4); }
.discipline-screen .dc-routine-dashboard { grid-template-columns: minmax(0, 1fr); padding: var(--dc-4); border: 1px solid var(--line); border-radius: var(--radius); background: var(--panel); }
.discipline-screen .dc-routine-head { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: var(--dc-3); }
.discipline-screen .dc-routine-head h3 { margin: var(--dc-1) 0; font-size: var(--dc-lg); font-weight: 600; line-height: 1.1; }
.discipline-screen .dc-routine-head p { margin: var(--dc-1) 0 0; color: var(--muted); font-size: var(--dc-base); line-height: var(--dc-line-height); }
.discipline-screen .dc-routine-controls { display: flex; align-items: center; flex-wrap: wrap; gap: var(--dc-2); min-width: 0; }
.discipline-screen .dc-routine-pin.is-pinned { border-color: var(--green); background: var(--panel-2); }
.discipline-screen .dc-routine-pin-status { color: var(--green); font-size: var(--dc-sm); font-weight: 600; }
.discipline-screen .dc-routine-nav { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: var(--dc-2); margin-bottom: var(--dc-3); }
.discipline-screen .dc-routine-nav :is(button, a) { min-height: var(--dc-control); }
.discipline-screen .dc-routine-progress { display: block; width: 100%; height: 12px; overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius); background: var(--panel-2); }
.discipline-screen .dc-routine-progress > span { display: block; height: 100%; border-radius: inherit; background: var(--orange); }
.discipline-screen .dc-routine-progress :is(b, strong, output) { color: var(--text); font: 600 var(--dc-lg)/1.1 var(--dc-mono); font-variant-numeric: tabular-nums; }
.discipline-screen .dc-routine-progress progress { width: 100%; min-height: 12px; accent-color: var(--orange); }
.discipline-screen .dc-routine-actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--dc-2); }
.discipline-screen .dc-routine-list { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--dc-4); }
.discipline-screen .dc-routine-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--dc-4); margin-top: var(--dc-4); }
.discipline-screen .dc-routine-card { min-width: 0; }
.discipline-screen .dc-routine-card h3 { display: flex; justify-content: space-between; gap: var(--dc-2); margin: 0 0 var(--dc-2); font-size: var(--dc-base); font-weight: 600; }
.discipline-screen .dc-routine-card h3 span { flex: 0 0 auto; color: var(--muted); font: 500 var(--dc-sm)/var(--dc-line-height) var(--dc-mono); font-variant-numeric: tabular-nums; }
.discipline-screen .dc-routine-check { display: flex; align-items: center; gap: var(--dc-2); min-height: var(--dc-control); padding: var(--dc-2) 0; border-bottom: 1px solid var(--line); color: var(--text); line-height: var(--dc-line-height); cursor: pointer; }
.discipline-screen .dc-routine-check input { width: 20px; height: 20px; flex: 0 0 auto; accent-color: var(--orange); }
.discipline-screen .dc-routine-check span { min-width: 0; overflow-wrap: anywhere; }
.discipline-screen .dc-routine-item { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: var(--dc-2); min-height: var(--dc-control); padding: var(--dc-2); border-bottom: 1px solid var(--line); color: var(--text); }
.discipline-screen .dc-routine-item > input[type="checkbox"] { width: 20px; height: 20px; accent-color: var(--orange); }
.discipline-screen .dc-routine-item > :is(span, label) { min-width: 0; overflow-wrap: anywhere; line-height: var(--dc-line-height); }
.discipline-screen .dc-routine-item-actions { display: flex; align-items: center; gap: var(--dc-1); }
.discipline-screen .dc-routine-phase { min-width: 0; }
.discipline-screen .dc-routine-phase h4 { margin: 0 0 var(--dc-2); color: var(--muted); font-size: var(--dc-sm); font-weight: 500; }
.discipline-screen .dc-routine-edit-fields { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(160px, .7fr); gap: var(--dc-2); min-width: 0; }
.discipline-screen .dc-routine-weekdays { display: flex; flex-wrap: wrap; gap: var(--dc-1); min-width: 0; }
.discipline-screen .dc-routine-weekdays label { display: inline-flex; align-items: center; gap: var(--dc-1); min-width: 44px; min-height: var(--dc-control); padding: var(--dc-1) var(--dc-2); border: 1px solid var(--line); border-radius: var(--radius); background: var(--panel); color: var(--text); font-size: var(--dc-sm); }
.discipline-screen .dc-routine-weekdays input { width: 18px; height: 18px; accent-color: var(--orange); }
.discipline-screen .dc-routine-editor { display: grid; gap: var(--dc-4); min-width: 0; }
.discipline-screen .dc-routine-form { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: var(--dc-2); }
.discipline-screen .dc-routine-add-row { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(160px, .7fr) auto; align-items: end; gap: var(--dc-2); margin-bottom: var(--dc-4); }
.discipline-screen .dc-routine-form :is(input, select, textarea) { min-height: var(--dc-control); }
.discipline-screen .dc-routine-heatmap { min-width: 0; overflow: visible; }
.discipline-screen .dc-routine-heatmap-grid { display: grid; grid-auto-flow: column; grid-template-rows: repeat(7, 36px); grid-template-columns: repeat(12, 36px); grid-auto-columns: 36px; gap: 6px; padding: 6px; box-sizing: border-box; width: 100%; max-width: 100%; overflow-x: auto; }
.discipline-screen .dc-routine-day { display: grid; place-items: center; width: 36px; height: 36px; padding: 0; box-sizing: border-box; min-width: 36px; min-height: 36px; border: 1px solid var(--line); border-radius: 6px; background: var(--panel-2); color: var(--muted); font: 500 var(--dc-sm)/1.2 var(--dc-mono); font-variant-numeric: tabular-nums; }
.discipline-screen button.dc-routine-day { min-width: 36px; min-height: 36px; cursor: pointer; }
.discipline-screen .dc-routine-day[data-state="complete"] { border-color: var(--green); }
.discipline-screen .dc-routine-day[data-state="good"] { border-color: var(--green); background: var(--panel-3); }
.discipline-screen .dc-routine-day[data-state="partial"] { border-color: var(--orange); border-style: dashed; }
.discipline-screen .dc-routine-day[data-state="empty"] { border-style: dashed; }
.discipline-screen .dc-routine-day[data-state="unknown"] { border-style: dotted; }
.discipline-screen .dc-routine-day[aria-pressed="true"],
.discipline-screen .dc-routine-day.is-selected { outline: 2px solid var(--orange); outline-offset: -2px; color: var(--text); }
.discipline-screen .dc-routine-pnl { display: block; margin-top: var(--dc-4); }
.discipline-screen .dc-routine-pnl-metrics { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--dc-3); }
.discipline-screen .dc-routine-pnl-metrics > article { display: grid; gap: var(--dc-1); min-width: 0; padding: var(--dc-3); border: 1px solid var(--line); border-radius: var(--radius); background: var(--panel-2); }
.discipline-screen .dc-routine-pnl-metrics span,
.discipline-screen .dc-routine-pnl-metrics small { color: var(--muted); font-size: var(--dc-sm); line-height: var(--dc-line-height); }
.discipline-screen .dc-routine-pnl-metrics b { color: var(--text); font-size: var(--dc-lg); font-weight: 500; text-align: right; }
.discipline-screen .dc-routine-pnl :is(b, strong) { font-family: var(--dc-mono); font-variant-numeric: tabular-nums; }
.discipline-screen .dc-routine-streak { display: inline-flex; align-items: center; gap: var(--dc-2); color: var(--text); font-family: var(--dc-mono); font-variant-numeric: tabular-nums; }
.discipline-screen .dc-routine-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--dc-3); margin-top: var(--dc-4); }
.discipline-screen .dc-routine-stats > div { display: grid; gap: var(--dc-1); min-width: 0; padding: var(--dc-3); border: 1px solid var(--line); border-radius: var(--radius); background: var(--panel-2); }
.discipline-screen .dc-routine-stats span,
.discipline-screen .dc-routine-stats small { color: var(--muted); font-size: var(--dc-sm); line-height: var(--dc-line-height); }
.discipline-screen .dc-routine-stats b { color: var(--text); font: 600 var(--dc-lg)/1.1 var(--dc-mono); font-variant-numeric: tabular-nums; }
#modalRoot .dc-routine-editor { display: grid; gap: var(--finance-space-4); min-width: 0; }
#modalRoot .dc-routine-form { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: var(--finance-space-2); }

@media (max-width: 760px) {
  .discipline-screen :is(.dc-routine-dashboard, .dc-routine-list, .dc-routine-pnl, .dc-routine-form) { grid-template-columns: minmax(0, 1fr); }
  .discipline-screen :is(.dc-routine-cards, .dc-routine-stats, .dc-routine-pnl-metrics, .dc-routine-add-row, .dc-routine-edit-fields) { grid-template-columns: minmax(0, 1fr); }
  .discipline-screen .dc-routine-item { grid-template-columns: auto minmax(0, 1fr); }
  .discipline-screen .dc-routine-item-actions { grid-column: 2; }
  #modalRoot .dc-routine-form { grid-template-columns: minmax(0, 1fr); }
}
/* Align plain fields and enhanced selectors in the missed-trade setup grid. */
:root #modalRoot #disciplineEditor[data-dc-kind="missed"] .dc-missed-step:first-child .dc-editor-grid > .field {
  display:flex;
  flex-direction:column;
  gap:8px;
  margin:0;
  min-width:0;
  justify-content:flex-start;
}
:root #modalRoot #disciplineEditor[data-dc-kind="missed"] .dc-missed-step:first-child .dc-editor-grid > :is(.field,label.field) > :is(label,.field-label,.trade-choice-field-header) {
  display:flex;
  align-items:center;
  min-height:34px;
  margin:0;
  line-height:1.3;
}
:root #modalRoot #disciplineEditor[data-dc-kind="missed"] .trade-choice-field-header { justify-content:space-between; }
:root #modalRoot #disciplineEditor[data-dc-kind="missed"] .trade-choice-field-header > label { margin:0; }
:root #modalRoot #disciplineEditor[data-dc-kind="missed"] .dc-missed-step:first-child :is(.dc-control,.trade-choice-trigger,.field-stack > select) {
  min-height:46px;
  height:46px;
  box-sizing:border-box;
}
:root #modalRoot #disciplineEditor[data-dc-kind="missed"] .dc-missed-step:first-child .field-stack { gap:0; }

.dc-session-windows {display:grid;gap:12px;margin:14px 0;}
.dc-session-window {display:grid;grid-template-columns:minmax(140px,1fr) minmax(240px,2fr);align-items:center;gap:16px;padding:16px;border:1px solid var(--line);border-radius:12px;background:var(--surface-soft);}
.dc-session-name {display:flex;align-items:center;gap:10px;margin:0;}
.dc-session-times {display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.dc-session-times .field {margin:0;}
.dc-session-windows .trade-choice-icon {flex:none;}
@media(max-width:650px){.dc-session-window{grid-template-columns:1fr;}}

.dc-rule-editor:has(.dc-session-windows){grid-column:1/-1;}

.dc-rule-editor[hidden] {display:none !important;}

/* El editor de reglas aprovecha la pantalla sin ocultar sus acciones. */
#modalRoot .dc-modal-backdrop:has(#disciplineEditor[data-dc-kind="rule"]) {padding:12px;}
#modalRoot .dc-modal:has(#disciplineEditor[data-dc-kind="rule"]) {
  width:min(1240px,100%);
  height:calc(100dvh - 24px);
  max-height:calc(100dvh - 24px);
}
#modalRoot #disciplineEditor[data-dc-kind="rule"] .dc-modal-body {max-height:none;}
@media(max-width:650px) {
  #modalRoot .dc-modal-backdrop:has(#disciplineEditor[data-dc-kind="rule"]) {padding:6px;}
  #modalRoot .dc-modal:has(#disciplineEditor[data-dc-kind="rule"]) {height:calc(100dvh - 12px);max-height:calc(100dvh - 12px);border-radius:var(--radius);}
}
