/* Ensure optional Practice Mode fields remain hidden when disabled.
   Some site-wide label rules can otherwise override the HTML hidden attribute. */
.calculator-v4 [hidden] {
    display: none !important;
}

.calculator-v4 {
    margin-top: 1.5rem;
    overflow: hidden;
}
.v4-heading,
.v4-practice-header,
.v4-professor-intro {
    display: flex;
    justify-content: space-between;
    gap: 1.25rem;
    align-items: flex-start;
}
.v4-heading h2,
.v4-practice-header h3,
.v4-professor-intro h3 {
    margin-top: 0;
}
.v4-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: .45rem .75rem;
    border-radius: 999px;
    background: #e8f1ff;
    color: #174f91;
    font-weight: 800;
    white-space: nowrap;
}
.v4-tabs {
    display: flex;
    gap: .5rem;
    margin: 1.25rem 0 0;
    padding: .4rem;
    border-radius: 14px;
    background: #eef3f8;
}
.v4-tab {
    flex: 1;
    border: 0;
    border-radius: 10px;
    padding: .8rem 1rem;
    background: transparent;
    color: #334155;
    font: inherit;
    font-weight: 800;
    cursor: pointer;
}
.v4-tab.is-active {
    background: #fff;
    color: #174f91;
    box-shadow: 0 4px 14px rgba(18, 60, 105, .11);
}
.v4-panel {
    padding-top: 1.25rem;
}
.v4-practice-problem {
    margin: 1rem 0;
    padding: 1.15rem;
    border: 1px solid #cbdcf3;
    border-left: 5px solid #1e5faf;
    border-radius: 12px;
    background: #f5f9ff;
    font-size: 1.05rem;
    line-height: 1.65;
}
.v4-answer-area {
    padding: 1rem;
    border: 1px solid #dbe3ee;
    border-radius: 12px;
    background: #fff;
}
.v4-answer-area label {
    display: grid;
    gap: .4rem;
    max-width: 520px;
    margin-bottom: .9rem;
    font-weight: 700;
}
.v4-answer-area input,
.v4-answer-area select {
    width: 100%;
    padding: .75rem .85rem;
    border: 1px solid #cbd5e1;
    border-radius: 9px;
    background: #fff;
    color: #0f172a;
    font: inherit;
}
.v4-answer-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .65rem;
}
.v4-feedback {
    margin-top: 1rem;
}
.v4-feedback.is-correct,
.v4-feedback.is-review {
    padding: .9rem 1rem;
    border-radius: 10px;
}
.v4-feedback.is-correct {
    border-left: 5px solid #15803d;
    background: #f0fdf4;
}
.v4-feedback.is-review {
    border-left: 5px solid #b45309;
    background: #fffbeb;
}
.v4-solution {
    margin-top: 1rem;
    padding: 1rem;
    border: 1px solid #dbe3ee;
    border-radius: 12px;
    background: #f8fafc;
}
.v4-solution h4 {
    margin-top: 0;
}
.v4-professor-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
    margin-top: 1rem;
}
.v4-resource {
    padding: 1rem;
    border: 1px solid #dbe3ee;
    border-radius: 14px;
    background: #fff;
}
.v4-resource h3 {
    margin-top: 0;
    font-size: 1.12rem;
}
.v4-resource-wide {
    grid-column: 1 / -1;
}
.v4-warning {
    border-left: 5px solid #b45309;
    background: #fffbeb;
}
.v4-list {
    margin-bottom: 0;
    padding-left: 1.2rem;
}
.v4-list li + li {
    margin-top: .45rem;
}
.v4-table-wrap {
    overflow-x: auto;
}
.v4-rubric {
    width: 100%;
    border-collapse: collapse;
}
.v4-rubric th,
.v4-rubric td {
    padding: .6rem;
    border-bottom: 1px solid #e2e8f0;
    text-align: left;
}
.v4-rubric th:last-child,
.v4-rubric td:last-child {
    width: 72px;
    text-align: center;
}
.v4-question-group + .v4-question-group {
    margin-top: 1rem;
}
.v4-question-group h4 {
    margin-bottom: .45rem;
}
@media (max-width: 760px) {
    .v4-heading,
    .v4-practice-header,
    .v4-professor-intro {
        display: grid;
    }
    .v4-professor-grid {
        grid-template-columns: 1fr;
    }
    .v4-resource-wide {
        grid-column: auto;
    }
    .v4-answer-actions .button,
    .v4-practice-header .button,
    .v4-professor-intro .button {
        width: 100%;
    }
}
@media print {
    .v4-tabs,
    [data-v4-panel="practice"],
    .v4-professor-intro .button,
    .solution-sheet-tools,
    header,
    footer,
    .calc-sidebar,
    .tool-hero,
    .ad-slot {
        display: none !important;
    }
    [data-v4-panel="professor"] {
        display: block !important;
    }
    .v4-professor-grid {
        grid-template-columns: 1fr 1fr;
    }
    .v4-resource {
        break-inside: avoid;
        box-shadow: none;
    }
}

/* LutherMaddy Learning Framework pilot additions */
.v4-understanding-intro{padding:1.25rem;border-radius:16px;background:#f5f9ff;border:1px solid #cbdcf3;margin-bottom:1rem}
.v4-understanding-intro h3{margin:.15rem 0 .55rem}.v4-lead{font-size:1.08rem;line-height:1.7;margin:0}
.v4-understanding-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
.v4-chapter-card{margin-top:1rem;padding:1.25rem;border:1px solid #dbe3ee;border-radius:16px;background:#fff;display:flex;justify-content:space-between;gap:1.25rem;align-items:center}
.v4-resource-links{display:flex;flex-wrap:wrap;gap:.65rem}.v4-instructor-print-header{display:none}.v4-full{grid-column:1/-1}
.student-common-mistakes{margin-top:1rem;padding:1rem;border-left:5px solid #d97706;border-radius:10px;background:#fffbeb}
.student-common-mistakes h3{margin-top:0}.student-common-mistakes ul{margin-bottom:0}
@media(max-width:760px){.v4-understanding-grid{grid-template-columns:1fr}.v4-chapter-card{display:block}.v4-resource-links{margin-top:1rem}}
@media print{
 body.v4-printing-instructor *{visibility:hidden!important}
 body.v4-printing-instructor .v4-print-target,
 body.v4-printing-instructor .v4-print-target .v4-instructor-panel,
 body.v4-printing-instructor .v4-print-target .v4-instructor-panel *{visibility:visible!important}
 body.v4-printing-instructor .v4-print-target{position:absolute!important;left:0!important;top:0!important;width:100%!important;margin:0!important;padding:0!important;border:0!important;box-shadow:none!important}
 body.v4-printing-instructor .v4-instructor-panel{display:block!important;position:static!important;padding:0!important;border:0!important}
 body.v4-printing-instructor .v4-tabs,body.v4-printing-instructor .v4-heading,body.v4-printing-instructor [data-v4-print-instructor],body.v4-printing-instructor .v4-professor-intro p{display:none!important}
 body.v4-printing-instructor .v4-instructor-print-header{display:block!important;visibility:visible!important;border-bottom:2px solid #222;margin-bottom:18px;padding-bottom:10px}
 body.v4-printing-instructor .v4-professor-intro{display:block!important;margin:0 0 12px!important;padding:0!important}
 body.v4-printing-instructor .v4-professor-grid{display:block!important}
 body.v4-printing-instructor .v4-resource{break-inside:avoid;page-break-inside:avoid;border:0!important;box-shadow:none!important;padding:0!important;margin:0 0 16px!important}
 body.v4-printing-instructor a{text-decoration:none;color:#000}
}

/* Written lesson version of the LutherMaddy Learning Framework */
.lesson-v4 { margin: 0 0 2rem; }
.lesson-v4 [hidden] { display: none !important; }
.lesson-v4-tabs { display: flex; flex-wrap: wrap; gap: .55rem; margin: 0 0 1rem; padding: .55rem; border: 1px solid #dbe3ee; border-radius: 16px; background: #f8fafc; }
.lesson-v4-tab { appearance: none; border: 0; border-radius: 11px; padding: .8rem 1rem; background: transparent; color: #334155; font: inherit; font-weight: 700; cursor: pointer; }
.lesson-v4-tab:hover, .lesson-v4-tab:focus-visible { background: #e8f1ff; color: #153e75; }
.lesson-v4-tab.is-active { background: #1d4f91; color: #fff; box-shadow: 0 6px 16px rgba(29,79,145,.18); }
.lesson-v4-panel { border: 1px solid #dbe3ee; border-radius: 18px; background: #fff; box-shadow: 0 12px 30px rgba(15,23,42,.06); overflow: hidden; }
.lesson-v4-resource-bar, .lesson-v4-instructor-intro, .lesson-v4-panel-intro { display: flex; justify-content: space-between; align-items: flex-start; gap: 1.25rem; padding: 1.4rem; border-bottom: 1px solid #e2e8f0; background: linear-gradient(135deg,#f8fbff,#eef5ff); }
.lesson-v4-resource-bar h2, .lesson-v4-instructor-intro h2, .lesson-v4-panel-intro h2 { margin: .1rem 0 .45rem; }
.lesson-v4-resource-bar p, .lesson-v4-instructor-intro p, .lesson-v4-panel-intro p { margin: 0; }
.lesson-v4-actions { display: flex; flex-wrap: wrap; gap: .65rem; flex: 0 0 auto; }
.lesson-v4-written-content { padding: 1.5rem; }
.lesson-v4-written-content > :first-child { margin-top: 0; }
.lesson-v4-written-content img { max-width: 100%; height: auto; }
.lesson-v4-card-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1rem; padding: 1.25rem; }
.lesson-v4-card { padding: 1.15rem; border: 1px solid #dbe3ee; border-radius: 14px; background: #fff; }
.lesson-v4-card h3 { margin-top: 0; }
.lesson-v4-full { grid-column: 1 / -1; }
.lesson-v4-list { margin: .6rem 0 0; padding-left: 1.25rem; }
.lesson-v4-list li + li { margin-top: .45rem; }
.lesson-v4-empty { color: #64748b; font-style: italic; }
.lesson-v4-table-wrap { overflow-x: auto; }
.lesson-v4-table-wrap table { width: 100%; border-collapse: collapse; }
.lesson-v4-table-wrap th, .lesson-v4-table-wrap td { padding: .7rem; border: 1px solid #dbe3ee; text-align: left; }
.lesson-v4-table-wrap th:last-child, .lesson-v4-table-wrap td:last-child { width: 90px; text-align: center; }
.lesson-v4-question-group + .lesson-v4-question-group { margin-top: 1rem; }
.lesson-v4-print-header { display: none; }
@media (max-width: 760px) {
  .lesson-v4-resource-bar, .lesson-v4-instructor-intro, .lesson-v4-panel-intro { display: block; }
  .lesson-v4-actions { margin-top: 1rem; }
  .lesson-v4-card-grid { grid-template-columns: 1fr; }
  .lesson-v4-full { grid-column: auto; }
}
@media print {
  body.lesson-v4-printing-instructor > * { display: none !important; }
  body.lesson-v4-printing-instructor main { display: block !important; }
  body.lesson-v4-printing-instructor main > * { display: none !important; }
  body.lesson-v4-printing-instructor .lesson-v4-print-target { display: block !important; }
  body.lesson-v4-printing-instructor .lesson-v4-print-target > * { display: none !important; }
  body.lesson-v4-printing-instructor .lesson-v4-print-target .lesson-v4-instructor { display: block !important; border: 0; box-shadow: none; }
  body.lesson-v4-printing-instructor .lesson-v4-instructor > * { display: block !important; }
  body.lesson-v4-printing-instructor .lesson-v4-instructor-intro { display: none !important; }
  body.lesson-v4-printing-instructor .lesson-v4-print-header { display: block !important; margin-bottom: 1rem; }
  body.lesson-v4-printing-instructor .lesson-v4-card-grid { display: block !important; padding: 0; }
  body.lesson-v4-printing-instructor .lesson-v4-card { break-inside: avoid; margin: 0 0 .8rem; box-shadow: none; }
}

/* Learning Framework companion-page navigation */
.lesson-v4-tab { text-decoration: none; display: inline-flex; align-items: center; justify-content: center; }
.lesson-v4-panel + .lesson-v4-panel { margin-top: 1.25rem; }
.lesson-v4-enhanced .lesson-v4-panel[hidden] { display: none !important; }
.lesson-v4-enhanced .lesson-v4-panel + .lesson-v4-panel { margin-top: 0; }
.lesson-v4-featured { grid-column: 1 / -1; background: linear-gradient(135deg,#f8fbff,#eef5ff); border-color: #bfd3ee; }
.lesson-v4-next-step { display: flex; justify-content: space-between; align-items: center; gap: 1.25rem; padding: 1.25rem 1.4rem; border-top: 1px solid #e2e8f0; background: #f8fafc; }
.lesson-v4-next-step h3 { margin: .1rem 0 .35rem; }
.lesson-v4-next-step p { margin: 0; }
.lesson-v4-next-step .button { flex: 0 0 auto; }
.lesson-v4-panel:target { scroll-margin-top: 7rem; }
@media (max-width: 720px) {
  .lesson-v4-next-step { display: block; }
  .lesson-v4-next-step .button { margin-top: 1rem; }
}

/* Keep written-lesson framework panels aligned with the rest of the site,
   even if a legacy page or stylesheet changes the surrounding container. */
.lesson-v4 {
  width: 100%;
  max-width: 1180px;
  margin-left: auto;
  margin-right: auto;
}
.lesson-v4-panel-intro,
.lesson-v4-instructor-intro,
.lesson-v4-card-grid,
.lesson-v4-next-step {
  box-sizing: border-box;
}

/* Six-part written lesson framework: Overview, Learn, Watch, Practice, Resources, Instructor */
.lesson-v4-tabs {
  position: sticky;
  top: .5rem;
  z-index: 8;
}
.lesson-v4-tabs .lesson-v4-tab {
  flex: 1 1 145px;
  min-width: 0;
}
.lesson-v4-content-pad { padding: 1.25rem; }
.lesson-v4-link-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}
.lesson-v4-link-card {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  min-height: 185px;
  padding: 1.2rem;
  border: 1px solid #dbe3ee;
  border-radius: 14px;
  background: #fff;
}
.lesson-v4-link-card h3 { margin: 0 0 .45rem; }
.lesson-v4-link-card p { margin: 0 0 1rem; }
.lesson-v4-link-card .button { margin-top: auto; }
.lesson-v4-overview-grid .lesson-v4-card:nth-child(3),
.lesson-v4-overview-grid .lesson-v4-card:nth-child(4) { background: #f8fafc; }
.lesson-v4-panel em { color: inherit; }

@media (max-width: 760px) {
  .lesson-v4-tabs {
    position: static;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .lesson-v4-tabs .lesson-v4-tab { width: 100%; }
  .lesson-v4-link-grid { grid-template-columns: 1fr; }
  .lesson-v4-link-card { min-height: 0; }
}

@media (max-width: 430px) {
  .lesson-v4-tabs { grid-template-columns: 1fr; }
}
