@font-face{font-family:'DM Sans';font-style:normal;font-weight:400 700;font-display:swap;src:url('/learn/fonts/dmsans-latin.woff2') format('woff2')}
@font-face{font-family:'Literata';font-style:normal;font-weight:400 600;font-display:swap;src:url('/learn/fonts/literata-latin.woff2') format('woff2')}
:root{--ink:#223e35;--green:#396e55;--paper:#f8f6ee;--line:#dcded1;--muted:#69766b;--yellow:#f0d786}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:17px 'DM Sans',sans-serif}header{max-width:1180px;margin:auto;padding:28px 32px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{display:flex;gap:12px;align-items:center;text-decoration:none;color:var(--green);font-size:32px;font-weight:700}.brand small{display:block;font:9px 'DM Sans',sans-serif;letter-spacing:2px;margin-top:5px}nav{display:flex;gap:8px}button,input,select{font:inherit}button{cursor:pointer;border:1px solid var(--line);border-radius:12px;padding:14px 22px;background:white;color:var(--ink);min-height:48px}button:hover{border-color:var(--green);background:#edf2e8}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #a76c2f;outline-offset:4px}nav button{background:transparent;border:0;font-size:14px}.primary{background:var(--green);color:white;border-color:var(--green)}.primary:hover{background:#28523e;color:white}.eyebrow{font-size:12px;letter-spacing:2px;text-transform:uppercase;font-weight:700;color:var(--green)}main{max-width:1100px;margin:auto;padding:48px 32px}h1,h2,h3{font-family:'Literata',Georgia,serif;font-weight:500}h1{font-size:clamp(36px,5vw,56px);line-height:1.2;margin:14px 0}h2{font-size:30px}p{line-height:1.7}.muted{color:var(--muted)}.hero{display:grid;grid-template-columns:1.5fr 1fr;gap:40px;align-items:center;margin-bottom:34px}.garden{border-radius:100px 100px 24px 24px;background:#e5ebd8;padding:35px;text-align:center;min-height:245px;display:flex;flex-direction:column;justify-content:center}.garden .plant{font-size:72px}.garden p{margin:12px 0 0;font-size:14px}.grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}.card{background:#fffef9;border:1px solid var(--line);border-radius:20px;padding:28px}.math{background:#eaf0e3}.reading{background:#f5eadb}.card h2{margin:18px 0 10px}.badge{font-size:12px;letter-spacing:1px;text-transform:uppercase}.row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.between{justify-content:space-between}.note{border-top:1px solid var(--line);margin-top:30px;padding-top:20px;color:var(--muted);font-size:14px}.session{max-width:760px;margin:auto}.progress{display:flex;gap:7px;margin:22px 0}.dot{height:7px;background:#dfe3d8;border-radius:9px;flex:1}.dot.done{background:var(--green)}.question{text-align:center;padding:34px 24px}.equation{font-size:64px;letter-spacing:4px;margin:25px 0}.operation{background:var(--yellow);padding:0 10px;border-radius:10px}.choices{display:flex;justify-content:center;flex-wrap:wrap;gap:12px}.choices button{min-width:130px}.answer{width:160px;font-size:32px;text-align:center;padding:12px;border:2px solid var(--line);border-radius:12px}.feedback{min-height:45px;margin:20px 0;font-weight:500;line-height:1.6}.passage{font:24px/1.9 'Literata',Georgia,serif;text-align:left;max-width:600px;margin:24px auto}.sentence{padding:22px;background:#f6f1e5;border-radius:14px}.counter{font-size:15px;letter-spacing:3px;line-height:2}.field{display:flex;flex-direction:column;gap:10px;margin:22px 0}select,input[type=date]{padding:12px;border:1px solid var(--line);border-radius:10px;background:white}.stat{font:36px 'Literata',serif}table{border-collapse:collapse;width:100%;font-size:14px}td,th{text-align:left;border-bottom:1px solid var(--line);padding:14px 8px}#print{display:none}.back{background:none;border:0;padding-left:0}.full{width:100%}footer{font-size:13px;margin-top:24px;color:var(--muted)}@media(max-width:650px){header{padding:20px;display:block}.brand{font-size:28px}nav{margin-top:20px;justify-content:space-between}nav button{padding:10px;font-size:12px}main{padding:28px 20px}.hero,.grid{grid-template-columns:1fr}.garden{min-height:150px;border-radius:20px;padding:18px}.garden .plant{font-size:50px}.hero{gap:20px}.card{padding:22px}.equation{font-size:48px}.passage{font-size:21px}}@media print{body{background:white;color:black;font:14pt Georgia,serif}header,main{display:none}#print{display:block}.sheet{page-break-after:always;padding:12mm}.sheet:last-child{page-break-after:auto}.sheet h1{font-size:26pt}.print-question{padding:18px 0;border-bottom:1px solid #ccc;font-size:21pt;break-inside:avoid}.sheet p{line-height:1.8}.writing{height:58px;border-bottom:1px solid #aaa}.print-reading{break-before:page}}

@media print{.print-reading p{font-size:11pt;line-height:1.55}.print-reading h1{font-size:24pt}.print-reading{padding:8mm 12mm}}
.report-heading{display:flex;justify-content:space-between;gap:20px;align-items:center;margin:38px 0 20px;flex-wrap:wrap}.report-heading h2{margin:8px 0}.report-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.report-metric .stat{margin-top:16px;font-size:42px}.report-metric p{font-size:14px;margin-bottom:0}.report-pill{background:#e9eedf;border-radius:20px;padding:10px 16px;font-size:13px}.report-section{margin-top:22px}.report-line{display:flex;justify-content:space-between;gap:16px;border-bottom:1px solid var(--line);padding:14px 0}.report-line strong{white-space:nowrap}.report-section h3{margin-top:0}.report-chart{display:grid;grid-template-columns:repeat(7,1fr);gap:12px;margin-top:30px}.chart-day{text-align:center}.chart-day small{display:block;color:var(--muted);font-size:11px;margin-top:8px}.chart-bars{display:flex;justify-content:center;gap:5px;margin-bottom:14px}.bar-column{width:34px;font-size:11px}.chart-track{height:120px;background:#f0f0e8;display:flex;align-items:flex-end;border-radius:5px;overflow:hidden;margin-top:8px}.chart-bar{width:100%;background:var(--green);border-radius:5px 5px 0 0}.reading-bar{background:#c99450}.chart-legend{display:flex;flex-wrap:wrap;gap:16px;font-size:12px;color:var(--muted)}.chart-key{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px}.maths-key{background:var(--green)}.reading-key{background:#c99450}.table-scroll{overflow:auto}summary{cursor:pointer;min-height:40px}small{line-height:1.6}@media(max-width:700px){.report-grid{grid-template-columns:1fr}.report-chart{gap:4px}.bar-column{width:20px;font-size:9px}.chart-day strong{font-size:11px}.chart-day small{font-size:9px}}@media print{.report-print{font:11pt 'DM Sans',sans-serif;padding:4mm}.report-print h1{font-size:24pt}.report-print h2{font-size:18pt}.report-print h3{font-size:14pt}.report-print .report-tools{display:none}.report-print .card{padding:15px;break-inside:avoid}.report-print .report-grid{display:grid;grid-template-columns:repeat(3,1fr)}.report-print .stat{font-size:27pt}.report-print .note,.report-print p{font-size:10pt}.report-print .grid{display:grid;grid-template-columns:1fr 1fr}.report-print .report-heading{margin-top:20px}.report-print .chart-bar{print-color-adjust:exact;-webkit-print-color-adjust:exact}.report-print .table-scroll{overflow:visible}.report-print table{font-size:9pt}.report-print td,.report-print th{padding:8px 4px}}
.student-switch{background:#e9eedf;border:1px solid #ccd8c3;max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.student-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:22px;margin-top:30px}.student-card{text-align:center;overflow-wrap:anywhere}.student-card .row{justify-content:center}.student-avatar{font-size:52px;line-height:1.5}.active-student{border:2px solid var(--green);background:#eef3e7}.add-student{border-style:dashed}.field input[type=text]{padding:14px;border:1px solid var(--line);border-radius:10px;min-width:0;width:100%}header{gap:16px;flex-wrap:wrap}.student-card h2{font-size:27px}#studentError:empty{min-height:0;margin:0}h1{overflow-wrap:anywhere}@media(max-width:650px){.student-switch{margin-top:12px;width:100%;max-width:none}.student-grid{grid-template-columns:1fr}}
.learning-banner{display:flex;gap:20px;justify-content:space-between;align-items:center;margin-bottom:28px;background:#f1eddb}.learning-banner h3{margin:10px 0}.learning-banner p{margin:0}.check-passage{font:21px/1.8 'Literata',Georgia,serif}.review-item{padding:15px 0;border-bottom:1px solid var(--line)}.review-item p{margin:6px 0}.question h2{line-height:1.7;overflow-wrap:anywhere}.answer{max-width:100%;width:240px}@media(max-width:800px){.learning-banner{display:block}.learning-banner button{margin-top:18px}nav{flex-wrap:wrap}.question h2{font-size:25px}}@media print{.print-grade-question{font-size:12pt;padding:10px 0;border-bottom:1px solid #ddd;break-inside:avoid}.print-grade-question p{font-size:11pt;margin:7px 0}}
textarea{font:inherit;padding:14px;border:1px solid var(--line);border-radius:10px;width:100%;resize:vertical}.toggle-line{display:flex;align-items:center;gap:12px;line-height:1.6;margin:18px 0}.toggle-line input{width:22px;height:22px;flex:none;accent-color:var(--green)}.parent-note{padding:18px 22px;background:#f3e7c6;border-radius:14px;line-height:1.6}.bonus-card{background:#f5ecd5}.puzzle-card{background:#e6eeec}.bonus-stars{font-size:30px;color:#9c7028;letter-spacing:5px}.reward-count{font:80px 'Literata',serif;margin:24px}.reward-count small{font-size:24px}.piece-meter{height:12px;background:#e4e7dc;border-radius:20px;overflow:hidden;margin:30px 0}.piece-meter span{height:100%;display:block;background:#6e9b77}.puzzle-session{max-width:700px;margin:auto}.puzzle-board{display:grid;grid-template-columns:repeat(6,1fr);max-width:600px;margin:auto;border:6px solid #cad7c9;border-radius:14px;overflow:hidden;background:#dfe5d9;gap:0}.puzzle-slot,.puzzle-piece{aspect-ratio:1.25;min-height:0;border-radius:0;padding:0;border:1px solid #bdcbbd;background-color:#eef0e5;background-repeat:no-repeat}.puzzle-slot:hover{background-color:#e0e8d5}.puzzle-slot.placed{opacity:1;cursor:default;border-color:transparent}.puzzle-tray{display:grid;grid-template-columns:repeat(6,1fr);gap:6px;position:sticky;bottom:0;background:#f8f6eef5;padding:12px 6px;margin:18px auto 0;max-width:650px;border:1px solid var(--line);border-radius:14px;box-shadow:0 -4px 20px #223e3510}.puzzle-piece{border-radius:8px;border:2px solid #fff}.selected-piece{outline:4px solid #b27d32;outline-offset:0}.picture-guide{margin:20px 0}.picture-guide img{max-width:220px;width:100%;border-radius:16px}.finished-puzzle{width:100%;max-width:600px;display:block;margin:auto;border-radius:20px}.collection-picture{width:100%;border-radius:14px}.book-card h3{font-size:24px;line-height:1.5}.book-card button{margin:8px 5px 0 0}.button-link{display:inline-block;text-decoration:none;padding:13px 18px;color:var(--ink);border:1px solid var(--line);background:white;border-radius:12px;min-height:48px}#writingCanvas{width:100%;height:auto;aspect-ratio:5/3;display:block;margin:25px 0;border:1px solid var(--line);border-radius:14px;touch-action:none;background:#fffef9}nav button{padding:12px 10px}nav{gap:2px}header{padding-left:24px;padding-right:24px}.student-switch{max-width:220px}#gatePin,#newParentPin,#repeatParentPin{font-size:24px;padding:14px;border:1px solid var(--line);border-radius:12px;max-width:200px}@media(max-width:650px){.puzzle-board{border-width:3px}.puzzle-tray{gap:4px;padding:8px 4px}.puzzle-session h1{font-size:34px}.reward-count{font-size:64px}.book-card h3{font-size:23px}nav{justify-content:flex-start}nav button{padding:10px 8px;font-size:12px}.puzzle-piece{border-width:1px}}@media print{.puzzle-tray,#writingCanvas{display:none}}

[hidden]{display:none!important}.welcome{padding:38px 0 50px;max-width:850px}.welcome h1{font-size:clamp(44px,7vw,82px);line-height:1.05}.lead{font-size:21px;max-width:650px}.chooser{border:2px solid #c5d8c1}.picture-login{display:flex;flex-direction:column;align-items:center;padding:24px;font-size:20px}.picture-login span{font-size:52px;margin-bottom:12px}.sync-state{position:fixed;bottom:8px;left:12px;right:12px;z-index:80;background:#f8f5eaed;padding:9px 16px;border:1px solid #d3dccf;border-radius:14px;font-size:12px;pointer-events:none;max-width:760px;margin:auto}.sync-conflict{position:sticky;top:0;z-index:100;border:3px solid #ae7536;margin:12px}body{padding-bottom:55px}input,select,textarea{font-size:16px;max-width:100%}header nav{flex-wrap:wrap}button{touch-action:manipulation;min-height:44px}header{flex-wrap:wrap}@media(max-width:700px){header nav{order:3;width:100%;gap:4px}header nav button{font-size:13px;padding:8px}.welcome{padding-top:20px}.student-grid{grid-template-columns:1fr 1fr}.row{flex-wrap:wrap}}@media(max-width:420px){.student-grid{grid-template-columns:1fr}}

/* Keep iPad pen gestures inside the writing pad; other reading pages remain selectable. */
.writing-page,.writing-page *{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.writing-page input,.writing-page select,.writing-page textarea{-webkit-user-select:text;user-select:text}#writingCanvas{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-user-drag:none;touch-action:none;cursor:crosshair;overscroll-behavior:contain}

.student-context{max-width:1100px;margin:16px auto 0;padding:12px 24px;border-radius:14px;background:#eaf0e3;display:flex;align-items:center;gap:14px;flex-wrap:wrap}.student-context label{font-weight:600}.student-context select{max-width:100%;padding:12px;border:1px solid var(--line);border-radius:12px;background:white}.student-context button{margin-left:auto}@media(max-width:650px){.student-context{margin:12px 20px 0;padding:14px}.student-context button{margin-left:0;width:100%}}
