@import url('/css/logic-workspace.css');
.tm-context {
  margin: 14px 0;
  padding: 13px 14px;
  border-left: 3px solid var(--purple);
  border-radius: 0 8px 8px 0;
  background: rgba(167, 139, 250, .07);
}
.tm-context.local { border-left-color: var(--cyan); background: rgba(0, 212, 255, .055); }
.tm-context > span,
.tm-scheme-section > strong {
  display: block;
  margin-bottom: 8px;
  color: var(--purple);
  font: 600 10px "Fira Code", monospace;
  letter-spacing: .05em;
  text-transform: uppercase;
}
.tm-context.local > span { color: var(--cyan); }
.tm-content-block { margin: 0 0 13px; }
.tm-content-block:last-child { margin-bottom: 0; }
.tm-paragraph { color: var(--text); font-size: 14px; }
.tm-instruction { color: var(--text); font-size: 14px; font-weight: 700; }
.tm-content-block u { text-decoration-color: var(--cyan); text-underline-offset: 3px; }
.tm-code-block {
  overflow-x: auto;
  padding: 12px 14px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: #080e17;
  color: #d8e8fb;
  font: 12px/1.65 "Fira Code", monospace;
}
.tm-choice-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  padding: 0;
  border: 0;
}
.tm-choice-limit {
  grid-column: 1 / -1;
  margin: 0 0 2px;
  color: var(--text-dimmer);
  font: 600 11px "Fira Code", monospace;
}
.tm-choice-list label,
.tm-choice-answer > div {
  display: flex;
  gap: 9px;
  align-items: flex-start;
  padding: 10px 11px;
  border: 1px solid var(--border);
  border-radius: 7px;
  background: #09101a;
  color: var(--text-dim);
  font-size: 13px;
}
.tm-choice-list input { accent-color: var(--cyan); margin-top: 3px; }
.tm-option-label { color: var(--purple); font: 600 11px "Fira Code", monospace; }
.tm-word-bank {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  padding: 11px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: #09101a;
}
.tm-word-bank span,
.tm-diagram-labels span {
  padding: 4px 7px;
  border: 1px solid rgba(167, 139, 250, .24);
  border-radius: 5px;
  background: rgba(167, 139, 250, .08);
  color: var(--text-dim);
  font: 11px "Fira Code", monospace;
}
.tm-answer-area { display: block; margin-top: 14px; }
.tm-answer-label,
.tm-repeat-field span {
  display: block;
  margin-bottom: 5px;
  color: var(--text-dimmer);
  font-size: 11px;
  font-weight: 700;
}
.tm-answer-input,
.tm-answer-textarea {
  width: 100%;
  border: 1px solid var(--border-2);
  border-radius: 7px;
  background: var(--bg);
  color: var(--text);
  font: 13.5px/1.5 "Karla", sans-serif;
}
.tm-answer-input { min-height: 40px; padding: 8px 10px; }
.tm-answer-textarea { min-height: 92px; padding: 10px 12px; resize: vertical; }
.tm-answer-input:focus,
.tm-answer-textarea:focus {
  outline: none;
  border-color: var(--cyan);
  box-shadow: 0 0 0 2px rgba(0, 212, 255, .12);
}
.tm-answer-input.mini { display: inline-block; width: 125px; margin: 0 5px; vertical-align: middle; }
.tm-answer-line { display: flex; align-items: center; gap: 7px; }
.tm-answer-line .tm-answer-input { flex: 1; }
.tm-working { border-style: dashed; border-color: rgba(0, 212, 255, .38); }
.tm-repeat-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
.tm-responsive-table,
.tm-binary-addition-wrap { overflow-x: auto; }
.tm-question-table,
.tm-binary-addition { width: 100%; border-collapse: collapse; font-size: 12px; }
.tm-question-table th,
.tm-question-table td,
.tm-binary-addition th,
.tm-binary-addition td { padding: 8px; border: 1px solid var(--border); text-align: left; }
.tm-question-table th,
.tm-binary-addition th { background: var(--panel-head); color: var(--text-dim); }
.tm-question-table .tm-answer-input { min-width: 105px; }
.tm-binary-grid-list { display: grid; gap: 10px; overflow-x: auto; }
.tm-binary-row { display: flex; align-items: center; gap: 12px; min-width: max-content; }
.tm-binary-label { min-width: 72px; color: var(--text-dim); font: 11px "Fira Code", monospace; }
.tm-bit-cells { display: grid; grid-template-columns: repeat(var(--bits), 36px); }
.tm-bit-cell {
  display: grid;
  width: 36px;
  height: 38px;
  min-height: 38px;
  padding: 0;
  place-items: center;
  border: 1px solid var(--border-2);
  border-radius: 0;
  background: #080e17;
  color: var(--text);
  font: 600 13px "Fira Code", monospace;
  text-align: center;
}
.tm-bit-cell.nibble-start { margin-left: 5px; }
.tm-binary-addition .tm-bit-cell { margin: auto; }
.tm-empty-answer { color: var(--text-dimmer); }
.tm-answer-token { color: var(--green); font-weight: 700; }
.tm-diagram-placeholder {
  display: flex;
  gap: 12px;
  padding: 12px 14px;
  border: 1px dashed rgba(251, 191, 36, .38);
  border-radius: 8px;
  background: rgba(251, 191, 36, .06);
  color: var(--text-dim);
}
.tm-diagram-placeholder > span { color: var(--amber); font-size: 24px; }
.tm-diagram-placeholder strong { color: var(--amber); }
.tm-diagram-placeholder p { margin: 3px 0 0; font-size: 12px; }
.tm-diagram-labels { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.tm-scheme-section + .tm-scheme-section { margin-top: 15px; padding-top: 15px; border-top: 1px solid var(--border); }
.tm-scheme-section > strong { color: var(--green); }
.tm-scheme-group + .tm-scheme-group { margin-top: 13px; padding-top: 13px; border-top: 1px dashed var(--border); }
.tm-scheme-group > .tm-paragraph:first-child { color: var(--amber); font-weight: 700; }
.student-ans { white-space: normal; }

@media (max-width: 620px) {
  .tm-choice-list,
  .tm-repeat-grid { grid-template-columns: 1fr; }
  .tm-answer-line { align-items: stretch; flex-direction: column; }
  .tm-bit-cells { grid-template-columns: repeat(var(--bits), 31px); }
  .tm-bit-cell { width: 31px; height: 34px; min-height: 34px; }
}

/* Test Maker's working surface uses the site's ink/lime palette without
   changing the shared MCQ or flashcard styles. Questions stay white. */
body.testmaker-page {
  --bg: #f4f5f2 !important;
  --panel: #fff !important;
  --panel-head: #f4f5f2 !important;
  --border: #d8dcd3 !important;
  --border-2: #a3ad9a !important;
  --text: #040608 !important;
  --text-dim: #42483e !important;
  --text-dimmer: #596151 !important;
  --cyan: #284a18 !important;
  --purple: #284a18 !important;
  --green: #284a18 !important;
  min-height: 100vh;
  background: #f4f5f2 !important;
  font-size: 16px;
}
.testmaker-page main { padding-top: 32px !important; }
.testmaker-page .hero {
  background: var(--lime) !important;
  border: 1px solid #aacd8d !important;
  padding: clamp(24px, 4vw, 38px) !important;
}
.testmaker-page .hero h1 { font-size: clamp(2rem, 5vw, 3.4rem) !important; }
.testmaker-page .hero .sub { color: #293322 !important; max-width: 660px; }
.testmaker-page .eyebrow, .testmaker-page .chapgroup-title { color: #30382a !important; font-size: 14px; }
.testmaker-page .eyebrow:before { content: none; }
.testmaker-page .statrow { gap: 12px 24px; }
.testmaker-page .stat, .testmaker-page .stat-num { font-size: 14px; }
.testmaker-page .panel { border: 1px solid var(--border) !important; box-shadow: none !important; }
.testmaker-page .panel-head { background: #040608 !important; border: 0 !important; color: #dae3d1 !important; font-size: 14px; padding: 17px 22px; gap: 12px; flex-wrap: wrap; }
.testmaker-page .panel-head b { color: #fff !important; font-size: 16px; }
.testmaker-page .chip { background: #fff !important; padding: 13px; min-height: 60px; }
.testmaker-page .chip .name { font-size: 15px; }
.testmaker-page .chip .chapnum { font-size: 14px; font-weight: 800; color: #284a18 !important; }
.testmaker-page .chip .count { font-size: 14px; }
.testmaker-page .chip.active { background: #e9fbdc !important; border-color: #638744 !important; color: #040608 !important; }
.testmaker-page .chip.active .chapnum, .testmaker-page .chip.active .count { color: #284a18 !important; }
.testmaker-page .selectrow { font-size: 14px; }
.testmaker-page .countbtn { background: #fff; color: #040608; font-family: inherit; font-size: 16px; }
.testmaker-page .countbtn.active { background: var(--lime); border-color: #638744; color: #040608; }
.testmaker-page .hint, .testmaker-page .tm-setup-note, .testmaker-page .tm-access-note { font-size: 14px; color: var(--text-dim); line-height: 1.6; }
.testmaker-page .tm-setup-note { margin: 20px 0 12px; text-align: center; }
.tm-access-note { display: flex; justify-content: space-between; align-items: center; gap: 15px; margin-bottom: 16px; }
.tm-access-note strong { margin-right: 8px; }
.tm-access-note a { color: #284a18; white-space: nowrap; }
.tm-setup-message:empty { display: none; }
.testmaker-page .startbtn { background: #040608 !important; color: var(--lime) !important; font-size: 16px; min-height: 50px; }
.testmaker-page .startbtn:hover:not(:disabled) { background: #23341b !important; }
.testmaker-page .startbtn:disabled { background: #d8dcd3 !important; color: #596151 !important; }
.tm-mode-switch { display: flex; gap: 6px; background: #040608; border-radius: 18px; padding: 6px; margin-bottom: 22px; }
.tm-mode-switch button { flex: 1; min-height: 48px; border: 0; border-radius: 13px; background: transparent; color: #fff; font: 700 16px 'DM Sans', sans-serif; cursor: pointer; padding: 10px; }
.tm-mode-switch button[aria-pressed="true"] { background: var(--lime); color: #040608; }
.tm-course-switch { display:flex; gap:8px; margin:0 0 22px; padding:6px; border:1px solid #a3ad9a; border-radius:18px; background:#fff; }
.tm-course-switch a { flex:1; display:flex; justify-content:center; align-items:center; gap:10px; min-height:48px; padding:10px; border-radius:12px; color:#040608; font:700 16px 'DM Sans',sans-serif; text-decoration:none; }
.tm-course-switch a[aria-current="page"] { background:#040608; color:var(--lime); }
.tm-course-switch a:not([aria-current="page"]):hover { background:#e9fbdc; }
.tm-course-switch small { font-size:14px; font-weight:400; }
.tm-mode-switch button:disabled { color:#c3cbbd; cursor:not-allowed; }
.testmaker-page :where(a, button, input, textarea, select):focus-visible { outline: 3px solid #486b2c !important; outline-offset: 3px !important; }
.testmaker-page .tm-mode-switch button:focus-visible { outline-color: #fff !important; outline-offset: -4px !important; }
.tm-paper-filters { display: grid; grid-template-columns: 1fr 2fr; gap: 18px; margin-bottom: 24px; }
.tm-paper-filters label { display: grid; gap: 8px; font-size: 14px; font-weight: 700; }
.tm-paper-filters select { padding: 12px; min-width: 0; border: 1px solid var(--border-2); border-radius: 10px; background: #fff; color: #040608; font: 16px 'DM Sans', sans-serif; }
.tm-paper-options { padding: 0; margin: 0; border: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.tm-paper-options legend { margin-bottom: 12px; font-size: 16px; font-weight: 700; }
.tm-paper-option { display: flex; align-items: flex-start; gap: 10px; padding: 18px 14px; border: 1px solid var(--border-2); border-radius: 14px; cursor: pointer; }
.tm-paper-option:has(input:checked) { background: #e9fbdc; border-color: #486b2c; box-shadow: inset 0 0 0 1px #486b2c; }
.tm-paper-option input { accent-color: #284a18; margin-top: 5px; }
.tm-paper-option > span { display: grid; gap: 8px; min-width: 0; }
.tm-paper-option strong { font-size: 18px; }
.tm-paper-option small, .tm-paper-option span span { font-size: 14px; overflow-wrap: anywhere; }
.tm-paper-status { color: #284a18; }
.tm-paper-option.unavailable { background: #f4f5f2; border-style: dashed; cursor: not-allowed; }
.tm-paper-option.unavailable .tm-paper-status { color: #684819; }
.tm-paper-title { display: block; color: var(--lime); font-size: 16px; margin-bottom: 3px; }
.tm-paper-question h2 { margin: 0; font: 800 22px 'Manrope', sans-serif; color: #040608; }
.tm-paper-question .q-card-head { padding-bottom: 18px; border-bottom: 1px solid var(--border); margin-bottom: 22px; }
.tm-paper-intro { margin: 24px 0 16px; line-height: 1.65; }
.tm-paper-question .part { margin-top: 24px; padding-top: 18px; border-top: 1px solid #e4e8df; }
.tm-paper-question .tm-paper-intro + .part { padding-top: 0; border-top: 0; }
.tm-paper-part-heading { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 8px; }
.testmaker-page .topbar { gap: 16px; top: 84px !important; }
.testmaker-page .topbar .meta { font-size: 14px; }
.testmaker-page .timer small { color: #d5decf; font: 12px 'DM Sans', sans-serif; }
.testmaker-page .q-card { border-left: 6px solid var(--lime) !important; padding: 0 !important; }
.testmaker-page .q-card .panel-body { padding: clamp(18px, 3vw, 30px); }
.testmaker-page .q-card-head { align-items: flex-start; flex-wrap: wrap; }
.testmaker-page .q-badge { background: #eef8e6; border-color: #bfd6ab; color: #284a18 !important; font-size: 14px; }
.testmaker-page .q-badge{border-radius:999px;padding:6px 12px;line-height:1.5;max-width:100%;white-space:normal;overflow-wrap:anywhere}
.tm-question-label-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.testmaker-page .marks-badge { background: #040608; border-color: #040608; color: var(--lime); font-size: 14px; }
.testmaker-page .part-label { color: #284a18 !important; font-size: 16px; font-weight: 700; }
.testmaker-page .part-marks { font-size: 14px; }
.testmaker-page .tm-context, .testmaker-page .tm-context.local { background: #f3f8ef; border-left-color: #91bd70; }
.testmaker-page .tm-context > span { color: #3b552b; font: 700 13px 'DM Sans', sans-serif; }
.testmaker-page .tm-paragraph, .testmaker-page .tm-instruction, .testmaker-page .tm-answer-input, .testmaker-page .tm-answer-textarea { font-size: 16px; }
.testmaker-page .tm-paper2-source p { max-width: 90ch; margin: 0 0 12px; line-height: 1.65; }
.testmaker-page .tm-paper2-source ul { display: grid; gap: 9px; margin: 15px 0 18px; padding-left: 24px; }
.testmaker-page .tm-paper2-source ul ul { margin: 8px 0 2px; }
.testmaker-page .tm-paper2-source li { max-width: 90ch; padding-left: 4px; line-height: 1.65; }
.testmaker-page .tm-paper2-source table { width: 100%; border-collapse: collapse; background: #fff; }
.testmaker-page .tm-paper2-source th, .testmaker-page .tm-paper2-source td { padding: 11px 13px; border: 1px solid #d8dcd3; text-align: left; vertical-align: top; }
.testmaker-page .tm-paper2-source th { background: #eef8e6; color: #284a18; }
.testmaker-page .tm-answer-input, .testmaker-page .tm-answer-textarea, .testmaker-page .tm-bit-cell { background: #fff; color: #040608; font-family: 'DM Sans', sans-serif; }
.testmaker-page .tm-answer-label, .testmaker-page .tm-repeat-field span, .testmaker-page .tm-choice-limit { font-size: 14px; }
.testmaker-page .tm-choice-list label, .testmaker-page .tm-choice-answer > div, .testmaker-page .tm-word-bank { background: #f4f5f2; color: #040608; font-size: 16px; }
.testmaker-page .tm-choice-list label:has(input:checked) { background: #e9fbdc; border-color: #638744; }
.testmaker-page .tm-word-bank span, .testmaker-page .tm-diagram-labels span { background: #e9fbdc; border-color: #aacd8d; color: #284a18; font: 14px 'DM Sans', sans-serif; }
.testmaker-page .tm-code-block { background: #040608; color: #e9fbdc; font-size: 14px; }
.testmaker-page .tm-question-table, .testmaker-page .tm-binary-addition { font-size: 16px; }
.testmaker-page .tm-question-table th, .testmaker-page .tm-binary-addition th { background: #e9fbdc; color: #040608; }
.testmaker-page .tm-working { border-color: #78965f; }
.testmaker-page .submitbar .startbtn { background: var(--lime) !important; color: #040608 !important; }
.testmaker-page .student-ans { background: #f4f5f2 !important; border-color: #c2c9bb !important; color: #040608 !important; font-size: 16px; }
.testmaker-page .student-ans b { color: #284a18 !important; }
.testmaker-page .ms-box { --text: #f4f7ef !important; --text-dim: #d5decf !important; --text-dimmer: #bac8af !important; --green: #c4f69a !important; --panel-head: #25301e !important; --border: #506047 !important; }
.testmaker-page .ms-box .tm-paragraph, .testmaker-page .ms-box .tm-instruction { color: #f4f7ef; }
.testmaker-page .ms-box .tm-scheme-group > .tm-paragraph:first-child { color: var(--lime); }
.testmaker-page .ms-box .tm-question-table th { background: #25301e; color: #fff; }
.testmaker-page .ms-title, .testmaker-page .self-mark-box label { font-size: 14px; }
.testmaker-page .self-mark-box { --text: #040608 !important; --text-dim: #42483e !important; --green: #284a18 !important; --panel-head: #fff !important; background: #e9fbdc; border-color: #aacd8d; }
.testmaker-page .score-num { color: #284a18 !important; }
.testmaker-page .topic-scope { background: #e9fbdc; border-color: #aacd8d; }
@media (max-width: 620px) {
  .tm-paper-filters, .tm-paper-options { grid-template-columns: 1fr; }
  .tm-access-note { align-items: flex-start; flex-direction: column; }
  .testmaker-page .topbar { align-items: flex-start; }
  .testmaker-page .topbar .meta { max-width: 60%; }
}
.tm-lab-frame{display:block;width:100%;height:760px;border:1px solid #bcc8b0;border-radius:18px;background:#fff}
.tm-lab-host{margin:1rem 0;padding:1rem;background:#edffdc;border-radius:20px;color:#152315}
.tm-lab-status{font-size:.95rem}.tm-paper2-source{color:inherit;overflow-wrap:anywhere}
.tm-paper2-source .scroll{overflow:auto;max-width:100%}.tm-paper2-source .native{position:relative}
.tm-paper2-source .native-run,.tm-paper2-source .native-answer{position:absolute}
.tm-paper2-source .native{color:#111;background:#fff}.tm-paper2-source .native>svg{position:absolute;inset:0;pointer-events:none}
.tm-paper2-source .native-run{white-space:pre;line-height:1}.tm-paper2-source .native-answer{min-width:0;padding:0 3px;border:1px solid #839181;font-size:16px;background:#fffef7}
.tm-paper2-source .code-template{overflow:auto;white-space:pre;background:#f3f5f0;padding:1rem}.tm-paper2-source .code-template input{width:8rem;min-height:2rem}
.tm-paper2-source textarea{display:block;box-sizing:border-box;width:100%;min-height:3rem;font:inherit;margin:.6rem 0;padding:.6rem;border:1px solid #839181;border-radius:8px}
.tm-paper2-source table{border-collapse:collapse;width:100%}.tm-paper2-source td,.tm-paper2-source th{border:1px solid #aeb8a7;padding:.5rem}
.tm-paper2-source pre,.tm-paper2-source .review-code{overflow:auto;background:#f3f5f0;padding:1rem;white-space:pre;color:#111}
.tm-paper2-source .review-code-row{display:flex}.tm-paper2-source .review-code-number{flex:0 0 3ch;margin-right:1ch}
.tm-paper2-source .source-diagram{max-width:100%;height:auto}
.tm-match-board{position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(2rem,8vw,7rem);margin:1.5rem 0}
.tm-match-column{display:flex;flex-direction:column;justify-content:space-around;gap:1.25rem;min-width:0;z-index:1}
.tm-match-item{width:100%;min-height:3.5rem;padding:1rem;border:2px solid #151918;border-radius:12px;background:#fff;color:#101513;font:inherit;font-size:1rem;text-align:left;overflow-wrap:anywhere;touch-action:none;cursor:crosshair}
.tm-match-item[aria-pressed="true"]{background:#c9f6a0;border-color:#284d1a}
.tm-match-item:focus-visible,.tm-match-controls select:focus-visible,.tm-match-clear:focus-visible{outline:3px solid #6650d8;outline-offset:3px}
.tm-match-lines{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}
.tm-match-lines line{stroke:#4e752a;stroke-width:3}
.tm-match-controls{display:grid;gap:.8rem}
.tm-match-controls label{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1rem;align-items:center;font-size:1rem}
.tm-match-controls select{width:100%;min-width:0;padding:.65rem;border:1px solid #626962;border-radius:8px;background:#fff;color:#101513;font:inherit}
.tm-match-clear{margin-top:1rem;border:1px solid #101513;border-radius:10px;padding:.7rem 1rem;background:#101513;color:#c9f6a0;font:inherit;cursor:pointer}
@media(max-width:540px){.tm-match-item{padding:.6rem}.tm-match-controls label{grid-template-columns:1fr}.tm-match-board{gap:2rem}}

/* Flowchart response builder. The canvas remains white like an exam paper;
   controls use the site's ink, lime and violet palette. */
.tm-flowchart{margin-top:1.25rem;border:1px solid #b8c2b1;border-radius:18px;background:#f4f5f2;overflow:hidden;color:#101513}
.tm-flowchart-title{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;padding:1rem 1.15rem;background:#101513;color:#fff}
.tm-flowchart-title strong{display:block;color:#c9f6a0;font-size:1.15rem}.tm-flowchart-title p{margin:.3rem 0 0;max-width:70ch;color:#d5decf;line-height:1.45}
.tm-flowchart-count{flex:0 0 auto;padding:.35rem .65rem;border:1px solid #596650;border-radius:999px;color:#c9f6a0;font-weight:800}
.tm-flowchart-toolbar{display:flex;flex-wrap:wrap;gap:.55rem;align-items:center;padding:.8rem 1rem;border-bottom:1px solid #cbd2c5;background:#e9fbdc}
.tm-flowchart-toolbar button{display:inline-flex;align-items:center;gap:.5rem;min-height:2.75rem;padding:.55rem .75rem;border:1px solid #789265;border-radius:10px;background:#fff;color:#101513;font:700 .92rem 'DM Sans',sans-serif;cursor:pointer}
.tm-flowchart-toolbar button:hover:not(:disabled),.tm-flowchart-toolbar button.active{background:#101513;color:#c9f6a0}.tm-flowchart-toolbar button:disabled{cursor:not-allowed;opacity:.45}
.tm-flowchart-toolbar .danger{border-color:#c8aaa4;color:#732e24}.tm-flowchart-toolbar-spacer{flex:1 1 1rem}
.tm-tool-shape{display:inline-block;width:24px;height:15px;border:2px solid currentColor;background:#c9f6a0}.tm-tool-shape.terminator{border-radius:999px}.tm-tool-shape.input{transform:skew(-15deg);background:#c9bfff}.tm-tool-shape.decision{width:17px;height:17px;transform:rotate(45deg);background:#ffd4c8}.tm-tool-shape.process{background:#fff}
.tm-flowchart-workspace{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,280px);min-height:clamp(640px,75vh,820px)}
.tm-flowchart-canvas{position:relative;min-height:clamp(640px,75vh,820px);overflow:hidden;background-color:#fff;background-image:linear-gradient(#e8ece4 1px,transparent 1px),linear-gradient(90deg,#e8ece4 1px,transparent 1px);background-size:24px 24px;touch-action:none}
.tm-flowchart-canvas:focus-visible{outline:3px solid #6650d8;outline-offset:-4px}.tm-flowchart-lines{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}.tm-flowchart-lines line,.tm-flowchart-lines polyline{fill:none;stroke:#101513;stroke-width:2.5;stroke-linejoin:round}.tm-flowchart-lines text{fill:#284d1a;font:800 14px 'DM Sans',sans-serif}.tm-flowchart-lines marker path{fill:#101513}
.tm-flowchart-node-layer{position:absolute;inset:0}.tm-flowchart-node{position:absolute;z-index:1;width:124px;min-height:48px;transform:translate(-50%,-50%);padding:.45rem .55rem;border:3px solid #101513;background:#fff;color:#101513;font:750 .875rem/1.15 'DM Sans',sans-serif;text-align:center;overflow-wrap:anywhere;cursor:grab;touch-action:none}
.tm-flowchart-node:active{cursor:grabbing}.tm-flowchart-node.terminator{border-radius:999px;background:#c9f6a0}.tm-flowchart-node.input{background:#c9bfff;clip-path:polygon(10% 0,100% 0,90% 100%,0 100%)}.tm-flowchart-node.decision{width:120px;min-height:72px;background:#ffd4c8;clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%);padding:.8rem 1.25rem}.tm-flowchart-node.process{background:#fff}
.tm-flowchart-node.selected{outline:4px solid #6650d8;outline-offset:4px}.tm-flowchart-node.connecting{outline:5px solid #4e752a;outline-offset:5px}
.tm-flowchart-empty{position:absolute;inset:45% 1rem auto;text-align:center;color:#687062;font-weight:700;pointer-events:none}.tm-flowchart-empty[hidden]{display:none}
.tm-flowchart-inspector{display:flex;flex-direction:column;gap:1.25rem;padding:1rem;border-left:1px solid #cbd2c5;background:#f4f5f2}.tm-flowchart-inspector label>span,.tm-flowchart-inspector strong{display:block;margin-bottom:.45rem;font-weight:800}
.tm-flowchart-inspector textarea{box-sizing:border-box;width:100%;padding:.65rem;border:1px solid #879180;border-radius:9px;background:#fff;color:#101513;font:1rem/1.35 'DM Sans',sans-serif;resize:vertical}.tm-flowchart-inspector textarea:disabled{background:#e4e7e1;color:#6a7165}
.tm-flowchart-edge-list{display:grid;gap:.55rem}.tm-flowchart-edge-list>p{margin:0;color:#687062}.tm-flowchart-edge{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.45rem;padding:.55rem;border:1px solid #cbd2c5;border-radius:9px;background:#fff}.tm-flowchart-edge span{grid-column:1/-1;font-size:.9rem;font-weight:700;overflow-wrap:anywhere}.tm-flowchart-edge select,.tm-flowchart-edge button{min-width:0;padding:.4rem;border:1px solid #879180;border-radius:7px;background:#fff;color:#101513;font:inherit}.tm-flowchart-edge button{cursor:pointer;color:#732e24}
.tm-flowchart-help{margin:auto 0 0;color:#545c50;font-size:.88rem;line-height:1.5}.tm-flowchart-status{margin:0;padding:.75rem 1rem;border-top:1px solid #cbd2c5;background:#fff;color:#3d4d34;font-weight:700}
.tm-flowchart-result{overflow:auto;border:1px solid #b8c2b1;border-radius:12px;background:#fff}.tm-flowchart-result svg{display:block;width:100%;min-width:560px;max-height:680px}.tm-flowchart-result-edges line,.tm-flowchart-result-edges polyline{fill:none;stroke:#101513;stroke-width:2.5;stroke-linejoin:round}.tm-flowchart-result-edges text{fill:#284d1a;font:800 14px 'DM Sans',sans-serif}.tm-flowchart-result marker path{fill:#101513}.tm-flowchart-svg-node>*:first-child{stroke:#101513;stroke-width:3;fill:#fff}.tm-flowchart-svg-node.terminator>*:first-child{fill:#c9f6a0}.tm-flowchart-svg-node.input>*:first-child{fill:#c9bfff}.tm-flowchart-svg-node.decision>*:first-child{fill:#ffd4c8}.tm-flowchart-svg-node text{fill:#101513;font:700 13px 'DM Sans',sans-serif}
@media(max-width:860px){.tm-flowchart-workspace{grid-template-columns:1fr}.tm-flowchart-inspector{border-top:1px solid #cbd2c5;border-left:0}.tm-flowchart-help{margin:0}.tm-flowchart-toolbar-spacer{display:none}}
@media(max-width:560px){.tm-flowchart-title{flex-direction:column}.tm-flowchart-toolbar button{flex:1 1 calc(50% - .55rem);justify-content:center}.tm-flowchart-workspace,.tm-flowchart-canvas{min-height:600px}.tm-flowchart-node{width:108px;min-height:44px;font-size:.875rem}.tm-flowchart-node.decision{width:106px;min-height:66px;padding:.7rem 1rem}}
.testmaker-page .tm-submitted-answer {
  background: #f1f2f3;
  color: #222;
  border: 1px solid #cbd0d5;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  cursor: default;
}
.testmaker-page span.tm-submitted-answer { display: inline-block; padding: .25em .5em; }
.testmaker-page .tm-submitted-answer.tm-bit-cell { padding: 0; display: inline-flex; align-items: center; justify-content: center; }
.testmaker-page .tm-submitted-part input:disabled { opacity: 1; }
