/* Fraction-specific layout; the header, toolbar and surface contract live in tool-surface-shell.css. */
.app{height:100dvh;min-height:0;grid-template-rows:auto minmax(0,1fr)}
#fractionReasoning{min-height:0;min-width:0}
.fr-tool{height:100%;display:flex;flex-direction:column;min-height:0}
.fr-toolbar{flex-direction:row;flex-wrap:wrap;align-items:center;position:relative;z-index:3;flex:none;gap:10px}
.fr-activities{display:flex;gap:6px}
.fr-settings{align-items:center;margin-left:auto}
.fr-practise{display:flex;align-items:center;gap:8px;min-height:48px;font-weight:800;padding:0 8px;cursor:pointer}
.fr-practise input{width:20px;height:20px;accent-color:var(--blue)}
.fr-working-controls,.fr-step-controls,.fr-response-actions{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:8px}
.fr-working-controls{position:relative;z-index:2}
.fr-working-controls:empty{display:none}
.fr-response-actions:has(.fr-methods){width:100%}
.fr-methods{width:100%;text-align:center}
.fr-methods legend{float:none;margin:0 auto 5px;font-size:15px}
.fr-method-choices{display:flex;justify-content:center;gap:6px}
.fr-working-controls .fr-method{display:flex;flex:1;min-width:0;max-width:200px;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-height:54px;padding:6px}
.fr-method strong{font-size:16px}.fr-method small{font-size:12px;font-weight:400}
.fr-method[aria-pressed=true],.fr-benchmark-controls button[aria-pressed=true]{background:#e0f3fc;border-color:var(--blue)}
.fr-benchmark-controls{display:inline-flex;justify-content:center;gap:6px;margin-top:5px}
.fr-working-controls .fr-method-reset{min-height:36px;font-size:13px;margin:5px 0 0 6px}
 .fr-working-controls .fr-benchmark-controls button{min-height:36px;font-size:13px;line-height:1.1;padding:0 10px}
.fr-method-note{font-size:14px;line-height:1.3;margin:5px 0 0}
.fr-working-controls button,.fr-working-controls summary{min-height:48px;border:1px solid var(--line);border-radius:var(--radius);background:#fff;color:var(--ink);padding:0 16px;font:inherit;font-weight:800;cursor:pointer}
.fr-working-controls button.primary{background:var(--blue);border-color:var(--blue);color:#fff}
.fr-working-controls button:disabled{opacity:.45;cursor:default}
.fr-working-controls summary{display:flex;align-items:center;list-style:none}
.fr-working-controls summary::-webkit-details-marker{display:none}
.fr-working-controls details{position:relative}
.fr-step-controls>.fr-number-field{flex-direction:row;align-items:center;font-size:18px;gap:8px}
.fr-step-controls input{width:70px;min-height:48px;border:2px solid var(--line);border-radius:var(--radius);font:inherit;text-align:center;color:var(--ink)}
.fr-toolbar select,.fr-toolbar input[type=number]{min-height:48px;border:2px solid var(--line);border-radius:var(--radius);background:#fff;color:var(--ink);padding:0 10px;font:inherit;font-weight:800}
.fr-toolbar #fr-workflow{width:204px}
.fr-toolbar button:disabled{opacity:.45;cursor:default}
.fr-toolbar button[aria-pressed=true]{background:#e0f3fc;border-color:var(--blue)}
.fr-toolbar .primary[aria-pressed=true]{background:var(--blue)}
.fr-number-field{display:flex;flex-direction:column;gap:4px;font-size:13px;font-weight:800}
.fr-number-field input{width:100px}
.fr-menu{display:flex;flex-wrap:wrap;align-items:flex-start;gap:12px;width:min(360px,calc(100vw - 28px));max-height:calc(100dvh - 180px);overflow:auto}
.fr-custom>.fr-menu,.fr-teacher>.fr-menu,.fr-reason>.fr-menu{width:min(540px,calc(100vw - 28px))}
.fr-toolbar details{position:relative}
.fr-teacher>.fr-menu,.fr-reason>.fr-menu{left:auto;right:0}
.fr-menu form{width:100%}
.fr-menu fieldset{width:100%;margin:0 0 12px}
.fr-menu p{font-size:15px;line-height:1.45;margin:5px 0;width:100%}
.fr-menu>button{flex:1 1 140px}.fr-questions>.fr-menu{width:min(400px,calc(100vw - 28px))}
fieldset{border:0;padding:0;margin:0;min-width:0}
legend{font-size:14px;font-weight:800;margin-bottom:6px}
.fr-choice{display:inline-flex;align-items:center;gap:8px;min-height:48px;margin-right:12px;font-size:16px;white-space:nowrap;cursor:pointer}
.fr-choice input{width:20px;height:20px;accent-color:var(--blue)}
.fr-content{display:flex;flex:1;min-height:0;flex-direction:column;gap:10px;padding:12px}
.fr-content> :not(.fr-model-host){flex-shrink:0}
.fr-prompt{font-size:clamp(23px,2vw,32px);line-height:1.6;text-align:center;margin:0}
.fr-model-host{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;padding:12px}
.fr-model-host .fr-registered-model{max-height:100%;height:100%}
.fr-model-host .fr-registered-model svg{height:100%}
.fr-answer-controls{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:16px}
.fr-answer-controls:empty{display:none}
.fr-editor{display:flex;align-items:center;gap:8px}
.fr-editor legend{float:left;margin-right:8px;max-width:160px}
.fr-editor>.fr-number-field input{width:74px}
.fr-editor .fr-number-field input,.fr-answer-controls>.fr-number-field input{min-height:42px;font:inherit;font-size:20px;font-weight:800;text-align:center;border:2px solid var(--line);border-radius:var(--radius);background:white;color:var(--ink);padding:4px}
.fr-editor .fr-number-field{font-size:11px}
.fr-editor .fr-edit-stack input{width:100px}
.fr-edit-stack{display:flex;flex-direction:column;gap:4px}
.fr-edit-stack>.fr-number-field:first-child{padding-bottom:4px;border-bottom:2px solid var(--ink)}
.fr-given-editors{display:grid;grid-template-columns:1fr 1fr;gap:18px;padding:12px 0}
.fr-given-editors .fr-editor{flex-wrap:wrap}
.fr-feedback{font-size:18px;line-height:1.5;text-align:center}
.fr-feedback:empty{display:none}
.fr-hint{margin:0;text-align:center;font-size:17px;color:var(--ink)}
.fr-trail{display:flex;justify-content:center;gap:18px;flex-wrap:wrap;font-size:18px;line-height:1.7}
.fr-order{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;flex-wrap:wrap}
.fr-order-item{display:inline-flex;align-items:center;gap:10px;min-width:0}
.fr-card{min-width:74px;min-height:78px;padding:6px 10px;font-size:30px;touch-action:manipulation}
.fr-order-help{flex-basis:100%;margin:0;text-align:center;font-size:15px;line-height:1.4}
.fr-answer-controls button{border:1px solid #b9c9d5;border-radius:var(--radius);background:white;color:var(--ink);font-weight:800;cursor:pointer}
.fr-answer-controls button[aria-pressed=true]{border-color:var(--blue);background:#e0f3fc}
.fr-practice-actions{display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap}
.fr-practice-actions button{min-height:48px;padding:0 16px;font:inherit;font-weight:800}
.fr-practice-actions button.primary{background:var(--blue);border-color:var(--blue);color:#fff}
.fr-answer-controls .fr-order-sign{width:48px;min-height:58px;padding:0;border:2px solid var(--line);font-size:32px;touch-action:manipulation}
.fr-order[data-count="6"],.fr-order[data-count="6"] .fr-order-item{gap:6px}
.fr-order[data-count="6"] .fr-card{font-size:clamp(16px,2vw,24px)}
.fr-order[data-count="6"] .fr-order-sign{width:42px}
.fr-small{font-size:13px;margin:0;text-align:center}
.fr-solution{font-size:28px;line-height:1.8;margin:0;text-align:center}
.fr-comparison-sentence{display:flex;align-items:center;justify-content:center;gap:20px;font-size:32px;line-height:1.2}
.fr-answer-controls .fr-comparison-sign{width:64px;height:64px;flex:none;padding:0;border:2px solid var(--line);font:inherit;font-size:38px;font-weight:800}
.fr-print-response{display:none}
.fr-print-box{display:inline-block;width:40mm;height:16mm;border:1px solid var(--ink);vertical-align:middle}
.fr-tool :focus-visible{outline:4px solid rgba(20,155,215,.35);outline-offset:2px}
.instructions-header h2{font-size:23px}
.instructions-header button{flex:none}
@media(max-width:1279px),(max-height:719px){
 .fr-toolbar{align-items:center}
 .fr-content{padding:10px;gap:8px}
 .fr-model-host svg{max-height:100%;min-height:0}
 .fr-prompt{font-size:23px}
 .fr-settings{flex-wrap:wrap}
 .fr-given-editors{grid-template-columns:1fr}
}
@media(max-width:860px){
 .fr-activities,.fr-settings{width:100%;margin-left:0}
 .fr-activities>button{flex:1;padding:0 8px}
 .fr-settings>button,.fr-settings>details{flex:1 1 auto}
 .fr-menu .fr-editor legend{max-width:100%}.fr-editor{flex-wrap:wrap;justify-content:center}
 .fr-comparison-sentence{gap:14px;font-size:28px}
 .fr-menu fieldset.fr-editor{justify-content:flex-start}
}
@media(prefers-reduced-motion:reduce){.fr-tool *{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
@media screen and (min-width:861px){
 .fr-content:has(.fr-methods){display:grid;grid-template-columns:210px minmax(0,1fr);grid-template-rows:auto auto minmax(0,1fr) auto auto;align-items:stretch}
 .fr-content:has(.fr-methods)>.fr-prompt{grid-column:1/-1}
 .fr-content:has(.fr-methods)>.fr-working-controls{grid-column:1;grid-row:3;align-self:center;align-items:center;align-content:center}
 .fr-content:has(.fr-methods) .fr-method-choices{display:grid;grid-template-columns:1fr;gap:5px}
 .fr-content:has(.fr-methods) .fr-method{max-width:none;min-height:40px;padding:3px;gap:2px;line-height:1.1}
 .fr-content:has(.fr-methods) .fr-method strong{font-size:15px}.fr-content:has(.fr-methods) .fr-method small{font-size:11px}
 .fr-content:has(.fr-methods)>.fr-answer-controls{grid-column:2;grid-row:2;gap:8px}
 .fr-content:has(.fr-methods)>.fr-model-host{grid-column:2;grid-row:3;min-width:0}
 .fr-content:has(.fr-methods)>.fr-method-note{grid-column:2;grid-row:4;text-align:center;margin:0;font-size:13px}
 .fr-content:has(.fr-methods)>.fr-feedback{grid-column:2;grid-row:5}
 .fr-content:has(.fr-methods)>.fr-hint{grid-column:1/-1;grid-row:5}
 .fr-content:has(.fr-methods)>.fr-print-response{display:none}
 .fr-content:has(.fr-methods) .fr-order-help{font-size:13px}
 .fr-content:has(.fr-methods) .fr-card{min-height:58px;min-width:55px;padding:4px;font-size:24px}
 .fr-content:has(.fr-methods) .fr-order-sign{width:36px;min-height:48px}
 .fr-content:has(.fr-methods) .fr-practice-actions button{min-height:40px}
}
@media screen and (min-width:861px) and (max-height:649px){
 .fr-content:has(.fr-order):has(.fr-method:nth-child(6)):has(.fr-method-reset)>.fr-working-controls{grid-row:2/4;align-self:stretch}
}
@media(max-width:600px){
 .fr-toolbar{flex-direction:row;padding:6px;gap:6px}
 .fr-settings{gap:6px;display:flex}
 .fr-toolbar button,.fr-toolbar summary{font-size:15px;padding:0 10px;justify-content:center;min-height:40px}
 .fr-practise{font-size:15px;min-height:40px}
 .fr-working-controls{gap:6px}
 .fr-working-controls button,.fr-working-controls summary{font-size:14px;padding:0 10px}
 .fr-method-choices{display:grid;grid-template-columns:1fr 1fr;gap:4px}
 .fr-working-controls .fr-method{padding:4px;min-height:42px;line-height:1.15}.fr-method strong{font-size:13px}.fr-method small{font-size:10px}
 .fr-methods legend{font-size:13px}.fr-method-note{font-size:11px;line-height:1.2}
 .fr-practice-actions button{font-size:14px;padding:0 10px;min-height:40px}
 .fr-answer-controls:has(.fr-editor){gap:8px}
 .fr-answer-controls .fr-editor{gap:6px}
 .fr-answer-controls .fr-editor legend{font-size:14px;max-width:90px;margin-right:0}
 .fr-answer-controls .fr-edit-stack input{width:72px}
 .fr-answer-controls:has(.fr-editor) .fr-practice-actions{flex:0 1 170px;gap:6px}
 .fr-answer-controls:has(.fr-editor) .fr-practice-actions button{flex:1 1 70px}
 .fr-step-controls>.fr-number-field{font-size:16px}
 .fr-step-controls input{width:60px}
 .fr-content{padding:8px;gap:6px}
 .fr-prompt{font-size:20px;line-height:1.35}
 .fr-trail .fr-registered-model.fr-transformation svg{height:120px}
 .fr-order,.fr-order-item{gap:4px}
 .fr-card{min-width:42px;min-height:56px;padding:4px;font-size:20px}
 .fr-answer-controls .fr-order-sign{width:32px;min-height:48px;font-size:25px}
 .fr-order[data-count="6"] .fr-card{min-width:28px;min-height:50px;font-size:13.5px;padding:4px 1px}
 .fr-order[data-count="6"] .fr-order-sign{width:26px;font-size:22px}
 .fr-order[data-count="6"],.fr-order[data-count="6"] .fr-order-item{gap:2px}
 .fr-order-help{font-size:12px;line-height:1.25}
 .fr-small{font-size:12px;line-height:1.25}
}
@media(min-width:861px) and (max-width:1100px){
 .fr-toolbar button,.fr-toolbar summary{font-size:15px;padding:0 10px}
 .fr-practise{font-size:15px;padding:0 4px}
}
@media(min-width:700px) and (max-width:1100px), (min-width:700px) and (max-height:800px){
 .fr-content:has(.fr-transformation){display:grid;grid-template-columns:minmax(240px,.45fr) minmax(0,1fr);grid-template-rows:auto auto auto auto minmax(0,1fr) auto}
 .fr-content:has(.fr-transformation) .fr-prompt{grid-area:1/1/2/3}
 .fr-content:has(.fr-transformation) .fr-working-controls{grid-area:2/1/3/3}
 .fr-content:has(.fr-transformation) .fr-hint{grid-area:3/1/4/3}
 .fr-content:has(.fr-transformation) .fr-answer-controls{grid-area:4/1/5/3}
 .fr-content:has(.fr-transformation) .fr-trail{grid-area:5/1/6/2;align-items:center;min-height:0}
 .fr-content:has(.fr-transformation) .fr-model-host{grid-area:5/2/6/3}
 .fr-content:has(.fr-transformation) .fr-feedback{grid-area:6/1/7/3}
 .fr-trail .fr-registered-model.fr-transformation svg{max-height:100%}
 .fr-trail .fr-transformation{height:100%;max-height:100%;display:flex;align-items:center;justify-content:center}
 .fr-trail .fr-registered-model.fr-transformation svg{height:100%;max-height:160px}
}
@media(forced-colors:active){.fr-filled{fill:Highlight!important}.fr-cell,.fr-unit-border,.fr-partition{stroke:CanvasText!important}}
@page{size:A4 landscape;margin:10mm}
@media print{
 html,body{width:auto!important;height:auto!important;background:white!important}
 .app{height:185mm!important;min-height:0!important;display:flex!important;flex-direction:column!important}
 .fr-toolbar,.fr-working-controls,.fr-practice-actions,.fr-reason,.fr-small,.fr-move,.fr-number-field,dialog,.fr-hint:empty{display:none!important}
 .fr-content{display:flex!important;padding:0!important;gap:3mm!important;height:175mm!important}
 .fr-tool,#fractionReasoning{height:100%!important}
 .fr-model-host{height:auto!important;flex:1!important;min-height:0!important;padding:0!important;overflow:hidden!important}
 .fr-prompt{font-size:18pt!important;line-height:1.6!important}
 .fr-feedback,.fr-hint,.fr-trail{font-size:12pt!important}
 .fr-model-note{font-size:10pt!important}
 .fr-order-help{display:none!important}
 .fr-answer-controls .fr-order-sign{font-size:23pt;width:14mm;min-height:14mm;border:1px solid #aab7c0}
 .fr-card{border:1px solid #aab7c0;font-size:19pt}
 .fr-answer-controls:has(.fr-editor){min-height:18mm}.fr-answer-controls .fr-editor{display:none}
 .fr-content .fr-order-item{padding:0;width:auto!important}.fr-order{flex-wrap:nowrap;gap:3mm}
 .fr-order[data-count="6"] .fr-card{font-size:16pt}
 .fr-order[data-count="6"] .fr-order-sign{width:11mm;font-size:21pt}
 .fr-registered-model svg{max-height:100%!important;min-height:0!important;flex:1 1 0!important}
 .fr-solution{font-size:21pt!important}.fr-solution .fr-small{display:inline!important}
 .fr-content .fr-registered-model{break-inside:avoid;overflow:hidden!important}
 .fr-print-response{display:block!important;text-align:center}
 .fr-comparison-sentence{font-size:23pt!important}
 .fr-answer-controls .fr-comparison-sign{width:16mm;height:16mm;font-size:28pt}
 .fr-model-note{flex:none!important}
}
