:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--ground:#edebe5;--card:#fff;--ink:#1b2430;--muted:#6b7280;--rule:#d9d6ce;--ok:#3f7a54;--alert:#b4442e;--guide:#c9cfd6;--space-xs:4px;--space-sm:8px;--space-md:16px;--space-lg:24px;--tap-min:44px;--stage-w:1053px;--stage-h:720px;font-family:Hiragino Kaku Gothic ProN,system-ui,sans-serif}html,body{background:var(--ground);height:100%;color:var(--ink);overscroll-behavior:none;margin:0;font-family:Hiragino Sans,Hiragino Kaku Gothic ProN,system-ui,-apple-system,sans-serif}body{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}main{padding:var(--space-md);max-width:960px;margin:0 auto}main.writing{max-width:none;width:var(--stage-w);height:var(--stage-h);padding:var(--space-xs);--verdict-row-h:calc(1.7rem * 2.2 * 2 + var(--space-md) * 2);--numpad-px:calc(var(--pad-px) * .5);--math-font:calc(var(--pad-px) * .22);--outline-inset:2px;--board-h:calc(var(--verdict-row-h) + var(--space-lg) + var(--pad-px));--vgap:calc(var(--stage-h) - var(--outline-inset) * 2 - var(--board-h));padding-bottom:calc(var(--vgap) * 2 / 3 + var(--outline-inset));padding-right:var(--space-lg);zoom:var(--stage-scale,1);outline-offset:-2px;outline:2px dashed #1e90ff;flex-direction:column;justify-content:flex-end;margin:0;display:flex;position:relative}main.writing.hand-left{padding-right:var(--space-xs);padding-left:var(--space-lg)}.writing-viewport{justify-content:center;align-items:center;min-height:100dvh;display:flex;overflow:hidden}button{font:inherit;min-height:var(--tap-min);padding:0 var(--space-lg);border:1px solid var(--rule);background:var(--card);color:var(--ink);cursor:pointer;border-radius:8px}button.primary{background:var(--ink);border-color:var(--ink);color:var(--card)}button:disabled{opacity:.5}button{box-shadow:0 1px 2px var(--shade);transition:transform 80ms,box-shadow 80ms,background-color 80ms}button:active:not(:disabled){box-shadow:none;background:var(--ground);transform:translateY(1px)}button.primary:active:not(:disabled){background:var(--ink);opacity:.85}button:disabled{box-shadow:none}.bar{gap:var(--space-sm);margin-top:var(--space-md);flex-wrap:wrap;display:flex}.notice{padding:var(--space-lg);font-size:1.25rem;line-height:1.8}.message{color:var(--alert);margin:var(--space-md) 0;font-size:1.1rem}.login{max-width:26rem;padding-top:var(--space-lg)}.login h1{font-size:1.6rem}.login-student .field input{letter-spacing:.2em;min-height:56px;font-size:1.6rem}.login-note{color:var(--muted);margin-top:var(--space-sm);font-size:.9rem;display:block}.login-go{width:100%;min-height:56px;font-size:1.3rem}.login-teacher{margin-top:var(--space-lg);padding-top:var(--space-md);border-top:1px solid var(--rule)}.login-teacher h2{color:var(--muted);margin:0 0 var(--space-sm);font-size:1rem}.login .google{width:100%}.field{margin-bottom:var(--space-md);display:block}.field>span{margin-bottom:var(--space-sm);font-size:1.1rem;display:block}.field input{width:100%;min-height:var(--tap-min);padding:0 var(--space-sm);border:1px solid var(--rule);background:var(--card);color:var(--ink);-webkit-user-select:text;user-select:text;border-radius:8px;font-size:1.2rem}.stage-corner{top:var(--space-xs);z-index:2;gap:var(--space-xs);flex-direction:column;align-items:center;display:flex;position:absolute}.hand-right>.stage-corner{right:var(--space-xs)}.hand-left>.stage-corner{left:var(--space-xs)}.home-button{writing-mode:horizontal-tb;border-radius:50%;justify-content:center;align-items:center;width:3rem;min-width:0;height:3rem;min-height:0;padding:0;display:flex}.home-button svg{width:1.7rem;height:1.7rem}.hand-switch{writing-mode:horizontal-tb;border-radius:50%;justify-content:center;align-items:center;width:3rem;min-width:0;height:3rem;min-height:0;padding:0;font-size:1.6rem;display:flex}.writing-body{gap:var(--space-lg);align-items:start;display:grid}.sentence-area{height:var(--verdict-row-h);grid-area:sentence;align-items:center;display:flex;overflow:hidden}.pad-area{grid-area:pad;display:flex;position:relative}.preview-area{grid-area:preview}.tools-area{gap:var(--space-sm);height:100%;padding:0 var(--space-xs);flex-flow:column;grid-area:tools;justify-content:flex-end;align-self:start;display:flex}.verdict-area{height:var(--verdict-row-h);grid-area:verdict}.hand-right .writing-body{grid-template-columns:var(--pad-px) var(--pad-px) auto;grid-template-rows:var(--verdict-row-h) var(--pad-px);grid-template-areas:"verdict sentence tools""preview pad tools"}.hand-left .writing-body{grid-template-columns:auto var(--pad-px) var(--pad-px);grid-template-rows:var(--verdict-row-h) var(--pad-px);grid-template-areas:"tools sentence verdict""tools pad preview"}.tools-area button{writing-mode:vertical-rl;text-orientation:upright;min-height:0;min-width:var(--tap-min);padding:var(--space-md) var(--space-xs);letter-spacing:.05em}.sentence .progress{font-variant-numeric:tabular-nums;color:var(--muted);font-size:.7em}.sentence{width:100%;height:7.48rem;margin:0;font-size:1.7rem;line-height:2.2;overflow:hidden}.sentence-blank rt{color:var(--muted);font-size:.5em}.padbox{background:var(--card);border:1px solid var(--rule);box-shadow:0 2px 6px var(--shade);border-radius:12px;position:relative;overflow:hidden}.pad{z-index:1;touch-action:none;display:block;position:relative}.guides{z-index:0;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.guides line{stroke:var(--guide);stroke-width:1px;stroke-dasharray:5 6}.verdict{background:var(--card);border:1px solid var(--rule);box-shadow:0 2px 6px var(--shade);padding:var(--space-lg);text-align:center;box-sizing:border-box;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;height:100%;margin-top:0;display:flex}.pad-mark{z-index:2;font-size:calc(var(--pad-px,460px) * .6);pointer-events:none;justify-content:center;align-items:center;margin:0;font-weight:700;line-height:1;display:flex;position:absolute;inset:0}.pad-mark.ok{color:var(--ok);opacity:.55}.pad-mark.ng{color:var(--alert);opacity:.55}.verdict-text{color:var(--ok);margin:0;font-size:1.2rem;font-weight:700}.stroke-preview{margin:0}.stroke-preview svg{width:var(--pad-px,220px);height:var(--pad-px,220px);background:var(--card);border:1px solid var(--rule);max-width:100%;box-shadow:0 2px 6px var(--shade);border-radius:12px}.stroke-preview .guides line{stroke:var(--guide);stroke-width:1px;stroke-dasharray:5 6}.stroke-preview .line{fill:none;stroke:var(--ink);stroke-width:5px;stroke-linecap:round;stroke-linejoin:round}.stroke-preview .wrong{stroke:var(--alert)}.stroke-preview .order-circle{fill:var(--card);stroke:var(--rule);stroke-width:.5px}.stroke-preview .order{fill:#000;font-size:4.5px;font-weight:700}.stroke-preview .order.wrong{fill:var(--alert)}.stroke-preview-placeholder{display:block}.stroke-preview-placeholder svg{border:2px dashed var(--rule);box-shadow:none;background:0 0}.practice-note{color:var(--alert);margin:0 0 var(--space-md);padding:var(--space-xs) var(--space-md);background:var(--alertSoft);white-space:nowrap;text-overflow:ellipsis;border-radius:999px;max-width:100%;font-size:.95rem;font-weight:700;display:inline-block;overflow:hidden}.bar{margin-top:0}.hint{color:var(--ink);padding:0 var(--space-md);text-align:left;align-items:center;height:3.74rem;margin:0;font-size:1.1rem;line-height:1.7;display:flex;overflow:hidden}.result h1{font-size:1.8rem}.wrong-list{gap:var(--space-sm);flex-wrap:wrap;padding:0;list-style:none;display:flex}.wrong-list li{background:var(--card);border:1px solid var(--rule);padding:var(--space-sm) var(--space-md);border-radius:8px;font-family:Klee One,Hiragino Mincho ProN,serif;font-size:2.5rem}.about{padding:var(--space-lg);-webkit-user-select:text;user-select:text;max-width:42rem;line-height:1.8}.about-lead{font-size:1.1rem}.about-sources{padding:0;list-style:none}.about-sources>li{margin-bottom:var(--space-lg);padding-left:var(--space-md);border-left:4px solid var(--rule)}.about-source-name{margin-bottom:.25rem;font-size:1.2rem;font-weight:700}.about-version{color:var(--muted);margin-left:.75rem;font-size:.9rem;font-weight:400}.about-used-for,.about-license,.about-changes-label{margin:.25rem 0}.about-changes{color:var(--muted);margin:.25rem 0 0}.about-open,.about-close{margin-top:var(--space-lg)}.about-trail{margin-top:var(--space-lg);padding-top:var(--space-md);border-top:1px solid var(--rule)}.about-trail-note{margin:var(--space-sm) 0;color:var(--muted);font-size:.85rem}.about-trail-list{margin:0 0 var(--space-md);padding:var(--space-sm);background:var(--surface);border:1px solid var(--rule);overflow-wrap:anywhere;max-height:60vh;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.8rem;line-height:1.6;list-style:none;overflow-y:auto}.about-open.small{min-height:0;padding:var(--space-sm) var(--space-md);color:var(--muted);box-shadow:none;background:0 0;border-color:#0000;margin-top:0;font-size:.9rem}.home{max-width:26rem;padding-top:var(--space-xl);text-align:center}.home h1{margin:0 0 var(--space-xl);font-size:1.8rem}.home-start{width:100%;min-height:5rem;font-size:1.6rem;font-weight:700}.home-subjects{gap:var(--space-md);grid-template-columns:1fr 1fr;display:grid}.home-note{color:var(--muted);margin:var(--space-xl) 0 var(--space-sm);font-size:.95rem}.home .bar{justify-content:center}main.teacher{max-width:900px;padding-bottom:var(--space-xl)}.teacher-head-actions{align-items:center;gap:var(--space-lg);flex-wrap:wrap;display:flex}.teacher-head{justify-content:space-between;align-items:center;gap:var(--space-md);margin-bottom:var(--space-lg);padding-bottom:var(--space-md);border-bottom:1px solid var(--rule);flex-wrap:wrap;display:flex}.teacher h1{margin:0;font-size:1.6rem}.teacher>section{background:var(--card);border:1px solid var(--rule);padding:var(--space-lg);margin-bottom:var(--space-lg);box-shadow:0 1px 2px var(--shade);border-radius:12px}.teacher h2{margin:0 0 var(--space-sm);font-size:1.25rem}.teacher section>p{margin:0 0 var(--space-sm);line-height:1.7}.teacher section>p:last-child{margin-bottom:0}.teacher>.bar{margin-top:var(--space-lg)}.roster-format{color:var(--muted)}.field textarea{width:100%;font:inherit;padding:var(--space-sm);border:1px solid var(--rule);background:var(--card);color:var(--ink);-webkit-user-select:text;user-select:text;border-radius:8px;font-size:1.05rem}.roster-result{margin-top:var(--space-lg)}.roster-note{color:var(--muted)}.roster-willbe strong{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:1.2rem}.roster-table{border-collapse:collapse;background:var(--card);width:100%;margin-bottom:var(--space-md)}.roster-table th,.roster-table td{border:1px solid var(--rule);padding:var(--space-sm);text-align:left;-webkit-user-select:text;user-select:text;font-size:1.05rem}.roster-table td:nth-child(2),.roster-table td:nth-child(3){font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.roster-problems{color:var(--alert);line-height:1.8}.range-now{margin-bottom:var(--space-sm)}.range form{align-items:flex-start;gap:var(--space-xs);margin-top:var(--space-sm);flex-direction:column;display:flex}.range-choice{align-items:center;gap:var(--space-sm);min-height:var(--tap-min);cursor:pointer;display:flex}.range-choice input{flex:none;width:20px;height:20px;margin:0}.range-row,.range-units{margin:0 0 var(--space-sm) calc(20px + var(--space-sm));padding:0}.range-row{align-items:center;gap:var(--space-sm);flex-wrap:wrap;display:flex}.range-units{border:1px solid var(--rule);max-height:16rem;padding:var(--space-sm);border-radius:8px;width:100%;list-style:none;overflow-y:auto}.range-units label{align-items:center;gap:var(--space-sm);min-height:var(--tap-min);cursor:pointer;display:flex}.range-units input{flex:none;width:20px;height:20px;margin:0}.range select{font:inherit;min-height:var(--tap-min);padding:0 var(--space-sm);border:1px solid var(--rule);background:var(--card);color:var(--ink);border-radius:8px}.range form>button{margin-top:var(--space-sm)}.roster form{align-items:flex-start;gap:var(--space-md);margin-top:var(--space-md);flex-direction:column;display:flex}.roster .field{width:100%;margin-bottom:0}.class-info select{font:inherit;min-height:var(--tap-min);padding:0 var(--space-sm);border:1px solid var(--rule);background:var(--card);color:var(--ink);border-radius:8px}.required-now{margin-bottom:var(--space-sm)}.required-form{align-items:center;gap:var(--space-sm);margin-bottom:var(--space-md);flex-wrap:wrap;display:flex}.required select{font:inherit;min-height:var(--tap-min);padding:0 var(--space-sm);border:1px solid var(--rule);background:var(--card);color:var(--ink);border-radius:8px}.math-formula{width:100%;height:var(--pad-px);white-space:nowrap;background:var(--card);border:1px solid var(--rule);box-shadow:0 2px 6px var(--shade);border-radius:12px;flex-flow:row;justify-content:center;align-items:center;gap:.25em;display:flex}.math-expr{font-size:var(--math-font);font-variant-numeric:tabular-nums;letter-spacing:.04em;font-weight:700}.math-typed{width:calc(var(--math-font) * 1.4);text-align:left;font-size:var(--math-font);font-variant-numeric:tabular-nums;color:var(--stroke);flex:none;font-weight:700;line-height:1}.math.hand-right .writing-body{grid-template-columns:1fr auto;grid-template-areas:"verdict sentence""preview pad"}.math.hand-left .writing-body{grid-template-columns:auto 1fr;grid-template-areas:"sentence verdict""pad preview"}.math .pad-area{align-self:stretch;align-items:flex-end}.math.hand-right .pad-area{padding-right:var(--space-xs)}.math.hand-left .pad-area{padding-left:var(--space-xs)}.numpad-slot{width:var(--numpad-px);height:var(--numpad-px);position:relative}.hand-right .pad-area{justify-content:flex-end}.hand-left .pad-area{justify-content:flex-start}.numpad-slot .pad-mark{font-size:calc(var(--numpad-px) * .6)}.numpad{width:var(--numpad-px);height:var(--numpad-px);background:var(--rule);border:1px solid var(--rule);box-shadow:0 2px 6px var(--shade);border-radius:12px;grid-template-rows:repeat(4,1fr);grid-template-columns:repeat(3,1fr);gap:1px;display:grid;overflow:hidden}.numpad-key{min-height:0;box-shadow:none;background:var(--card);color:var(--ink);font-size:calc(var(--numpad-px) * .15);font-variant-numeric:tabular-nums;border:none;border-radius:0;justify-content:center;align-items:center;margin:0;padding:0;font-weight:400;line-height:1;display:flex}.numpad-key:active:not(:disabled){background:var(--ground);transform:none}.numpad-key.erase{background:var(--ground)}.numpad-key.go{background:var(--ok);color:var(--card);font-size:calc(var(--numpad-px) * .062);text-align:center;padding:0 4px;font-weight:700}.numpad-key.go:active:not(:disabled){background:var(--ink)}.numpad-key.go:disabled{background:var(--rule);color:var(--muted)}.numpad-key.erase svg{width:calc(var(--numpad-px) * .13);height:auto;fill:var(--ink)}.numpad-key.erase .erase-x line{stroke:var(--card);stroke-width:3px;stroke-linecap:round}.numpad-key:disabled{opacity:1;color:var(--muted)}.numpad-key.erase:disabled svg{opacity:.35}.home-jishu{width:100%;min-height:6rem;margin-bottom:var(--space-md);font-size:1.8rem;font-weight:700}main.pick{max-width:34rem;padding-top:var(--space-lg);text-align:center}.pick-grid{margin:var(--space-lg) 0 0;gap:var(--space-md);grid-template-columns:repeat(3,1fr);padding:0;list-style:none;display:grid}.pick-key{width:100%;min-height:4.5rem;font-size:1.3rem;font-weight:700}main.done{max-width:30rem;padding-top:var(--space-xl);text-align:center}.done-mark{color:var(--ok);margin:0;font-size:4rem;line-height:1}.done h1{margin:var(--space-sm) 0;font-size:2rem}.jishu-count{align-items:center;gap:var(--space-sm);display:flex}.jishu-tables{border:1px solid var(--rule);padding:var(--space-sm) var(--space-md);border-radius:8px;width:100%;margin:0}.jishu-tables ul{gap:var(--space-sm) var(--space-md);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.jishu-tables label{align-items:center;gap:var(--space-sm);min-height:var(--tap-min);cursor:pointer;display:flex}.jishu-tables input{width:20px;height:20px;margin:0}main.check{max-width:none;height:100dvh;max-height:100dvh;padding:var(--space-sm);gap:var(--space-sm);flex-direction:column;display:flex;overflow:hidden}.check-bar{gap:var(--space-md);flex:none;display:flex}.check-confirm{background:var(--card);border:1px solid var(--alert);padding:var(--space-md);border-radius:12px;flex:none}.check-confirm p{margin:0 0 var(--space-md);line-height:1.7}.check-notice{margin:0;font-size:1.2rem}.check-grid{gap:var(--space-xs);flex:1 1 0;grid-template-columns:repeat(7,1fr);grid-auto-rows:1fr;min-height:0;margin:0;padding:0;list-style:none;display:grid}.check-cell{border:1px solid var(--rule);background:var(--card);border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:.1em;min-width:0;min-height:0;display:flex;overflow:hidden}.check-cell.done{background:var(--okSoft);border-color:var(--ok);border-width:3px}.check-no{font-variant-numeric:tabular-nums;color:var(--muted);font-size:clamp(.7rem,1.3dvh,1.1rem);line-height:1}.check-name{text-align:center;overflow-wrap:anywhere;font-size:clamp(.9rem,2.4dvh,2.2rem);font-weight:700;line-height:1.2}.progress,.wrong{margin-bottom:var(--space-lg)}.progress-head{justify-content:space-between;align-items:center;gap:var(--space-md);flex-wrap:wrap;display:flex}.roster-table td:last-child{word-break:break-all;font-size:.95rem}.progress-table,.wrong-table{border-collapse:collapse;background:var(--card);width:100%}.progress-table th,.progress-table td,.wrong-table th,.wrong-table td{border:1px solid var(--rule);padding:var(--space-sm);text-align:left;font-size:1.05rem}.student-open{min-height:0;font:inherit;color:var(--stroke);cursor:pointer;background:0 0;border:none;margin:0;padding:0;font-weight:700;text-decoration:underline}.progress-table tr.open th{background:var(--ground)}.history-list{margin:var(--space-sm) 0 0;padding-left:1.4em;line-height:1.9}.history h3{margin:0;font-size:1rem}.wrong-character{text-align:center;font-size:1.6rem}:root{--danger-ink:#1b1b1b;--danger-base:#f2c200;--danger-soft:#fdf3c8}.home-penalty{width:100%;min-height:5rem;margin-bottom:var(--space-md);color:var(--danger-ink);background:var(--danger-base);border:3px solid var(--danger-ink);font-size:1.5rem;font-weight:700}.penalty-names{gap:var(--space-sm);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.penalty-name{align-items:center;gap:var(--space-xs);min-height:var(--tap-min);padding:0 var(--space-sm);border:1px solid var(--rule);background:var(--card);border-radius:8px;display:flex}.penalty-name.danger{color:var(--danger-ink);background:var(--danger-soft);border:2px solid var(--danger-ink)}.penalty-row{gap:var(--space-md);flex-wrap:wrap;display:flex}.penalty-row input{width:6rem}.penalty-list{margin:var(--space-sm) 0 0;padding:0;list-style:none}.penalty-item{align-items:center;gap:var(--space-md);min-height:var(--tap-min);padding:var(--space-sm);margin-bottom:var(--space-sm);border:1px solid var(--rule);background:var(--card);border-radius:8px;flex-wrap:wrap;display:flex}.penalty-item.danger{color:var(--danger-ink);background:var(--danger-soft);border:3px solid var(--danger-ink)}.penalty-who{font-weight:700}.penalty-progress{font-variant-numeric:tabular-nums}.check-cell.danger{border-style:solid;border-width:6px;border-image:repeating-linear-gradient(45deg, var(--danger-base) 0 8px, var(--danger-ink) 8px 16px) 6}.fold-head{margin:0}.fold-toggle{align-items:center;gap:var(--space-sm);width:100%;min-height:var(--tap-min);text-align:left;font:inherit;color:inherit;cursor:pointer;background:0 0;border:none;padding:0;font-size:1.25rem;font-weight:700;display:flex}.fold-mark{width:1em;color:var(--muted)}.fold-now{margin:0 0 var(--space-sm);color:var(--muted)}main.teacher .progress{overflow-x:auto;container-type:inline-size}.progress-table th,.progress-table td{white-space:nowrap;padding:.4em .5em;font-size:clamp(.65rem,1.87cqw,1.05rem)}.progress-table td.email{font-size:clamp(.6rem,1.7cqw,.95rem)}.progress-table .cell-hug{width:1%}.check-stale{margin:0 0 var(--space-sm);padding:var(--space-sm);text-align:center;color:var(--danger-ink);background:var(--danger-base);border-radius:8px;font-size:clamp(1rem,2.4dvh,1.6rem);font-weight:700}.judge-review .review-order{gap:var(--space-sm);margin-bottom:var(--space-md);display:flex}.judge-review .review-list{margin:0;padding:0;list-style:none}.judge-review .review-item{padding:var(--space-sm);margin-bottom:var(--space-md);border:1px solid var(--rule);background:var(--card);border-radius:8px}.judge-review .review-item.marked-wrong{border-color:var(--alert);border-width:3px}.judge-review .review-item.marked-correct{border-color:var(--ok);border-width:3px}.judge-review .review-pair{gap:var(--space-md);flex-wrap:wrap;align-items:flex-start;display:flex}.judge-review .stroke-preview svg{width:calc(var(--pad-px,220px) / 2);height:calc(var(--pad-px,220px) / 2)}.judge-review .review-facts{align-items:center;gap:var(--space-md);margin:var(--space-sm) 0;flex-wrap:wrap;display:flex}.judge-review .review-char{font-size:1.6rem}.judge-review .mark-correct{color:var(--ok);font-size:1.4rem}.judge-review .mark-wrong{color:var(--alert);font-size:1.4rem}.judge-review .review-practice,.judge-review .review-margin,.judge-review .review-worst{color:var(--muted);font-size:.9rem}.judge-review .review-buttons{gap:var(--space-sm);margin:0;display:flex}.judge-review .review-reasons{align-items:center;gap:var(--space-xs,.35rem);margin:var(--space-sm) 0 0;flex-wrap:wrap;display:flex}.judge-review .review-reasons-head{color:var(--muted);font-size:.85rem}.judge-review .review-reasons button{padding:.35rem .7rem;font-size:.85rem}.judge-review .review-more{min-height:var(--tap-min)}.judge-review .review-filter{align-items:center;gap:var(--space-sm);min-height:var(--tap-min);margin:0 0 var(--space-md);flex-wrap:wrap;display:flex}.judge-review .review-hidden{color:var(--muted);font-size:.9rem}
