.tof-page-hero{background:linear-gradient(135deg,#efe8d9,#f8f5ed)}
.tof-shell{max-width:1060px}
.tof-app{padding:0;overflow:hidden}
.tof-app-head{display:flex;justify-content:space-between;gap:24px;align-items:center;padding:26px 30px 20px;background:#102b3f;color:#fff}
.tof-app-head h2{margin:.1rem 0 0;font-family:Georgia,"Times New Roman",serif;font-size:clamp(1.55rem,3vw,2.25rem)}
.tof-app-head .eyebrow{color:#efaa78}
.tof-score-strip{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.tof-score-strip span{display:grid;min-width:88px;padding:9px 12px;border:1px solid rgba(255,255,255,.22);border-radius:11px;background:rgba(255,255,255,.07)}
.tof-score-strip small{font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;color:#bcd0d7}
.tof-score-strip strong{font-size:1.05rem}
.tof-toolbar{display:grid;grid-template-columns:minmax(160px,1fr) minmax(200px,1.3fr) auto auto;gap:14px;align-items:end;padding:20px 30px;border-bottom:1px solid var(--line);background:#f7faf9}
.tof-toolbar label{display:grid;gap:6px;color:var(--navy);font-weight:750}
.tof-toolbar select{width:100%;min-height:46px;padding:9px 11px;border:1px solid #9eb2b8;border-radius:10px;background:#fff;color:var(--ink)}
.tof-copy-button{align-self:center;white-space:nowrap}
#tof-question-view{padding:clamp(20px,4vw,34px)}
.tof-paper{border:1px solid #b9c2c5;background:#fff;box-shadow:0 12px 28px rgba(16,43,63,.08)}
.tof-paper-head{display:flex;justify-content:space-between;gap:20px;padding:12px 18px;border-bottom:1px solid #ccd3d5;background:#eef2f2;color:#33444c;font-size:.82rem;font-weight:800;letter-spacing:.045em;text-transform:uppercase}
.tof-question{padding:clamp(22px,4vw,34px);min-height:265px;font-family:Arial,Helvetica,sans-serif;color:#111;line-height:1.58}
.tof-question h2{margin:0 0 18px;font-size:1.15rem;font-family:Arial,Helvetica,sans-serif;color:#111}
.tof-question p{margin:.72rem 0}
.tof-question .tof-givens{width:100%;max-width:650px;border-collapse:collapse;margin:20px 0;background:#fff}
.tof-question .tof-givens th,.tof-question .tof-givens td{padding:9px 12px;border:1px solid #b8c0c2;text-align:left}
.tof-question .tof-givens th{width:45%;background:#f2f4f4;font-weight:700}
.tof-question .tof-equations{display:flex;gap:18px;flex-wrap:wrap;margin:18px 0;padding:12px 14px;border-left:4px solid #798b92;background:#f6f7f7;font-weight:700}
.tof-question sup,.tof-mark-scheme sup,.tof-ladder sup{line-height:0}
.tof-final-form{display:flex;align-items:end;justify-content:space-between;gap:18px;padding:20px clamp(22px,4vw,34px);border-top:1px solid #cfd5d7;background:#fbfcfc}
.tof-final-form label{display:grid;gap:8px;flex:1;color:#182d37;font-weight:800}
.tof-input-line{display:grid;grid-template-columns:minmax(180px,340px) auto;gap:10px;align-items:center}
.tof-input-line input{width:100%;min-height:48px;padding:10px 12px;border:1px solid #82959d;border-radius:8px;background:#fff;font:inherit}
.tof-input-line b{min-width:72px;color:#40545d}
.tof-action-row{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin:20px 0 0}
.tof-ladder{display:grid;gap:12px;margin-top:20px}
.tof-step{border:1px solid #c7d2d3;border-radius:14px;background:#f6faf9;overflow:hidden}
.tof-step-head{display:flex;justify-content:space-between;gap:15px;padding:12px 16px;background:#e9f1ef;color:var(--navy)}
.tof-step-head strong{font-size:.98rem}
.tof-step-head span{font-size:.82rem;font-weight:800;color:#5b6d74}
.tof-step-body{padding:16px}
.tof-step-body p{margin:.1rem 0 12px}
.tof-step-form{display:grid;grid-template-columns:minmax(180px,1fr) auto auto;gap:10px;align-items:center}
.tof-step-form input{min-width:0;padding:10px 11px;border:1px solid #8fa0a5;border-radius:9px;background:#fff}
.tof-step-form b{min-width:76px;color:#56666c}
.tof-step-status{margin-top:10px;font-weight:700}
.tof-step.correct{border-color:#83be90;background:#f2fbf4}
.tof-step.incorrect{border-color:#dfa8a8;background:#fff7f7}
.tof-step.revealed{border-color:#c7c1a9;background:#fffdf5}
.tof-formula{display:inline-block;padding:4px 8px;border-radius:7px;background:#fff;border:1px solid #ced7d5;font-weight:750}
.tof-mark-scheme{margin-top:22px;border:1px solid #c3cecf;border-radius:14px;overflow:hidden}
.tof-mark-scheme h3{margin:0;padding:15px 18px;background:#102b3f;color:#fff;font-size:1.05rem}
.tof-mark-table{width:100%;border-collapse:collapse}
.tof-mark-table th,.tof-mark-table td{padding:10px 12px;border-bottom:1px solid #d6dddd;text-align:left;vertical-align:top}
.tof-mark-table th:last-child,.tof-mark-table td:last-child{width:85px;text-align:center}
.tof-mark-table tr:last-child td{border-bottom:0}
.tof-mark-table .good{color:var(--good);font-weight:800}
.tof-mark-table .bad{color:var(--bad);font-weight:800}
.tof-mark-total{display:flex;justify-content:space-between;gap:15px;padding:13px 16px;background:#edf4f2;color:var(--navy);font-weight:850}
.tof-question-nav{margin-top:22px;text-align:right}
.tof-summary{padding:clamp(28px,5vw,44px)}
.tof-summary>h2{margin:.15rem 0 1rem;color:var(--navy);font-family:Georgia,"Times New Roman",serif;font-size:clamp(2rem,4vw,3rem)}
.tof-summary-scores{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:22px 0}
.tof-summary-scores div{padding:18px;border:1px solid #cad4d3;border-radius:14px;background:#f5f9f8}
.tof-summary-scores small{display:block;color:var(--muted);font-weight:700}
.tof-summary-scores strong{display:block;margin-top:4px;color:var(--navy);font-size:1.55rem}
.tof-result-list{display:grid;gap:10px;margin-top:20px}
.tof-result-row{display:grid;grid-template-columns:44px 1fr auto;gap:12px;align-items:center;padding:12px 14px;border:1px solid #d3dcda;border-radius:12px;background:#fff}
.tof-result-row>span:first-child{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#e7f1ef;color:var(--teal2);font-weight:850}
.tof-result-row strong{display:block;color:var(--navy)}
.tof-result-row small{color:var(--muted)}
.tof-result-row b{white-space:nowrap;color:var(--navy)}
.tof-method-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:18px 0}
.tof-method-grid section{padding:18px;border:1px solid #cbd6d3;border-radius:14px;background:#fff}
.tof-method-grid h3{margin:0 0 6px;color:var(--navy)}
.tof-method-grid p{margin:0}
.tof-route-list li{margin:.7rem 0}
.tof-version{margin:22px 0 0;text-align:right;color:#7a878c;font-size:.72rem}
@media(max-width:820px){
  .tof-app-head{align-items:flex-start;flex-direction:column}.tof-score-strip{width:100%;justify-content:flex-start}.tof-score-strip span{flex:1}
  .tof-toolbar{grid-template-columns:1fr 1fr}.tof-toolbar .button,.tof-copy-button{width:100%}
}
@media(max-width:620px){
  .tof-toolbar{display:flex;flex-direction:column;align-items:stretch;padding:18px}
  #tof-question-view{padding:14px}.tof-paper-head{font-size:.72rem}.tof-question{padding:20px 16px;min-height:230px}.tof-question .tof-givens th,.tof-question .tof-givens td{padding:8px 7px;font-size:.91rem}
  .tof-final-form{align-items:stretch;flex-direction:column;padding:18px 16px}.tof-input-line{grid-template-columns:minmax(0,1fr) auto}.tof-final-form .button{width:100%}
  .tof-step-form{grid-template-columns:minmax(0,1fr) auto}.tof-step-form button{grid-column:1/-1;width:100%}
  .tof-summary-scores{grid-template-columns:1fr}.tof-result-row{grid-template-columns:38px 1fr}.tof-result-row b{grid-column:2}.tof-method-grid{grid-template-columns:1fr}
}
@media print{
  .site-header,.site-footer,.page-hero,.tof-app-head,.tof-toolbar,.tof-action-row,.tof-feedback,.tof-ladder,.tof-mark-scheme,.tof-question-nav,.tof-summary,.section-tint{display:none!important}
  .section{padding:0}.tof-app,.interactive{border:0;box-shadow:none;padding:0}.tof-paper{box-shadow:none;border:1px solid #222}.tof-final-form button{display:none}.tof-final-form input{border:0;border-bottom:1px solid #222;border-radius:0}.tof-shell{max-width:none}
}
