@font-face{font-family:Kodama;src:url('/fonts/noto-sans.woff2') format('woff2');font-weight:100 900;font-display:swap}
:root{--paper:#f7f5ee;--surface:#fffefa;--neutral:#eeece5;--ink:#272824;--muted:#686960;--red:#9d2028;--red-hover:#7d1720;--red-soft:#f5e7e5;--line:#d8d8cf;--success:#336749;--success-bg:#edf3ec;--warning:#845b1c;--warning-bg:#faf0da;--error:#9d2028;--focus:#1b6558;--radius:12px;--shadow:0 14px 40px rgba(32,30,22,.14);font-family:Kodama,'Noto Sans',YuGothic,'Yu Gothic','Hiragino Kaku Gothic ProN',Meiryo,sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none;font-size:15px}
*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{touch-action:manipulation}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:var(--red);text-underline-offset:4px}a:hover{color:var(--red-hover)}button:disabled{cursor:not-allowed;opacity:.55}::selection{background:#ead0cd;color:var(--ink)}input,textarea{caret-color:var(--red)}:focus-visible{outline:3px solid var(--focus);outline-offset:4px}h1,h2,h3,p{margin:0}h1,h2,h3{text-wrap:balance}h1{font-size:2rem;line-height:1.24;font-weight:720;letter-spacing:-.035em}h2{font-size:1.33rem;line-height:1.35;font-weight:680;letter-spacing:-.02em}h3{font-size:1.05rem;line-height:1.4;font-weight:670}p{line-height:1.7}svg{width:20px;height:20px;flex:none;vertical-align:middle}img{max-width:100%}.muted{color:var(--muted)}.small{font-size:.86rem}.mono{font-variant-numeric:tabular-nums}.japanese{font-family:Kodama,YuGothic,'Yu Gothic','Hiragino Kaku Gothic ProN',Meiryo,sans-serif}.skip-link{position:fixed;left:16px;top:-100px;z-index:100;background:var(--ink);color:white;padding:12px 16px;border-radius:8px}.skip-link:focus{top:12px}.boot{min-height:100dvh;display:grid;align-content:center;justify-items:center;gap:20px}.brand-mark{width:46px;height:46px;background:var(--red);color:#fff9ee;border-radius:10px;display:grid;place-items:center;font-size:2.1rem;font-weight:650;line-height:1}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--ink)}.brand-name{font-size:1rem;font-weight:750;letter-spacing:-.02em}.brand-sub{font-size:.74rem;color:var(--muted);margin-top:3px}.app-shell{display:grid;grid-template-columns:236px minmax(0,1fr);min-height:100dvh}.sidebar{background:var(--neutral);border-right:1px solid var(--line);position:fixed;inset:0 auto 0 0;width:236px;padding:28px 20px;display:flex;flex-direction:column;z-index:20}.sidebar .brand{margin-bottom:38px}.nav{display:flex;flex-direction:column;gap:5px}.nav a{display:flex;align-items:center;gap:12px;padding:11px 13px;color:#53564e;text-decoration:none;border-radius:7px;font-size:.91rem;font-weight:560}.nav a:hover{background:#e4e3db;color:var(--ink)}.nav a.active{background:var(--red);color:#fff9ef;font-weight:650}.nav-divider{height:1px;background:var(--line);margin:19px 0}.sidebar-bottom{margin-top:auto;padding-top:26px}.sidebar-user{display:flex;align-items:center;gap:10px;margin-bottom:15px;min-width:0}.avatar{display:grid;place-items:center;background:#dedfd4;color:#474e3f;border-radius:50%;width:36px;height:36px;font-size:.8rem;font-weight:730;flex:none}.user-label{min-width:0}.user-label strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:.84rem}.logout{border:0;background:none;display:flex;align-items:center;gap:9px;color:var(--muted);padding:8px 0;font-size:.84rem}.logout:hover{color:var(--red)}.workspace{grid-column:2;min-width:0}.topbar{height:77px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:15px;padding:0 44px;background:var(--paper)}.topbar-context{display:flex;align-items:center;gap:13px;color:var(--muted);font-size:.83rem}.topbar-context .crumb{color:var(--ink);font-weight:600}.topbar-right{display:flex;align-items:center;gap:14px}.demo-label{border:1px solid #cebfb5;border-radius:4px;padding:3px 7px;color:#6e574b;font-size:.7rem;font-weight:600}.mobile-menu{display:none}.content{max-width:1440px;padding:38px 44px 60px;margin:auto}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:30px}.page-head p{margin-top:9px;max-width:62ch;color:var(--muted);font-size:.93rem}.page-head .actions{padding-top:2px}.button{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:43px;padding:10px 18px;border:1px solid transparent;background:var(--red);color:#fff9ef;border-radius:7px;font-size:.88rem;line-height:1.35;font-weight:650;text-decoration:none;transition:background .18s ease-out,border-color .18s ease-out}.button:hover{background:var(--red-hover);color:white}.button.secondary{background:var(--surface);border-color:var(--line);color:var(--ink)}.button.secondary:hover{border-color:#8b8d80;background:#f0f0e8}.button.quiet{background:transparent;color:var(--red);padding-inline:0;border:0}.button.quiet:hover{color:var(--red-hover);background:transparent}.button.danger{background:#fffefa;color:var(--red);border-color:#d8b8b6}.button.danger:hover{background:var(--red-soft)}.button.compact{min-height:34px;padding:7px 11px;font-size:.79rem}.icon-button{background:none;border:0;color:var(--muted);display:grid;place-items:center;padding:9px;border-radius:6px;cursor:pointer}.icon-button:hover{background:var(--neutral);color:var(--ink)}.actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:24px}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:19px}.section{margin-top:34px}.section-head{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:16px}.section-head p{margin-top:6px;color:var(--muted);font-size:.86rem}.study-split{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(280px,1fr);gap:30px;align-items:start}.welcome{display:grid;grid-template-columns:minmax(0,1fr) 184px;border-block:1px solid var(--line);padding:32px 0;gap:25px}.welcome h2{font-size:1.75rem;line-height:1.35;max-width:26ch}.welcome p{color:var(--muted);margin:13px 0 20px;max-width:58ch;font-size:.93rem}.kana-study{display:flex;align-items:center;justify-content:center;flex-direction:column;align-self:center;border-left:1px solid var(--line);height:170px}.kana-study .kana{font-size:5.7rem;color:var(--red);font-weight:550;line-height:1.2}.kana-study .reading{font-size:.78rem;letter-spacing:.04em;color:var(--muted);margin-top:6px}.inline-stats{display:flex;gap:32px;margin-top:23px;flex-wrap:wrap}.inline-stat{display:flex;align-items:baseline;gap:8px;font-size:.85rem;color:var(--muted)}.inline-stat strong{color:var(--ink);font-size:1.1rem;font-weight:730}.progress-line{height:6px;background:var(--neutral);border-radius:2px;overflow:hidden;margin-top:14px}.progress-line span{display:block;height:100%;background:var(--red);transition:width .22s ease-out}.lesson-list{border-top:1px solid var(--line)}.lesson-row{display:flex;align-items:center;gap:16px;padding:19px 0;border-bottom:1px solid var(--line);color:var(--ink);text-decoration:none}.lesson-row:hover h3{color:var(--red)}.lesson-number{width:40px;font-size:.91rem;color:var(--muted);font-variant-numeric:tabular-nums;flex:none}.lesson-info{min-width:0;flex:1}.lesson-info p{font-size:.84rem;color:var(--muted);margin-top:5px;line-height:1.55}.lesson-meta{display:flex;gap:9px;align-items:center;margin-top:8px;color:var(--muted);font-size:.75rem}.row-chevron{color:var(--muted)}.badge{display:inline-flex;align-items:center;gap:5px;padding:3px 7px;border-radius:4px;background:var(--neutral);color:#5e6456;font-size:.72rem;font-weight:580;white-space:nowrap}.badge.success{background:var(--success-bg);color:var(--success)}.badge.warning{background:var(--warning-bg);color:var(--warning)}.badge.error{background:var(--red-soft);color:var(--red)}.badge svg{width:13px;height:13px}.category-list{display:flex;flex-direction:column}.category-row{display:grid;grid-template-columns:43px 1fr 26px;align-items:center;gap:13px;padding:14px 0;border-bottom:1px solid var(--line);color:var(--ink);text-decoration:none}.category-row:last-child{border-bottom:0}.category-row:hover .category-label{color:var(--red)}.category-glyph{font-size:1.7rem;color:var(--red);text-align:center;line-height:1.4}.category-label{font-size:.9rem;font-weight:640}.category-detail{font-size:.75rem;color:var(--muted);margin-top:3px}.study-note{background:var(--neutral);padding:18px 20px;border-radius:9px;margin-top:20px}.study-note p{font-size:.83rem;color:var(--muted);margin-top:5px}.toolbar{display:flex;flex-wrap:wrap;gap:13px;align-items:center;justify-content:space-between;margin-bottom:23px}.tabs{display:flex;gap:5px;flex-wrap:wrap}.tab{border:1px solid transparent;background:transparent;color:var(--muted);padding:8px 12px;border-radius:6px;font-size:.82rem;font-weight:590}.tab:hover{background:var(--neutral)}.tab.active{color:var(--red);background:var(--red-soft);border-color:#ddc5c0}.search{display:flex;align-items:center;gap:8px;border:1px solid var(--line);padding:0 12px;background:var(--surface);border-radius:6px;color:var(--muted)}.search input{min-width:130px;max-width:240px;padding:10px 0;border:0;background:transparent;outline:none;font-size:.84rem}.field{display:flex;flex-direction:column;gap:7px;margin-bottom:19px}.field label{font-weight:610;font-size:.85rem}.field input,.field select,.field textarea,select.control{width:100%;border:1px solid #c8cbbf;border-radius:6px;padding:11px 12px;min-height:44px;background:var(--surface);color:var(--ink);outline:none;font-size:.9rem}.field textarea{min-height:110px;resize:vertical;line-height:1.6}.field input:focus,.field select:focus,.field textarea:focus,select.control:focus{border-color:var(--focus);box-shadow:0 0 0 2px #d8e8df}.field input[readonly]{background:var(--neutral);color:var(--muted)}.field .help{font-size:.77rem;color:var(--muted);line-height:1.5}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 22px}.span-all{grid-column:1/-1}.form-section{margin-top:28px;padding-top:26px;border-top:1px solid var(--line)}.form-section h2{margin-bottom:21px}.form-error{background:var(--red-soft);color:var(--red);border-radius:6px;padding:12px 14px;font-size:.84rem;margin-bottom:18px}.form-error:empty{display:none}.form-success{color:var(--success);font-size:.84rem}.checkbox{display:flex;align-items:center;gap:9px;min-height:34px;font-size:.87rem}.checkbox input{width:17px;height:17px;accent-color:var(--red)}.empty{padding:36px 20px;text-align:center;color:var(--muted);border-block:1px solid var(--line)}.empty h3{color:var(--ink);margin-bottom:8px}.empty p{font-size:.87rem;max-width:52ch;margin:auto}.empty .button{margin-top:17px}.skeleton{height:18px;background:var(--neutral);border-radius:3px;margin:14px 0}.skeleton.heading{height:34px;width:55%;margin-bottom:27px}.skeleton.row{height:68px}.load-error{max-width:650px;padding:28px}.load-error p{margin:10px 0 18px;color:var(--muted)}.prose{max-width:71ch;font-size:.98rem;line-height:1.85}.prose p{margin-bottom:19px;line-height:1.85}.prose h2{margin:31px 0 12px}.lesson-reading{display:grid;grid-template-columns:minmax(0,1fr) 278px;gap:38px;align-items:start}.lesson-heading{border-bottom:1px solid var(--line);padding-bottom:25px;margin-bottom:28px}.lesson-heading h1{margin:15px 0 12px}.reading-sidebar{position:sticky;top:24px}.vocabulary{width:100%;border-collapse:collapse;margin-top:13px}.vocabulary th,.vocabulary td{padding:13px 10px;text-align:left;border-bottom:1px solid var(--line);font-size:.86rem}.vocabulary th{font-size:.76rem;color:var(--muted);font-weight:590}.vocabulary .jp{font-size:1.2rem}.audio-block{margin:22px 0;padding:20px;background:var(--neutral);border-radius:9px}.audio-block h3{margin-bottom:12px}.audio-block audio{width:100%;height:40px}.audio-block details{margin-top:11px;font-size:.83rem;color:var(--muted)}.audio-block summary{cursor:pointer;color:var(--ink)}.audio-block details p{margin-top:11px;line-height:1.8}.completion-box{border-top:1px solid var(--line);padding-top:24px;margin-top:32px;display:flex;align-items:center;justify-content:space-between;gap:18px}.completion-box p{font-size:.85rem;color:var(--muted);max-width:38ch}.source{font-size:.75rem;margin-top:24px;color:var(--muted);overflow-wrap:anywhere}.quiz-setup{max-width:900px}.mode-choices{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:24px 0}.mode-choice{display:block;border:1px solid var(--line);padding:21px;border-radius:10px;cursor:pointer;background:var(--surface)}.mode-choice:has(input:checked){border-color:var(--red);background:var(--red-soft)}.mode-choice .choice-head{display:flex;gap:11px;align-items:center}.mode-choice input{accent-color:var(--red);width:17px;height:17px}.mode-choice p{font-size:.85rem;color:var(--muted);margin-top:10px;line-height:1.65}.category-choices{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:17px 0 24px}.category-choice{border:1px solid var(--line);padding:16px;border-radius:9px;cursor:pointer;display:flex;gap:13px;align-items:center;background:var(--surface)}.category-choice:has(input:checked){border-color:var(--red);background:var(--red-soft)}.category-choice input{accent-color:var(--red)}.category-choice .category-glyph{font-size:1.7rem;min-width:29px}.setup-footer{display:flex;align-items:center;gap:24px;margin-top:24px;padding-top:24px;border-top:1px solid var(--line)}.setup-footer p{font-size:.83rem;max-width:50ch;color:var(--muted)}.attempt-top{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-bottom:22px;border-bottom:1px solid var(--line);margin-bottom:26px}.attempt-top h1{font-size:1.6rem}.save-status{display:flex;align-items:center;gap:7px;font-size:.78rem;color:var(--muted);margin-top:9px}.save-status svg{width:15px;height:15px}.timer{font-variant-numeric:tabular-nums;font-size:1.3rem;font-weight:660;display:flex;align-items:center;gap:9px}.timer.urgent{color:var(--red)}.quiz-workspace{display:grid;grid-template-columns:minmax(0,1fr) 250px;gap:34px;align-items:start}.question-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px;font-size:.86rem;color:var(--muted)}.question-prompt{font-size:1.55rem;font-weight:590;line-height:1.65;margin-bottom:26px;white-space:pre-line;overflow-wrap:anywhere}.answer-options{display:flex;flex-direction:column;gap:12px}.answer-option{display:flex;align-items:center;gap:15px;text-align:left;border:1px solid var(--line);border-radius:9px;padding:16px 18px;min-height:65px;background:var(--surface);color:var(--ink);font-size:1.03rem;line-height:1.5}.answer-option:hover{border-color:#9ea38f}.answer-option.selected{border-color:var(--red);background:var(--red-soft)}.answer-letter{border:1px solid var(--line);border-radius:6px;width:31px;height:31px;display:grid;place-items:center;font-size:.82rem;font-weight:640;flex:none}.answer-option.selected .answer-letter{background:var(--red);border-color:var(--red);color:#fff9ee}.answer-text{flex:1;overflow-wrap:anywhere}.answer-option.selected svg{color:var(--red)}.question-controls{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:27px}.question-palette{padding:21px;background:var(--neutral);border-radius:10px}.question-palette p{font-size:.81rem;color:var(--muted);margin:8px 0 17px}.question-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:7px}.question-jump{height:35px;background:var(--surface);border:1px solid var(--line);border-radius:5px;color:var(--muted);font-size:.8rem;font-variant-numeric:tabular-nums}.question-jump.answered{background:#deded0;color:#3c4633;border-color:#bbc2ac}.question-jump.current{background:var(--red);color:white;border-color:var(--red)}.palette-legend{display:flex;gap:13px;flex-wrap:wrap;font-size:.69rem;color:var(--muted);margin-top:16px}.legend-square{display:inline-block;width:9px;height:9px;background:#deded0;border:1px solid #bbc2ac;margin-right:4px}.question-palette .button{width:100%;margin-top:20px}.exit-attempt{font-size:.79rem;margin-top:17px;display:block;text-align:center}.result-banner{display:grid;grid-template-columns:120px minmax(0,1fr) auto;align-items:center;gap:28px;padding:29px 0;border-block:1px solid var(--line);margin-bottom:30px}.score-stamp{height:115px;display:flex;flex-direction:column;align-items:center;justify-content:center;border-right:1px solid var(--line)}.score-stamp strong{font-size:3.3rem;letter-spacing:-.04em;font-weight:710;color:var(--red);line-height:1.1}.score-stamp span{font-size:.77rem;color:var(--muted);margin-top:7px}.result-banner h2{margin-bottom:8px}.result-banner p{color:var(--muted);font-size:.9rem}.review-row{padding:24px 0;border-bottom:1px solid var(--line)}.review-header{display:flex;gap:13px;align-items:center;margin-bottom:12px}.review-row h3{font-size:1.1rem;line-height:1.65;white-space:pre-line;margin-bottom:13px}.review-answer{font-size:.88rem;line-height:1.65;margin:6px 0}.review-answer strong{font-weight:650}.explanation{background:var(--neutral);padding:14px 16px;border-radius:7px;margin-top:14px;font-size:.88rem;color:#545a4b;line-height:1.7}.table-wrap{overflow:auto;border-top:1px solid var(--line)}table.data-table{width:100%;border-collapse:collapse;font-size:.85rem}.data-table th{text-align:left;font-size:.76rem;color:var(--muted);font-weight:600;padding:13px 12px;border-bottom:1px solid var(--line);white-space:nowrap;background:#f1f0e8}.data-table td{padding:15px 12px;border-bottom:1px solid var(--line);vertical-align:middle}.data-table td:first-child,.data-table th:first-child{padding-left:0}.data-table th:first-child{padding-left:12px}.data-table td:last-child{padding-right:0}.data-table tbody tr:hover{background:#f1f0e6}.data-table .primary-cell{font-weight:630}.data-table .secondary-cell{font-size:.75rem;color:var(--muted);margin-top:5px}.data-table .score-cell{font-weight:710;font-variant-numeric:tabular-nums}.data-table .nowrap{white-space:nowrap}.table-note{font-size:.75rem;color:var(--muted);margin-top:13px}.filter-row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.filter-row select{max-width:200px;min-height:40px;padding:8px 12px;font-size:.82rem}.document-summary{display:flex;align-items:center;gap:18px;padding:19px 0;border-block:1px solid var(--line);margin-bottom:8px}.document-summary strong{font-weight:720;font-variant-numeric:tabular-nums}.document-summary p{font-size:.87rem;color:var(--muted)}.document-row{display:grid;grid-template-columns:40px minmax(0,1fr) auto;gap:16px;padding:24px 0;border-bottom:1px solid var(--line);align-items:start}.document-icon{width:37px;height:42px;background:var(--neutral);display:grid;place-items:center;border-radius:6px;color:var(--muted)}.document-row h3{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.document-detail{font-size:.82rem;color:var(--muted);margin:8px 0 11px;overflow-wrap:anywhere}.document-note{font-size:.82rem;color:var(--red);margin:10px 0;line-height:1.6}.document-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.document-upload{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.document-upload input[type=file]{max-width:235px;font-size:.77rem}.document-upload input::file-selector-button{font:inherit;border:1px solid var(--line);padding:7px 10px;border-radius:5px;background:var(--surface);margin-right:8px;color:var(--ink);cursor:pointer}.document-review{margin-top:13px;background:var(--neutral);padding:16px;border-radius:8px;max-width:600px}.document-review .field{margin-bottom:12px}.document-review .field textarea{min-height:68px}.notice{background:var(--neutral);padding:16px 18px;border-radius:8px;font-size:.83rem;color:#53594a;line-height:1.65;margin:20px 0}.notice.warning{background:var(--warning-bg);color:var(--warning)}.editor-layout{max-width:960px}.editor-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:27px}.editor-heading a{font-size:.86rem;text-decoration:none}.inline-editor{background:var(--neutral);padding:23px;border-radius:10px;margin-bottom:26px}.inline-editor h2{margin-bottom:20px}.editor-actions{border-top:1px solid var(--line);padding-top:24px;display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:13px}.import-zone{border:1px dashed #a9aea0;border-radius:10px;padding:25px;background:var(--surface)}.import-zone h2{margin-bottom:10px}.import-zone p{max-width:70ch;color:var(--muted);font-size:.88rem;margin-bottom:19px}.import-zone input[type=file]{width:100%;font-size:.88rem;margin:10px 0 20px}.import-errors{padding:15px 18px;background:var(--red-soft);border-radius:8px;margin:19px 0;color:var(--red);font-size:.84rem}.import-errors ul{padding-left:20px;line-height:1.8}.import-preview{margin-top:26px}.login-page{min-height:100dvh;display:grid;grid-template-columns:minmax(380px,1.1fr) minmax(380px,1fr)}.login-story{background:var(--red);color:#fff8ea;padding:45px 62px;display:flex;flex-direction:column}.login-story .brand{color:#fff8ea}.login-story .brand-sub{color:#e8c3bf}.login-story .brand-mark{background:#fff8ea;color:var(--red)}.login-story-body{margin:auto 0;padding:65px 0;max-width:490px}.login-story-body h1{font-size:2.8rem;line-height:1.25;letter-spacing:-.035em}.login-story-body p{color:#edd3cd;font-size:.95rem;line-height:1.85;margin-top:22px;max-width:45ch}.login-kana{font-size:6.5rem;line-height:1.3;font-weight:500;letter-spacing:.02em;margin:31px 0 10px}.login-kana-caption{font-size:.84rem;color:#eed0c8;display:flex;gap:19px;align-items:center}.login-kana-caption::before{content:'';width:43px;height:1px;background:#d08a85}.login-footer{font-size:.77rem;color:#eac7c1;border-top:1px solid #bc656a;padding-top:19px}.login-form-area{display:flex;align-items:center;justify-content:center;padding:45px 50px}.login-form{width:100%;max-width:380px}.login-form h2{font-size:1.7rem;margin-bottom:10px}.login-form .intro{color:var(--muted);font-size:.9rem;margin-bottom:30px}.login-form .button{width:100%;margin-top:7px}.password-help{margin-top:20px;font-size:.8rem;color:var(--muted);line-height:1.7}.demo-access{border-top:1px solid var(--line);margin-top:30px;padding-top:21px}.demo-access p{font-size:.76rem;color:var(--muted);margin-bottom:10px}.demo-buttons{display:flex;gap:8px;flex-wrap:wrap}.demo-buttons button{padding:7px 11px;font-size:.76rem;border:1px solid var(--line);background:var(--surface);border-radius:6px;color:var(--ink)}.demo-buttons button:hover{border-color:var(--red);color:var(--red)}.toast{position:fixed;z-index:100;bottom:25px;left:50%;transform:translate(-50%,10px);background:var(--ink);color:#fffefa;border-radius:8px;max-width:calc(100vw - 32px);padding:13px 20px;font-size:.84rem;box-shadow:var(--shadow);opacity:0;pointer-events:none;transition:opacity .2s ease-out,transform .2s ease-out}.toast.visible{opacity:1;transform:translate(-50%,0)}.toast.error{background:var(--red)}dialog{border:0;border-radius:12px;padding:0;max-width:480px;width:calc(100vw - 36px);background:var(--surface);color:var(--ink);box-shadow:var(--shadow)}dialog::backdrop{background:rgba(37,39,31,.48)}.dialog-content{padding:28px}.dialog-content p{font-size:.9rem;color:var(--muted);margin:14px 0 25px}.dialog-content .actions{justify-content:flex-end}.coverage-row{display:grid;grid-template-columns:155px minmax(0,1fr) 50px;gap:17px;align-items:center;padding:15px 0;border-bottom:1px solid var(--line);font-size:.86rem}.coverage-row .progress-line{margin:0}.coverage-row strong{text-align:right;font-size:.86rem;font-variant-numeric:tabular-nums}.account-columns{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(270px,1fr);gap:30px;align-items:start}.backdrop{display:none}.footer-note{font-size:.75rem;color:var(--muted);margin-top:35px;padding-top:20px;border-top:1px solid var(--line)}.audio-error{color:var(--red);font-size:.8rem;margin-top:10px}.status-line{display:flex;gap:9px;align-items:center;font-size:.83rem;margin-bottom:20px}.hidden{display:none!important}
.aside-copy{margin:12px 0 18px}.intro-space{margin:8px 0 20px}.action-space{margin-top:22px}.upload-space{margin-top:13px}.form-title{margin-bottom:22px}.vocab-row{display:grid;grid-template-columns:1fr 1fr 1fr 35px;gap:12px;align-items:center}.vocab-row .field span{font-size:.8rem;font-weight:600}.vocab-row .icon-button{margin-bottom:1px}.notice summary{cursor:pointer;font-weight:600}
.icon-button.mobile-menu{display:none}.drawer-close{display:none}.install-help{margin-top:26px;border-top:1px solid var(--line);padding-top:17px;font-size:.82rem;color:var(--muted);max-width:72ch}.install-help summary{color:var(--ink);cursor:pointer;font-weight:600;padding:8px 0;min-height:40px}.install-help p{margin-top:12px;line-height:1.7}.install-help .button{margin-top:13px}.audio-editor{margin-bottom:24px;min-width:0}.audio-upload-status{color:var(--success);margin:12px 0}.audio-upload-status:empty{display:none}.audio-editor input[type=file]{max-width:100%;padding:9px}.audio-address{margin-top:18px;font-size:.84rem}.audio-address summary{cursor:pointer;color:var(--muted);padding:9px 0}.audio-address .field{margin-top:15px}.offline-page{width:100%;max-width:680px;margin:0 auto;padding:64px 28px}.offline-page .brand{margin-bottom:55px}.offline-page h1{margin-bottom:19px}.offline-page>p{max-width:58ch;color:var(--muted);line-height:1.8}.offline-page .notice{margin:26px 0}.offline-privacy{margin-top:25px}.study-split>*,.lesson-reading>*,.quiz-workspace>*,.account-columns>*,.form-grid>*{min-width:0}.icon-button{min-width:44px;min-height:44px}
@media(min-width:1600px){.content{padding-inline:70px}.topbar{padding-inline:70px}}
@media(max-width:1100px){.app-shell{grid-template-columns:210px minmax(0,1fr)}.sidebar{width:210px;padding:24px 15px}.topbar{padding-inline:28px}.content{padding:31px 28px 50px}.study-split{grid-template-columns:minmax(0,1.7fr) minmax(240px,1fr);gap:24px}.welcome{grid-template-columns:1fr 126px}.kana-study{height:140px}.kana-study .kana{font-size:4.7rem}.lesson-reading{grid-template-columns:minmax(0,1fr) 230px;gap:25px}.quiz-workspace{grid-template-columns:minmax(0,1fr) 218px;gap:24px}.question-palette{padding:17px}.category-choices{grid-template-columns:1fr 1fr}.account-columns{grid-template-columns:1fr}.login-story{padding:35px 40px}.login-form-area{padding-inline:35px}.login-story-body h1{font-size:2.4rem}}
@media(max-width:850px){.app-shell{display:block}.workspace{width:100%}.sidebar{transform:translateX(-100%);width:252px;transition:transform .2s ease-out}.sidebar.open{transform:translateX(0)}.backdrop.open{display:block;position:fixed;inset:0;z-index:19;background:rgba(31,33,26,.4)}.mobile-menu{display:grid;margin-left:-8px}.topbar{height:65px;padding-inline:24px}.topbar-context{gap:7px}.topbar-context .crumb{font-size:.81rem}.topbar-right .today{display:none}.content{padding:28px 24px 44px}.study-split{grid-template-columns:minmax(0,1.8fr) minmax(235px,1fr)}.page-head{margin-bottom:24px}.login-page{grid-template-columns:1fr 1fr}.login-story{padding:28px}.login-story-body h1{font-size:2rem}.login-kana{font-size:5rem}.login-form-area{padding:30px 25px}.login-story-body{padding:50px 0}.login-story-body p{font-size:.86rem}.result-banner{grid-template-columns:100px 1fr}.result-banner .actions{grid-column:1/-1;justify-content:flex-end}}
@media(max-width:680px){:root{font-size:14px}.content{padding:25px 20px 38px}.topbar{padding-inline:20px}.page-head{flex-direction:column;gap:16px}h1{font-size:1.8rem}.study-split{grid-template-columns:1fr;gap:26px}.welcome{padding:24px 0;grid-template-columns:1fr 98px;gap:10px}.welcome h2{font-size:1.48rem}.welcome p{font-size:.89rem}.kana-study{height:130px}.kana-study .kana{font-size:4.6rem}.kana-study .reading{font-size:.7rem}.inline-stats{gap:17px;margin-top:18px}.inline-stat{font-size:.77rem}.section{margin-top:27px}.panel{padding:20px}.toolbar{gap:14px}.toolbar>.search{width:100%}.toolbar .search input{max-width:none;width:100%}.tabs{gap:3px}.tab{padding:8px 10px;font-size:.79rem}.lesson-row{gap:12px;padding:17px 0}.lesson-number{width:27px}.lesson-reading{grid-template-columns:1fr;gap:26px}.reading-sidebar{position:static}.lesson-heading{margin-bottom:23px}.form-grid{grid-template-columns:1fr;gap:0}.mode-choices{grid-template-columns:1fr;gap:10px;margin:20px 0}.mode-choice{padding:17px}.category-choices{gap:9px}.category-choice{padding:13px 10px;gap:8px}.category-choice .category-glyph{font-size:1.4rem;min-width:24px}.category-detail{font-size:.72rem}.setup-footer{align-items:flex-start;flex-direction:column;gap:14px}.setup-footer .button{width:100%}.quiz-workspace{grid-template-columns:1fr;gap:23px}.question-prompt{font-size:1.35rem}.answer-option{padding:15px 13px;gap:12px;min-height:60px}.question-palette{padding:18px}.question-grid{grid-template-columns:repeat(8,minmax(0,1fr))}.question-palette .button{max-width:270px}.question-controls .button{padding-inline:13px;font-size:.81rem}.attempt-top h1{font-size:1.35rem}.timer{font-size:1.1rem}.save-status{font-size:.73rem}.document-row{grid-template-columns:32px minmax(0,1fr);gap:12px;padding:22px 0}.document-icon{width:31px;height:37px}.document-row>.badge{grid-column:2;grid-row:2;justify-self:start}.document-summary{align-items:flex-start}.document-upload input[type=file]{max-width:100%;width:100%;margin-bottom:4px}.document-actions{gap:7px}.editor-actions{flex-direction:column;align-items:stretch;gap:15px}.editor-actions .actions{justify-content:flex-end}.coverage-row{grid-template-columns:117px 1fr 43px;gap:11px;font-size:.79rem}.result-banner{grid-template-columns:85px 1fr;gap:20px;padding:23px 0}.score-stamp{height:99px}.score-stamp strong{font-size:2.8rem}.review-row{padding:21px 0}.data-table{min-width:590px}.filter-row{width:100%}.filter-row .search{flex:1}.filter-row select{max-width:145px}.completion-box{align-items:flex-start;flex-direction:column}.completion-box .button{width:100%}.login-page{display:block}.login-story{padding:24px}.login-story-body{padding:29px 0 0;max-width:none}.login-story-body h1{font-size:1.8rem;max-width:21ch}.login-story-body p{display:none}.login-kana,.login-kana-caption,.login-footer{display:none}.login-form-area{padding:30px 24px 40px}.login-form{max-width:420px}.login-form h2{font-size:1.45rem}.login-form .intro{margin-bottom:23px}.toast{bottom:17px}.notice{padding:14px 16px}.topbar-right{gap:8px}.lesson-meta{flex-wrap:wrap}.editor-heading{align-items:flex-start}.import-zone{padding:20px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
@media(max-width:680px){.vocab-row{grid-template-columns:1fr 1fr 33px;gap:0 10px;border-bottom:1px solid var(--line);padding-top:15px;margin-bottom:18px}.vocab-row .field:nth-child(3){grid-column:1/3}.vocab-row .icon-button{grid-column:3;grid-row:1/3}.vocab-row .field{margin-bottom:13px}}
@media(max-width:850px){.icon-button.mobile-menu{display:grid}.topbar{position:sticky;top:0;z-index:10;height:calc(65px + env(safe-area-inset-top));padding-top:env(safe-area-inset-top)}.sidebar{padding-top:calc(24px + env(safe-area-inset-top));padding-bottom:calc(24px + env(safe-area-inset-bottom))}.drawer-close{display:grid;position:absolute;top:calc(9px + env(safe-area-inset-top));right:7px}.sidebar .brand{padding-top:27px}.quiz-workspace{grid-template-columns:1fr}.question-grid{grid-template-columns:repeat(8,minmax(44px,1fr));gap:8px}.question-jump{min-height:44px;height:44px}.button,.button.compact,.tab,.nav a,.logout{min-height:44px}.button.quiet{padding-inline:8px}.tab{min-width:44px}.checkbox{min-height:44px}.checkbox input{width:20px;height:20px}.field input,.field select,.field textarea,select.control,.search input{font-size:16px}input[type=file],.filter-row select{min-height:44px;font-size:16px}input[type=file]::file-selector-button{min-height:44px;font-size:16px}.question-controls .button{min-height:46px}.login-form .button{min-height:46px}.demo-buttons button{min-height:44px;min-width:65px}.install-help summary,.audio-address summary{min-height:44px;display:list-item;padding-block:10px}.sidebar .nav a{padding-block:12px}.content{padding-bottom:calc(44px + env(safe-area-inset-bottom))}.offline-page{padding-top:calc(40px + env(safe-area-inset-top));padding-bottom:calc(40px + env(safe-area-inset-bottom))}}
@media(max-width:680px){:root{font-size:16px}.content{padding-inline:20px;padding-top:24px}.topbar-context{min-width:0}.crumb{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.page-head p{font-size:.9rem}.welcome{grid-template-columns:minmax(0,1fr) 82px;gap:13px}.welcome h2{font-size:1.4rem}.welcome p{font-size:.88rem}.kana-study{height:116px}.kana-study .kana{font-size:3.7rem}.kana-study .reading{font-size:.66rem;text-align:center;max-width:10ch;line-height:1.55}.inline-stat{font-size:.78rem}.inline-stat strong{font-size:1rem}.question-grid{grid-template-columns:repeat(5,minmax(44px,1fr))}.question-palette{padding:18px}.question-prompt{font-size:1.3rem}.question-controls .button{font-size:.78rem;padding-inline:11px}.lesson-row{align-items:flex-start;gap:11px}.lesson-number{padding-top:3px;width:25px}.lesson-row>.row-chevron,.lesson-row>svg{margin-top:4px;width:17px}.lesson-info h3{font-size:1rem;overflow-wrap:anywhere}.lesson-info p{font-size:.85rem}.lesson-meta{font-size:.73rem;gap:7px}.category-choice{gap:7px;padding:13px 10px}.category-choice .category-label{font-size:.84rem}.category-choice .category-detail{font-size:.7rem}.category-choice input{width:17px;height:17px;margin:0;flex:none}.category-choice .category-glyph{min-width:21px;font-size:1.3rem}.category-choices{gap:9px}.document-icon{margin-top:3px}.document-upload input[type=file]{font-size:16px;max-width:100%}.document-row .document-detail{font-size:.8rem}.document-row h3{font-size:1rem}.editor-heading{flex-direction:column;gap:12px}.vocab-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 44px}.vocab-row .icon-button{min-width:44px}.profile .install-help{margin-top:24px}.offline-page{padding-inline:24px}.offline-page .brand{margin-bottom:34px}.offline-page h1{font-size:1.75rem}.offline-page .button{width:100%}.audio-editor .button{width:100%}.audio-editor input[type=file]{font-size:16px}.install-help{font-size:.8rem}.source{overflow-wrap:anywhere}.result-banner .actions{justify-content:flex-start}}
@media(max-width:359px){.content{padding-inline:16px}.topbar{padding-inline:16px}.question-grid{grid-template-columns:repeat(4,minmax(44px,1fr))}.welcome{grid-template-columns:minmax(0,1fr);gap:0}.kana-study{display:none}.category-choices{grid-template-columns:1fr}.category-choice{min-height:65px;padding:13px 16px}.category-choice .category-label{font-size:.94rem}.category-choice .category-detail{font-size:.78rem}.category-choice .category-glyph{min-width:35px;font-size:1.7rem}.question-controls{gap:8px}.question-controls .button{font-size:.75rem;gap:6px;padding-inline:9px}.timer{font-size:1rem}.document-row{grid-template-columns:28px minmax(0,1fr);gap:10px}.document-icon{width:27px}.coverage-row{grid-template-columns:100px minmax(0,1fr) 36px;gap:9px}.topbar-right .demo-label{font-size:.6rem}.login-story{padding:22px}.login-form-area{padding:28px 22px}.result-banner{grid-template-columns:75px minmax(0,1fr);gap:15px}}

/* The expanded LMS keeps the reading ledger, with dates and tasks as its structure. */
.writing-attribution{font-size:.73rem;color:var(--muted);margin-top:13px;line-height:1.6}.detail-list a svg{width:15px;height:15px;margin-left:8px}
.practice-history{padding:22px 0 24px;margin-bottom:28px;border-block:1px solid var(--line)}.practice-history h2{margin-bottom:11px}.practice-history p{line-height:1.75;font-size:.9rem;margin-top:8px;max-width:71ch}.practice-history p.small{font-size:.82rem}
.sidebar .brand{margin-bottom:25px;flex:none}.nav{overflow-y:auto;min-height:0;scrollbar-width:thin;scrollbar-color:#a9ada0 transparent;gap:3px}.sidebar-bottom{flex:none;padding-top:18px}.nav a{flex:none;font-size:.87rem;padding-block:10px}.nav a.active:hover{color:var(--on-red,#fff9ef)}
.help{font-size:.78rem;color:var(--muted);line-height:1.6;margin-top:7px}.editor-section{border:0;padding:0;margin:0 0 35px;min-width:0;border-bottom:1px solid var(--line);padding-bottom:28px}.editor-section legend{font-size:1.33rem;line-height:1.4;font-weight:680;padding:0;margin-bottom:8px;letter-spacing:-.02em}.section-description{max-width:71ch;color:var(--muted);font-size:.88rem;margin-bottom:22px}.editor-section .notice{margin-bottom:0}.preview-surface{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:24px;margin-top:23px;overflow-wrap:anywhere}.preview-surface h2{margin-bottom:15px}.preview-options{padding-left:27px}.preview-options li{padding:12px 0;border-bottom:1px solid var(--line);line-height:1.7}.preview-options li .badge{margin-left:10px}.preview-options .correct{color:var(--success)}
.schedule-row{display:grid;grid-template-columns:62px minmax(0,1fr) auto;gap:19px;align-items:start;padding:22px 0;border-bottom:1px solid var(--line)}.date-mark{border:1px solid var(--line);background:var(--surface);border-radius:6px;text-align:center;width:58px;padding:7px 5px 9px;display:flex;flex-direction:column}.date-mark strong{font-size:1.5rem;line-height:1.3;font-weight:680;font-variant-numeric:tabular-nums}.date-mark span{font-size:.72rem;color:var(--muted)}.schedule-info p{font-size:.85rem;color:var(--muted);margin-top:7px;overflow-wrap:anywhere}.row-title{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap}.row-title h3{min-width:0;font-size:1.08rem;line-height:1.5}.row-title a{color:var(--ink);text-decoration:none}.row-title a:hover{color:var(--red);text-decoration:underline}.row-actions{align-self:center;flex:none}.lesson-meta{flex-wrap:wrap}.detail-layout{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(260px,1fr);gap:38px;align-items:start}.detail-layout>*{min-width:0}.detail-summary{border-top:1px solid var(--line);padding-top:23px}.detail-summary>h2{margin:19px 0 9px}.detail-summary>p{color:var(--muted)}.detail-list{margin:24px 0;display:flex;flex-direction:column}.detail-list>div{display:grid;grid-template-columns:145px minmax(0,1fr);gap:22px;border-bottom:1px solid var(--line);padding:16px 0;font-size:.9rem;line-height:1.75}.detail-list dt{color:var(--muted)}.detail-list dd{margin:0;overflow-wrap:anywhere}.stack-actions{display:flex;flex-direction:column;align-items:stretch;gap:12px;margin-top:21px}.attendance-roster{border-top:1px solid var(--line)}.attendance-person{display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,1fr);gap:35px;border-bottom:1px solid var(--line);padding:25px 0;align-items:start}.attendance-person>div:first-child{padding-top:5px}.attendance-person h3{margin-bottom:7px}.attendance-person .field:last-child{margin-bottom:0}
.announcement-row{padding:23px 0;border-bottom:1px solid var(--line)}.announcement-row>p{font-size:.9rem;color:var(--muted);margin:10px 0 13px;max-width:71ch;overflow-wrap:anywhere}.announcement-list{border-top:1px solid var(--line)}.announcement-detail{padding:24px 0;border-block:1px solid var(--line);max-width:71ch}.announcement-body{margin:21px 0;line-height:1.85;overflow-wrap:anywhere}.exam-row{display:flex;gap:24px;align-items:center;justify-content:space-between;padding:24px 0;border-bottom:1px solid var(--line)}.exam-info{min-width:0}.exam-info>p{font-size:.88rem;color:var(--muted);margin-top:8px;max-width:65ch}.exam-info .exam-window{font-size:.78rem;font-variant-numeric:tabular-nums;margin-top:13px}.exam-instructions{margin:20px 0 26px;padding-left:21px;font-size:.87rem;color:var(--muted);line-height:1.9}.exam-instructions li{margin:6px 0}.exam-attempt{margin-bottom:9px;display:flex;flex-direction:column;gap:3px}.selection-count{font-size:.9rem;font-weight:650;padding:12px 0 16px;color:var(--red)}.question-picker{max-height:560px;overflow-y:auto;border-block:1px solid var(--line);background:var(--surface);padding-inline:18px}.picker-question{display:flex;align-items:flex-start;gap:14px;padding:18px 0;border-bottom:1px solid var(--line);cursor:pointer}.picker-question:last-child{border-bottom:0}.picker-question input{width:20px;height:20px;flex:none;accent-color:var(--red);margin-top:4px}.picker-question>span{display:flex;flex-direction:column;gap:6px;min-width:0}.picker-question strong{font-size:.93rem;line-height:1.75;font-weight:610;white-space:pre-line;overflow-wrap:anywhere}.picker-meta,.picker-answer{font-size:.77rem;color:var(--muted);line-height:1.6}.picker-answer{color:var(--success)}.picker-question:has(input:checked) strong{color:var(--red)}.lms-dashboard{display:grid;grid-template-columns:1fr 1fr;gap:35px;margin-top:36px}.lms-dashboard>section{min-width:0}.lms-dashboard .schedule-row{grid-template-columns:52px minmax(0,1fr);gap:14px}.lms-dashboard .date-mark{width:47px}.lms-dashboard .row-actions{grid-column:2}.lms-dashboard .exam-row{flex-direction:column;align-items:flex-start;gap:15px}.lms-dashboard .section-head{min-height:44px}.lms-dashboard .empty{padding:25px 12px}.lesson-practice{margin-top:32px;padding:27px 0;border-block:1px solid var(--line)}.lesson-practice>p{color:var(--muted);font-size:.88rem;margin:9px 0 20px}.practice-links{display:flex;gap:10px;flex-wrap:wrap}.practice-explainer{padding:20px 0 25px;border-block:1px solid var(--line);margin-bottom:25px}.practice-explainer p{color:var(--muted);font-size:.9rem;max-width:65ch;margin-top:10px}
.activity-tabs{padding-bottom:21px;border-bottom:1px solid var(--line);margin-top:10px;gap:8px}.activity-workspace{max-width:960px;padding:26px 0}.activity-top{display:flex;gap:20px;justify-content:space-between;flex-wrap:wrap;margin-bottom:22px}.flashcard{width:100%;min-height:305px;background:var(--surface);border:1px solid var(--line);border-radius:12px;display:flex;align-items:center;justify-content:center;flex-direction:column;padding:28px;gap:14px;color:var(--ink)}.flashcard:hover{border-color:var(--red)}.flashcard-word{font-size:3.5rem;line-height:1.5;font-weight:570;overflow-wrap:anywhere}.flashcard-reading{font-size:1.2rem;color:var(--red);line-height:1.5}.flashcard-meaning{font-size:1.15rem;line-height:1.5}.flashcard-hint{font-size:.85rem;color:var(--muted);margin-top:15px}.activity-controls{display:flex;gap:12px;justify-content:space-between;align-items:center;flex-wrap:wrap;margin-top:22px}.activity-guidance{font-size:.82rem;color:var(--muted);text-align:center;max-width:71ch;margin:23px auto 0}.typing-practice{max-width:650px}.typing-practice>.field:first-of-type{max-width:360px}.typing-word{font-size:3rem;line-height:1.5;margin:27px 0;color:var(--ink);font-weight:570}.typing-feedback:not(:empty){padding:18px;background:var(--neutral);border-radius:8px;margin-top:24px;line-height:1.75;font-size:.88rem}.typing-feedback p{margin-top:7px}.typing-feedback.success{color:var(--success);background:var(--success-bg)}.typing-feedback.try-again{color:var(--warning);background:var(--warning-bg)}.practice-finish{display:flex;gap:20px;align-items:center;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:26px;margin-top:18px}.writing-layout{display:grid;grid-template-columns:minmax(220px,.8fr) minmax(0,1.2fr);gap:34px;align-items:start}.writing-controls h2{margin-bottom:8px}.writing-controls>p{color:var(--muted);font-size:.9rem;margin-bottom:24px}.writing-controls .stack-actions{margin-top:17px}.writing-surface{width:100%;max-width:490px;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--surface);aspect-ratio:1}.writing-surface canvas{display:block;touch-action:none;width:100%;height:100%}.writing-hint{font-size:.8rem;line-height:1.7;color:var(--muted);max-width:60ch;margin-top:15px}.writing-layout #writing-feedback{margin-top:17px}.import-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;padding-left:22px;margin:0 0 31px;counter-reset:steps}.import-steps li{padding-left:5px;line-height:1.6}.import-steps li::marker{color:var(--red);font-weight:680}.import-steps strong{display:block;font-size:.9rem;margin-bottom:7px}.import-steps span{display:block;font-size:.82rem;color:var(--muted)}.import-alternative{margin:16px 0 26px}.dashboard-learning{padding:24px 0;border-block:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:28px}.dashboard-learning h2{margin-bottom:9px;max-width:40ch}.dashboard-learning p{color:var(--muted);max-width:65ch;font-size:.9rem}.dashboard-learning>.actions{flex:none}.dashboard-learning .lesson-meta{margin-top:14px}.dashboard-materials{margin-top:36px}.dashboard-materials .lesson-row{max-width:950px}
@media(max-width:1100px){.detail-layout{gap:25px;grid-template-columns:minmax(0,1.4fr) minmax(240px,1fr)}.lms-dashboard{gap:24px}.row-title h3{font-size:1rem}.dashboard-learning{align-items:flex-start;flex-direction:column;gap:20px}.writing-layout{gap:24px;grid-template-columns:minmax(200px,.8fr) minmax(0,1.2fr)}}
@media(max-width:850px){.nav a{min-height:44px;padding-block:10px}.detail-layout{grid-template-columns:1fr}.detail-layout .panel{max-width:none}.detail-list>div{grid-template-columns:125px minmax(0,1fr)}.writing-layout{grid-template-columns:minmax(190px,.8fr) minmax(0,1.2fr)}.picker-question{min-height:44px}.activity-tabs .tab{min-height:46px}.question-picker{max-height:450px}.activity-controls .button{min-height:46px}.activity-tabs{gap:5px}.sidebar .brand{margin-bottom:21px}.sidebar-bottom{padding-top:13px}.sidebar-user{margin-bottom:8px}}
@media(max-width:680px){.editor-section{margin-bottom:29px;padding-bottom:24px}.editor-section legend{font-size:1.25rem}.section-description{font-size:.88rem;margin-bottom:21px}.preview-surface{padding:19px}.schedule-row{grid-template-columns:51px minmax(0,1fr);gap:14px;padding:21px 0}.date-mark{width:48px}.date-mark strong{font-size:1.35rem}.schedule-row .row-actions{grid-column:2;justify-self:start}.row-title h3{font-size:1rem}.schedule-info p{font-size:.83rem}.detail-list>div{display:flex;flex-direction:column;gap:5px;padding:14px 0}.detail-list dd{font-size:.94rem}.attendance-person{grid-template-columns:1fr;gap:19px}.attendance-person>div:first-child{padding-top:0}.attendance-person .field{margin-bottom:14px}.attendance-person>div:last-child{display:grid;grid-template-columns:1fr;min-width:0}.announcement-row{padding:22px 0}.announcement-row>p{font-size:.85rem}.exam-row{flex-direction:column;align-items:flex-start;gap:16px;padding:22px 0}.exam-info .exam-window{font-size:.76rem;line-height:1.7}.lms-dashboard{grid-template-columns:1fr;gap:31px;margin-top:30px}.lms-dashboard .section-head{gap:10px}.lms-dashboard .schedule-row{grid-template-columns:48px minmax(0,1fr)}.lms-dashboard .row-actions{grid-column:2}.lms-dashboard .section-head h2{font-size:1.2rem}.lesson-practice{padding:25px 0;margin-top:26px}.practice-links{display:grid;grid-template-columns:1fr 1fr;gap:10px}.practice-links .button{min-height:48px;font-size:.8rem;padding:10px}.activity-tabs{gap:3px;flex-wrap:wrap;padding-bottom:17px}.activity-tabs .tab{font-size:.8rem;padding-inline:10px}.activity-workspace{padding-top:22px}.activity-top{gap:9px;margin-bottom:18px}.flashcard{min-height:270px;padding:22px 15px}.flashcard-word{font-size:2.7rem}.flashcard-reading{font-size:1.06rem}.flashcard-meaning{font-size:1.04rem}.activity-controls{gap:10px;justify-content:flex-start}.activity-controls .button{font-size:.8rem;padding-inline:13px}.activity-controls .button svg{width:17px}.activity-guidance{text-align:left}.typing-word{font-size:2.6rem;margin-block:23px}.typing-practice .button{width:100%}.practice-finish{gap:14px;margin-top:10px}.practice-finish .button{width:100%}.writing-layout{display:flex;flex-direction:column;gap:24px}.writing-controls{width:100%}.writing-controls .stack-actions{display:grid;grid-template-columns:1fr 1fr;align-items:start;gap:13px}.writing-controls .stack-actions .actions,.writing-controls .stack-actions>button:last-child{grid-column:1/-1}.writing-controls .stack-actions>button:first-child{font-size:.79rem;min-height:46px;padding-inline:9px}.writing-controls .stack-actions .checkbox{font-size:.8rem;line-height:1.4;min-height:46px}.writing-layout>div:last-child{width:100%;display:flex;flex-direction:column;align-items:center}.writing-layout>div:last-child p{width:100%}.writing-controls>p{margin-bottom:19px}.writing-surface{max-width:420px}.writing-hint{font-size:.8rem}.question-picker{padding-inline:14px;max-height:470px}.picker-question{gap:11px;padding:17px 0}.picker-question strong{font-size:.9rem}.picker-meta,.picker-answer{font-size:.73rem}.selection-count{font-size:.87rem}.import-steps{grid-template-columns:1fr;gap:19px;margin-bottom:27px}.import-steps li{padding-left:4px}.import-steps strong{margin-bottom:4px;font-size:.9rem}.import-steps span{font-size:.82rem}.import-zone{padding:21px 18px}.dashboard-learning{padding:23px 0;gap:18px}.dashboard-learning h2{font-size:1.24rem}.dashboard-learning p{font-size:.87rem}.dashboard-learning>.actions{width:100%}.dashboard-learning>.actions .button:first-child{flex:1}.dashboard-materials{margin-top:30px}.attendance-roster+.editor-actions>.button{width:100%}}
@media(max-width:359px){.practice-links{grid-template-columns:1fr}.activity-tabs .tab{font-size:.75rem;padding-inline:8px}.activity-controls .button{font-size:.75rem;padding-inline:10px;gap:7px}.activity-controls .button:nth-child(2){flex:1}.flashcard-word{font-size:2.4rem}.writing-controls .stack-actions{grid-template-columns:1fr}.writing-controls .stack-actions .actions,.writing-controls .stack-actions>button:last-child{grid-column:auto}.writing-controls .stack-actions>button:first-child{font-size:.86rem}.row-title{gap:7px}.date-mark{width:42px}.schedule-row{grid-template-columns:43px minmax(0,1fr);gap:12px}.lms-dashboard .schedule-row{grid-template-columns:43px minmax(0,1fr)}.lms-dashboard .date-mark{width:42px}.lms-dashboard .section-head h2{font-size:1.08rem}.lms-dashboard .section-head .button{font-size:.72rem}.dashboard-learning>.actions .button{font-size:.8rem}}
.bank-summary{margin-bottom:16px;line-height:1.7}.pagination{display:flex;justify-content:space-between;align-items:center;gap:16px;margin:17px 0;flex-wrap:wrap}.pagination>span{font-variant-numeric:tabular-nums}.writing-character-title>p{color:var(--muted);font-size:.9rem;margin-bottom:24px}.writing-heading #writing-stroke-status{margin-bottom:24px}
@media(max-width:850px){.content input[type=file],.content .import-zone input[type=file],.content .audio-editor input[type=file]{font-size:16px;min-height:44px}.content input[type=file]::file-selector-button{font-size:16px;min-height:44px}}
@media(max-width:680px){.lesson-activities>.page-head{gap:12px;margin-bottom:16px}.lesson-activities>.page-head h1{font-size:1.35rem;line-height:1.4}.lesson-activities>.page-head p{display:none}.lesson-activities>.page-head .actions{padding:0}.lesson-activities>.page-head .button{min-height:44px;font-size:.8rem}.lesson-activities .activity-tabs{margin-top:0;padding-bottom:15px}.lesson-activities .activity-workspace{padding-top:20px}.writing-layout{gap:18px}.writing-layout>.writing-controls{display:contents}.writing-heading{order:0;width:100%}.writing-pad{order:1}.writing-tools{order:2;width:100%}.writing-character-title{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:13px}.writing-character-title h2{margin:0;font-size:1.18rem}.writing-character-title>p{font-size:.8rem;margin:0}.writing-heading .field{margin-bottom:11px}.writing-heading #writing-stroke-status{font-size:.76rem;margin:0;line-height:1.5}.writing-controls .writing-tools .stack-actions{margin-top:0}.writing-pad .writing-hint{font-size:.78rem;margin-top:12px}.writing-pad .writing-attribution{margin-top:10px}.writing-pad #writing-feedback:empty{display:none}.attendance-student-table{overflow:visible}.attendance-student-table .data-table{display:block;min-width:0;width:100%}.attendance-student-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.attendance-student-table tbody{display:block}.attendance-student-table tr{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:11px 14px;border-bottom:1px solid var(--line);padding:20px 0}.attendance-student-table .data-table td{padding:0;border:0;font-size:.85rem;min-width:0}.attendance-student-table .attendance-title{grid-column:1;grid-row:1}.attendance-student-table .attendance-title a{line-height:1.7;overflow-wrap:anywhere}.attendance-student-table .attendance-status{grid-column:2;grid-row:1;align-self:start;padding-top:2px}.attendance-student-table .attendance-time{grid-column:1/-1;grid-row:2;color:var(--muted);font-size:.79rem}.attendance-student-table .attendance-note{grid-column:1/-1;grid-row:3;color:var(--muted);font-size:.82rem;overflow-wrap:anywhere}.attendance-student-table .attendance-note.no-note{display:none}.pagination{display:grid;grid-template-columns:1fr 1fr;gap:10px}.pagination>span{grid-column:1/-1;grid-row:1;text-align:center}.pagination>button:first-child{grid-column:1;grid-row:2}.pagination>button:last-child{grid-column:2;grid-row:2}.pagination>.button.compact{min-height:44px;padding-inline:9px}.bank-summary{font-size:.8rem}}
