/* The same task, editable answers, and evidence-linked server grades. */
#segment-exercise { scroll-margin-top: 110px; padding-block: 31px 32px; border-top: 1px solid var(--paper-line, #ccd2c0); }
#segment-exercise [hidden] { display: none !important; }
.exercise-heading { display: flex; align-items: start; justify-content: space-between; gap: 25px; margin-bottom: 24px; }
.exercise-heading h2 { margin-bottom: 10px; }
.exercise-intro { margin: 0; max-width: 670px; }
.exercise-origin { flex-shrink: 0; padding: 6px 9px; border: 1px solid #b8c5ab; border-radius: 4px; background: #edf1e5; color: #49603c; font: 10px/1.6 ui-monospace, monospace; margin-top: 4px; }
.exercise-workspace { display: grid; grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr); gap: 20px; align-items: start; }
.exercise-editor, .exercise-results { min-width: 0; border: 1px solid #bbc7b1; border-radius: 7px; background: #fdfcf7; padding: 24px; }
.exercise-results { background: #f1f4e9; }
.exercise-panel-heading { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 9px 15px; margin-bottom: 18px; }
.exercise-panel-heading h3 { margin: 0; font: 400 25px/1.25 Georgia, serif; letter-spacing: -.4px; }
.exercise-state { font: 9px/1.6 ui-monospace, monospace; color: #5e7052; padding: 4px 7px; border: 1px solid #c7d0bb; border-radius: 3px; background: #edf0e5; }
.exercise-state[data-state="dirty"] { color: #795234; background: #f4e9dc; border-color: #d7bd9d; }
.exercise-task { margin: 0 0 22px; padding-bottom: 20px; border-bottom: 1px solid var(--paper-line, #ccd2c0); }
.exercise-fields { display: grid; gap: 20px; min-width: 0; border: 0; margin: 0; padding: 0; }
.exercise-field { min-width: 0; }
.exercise-field>label { display: block; margin: 0 0 8px; font-size: 12px; line-height: 1.6; font-weight: 600; color: #2f3d2d; }
.exercise-input { position: relative; display: flex; align-items: center; gap: 9px; }
.exercise-input input, .exercise-input select { min-width: 0; width: 100%; min-height: 46px; border: 1px solid #aebda2; border-radius: 4px; background: #fffefa; color: #26362a; padding: 10px 12px; font-family: inherit; }
.exercise-input select { padding-right: 27px; font-size: 13px; line-height: 1.6; }
.exercise-input input { font: 15px/1.5 ui-monospace, monospace; }
.exercise-input input[aria-invalid="true"], .exercise-input select[aria-invalid="true"] { border: 2px solid #9b5039; }
.exercise-unit { font: 10px/1.6 ui-monospace, monospace; color: #5c6d50; flex-shrink: 0; max-width: 92px; overflow-wrap: anywhere; }
.finance-walkthrough .exercise-help { font-size: 11px !important; line-height: 1.65 !important; margin: 7px 0 0; color: #66715e !important; }
.exercise-checkbox { display: flex; align-items: flex-start; gap: 12px; border: 1px solid #bec9b3; border-radius: 4px; padding: 12px; }
.exercise-checkbox input { width: 18px; height: 18px; flex-shrink: 0; margin: 2px 0; accent-color: #416438; }
.exercise-checkbox label { font-size: 12px; line-height: 1.75; cursor: pointer; }
.finance-walkthrough .exercise-field-error { font-size: 11px !important; line-height: 1.65 !important; color: #904831 !important; margin: 7px 0 0; }
.exercise-actions { padding-top: 4px; }
.exercise-primary { display: flex; align-items: center; justify-content: center; width: 100%; min-height: 48px; padding: 12px 18px; border: 1px solid #2a4431; border-radius: 4px; background: #2a4431; color: #fbfcf6; font: inherit; font-size: 12px; font-weight: 500; cursor: pointer; }
.exercise-primary:hover:not(:disabled) { background: #3c5941; }
.exercise-presets { display: flex; gap: 5px 14px; justify-content: space-between; flex-wrap: wrap; margin-top: 8px; }
.exercise-secondary { min-height: 42px; background: transparent; color: #4b663f; border: 0; padding: 7px 0; text-decoration: underline; text-underline-offset: 4px; font: inherit; font-size: 11px; cursor: pointer; text-align: left; }
#segment-exercise button:disabled, #segment-exercise fieldset:disabled { opacity: .58; cursor: wait; }
.finance-walkthrough .exercise-form-status { min-height: 36px; margin: 20px 0 8px; font-size: 11px !important; line-height: 1.65 !important; }
.finance-walkthrough .exercise-form-status[data-error="true"] { color: #8c432f !important; background: #f7eee4; padding: 10px 12px; border-left: 2px solid #a56e4d; border-radius: 2px; }
#segment-exercise :is(input, select, button, a):focus-visible, #exercise-grade:focus-visible, .exercise-form-status:focus-visible { outline: 2px solid #55713e; outline-offset: 3px; border-radius: 4px; }
#exercise-grade { scroll-margin-top: 110px; }
.exercise-score { display: flex; align-items: center; justify-content: space-between; gap: 18px; border: 1px solid #d0b99e; border-radius: 5px; background: #f7eee3; padding: 18px; }
.exercise-score[data-passed="true"] { border-color: #b0c39c; background: #e2ebd7; }
.exercise-tally strong { display: block; font: 400 34px/1.15 Georgia, serif; letter-spacing: -1px; color: #344330; }
.exercise-tally>span { display: block; font-size: 10px; color: #606b55; margin-top: 6px; }
.exercise-verdict { text-align: right; }
.exercise-verdict>span { display: block; font-size: 12px; color: #7d5133; }
.exercise-score[data-passed="true"] .exercise-verdict>span { color: #3d5f30; }
.exercise-delta { display: block; font: 9px/1.6 ui-monospace, monospace; color: #627354; margin-top: 8px; }
.exercise-delta[data-direction="down"] { color: #885036; }
.exercise-output { padding: 15px 0 18px; }
.finance-walkthrough .exercise-output>p { font-size: 12px !important; color: #384a31 !important; margin: 0 0 12px; }
.exercise-metrics { display: grid; gap: 7px; margin: 0; }
.exercise-metrics>div { display: flex; justify-content: space-between; gap: 20px; font-size: 11px; line-height: 1.7; }
.exercise-metrics dt { color: #66745a; }
.exercise-metrics dd { text-align: right; color: #33482b; margin: 0; font-family: ui-monospace, monospace; overflow-wrap: anywhere; }
.exercise-layers { border-top: 1px solid #c7d1bb; }
.exercise-layer { padding: 17px 0 15px; }
.exercise-layer+.exercise-layer { border-top: 1px solid #c7d1bb; }
.exercise-layer:last-child { padding-bottom: 0; }
.exercise-layer-heading { display: flex; justify-content: space-between; align-items: center; gap: 13px; margin-bottom: 13px; }
.exercise-layer-heading h4 { font-size: 13px; line-height: 1.5; font-weight: 500; margin: 0; }
.exercise-layer-score { font: 11px/1.6 ui-monospace, monospace; color: #765033; white-space: nowrap; }
.exercise-layer[data-passed="true"] .exercise-layer-score { color: #436134; }
.exercise-layer-score small { font-size: 9px; }
.exercise-checks { display: grid; gap: 11px; list-style: none; margin: 0; padding: 0; }
.exercise-checks li { display: flex; align-items: flex-start; gap: 10px; }
.exercise-checks li>div { min-width: 0; }
.exercise-check-status { display: inline-block; flex-shrink: 0; border: 1px solid #d2b69d; border-radius: 3px; background: #f4e6d8; color: #855037; padding: 2px 5px; font: 9px/1.6 ui-monospace, monospace; }
.exercise-checks li[data-passed="true"] .exercise-check-status { border-color: #bac9aa; background: #e6eddc; color: #456237; }
.finance-walkthrough .exercise-checks p { font-size: 11px !important; line-height: 1.75 !important; margin: 0; color: #53634a !important; }
.exercise-evidence-list { display: flex; flex-wrap: wrap; gap: 0 15px; margin-top: 3px; }
.exercise-evidence { display: inline-flex; align-items: center; min-height: 33px; font-size: 10px; line-height: 1.6; color: #4c6a3c; text-decoration: underline; text-underline-offset: 3px; overflow-wrap: anywhere; }
.exercise-evidence-return { display: flex; align-items: center; min-height: 44px; font-size: 11px; color: #49663a; text-decoration: underline; text-underline-offset: 4px; margin-top: 7px; }
.exercise-ungraded { padding: 45px 10px 40px; text-align: center; }
.exercise-ungraded-mark { display: inline-grid; place-items: center; width: 38px; height: 38px; border: 1px solid #b5c5a5; border-radius: 50%; color: #5e794a; font: 21px/1 Georgia, serif; margin-bottom: 17px; }
.exercise-ungraded h4 { font: 400 25px/1.25 Georgia, serif; margin: 0 0 12px; letter-spacing: -.4px; }
.finance-walkthrough .exercise-ungraded>p { font-size: 12px !important; max-width: 300px; margin: 0 auto; }
.finance-walkthrough .exercise-ungraded>.exercise-previous { margin-top: 23px; font-size: 10px !important; color: #748265 !important; }
.exercise-load { padding: 24px; border: 1px solid #bcc9ad; border-radius: 6px; background: #edf0e5; }
.exercise-load p { margin: 0; }
.exercise-load[data-error="true"] { background: #f7eee4; border-color: #d1b498; }
.finance-walkthrough .exercise-method { margin: 17px 0 0; font-size: 10px !important; line-height: 1.7 !important; color: #6a785f !important; }
.exercise-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
@media (max-width: 850px) { .exercise-workspace { grid-template-columns: 1fr; } .exercise-heading { flex-direction: column; gap: 15px; } .exercise-origin { margin-top: 0; } }
@media (max-width: 540px) {
  .exercise-editor, .exercise-results { padding: 20px 17px; }
  .exercise-input input, .exercise-input select { font-size: 16px; }
  .exercise-score { padding: 15px 12px; gap: 12px; }
  .exercise-tally strong { font-size: 31px; }
  .exercise-verdict>span { font-size: 11px; }
  .exercise-delta { max-width: 145px; }
  .exercise-metrics>div { gap: 14px; }
  .exercise-metrics dd { max-width: 58%; }
  .exercise-evidence { min-height: 40px; }
}
