:root{--ink:#252b32;--muted:#717781;--accent:#ed764b;--line:#e5e5e3;--bg:#f5f5f2}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:15px Arial,sans-serif}button,a{touch-action:manipulation}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:3px solid #265ec8;outline-offset:3px}header{height:76px;background:white;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 32px}.logo{font-weight:800;font-size:23px;color:var(--ink);text-decoration:none;letter-spacing:-1px}.logo i{font-style:normal;color:var(--accent)}.brand-note{margin-left:18px;color:var(--muted);font-size:13px}header>a{color:var(--muted);font-size:13px}.layout{max-width:1450px;margin:0 auto;display:grid;grid-template-columns:340px minmax(0,1fr);gap:28px;padding:26px 30px}aside h1{font-size:24px;letter-spacing:-.7px;margin:0 0 6px}aside>p{color:var(--muted);margin:0 0 22px;font-size:14px}.group h2{font-size:11px;text-transform:uppercase;letter-spacing:1.5px;color:var(--muted);margin:20px 0 9px}.choices{display:grid;grid-template-columns:1fr 1fr;gap:8px}.choice{display:block;text-decoration:none;color:var(--ink);background:white;border:1px solid var(--line);border-radius:9px;padding:12px;text-align:left;min-height:80px}.choice:hover{border-color:var(--accent);background:#fff9f5}.choice[aria-current=page]{border-color:var(--accent);background:#fff0e6;box-shadow:inset 0 0 0 1px var(--accent)}.example{font-size:22px;display:block;font-weight:700;letter-spacing:.2px}.choice small{display:block;font-size:11px;line-height:1.4;color:#666;margin-top:7px}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:17px;position:sticky;top:0;background:var(--bg);padding:8px 0;z-index:2}.tabs{display:flex;padding:4px;background:#e9e9e5;border-radius:8px}.tabs button{border:0;background:none;color:#65686b;border-radius:5px;padding:9px 12px;font-size:13px}.tabs button[aria-pressed=true]{background:white;color:var(--ink);box-shadow:0 1px 3px #0001}.actions{display:flex;gap:8px}.actions button{background:white;border:1px solid #d8d9d6;border-radius:7px;padding:12px 16px;font-size:13px;font-weight:700}.actions #print{background:var(--accent);color:white;border-color:var(--accent);min-width:95px}.paper{background:white;max-width:790px;margin:auto;padding:34px 38px;min-height:920px;box-shadow:0 3px 20px #26303a0b;border:1px solid #e1e2de}.paper-top{display:flex;justify-content:space-between;font-size:11px;letter-spacing:1px;color:#777;text-transform:uppercase}.paper h2{font-size:25px;margin:24px 0 8px}.instructions{font-size:13px;color:#666;margin:0 0 25px}.fields{display:flex;justify-content:space-between;font-size:12px;padding-bottom:18px;border-bottom:2px solid #333}.problems{display:grid;grid-template-columns:repeat(4,1fr);margin-top:12px}.problem{position:relative;min-height:138px;padding:25px 10px 14px;border-bottom:1px solid #eee}.number{position:absolute;top:14px;left:0;font-size:10px;color:#8a8a8a}.expression{font-size:20px;white-space:nowrap;margin-top:15px;display:block}.vertical{width:90px;margin:0 auto;text-align:right;font-size:26px;line-height:1.2;letter-spacing:2px}.vertical .bottom{border-bottom:1.5px solid #333;display:flex;justify-content:space-between}.answer{color:#c62828;font-weight:700}.blank{display:inline-block;min-width:30px;border-bottom:1px solid #555;height:26px;vertical-align:bottom}.box{display:inline-flex;width:28px;height:28px;border:1px solid #888;align-items:center;justify-content:center;vertical-align:middle}.concept .expression{font-size:18px}.paper-footer{display:flex;justify-content:space-between;font-size:10px;color:#888;margin-top:26px}.hint{text-align:center;font-size:12px;color:var(--muted);margin:17px}.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}@media(max-width:1050px){.layout{grid-template-columns:270px minmax(0,1fr);padding:18px;gap:18px}.paper{padding:25px 20px}.expression{font-size:17px}.brand-note{display:none}.vertical{width:70px}.actions button{padding:11px}.problem{padding-right:4px}}
@media(max-width:760px){header{padding:0 18px;height:62px}.layout{display:block;padding:16px}.groups{display:flex;gap:14px;overflow-x:auto;padding-bottom:12px}.group{min-width:250px}.group h2{margin-top:0}aside>p{margin-bottom:16px}.toolbar{flex-wrap:wrap}.paper{min-height:0;padding:24px 16px}.paper h2{font-size:21px}.problems{grid-template-columns:repeat(2,1fr)}.problem{min-height:115px}.expression{font-size:22px}.hint{line-height:1.5}.paper-top{font-size:9px}}
@page{size:auto;margin:0}@media print{body{background:white}header,aside,.toolbar,.hint,.sr{display:none!important}.layout{display:block;padding:0;margin:0;max-width:none}.paper{border:0;box-shadow:none;padding:0;min-height:0;max-width:none;width:100%}.paper h2{font-size:22px;margin-top:18px}.problems{grid-template-columns:repeat(4,1fr)}.problem{height:32mm;min-height:0;break-inside:avoid;padding:22px 8px 8px}.expression{font-size:18px}.vertical{width:80px;font-size:24px}.fields{padding-bottom:12px}.instructions{margin-bottom:16px}.paper-footer{margin-top:16px}.paper-top{font-size:10px}}
/* Drill-down navigation */
.groups{display:block;overflow:visible}.trail{display:flex;flex-wrap:wrap;gap:5px;margin:5px 0 18px}.trail button{border:0;background:none;padding:7px 5px;color:#766351;font-size:12px}.trail button+button:before{content:'›';margin-right:9px;color:#aaa}.trail button:last-child{font-weight:700;color:#24262b}.menu-grid{display:grid;grid-template-columns:1fr;gap:12px}.menu-tile{position:relative;display:flex;align-items:center;gap:18px;width:100%;padding:20px 18px;border:1px solid #e4e3dc;border-radius:13px;background:white;color:#252b32;text-align:left;font-weight:700}.menu-tile:hover{background:#fff1e7;border-color:#ed764b}.menu-icon{display:flex;align-items:center;justify-content:center;background:#fff0e5;color:#bd542d;border-radius:10px;min-width:65px;height:65px;font-size:34px;font-weight:700}.tile-arrow{margin-left:auto;color:#a59c93}.fraction{display:inline-flex;flex-direction:column;vertical-align:middle;text-align:center;font-size:19px;line-height:1.2;margin:0 3px}.fraction span:first-child{border-bottom:1px solid;padding-bottom:2px}.fraction span:last-child{padding-top:2px}.result{font-size:20px;letter-spacing:0;white-space:nowrap}.choices .example{font-size:20px}@media(max-width:760px){.menu-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.menu-tile{padding:12px;gap:8px;font-size:12px}.menu-icon{min-width:42px;height:48px;font-size:26px}.choices{grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:15px}.trail{margin-bottom:10px}.groups{padding-bottom:12px}}@media print{.result{font-size:18px}.fraction{font-size:18px}}
.browse-tabs{display:flex;background:#e8e8e2;border-radius:9px;padding:4px;margin-bottom:18px}.browse-tabs button{flex:1;background:none;border:0;border-radius:6px;padding:12px 6px;font-size:13px;font-weight:bold}.browse-tabs button[aria-pressed=true]{background:white;box-shadow:0 1px 3px #0001}.filter-row{display:flex;gap:5px;margin:12px 0;flex-wrap:wrap}.filter-row button{flex:1;border:1px solid #deded7;border-radius:7px;background:white;padding:10px 7px;font-size:12px;white-space:nowrap}.operation-row{display:flex;gap:7px;margin:14px 0}.operation-row button{flex:1;border:1px solid #deded7;border-radius:8px;background:white;padding:8px;font-size:29px}.filter-row button[aria-pressed=true],.operation-row button[aria-pressed=true]{background:#fff0e5;border-color:#ed764b;color:#a33d18}.menu-heading{font-size:13px;margin:22px 0 12px}.curriculum-note{font-size:12px;color:#73766d;line-height:1.6}.standard-heading{border-top:1px solid #deded7;padding-top:17px;margin-top:18px;margin-bottom:12px}.standard-heading small{font-size:11px;color:#777}.standard-heading h2{font-size:15px;line-height:1.45;margin:7px 0}.standard-heading a{font-size:11px;color:#a64b2b}.ad-banner{max-width:1390px;margin:18px auto 0;min-height:78px;background:#eeeee9;border:1px dashed #d4d5cc;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:7px;color:#93958b}.ad-banner span{font-size:10px;letter-spacing:2px}.ad-banner small{font-size:11px}.bottom-ad{max-width:790px;margin:22px auto 0}.site-footer{display:flex;justify-content:center;gap:24px;padding:25px;font-size:12px;color:#777;border-top:1px solid #deded7}.site-footer a{color:#777}.info-page{max-width:780px;margin:40px auto;padding:35px;background:white;line-height:1.8}.info-page h1{font-size:28px}.info-page h2{font-size:19px}.info-page a{color:#ab4e2c}@media(max-width:760px){.ad-banner{margin:12px 16px 0;min-height:55px}.bottom-ad{margin:15px 0}.site-footer{flex-wrap:wrap}.info-page{margin:16px;padding:22px}.choices{max-height:310px;overflow-y:auto;padding:3px}.standard-heading+.choices{max-height:none}}@media print{.ad-banner,.site-footer{display:none!important}}
.decimal-sheet .expression{font-size:16px;letter-spacing:-.4px}@media(max-width:1050px) and (min-width:761px){.decimal-sheet{grid-template-columns:repeat(2,1fr)}}@media print{.decimal-sheet{grid-template-columns:repeat(4,1fr)}.decimal-sheet .expression{font-size:16px}}
/* A single vertical sequence makes increasing operand sizes easy to scan. */
.choices{grid-template-columns:minmax(0,1fr)}.choice{min-height:72px;padding:12px 15px}.choices .example{font-size:23px;letter-spacing:-.3px}.example-answer{color:#c62828;font-weight:800}.choice small{margin-top:5px}.menu-ad{width:100%;max-width:300px;min-height:250px;margin:25px auto;background:repeating-linear-gradient(135deg,#eceee9,#eceee9 12px,#f1f2ee 12px,#f1f2ee 24px)}.ad-banner{border-color:#b9beb3;color:#73796c}.ad-banner span{font-weight:bold}.ad-banner:not(.menu-ad){min-height:90px}@media(max-width:760px){.choices{grid-template-columns:1fr;max-height:none;overflow:visible}.menu-ad{min-height:100px}.choices .example{font-size:22px}}@media print{.menu-ad{display:none!important}}
.filter-row:has(.number-category){display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.filter-row .number-category{display:flex;flex-direction:column;align-items:center;gap:5px;white-space:normal;padding:8px}.number-category svg{width:90px;height:48px}.number-category>span{font-size:12px}.example .fraction{font-size:17px}.mixed-whole{display:inline-block;margin-right:3px}.fraction-sheet{grid-template-columns:repeat(2,1fr)}.fraction-sheet .problem{min-height:95px}.fraction-sheet .expression{font-size:20px;display:inline-block;margin-right:12px}.fraction-sheet .blank{min-width:40px}.fraction-sheet .answer{display:inline-block}.result{font-size:17px}.fraction-sheet .problem>.answer{font-size:18px}@media print{.fraction-sheet{grid-template-columns:repeat(2,1fr)}.fraction-sheet .problem{height:17mm;min-height:0;padding-top:14px}.fraction-sheet .number{top:2px}.fraction-sheet .expression{margin-top:3px}.fraction-sheet .fraction{font-size:16px}.result{font-size:15px}}
.print-controls{margin-left:auto;display:flex;justify-content:flex-end;align-items:center;flex-wrap:wrap;gap:10px}.print-selection{display:flex;gap:10px;border:1px solid #cfd6d1;border-radius:8px;padding:6px 9px;margin:0;font-size:12px;white-space:nowrap}.print-selection legend{font-size:10px;color:#626e69;padding:0 4px}.print-selection label{display:flex;align-items:center;gap:4px;cursor:pointer}.print-selection input{accent-color:#16745a;width:16px;height:16px;margin:0}#print:disabled{opacity:.45;cursor:not-allowed}#print-bundle{display:none}@media(max-width:760px){.toolbar{align-items:flex-end}.print-controls{gap:7px;flex:1}.print-selection{padding:6px}.tabs button{padding:9px}}@media print{body.printing-bundle>.layout{display:none!important}body.printing-bundle>#print-bundle{display:block}#print-bundle>.paper{break-after:page;page-break-after:always}#print-bundle>.paper:last-child{break-after:auto;page-break-after:auto}}

/* Colorful practice with a consistent printable page frame. */
.paper{--tone:#16867e;--wash:#eaf7f4;display:flex;flex-direction:column;min-height:1040px;padding:28px 32px;border-radius:14px;color:#243e55}
.paper[data-family="Fractions"]{--tone:#8760b0;--wash:#f4effa}.paper[data-family="Decimals"]{--tone:#287ba8;--wash:#ecf5fb}.paper[data-family="Integers"]{--tone:#ad6630;--wash:#fff5e7}
.paper-top{color:var(--tone);align-items:center;letter-spacing:.7px}.paper-top b{font-size:14px}
.sheet-hero{display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--wash);border:1px solid var(--tone);border-radius:16px;padding:14px 16px;margin:14px 0}
.sheet-hero>div{min-width:0;flex:1}.adventure-label{font-size:9px;letter-spacing:1px;font-weight:bold;color:var(--tone)}
.paper .sheet-hero h2{font-size:22px;line-height:1.2;margin:7px 0}.paper .instructions{margin:0;font-size:12px;line-height:1.35;color:#39516a}
.math-buddy{width:74px;height:74px;flex-shrink:0}.fields{border-bottom:1px solid #a9c0ce;padding:0 0 12px}
.problems{gap:8px;margin-top:14px;flex:1;grid-template-rows:repeat(var(--rows),1fr)}
.problem,.fraction-sheet .problem{border:1px solid #d6e4e9;border-radius:10px;padding:23px 8px 8px;min-height:100px;background:linear-gradient(135deg,var(--wash),white 55%)}
.number{top:6px;left:7px;border-radius:50%;background:var(--wash);color:var(--tone);font-weight:bold;width:19px;height:19px;text-align:center;line-height:19px}
.expression{margin-top:8px;font-size:18px}.vertical{font-size:24px;letter-spacing:1px;width:90px}
.answer{color:#c62828}.box{border-radius:6px;border-color:#8eabbc}
.finish-line{display:flex;align-items:center;justify-content:space-between;color:var(--tone);font-size:11px;font-weight:bold;margin-top:12px}.finish-line>span:last-child{font-size:23px;color:#b67b27;letter-spacing:6px}
.paper-footer{border-top:2px solid var(--tone);padding-top:9px;margin-top:9px;color:#45627a}
@media(max-width:760px){.paper{padding:20px 14px;min-height:0}.problems{grid-template-rows:none}.paper .sheet-hero h2{font-size:18px}.math-buddy{width:54px;height:54px}.sheet-hero{padding:12px}.adventure-label{font-size:8px}}
@media print{
.paper{height:250mm;min-height:250mm;max-height:250mm;padding:0;border:0;border-radius:0;print-color-adjust:exact;-webkit-print-color-adjust:exact}
.paper-top{font-size:9px}.paper-top b{font-size:12px}.sheet-hero{margin:3mm 0;padding:3mm 4mm;border-radius:4mm;min-height:26mm}
.paper .sheet-hero h2{font-size:19px;margin:5px 0}.math-buddy{width:19mm;height:19mm}.paper .instructions{font-size:11px}
.fields{padding-bottom:3mm;flex-shrink:0}
.problems,.decimal-sheet{grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:repeat(var(--rows),minmax(0,1fr));gap:2mm;margin-top:3mm;min-height:0}
.fraction-sheet{grid-template-columns:repeat(2,minmax(0,1fr))}
.problem,.fraction-sheet .problem{height:auto;min-height:0;padding:6mm 2mm 1mm;break-inside:avoid}
.number,.fraction-sheet .number{top:1mm;left:1mm;font-size:9px;width:15px;height:15px;line-height:15px}
.expression{font-size:17px;margin-top:1mm}.decimal-sheet .expression{font-size:15px}
.vertical{font-size:22px;line-height:1.2;width:85px}.result{font-size:15px}
.fraction-sheet .expression{font-size:17px;margin-top:0;margin-right:6px}.fraction-sheet .fraction{font-size:14px}
.fraction-sheet .problem{padding-top:4mm}.fraction-sheet .problem>.answer{font-size:16px}
.finish-line{margin-top:2mm;flex-shrink:0}.finish-line>span:last-child{font-size:18px}
.paper-footer{margin-top:2mm;padding-top:2mm;min-height:7mm;flex-shrink:0}
}
.written-sheet .problems{grid-template-columns:repeat(var(--cols),minmax(0,1fr))}
.worked{font:22px/1.35 monospace;text-align:right;width:max-content;min-width:95px;margin:2px auto;color:#243e55}
.work-rule{border-bottom:1.5px solid #243e55}.work-total{border-top:1.5px solid #c62828}
.working{color:#c62828}.concealed{visibility:hidden}
.long-division{display:inline-block;vertical-align:top;margin:0;max-width:100%;overflow:visible}
.problem:has(.long-division){text-align:center}
.division-note{font-size:11px;color:#45627a;text-align:center;margin-bottom:4px}
.written-sheet .problem{min-height:180px}
@media(max-width:760px){.written-sheet .problems{grid-template-columns:repeat(2,minmax(0,1fr))}.worked{font-size:19px}}
@media print{
 .written-sheet .problems{grid-template-columns:repeat(var(--cols),minmax(0,1fr))}
 .written-sheet .problem{min-height:0;padding-top:5mm}
 .worked{font-size:20px;line-height:1.3;margin-top:0}
 .long-division{max-height:100%;max-width:100%}
 .division-note{font-size:10px}
}
.math-buddy{width:110px;height:78px}
.concept .box{color:#c62828}
@media(max-width:760px){.math-buddy{width:84px;height:60px}}
@media print{.math-buddy{width:28mm;height:20mm}}

@media print{.paper{margin:12mm auto}}
@media print{.paper{width:calc(100% - 24mm)!important;max-width:190mm;margin:12mm auto!important}}
@media screen and (max-width:799px) and (min-width:761px){.problems{grid-template-columns:repeat(2,minmax(0,1fr))}}
