:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--bg:#fbfaf7;--surface:#fff;--text:#22211e;--muted:#6b6860;--border:#d9d5cb;--accent:#1f5f8b;--accent-text:#fff;--added-bg:#d6f0dc;--added-text:#14532d;--removed-bg:#fbdcdc;--removed-text:#7f1d1d;--danger:#b42318;--page-mark:#d6336c;--locked-bg:#e4e2dc;--marker-text:#22211e}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#1b1a18;--surface:#262522;--text:#ece9e2;--muted:#a5a197;--border:#45423b;--accent:#7db8e0;--accent-text:#10222f;--added-bg:#17402a;--added-text:#bff0cf;--removed-bg:#4d1f1f;--removed-text:#fbd0d0;--danger:#f28b82;--page-mark:#f783ac;--locked-bg:#45423b}}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0;font-family:Noto Sans JP,Yu Gothic UI,Hiragino Sans,sans-serif;line-height:1.7}a{color:var(--accent)}h1{font-size:1.5rem}h2{font-size:1.15rem}h3{font-size:1rem}summary{cursor:pointer}mark{color:var(--marker-text)}button,.button{border:1px solid var(--border);background:var(--surface);color:var(--text);font:inherit;cursor:pointer;border-radius:6px;padding:6px 14px;text-decoration:none;display:inline-block}button:disabled{opacity:.5;cursor:default}input,select,textarea{border:1px solid var(--border);background:var(--surface);width:100%;color:var(--text);font:inherit;border-radius:6px;padding:8px}fieldset{border:1px solid var(--border);border-radius:6px;gap:8px;display:grid}fieldset>button{justify-self:start}[role=alert]{color:var(--danger)}[aria-invalid=true]{border-color:var(--danger);box-shadow:0 0 0 1px var(--danger)}.primary{border-color:var(--accent);background:var(--accent);color:var(--accent-text)}.quiet{color:var(--muted);background:0 0;border-color:#0000;padding:2px 8px;font-size:.85rem}.danger{border-color:var(--danger);color:var(--danger);margin-left:auto}.meta,.legend{color:var(--muted);font-size:.85rem}.field-error{color:var(--danger)}.actions{flex-wrap:wrap;align-items:center;gap:16px;display:flex}.rows{margin:0;padding:0;list-style:none}.rows li{border-bottom:1px solid var(--border);justify-content:space-between;gap:12px;padding:6px 0;display:flex;position:relative}.rows .sort-handle+a,.rows .select-box+a{margin-right:auto}.rows li{flex-wrap:wrap}.folder-heading,.folder-row{flex-wrap:wrap;align-items:center;gap:4px 10px;display:flex}.folder-row{flex:1;min-width:0}.folder-toggle{color:inherit;font:inherit;text-align:left;background:0 0;border:0;align-items:center;gap:6px;padding:0;font-weight:700;display:inline-flex}.folder-row .folder-toggle{margin-right:auto}.folder-toggle:before,.scope-expand:before{content:"";border-top:5px solid #0000;border-bottom:5px solid #0000;border-left:7px solid var(--muted);width:0;height:0;transition:transform .12s ease-out;display:inline-block}.folder-toggle[aria-expanded=true]:before,.scope-expand[aria-expanded=true]:before{transform:rotate(90deg)}.folder-contents{flex-basis:100%;padding-left:22px}.folder-contents>.meta{margin:4px 0}.folder-name-form{flex:1;margin:0}.folder-contents>.folder-name-form{margin:6px 0}.row-menu{flex:none;position:relative}.row-menu>summary{color:var(--muted);border-radius:4px;padding:0 8px;list-style:none}.row-menu>summary::-webkit-details-marker{display:none}.row-menu[open]>summary{background:var(--border)}.row-menu-items{z-index:3;border:1px solid var(--border);background:var(--surface);border-radius:6px;min-width:11em;padding:4px;display:grid;position:absolute;top:100%;right:0;box-shadow:0 4px 14px #0000001f}.row-menu-items>button,.row-menu-items>a{color:var(--text);font:inherit;text-align:left;background:0 0;border:0;padding:4px 8px;font-size:.9rem;text-decoration:none}.row-menu-items>:hover{background:var(--bg)}.row-menu-items .danger-text{color:var(--danger)}.move-select{align-items:center;gap:4px;display:flex}.move-select select{width:auto;padding:2px 4px}.tree-tools{margin:8px 0 0}.tree-tools [aria-pressed=true]{border-color:var(--accent);color:var(--accent)}.select-box{flex:none;width:auto;margin:0}.bulk-bar{z-index:4;border:1px solid var(--border);background:var(--surface);border-radius:6px 6px 0 0;flex-wrap:wrap;align-items:center;gap:8px 12px;margin-top:16px;padding:10px 12px;display:flex;position:sticky;bottom:0;box-shadow:0 -4px 14px #0000001a}.bulk-bar select{width:auto;max-width:100%}.bulk-bar .danger{margin-left:0}.scope-picker{flex:1;min-width:0}.scope-picker>summary{font-size:.9rem}.scope-tree,.scope-tree ul{margin:4px 0;padding-left:20px;list-style:none}.scope-tree{padding-left:0}.scope-row{align-items:center;gap:4px;display:flex}.scope-row label{align-items:center;gap:6px;display:flex}.scope-row input{width:auto}.scope-expand{background:0 0;border:0;place-items:center;width:22px;height:22px;padding:0;display:inline-grid}span.scope-expand:before{display:none}.sort-handle{color:var(--muted);cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;background:0 0;border:0;flex:none;padding:0 6px}.rows.is-sorting li{transition:transform .18s ease-out}.rows.is-sorting li.is-dragging{z-index:1;background:var(--surface);border-radius:6px;transition:none;box-shadow:0 4px 14px #00000038}@media (prefers-reduced-motion:reduce){.rows.is-sorting li{transition:none}}.fold{margin-top:8px}.fold>summary{color:var(--muted);font-size:.85rem}.inline{gap:8px;margin-top:8px;display:flex}.inline button{flex:none}.draft-badge{border:1px solid var(--border);color:var(--muted);border-radius:4px;flex:none;padding:0 8px;font-size:.8rem;font-weight:400}.toast{color:#fff;background:#f28c1e;border-radius:4px;max-width:calc(100vw - 32px);padding:10px 20px;position:fixed;bottom:16px;left:50%;transform:translate(-50%)}.switch,.editor .switch{cursor:pointer;align-items:center;gap:8px;display:flex;position:relative}.switch input{opacity:0;cursor:pointer;width:100%;height:100%;margin:0;position:absolute}.switch-track{background:var(--border);border-radius:10px;flex:none;width:36px;height:20px;transition:background .15s;position:relative}.switch-track:after{content:"";background:#fff;border-radius:50%;width:16px;height:16px;transition:transform .15s;position:absolute;top:2px;left:2px}.switch input:checked+.switch-track{background:var(--accent)}.switch input:checked+.switch-track:after{transform:translate(16px)}.switch input:focus-visible+.switch-track{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion:reduce){.switch-track,.switch-track:after{transition:none}}.leave-dialog{border:1px solid var(--border);background:var(--surface);max-width:min(480px,100vw - 32px);color:var(--text);border-radius:8px;padding:16px 20px}.leave-dialog::backdrop{background:#0006}.leave-dialog .danger,.account .danger{margin-left:0}.account .legal-links{margin-top:24px}.header{border-bottom:1px solid var(--border);background:var(--surface);align-items:center;gap:16px;padding:10px 16px;display:flex}.drill-select{cursor:pointer;background:0 0;border-color:#0000;width:auto;padding:2px 4px;font-weight:700}.drill-select:hover,.drill-select:focus-visible{border-color:var(--border)}.header nav{white-space:nowrap;flex:1;gap:12px;display:flex}.header nav a{color:var(--muted);text-decoration:none}.header nav a:last-child{margin-left:auto}.header nav a.active{color:var(--text);font-weight:700}.logout{color:var(--muted);white-space:nowrap;font-size:.85rem;text-decoration:none}.page{max-width:720px;margin:0 auto;padding:16px}.returning #root>.landing{visibility:hidden}.landing{max-width:880px;margin:0 auto;padding:32px 16px 48px}.landing h2{margin-top:48px;font-size:1.3rem}.landing h3{margin:0 0 4px}.landing p{margin:0}.hero{text-align:center;padding:24px 0}.hero .brand{color:var(--accent);font-weight:700}.hero h1{margin:8px 0 16px;font-size:clamp(1.6rem,5vw,2.3rem);line-height:1.35}.hero .lead{max-width:620px;margin:0 auto}.cta{margin:24px 0 8px}.cta button{padding:10px 24px;font-size:1.05rem;font-weight:700}.shot{margin:24px 0 0}.shot img{border:1px solid var(--border);border-radius:8px;width:100%;height:auto;display:block}.features,.steps{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;margin:16px 0 0;padding:0;list-style:none;display:grid}.features li,.steps li{border:1px solid var(--border);background:var(--surface);border-radius:8px;padding:16px}.steps{counter-reset:step}.steps h3:before{color:var(--accent);content:counter(step) ".";counter-increment:step;margin-right:8px}.notes{margin:16px 0 0;padding-left:20px}.legal-links{flex-wrap:wrap;gap:16px;font-size:.85rem;display:flex}.landing .legal-links{margin-top:48px}.legal{max-width:720px;margin:0 auto;padding:32px 16px 48px}.legal h2{margin-top:32px;font-size:1.1rem}.editor{gap:16px;display:grid}.editor label{gap:4px;display:grid}.editor h1{margin:0}.scenario-row{align-items:flex-start;gap:8px;display:flex}.prompt-row{grid-template-columns:auto 1fr auto;align-items:center;gap:4px 8px;display:grid}.prompt-row select{width:auto}.prompt-row textarea{grid-column:1/-1}.cloze-editor{grid-column:1/-1;gap:6px;display:grid}.cloze-tools{flex-wrap:wrap;gap:6px;display:flex}.cloze-tools button{align-items:center;gap:6px;padding:2px 10px;display:flex}.cloze-tools button[aria-pressed=true]{border-color:var(--text);box-shadow:0 0 0 1px var(--text)}.blank-swatch{border-radius:2px;width:12px;height:12px;display:inline-block}.blank-mark-boxes{background:#4696e659}.blank-mark-hidden{background:#e6821e66}.blank-mark-choice{background:#3caa5a59}.choice-fields{flex-wrap:wrap;align-items:center;gap:6px 8px;font-size:.9rem;display:flex}.choice-input{align-items:center;display:inline-flex}.choice-input input{width:12em;padding:2px 6px}.blank-choices:before{content:"（"}.blank-choices:after{content:"）"}.blank-choice{border:1px solid var(--muted);background:var(--surface);border-radius:4px;margin:0 3px;padding:0 8px;line-height:1.5;display:inline-block;position:relative}label.blank-choice{cursor:pointer}.blank-choice input{opacity:0;width:1px;height:1px;position:absolute}.blank-choice:has(input:checked){border-color:var(--accent);background:var(--accent);color:var(--accent-text)}.blank-choice:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:2px}.cloze-field{border:1px solid var(--border);background:var(--surface);border-radius:6px;position:relative}.cloze-field:focus-within{outline:2px solid var(--accent);outline-offset:-1px}.cloze-layer{font:inherit;letter-spacing:normal;white-space:pre-wrap;overflow-wrap:anywhere;margin:0;padding:8px;line-height:1.7}.cloze-marks{color:#0000;pointer-events:none;min-height:calc(5.1em + 16px)}.cloze-marks mark{color:#0000;pointer-events:auto}.cloze-input{resize:none;background:0 0;border:0;border-radius:6px;outline:none;height:100%;position:absolute;inset:0;overflow:hidden}.blank-menu{z-index:2;border:1px solid var(--border);background:var(--surface);border-radius:6px;gap:2px;width:150px;padding:4px;display:grid;position:absolute}.blank-menu button{text-align:left;background:0 0;border-color:#0000}.cloze-preview{border-left:4px solid var(--border);background:var(--surface);padding:4px 12px}.cloze-preview .cloze-text{margin:4px 0}.cloze-text{--cell:1.25em}.blank{--frame:var(--muted);--frame-width:1px;height:var(--cell);font:inherit;font-feature-settings:"palt" 0;font-kerning:none;font-family:Yu Gothic,YuGothic,Hiragino Sans,Noto Sans JP,sans-serif;font-size:1.1em;line-height:var(--cell);vertical-align:baseline;border:0;border-radius:0;outline:none;margin:0 2px;padding:0;display:inline-block}.blank-boxes{--box:calc(var(--cells) * var(--cell));--inset:calc((var(--cell) - 1em) / 2);width:calc(var(--width) * var(--cell) + var(--inset));margin-right:calc(2px - var(--inset));padding-left:var(--inset);letter-spacing:calc(var(--cell) - 1em);background:linear-gradient(var(--frame), var(--frame)) 0 0 / var(--box) var(--frame-width) no-repeat, linear-gradient(var(--frame), var(--frame)) 0 100% / var(--box) var(--frame-width) no-repeat, linear-gradient(var(--frame), var(--frame)) 0 0 / var(--frame-width) 100% no-repeat, linear-gradient(var(--frame), var(--frame)) calc(var(--box) - var(--frame-width)) 0 / var(--frame-width) 100% no-repeat, repeating-linear-gradient(to right, transparent 0 calc(var(--cell) - 1px), var(--border) calc(var(--cell) - 1px) var(--cell)) 0 0 / var(--box) 100% no-repeat, linear-gradient(var(--surface), var(--surface)) 0 0 / var(--box) 100% no-repeat}.blank-boxes:focus{--frame:var(--accent);--frame-width:2px}.blank-hidden{width:calc(var(--width) * 1em);border:1px dashed var(--frame);background:var(--locked-bg);line-height:calc(var(--cell) - 2px);border-radius:4px;padding:0 .5em}.blank-hidden:focus{--frame:var(--accent);box-shadow:0 0 0 1px var(--accent);border-style:solid}.blank-result{margin:0 2px}.blank-correct{border-bottom:2px solid var(--added-text)}.keyword-marker{gap:4px;display:grid}.keyword-marker .meta{margin:0}.subject-form{margin-top:24px}.export{padding-left:0}.exam-date{align-items:center;gap:8px;display:flex}.exam-date button{flex:none}.stats{margin:0}.stats div{border-bottom:1px solid var(--border);justify-content:space-between;gap:12px;padding:6px 0;display:flex}.stats dd{margin:0}.answers{margin-top:32px}.answer-summary{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.problem-meta{align-self:center;margin-left:auto}.new-answer{flex:none;padding:2px 10px;font-size:.85rem}.picker-list{border:1px solid var(--border);border-radius:6px;max-height:240px;overflow-y:auto}.editor .picker-list label{cursor:pointer;align-items:center;gap:8px;padding:4px 8px;display:flex}.picker-list input{flex:none;width:auto}.picker-list small{flex:none;margin-left:auto}.picker-list p{margin:8px}.answer-field{gap:4px;display:grid}.answer-field p{margin:4px 0}.answer-heading{justify-content:space-between;align-items:center;gap:12px;display:flex}.answer-heading h3{margin:8px 0}.conversion{border:1px solid var(--danger);color:var(--text);border-radius:6px;padding:8px 12px}.conversion-preview{max-height:240px;overflow-y:auto}.marked-text{border:1px solid var(--border);background:var(--surface);white-space:pre-wrap;overflow-wrap:anywhere;border-radius:6px;margin:0;padding:12px}.marked-text mark{cursor:pointer}.marked-text mark:hover{outline:1px solid #8a8a8a}.marked-text mark.is-selected{outline:2px solid var(--accent)}.mark-orange{background:#ffd8a8}.mark-yellow{background:#fff3a3}.mark-green{background:#b5f06e}.mark-blue{background:#bfe0ff}.mark-red{background:#ffc2cc}.problem-layout{align-items:flex-start;gap:8px;display:flex}.problem-texts{flex:1;grid-template-columns:minmax(0,1fr);gap:16px;min-width:0;display:grid}.marker-tools{flex-direction:column;flex:none;align-items:center;gap:8px;display:flex;position:sticky;top:8px}.marker-swatch,.marker-pointer{border:2px solid var(--border);border-radius:50%;place-items:center;width:28px;height:28px;padding:0;display:grid}.marker-pointer{border-radius:6px}.marker-swatch[aria-pressed=true],.marker-pointer[aria-pressed=true]{border-color:var(--text);box-shadow:0 0 0 1px var(--text)}.problem-body{margin-top:8px;position:relative}.marker-menu{z-index:1;width:96px;position:absolute}.marker-menu-bar{border:1px solid var(--border);background:var(--surface);border-radius:6px;justify-content:space-between;align-items:center;padding:2px;display:flex}.marker-menu-bar button{background:0 0;border-color:#0000;align-items:center;gap:4px;padding:3px 6px;line-height:1;display:flex}.marker-menu-colors{border:1px solid var(--border);background:var(--surface);border-radius:6px;justify-items:center;gap:6px;width:44px;margin-top:4px;padding:8px 0;display:grid}.marker-menu-colors [aria-pressed=true]{outline:2px solid var(--accent);outline-offset:2px}.marker-dot{border:1px solid var(--border);border-radius:50%;width:20px;height:20px;padding:0;display:block}.sheet-count{color:var(--muted);text-align:right;margin:16px 0 4px;font-size:.85rem}.sheet{--gutter:3.2em;--cell:min(18px, calc((100vw - 56px) / 33.5));--line:round(calc(var(--cell) * 2), 1px);--page:calc(var(--line) * 23);border:1px solid var(--border);background:var(--surface);max-height:60vh;font-size:var(--cell);justify-content:center;display:flex;overflow-y:auto}.sheet-gutter{width:var(--gutter);color:var(--page-mark);text-align:right;flex:none;font-size:.5em}.sheet-gutter div{height:var(--line);line-height:var(--line);padding-right:.8em;position:relative}.sheet-gutter span{position:absolute;left:.8em}.sheet-field{flex:none;width:calc(30em + 1px);position:relative}.sheet-text{font-kerning:none;font-feature-settings:"palt" 0;font-family:Yu Mincho,Hiragino Mincho ProN,Noto Serif JP,serif;font-size:1em;line-height:var(--line);line-break:anywhere;overflow-wrap:anywhere;text-spacing-trim:space-all}.sheet-locked,.sheet-marks{color:#0000;white-space:pre-wrap;pointer-events:none;position:absolute;inset:0}.sheet-marks mark{color:#0000;pointer-events:auto}.comment-pin{width:0;height:0;color:var(--accent);vertical-align:baseline;background:0 0;border:0;padding:0;display:inline-block;position:relative;overflow:visible}.comment-pin svg{cursor:pointer;pointer-events:auto;width:max(16px,1em);height:max(16px,1em);position:absolute;bottom:.6em;left:-8px}.marker-comment svg{width:16px;height:16px}.comment-popover{z-index:2;border:1px solid var(--border);background:var(--surface);border-radius:6px;gap:8px;width:240px;padding:8px;font-family:inherit;display:grid;position:absolute}.comment-popover .actions{justify-content:space-between;gap:8px;margin:0;display:flex}.sheet-locked span{background:var(--locked-bg)}.sheet-input{resize:none;outline:none;min-height:0;display:block;position:relative;overflow:hidden}.sheet-page{width:100%;height:calc(var(--line) * var(--rows));background-color:#0000;background-image:linear-gradient(to bottom, transparent calc(var(--page) - 2px), var(--muted) calc(var(--page) - 2px)), linear-gradient(to bottom, transparent calc(var(--line) - 1px), var(--border) calc(var(--line) - 1px));background-size:100% var(--page), 100% var(--line);border:0;border-radius:0;padding:0}.problem-body .sheet{--cell:min(18px, calc((100vw - 92px) / 33.5))}.submit{margin-top:12px}.review-bar{align-items:flex-start;gap:12px;margin-bottom:16px;display:flex}.review-bar select{width:auto;max-width:60%}.scenario{border-left:4px solid var(--accent);background:var(--surface);white-space:pre-wrap;padding:4px 16px}.diff,.body-text{white-space:pre-wrap;overflow-wrap:anywhere}.diff-added{background:var(--added-bg);color:var(--added-text);font-weight:700}.diff-removed{background:var(--removed-bg);color:var(--removed-text);text-decoration:line-through}.note{gap:4px;margin-top:16px;display:grid}.grades{grid-template-columns:repeat(4,1fr);gap:8px;margin-top:16px;display:grid}.grades .suggested{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.grades small{color:var(--muted);display:block}.grade-criteria{color:var(--muted);margin:8px 0 0;font-size:.85rem}.grade-criteria div{gap:12px;display:flex}.grade-criteria dt{flex:none;width:6em}.grade-criteria dd{margin:0}.practice{border:1px solid var(--accent);background:var(--surface);border-radius:6px;margin:12px 0;padding:8px 16px 16px}.practice h4{margin:8px 0 0;font-size:.85rem}.practice p{margin:4px 0 12px}.practice .sheet{max-height:320px}.practice .actions{margin-top:12px}.heat{border:1px solid var(--border);background:var(--surface);white-space:pre-wrap;overflow-wrap:anywhere;border-radius:6px;padding:12px}.heat-1{background:#dc26261f}.heat-2{background:#dc262640}.heat-3{background:#dc262666}.heat-4{background:#dc262699}.history details{border-bottom:1px solid var(--border);padding:6px 0}@media (width<=520px){.grades{grid-template-columns:repeat(2,1fr)}.header{gap:8px;padding:10px 8px}.header nav{gap:8px}.drill-select{padding:2px 0}}.diagram-source{font-family:ui-monospace,Cascadia Mono,Consolas,BIZ UDGothic,monospace}.diagram-editor{grid-column:1/-1;gap:6px;display:grid}.diagram-editor .meta{margin:0}.diagram-preview{gap:6px;display:grid}.diagram{border:1px solid var(--border);color:#333;white-space:normal;border-radius:4px;width:100%;line-height:0;position:relative;overflow:hidden;container-type:inline-size}.diagram svg{width:100%;height:auto;display:block}.diagram-label{font-family:Hiragino Sans,Yu Gothic,Noto Sans JP,sans-serif;font-size:var(--label-size);text-align:center;white-space:pre;line-height:1.4;position:absolute;transform:translate(-50%,-50%)}.diagram-preview .diagram-label{outline-offset:1px;cursor:text;-webkit-user-select:none;user-select:none;touch-action:none;outline:1px dashed #4696e6cc}.diagram-mark{color:inherit;cursor:pointer;background:#4696e659}.diagram-blank{color:#22211e;font:inherit;text-align:center;vertical-align:baseline;background:#f4f2ec;border:1px dashed #6b6860;border-radius:4px;margin:0 1px;padding:0 4px;line-height:1.4}.diagram-blank:focus{background:#fff;border:1px solid #1f5f8b;outline:1px solid #1f5f8b}.diagram-answer{color:inherit;border-radius:3px;padding:0 2px}.diagram-answer.blank-correct{background:#d6f0dc;border-bottom:0}.diagram-answer.blank-wrong{background:#fbdcdc}.diagram-answer sup{margin-left:1px;font-size:.65em}.diagram-results{gap:2px;margin:8px 0;display:grid}.markdown{margin:.75em 0}.markdown-text{white-space:pre-wrap;overflow-wrap:anywhere}.markdown-text+.markdown-table,.markdown-table+.markdown-text{margin-top:.5em}.markdown-table{max-width:100%;overflow-x:auto}.markdown-table table{border-collapse:collapse;white-space:normal}.markdown-table th,.markdown-table td{border:1px solid var(--border);text-align:left;vertical-align:middle;padding:4px 10px}.markdown-table th{background:var(--locked-bg);font-weight:600}
