:root{--paper:#e9e6da;--sheet:#f7f5ef;--grid:#283e5c17;--ink:#1b2b45;--ink2:#5e6b7e;--ink3:#8c96a4;--rule:#c2c7bc;--shu:#b23a2e;--ai:#2a4c7d;--mincho:"Hiragino Mincho ProN", "Yu Mincho", YuMincho, "Noto Serif JP", serif;--sans:"Hiragino Sans", "Yu Gothic", "Noto Sans JP", system-ui, sans-serif;--mono:ui-monospace, "SF Mono", Menlo, Consolas, monospace}*{box-sizing:border-box}html{background:var(--paper)}body{color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;margin:0}button,input,select,textarea{color:inherit;font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.46}.mono{font-variant-numeric:tabular-nums;font-family:var(--mono)!important}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.grow{flex:1;min-width:0}.app{background-color:var(--paper);background-image:linear-gradient(var(--grid) 1px, transparent 1px), linear-gradient(90deg, var(--grid) 1px, transparent 1px);background-size:26px 26px;min-height:100vh;padding-bottom:78px}.app.teacher{--grid:#1c30501c;background-color:#dee2e1}.header{z-index:20;background:var(--paper);padding:18px 18px 0;position:sticky;top:0}.teacher .header{color:var(--sheet);background:var(--ink)}.eyebrow{color:var(--ink2);letter-spacing:.25em;align-items:center;gap:7px;font-size:9px;display:flex}.teacher .eyebrow{color:#b8c2d0}.flag{width:18px;height:13px;color:var(--sheet);background:var(--shu);font-family:var(--mincho);letter-spacing:0;clip-path:polygon(0 0,100% 0,77% 50%,100% 100%,0 100%);place-items:center;font-size:8px;display:grid}.teacher .flag{color:var(--ink);background:#d7e1ec}.header-row{justify-content:space-between;align-items:flex-end;gap:16px;display:flex}.logotype{font-family:var(--mincho);letter-spacing:.16em;margin:5px 0 4px;font-size:20px;font-weight:600}.logotype small{color:var(--ink2);letter-spacing:.14em;font-size:11px;font-weight:500}.teacher .logotype small{color:#b8c2d0}.header-row p{color:var(--ink2);margin:0 0 9px;font-size:10.5px}.teacher .header-row p{color:#b8c2d0}.sync{font-family:var(--mono);margin-left:8px}.sync:before{content:"";background:var(--ai);width:6px;height:6px;margin-right:5px;display:inline-block}.sync-saving:before{animation:.8s steps(2,end) infinite blink}.sync-failed:before,.sync-offline:before{background:var(--shu)}@keyframes blink{50%{opacity:.25}}.header-actions{gap:6px;padding-bottom:9px;display:flex}.header-actions button{border:1px solid var(--ink2);background:0 0;min-width:36px;height:30px;padding:0 8px;font-size:11px}.teacher .header-actions button{color:var(--sheet);border-color:#748094}.double-rule{border-top:1px solid;border-bottom:1px solid;height:4px}.alertbar{z-index:19;color:var(--sheet);background:var(--shu);justify-content:center;align-items:center;gap:18px;padding:9px 16px;font-size:11.5px;line-height:1.6;display:flex;position:sticky;top:81px}.alertbar button{color:var(--sheet);background:0 0;border:1px solid;flex:none;padding:4px 8px}.student-picker{color:var(--sheet);background:var(--ink);align-items:center;gap:12px;padding:10px 18px 12px;display:flex}.student-picker span{font-family:var(--mincho);letter-spacing:.15em;font-size:10px}.student-picker select{min-width:0;color:var(--ink);background:var(--sheet);border:1px solid #778397;flex:1;padding:7px 9px}.main{width:min(100%,900px);margin:0 auto;padding:14px 12px 28px}.card{border:1px solid var(--ink);background:var(--sheet);margin-bottom:13px;padding:15px 14px 16px;position:relative}.card-head{border-bottom:1px solid var(--rule);justify-content:space-between;align-items:center;gap:10px;margin:-3px 0 13px;padding-bottom:7px;display:flex}.card-head h2{font-family:var(--mincho);letter-spacing:.14em;align-items:center;gap:8px;margin:0;font-size:13.5px;font-weight:600;display:flex}.card-head h2:before{background:var(--shu);content:"";width:3px;height:13px}.teacher .card-head h2:before{background:var(--ai)}.card-right{color:var(--ink2);font-family:var(--mono);text-align:right;font-size:10.5px}.hero-banner{border:1px solid var(--ink);border-top:4px double var(--ink);background:var(--sheet);align-items:center;gap:14px;margin-bottom:0;padding:18px 16px;display:flex}.teacher .hero-banner{border-top-color:var(--ai)}.hero-copy{flex:1;min-width:0}.label{color:var(--ink2);font-family:var(--mincho);letter-spacing:.11em;margin:0 0 7px;font-size:10.5px}.big-time{font-family:var(--mincho);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:clamp(36px,10vw,50px);line-height:1}.big-time small{color:var(--ink2);margin:0 5px 0 2px;font-size:12px}.text-button{border:0;border-bottom:1px solid var(--shu);color:var(--shu);background:0 0;margin-top:10px;padding:0 0 2px;font-size:11.5px}.teacher .text-button{color:var(--ai);border-color:var(--ai)}.seal{border:2px solid var(--shu);width:86px;height:86px;color:var(--shu);font-family:var(--mincho);border-radius:50%;flex-direction:column;flex:0 0 86px;justify-content:center;align-items:center;display:flex;position:relative;transform:rotate(-6deg)}.seal:after{content:"";border:1px solid;border-radius:50%;position:absolute;inset:3px}.teacher .seal{color:var(--ai);border-color:var(--ai)}.seal span{z-index:1;letter-spacing:.14em;font-size:9px}.seal b{z-index:1;font-family:var(--mono);font-size:29px;font-weight:500;line-height:1.05}.seal-blank{color:var(--ink3);opacity:.65;border-style:dashed}.seal-blank:after{border-style:dashed}.tally{border-top:1px solid var(--rule);border-left:1px solid var(--rule);background:var(--sheet);grid-template-columns:repeat(4,1fr);margin:8px 0 13px;display:grid}.tally div{border-right:1px solid var(--rule);border-bottom:1px solid var(--rule);flex-direction:column;gap:3px;min-width:0;padding:9px 10px;display:flex}.tally span{color:var(--ink2);font-family:var(--mincho);letter-spacing:.1em;font-size:10px}.tally b{font-family:var(--mono);text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;font-weight:500;overflow:hidden}.tally b.hot{color:var(--shu)}.masu{gap:2px;width:100%;display:flex}.masu i{border:1px solid var(--rule);background:0 0;flex:1;min-width:2px;height:12px}.masu i.on{border-color:var(--ai);background:var(--ai)}.student .masu i.on{border-color:var(--shu);background:var(--shu)}.cap,.note{color:var(--ink2);margin:8px 0 0;font-size:10.5px;line-height:1.8}.chart{border-bottom:1px solid var(--ink);align-items:flex-end;gap:3px;height:108px;padding-top:8px;display:flex}.chart-col{text-align:center;flex-direction:column;flex:1;justify-content:flex-end;min-width:0;height:100%;display:flex}.chart-bar{background:var(--ai);width:100%;min-height:1px;transition:height .25s}.chart-bar.today{background:var(--shu)}.chart-col span{height:17px;color:var(--ink3);font-family:var(--mono);padding-top:4px;font-size:8px}.stackbar{border:1px solid var(--ink);width:100%;height:14px;display:flex}.stackbar div+div{border-left:1px solid var(--sheet)}.legend{margin:9px 0 0;padding:0;list-style:none}.legend li{border-bottom:1px dotted var(--rule);align-items:center;gap:7px;padding:5px 0;font-size:11.5px;display:flex}.legend .dot{flex:none;width:7px;height:7px}.legend b{font-family:var(--mono);margin-left:auto;font-size:11px;font-weight:500}.legend em{width:35px;color:var(--ink3);font-family:var(--mono);text-align:right;font-size:10px;font-style:normal}.book-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 20px;display:grid}.book-progress>div{justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:6px;display:flex}.book-progress b{font-family:var(--mincho);text-overflow:ellipsis;white-space:nowrap;font-size:11.5px;font-weight:600;overflow:hidden}.book-progress span{color:var(--ink2);flex:none;font-size:9.5px}.empty{min-height:82px;color:var(--ink3);text-align:center;flex-direction:column;justify-content:center;align-items:center;display:flex}.empty span{font-family:var(--mincho);font-size:22px}.empty p{margin:5px 0;font-size:11.5px;line-height:1.8}.field{margin-bottom:15px;display:block}.field>span,fieldset legend{color:var(--ink2);font-family:var(--mincho);letter-spacing:.1em;margin-bottom:5px;font-size:10.5px;display:block}.input{border:0;border-bottom:1px solid var(--ink2);background:0 0;border-radius:0;outline:none;width:100%;padding:8px 2px}.input:focus{border-bottom:2px solid var(--shu);padding-bottom:7px}.teacher .input:focus{border-bottom-color:var(--ai)}textarea.input{border:1px solid var(--ink2);resize:vertical;min-height:84px;padding:9px;line-height:1.7}textarea.input:focus{border:1px solid var(--shu);padding:9px}.teacher textarea.input:focus{border-color:var(--ai)}.input::placeholder{color:var(--ink3)}.primary,.secondary{min-height:44px;font-family:var(--mincho);letter-spacing:.14em;border:0;border-radius:0;font-weight:600}.primary{width:100%;color:var(--sheet);background:var(--shu);padding:12px 14px}.teacher .primary{background:var(--ai)}.secondary{border:1px solid var(--ink);background:0 0;padding:10px 16px}.ghost{border:1px solid var(--ink2);background:0 0;min-height:34px;padding:6px 10px;font-size:11px}.ghost.strong{border-color:var(--ai);color:var(--ai)}.small-button{border:1px solid var(--ai);color:var(--ai);background:0 0;flex:none;padding:5px 9px;font-size:10.5px}.link{color:var(--ai);text-underline-offset:2px;background:0 0;border:0;padding:2px;font-size:10.5px;text-decoration:underline}.link.danger{color:var(--shu)}.button-row{align-items:center;gap:7px;display:flex}.button-row .primary{width:auto}.two-col{grid-template-columns:1fr 1fr;gap:16px;display:grid}.chips{flex-wrap:wrap;gap:6px;margin:-4px 0 15px;display:flex}.chip{border:1px solid var(--ink2);background:0 0;border-radius:0;padding:6px 9px;font-size:10.5px}.chip-on{border-color:var(--ink);color:var(--sheet);background:var(--ink)}.minute-chips .chip{font-family:var(--mono)}.timer{border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);font-family:var(--mono);letter-spacing:.03em;text-align:center;margin:3px 0 12px;padding:11px 0;font-size:clamp(31px,9vw,43px)}.focus{border:0;align-items:center;gap:0;margin:0 0 15px;padding:0;display:flex}.focus legend{float:left;width:78px;margin:0}.focus button{border:1px solid var(--ink2);width:42px;height:34px;font-family:var(--mono);background:0 0;border-right:0}.focus button:last-child{border-right:1px solid var(--ink2)}.focus button.on{color:var(--sheet);background:var(--ink)}.todo{margin:0;padding:0;list-style:none}.todo li{border-bottom:1px dotted var(--rule);align-items:center;gap:9px;padding:9px 0;display:flex}.todo-box{border:1px solid var(--ink2);width:18px;height:18px;color:var(--shu);font-family:var(--mincho);flex:none;place-items:center;font-size:9px;display:grid}.todo li>div{flex:1;min-width:0}.todo b{font-family:var(--mincho);text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;display:block;overflow:hidden}.todo li>div span{color:var(--ink2);font-family:var(--mono);font-size:10px}.todo-done{color:var(--ink2)}.todo-done .todo-box{border-color:var(--shu)}.notes{margin:0;padding:0;list-style:none}.notes li{border-left:2px solid var(--shu);margin-bottom:11px;padding-left:9px}.teacher .notes li{border-left-color:var(--ai)}.note-head{color:var(--ink3);align-items:baseline;gap:7px;font-size:9.5px;display:flex}.note-head b{color:var(--ink);font-family:var(--mincho);font-size:11.5px}.note-head span{border:1px solid var(--rule);padding:1px 4px;font-size:8.5px}.note-head time{font-family:var(--mono);margin-left:auto}.notes p{white-space:pre-wrap;margin:4px 0 0;font-size:11.5px;line-height:1.75}.note-form{border-top:1px solid var(--rule);grid-template-columns:1fr auto;align-items:end;gap:8px;margin-top:14px;padding-top:12px;display:grid}.note-form textarea{min-height:62px}.curriculum-card{border-top:4px double var(--ai)}.student .curriculum-card{border-top-color:var(--shu)}.curriculum-summary{justify-content:space-between;align-items:flex-start;gap:18px;display:flex}.curriculum-summary h3{font-family:var(--mincho);letter-spacing:.06em;margin:3px 0 5px;font-size:17px}.curriculum-summary p{color:var(--ink2);margin:0;font-size:10px;line-height:1.7}.course-kicker{color:var(--ai);letter-spacing:.18em;font-size:8.5px}.student .course-kicker{color:var(--shu)}.course-week{border:1px solid var(--rule);text-align:right;min-width:96px;padding:7px 9px}.course-week span{color:var(--ink3);letter-spacing:.1em;font-size:8px;display:block}.course-week b{font-family:var(--mono);font-size:23px;font-weight:500}.course-week small{color:var(--ink2);font-family:var(--mono);margin-left:3px;font-size:8.5px}.course-week.off{opacity:.55}.course-meter{background:#d9dad3;height:5px;margin:13px 0 15px}.course-meter i{background:var(--ai);height:100%;display:block}.student .course-meter i{background:var(--shu)}.current-phase{border:1px solid var(--rule);border-left:4px solid var(--ai);background:#2a4c7d09;padding:13px}.student .current-phase{border-left-color:var(--shu);background:#b23a2e06}.phase-heading{align-items:baseline;gap:9px;display:flex}.phase-heading span{color:var(--ai);font-family:var(--mono);font-size:9px}.student .phase-heading span{color:var(--shu)}.phase-heading h4{font-family:var(--mincho);letter-spacing:.08em;margin:0;font-size:13px}.current-phase>p{color:var(--ink2);margin:7px 0 10px;font-size:10px;line-height:1.75}.current-phase ul{margin:0;padding:0;list-style:none}.current-phase li{border-top:1px dotted var(--rule);justify-content:space-between;align-items:baseline;gap:10px;padding:7px 0;display:flex}.current-phase li b{min-width:0;font-family:var(--mincho);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.current-phase li span{color:var(--ink2);font-family:var(--mono);flex:none;font-size:9.5px}.curriculum-apply{border-top:1px solid var(--rule);justify-content:space-between;align-items:center;gap:14px;margin-top:10px;padding-top:10px;display:flex}.curriculum-apply p{color:var(--ink2);margin:0;font-size:9px;line-height:1.6}.curriculum-apply .primary{flex:none;width:auto;min-height:39px;padding:9px 12px;font-size:10px}.course-outside{border:1px solid var(--shu);color:var(--shu);margin:12px 0;padding:11px;font-size:10px;line-height:1.7}.course-outline,.course-change,.course-customize{border-top:1px dotted var(--rule);margin-top:12px}.course-outline summary,.course-change summary,.course-customize>summary{color:var(--ai);cursor:pointer;font-family:var(--mincho);letter-spacing:.08em;padding:10px 0 2px;font-size:10px}.course-outline ol{margin:10px 0 0;padding:0;list-style:none}.course-outline li{border-left:2px solid var(--rule);border-bottom:1px dotted var(--rule);grid-template-columns:58px 145px 1fr;gap:10px;padding:8px 8px 8px 12px;display:grid;position:relative}.course-outline li.on{border-left-color:var(--ai);background:#2a4c7d0d}.student .course-outline li.on{border-left-color:var(--shu)}.course-outline li.done:before{background:var(--ai);content:"";width:7px;height:7px;position:absolute;top:11px;left:-5px}.course-outline li span{color:var(--ink3);font-family:var(--mono);font-size:9px}.course-outline li b{font-family:var(--mincho);font-size:10.5px}.course-outline li p{color:var(--ink2);margin:0;font-size:9px;line-height:1.6}.curriculum-settings{border:1px solid var(--rule);background:#2a4c7d06;margin-top:11px;padding:12px}.course-options{grid-template-columns:1fr 1fr;gap:8px;display:grid}.course-options button{border:1px solid var(--rule);background:var(--sheet);text-align:left;min-width:0;padding:10px}.course-options button.on{border-color:var(--ai);box-shadow:inset 3px 0 0 var(--ai)}.course-options span,.course-options small{color:var(--ink3);letter-spacing:.1em;font-size:8px;display:block}.course-options b{font-family:var(--mincho);margin:4px 0;font-size:11px;display:block}.course-description,.course-note{color:var(--ink2);margin:9px 0;font-size:9.5px;line-height:1.7}.course-set-row{align-items:flex-end;gap:12px;display:flex}.course-set-row .field{width:175px;margin:0}.course-set-row .secondary{min-height:38px}.course-note{margin-bottom:0}.course-change>.link{margin-top:10px}.course-customize>p{color:var(--ink2);margin:9px 0;font-size:9.5px;line-height:1.7}.course-customize>p b{color:var(--ink)}.override-phases{gap:10px;display:grid}.override-phase{border:1px solid var(--rule);background:#2a4c7d06}.override-phase.is-current{border-color:var(--ai);box-shadow:inset 3px 0 0 var(--ai)}.override-phase-head{border-bottom:1px solid var(--rule);align-items:baseline;gap:10px;padding:9px 11px;display:flex}.override-phase-head span{color:var(--ai);font-family:var(--mono);font-size:9px}.override-phase-head b{font-family:var(--mincho);letter-spacing:.08em;font-size:11px}.override-task{border-bottom:1px dotted var(--rule);grid-template-columns:68px minmax(0,1fr) 112px 84px;align-items:end;gap:9px;padding:10px;display:grid}.override-task:last-child{border-bottom:0}.override-task.changed{box-shadow:inset 3px 0 0 var(--ai);background:#2a4c7d0a}.override-task .field{min-width:0;margin:0}.override-task .input{padding-top:5px;padding-bottom:5px;font-size:10px}.override-task-label{align-self:center}.override-task-label>span{color:var(--ink3);font-size:8px;display:block}.override-task-label b,.override-task-label em{color:var(--ai);margin-top:3px;font-size:8px;font-style:normal;font-weight:500;display:block}.override-task-label em{color:var(--ink3)}.override-amount>div{align-items:baseline;gap:4px;display:flex}.override-amount small{color:var(--ink2);flex:none;font-size:8.5px}.override-daily{grid-column:2/-1;grid-template-columns:112px minmax(0,1fr);align-items:center;gap:8px;display:grid}.override-daily>span{color:var(--ink2);font-size:8.5px}.override-daily>div{flex-wrap:wrap;align-items:center;gap:5px;display:flex}.override-daily button{border:1px solid var(--rule);color:var(--ink2);background:0 0;padding:4px 7px;font-size:8.5px}.override-daily button b{margin-right:4px;font-weight:500}.override-daily button.on{border-color:var(--ai);color:var(--sheet);background:var(--ai)}.override-daily em{color:var(--ai);font-family:var(--mono);margin-left:auto;font-size:8.5px;font-style:normal}.override-split{flex-wrap:wrap;grid-column:2;gap:4px;margin:0;display:flex}.override-split span{color:var(--ink2);background:#2a4c7d12;padding:3px 5px;font-size:8px}.override-split b{color:var(--ink);font-family:var(--mono);font-size:8.5px}.override-actions{flex-direction:column;align-items:flex-start;gap:4px;display:flex}.override-actions .small-button{width:100%}.override-actions .link{font-size:8.5px}.removed-curriculum-task{border-bottom:1px dotted var(--rule);background:#b23a2e09;align-items:center;gap:10px;padding:9px 11px;display:flex}.removed-curriculum-task>span{color:var(--shu);font-size:8px}.removed-curriculum-task>b{color:var(--ink2);font-family:var(--mincho);flex:1;font-size:10px;text-decoration:line-through}.removed-curriculum-task>button{font-size:8.5px}.curriculum-task-adder{border-top:1px solid var(--ai);background:#2a4c7d0e;grid-template-columns:150px minmax(0,1fr) 110px auto;align-items:end;gap:9px;padding:11px;display:grid}.curriculum-task-adder>div span,.curriculum-task-adder>div b{display:block}.curriculum-task-adder>div span{color:var(--ai);letter-spacing:.08em;font-size:8px}.curriculum-task-adder>div b{font-family:var(--mincho);margin-top:3px;font-size:9.5px}.curriculum-task-adder>label{align-items:baseline;gap:4px;display:flex}.curriculum-task-adder>label span,.curriculum-task-adder>label em{color:var(--ink2);font-size:8px;font-style:normal}.curriculum-task-adder>label input{min-width:0}.curriculum-task-adder>.secondary{width:auto;min-height:34px;padding:7px 9px;font-size:8.5px}.curriculum-task-adder>p{color:var(--ink3);grid-column:2/-1;margin:0;font-size:9px}.other-phases{border:1px dotted var(--rule)}.other-phases>summary{color:var(--ai);cursor:pointer;font-family:var(--mincho);letter-spacing:.08em;padding:10px 12px;font-size:9.5px}.other-phases>div{gap:10px;padding:0 10px 10px;display:grid}.week-nav{border:1px solid var(--ink);background:var(--sheet);justify-content:space-between;align-items:center;margin:0 0 10px;display:flex}.week-nav>button{min-height:44px;color:var(--ai);background:0 0;border:0;padding:0 14px;font-size:11px}.week-nav>div{text-align:center}.week-nav b{font-family:var(--mincho);letter-spacing:.08em;font-size:12.5px;display:block}.week-nav span{color:var(--shu);font-size:9px}.plan-tools{align-items:center;gap:10px;margin-bottom:12px;display:flex}.plan-tools span{color:var(--ink3);font-size:9.5px}.plan-add-book{flex:1;align-items:center;gap:5px;min-width:0;display:flex}.plan-add-book select{border:1px solid var(--rule);background:var(--sheet);width:min(260px,100%);min-width:0;height:36px;color:var(--ink);padding:0 8px;font-size:9.5px}.plan-add-book .secondary{flex:none;width:auto;min-height:36px;padding:7px 10px;font-size:9px}.daily-shortcut{border:1px solid var(--ai);border-left:4px solid var(--ai);background:#2a4c7d09;margin-bottom:14px;padding:13px}.daily-shortcut-head{border-bottom:1px solid var(--rule);justify-content:space-between;align-items:flex-start;gap:10px;padding-bottom:8px;display:flex}.daily-shortcut-head>div{min-width:0}.daily-shortcut-head span{color:var(--ai);letter-spacing:.14em;margin-bottom:3px;font-size:8.5px;display:block}.daily-shortcut-head b{font-family:var(--mincho);text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;display:block;overflow:hidden}.daily-shortcut-head>button{border:1px solid var(--rule);width:28px;height:28px;color:var(--ink2);background:0 0;flex:none}.daily-shortcut>p{color:var(--ink2);margin:8px 0 10px;font-size:9.5px;line-height:1.7}.weekly-total-shortcut{border:1px solid var(--rule);background:var(--sheet);grid-template-columns:124px minmax(0,1fr) auto;align-items:end;gap:9px;padding:10px;display:grid}.weekly-total-shortcut>label>span{color:var(--ink2);margin-bottom:4px;font-size:8.5px;display:block}.weekly-total-shortcut>label>div{align-items:baseline;gap:4px;display:flex}.weekly-total-shortcut input{border:0;border-bottom:1px solid var(--ink);width:78px;font-family:var(--mono);background:0 0;outline:none;padding:5px;font-size:13px}.weekly-total-shortcut label em{color:var(--ink2);font-size:8.5px;font-style:normal}.weekly-total-shortcut .primary{width:auto;min-height:36px;padding:8px 10px;font-size:9.5px}.weekly-split-preview{grid-template-columns:repeat(7,minmax(38px,1fr));gap:3px;display:grid}.weekly-split-preview span{color:var(--ink2);text-align:center;background:#2a4c7d12;padding:4px 3px;font-size:8px}.weekly-split-preview b{color:var(--ink);font-family:var(--mono);margin-top:2px;font-size:10px;display:block}.weekly-split-preview em{color:var(--ink3);font-size:7px;font-style:normal}.shortcut-separator{color:var(--ink3);align-items:center;gap:8px;margin:11px 0 8px;font-size:8px;display:flex}.shortcut-separator:before,.shortcut-separator:after{background:var(--rule);content:"";flex:1;height:1px}.shortcut-amounts{grid-template-columns:repeat(4,1fr);gap:6px;display:grid}.shortcut-amounts>button,.shortcut-amounts>label{border:1px solid var(--rule);background:var(--sheet);text-align:left;min-width:0;min-height:57px;padding:7px}.shortcut-amounts>button.on{border-color:var(--ai);color:var(--sheet);background:var(--ai)}.shortcut-amounts span{color:var(--ink3);letter-spacing:.08em;margin-bottom:4px;font-size:8px;display:block}.shortcut-amounts>button.on span{color:#d9e2ec}.shortcut-amounts b{font-family:var(--mono);white-space:nowrap;font-size:11.5px;font-weight:500;display:block}.shortcut-amounts label>div{align-items:baseline;gap:3px;display:flex}.shortcut-amounts input{border:0;border-bottom:1px solid var(--ink2);width:52px;min-width:0;font-family:var(--mono);background:0 0;outline:none;padding:2px;font-size:11.5px}.shortcut-amounts em{color:var(--ink2);white-space:nowrap;font-size:8.5px;font-style:normal}.shortcut-patterns{align-items:center;gap:5px;margin-top:11px;display:flex}.shortcut-patterns>span{color:var(--ink2);font-family:var(--mincho);letter-spacing:.08em;margin-right:4px;font-size:9px}.shortcut-patterns button{border:1px solid var(--rule);color:var(--ai);background:0 0;padding:4px 7px;font-size:8.5px}.shortcut-days{grid-template-columns:repeat(7,1fr);gap:4px;margin-top:7px;display:grid}.shortcut-days button{border:1px solid var(--rule);height:32px;font-family:var(--mincho);background:0 0;font-size:10px}.shortcut-days button.on{border-color:var(--ink);color:var(--sheet);background:var(--ink)}.shortcut-apply{border-top:1px dotted var(--rule);justify-content:space-between;align-items:center;gap:12px;margin-top:11px;padding-top:10px;display:flex}.shortcut-apply p{color:var(--ink2);margin:0;font-size:9.5px}.shortcut-apply p b{color:var(--ink);font-family:var(--mono);font-weight:500}.shortcut-apply .primary{width:auto;min-height:38px;padding:9px 12px;font-size:10px}.table-scroll{border-right:1px solid var(--rule);overflow-x:auto}.plan-table{border-collapse:collapse;background:var(--sheet);table-layout:fixed;width:100%;min-width:700px}.plan-table th,.plan-table td{border:1px solid var(--rule);text-align:center;height:56px;padding:0}.plan-table thead th{height:37px;color:var(--ink2);font-family:var(--mincho);font-size:10px;font-weight:400}.plan-table thead th em{color:var(--ink3);font-family:var(--mono);font-size:8px;font-style:normal;display:block}.plan-table thead th.is-today{color:var(--shu)}.plan-table .book-cell{z-index:2;border-right-color:var(--ink);background:var(--sheet);text-align:left;width:172px;padding:7px 8px;position:sticky;left:0}.plan-book-title{width:100%;font-family:var(--mincho);text-overflow:ellipsis;white-space:nowrap;font-size:10.5px;line-height:1.4;display:block;overflow:hidden}.plan-book-meta{justify-content:space-between;align-items:center;gap:7px;margin-top:5px;display:flex}.plan-table tbody .book-cell .plan-book-meta>em{min-width:0;color:var(--ink3);text-overflow:ellipsis;white-space:nowrap;font-size:8.5px;font-style:normal;overflow:hidden}.plan-row-actions{flex:none;gap:4px;display:flex}.plan-table tbody .book-cell .plan-row-actions button{border:1px solid var(--rule);min-height:23px;color:var(--ai);white-space:nowrap;background:0 0;padding:2px 6px;font-size:8px}.plan-table tbody .book-cell .plan-row-actions button.active{border-color:var(--ai);color:var(--sheet);background:var(--ai)}.plan-table tbody .book-cell .plan-row-actions button.danger{color:var(--shu)}.plan-table td b{height:24px;font-family:var(--mono);padding-top:5px;font-size:13px;font-weight:500;display:block}.plan-table td span{height:15px;color:var(--shu);font-family:var(--mono);font-size:9px;display:block}.plan-table td.done{background:#2a4c7d14}.plan-input{width:calc(100% - 8px);height:34px;font-family:var(--mono);text-align:center;background:#ffffffb8;border:1px solid #2a4c7d33;border-radius:2px;outline:none;margin:2px 4px;padding:3px;font-size:13px}.plan-input::placeholder{color:var(--ink3);opacity:.65}.plan-input:focus{box-shadow:inset 0 0 0 2px var(--ai)}.sum-cell{border-left-color:var(--ink)!important}.time-row th,.time-row td{height:36px;color:var(--ink2);font-size:8.5px}.time-row .book-cell{font-family:var(--mincho);font-size:9.5px}.goals{gap:15px;display:grid}.goal-book{border-top:1px dotted var(--rule);padding-top:12px}.goal-book:first-child{border-top:0;padding-top:0}.goal-title{justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:8px;display:flex}.goal-title b{font-family:var(--mincho);font-size:12px}.goal-title span{color:var(--ink3);font-family:var(--mono);font-size:9px}.goal-row{align-items:center;gap:7px;min-height:36px;display:flex}.goal-row .input{margin:0;padding:4px 2px;font-size:11px}.goal-label{width:45px;color:var(--ink2);font-family:var(--mincho);flex:none;font-size:10px}.goal-amount{width:66px}.goal-date{width:120px}.goal-row>span:not(.goal-label),.goal-row>time{color:var(--ink2);font-size:9.5px}.goal-row>b{font-family:var(--mono);font-size:11px}.goal-row em{margin-left:auto;font-size:9px;font-style:normal}.goal-row em.ok{color:var(--ai)}.goal-row em.warn{color:var(--shu)}.subject-tabs{flex-wrap:wrap;gap:5px;margin-bottom:15px;display:flex}.subject-tabs button{border:1px solid var(--rule);background:0 0;align-items:center;gap:5px;padding:6px 8px;font-size:10px;display:flex}.subject-tabs button span{width:6px;height:6px}.subject-tabs button.on{border-color:var(--ink);color:var(--sheet);background:var(--ink)}.subheading{border-top:1px solid var(--rule);font-family:var(--mincho);letter-spacing:.1em;margin:14px 0 8px;padding-top:10px;font-size:11.5px}.preset-list>div{border-bottom:1px dotted var(--rule);align-items:center;gap:10px;padding:8px 0;display:flex}.preset-list>div>span{flex:1;min-width:0;font-size:11.5px}.preset-list em{color:var(--ink3);font-family:var(--mono);margin-left:7px;font-size:9px;font-style:normal}.preset-list b{color:var(--ink3);font-size:9px;font-weight:400}.custom-book{align-items:flex-end;gap:12px;display:flex}.custom-book .field:not(.grow){width:85px}.registered-books>div{border-bottom:1px dotted var(--rule);align-items:flex-start;gap:10px;padding:11px 0;display:flex}.book-color{flex:none;width:4px;height:34px}.registered-books b{font-family:var(--mincho);font-size:12px;display:block}.registered-books small{color:var(--ink2);margin:3px 0 7px;font-size:9.5px;display:block}.book-admin{flex-direction:column;flex:none;align-items:flex-end;gap:5px;display:flex}.book-admin label{color:var(--ink2);font-size:9px}.book-admin input{border:0;border-bottom:1px solid var(--rule);text-align:right;background:0 0;width:58px;padding:3px}.book-total{color:var(--ink2);align-self:center;font-size:9.5px}.month-nav{align-items:center;gap:8px;width:210px;margin-bottom:12px;display:flex}.month-nav button{color:var(--ai);background:0 0;border:0}.month-nav .input{text-align:center}.ledger-day{margin-bottom:16px}.day-head{border-bottom:1px solid var(--ink);justify-content:space-between;align-items:center;padding-bottom:5px;display:flex}.day-head b{font-family:var(--mincho);letter-spacing:.08em;font-size:12px}.day-head span{font-family:var(--mono);font-size:11px}.entry{border-bottom:1px dotted var(--rule);align-items:flex-start;gap:9px;padding:8px 0;display:flex}.entry b{font-family:var(--mincho);font-size:11.5px;display:block}.entry span{color:var(--ink2);font-size:9.5px}.entry p{border-left:2px solid var(--rule);color:var(--ink2);margin:4px 0 0;padding-left:7px;font-size:10.5px;line-height:1.6}.entry strong{color:var(--ink2);font-family:var(--mono);flex:none;font-size:10.5px;font-weight:500}.room-day{border:1px solid var(--ink);border-top:4px double var(--ink);background:var(--sheet);margin-bottom:12px;padding:15px}.room-day>span{color:var(--ink2);font-family:var(--mincho);letter-spacing:.12em;font-size:10px}.room-day>div{font-family:var(--mincho);margin-top:4px;font-size:15px}.room-day b{font-family:var(--mono);margin-left:8px;font-size:28px;font-weight:500}.room-day small{color:var(--ink2);margin-left:3px;font-size:11px}.room-list{margin:0;padding:0;list-style:none}.room-list li{border-bottom:1px dotted var(--rule);cursor:pointer;margin:0 -14px;padding:12px 14px}.room-list li.warning{background:#b23a2e12}.room-top{justify-content:space-between;align-items:center;margin-bottom:7px;display:flex}.room-top>b{font-family:var(--mincho);letter-spacing:.08em;font-size:13.5px}.badge{letter-spacing:.06em;border:1px solid;padding:2px 6px;font-size:8.5px}.badge.ok{color:var(--ai)}.badge.mid{color:var(--ink2)}.badge.warn{color:var(--shu)}.badge.none{color:var(--ink3)}.room-numbers{color:var(--ink2);flex-wrap:wrap;gap:12px;margin-bottom:7px;font-size:9.5px;display:flex}.room-numbers b{color:var(--ink);font-family:var(--mono);font-size:10.5px}.inline-message{border:1px solid var(--ai);color:var(--ai);background:var(--sheet);margin:0 0 10px;padding:8px 10px;font-size:11px}.new-student,.teacher-add,.settings-form{align-items:flex-end;gap:12px;display:flex}.new-student>.field:nth-child(2){width:116px}.issued{border:1px solid var(--shu);background:#b23a2e0a;margin-top:14px;padding:12px}.issued-title{color:var(--shu);font-family:var(--mincho);letter-spacing:.1em;margin-bottom:8px;font-size:11.5px}.issued>div:not(.issued-title):not(.button-row){border-bottom:1px dotted var(--rule);align-items:center;padding:5px 0;display:flex}.issued>div>span{width:90px;color:var(--ink2);font-size:10px}.issued>div>b{font-family:var(--mono);letter-spacing:.12em;font-size:18px}.issued>p{color:var(--shu);font-size:9.5px;line-height:1.7}.roster>div{border-bottom:1px dotted var(--rule);padding:9px 0}.roster>div.inactive{opacity:.55}.roster-main{align-items:center;gap:10px;display:flex}.roster-name{min-width:0;font-family:var(--mincho);text-align:left;text-overflow:ellipsis;white-space:nowrap;background:0 0;border:0;flex:1;font-size:12px;overflow:hidden}.roster-main>span{color:var(--ink2);font-size:9.5px}.reset-row{border-left:2px solid var(--shu);background:#b23a2e0a;align-items:flex-end;gap:8px;margin-top:9px;padding:9px;display:flex}.reset-row .field{width:130px}.teacher-list{margin:0 0 12px;padding:0;list-style:none}.teacher-list li{border-bottom:1px dotted var(--rule);justify-content:space-between;padding:7px 0;font-size:11px;display:flex}.teacher-list b{font-family:var(--mincho)}.teacher-add .field:first-child,.teacher-add .field:nth-child(3){width:125px}.settings-form .field{width:190px}.suffix{align-items:baseline;gap:6px;display:flex}.suffix span{color:var(--ink2);font-size:10px}.privacy-copy{color:var(--ink2);margin:0;font-size:11px;line-height:1.9}.proxy-grid{grid-template-columns:2fr 1fr 1fr 1fr;gap:12px;display:grid}.backup-actions{gap:8px;margin-top:12px;display:flex}.file-button{cursor:pointer;align-items:center;display:inline-flex}.file-button input{display:none}.tabbar{z-index:30;padding-bottom:env(safe-area-inset-bottom);border-top:1px solid var(--ink);background:var(--sheet);display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -4px #1b2b4509}.tab{border:0;border-right:1px solid var(--rule);min-height:55px;color:var(--ink3);font-family:var(--mincho);letter-spacing:.1em;background:0 0;flex:1;font-size:10.5px;position:relative}.tab:last-child{border-right:0}.tab-mark{height:3px;position:absolute;top:0;left:0;right:0}.tab-on{color:var(--ink)}.tab-on .tab-mark{background:var(--shu)}.teacher .tab-on .tab-mark{background:var(--ai)}.signin-page{place-items:center;min-height:100dvh;padding:24px;display:grid}.signin-wrap{border:1px solid var(--ink);border-top:4px double var(--ink);background:var(--sheet);width:min(100%,440px);padding:28px 28px 24px}.signin-title{font-family:var(--mincho);letter-spacing:.18em;margin:20px 0 16px;font-size:26px;font-weight:600;line-height:1.55}.signin-title span{color:var(--shu);font-size:16px}.signin-sub{border-bottom:1px solid var(--rule);color:var(--ink2);margin:0 0 22px;padding-bottom:17px;font-size:11px;line-height:1.9}.signin-wrap .field{margin-bottom:20px}.err{border:1px solid var(--shu);color:var(--shu);margin:0 0 14px;padding:8px 10px;font-size:11px}.privacy-note{color:var(--ink3);margin:16px 0 0;font-size:9.5px;line-height:1.7}.loading{background:var(--paper);min-height:100dvh;color:var(--ink2);text-align:center;place-content:center;display:grid}.loading-mark{border:2px solid var(--shu);width:58px;height:58px;color:var(--shu);font-family:var(--mincho);border-radius:50%;place-items:center;margin:0 auto 13px;font-size:24px;animation:1.4s ease-in-out infinite seal-pulse;display:grid}.loading p{font-family:var(--mincho);letter-spacing:.15em;font-size:11px}.load-failure{border:1px solid var(--ink);border-top:4px double var(--ink);background:var(--sheet);text-align:center;width:min(100vw - 32px,420px);padding:28px 24px}.load-failure h1{font-family:var(--mincho);letter-spacing:.1em;margin:15px 0 8px;font-size:18px}.load-failure p{color:var(--ink2);font-family:var(--sans);letter-spacing:0;margin:0 0 18px;font-size:11px;line-height:1.8}.load-failure .loading-mark{animation:none}@keyframes seal-pulse{50%{opacity:.45;transform:rotate(-5deg)scale(.96)}}@media (width<=600px){.header{padding:14px 13px 0}.logotype{letter-spacing:.12em;font-size:17px}.logotype small{margin-top:2px;display:block}.alertbar{top:76px}.main{padding:11px 8px 22px}.card{padding:14px 11px 15px}.hero-banner{padding:16px 12px}.seal{flex-basis:78px;width:78px;height:78px}.seal b{font-size:26px}.tally{grid-template-columns:repeat(2,1fr)}.book-list{grid-template-columns:1fr}.two-col{grid-template-columns:1fr;gap:0}.note-form{grid-template-columns:1fr}.note-form .secondary{width:100%}.custom-book,.new-student,.teacher-add,.settings-form{flex-direction:column;align-items:stretch;gap:0}.proxy-grid{grid-template-columns:1fr 1fr}.curriculum-summary{gap:10px}.curriculum-summary h3{font-size:14px}.course-week{min-width:82px}.course-options{grid-template-columns:1fr}.course-set-row,.curriculum-apply{flex-direction:column;align-items:stretch}.course-set-row .field,.curriculum-apply .primary{width:100%}.override-task{grid-template-columns:58px minmax(0,1fr) 90px}.override-actions{flex-direction:row;grid-column:2/-1;align-items:center}.override-actions .small-button{width:auto}.curriculum-task-adder{grid-template-columns:1fr;align-items:stretch}.curriculum-task-adder>p{grid-column:1}.curriculum-task-adder>.secondary{width:100%}.override-daily{grid-column:1/-1;grid-template-columns:1fr}.override-daily em{width:100%;margin:2px 0 0}.override-split{grid-column:1}.course-outline li{grid-template-columns:50px 1fr}.course-outline li p{grid-column:1/-1}.plan-tools{flex-direction:column;align-items:flex-start}.plan-add-book{width:100%}.plan-add-book select{flex:1}.shortcut-amounts{grid-template-columns:repeat(2,1fr)}.weekly-total-shortcut{grid-template-columns:1fr;align-items:stretch}.weekly-split-preview{grid-template-columns:repeat(4,1fr)}.weekly-total-shortcut .primary{width:100%}.shortcut-apply{flex-direction:column;align-items:stretch}.shortcut-apply .primary,.custom-book .field:not(.grow),.new-student>.field:nth-child(2),.teacher-add .field:first-child,.teacher-add .field:nth-child(3),.settings-form .field{width:100%}.goal-title,.goal-row{flex-wrap:wrap;align-items:flex-start}.goal-title span{width:100%}.goal-row em{width:100%;margin:0 0 3px 52px}.goal-date{width:132px}.roster-main{flex-wrap:wrap}.roster-name{flex-basis:55%}.reset-row{flex-direction:column;align-items:stretch}.reset-row .field{width:100%}.tab{letter-spacing:.04em;min-height:53px;font-size:10px}.signin-page{padding:12px}.signin-wrap{padding:24px 18px 20px}}@media (width>=760px){.main{padding-top:18px}.hero-banner{padding:22px 20px}.card{padding:18px}.room-list{grid-template-columns:1fr 1fr;gap:0 24px;display:grid}.room-list li{margin:0;padding-left:0;padding-right:0}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}
