:root{--text:#1f2937;--muted:#6b7280;--accent:#b91c1c;--ok:#15803d;--border:#e5e7eb;--bg:#fff;color:var(--text);background:var(--bg);-webkit-text-size-adjust:100%;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.5}*{box-sizing:border-box}body{margin:0}.header{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem 1.5rem;padding:.75rem 1rem;display:flex}.header-title{font-weight:600}.header-user{color:var(--muted);align-items:center;gap:1rem;display:flex}.link-button{color:var(--accent);font:inherit;cursor:pointer;background:0 0;border:none;padding:0}.login{max-width:22rem}.form{flex-direction:column;gap:1rem;display:flex}.field{flex-direction:column;gap:.25rem;display:flex}.field input{border:1px solid var(--border);font:inherit;border-radius:.375rem;padding:.6rem .75rem}.form button[type=submit]{background:var(--accent);color:#fff;font:inherit;cursor:pointer;border:none;border-radius:.375rem;padding:.6rem .75rem}.form button[type=submit]:disabled{opacity:.6}.form-error{color:var(--accent);margin:0}.main{max-width:60rem;margin:0 auto;padding:1rem}h2{margin-top:2rem}.hint{color:var(--muted)}button.secondary{border:1px solid var(--border);background:var(--bg);color:var(--text);font:inherit;cursor:pointer;border-radius:.375rem;padding:.4rem .75rem}.inline-form{flex-wrap:wrap;align-items:flex-start;gap:.75rem;display:flex}.inline-form button[type=submit],.dialog-buttons button:not(.secondary){background:var(--accent);color:#fff;font:inherit;cursor:pointer;border:none;border-radius:.375rem;padding:.6rem .75rem}.inline-form button[type=submit]{margin-top:1.6rem}.students{padding:0;list-style:none}.student{border-bottom:1px solid var(--border);align-items:center;gap:1rem;padding:.5rem 0;display:flex}.student-login{flex:1;font-weight:500}.status-invited{color:var(--muted)}.dialog-backdrop{background:#0006;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.dialog{background:var(--bg);border-radius:.5rem;width:100%;max-width:32rem;padding:1.5rem}.dialog h2{margin-top:0}.invite-link{border:1px solid var(--border);width:100%;font:inherit;border-radius:.375rem;padding:.6rem .75rem;font-family:ui-monospace,monospace}.dialog-buttons{gap:.75rem;margin-top:1rem;display:flex}.back-link{color:var(--muted)}.lesson h1{overflow-wrap:anywhere;margin:.5rem 0 1rem}.lesson-blocks{flex-direction:column;gap:1.5rem;display:flex}.lesson-block{overflow-wrap:break-word;min-width:0;scroll-margin-top:.75rem}.block-header{color:var(--muted);align-items:center;gap:.5rem;margin-bottom:.25rem;font-size:.875rem;display:flex}.block-number{border:1px solid var(--border);text-align:center;border-radius:999px;min-width:1.5rem;padding:0 .4rem}.block-kind{font-weight:500}.rich-text{white-space:pre-wrap}.rich-text>:first-child{margin-top:0}.rich-text li>p{margin:0 0 .25rem}.rich-text a{color:var(--accent)}.table-scroll{max-width:100%;margin:1rem 0;overflow-x:auto}.rich-text table{border-collapse:collapse}.rich-text th,.rich-text td{border:1px solid var(--border);text-align:left;vertical-align:top;padding:.4rem .6rem}.rich-text th{background:#f9fafb}.rich-text td>p,.rich-text th>p,.lesson-image{margin:0}.lesson-image img,.image-fields img{max-width:100%;height:auto;display:block}.lesson-image figcaption{color:var(--muted);margin-top:.4rem;font-size:.9rem}.image-fields{max-width:100%;display:inline-block;position:relative}.image-field{border:2px solid var(--accent);background:#fff9;border-radius:.25rem;position:absolute}.gap-fill{white-space:pre-wrap;line-height:2}.gap{white-space:nowrap}.gap-input{border:none;border-bottom:2px solid var(--muted);width:7.5em;max-width:60vw;color:inherit;font:inherit;background:0 0;border-radius:0;margin:0 .25rem;padding:.1rem .35rem;font-size:max(1rem,16px)}.gap-input:focus{border-bottom-color:var(--text);outline:none}.gap-input.correct{border-bottom-color:var(--ok)}.gap-input.incorrect{border-bottom-color:var(--accent)}.field-mark{margin-right:.25rem;font-weight:700}.field-mark.correct,.answer-result.correct{color:var(--ok)}.field-mark.incorrect,.answer-result.incorrect{color:var(--accent)}.exercise-question{margin-bottom:.25rem;padding:0;font-weight:500}.choice{border:none;margin:0;padding:0}.choice-option{cursor:pointer;align-items:center;gap:.75rem;min-height:2.75rem;padding:.25rem 0;display:flex}.choice-option input{flex:none;width:1.25rem;height:1.25rem;margin:0}.answer-feedback p{margin:.5rem 0 0}.answer-result{font-weight:500}.answer-status{font-size:.9rem}.matching{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.matching ol{margin:0;padding-left:1.5rem}.matching li{padding:.25rem 0}.lesson-nav{padding:.5rem 1rem calc(.5rem + env(safe-area-inset-bottom));border-top:1px solid var(--border);background:var(--bg);align-items:center;gap:.5rem;margin:1.5rem -1rem -1rem;display:flex;position:sticky;bottom:0}.lesson-nav button{min-width:2.75rem;min-height:2.75rem;font-size:1.25rem;line-height:1}.lesson-nav button:disabled{opacity:.4;cursor:default}.lesson-nav select{border:1px solid var(--border);background:var(--bg);min-width:0;min-height:2.75rem;color:var(--text);font:inherit;border-radius:.375rem;flex:1;padding:0 .5rem}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}button.danger{background:var(--accent);color:#fff;font:inherit;cursor:pointer;border:none;border-radius:.375rem;padding:.4rem .75rem}button:disabled{cursor:default}.inline-confirm{border:1px solid var(--accent);border-radius:.375rem;flex-wrap:wrap;align-items:center;gap:.5rem;margin:.5rem 0;padding:.5rem .75rem;display:flex}.lesson-list{padding:0;list-style:none}.lesson-list-item{border-bottom:1px solid var(--border);padding:.5rem 0}.lesson-list-row{flex-wrap:wrap;align-items:center;gap:.25rem 1rem;display:flex}.lesson-list-title{min-width:10rem;color:var(--text);overflow-wrap:anywhere;flex:1;font-weight:500}.lesson-list-date{font-size:.875rem}.editor-heading{color:var(--muted);margin:.5rem 0;font-size:1rem;font-weight:500}.editor-top{flex-wrap:wrap;align-items:flex-end;gap:.5rem 1rem;display:flex}.editor-title{flex:1;min-width:min(100%,16rem)}.editor-title input{font-size:1.25rem;font-weight:600}.save-indicator{flex-wrap:wrap;align-items:center;gap:.5rem;min-height:2.75rem;display:inline-flex}.save-status{font-size:.875rem}.save-saved,.save-saving{color:var(--muted)}.save-error,.save-invalid,.save-conflict,.save-deleted{color:var(--accent);font-weight:500}.lesson-problems ul,.block-problems{margin:.25rem 0;padding-left:1.25rem}.lesson-problems,.notice{border-radius:.375rem;margin:.75rem 0;padding:.5rem .75rem}.lesson-problems{border:1px solid var(--accent)}.lesson-problems p,.notice p{margin:0}.notice{border:1px solid var(--border);background:#f9fafb}.notice .dialog-buttons{flex-wrap:wrap;align-items:center;margin-top:.5rem}.view-switch{gap:.5rem;margin:1rem 0;display:flex}.view-switch button[aria-pressed=true],.tool[aria-pressed=true]{border-color:var(--text);background:var(--text);color:var(--bg)}.editor-blocks{flex-direction:column;gap:1rem;display:flex}.editor-block{border:1px solid var(--border);border-radius:.5rem;min-width:0;padding:.75rem}.editor-block.has-problems{border-color:var(--accent)}.editor-block-header{color:var(--muted);flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:.5rem;font-size:.875rem;display:flex}.editor-block-buttons{gap:.25rem;margin-left:auto;display:flex}.icon-button{min-width:2.5rem;min-height:2.5rem;line-height:1}.icon-button:disabled{opacity:.4}.add-block-bar{flex-wrap:wrap;align-items:center;gap:.5rem;margin:1rem 0;display:flex}.image-picker{flex-wrap:wrap;align-items:center;gap:.5rem;display:inline-flex}.button-label{border:1px solid var(--border);background:var(--bg);cursor:pointer;border-radius:.375rem;padding:.4rem .75rem;display:inline-block}.button-label.busy{opacity:.6;cursor:progress}.image-picker:focus-within .button-label{outline:2px solid var(--text);outline-offset:2px}.image-editor{flex-direction:column;align-items:flex-start;gap:.75rem;display:flex}.image-editor img{max-width:100%;height:auto;max-height:24rem;display:block}.image-editor .field{align-self:stretch}.text-toolbar{flex-wrap:wrap;gap:.25rem;margin-bottom:.25rem;display:flex}.text-toolbar select{border:1px solid var(--border);background:var(--bg);min-height:2.25rem;color:var(--text);font:inherit;border-radius:.375rem;padding:0 .4rem}.tool{border:1px solid var(--border);background:var(--bg);min-width:2.25rem;min-height:2.25rem;color:var(--text);font:inherit;cursor:pointer;border-radius:.375rem;padding:0 .5rem}.tool-bold{font-weight:700}.tool-italic{font-style:italic}.tool-underline{text-decoration:underline}.link-form{border:1px solid var(--border);border-radius:.375rem;flex-direction:column;gap:.5rem;margin:.25rem 0 .5rem;padding:.5rem;display:flex}.link-form-buttons{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.ProseMirror{word-wrap:break-word;white-space:pre-wrap;white-space:break-spaces;font-variant-ligatures:none;font-feature-settings:"liga" 0;position:relative}.ProseMirror [contenteditable=false]{white-space:normal}.ProseMirror [contenteditable=false] [contenteditable=true]{white-space:pre-wrap}img.ProseMirror-separator{border:none!important;width:0!important;height:0!important;margin:0!important;display:inline!important}.ProseMirror-gapcursor{pointer-events:none;margin:0;display:none;position:absolute}.ProseMirror-gapcursor:after{content:"";border-top:1px solid #000;width:20px;animation:1.1s steps(2,start) infinite ProseMirror-cursor-blink;display:block;position:absolute;top:-2px}@keyframes ProseMirror-cursor-blink{to{visibility:hidden}}.ProseMirror-hideselection ::selection{background:0 0}.ProseMirror-hideselection *{caret-color:#0000}.ProseMirror-focused .ProseMirror-gapcursor{display:block}.text-editor-content{border:1px solid var(--border);border-radius:.375rem;min-height:4rem;padding:.5rem .75rem}.text-editor-content:focus{outline:2px solid var(--text);outline-offset:1px}.text-editor-content>:last-child{margin-bottom:0}.text-editor-content .tableWrapper{max-width:100%;margin:1rem 0;overflow-x:auto}.text-editor-content table{border-collapse:collapse}.text-editor-content th,.text-editor-content td{border:1px solid var(--border);text-align:left;vertical-align:top;min-width:4rem;padding:.4rem .6rem;position:relative}.text-editor-content th{background:#f9fafb}.text-editor-content td>p,.text-editor-content th>p{margin:0}.text-editor-content .selectedCell:after{content:"";pointer-events:none;background:#b91c1c1f;position:absolute;inset:0}.lesson-preview{border:1px dashed var(--border);border-radius:.5rem;padding:.75rem}.lesson-access{margin-top:2rem}.access-list{padding:0;list-style:none}.checkbox{align-items:center;gap:.5rem;min-height:2.5rem;display:flex}.checkbox input{width:1.25rem;height:1.25rem}.pdf-range{flex-wrap:wrap;gap:.75rem;margin:.5rem 0;display:flex}.pdf-range input{width:7rem}.pdf-import progress{width:100%;margin:.5rem 0}.exercise-editor{flex-direction:column;gap:.5rem;display:flex}.exercise-editor textarea,.choice-editor-options input:not([type]){border:1px solid var(--border);font:inherit;border-radius:.375rem;padding:.5rem .75rem}.exercise-editor textarea{resize:vertical}.exercise-editor .hint,.gap-list{margin:0}.check-options{border:1px solid var(--border);border-radius:.375rem;margin:0;padding:.25rem .75rem}.choice-editor-options{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.choice-editor-options li{align-items:center;gap:.5rem;display:flex}.choice-editor-options input[type=radio],.choice-editor-options input[type=checkbox]{flex:none;width:1.25rem;height:1.25rem}.choice-editor-options input:not([type]){flex:1;min-width:0}.exercise-editor>button.secondary{align-self:flex-start}
