/* Lesson planner page additions. Shared shell, type, controls and focus styles
   come from styles.css; this file only owns the planner's layout and print view. */
.lesson-planner-editor {
  width: 100%;
  min-width: 0;
}

.lesson-planner-editor > .crumbs {
  margin-bottom: 30px;
}

.lesson-planner-form {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 42px;
  margin-top: 34px;
}

.planner-panel {
  min-width: 0;
  border-top: 1px solid var(--rule);
  padding-top: 26px;
}

.planner-panel h2,
.planner-actions h2 {
  margin-bottom: 20px;
}

.planner-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px 24px;
}

.planner-grid .full {
  grid-column: 1 / -1;
}

.field {
  display: grid;
  gap: 8px;
  min-width: 0;
}

.field label,
.stage legend {
  color: var(--ink);
  font-weight: 650;
}

.field input,
.field select,
.field textarea {
  width: 100%;
  min-width: 0;
  max-width: 100%;
  min-height: 48px;
  padding: 11px 13px;
  border: 1px solid #687f75;
  border-radius: 4px;
  background: var(--surface);
  color: var(--ink);
  font: inherit;
}

.field textarea {
  min-height: 116px;
  resize: vertical;
}

.hint,
.planner-note {
  color: var(--ink-2);
  font-size: var(--t-15);
}

.planner-note {
  margin-top: 18px;
}

.stage-list {
  display: grid;
  gap: 0;
}

.stage {
  min-width: 0;
  margin: 0;
  padding: 28px 0;
  border: 0;
  border-top: 1px solid var(--rule);
}

.stage legend {
  padding: 0 12px 0 0;
  font-size: 1.35rem;
  line-height: 1.25;
}

.stage-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 130px;
  gap: 20px;
  margin-top: 18px;
}

.stage .planner-grid {
  margin-top: 20px;
}

.stage textarea {
  min-height: 170px;
}

.timing-panel {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 12px;
  margin-bottom: 10px;
  padding: 20px;
  border-left: 3px solid var(--brand-text);
  background: var(--brand-tint);
}

.timing-panel p {
  margin: 0;
}

.timing-panel #timing {
  font-weight: 650;
}

.timing-panel .hint {
  margin: 0;
}

.planner-actions {
  border-top: 1px solid var(--rule);
  padding-top: 26px;
}

.planner-actions .row {
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  gap: 10px;
}

.planner-actions .btn,
.timing-panel .btn {
  white-space: normal;
}

.planner-error {
  margin: 0 0 18px;
  padding: 12px 16px;
  border-left: 3px solid #a44b37;
  background: #fff4ed;
  color: var(--ink);
}

.feedback {
  min-height: 1.6em;
  margin-top: 18px;
}

#storage {
  color: var(--ink-2);
  font-weight: 600;
}

.draft-rescue {
  margin-top: 24px;
  border-top: 1px solid var(--rule);
  padding-top: 18px;
}

.draft-rescue summary {
  min-height: 44px;
  padding-block: 8px;
  font-weight: 650;
  cursor: pointer;
}

.draft-rescue .row {
  margin-top: 14px;
}

#copy-fallback {
  margin-top: 22px;
}

#copy-fallback textarea {
  width: 100%;
  min-height: 220px;
  margin-top: 8px;
  padding: 12px;
  border: 1px solid #687f75;
  border-radius: 4px;
  background: var(--surface);
  color: var(--ink);
  font: inherit;
  resize: vertical;
}

[aria-invalid="true"] {
  border-color: #a44b37 !important;
  box-shadow: 0 0 0 1px #a44b37;
}

.lesson-planner-page p,
.lesson-planner-page a,
.lesson-planner-page label,
.lesson-planner-page button,
.lesson-planner-page legend {
  overflow-wrap: anywhere;
}

#print-plan {
  display: none;
}

@media (max-width: 700px) {
  .planner-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .planner-grid .full {
    grid-column: auto;
  }

  .stage-head {
    grid-template-columns: minmax(0, 1fr) 98px;
    gap: 12px;
  }

  .planner-actions .btn,
  .timing-panel .btn {
    width: 100%;
  }

  .stage textarea {
    min-height: 190px;
  }
}

@media (max-width: 420px) {
  .stage-head {
    grid-template-columns: minmax(0, 1fr);
  }

  .timing-panel {
    padding: 16px;
  }
}

@media print {
  .lesson-planner-page .nav,
  .lesson-planner-page .footer,
  .lesson-planner-page .page-hero,
  .lesson-planner-editor {
    display: none !important;
  }

  .lesson-planner-page {
    background: #fff;
    color: #111;
  }

  #print-plan {
    display: block;
    max-width: none;
    padding: 0;
    white-space: normal;
  }

  #print-plan h1 {
    max-width: none;
    margin-bottom: 10pt;
    font-size: 24pt;
  }

  #print-plan h2 {
    margin-top: 18pt;
    font-size: 15pt;
    break-after: avoid;
  }

  #print-plan h3 {
    margin: 12pt 0 4pt;
    font-size: 12pt;
    break-after: avoid;
  }

  #print-plan p {
    max-width: none;
    margin-bottom: 9pt;
    line-height: 1.4;
    orphans: 3;
    widows: 3;
    white-space: pre-wrap;
  }

  #print-plan section {
    margin: 18pt 0;
    break-inside: avoid;
  }

  @page {
    margin: 18mm;
  }
}

