/* BL-UI-CAND-001. Sólo la página de simulación; no altera mundos ni física. */
.student-workspace { grid-template-rows: auto auto minmax(0, 1fr); }
.student-workspace .menu-bar { gap: 16px; min-height: 40px; }
.learning-path {
  display: flex; align-items: center; gap: 5px; padding: 5px 12px;
  background: var(--ev3-surface); border-block: 1px solid var(--ev3-border);
  color: var(--ev3-text-muted); font-size: 12px;
}
.learning-path button {
  display: inline-flex; align-items: center; gap: 6px; min-height: 32px;
  padding: 4px 8px; color: var(--ev3-text); background: transparent;
  border: 1px solid transparent; border-radius: 6px; cursor: pointer;
}
.learning-path button:hover { background: var(--ev3-surface-muted); border-color: var(--ev3-border); }
.learning-path b { color: var(--ev3-primary); }
.learning-hint { margin-left: auto; }
.student-workspace :is(button, a, input, select, textarea, [tabindex]):focus-visible {
  outline: 3px solid var(--ev3-focus); outline-offset: 2px;
}
.student-workspace .sim-main-area { grid-template-columns: minmax(0, 1.25fr) minmax(380px, 1fr); }
.student-workspace .sim-code-pane { grid-column: 2; grid-row: 1; display: flex; flex-direction: column; }
.student-workspace .sim-left-column { grid-column: 1; grid-row: 1; grid-template-rows: auto minmax(210px, 1fr) minmax(285px, 1fr); }
.student-workspace .sim-bottom-panels { grid-template-columns: minmax(0, 1fr) minmax(210px, .7fr); }
.student-workspace .sim-code-pane .code-header { padding: 7px 10px; gap: 8px; flex-wrap: wrap; }
.student-workspace .code-header h2 { font-size: 14px; margin-right: auto; }
#downloadProgramBtn {
  border: 1px solid var(--ev3-border); border-radius: 5px;
  padding: 5px 8px; min-height: 32px; color: var(--ev3-text); background: var(--ev3-surface-muted); cursor: pointer;
}
.student-workspace .code-header select { max-width: 150px; }
.draft-notice {
  flex: 0 0 auto; margin: 0; padding: 7px 10px; font-size: 11px; line-height: 1.4;
  color: var(--ev3-text-muted); background: var(--ev3-surface-muted); border-bottom: 1px solid var(--ev3-border);
}
.draft-notice[data-state="warning"] { color: #713b00; background: #fff3cf; }
html[data-theme="dark"] .draft-notice[data-state="warning"] { color: #ffe1a0; background: #423418; }
.student-workspace .debug-panel { flex: 0 0 auto; gap: 6px; padding: 8px 10px; }
.student-workspace .debug-panel button { min-height: 32px; }
.student-workspace .debug-state { min-height: 18px; font-size: 11px; }
.student-workspace .debug-watches { flex: 0 0 auto; max-height: 150px; overflow: auto; }
.student-workspace .code-editor-shell { flex: 1 1 180px; min-height: 150px; }
.student-workspace .program-name-strip { gap: 5px 12px; overflow-wrap: anywhere; }
.student-workspace .console { flex: 0 0 auto; max-height: 140px; white-space: pre-wrap; overflow-wrap: anywhere; }
.student-workspace .code-error-help { flex: 0 0 auto; padding: 7px 10px; }
.student-workspace .sim-control-bar { gap: 6px; }
.student-workspace .run-controls { flex-wrap: wrap; gap: 5px; }
.student-workspace .run-controls button { min-height: 32px; }
.student-workspace .robot-location-controls { margin-left: 0; padding-left: 0; border-left: 0; flex-wrap: wrap; gap: 5px; }
.student-workspace .robot-start-readout { min-width: 0; max-width: 230px; }
.student-workspace .sim-panel-header { gap: 8px; }
.student-workspace .panel-title-row { min-width: 0; flex-wrap: wrap; gap: 4px 10px; }
.student-workspace .world-name-inline { color: var(--ev3-text-muted); overflow-wrap: anywhere; }
.student-workspace .world-name-inline span { color: var(--ev3-text); }
.student-workspace .sim-telemetry-pane {
  grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: none; grid-auto-rows: max-content;
  align-content: start; overflow: auto; scrollbar-gutter: stable;
}
.student-workspace .telemetry-summary { grid-template-columns: auto minmax(0, 1fr) auto minmax(0, 1fr); }
.student-workspace .telemetry-summary :is(span, strong) { color: var(--ev3-text); min-height: 25px; font-size: 11px; }
.student-workspace .telemetry-section { overflow: visible; padding: 7px; min-height: min-content; }
.student-workspace :is(.mission-progress, .mission-result) { grid-column: 1 / -1; }
.student-workspace .telemetry-section h3 { color: var(--ev3-text); }
.student-workspace .sensors-section { grid-column: 1 / -1; }
.student-workspace #sensors { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.student-workspace .telemetry-card { padding: 6px; overflow-wrap: anywhere; }
.student-workspace .telemetry-card-title { flex-wrap: wrap; gap: 3px; }
.student-workspace .motor-metrics { flex-wrap: wrap; }
.student-workspace .sim-brick-pane { scrollbar-gutter: stable; }
.student-workspace .brick-card { height: auto; min-height: 100%; }
.student-workspace .brick-card :is(h2, h3) { color: var(--ev3-text); }
.student-workspace .brick-status-row { flex-wrap: wrap; gap: 5px; padding: 6px 10px; }
.student-workspace .sim-brick-pane .brick-screen {
  width: min(190px, calc(100% - 20px)); height: auto; padding: 4px;
  aspect-ratio: auto; overflow: hidden;
}
.student-workspace .brick-screen-canvas { width: 100%; height: auto; aspect-ratio: 178 / 128; }
.student-workspace .brick-robot-state { margin: 10px; }
.student-workspace .brick-robot-state :is(dt, dd) { padding: 5px; }
.student-workspace .sim-status-strip { gap: 16px; }
/* Texto real en español, no texto técnico oculto por pseudo-elementos. */
.student-workspace :is(#sessionStatus, #telemetryStatus)[data-label] { color: var(--ev3-text); font-size: 12px; }
.student-workspace :is(#sessionStatus, #telemetryStatus)[data-label]::after { content: none; }
.student-workspace :is(#sessionStatus, #telemetryStatus)[data-status="error"] { color: var(--ev3-danger); }
.student-workspace :is(#sessionStatus, #telemetryStatus)[data-status="timed_out"] { color: var(--ev3-warning); }
@media (max-width: 1120px), (max-height: 660px) {
  body:has(.student-workspace) { overflow-y: auto; overflow-x: hidden; }
  .student-workspace { height: auto; min-height: 100vh; overflow: visible; grid-template-rows: auto auto auto; }
  .student-workspace .sim-workspace { height: auto; overflow: visible; grid-template-rows: auto auto; }
  .student-workspace .sim-main-area { grid-template-columns: minmax(0, 1fr); overflow: visible; }
  .student-workspace .sim-code-pane { grid-column: 1; grid-row: 1; min-height: 550px; }
  .student-workspace .sim-left-column { grid-column: 1; grid-row: 2; grid-template-rows: auto 350px auto; overflow: visible; }
  .student-workspace .sim-bottom-panels { grid-template-columns: minmax(0, 1fr) minmax(210px, .65fr); overflow: visible; }
  .student-workspace .sim-telemetry-pane, .student-workspace .sim-brick-pane { overflow: visible; }
  .student-workspace .learning-hint { display: none; }
}
@media (max-width: 640px) {
  .learning-path { gap: 1px; padding-inline: 5px; justify-content: space-between; }
  .learning-path button { padding-inline: 4px; font-size: 11px; }
  .learning-path > span[aria-hidden] { display: none; }
  .student-workspace .sim-bottom-panels { grid-template-columns: minmax(0, 1fr); }
  .student-workspace .sim-code-pane { min-height: 590px; }
  .student-workspace .code-header select { max-width: 140px; }
  .student-workspace .sim-brick-pane .brick-screen { width: min(260px, calc(100% - 24px)); }
  .student-workspace .sim-status-strip { gap: 8px; flex-wrap: wrap; }
  .student-workspace .sim-map-panel { min-height: 0; }
}

html[data-theme="dark"] .student-workspace .learning-path b { color: #a8d2ff; }
.student-workspace .sim-panel-header h2 { color: var(--ev3-text); }

.student-workspace .motor-metrics span { white-space: normal; }

/* Un error de transporte nunca se presenta como ejecución confirmada. */
.student-workspace .sim-workspace:has(.connection-notice:not([hidden])) { grid-template-rows: auto minmax(0, 1fr) 36px; }
.connection-notice { display: flex; align-items: center; gap: 10px; padding: 8px 10px; color: #713b00; background: #fff3cf; border: 1px solid #c88c29; font-size: 12px; }
.connection-notice[hidden] { display: none; }
.connection-notice span { flex: 1; }
.connection-notice button { min-height: 32px; padding: 4px 10px; cursor: pointer; }
html[data-theme="dark"] .connection-notice { color: #ffe1a0; background: #423418; }
@media (max-width: 1120px), (max-height: 660px) {
  .student-workspace .sim-workspace:has(.connection-notice:not([hidden])) { grid-template-rows: auto auto auto; }
}

/* Medición previa del lead: títulos de motor oscuro 1,392:1. */
html[data-theme="dark"] .student-workspace .telemetry-card-title { color: #dbe5f5; }
html[data-theme="dark"] .student-workspace .debug-state { color: #a8d2ff; }
.student-workspace:has(.connection-notice:not([hidden])) .status-dot { background: #c88c29; }

/* BL-PRESENCE-001: aggregate only, after Help; wraps without hiding actions. */
.presence-summary { margin-left:auto; font-size:.78rem; line-height:1.35; padding:.35rem .5rem; border:1px solid #64748b; border-radius:.4rem; white-space:normal; max-width:22rem; }
@media (max-width: 640px) { .presence-summary { flex-basis:100%; margin-left:0; max-width:100%; text-align:right; } }
