/* Shared activity surfaces: the learning path continues into every exercise. */
.kh-learning .activity-page { max-width:1180px; padding:0 0 30px; margin:0 auto; }
.activity-page { --activity-green:var(--ks-377052); --activity-line:var(--ks-dfe7dc); --activity-soft:var(--ks-e8f2df); --activity-coral:var(--ks-a55f43); min-width:0; }
.activity-page>.breadcrumbs { margin:0 0 22px; font-size:11px; line-height:1.8; color:var(--kt-64705d); }
.activity-page .activity-heading { display:flex; align-items:center; justify-content:space-between; gap:28px; max-width:none; margin:0 0 25px; padding:28px 32px; border:1px solid var(--ks-d5e5cf); border-radius:24px; background:var(--activity-soft); }
.activity-heading-copy { min-width:0; flex:1; }
.activity-page .revision-eyebrow { font-size:10px; color:var(--kt-57714e); letter-spacing:1px; line-height:1.6; }
.activity-page .activity-heading h1 { font-size:34px; line-height:1.15; letter-spacing:-.4px; margin:11px 0 13px; max-width:740px; }
.activity-heading-copy>p:not(.revision-eyebrow) { max-width:680px; color:var(--kt-5e7357); font-size:14px; line-height:1.7; }
.activity-tags { display:flex; flex-wrap:wrap; gap:8px; padding:0; margin:19px 0 0; list-style:none; }
.activity-tags li { color:var(--kt-526b49); font-size:11px; line-height:1.5; background:var(--ks-ffffffb3); padding:6px 10px; border:1px solid var(--ks-dbe7d4); border-radius:20px; }
.activity-emblem { position:relative; display:grid; place-items:center; width:138px; min-height:140px; flex-shrink:0; }
.activity-emblem-tile { display:grid; place-items:center; width:104px; height:112px; color:var(--kt-698456); background:var(--ks-fffdf6); border:4px solid var(--ks-fff); border-radius:28px; box-shadow:0 7px 0 var(--ks-b6cba4); transform:rotate(-8deg); }
.activity-emblem svg { display:block; width:83px; height:83px; }
.activity-spark { position:absolute; width:31px; height:31px; display:grid; place-items:center; font-size:22px; font-weight:700; border-radius:11px; background:var(--ks-f6dec9); color:var(--kt-a16d49); z-index:1; }
.activity-spark-one { right:0; top:0; transform:rotate(10deg); }
.activity-spark-two { bottom:0; left:0; background:var(--ks-faf0cb); color:var(--kt-9c8148); transform:rotate(-12deg); }
.activity-course-trail { display:flex; align-items:center; justify-content:center; gap:28px; margin:0 0 24px; padding:4px 0; font-size:12px; }
.activity-course-trail>a,.activity-course-trail>span { display:flex; align-items:center; gap:9px; min-height:40px; color:var(--kt-6a7a61); }
.activity-course-trail>a:hover { color:var(--kt-305e39); text-decoration:underline; text-underline-offset:4px; }
.activity-course-trail>span { color:var(--kt-375c30); font-weight:700; }
.activity-course-trail>a>span,.activity-course-trail>span>b { display:grid; place-items:center; width:29px; height:29px; border-radius:10px; background:var(--ks-edf1e7); border:1px solid var(--ks-e1e6d9); font-weight:700; flex-shrink:0; }
.activity-course-trail>span>b { background:var(--ks-dceacb); border-color:var(--ks-acbf91); }
.activity-page .exercise-quest-progress { display:grid; grid-template-columns:minmax(200px,1fr) minmax(80px,1fr) auto; gap:25px; align-items:center; padding:18px 22px; margin:0 0 23px; background:var(--ks-fff); border:1px solid var(--activity-line); border-radius:18px; }
.exercise-quest-progress p:not(.revision-eyebrow) { color:var(--kt-566c4f); font-size:12px; line-height:1.6; margin:5px 0 0; }
.activity-page progress { accent-color:var(--ks-83a473); }
.exercise-quest-progress progress,.activity-page .daily-session-progress progress { width:100%; height:8px; border:0; border-radius:10px; overflow:hidden; background:var(--ks-edf2e6); }
.exercise-quest-progress progress::-webkit-progress-bar,.activity-page .daily-session-progress progress::-webkit-progress-bar { background:var(--ks-edf2e6); border-radius:10px; }
.exercise-quest-progress progress::-webkit-progress-value,.activity-page .daily-session-progress progress::-webkit-progress-value { background:var(--ks-83a473); border-radius:10px; }
.exercise-quest-progress progress::-moz-progress-bar,.activity-page .daily-session-progress progress::-moz-progress-bar { background:var(--ks-83a473); border-radius:10px; }
.exercise-quest-progress nav { display:flex; gap:7px; }
.exercise-quest-progress nav>a { display:grid; place-items:center; height:33px; width:33px; border-radius:11px; border:1px solid var(--ks-dce4d5); background:var(--ks-fafcf7); color:var(--kt-67795d); font-size:12px; font-weight:700; }
.exercise-quest-progress nav>a.is-answered { color:var(--kt-fff); background:var(--ks-6c8d5d); border-color:var(--ks-6c8d5d); }
.exercise-quest-progress nav>a:hover { outline:2px solid var(--ks-bacdac); outline-offset:2px; }
.activity-page .exercise-layout { grid-template-columns:minmax(0,1fr) 260px; gap:24px; }
.activity-page .exercise-sheet { background:none; padding:0; }
.activity-page .exercise-instructions { font-size:13px; line-height:1.75; margin:0 0 25px; padding:18px 22px; color:var(--kt-6c735f); background:var(--ks-f6f2e8); border-radius:16px; }
.activity-page .exercise-question { border:1px solid var(--activity-line); border-bottom:3px solid var(--ks-dfe7d5); background:var(--ks-fff); padding:23px; margin:0 0 22px; border-radius:20px; scroll-margin-top:105px; }
.activity-page .exercise-question legend { float:left; font-size:17px; line-height:1.7; margin:0 0 22px; }
.activity-page .exercise-question>*:not(legend) { clear:both; }
.activity-page .question-number { width:31px; height:31px; background:var(--ks-e8efde); color:var(--kt-64814d); border-radius:10px; margin-right:8px; font-family:KahierNunito,Roboto,sans-serif; }
.activity-page .answer-option { border:1px solid var(--ks-dfe5d8); border-bottom-width:3px; border-radius:13px; padding:15px 12px; background:var(--ks-fcfdf9); color:var(--kt-34452f); font-size:17px; transition:background .12s,border-color .12s; }
.activity-page .answer-option:hover:not(.answer-correct,.answer-wrong) { border-color:var(--ksk-9db689); background:var(--ksk-f1f6e9); }
.activity-page .answer-option.is-selected { background:var(--ks-e9f1df); border-color:var(--ks-86a76e); }
.activity-page .answer-option.answer-correct { background:var(--ksk-e9f4e5); border-color:var(--ksk-80a96e); color:var(--ktk-315f35); }
.activity-page .answer-option.answer-wrong { background:var(--ksk-fbece2); border-color:var(--ksk-c99575); color:var(--ktk-975b3d); }
.activity-page .answer-option input { accent-color:var(--ks-658751); }
.activity-page .answer-option:has(input:focus-visible) { outline:3px solid var(--ks-436c42); outline-offset:3px; }
.activity-page .answer-explanation { background:var(--ks-f4f7ef); border:1px solid var(--ks-e5ebdd); border-radius:14px; padding:20px; font-size:15px; }
.activity-page .answer-status.is-incorrect { color:var(--ktk-96553a); }
.activity-page .placevalue-table th { background:var(--ks-e5eedb); color:var(--kt-536c44); }
.activity-page .placevalue-table td { border-color:var(--ks-dbe4d1); }
.activity-page .placevalue-highlight { background:var(--ks-6c8d5d); }
.activity-page .exercise-result { background:var(--ks-e8f2df); border:1px solid var(--ks-d6e3ca); border-radius:20px; margin-bottom:20px; }
.activity-page .exercise-result h2 { font-family:KahierNunito,Roboto,sans-serif; color:var(--kt-527341); }
.activity-page .exercise-actions { justify-content:flex-start; margin:26px 0 0; }
.activity-page .exercise-guide { background:var(--ks-fffaf0); border:1px solid var(--ks-e8dfc8); border-radius:20px; padding:22px; top:100px; font-size:13px; line-height:1.7; }
.activity-page .exercise-guide h2 { font-family:KahierNunito,Roboto,sans-serif; font-size:23px; margin:8px 0 15px; }
.activity-page .exercise-guide ol { display:block; margin:15px 0; }
.activity-page .exercise-guide li { padding:3px 0; }
.activity-page .exercise-guide hr { border-color:var(--ks-e9dfc7); margin:22px 0; }
.activity-page .exercise-guide .revision-eyebrow { color:var(--kt-8f7849); }
.activity-page .exercise-guide a { font-size:12px; font-weight:500; line-height:1.7; }
.activity-page .more-exercises h3 { font-family:KahierNunito,Roboto,sans-serif; font-size:18px; }
.activity-page .more-exercises a { display:block; margin:0; padding:11px 0; border-bottom:1px solid var(--ks-eee6d4); }
.activity-page .activity-download { display:block; font-size:11px; padding:12px 0 0; margin-top:12px; color:var(--kt-7a705a); }
.activity-page .attempt-save { border-radius:14px; line-height:1.8; margin:0 0 24px; }
.activity-page .free-response-field :is(input,textarea) { border-color:var(--ks-b8c6aa); border-radius:12px; background:var(--ks-fcfdf9); }
.activity-page .free-response-field :is(input,textarea):focus { border-color:var(--ks-67885b); outline:3px solid var(--ks-b7cda04d); }
.activity-page .free-response-field :is(input,textarea)[aria-invalid=true] { border-color:var(--ksk-b56749); }
.activity-page .free-response-hint { color:var(--kt-6c785f); }

/* Set-up choices and saved sessions keep their own meaningful progress. */
.activity-page .control-setup { padding:0; background:none; border:0; }
.activity-page .control-setup fieldset { padding:24px; background:var(--ks-fff); border:1px solid var(--activity-line); border-bottom-width:3px; border-radius:20px; margin:0 0 22px; }
.activity-page .control-setup legend { float:left; width:100%; font-family:KahierNunito,Roboto,sans-serif; font-size:23px; line-height:1.3; color:var(--kt-425d36); margin:0 0 22px; padding:0; }
.activity-page .control-setup fieldset>*:not(legend) { clear:both; }
.activity-page .control-chapters { grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.activity-page .control-chapters label,.activity-page .control-length label { border:1px solid var(--ks-dfe6d7); border-bottom-width:3px; background:var(--ks-fafcf6); border-radius:13px; min-height:52px; font-size:13px; }
.activity-page .control-chapters label:has(:checked),.activity-page .control-length label:has(:checked) { border-color:var(--ks-93ad80); background:var(--ks-eaf2df); color:var(--kt-446936); }
.activity-page .control-length label { min-width:155px; }
.activity-page .control-selection-note { padding:16px 20px; border-radius:14px; background:var(--ks-f6f0df); color:var(--kt-7d6c42); }
.activity-page .control-history { padding:25px; border:1px solid var(--activity-line); border-radius:20px; background:var(--ks-fff); }
.activity-page .control-history h2 { font-family:KahierNunito,Roboto,sans-serif; }
.activity-page .control-history li { border-color:var(--ks-e6ebde); }
.activity-page .control-history li:last-child { border-bottom:0; padding-bottom:0; }
.activity-page .control-question-nav { gap:10px; margin:0 0 25px; }
.activity-page .control-question-nav button { min-width:40px; min-height:40px; border:1px solid var(--ks-d9e4cf); border-bottom-width:3px; border-radius:12px; background:var(--ks-fff); color:var(--kt-657b54); }
.activity-page .control-question-nav .is-answered { background:var(--ks-e7f0dd); border-color:var(--ks-a5bd91); color:var(--kt-486e35); }
.activity-page .control-question-nav [aria-current] { outline-color:var(--ks-617f4e); }
.activity-page .daily-session-progress { padding:18px 22px; border:1px solid var(--activity-line); border-radius:17px; background:var(--ks-fff); margin:0 0 25px; color:var(--kt-5e7352); font-size:13px; }
.activity-page .daily-session-progress progress { margin-top:12px; }
.activity-page .review-sheet,.activity-page .consolidation-activity { padding:28px; border:1px solid var(--activity-line); border-bottom-width:4px; border-radius:23px; background:var(--ks-fff); }
.activity-page .review-sheet h2,.activity-page .consolidation-activity h2 { font-family:KahierNunito,Roboto,sans-serif; font-size:25px; line-height:1.4; margin-bottom:24px; }
.activity-page .flashcard-meta,.activity-page .consolidation-meta { color:var(--kt-637857); font-size:12px; margin-bottom:22px; }
.activity-page .consolidation-meta>span:first-child,.activity-page .flashcard-meta>span:first-child { padding:6px 10px; background:var(--ks-edf3e5); border-radius:9px; }
.activity-page .consolidation-options label { border:1px solid var(--ks-dfe6d6); border-bottom-width:3px; border-radius:13px; background:var(--ks-fbfcf8); }
.activity-page .consolidation-options label:has(:checked) { border-color:var(--ks-8da67b); background:var(--ks-e9f1df); }
.activity-page .consolidation-feedback { background:var(--ks-f0f5e9); border:1px solid var(--ks-dce7d2); border-radius:15px; }
.activity-page .control-result-heading { background:var(--ks-e8f2df); border:1px solid var(--ks-d4e3c8); border-radius:22px; color:var(--kt-446735); }
.activity-page .control-result-heading h2 { font-family:KahierNunito,Roboto,sans-serif; }
.activity-page .control-result-heading p { color:var(--kt-607650); }
.activity-page .control-breakdown article { border:1px solid var(--activity-line); border-bottom-width:3px; border-radius:18px; }
.activity-page .control-breakdown strong { color:var(--kt-64854e); font-family:KahierNunito,Roboto,sans-serif; }
.activity-page .control-correction { border-color:var(--activity-line); border-radius:16px; }
.activity-page .control-correction[open] { border-color:var(--ksk-c9d8bd); }
.activity-page .control-correction[open] summary { background:var(--ksk-f4f7ee); margin-bottom:14px; }
.activity-page .control-correction summary .is-incorrect { color:var(--ktk-a36947); }
.activity-page .control-format-hint,.activity-page .control-history>p,.activity-page .control-history li span,.activity-page .consolidation-note { color:var(--kt-69775f); }
.activity-page .revision-guest { color:var(--kt-647358); border:1px solid var(--ks-e0e7d5); background:var(--ks-f1f5e9); border-radius:14px; font-size:13px; }
.activity-page .revision-guest a { color:var(--kt-45693b); }
.activity-page .revision-empty { border:1px solid var(--activity-line); border-bottom-width:4px; border-radius:23px; }
.activity-page .revision-empty h2 { font-family:KahierNunito,Roboto,sans-serif; }
.activity-page .revision-empty p { color:var(--kt-6a775f); }

/* Geometry keeps its diagram colors: the instructions refer to them. */
.activity-section-heading { display:flex; align-items:baseline; justify-content:space-between; gap:18px; margin:30px 0 0; }
.activity-section-heading h2 { font-size:24px; font-family:KahierNunito,Roboto,sans-serif; }
.activity-section-heading p { font-size:12px; color:var(--kt-6a795f); }
.activity-page .geo-activities { grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; margin-top:20px; }
.activity-page .geo-activities article { border:1px solid var(--activity-line); border-bottom:4px solid var(--ks-dfe7d4); border-radius:23px; padding:24px; }
.geo-activity-top { display:flex; align-items:center; justify-content:space-between; gap:10px; width:100%; margin-bottom:22px; }
.activity-page .geo-activity-symbol { width:66px; height:70px; background:var(--ks-e5efda); color:var(--kt-6c8a53); border-radius:21px; box-shadow:0 4px 0 var(--ks-d4e1c5); transform:rotate(-5deg); margin:0; font-family:KahierNunito,Roboto,sans-serif; }
.activity-page .geo-activities article:nth-child(2) .geo-activity-symbol { background:var(--ks-f6e5d7); color:var(--kt-a47651); box-shadow:0 4px 0 var(--ks-edcfb6); }
.activity-page .geo-activities article:nth-child(3) .geo-activity-symbol { background:var(--ks-e0efea); color:var(--kt-5d8a7b); box-shadow:0 4px 0 var(--ks-c6dfd3); }
.activity-workshop-number { font-size:9px; font-weight:700; color:var(--kt-7c8a71); letter-spacing:.6px; }
.activity-page .geo-activities h2 { font-family:KahierNunito,Roboto,sans-serif; font-size:24px; }
.activity-page .geo-activities p:not(.revision-eyebrow) { color:var(--kt-697760); font-size:13px; line-height:1.8; margin-bottom:22px; }
.activity-page .geo-activities .button { width:100%; text-align:center; font-size:12px; background:var(--ks-edf3e4); border-color:var(--ks-d6e3c7); color:var(--kt-527340); }
.activity-page .sym-toolbar { margin:0 0 24px; }
.activity-page .sym-toolbar .button { border-radius:13px; min-height:46px; }
.activity-page .sym-toolbar [aria-pressed=true] { border-color:var(--ks-83a070); background:var(--ks-e2eecf); color:var(--kt-456433); }
.activity-page .sym-sheet { padding:27px; border:1px solid var(--activity-line); border-bottom-width:4px; border-radius:23px; }
.activity-page .sym-sheet h2 { font-family:KahierNunito,Roboto,sans-serif; font-size:26px; line-height:1.4; }
.activity-page .sym-workspace { grid-template-columns:minmax(0,1.5fr) minmax(225px,1fr); gap:24px; }
.activity-page .sym-instructions { border:1px solid var(--ks-ece4cd); background:var(--ks-fffaf0); border-radius:17px; color:var(--kt-655d48); font-size:14px; }
.activity-page .sym-instructions h3 { color:var(--kt-5e613f); font-family:KahierNunito,Roboto,sans-serif; font-size:20px; }
.activity-page .sym-actions { border-top:1px solid var(--ks-e4ebdc); padding-top:22px; }
.activity-page .sym-actions a { color:var(--kt-4c7241); }
.activity-page .geo-tool-controls { border-color:var(--ks-dce5d5); border-radius:13px; background:var(--ks-fafcf6); }
.activity-page .geo-degree-label input { border-color:var(--ks-bbcba9); border-radius:11px; }
.activity-page :is(a,button,input):focus-visible { outline:3px solid var(--ks-3f6941); outline-offset:3px; }
.activity-page .sym-grid-buttons button:focus-visible { outline-offset:-4px; }

@media(max-width:1180px) {
  .activity-page .exercise-layout { grid-template-columns:minmax(0,1fr); }
  .activity-page .exercise-guide { position:static; }
  .activity-page .more-exercises { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:25px; }
  .activity-page .more-exercises h3 { grid-column:1/-1; }
  .activity-page .control-chapters { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .activity-page .geo-activities { grid-template-columns:1fr; }
  .activity-page .geo-activities .button { width:auto; }
}
@media(max-width:1000px) {
  .activity-page .sym-workspace { grid-template-columns:minmax(0,1fr); }
  .activity-page .activity-heading { padding:25px; gap:16px; }
  .activity-page .activity-heading h1 { font-size:30px; }
  .activity-emblem { width:110px; }
  .activity-page .exercise-quest-progress { grid-template-columns:1fr auto; gap:14px 22px; }
  .exercise-quest-progress progress { grid-column:1/-1; grid-row:2; }
}
@media(max-width:650px) {
  .activity-page .activity-heading { padding:23px; border-radius:21px; align-items:flex-start; }
  .activity-page .activity-heading h1 { font-size:29px; }
  .activity-heading-copy>p:not(.revision-eyebrow) { font-size:13px; }
  .activity-emblem { display:none; }
  .activity-tags { gap:6px; margin-top:16px; }
  .activity-tags li { font-size:10px; padding:5px 8px; }
  .activity-course-trail { align-items:flex-start; gap:8px; justify-content:space-between; font-size:10px; }
  .activity-course-trail>a,.activity-course-trail>span { flex:1; flex-direction:column; text-align:center; line-height:1.5; }
  .activity-course-trail>a>span,.activity-course-trail>span>b { width:27px; height:27px; }
  .activity-page .exercise-quest-progress { padding:18px; gap:15px; grid-template-columns:1fr; }
  .exercise-quest-progress nav { justify-content:flex-start; grid-row:3; }
  .activity-page .exercise-question { padding:19px 16px; }
  .activity-page .exercise-question legend { font-size:16px; }
  .activity-page .answer-option { padding:14px 11px; }
  .activity-page .answer-explanation { padding:16px 12px; font-size:14px; }
  .activity-page .exercise-result { flex-wrap:wrap; gap:12px; padding:20px; }
  .activity-page .exercise-guide { padding:22px; }
  .activity-page .more-exercises { display:block; }
  .activity-page .control-setup fieldset { padding:21px 17px; }
  .activity-page .control-setup legend { font-size:21px; }
  .activity-page .control-chapters { grid-template-columns:1fr; }
  .activity-page .control-length { display:grid; grid-template-columns:1fr; }
  .activity-page .control-length label { min-width:0; }
  .activity-page .control-history { padding:22px 18px; }
  .activity-page .review-sheet,.activity-page .consolidation-activity { padding:22px 17px; }
  .activity-page .review-sheet h2,.activity-page .consolidation-activity h2 { font-size:22px; }
  .activity-page .flashcard-meta,.activity-page .consolidation-meta { align-items:flex-start; flex-direction:column; gap:10px; }
  .activity-page .control-navigation { flex-wrap:wrap; gap:10px; }
  .activity-page .control-navigation .button { font-size:12px; padding:12px; }
  .activity-page .control-question-nav { gap:8px; }
  .activity-page .control-question-nav button { min-width:38px; min-height:40px; }
  .activity-section-heading { align-items:flex-start; flex-direction:column; gap:8px; }
  .activity-page .geo-activities article { padding:24px; }
  .activity-page .geo-activities .button { width:100%; }
  .activity-page .sym-sheet { padding:20px 14px; }
  .activity-page .sym-sheet h2 { font-size:23px; }
  .activity-page .sym-instructions { padding:17px; }
  .activity-page .sym-toolbar { gap:8px; }
}
@media(prefers-reduced-motion:reduce) { .activity-page .answer-option { transition:none; } }
