:root{--background:#f6fbfa;--surface:#fff;--surface-soft:#eef9f5;--surface-blue:#edf7ff;--surface-pink:#fff3f0;--ink:#243d3a;--muted:#6c7f7a;--line:#d9ebe6;--primary:#4f9f8f;--primary-dark:#2f6f64;--accent:#e58d78;--accent-soft:#fff3ef;--focus:#6da8e8;--shadow:0 18px 50px #2f6f641a}*{box-sizing:border-box}html,body{min-height:100%}body{background:var(--background);color:var(--ink);margin:0;font-family:Arial,Helvetica,sans-serif}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid color-mix(in srgb, var(--focus) 40%, transparent);outline-offset:2px}.login-page{background:linear-gradient(135deg, #eef9f5e6, #edf7ffbf), var(--background);grid-template-columns:minmax(360px,470px) minmax(320px,520px);justify-content:center;align-items:center;gap:64px;min-height:100vh;padding:48px;display:grid}.login-panel{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:8px;gap:28px;padding:40px;display:grid}.eyebrow{color:var(--accent);letter-spacing:0;text-transform:uppercase;margin:0 0 10px;font-size:.78rem;font-weight:700}h1,h2,h3,p{margin-top:0}h1{margin-bottom:12px;font-size:2.35rem;line-height:1.1}h2{margin-bottom:6px;font-size:1.15rem}h3{font-size:1rem}.login-copy,.page-heading p,.section-heading p,.login-panel label,.prototype-note,.top-header p,.class-card p,.material-card p{color:var(--muted)}.login-form,.word-form{gap:16px;display:grid}label{color:var(--ink);gap:8px;font-size:.88rem;font-weight:700;display:grid}input,select,textarea{border:1px solid var(--line);color:var(--ink);background:#fff;border-radius:6px;min-height:42px;padding:10px 12px}textarea{resize:vertical;min-height:130px;line-height:1.5}.prototype-note{border-top:1px solid var(--line);margin-bottom:0;padding-top:18px;font-size:.85rem}.compact-row,.vocabulary-fieldset,.choice-group{background:var(--surface-soft);border:1px solid var(--line);border-radius:8px;gap:10px;padding:16px;display:grid}.compact-row strong,.compact-row span{display:block}.vocabulary-fieldset legend,.choice-group legend{padding:0 6px;font-weight:800}.choice-row{border:1px solid var(--line);background:#fff;border-radius:6px;align-items:center;gap:10px;min-height:42px;padding:10px 12px;font-weight:700;display:flex}.choice-row input{min-height:auto}.button-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.login-aside{gap:22px;display:grid}.sample-word-card{background:var(--primary);box-shadow:var(--shadow);color:#fff;border-radius:8px;width:min(100%,360px);padding:36px}.sample-word-card.offset{background:var(--accent);justify-self:end}.sample-word-card span{font-size:4rem;font-weight:800;line-height:1;display:block}.sample-word-card strong{margin-top:12px;font-size:1.4rem;display:block}.sample-word-card p{margin:10px 0 0}.button{cursor:pointer;border:1px solid #0000;border-radius:6px;justify-content:center;align-items:center;gap:8px;min-height:42px;padding:10px 16px;font-weight:800;transition:background .16s,border-color .16s,color .16s;display:inline-flex}.button-primary{background:var(--primary-dark);color:#fff}.button-primary:hover{background:#255a51}.button-secondary{border-color:var(--line);color:var(--ink);background:#fff}.button-secondary:hover{border-color:var(--primary);color:var(--primary)}.button-full{width:100%}.button:disabled{cursor:not-allowed;opacity:.55}.app-shell{background:var(--background);grid-template-columns:248px minmax(0,1fr);min-height:100vh;display:grid}.sidebar{border-right:1px solid var(--line);color:var(--ink);background:#e8f6f1;flex-direction:column;gap:28px;padding:24px;display:flex}.brand{align-items:center;gap:12px;display:flex}.brand span{color:var(--primary-dark);background:#c9efe6;border:1px solid #a9ddd1;border-radius:6px;justify-content:center;align-items:center;width:42px;height:42px;font-weight:900;display:inline-flex}.brand strong,.brand small{display:block}.brand small{color:var(--muted);margin-top:2px}.sidebar nav{gap:8px;display:grid}.sidebar nav a,.logout-link{color:var(--primary-dark);border-radius:6px;padding:12px;font-weight:700}.sidebar nav a.active,.sidebar nav a:hover,.logout-link:hover{color:var(--ink);background:#fff;box-shadow:0 8px 24px #2f6f6414}.sidebar nav a.active{border-left:4px solid var(--primary);padding-left:10px}.logout-link{margin-top:auto}.logout-link button{color:inherit;cursor:pointer;font:inherit;text-align:left;background:0 0;border:none;width:100%;padding:0}.student-sidebar .logout-link,.teacher-sidebar .logout-link{border-top:1px solid var(--line);margin-top:24px;margin-bottom:4px;padding-top:16px}.student-sidebar .logout-link button,.teacher-sidebar .logout-link button{padding:12px;font-size:1rem}.main-shell{grid-template-rows:auto 1fr;min-width:0;display:grid}.top-header{border-bottom:1px solid var(--line);z-index:5;background:#ffffffdb;justify-content:space-between;align-items:center;padding:18px 32px;display:flex;position:sticky;top:0}.top-header p,.top-header strong{margin:0;display:block}.top-header strong{margin-top:4px}.teacher-badge{background:var(--surface-blue);color:#2f6794;border:1px solid #c6e3fb;border-radius:999px;justify-content:center;align-items:center;width:42px;height:42px;font-weight:900;display:inline-flex}.page-content{padding:32px}.stack{gap:24px;display:grid}.page-heading{max-width:760px}.page-heading h1{margin-bottom:8px}.page-heading p:last-child{margin-bottom:0}.summary-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;display:grid}.summary-card,.panel,.class-card,.material-card{background:var(--surface);border:1px solid var(--line);border-radius:8px;box-shadow:0 10px 35px #2f6f640f}.summary-card{background:linear-gradient(#fff,#fbfefd);padding:22px}.summary-card p{color:var(--muted);margin-bottom:12px;font-weight:700}.summary-card strong{font-size:2rem;display:block}.panel{padding:24px}.section-heading{justify-content:space-between;align-items:start;gap:20px;margin-bottom:18px;display:flex}.section-heading p,.section-heading h2{margin-bottom:0}.quick-actions{flex-wrap:wrap;gap:12px;display:flex}.form-grid-two{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.form-note{border:1px solid var(--line);color:var(--primary-dark);background:#eef9f5;border-radius:8px;margin:0;padding:12px;font-weight:800}.warning-note{background:var(--accent-soft);color:#8a4528;border-color:#ffd7c5}.dashboard-class-layout{grid-template-columns:minmax(260px,.8fr) minmax(0,1.6fr);gap:20px;display:grid}.dashboard-class-list{gap:10px;display:grid}.class-select-card{border:1px solid var(--line);color:var(--ink);cursor:pointer;text-align:left;background:#fbfefd;border-radius:8px;align-items:start;gap:10px;padding:16px;display:grid}.class-select-card:hover,.class-select-card.active{background:var(--surface-soft);border-color:var(--primary)}.class-select-card strong,.class-select-card small{display:block}.class-select-card small,.class-metrics{color:var(--muted);margin-top:4px}.class-metrics{font-size:.86rem;font-weight:800}.student-progress-panel{border:1px solid var(--line);border-radius:8px;overflow:hidden}.selected-class-summary{background:linear-gradient(90deg, var(--surface-soft), var(--surface-blue));border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:18px;padding:18px;display:flex}.selected-class-summary h2,.selected-class-summary p{margin-bottom:0}.student-progress-list{display:grid}.student-progress-row{border-bottom:1px solid var(--line);background:#fff;grid-template-columns:minmax(180px,1.2fr) minmax(160px,1fr) 120px 120px 120px;align-items:center;gap:16px;padding:16px 18px;display:grid}.student-progress-row:last-child{border-bottom:0}.class-data-selector{gap:14px;display:grid}.class-data-class-list{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.class-data-table-wrap{border:1px solid var(--line);border-radius:8px;overflow-x:auto}.class-data-table{border-collapse:collapse;width:100%;min-width:880px}.class-data-table th,.class-data-table td{border-bottom:1px solid var(--line);text-align:left;vertical-align:middle;padding:14px}.class-data-table th{background:var(--surface-soft);color:var(--muted);text-transform:uppercase;font-size:.8rem;font-weight:900}.class-data-table tr:last-child td{border-bottom:0}.class-data-table strong,.class-data-table span{display:block}.class-data-table span{color:var(--muted);margin-top:4px;font-size:.84rem}.class-data-student-link{color:var(--ink);border-radius:6px;gap:2px;padding:4px 6px;display:inline-grid}.class-data-student-link:hover{background:var(--surface-soft);color:var(--primary-dark)}.class-data-grid{grid-template-columns:minmax(0,1.1fr) minmax(320px,.9fr);gap:20px;display:grid}.unit-chart-list,.needs-review-list{gap:14px;display:grid}.unit-chart-row,.needs-review-list>div{border:1px solid var(--line);background:#fbfefd;border-radius:8px;padding:14px}.unit-chart-row{grid-template-columns:160px minmax(0,1fr);gap:14px;display:grid}.unit-chart-row strong,.unit-chart-row span,.unit-bars label{display:block}.unit-chart-row span,.unit-bars label,.needs-review-list p{color:var(--muted);font-size:.84rem;font-weight:800}.unit-bars{gap:10px;display:grid}.unit-bars label{grid-template-columns:96px minmax(0,1fr);gap:6px;display:grid}.needs-review-list h3{margin-bottom:8px;font-size:.92rem}.needs-review-list p{margin-bottom:6px}.summary-card span{color:var(--muted);margin-top:8px;font-size:.84rem;font-weight:800;display:block}.student-main strong,.student-main span,.student-detail span,.student-detail strong{display:block}.student-main span,.student-detail span{color:var(--muted);margin-top:4px;font-size:.84rem}.progress-cell{grid-template-columns:minmax(90px,1fr) 44px;align-items:center;gap:10px;display:grid}.progress-bar{background:#e5f1ee;border-radius:999px;height:10px;overflow:hidden}.progress-bar span{background:var(--primary);border-radius:inherit;height:100%;display:block}.status-pill{white-space:nowrap;border-radius:999px;justify-content:center;padding:7px 10px;font-size:.78rem;font-weight:900;display:inline-flex}.status-pill.on-track{background:var(--surface-soft);color:var(--primary-dark)}.status-pill.needs-support{background:var(--accent-soft);color:#8a4528}.status-pill.ahead{background:var(--surface-blue);color:#285a9a}.status-pill.assigned,.message-dot.unread{background:var(--accent)}.status-pill.assigned{color:#fff}.status-pill.in-progress{background:var(--surface-blue);color:#285a9a}.status-pill.completed{background:var(--surface-soft);color:var(--primary-dark)}.status-pill.draft{color:var(--muted);background:#f3f6f5}.status-pill.closed{background:var(--accent-soft);color:#8a4528}.status-pill.turned-in{background:var(--surface-soft);color:var(--primary-dark)}.status-pill.late-submission{background:var(--accent-soft);color:#8a4528}.status-pill.not-turned-in{color:var(--muted);background:#f3f6f5}.assignment-builder{grid-template-columns:minmax(360px,.85fr) minmax(0,1.15fr);gap:20px;display:grid}.assignment-form{align-self:start;gap:16px;display:grid}.compact-options{grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:0}.assignment-word-picker{max-height:360px;padding-right:4px;overflow:auto}.assignment-list{gap:14px;display:grid}.assignment-card{border:1px solid var(--line);background:#fbfefd;border-radius:8px;overflow:hidden}.assignment-card.open{border-color:var(--primary)}.assignment-card-trigger{color:var(--ink);cursor:pointer;text-align:left;background:#fbfefd;border:0;grid-template-columns:minmax(0,1fr) minmax(220px,.36fr);align-items:center;gap:18px;width:100%;padding:18px;display:grid}.assignment-card-trigger:hover,.assignment-card.open .assignment-card-trigger{background:linear-gradient(90deg, var(--surface-soft), var(--surface-blue))}.assignment-main{gap:8px;display:grid}.assignment-main strong{font-size:1.1rem;display:block}.assignment-status{justify-items:end;gap:12px;display:grid}.assignment-status small{color:var(--muted);font-weight:700}.submission-roster{border-top:1px solid var(--line);gap:12px;padding:16px;display:grid}.submission-roster-heading{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.submission-roster-heading h3,.submission-roster-heading p{margin-bottom:0}.submission-roster-heading p{color:var(--muted);font-size:.88rem;font-weight:800}.submission-table-wrap{border:1px solid var(--line);border-radius:8px;overflow-x:auto}.submission-table{min-width:620px}.submission-table th,.submission-table td{padding:12px}.message-workspace{grid-template-columns:64px minmax(0,1fr);align-items:start;gap:20px;display:grid}.message-mailbox-rail{border:1px solid var(--line);z-index:3;background:#f7fcf8;border-radius:8px;gap:14px;width:64px;padding:10px;transition:width .16s,box-shadow .16s;display:grid;position:sticky;top:88px;overflow:hidden;box-shadow:0 16px 30px #2e514914}.message-mailbox-rail:hover,.message-mailbox-rail:focus-within{width:232px;box-shadow:0 18px 40px #2e514924}.message-main-stack{gap:20px;min-width:0;display:grid}.new-message-button,.mailbox-item{cursor:pointer;text-align:left;border:1px solid #0000;border-radius:8px;grid-template-columns:34px 120px 32px;align-items:center;gap:10px;width:210px;min-height:44px;display:grid}.new-message-button{background:var(--primary);color:#fff;padding:8px;font-weight:900}.new-message-button:hover{background:var(--primary-dark)}.new-message-button span,.mailbox-item span{border-radius:8px;justify-content:center;align-items:center;width:34px;height:34px;font-size:.78rem;font-weight:900;display:inline-flex}.new-message-button span{background:#fff3;font-size:1.2rem}.new-message-button strong,.mailbox-item strong,.mailbox-item small,.mailbox-folder-form input{opacity:0;transition:opacity .14s}.message-mailbox-rail:hover .new-message-button strong,.message-mailbox-rail:focus-within .new-message-button strong,.message-mailbox-rail:hover .mailbox-item strong,.message-mailbox-rail:focus-within .mailbox-item strong,.message-mailbox-rail:hover .mailbox-item small,.message-mailbox-rail:focus-within .mailbox-item small,.message-mailbox-rail:hover .mailbox-folder-form input,.message-mailbox-rail:focus-within .mailbox-folder-form input{opacity:1}.mailbox-nav{gap:6px;display:grid}.mailbox-item{color:var(--ink);background:0 0;padding:5px}.mailbox-item span{color:var(--primary-dark);background:#e9f6ef}.mailbox-item strong{font-size:.92rem}.mailbox-item small{border:1px solid var(--line);color:var(--muted);text-align:center;background:#fff;border-radius:999px;justify-self:end;min-width:28px;padding:3px 7px;font-size:.76rem;font-weight:900}.mailbox-item.active,.mailbox-item:hover{background:var(--surface-soft);border-color:var(--primary)}.mailbox-folder-form{grid-template-columns:34px 152px;align-items:center;gap:8px;width:204px;display:grid}.mailbox-folder-form input{grid-column:2;min-height:36px;padding:8px 10px}.mailbox-folder-form button{border:1px solid var(--line);color:var(--primary-dark);cursor:pointer;background:#fff;border-radius:8px;grid-area:1/1;width:34px;height:36px;font-size:1rem;font-weight:900}.mailbox-folder-form button:disabled{cursor:not-allowed;opacity:.45}.message-layout{grid-template-columns:minmax(320px,.8fr) minmax(0,1.2fr);gap:20px;display:grid}.message-list-panel,.message-detail-panel{align-self:start}.teacher-message-panel{gap:18px;display:grid}.teacher-message-form{gap:16px;display:grid}.sent-message-list{border-top:1px solid var(--line);gap:10px;padding-top:16px;display:grid}.sent-message-card{border:1px solid var(--line);background:#fbfefd;border-radius:8px;gap:8px;padding:14px;display:grid}.sent-message-card strong,.sent-message-card p{margin-bottom:0;display:block}.sent-message-card div p{color:var(--muted);margin-top:4px;font-size:.88rem}.folder-form{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:10px;display:grid}.folder-tabs{flex-wrap:wrap;gap:8px;display:flex}.folder-tab{border:1px solid var(--line);color:var(--primary-dark);cursor:pointer;background:#fbfefd;border-radius:999px;align-items:center;gap:8px;min-height:36px;padding:8px 12px;font-weight:900;display:inline-flex}.folder-tab.active,.folder-tab:hover{background:var(--surface-soft);border-color:var(--primary);color:var(--ink)}.folder-tab span{color:var(--muted);background:#fff;border-radius:999px;padding:2px 7px;font-size:.76rem}.folder-helper{background:var(--surface-blue);color:var(--muted);border:1px solid #c6e3fb;border-radius:8px;margin:0;padding:12px;font-size:.88rem}.message-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.folder-select{margin-bottom:14px}.folder-suggestions{border:1px solid var(--line);background:#fbfefd;border-radius:8px;gap:10px;margin-bottom:14px;padding:14px;display:grid}.folder-suggestions strong{font-size:.88rem}.folder-suggestions div{flex-wrap:wrap;gap:8px;display:flex}.folder-suggestions button{background:var(--surface-soft);border:1px solid var(--line);color:var(--primary-dark);cursor:pointer;border-radius:999px;min-height:34px;padding:7px 11px;font-weight:900}.folder-suggestions button:hover{background:var(--surface-blue);border-color:var(--primary)}.message-list{gap:10px;display:grid}.message-list-item{border:1px solid var(--line);color:var(--ink);cursor:pointer;text-align:left;background:#fbfefd;border-radius:8px;grid-template-columns:10px minmax(0,1fr);align-items:start;gap:10px;padding:14px;display:grid}.message-list-item.active,.message-list-item:hover{background:var(--surface-soft);border-color:var(--primary)}.message-list-item strong,.message-list-item small{display:block}.message-list-item small{color:var(--muted);margin-top:5px}.draft-chip,.draft-status{font-weight:900;color:var(--accent)!important}.message-dot{border-radius:999px;width:10px;height:10px;margin-top:5px}.message-dot.read{background:var(--line)}.message-detail-heading{justify-content:space-between;align-items:start;gap:18px;margin-bottom:18px;display:flex}.message-detail-heading h2,.message-detail-heading p{margin-bottom:8px}.message-body{background:var(--surface-soft);border:1px solid var(--line);border-radius:8px;margin-bottom:18px;padding:18px;line-height:1.6}.message-body p:last-child{margin-bottom:0}.conversation-thread{gap:12px;margin-bottom:18px;display:grid}.thread-message{border:1px solid var(--line);border-radius:8px;gap:10px;padding:16px;line-height:1.6;display:grid}.thread-message.student{background:var(--surface-soft)}.thread-message.teacher{background:var(--surface-blue);margin-left:28px}.thread-message-heading{justify-content:space-between;align-items:start;gap:12px;display:flex}.thread-message-heading strong,.thread-message-heading span{display:block}.thread-message-heading span,.thread-message-heading small{color:var(--muted);font-size:.82rem;font-weight:800}.thread-message p{margin-bottom:0}.reply-box{margin-bottom:14px}.reply-box .draft-status{font-size:.82rem}.student-sidebar{background:#edf7ff}.student-top-header{background:#ffffffe6}.student-badge{background:var(--surface-soft);color:var(--primary-dark)}.student-summary-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.visually-hidden{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.student-growth-home{grid-template-columns:minmax(280px,.72fr) minmax(0,1.28fr);align-items:start;gap:24px;display:grid}.student-home-summary{gap:0;min-width:0;display:grid}.student-home-greeting,.student-home-section,.student-home-empty{border-bottom:1px solid var(--line);padding:22px 0}.student-home-greeting{padding-top:4px}.student-home-greeting h1{font-size:2rem}.total-mastered-summary{color:var(--muted);align-items:baseline;gap:12px;font-weight:800;display:flex}.total-mastered-summary strong{color:var(--ink);font-size:1.45rem}.student-home-section h2{margin-bottom:14px;font-size:1rem}.class-today-list,.skill-check-home-list{gap:10px;display:grid}.class-today-row,.skill-check-home-row{background:var(--surface);border:1px solid var(--line);border-radius:8px;min-width:0}.class-today-row{gap:12px;padding:14px;display:grid}.class-today-row>div{min-width:0}.class-today-row strong,.class-today-row span{overflow-wrap:anywhere;display:block}.class-today-row span{color:var(--muted);margin-top:4px;font-size:.82rem;line-height:1.45}.skill-check-home-row{justify-content:space-between;align-items:center;gap:14px;min-height:48px;padding:12px 14px;display:flex}.skill-check-home-row:hover{border-color:var(--primary)}.skill-check-home-row span{overflow-wrap:anywhere;min-width:0}.skill-check-home-row strong{color:var(--primary-dark);flex:none;font-size:.82rem}.student-home-empty p{color:var(--muted);margin-bottom:0}.vocabulary-growth-panel{min-width:0}.student-home-progress-column{gap:24px;min-width:0;display:grid}.growth-panel-heading{justify-content:space-between;align-items:start;gap:18px;margin-bottom:18px;display:flex}.growth-title-control{flex-wrap:wrap;align-items:center;gap:10px;min-width:0;display:flex}.growth-title-control h2{margin-bottom:0}.growth-title-control>span{color:var(--muted);overflow-wrap:anywhere;font-size:.9rem;font-weight:800}.growth-title-control select{max-width:min(260px,100%);min-height:36px;padding:7px 34px 7px 10px}.growth-range-control{border:1px solid var(--line);border-radius:6px;flex:none;grid-template-columns:repeat(3,minmax(0,1fr));display:inline-grid;overflow:hidden}.growth-range-control button{border:0;border-right:1px solid var(--line);color:var(--muted);cursor:pointer;white-space:nowrap;background:#fff;min-height:36px;padding:7px 10px;font-size:.78rem;font-weight:800}.growth-range-control button:last-child{border-right:0}.growth-range-control button.active,.growth-range-control button:hover{background:var(--surface-soft);color:var(--primary-dark)}.growth-chart-wrap{aspect-ratio:680/280;width:100%;min-height:250px;position:relative}.growth-chart{width:100%;height:100%;display:block;overflow:visible}.growth-axis{stroke:#b9d5ce;stroke-width:1.5px}.growth-grid-line{stroke:#e5f1ee;stroke-dasharray:4 5;stroke-width:1px}.growth-line{stroke:var(--primary-dark);stroke-linecap:round;stroke-linejoin:round;stroke-width:3px}.growth-point{cursor:pointer;fill:#fff;stroke:var(--primary-dark);stroke-width:3px}.growth-point:hover,.growth-point:focus{fill:var(--accent);stroke:#8a4528;outline:none}.growth-axis-label,.growth-date-label{fill:var(--muted);font-size:12px;font-weight:700}.growth-axis-label,.growth-date-label.end{text-anchor:end}.growth-tooltip{background:var(--ink);color:#fff;pointer-events:none;text-align:center;white-space:nowrap;z-index:2;border-radius:6px;max-width:min(190px,80%);padding:7px 9px;font-size:.78rem;font-weight:800;position:absolute;transform:translate(-50%,-115%)}.ondoku-progress-panel{min-width:0}.ondoku-progress-heading{justify-content:space-between;align-items:start;gap:18px;margin-bottom:20px;display:flex}.ondoku-title-control{flex-wrap:wrap;align-items:center;gap:10px;min-width:0;display:flex}.ondoku-title-control h2{margin-bottom:0}.ondoku-title-control>span{color:var(--muted);overflow-wrap:anywhere;font-size:.9rem;font-weight:800}.ondoku-title-control label{min-width:0}.ondoku-title-control select{max-width:min(330px,100%);min-height:36px;padding:7px 34px 7px 10px}.ondoku-score-summary{gap:18px;margin-bottom:14px;display:grid}.ondoku-latest-score{align-items:baseline;gap:14px;display:flex}.ondoku-latest-score span{color:var(--muted);font-size:.88rem;font-weight:800}.ondoku-latest-score strong{color:var(--primary-dark);font-size:2.35rem;line-height:1}.ondoku-no-score{gap:4px;display:grid}.ondoku-no-score span{color:var(--muted);font-size:.86rem}.ondoku-score-details{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:0;display:grid}.ondoku-score-details>div{background:var(--surface-soft);border-left:3px solid var(--primary);min-width:0;padding:10px 12px}.ondoku-score-details dt{color:var(--muted);font-size:.76rem;font-weight:800}.ondoku-score-details dd{overflow-wrap:anywhere;margin:4px 0 0;font-size:.92rem;font-weight:900}.ondoku-chart-wrap{margin-top:4px}.reading-progress-panel{min-width:0}.reading-progress-heading{margin-bottom:20px}.reading-progress-heading h2{margin-bottom:0}.reading-progress-summary{gap:18px;display:grid}.reading-progress-title-row{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:10px;display:flex}.reading-progress-title-row strong{overflow-wrap:anywhere}.reading-progress-score{align-items:baseline;gap:14px;display:flex}.reading-progress-score span{color:var(--muted);font-size:.88rem;font-weight:800}.reading-progress-score strong{color:var(--primary-dark);font-size:2.35rem;line-height:1}.reading-progress-no-score strong{color:var(--muted);font-size:1.1rem}.reading-progress-details{grid-template-columns:repeat(1,minmax(0,1fr));gap:10px;margin:0;display:grid}.reading-progress-details>div{background:var(--surface-soft);border-left:3px solid var(--primary);min-width:0;padding:10px 12px}.reading-progress-details dt{color:var(--muted);font-size:.76rem;font-weight:800}.reading-progress-details dd{margin:4px 0 0;font-size:.92rem;font-weight:900}.growth-empty-state{color:var(--muted);text-align:center;align-items:center;min-height:250px;padding:24px;display:flex}.growth-empty-state p{max-width:360px;margin:auto}.need-review-link{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:14px;margin-top:10px;padding-top:16px;display:flex}.need-review-link span{color:var(--muted);font-weight:800}.need-review-link strong{color:var(--primary-dark);font-size:1.2rem}.student-home-layout,.student-progress-layout,.student-assignment-layout,.student-generator-layout,.student-ondoku-layout,.student-message-layout{grid-template-columns:minmax(320px,.75fr) minmax(0,1.25fr);gap:20px;display:grid}.student-focus-panel,.student-assignment-list-panel,.student-thread-list-panel{align-self:start}.student-assignment-preview,.student-message-preview,.student-assignment-item,.student-thread-item,.student-quiz-card,.student-word-row,.student-result-card{border:1px solid var(--line);background:#fbfefd;border-radius:8px}.student-assignment-preview{gap:12px;padding:18px;display:grid}.student-assignment-preview h3,.student-assignment-preview p{margin-bottom:0}.student-message-preview{color:var(--ink);gap:8px;padding:16px;display:grid}.student-message-preview p,.student-message-preview small{color:var(--muted);margin-bottom:0}.student-assignment-list,.student-thread-list,.student-quiz-list,.student-word-list,.student-result-list{gap:12px;display:grid}.student-assignment-item,.student-thread-item{color:var(--ink);cursor:pointer;text-align:left;gap:8px;width:100%;padding:14px;display:grid}.student-assignment-item{border:1px solid var(--line)}.student-assignment-item.active,.student-assignment-item:hover,.student-thread-item.active,.student-thread-item:hover{background:var(--surface-soft);border-color:var(--primary)}.student-assignment-item small,.student-thread-item small{color:var(--muted)}.student-practice-panel{gap:16px;display:grid}.student-score-badge{background:var(--primary-dark);color:#fff;border-radius:999px;align-items:center;min-height:46px;padding:8px 16px;font-size:1.1rem;font-weight:900;display:inline-flex}.student-report-heading{justify-content:space-between;align-items:start;gap:18px;display:flex}.student-report-grid,.student-report-columns{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;display:grid}.student-report-word-panel,.student-report-facts>div,.student-report-set-list,.student-report-event-list article,.student-report-recording-list article{border:1px solid var(--line);background:#fbfefd;border-radius:8px}.student-report-word-panel{gap:12px;padding:16px;display:grid}.student-report-word-panel.needs-review{background:var(--surface-soft)}.student-report-word-panel h3,.student-report-set-list h3{margin-bottom:0;font-size:.95rem}.student-report-word-panel p{border-bottom:1px solid var(--line);gap:4px;margin-bottom:0;padding-bottom:10px;display:grid}.student-report-word-panel p:last-of-type{border-bottom:0;padding-bottom:0}.student-report-word-panel span,.student-report-word-panel small,.student-report-facts span,.student-report-set-list span,.student-report-event-list span,.student-report-recording-list span{color:var(--muted);font-size:.84rem;font-weight:800}.student-report-facts{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.student-report-facts>div{gap:6px;padding:14px;display:grid}.student-report-facts strong{font-size:1.35rem}.student-report-set-list{flex-wrap:wrap;gap:8px;margin-top:16px;padding:14px;display:flex}.student-report-set-list h3{flex-basis:100%}.student-report-set-list span{border:1px solid var(--line);color:var(--ink);background:#fff;border-radius:999px;padding:6px 10px}.student-report-event-list,.student-report-recording-list{gap:12px;display:grid}.student-report-event-list article,.student-report-recording-list article{align-items:center;gap:12px;padding:14px;display:grid}.student-report-event-list article{grid-template-columns:minmax(0,1fr) auto}.student-report-recording-list article{grid-template-columns:minmax(240px,1.4fr) 110px 110px auto}.student-assessment-home-grid,.assessment-result-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.assessment-result-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.student-assessment-card-list,.assessment-question-stack,.student-assessment-result-lists{gap:12px;display:grid}.student-assessment-card,.student-assessment-result-lists>div{border:1px solid var(--line);background:#fbfefd;border-radius:8px;justify-content:space-between;align-items:center;gap:14px;padding:14px;display:flex}.student-assessment-card strong,.student-assessment-card span,.student-assessment-result-lists h3,.student-assessment-result-lists p{display:block}.student-assessment-card span,.student-assessment-result-lists p,.assessment-start-panel p,.assessment-start-meta{color:var(--muted);font-size:.9rem;font-weight:800}.assessment-start-panel,.student-assessment-step-panel,.assessment-result-panel{gap:18px;display:grid}.assessment-start-panel h2{margin-bottom:0;font-size:2rem}.assessment-start-meta{flex-wrap:wrap;gap:8px;display:flex}.assessment-start-meta span{background:var(--surface-soft);border:1px solid var(--line);border-radius:999px;padding:7px 10px}.assessment-progress-bar{height:12px}.assessment-single-question{min-height:220px}.student-quiz-card{gap:14px;padding:16px;display:grid}.student-quiz-card p{color:var(--muted);margin:6px 0 0}.answer-correct,.answer-incorrect{font-weight:900;margin-bottom:0!important}.answer-correct{color:var(--primary-dark)!important}.answer-incorrect{color:#8a4528!important}.student-conversation-thread .thread-message.student{background:var(--surface-blue);margin-left:28px}.student-conversation-thread .thread-message.teacher{background:var(--surface-soft);margin-left:0}.student-word-row{grid-template-columns:1fr 1fr auto;align-items:center;gap:14px;padding:14px;display:grid}.student-word-row strong,.student-word-row span{display:block}.student-word-row span,.student-word-row p,.student-word-row small{color:var(--muted);margin-bottom:0}.student-result-card{grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:14px;padding:14px;display:grid}.student-result-card p{color:var(--muted);margin:4px 0 0}.ondoku-class-list,.ondoku-roster,.student-recording-list{gap:12px;display:grid}.ondoku-filter-bar{background:var(--surface-soft);border:1px solid var(--line);border-radius:8px;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:14px;display:grid}.ondoku-roster{border-top:1px solid var(--line);padding:16px}.ondoku-student-panel{border:1px solid var(--line);background:#fbfefd;border-radius:8px;overflow:hidden}.ondoku-student-panel.open{border-color:var(--primary)}.ondoku-student-row{text-align:left;background:0 0;border:0;grid-template-columns:minmax(170px,1.2fr) 88px 88px 88px 88px minmax(220px,1.4fr);align-items:center;gap:14px;width:100%;padding:14px;display:grid}.ondoku-student-row:hover,.ondoku-student-panel.open .ondoku-student-row{background:var(--surface-soft)}.ondoku-student-row strong,.ondoku-student-row span,.ondoku-metric span,.ondoku-metric strong{display:block}.ondoku-student-row span,.ondoku-metric span,.ondoku-date,.student-recording-row span{color:var(--muted);font-size:.84rem;font-weight:800}.ondoku-student-row p{color:var(--muted);margin:4px 0 0}.ondoku-metric strong{font-size:1.05rem}.ondoku-recording-files{border-top:1px solid var(--line);gap:12px;padding:14px;display:grid}.ondoku-recording-heading{gap:4px;display:grid}.ondoku-recording-heading span{color:var(--muted);font-size:.84rem;font-weight:800}.ondoku-recording-file-row{border:1px solid var(--line);background:#fff;border-radius:8px;grid-template-columns:minmax(240px,1.5fr) auto 96px 96px auto;align-items:center;gap:12px;padding:12px;display:grid}.ondoku-recording-file-row strong,.ondoku-recording-file-row span{display:block}.ondoku-recording-file-row span,.ondoku-recording-file-row p{color:var(--muted);margin:4px 0 0;font-size:.84rem}.ondoku-passage-card{background:var(--surface-soft);border:1px solid var(--line);border-radius:8px;margin-top:16px;padding:18px;line-height:1.9}.ondoku-passage-card h3{margin-bottom:10px}.ondoku-passage-card p{margin-bottom:0}.ondoku-passage-card ruby{ruby-position:over;font-weight:800}.ondoku-passage-card rt{color:var(--muted);font-size:.62em;font-weight:900}.recorder-passage-card{margin-top:0}.ondoku-score-result-panel{border:1px solid var(--line);background:#fbfefd;border-radius:8px;gap:14px;padding:16px;display:grid}.ondoku-score-circle-card{aspect-ratio:1;justify-self:center;width:min(100%,360px);max-width:360px;position:relative}.ondoku-score-circle{width:100%;height:100%;display:block;transform:rotate(0)}.score-arc-bg,.score-arc{fill:none;stroke-linecap:round;stroke-width:28px}.score-arc-bg{stroke:#e5f1ee}.score-arc{transition:stroke-dashoffset .18s}.score-arc.accuracy{stroke:var(--primary)}.score-arc.fluency{stroke:var(--accent)}.score-core{border:1px solid var(--line);background:#fff;border-radius:999px;place-items:center;width:44%;height:44%;padding:18px;display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 18px 40px #2d433e1f}.score-core span,.score-core small,.score-half-label span,.score-half-label small,.score-formula-note{color:var(--muted);font-size:.78rem;font-weight:900}.score-core strong{font-size:clamp(2rem,8vw,3.4rem);line-height:.95}.score-half-label{justify-items:center;gap:2px;display:grid;position:absolute;top:50%;transform:translateY(-50%)}.score-half-label.left{left:5%}.score-half-label.right{right:5%}.score-half-label strong{font-size:1.15rem}.score-formula-note{text-align:center;margin:0}.transcription-status-card{border:1px solid var(--line);background:#fff;border-radius:8px;gap:8px;padding:12px;display:grid}.transcription-status-card div{justify-content:space-between;align-items:center;gap:10px;display:flex}.transcription-status-card span{color:var(--muted);font-size:.78rem;font-weight:900}.transcription-status-card strong{border-radius:999px;padding:5px 10px;font-size:.76rem}.transcription-status-card.ready strong{color:#13794a;background:#e8f7ef}.transcription-status-card.needs-review strong{color:#9c6215;background:#fff3d8}.transcription-status-card p{color:var(--text);overflow-wrap:anywhere;margin:0;font-size:.9rem;line-height:1.55}.score-blue{color:#1d4ed8}.score-light-blue{color:#38bdf8}.score-green{color:#159957}.score-light-green{color:#70b62c}.score-yellow{color:#d5a400}.score-orange{color:#e0712b}.score-pink{color:#db6b95}.score-red{color:#d4423c}.ondoku-progress-panel{border:1px solid var(--line);background:#fbfefd;border-radius:8px;gap:14px;margin-top:16px;padding:16px;display:grid}.ondoku-progress-summary{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.ondoku-progress-summary>div{border:1px solid var(--line);background:#fff;border-radius:8px;gap:4px;padding:12px;display:grid}.ondoku-progress-summary span,.ondoku-attempt-row span{color:var(--muted);font-size:.82rem;font-weight:900;display:block}.ondoku-progress-summary strong{font-size:1.25rem}.ondoku-trend-chart-wrap{border:1px solid var(--line);background:linear-gradient(#fbfefd,#fff);border-radius:8px;padding:12px;overflow-x:auto}.ondoku-trend-chart{width:100%;min-width:600px;display:block}.ondoku-trend-line{fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-width:4px}.ondoku-trend-line.ondoku{stroke:var(--primary-dark)}.ondoku-trend-line.accuracy{stroke:var(--primary)}.ondoku-trend-line.fluency{stroke:var(--accent)}.ondoku-trend-dot{stroke:#fff;stroke-width:2px}.ondoku-trend-dot.ondoku,.legend-dot.ondoku{fill:var(--primary-dark);background:var(--primary-dark)}.ondoku-trend-dot.accuracy,.legend-dot.accuracy{fill:var(--primary);background:var(--primary)}.ondoku-trend-dot.fluency,.legend-dot.fluency{fill:var(--accent);background:var(--accent)}.ondoku-attempt-row{border:1px solid var(--line);background:#fff;border-radius:8px;grid-template-columns:minmax(160px,1fr) 84px 84px 84px auto;align-items:center;gap:12px;padding:12px;display:grid}.ondoku-attempt-row.teacher{background:#fff;grid-template-columns:minmax(220px,1.3fr) 84px 84px 84px auto}.student-ondoku-recorder{gap:16px;display:grid}.recording-status{border:1px solid var(--line);background:#fbfefd;border-radius:8px;grid-template-columns:16px minmax(0,1fr) auto;align-items:center;gap:10px;padding:14px;display:grid}.recording-dot{background:var(--line);border-radius:999px;width:12px;height:12px}.recording-status.recording .recording-dot{background:var(--accent)}.recording-status.requesting .recording-dot,.recording-status.recorded .recording-dot{background:var(--primary)}.recording-status small{color:var(--muted);font-weight:900}.voice-level-meter{grid-column:1/-1;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:10px;display:grid}.voice-level-meter span{color:var(--muted);font-size:.78rem;font-weight:900}.voice-level-track{border:1px solid var(--line);background:#eef7f3;border-radius:999px;height:12px;overflow:hidden}.voice-level-fill{background:linear-gradient(90deg, var(--primary), var(--accent));border-radius:inherit;height:100%;transition:width 90ms linear}.ondoku-control-row{flex-wrap:wrap;gap:12px;display:flex}.ondoku-control-item{flex-direction:column;align-items:center;gap:6px;display:inline-flex}.ondoku-control-item span{color:var(--muted);font-size:.78rem;font-weight:900}.ondoku-icon-button{border:1px solid var(--line);color:var(--primary-dark);cursor:pointer;background:#fff;border-radius:999px;justify-content:center;align-items:center;width:48px;height:48px;font-size:1.25rem;font-weight:900;display:inline-flex}.ondoku-icon-button.record{color:var(--accent)}.ondoku-icon-button.stop{color:#8a4528}.ondoku-icon-button.save{color:var(--primary-dark)}.ondoku-icon-button.delete{color:var(--muted)}.ondoku-icon-button:disabled{cursor:not-allowed;opacity:.45}.student-recording-list h3{margin-bottom:0}.student-recording-row{border:1px solid var(--line);background:#fbfefd;border-radius:8px;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:10px;padding:12px;display:grid}.student-recording-row strong,.student-recording-row span{display:block}.ondoku-mini-button{border:1px solid var(--line);color:var(--primary-dark);cursor:pointer;background:#fff;border-radius:999px;min-height:34px;padding:7px 12px;font-size:.82rem;font-weight:900}.ondoku-mini-button:hover,.ondoku-icon-button:hover{background:var(--surface-soft);border-color:var(--primary)}.student-chart-panel{overflow:hidden}.chart-header-actions{place-items:end;gap:10px;display:grid}.chart-timeline-control{border:1px solid var(--line);background:#fff;border-radius:999px;flex-wrap:wrap;gap:4px;padding:4px;display:flex}.chart-timeline-control button{color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:999px;min-height:30px;padding:6px 10px;font-size:.78rem;font-weight:900}.chart-timeline-control button.active,.chart-timeline-control button:hover{background:var(--primary-dark);color:#fff}.chart-current-values{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.chart-current-values span{background:var(--surface-soft);border:1px solid var(--line);color:var(--primary-dark);border-radius:999px;padding:7px 10px;font-size:.82rem;font-weight:900}.chart-checkbox-menu{flex-wrap:wrap;gap:8px;margin-bottom:12px;display:flex}.chart-checkbox-menu label{border:1px solid var(--line);color:var(--muted);cursor:pointer;background:#fff;border-radius:999px;align-items:center;gap:7px;padding:7px 10px;font-size:.82rem;font-weight:900;display:inline-flex}.chart-checkbox-menu input{accent-color:var(--primary-dark);width:14px;height:14px}.chart-checkbox-menu label:has(input:checked){background:var(--surface-soft);border-color:var(--primary);color:var(--primary-dark)}.progress-chart-wrap{border:1px solid var(--line);background:linear-gradient(#fbfefd,#fff);border-radius:8px;padding:12px;overflow-x:auto}.progress-line-chart{width:100%;min-width:620px;display:block}.chart-grid-line{stroke:#dcece8;stroke-width:1px}.chart-axis-label,.chart-date-label{fill:var(--muted);font-size:.74rem;font-weight:800}.chart-date-label{text-anchor:middle}.chart-line{fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-width:4px}.chart-line-words{stroke:var(--primary-dark)}.chart-line-quiz{stroke:var(--accent)}.chart-line-ondoku{stroke:var(--primary)}.chart-dot{stroke:#fff;stroke-width:2px}.chart-dot-words{fill:var(--primary-dark)}.chart-dot-quiz{fill:var(--accent)}.chart-dot-ondoku{fill:var(--primary)}.chart-legend{flex-wrap:wrap;gap:14px;margin-top:12px;display:flex}.chart-legend span{color:var(--muted);align-items:center;gap:7px;font-size:.88rem;font-weight:900;display:inline-flex}.legend-dot{border-radius:999px;width:10px;height:10px;display:inline-block}.legend-dot.words{background:var(--primary-dark)}.legend-dot.quiz{background:var(--accent)}.student-generator-layout{grid-template-columns:minmax(360px,1fr) minmax(280px,.72fr)}.student-generator-filter{margin-bottom:14px}.student-word-picker{max-height:430px;padding-right:4px;overflow:auto}.student-practice-options{margin-bottom:16px}.student-selected-words{flex-wrap:wrap;gap:8px;margin-bottom:16px;display:flex}.student-selected-words span{background:var(--surface-soft);border:1px solid var(--line);color:var(--primary-dark);border-radius:999px;padding:7px 10px;font-size:.82rem;font-weight:900}.vocabulary-set-layout{grid-template-columns:minmax(280px,.72fr) minmax(0,1.28fr);align-items:start;gap:20px;display:grid}.vocabulary-set-list-panel,.vocabulary-set-detail-panel{align-self:start}.vocabulary-set-list,.set-word-list,.vocabulary-set-form{gap:10px;display:grid}.vocabulary-set-list{margin-bottom:0}.vocabulary-set-item{border:1px solid var(--line);color:var(--ink);cursor:pointer;text-align:left;background:#fbfefd;border-radius:8px;gap:6px;padding:14px;display:grid}.vocabulary-set-item.active,.vocabulary-set-item:hover{background:var(--surface-soft);border-color:var(--primary)}.vocabulary-set-item span,.vocabulary-set-item small,.set-word-row span{color:var(--muted)}.vocabulary-set-form{gap:10px;display:grid}.vocabulary-set-form textarea,.vocabulary-set-edit-grid textarea{min-height:92px}.icon-action-button{border:1px solid var(--line);color:var(--primary-dark);cursor:pointer;background:#fff;border-radius:999px;justify-content:center;align-items:center;width:38px;height:38px;font-size:1rem;font-weight:900;display:inline-flex}.icon-action-button.active,.icon-action-button:hover{background:var(--surface-soft);border-color:var(--primary)}.floating-tool-panel{background:var(--surface-blue);border:1px solid #c6e3fb;border-radius:8px;gap:12px;margin-bottom:16px;padding:14px;display:grid}.tool-panel-heading,.set-detail-actions{justify-content:space-between;align-items:center;gap:10px;display:flex}.tool-panel-heading h3{margin-bottom:0}.tool-panel-heading button{border:1px solid var(--line);color:var(--muted);cursor:pointer;background:#fff;border-radius:999px;width:30px;height:30px;font-weight:900}.vocabulary-set-edit-grid{grid-template-columns:minmax(0,1.3fr) minmax(150px,.5fr) minmax(150px,.5fr);gap:14px;display:grid}.vocabulary-set-word-columns{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-bottom:16px;display:grid}.compact-heading,.set-search-field{margin-bottom:10px}.set-word-row{border:1px solid var(--line);background:#fbfefd;border-radius:8px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px;display:grid}.set-word-row strong,.set-word-row span{display:block}.set-word-row button{border:1px solid var(--line);color:var(--primary-dark);cursor:pointer;background:#fff;border-radius:999px;min-height:34px;padding:7px 12px;font-size:.82rem;font-weight:900}.set-word-row button:hover{background:var(--surface-blue);border-color:var(--primary)}.assessment-layout,.student-assessment-layout{grid-template-columns:minmax(300px,.72fr) minmax(0,1.28fr);align-items:start;gap:20px;display:grid}.assessment-list-panel,.assessment-detail-panel,.student-assessment-info,.student-assessment-questions{align-self:start}.assessment-list,.assessment-question-editor,.assessment-results,.assessment-create-panel{gap:12px;display:grid}.assessment-list-item{border:1px solid var(--line);color:var(--ink);cursor:pointer;text-align:left;background:#fbfefd;border-radius:8px;gap:7px;padding:14px;display:grid}.assessment-list-item.active,.assessment-list-item:hover{background:var(--surface-soft);border-color:var(--primary)}.assessment-list-item small{color:var(--muted)}.assessment-edit-grid{grid-template-columns:minmax(0,1.4fr) 180px 160px;gap:14px;margin-bottom:16px;display:grid}.assessment-study-list{background:var(--surface-soft);border:1px solid var(--line);border-radius:8px;gap:10px;margin-bottom:18px;padding:14px;display:grid}.assessment-study-list p{color:var(--muted);margin-bottom:0}.assessment-question-card{border:1px solid var(--line);background:#fbfefd;border-radius:8px;gap:12px;padding:14px;display:grid}.assessment-question-heading{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.assessment-question-heading small{color:var(--muted);font-weight:800}.assessment-choice-editor{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.student-assessment-word-list{gap:10px;display:grid}.student-word-row.compact{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.class-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;display:grid}.class-roster-list{gap:20px;display:grid}.class-roster-panel{background:var(--surface);border:1px solid var(--line);border-radius:8px;overflow:hidden;box-shadow:0 10px 35px #2f6f640f}.class-roster-panel.open{border-color:var(--primary)}.class-roster-trigger{color:var(--ink);cursor:pointer;text-align:left;background:#fbfefd;border:0;grid-template-columns:130px minmax(0,1fr);align-items:center;gap:18px;width:100%;min-height:68px;padding:18px 22px;display:grid}.class-roster-trigger:hover,.class-roster-panel.open .class-roster-trigger{background:var(--surface-soft)}.class-grade{color:var(--accent);text-transform:uppercase;font-size:.82rem;font-weight:900}.class-name{font-size:1.1rem;font-weight:900}.class-card{gap:22px;padding:24px;display:grid}.class-card dl{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:0;display:grid}.class-card dt{color:var(--muted);text-transform:uppercase;margin-bottom:6px;font-size:.82rem;font-weight:800}.class-card dd{margin:0;font-size:1.65rem;font-weight:900}.word-form{grid-template-columns:repeat(3,minmax(0,1fr))}.csv-upload-layout{grid-template-columns:minmax(260px,.7fr) minmax(0,1.3fr);align-items:stretch;gap:16px;margin-bottom:16px;display:grid}.csv-upload-box,.csv-format-note{border:1px solid var(--line);background:#fbfefd;border-radius:8px;padding:16px}.csv-format-note{color:var(--muted)}.csv-format-note strong{color:var(--ink);margin-bottom:4px;display:block}.csv-format-note p{margin-bottom:12px}.csv-format-note p:last-child{margin-bottom:0}.wide-field{grid-column:span 2}.form-actions{align-self:end}.table-toolbar{grid-template-columns:minmax(280px,1fr) 220px;align-items:end;gap:16px;margin-bottom:20px;display:grid}.table-wrap{border:1px solid var(--line);border-radius:8px;overflow-x:auto}table{border-collapse:collapse;width:100%;min-width:980px}th,td{border-bottom:1px solid var(--line);text-align:left;vertical-align:top;padding:14px}th{background:linear-gradient(90deg, var(--surface-soft), var(--surface-blue));color:var(--muted);text-transform:uppercase;font-size:.78rem}tbody tr:last-child td{border-bottom:0}.jp-word{font-size:1.3rem;font-weight:900}.tag-list{flex-wrap:wrap;gap:6px;display:flex}.tag-list span{background:var(--accent-soft);color:#8a4528;border:1px solid #ffd7c5;border-radius:999px;padding:5px 9px;font-size:.78rem;font-weight:800;display:inline-flex}.empty-state{background:var(--surface-soft);color:var(--muted);border-radius:8px;margin-bottom:0;padding:18px}.generator-layout{grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);gap:20px;display:grid}.word-picker,.material-options{gap:10px;margin-bottom:18px;display:grid}.check-row,.radio-card{border:1px solid var(--line);cursor:pointer;background:#fbfefd;border-radius:8px;flex-direction:row;align-items:center;gap:12px;padding:12px;display:flex}.check-row input,.radio-card input{min-height:auto}.check-row span,.check-row strong,.check-row small{display:block}.check-row small{color:var(--muted);margin-top:2px}:is(.radio-card:has(input:checked),.check-row:has(input:checked)){background:linear-gradient(90deg, var(--surface-soft), var(--surface-blue));border-color:var(--primary)}.preview-panel{min-height:220px}.quiz-list{gap:16px;margin:0;padding-left:20px;display:grid}.quiz-list li::marker{font-weight:900}.quiz-list p{color:var(--muted);margin:8px 0 0}.choice-item{margin:0 18px 8px 0;display:inline-block}.answer-key{font-size:.88rem;font-weight:800;color:var(--primary-dark)!important}.interactive-quiz{gap:18px;display:grid}.student-quiz-helper,.student-quiz-result{background:var(--surface-soft);border:1px solid var(--line);border-radius:8px;margin:0;padding:14px}.student-quiz-result{justify-content:space-between;align-items:center;gap:12px;display:flex}.student-quiz-result strong,.student-quiz-result p{margin-bottom:0}.student-quiz-result strong{color:var(--primary-dark);font-size:1.1rem}.interactive-quiz-list{padding-left:20px}.interactive-choice-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:10px;display:grid}.interactive-choice{border:1px solid var(--line);color:var(--ink);cursor:pointer;text-align:left;background:#fbfefd;border-radius:8px;min-height:42px;padding:10px 12px;font-size:.9rem;font-weight:900;line-height:1.35}.interactive-choice:hover,.interactive-choice.selected{background:linear-gradient(90deg, var(--surface-soft), var(--surface-blue));border-color:var(--primary)}.single-flashcard-preview{justify-items:center;gap:16px;display:grid}.single-flashcard{background:linear-gradient(145deg, #fff, var(--surface-soft));border:1px solid var(--line);color:var(--ink);cursor:pointer;text-align:center;border-radius:8px;justify-content:center;align-items:center;width:min(100%,560px);min-height:300px;padding:32px;transition:background .16s,border-color .16s,transform .16s;display:flex;box-shadow:0 16px 45px #2f6f641f}.single-flashcard:hover{border-color:var(--primary);transform:translateY(-2px)}.single-flashcard.flipped{background:linear-gradient(145deg, #fff, var(--surface-blue))}.flashcard-side{justify-items:center;gap:12px;display:grid}.flashcard-side small{color:var(--muted);text-transform:uppercase;font-size:.82rem;font-weight:900}.flashcard-side strong{font-size:clamp(2.4rem,8vw,5rem);line-height:1;display:block}.flashcard-side span{color:var(--primary-dark);font-size:1.35rem;font-weight:900;display:block}.flashcard-controls{justify-content:center;align-items:center;gap:16px;display:flex}.flashcard-controls button{border:1px solid var(--line);color:var(--primary-dark);cursor:pointer;background:#fff;border-radius:999px;justify-content:center;align-items:center;width:44px;height:44px;font-size:1.25rem;font-weight:900;display:inline-flex}.flashcard-controls button:hover{background:var(--surface-soft);border-color:var(--primary)}.flashcard-controls span{color:var(--muted);text-align:center;min-width:54px;font-weight:900}.reading-preview{background:var(--surface-soft);border:1px solid var(--line);border-radius:8px;padding:22px;line-height:1.85}.reading-preview h3{margin-bottom:10px}.reading-preview p{margin-bottom:0}.reading-comprehension-preview{grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);align-items:stretch;gap:18px;display:grid}.questions-preview{border:1px solid var(--line);background:#fbfefd;border-radius:8px;padding:22px}.questions-preview h3{margin-bottom:16px}.materials-list{gap:16px;display:grid}.material-card{justify-content:space-between;align-items:center;gap:18px;padding:22px;display:flex}.material-card h2{margin-bottom:8px}.material-card p{margin-bottom:0}.material-type{color:var(--accent);text-transform:uppercase;margin-bottom:8px;font-size:.82rem;font-weight:900}@media (max-width:980px){.login-page,.app-shell,.generator-layout,.dashboard-class-layout,.assignment-builder,.student-home-layout,.student-growth-home,.student-progress-layout,.student-assignment-layout,.student-generator-layout,.student-ondoku-layout,.student-message-layout,.student-assessment-home-grid,.assessment-result-grid,.student-report-grid,.student-report-columns,.vocabulary-set-layout,.vocabulary-set-word-columns,.assessment-layout,.student-assessment-layout,.assessment-edit-grid,.message-layout,.reading-comprehension-preview,.class-data-grid,.class-grid{grid-template-columns:1fr}.sidebar{position:static}.summary-grid,.word-form,.csv-upload-layout,.form-grid-two,.folder-form,.message-filter-grid,.ondoku-filter-bar,.ondoku-progress-summary,.class-data-class-list,.compact-options{grid-template-columns:repeat(2,minmax(0,1fr))}.table-toolbar{grid-template-columns:1fr}}@media (max-width:700px){.login-page,.page-content{padding:20px}.login-panel{padding:26px}.message-workspace{grid-template-columns:1fr}.message-mailbox-rail{width:100%;position:static}.message-mailbox-rail:hover,.message-mailbox-rail:focus-within,.new-message-button,.mailbox-item,.mailbox-folder-form{width:100%}.new-message-button,.mailbox-item{grid-template-columns:34px minmax(0,1fr) auto}.new-message-button strong,.mailbox-item strong,.mailbox-item small,.mailbox-folder-form input{opacity:1}.summary-grid,.word-form,.csv-upload-layout,.form-grid-two,.folder-form,.mailbox-folder-form,.mailbox-nav,.message-filter-grid,.class-data-class-list,.compact-options{grid-template-columns:1fr}.assignment-card{align-items:stretch}.assignment-status{justify-items:start}.assignment-card-trigger{grid-template-columns:1fr;align-items:start}.wide-field{grid-column:auto}.material-card,.message-detail-heading,.selected-class-summary,.section-heading,.student-report-heading,.student-assessment-card,.student-assessment-result-lists>div,.top-header{flex-direction:column;align-items:start}.student-progress-row{grid-template-columns:1fr;align-items:start}.growth-panel-heading,.ondoku-progress-heading{flex-direction:column;align-items:stretch}.ondoku-title-control label,.ondoku-title-control select{width:100%}.ondoku-score-details{grid-template-columns:repeat(2,minmax(0,1fr))}.growth-range-control{align-self:start;width:min(100%,280px)}.growth-chart-wrap{aspect-ratio:680/320;min-height:210px}.class-today-row,.skill-check-home-row{align-items:start}.skill-check-home-row{flex-direction:column}.student-summary-grid,.student-word-row,.student-result-card,.student-assessment-card,.student-assessment-result-lists>div,.ondoku-student-row,.ondoku-filter-bar,.ondoku-progress-summary,.ondoku-attempt-row,.ondoku-attempt-row.teacher,.ondoku-recording-file-row,.unit-chart-row,.unit-bars label,.student-recording-row,.student-report-recording-list article,.recording-status,.vocabulary-set-edit-grid,.set-word-row,.assessment-choice-editor,.student-word-row.compact,.interactive-choice-grid{grid-template-columns:1fr}.student-conversation-thread .thread-message.student{margin-left:0}.class-roster-trigger{grid-template-columns:1fr;align-items:start;gap:6px}}.vocabulary-page{min-height:100vh;padding:48px 28px}.vocabulary-shell{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:8px;gap:24px;width:100%;max-width:820px;margin:0 auto;padding:36px;display:grid}.vocabulary-shell-wide{max-width:1120px}.vocabulary-shell-author{max-width:1040px}.bank-shell{gap:20px}.bank-title-row,.bank-toolbar{justify-content:space-between;align-items:center;gap:16px;display:flex}.bank-title-row h1,.bank-title-row p,.bank-search-summary,.bank-operation-message{margin:0}.bank-toolbar{align-items:stretch}.bank-new-menu,.bank-item-menu{position:relative}.bank-new-menu>summary,.bank-item-menu>summary{cursor:pointer;list-style:none}.bank-new-menu>summary::-webkit-details-marker{display:none}.bank-item-menu>summary::-webkit-details-marker{display:none}.bank-new-menu>summary{min-width:104px}.bank-new-menu-panel,.bank-item-menu-panel{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);z-index:20;border-radius:6px;gap:10px;padding:14px;display:grid;position:absolute}.bank-new-menu-panel{min-width:280px;top:calc(100% + 6px);left:0}.bank-new-menu-panel>a,.bank-item-menu-panel>a{color:var(--ink);padding:7px 8px;font-weight:800;text-decoration:none}.bank-new-menu-panel>a:hover,.bank-item-menu-panel>a:hover{background:var(--surface-soft)}.bank-search{flex:1;justify-content:flex-end;gap:8px;display:flex}.bank-search input{min-width:240px;max-width:420px}.bank-clear-search{color:var(--muted);align-self:center;font-weight:800}.bank-breadcrumbs{flex-wrap:wrap;align-items:center;gap:8px;min-height:30px;display:flex}.bank-breadcrumbs span{align-items:center;gap:8px;display:inline-flex}.bank-breadcrumbs a,.bank-breadcrumbs button{color:var(--ink);cursor:pointer;font:inherit;background:0 0;border:0;padding:2px;font-weight:800;text-decoration:none}.bank-search-summary{color:var(--muted)}.bank-file-list{border:1px solid var(--line);border-radius:6px;overflow:visible}.bank-file-header,.bank-file-row{grid-template-columns:minmax(260px,2.4fr) minmax(70px,.7fr) minmax(58px,.5fr) minmax(64px,.6fr) minmax(92px,.8fr) 42px;align-items:center;gap:14px;min-height:54px;padding:8px 14px;display:grid}.bank-file-header{background:var(--surface-soft);color:var(--muted);font-size:.78rem;font-weight:800}.bank-file-row{border-top:1px solid var(--line);font-size:.9rem}.bank-file-row:hover{background:#fbfefd}.bank-file-row.is-dragging{opacity:.58}.bank-file-row.is-drop-target{background:var(--surface-blue);box-shadow:inset 3px 0 0 var(--primary)}.bank-file-name{align-items:center;gap:12px;min-width:0;display:flex}.bank-file-name>span:last-child{min-width:0;display:grid}.bank-file-name a{color:var(--ink);overflow-wrap:anywhere;font-weight:850;text-decoration:none}.bank-file-name small,.bank-picker-row small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.bank-folder-mark{background:#d8ebf8;border:1px solid #9bc5df;border-radius:2px;flex:0 0 22px;width:22px;height:16px;display:inline-block;position:relative}.bank-folder-mark:before{content:"";background:#d8ebf8;border:1px solid #9bc5df;border-bottom:0;border-radius:2px 2px 0 0;width:10px;height:5px;position:absolute;top:-5px;left:-1px}.bank-set-mark{color:#37664b;background:#eaf4ef;border:1px solid #a8cdb9;border-radius:3px;flex:0 0 22px;justify-content:center;align-items:center;width:22px;height:26px;font-size:.7rem;font-weight:900;display:inline-flex}.bank-item-menu>summary{border-radius:4px;justify-content:center;align-items:center;width:34px;height:34px;font-size:1.25rem;display:flex}.bank-item-menu>summary:hover{background:var(--surface-soft)}.bank-item-menu-panel{min-width:280px;top:36px;right:0}.bank-menu-form{border-top:1px solid var(--line);gap:8px;padding-top:10px;display:grid}.bank-menu-form label{gap:5px;font-size:.78rem;font-weight:800;display:grid}.bank-menu-form input,.bank-menu-form select{width:100%;min-width:0}.bank-menu-form .button{min-height:36px;padding:7px 10px}.bank-operation-message{color:var(--muted);font-size:.78rem;line-height:1.4}.bank-operation-message[role=alert]{color:#793b24}.bank-picker{gap:14px}.bank-picker-search input{width:100%}.bank-picker-folders,.bank-picker-list{border:1px solid var(--line);border-radius:6px;display:grid;overflow:hidden}.bank-picker-folder,.bank-picker-row{background:var(--surface);border:0;border-top:1px solid var(--line);color:var(--ink);font:inherit;text-align:left;align-items:center;gap:12px;width:100%;min-height:48px;padding:9px 12px;display:grid}.bank-picker-folder:first-child,.bank-picker-row:first-child{border-top:0}.bank-picker-folder{cursor:pointer;grid-template-columns:24px 1fr}.bank-picker-row{grid-template-columns:22px minmax(0,1fr) auto}.bank-picker-row>span:nth-child(2){min-width:0;display:grid}.bank-picker-row>span:last-child{color:var(--muted);font-size:.8rem;font-weight:800}.vocabulary-activity-shell{max-width:720px}.vocabulary-title-row,.vocabulary-section-heading,.vocabulary-card-heading,.vocabulary-readiness>div{justify-content:space-between;align-items:center;gap:14px;display:flex}.vocabulary-title-row h1,.vocabulary-title-row p,.vocabulary-section-heading h2,.vocabulary-section-heading p,.vocabulary-set-card h2,.vocabulary-set-card p,.vocabulary-readiness p,.vocabulary-alert p,.student-action-band p,.activity-result p,.review-summary p{margin-bottom:0}.vocabulary-set-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.vocabulary-set-card{border:1px solid var(--line);background:#fbfefd;border-radius:8px;gap:18px;padding:22px;display:grid}.vocabulary-card-heading{color:var(--muted);font-size:.82rem;font-weight:800}.vocabulary-set-card h2{font-size:1.2rem}.vocabulary-card-meta,.form-help,.field-optional,.vocabulary-section-heading p{color:var(--muted);font-size:.84rem}.vocabulary-card-meta,.form-help{font-weight:700}.vocabulary-empty-state,.vocabulary-alert,.vocabulary-readiness,.activity-result,.skill-check-intro{background:var(--surface-soft);border:1px solid var(--line);border-radius:8px;gap:12px;padding:20px;display:grid}.skill-check-hub-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:16px;display:grid}.skill-check-hub-card{border-top:1px solid var(--line);gap:20px;padding-top:24px;display:grid}.skill-check-hub-heading{flex-wrap:wrap;justify-content:space-between;align-items:start;gap:16px;display:flex}.skill-check-hub-heading h2,.skill-check-hub-heading p,.skill-check-hub-card p{margin-bottom:0}.skill-check-hub-details{gap:4px;display:grid}.skill-check-hub-details span{color:var(--muted);font-size:.88rem}.vocabulary-alert-error{background:var(--accent-soft);color:#793b24;border-color:#ffd7c5}.vocabulary-section{gap:16px;display:grid}.vocabulary-progress-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.vocabulary-progress-summary-item{border:1px solid var(--line);color:inherit;background:#fbfefd;border-radius:8px;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;text-decoration:none;display:flex}.vocabulary-progress-summary-item:hover,.vocabulary-progress-summary-item:focus-visible{background:#fff;box-shadow:0 8px 24px #2f6f6414}.vocabulary-progress-summary-item span{color:var(--ink);font-weight:700}.vocabulary-progress-summary-item strong{color:var(--primary-dark);font-size:1.4rem}.vocabulary-word-grid,.student-word-list{gap:10px;display:grid}.vocabulary-word-row{border:1px solid var(--line);background:#fbfefd;border-radius:8px;grid-template-columns:minmax(120px,.7fr) minmax(120px,.7fr) minmax(180px,1fr);align-items:center;gap:16px;padding:14px 16px;display:grid}.teacher-progress-table-wrap{border:1px solid var(--line);border-radius:8px;overflow-x:auto}.teacher-progress-table{border-collapse:collapse;width:100%;min-width:820px}.teacher-progress-table th,.teacher-progress-table td{border-bottom:1px solid var(--line);text-align:left;vertical-align:middle;padding:14px}.teacher-progress-table th{background:var(--surface-soft);color:var(--muted);text-transform:uppercase;font-size:.78rem}.teacher-progress-table tr:last-child td{border-bottom:0}.reading-dashboard-summary,.ondoku-dashboard-summary,.reading-report-list,.reading-report-activity{gap:8px;display:grid}.reading-dashboard-summary,.ondoku-dashboard-summary{min-width:190px}.reading-dashboard-summary strong,.ondoku-dashboard-summary strong{overflow-wrap:anywhere;max-width:32ch}.reading-dashboard-summary span,.ondoku-dashboard-summary span,.reading-report-empty{color:var(--muted);font-size:.86rem}.reading-report-list{gap:18px;width:100%;min-width:0;max-width:100%}.reading-report-section{min-width:0}.reading-report-activity{border:1px solid var(--line);border-radius:8px;width:100%;min-width:0;max-width:100%;padding:16px;overflow:hidden}.reading-report-activity .teacher-progress-table-wrap{width:100%;max-width:100%}.reading-report-heading{justify-content:space-between;align-items:center;gap:12px;display:flex}.reading-report-heading h3,.reading-report-activity h4{overflow-wrap:anywhere;margin:0}.reading-report-summary-table{min-width:520px}.reading-attempt-history-table{min-width:680px}.skill-check-history-table{min-width:900px}.ondoku-attempt-list{gap:12px;display:grid}.ondoku-attempt-card{border:1px solid var(--line);border-radius:8px;gap:8px;width:100%;min-width:0;max-width:100%;padding:12px;display:grid;overflow:hidden}.ondoku-attempt-heading{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px;display:flex}.ondoku-attempt-heading time{color:var(--muted);font-size:.86rem}.ondoku-attempt-score-table{min-width:320px}.ondoku-transcript p[lang=ja]{overflow-wrap:anywhere}.ondoku-play-audio{justify-items:start;gap:4px;display:grid}.ondoku-play-audio audio,.ondoku-attempt-card audio{max-width:100%}.ondoku-audio-unavailable{color:var(--muted)}.skill-check-invalidation-form{gap:8px;min-width:180px;display:grid}.skill-check-invalidation-form p{margin:0}.vocabulary-author-form,.vocabulary-set-fields,.vocabulary-item-list{gap:18px;display:grid}.vocabulary-set-fields{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.vocabulary-set-fields textarea{min-height:96px}.field-optional{font-weight:500}.vocabulary-item-editor{border:1px solid var(--line);background:#fbfefd;border-radius:8px;gap:12px;margin:0;padding:16px;display:grid}.vocabulary-item-editor.has-error{border-color:var(--accent)}.vocabulary-item-editor legend{align-items:center;gap:12px;padding:0 8px;font-weight:800;display:flex}.item-completion{color:var(--muted);font-size:.76rem}.item-completion.complete{color:var(--primary-dark)}.item-completion.incomplete{color:#8a4528}.vocabulary-item-fields{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.text-button{color:var(--primary-dark);cursor:pointer;background:0 0;border:0;justify-self:end;min-height:40px;padding:8px;font-weight:800}.text-button.danger{color:#8a4528}.vocabulary-form-actions,.student-card-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.student-card-actions,.student-set-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.student-set-card{min-height:280px}.student-progress-summary{grid-template-columns:repeat(auto-fit,minmax(0,1fr));gap:8px;display:grid}.student-progress-summary span{color:var(--muted);font-size:.78rem}.student-progress-summary strong{color:var(--ink);font-size:1.15rem;display:block}.student-action-band{background:var(--surface-soft);border:1px solid var(--line);border-radius:8px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:18px;padding:18px;display:grid}.student-action-band.official{background:var(--surface-blue);border-color:#c6e3fb}.student-action-band strong,.student-vocabulary-word strong,.student-vocabulary-word span{display:block}.student-action-band p,.student-vocabulary-word>div span{color:var(--muted);margin-top:5px;font-size:.86rem}.practice-mode-selection,.practice-mode-grid,.practice-mode-option{gap:16px;display:grid}.practice-mode-selection h2,.practice-mode-option h3,.practice-mode-option p{margin:0}.practice-mode-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.practice-mode-option{border:1px solid var(--line);background:#fbfefd;border-radius:8px;align-content:space-between;min-height:176px;padding:20px}.practice-mode-option p{color:var(--muted);margin-top:6px;font-size:.9rem}.practice-selection-shell{max-width:880px}.practice-selection-client,.practice-selection-client section,.practice-selection-list,.practice-selection-footer,.practice-recovery{gap:16px;display:grid}.practice-source-tabs{background:var(--surface-soft);border:1px solid var(--line);border-radius:8px;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;padding:4px;display:grid}.practice-source-tabs button{color:var(--muted);cursor:pointer;font:inherit;background:0 0;border:1px solid #0000;border-radius:6px;min-height:48px;padding:10px 14px;font-weight:800}.practice-source-tabs button.active{background:var(--surface);border-color:var(--line);color:var(--ink)}.practice-source-tabs button:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.practice-selection-row:has(input:focus-visible){outline:3px solid var(--focus);outline-offset:2px}.practice-selection-row{border:1px solid var(--line);cursor:pointer;background:#fbfefd;border-radius:8px;grid-template-columns:24px minmax(0,1fr) auto;align-items:center;gap:14px;min-height:68px;padding:14px 16px;display:grid}.practice-selection-row.selected{background:var(--surface-blue);border-color:var(--primary)}.practice-selection-row input{accent-color:var(--primary-dark);width:20px;height:20px;margin:0}.practice-selection-row>span:nth-child(2){gap:3px;min-width:0;display:grid}.practice-selection-row small,.practice-selection-state,.practice-word-search span{color:var(--muted);font-size:.82rem;font-weight:700}.practice-selection-state{color:var(--primary-dark)}.practice-word-search{gap:7px;display:grid}.practice-word-search input{background:var(--surface);border:1px solid var(--line);color:var(--ink);font:inherit;border-radius:6px;width:100%;min-height:48px;padding:10px 12px}.practice-selection-list{max-height:480px;padding:3px;overflow-y:auto}.practice-selection-footer{border-top:1px solid var(--line);grid-template-columns:minmax(0,1fr) auto;align-items:center;padding-top:18px}.practice-selection-footer p{margin:0}.practice-selection-footer .form-help{grid-column:1/-1}.practice-recovery .button{justify-self:start}.student-vocabulary-word{border:1px solid var(--line);background:#fbfefd;border-radius:8px;justify-content:space-between;align-items:center;gap:16px;min-height:68px;padding:14px 16px;display:flex}.activity-form{gap:18px;display:grid}.question-progress{gap:8px;display:grid}.question-progress span{color:var(--muted);font-size:.84rem;font-weight:800}.question-progress progress{accent-color:var(--primary-dark);width:100%;height:10px}.question-prompt{background:var(--surface-soft);border:1px solid var(--line);text-align:center;border-radius:8px;padding:26px}.question-prompt.official{background:var(--surface-blue);border-color:#c6e3fb}.question-prompt strong{margin-bottom:6px;font-size:2rem;display:block}.question-prompt span{color:var(--muted)}.flashcards-round{gap:14px}.flashcards-progress{color:var(--muted);text-align:center;font-size:.86rem;font-weight:800}.flashcard-stage{grid-template-columns:48px minmax(0,1fr) 48px;align-items:center;gap:10px;width:100%;display:grid}.flashcard-card{appearance:none;color:var(--ink);cursor:pointer;perspective:1100px;background:0 0;border:0;width:100%;min-width:0;padding:0}.flashcard-card:focus-visible,.flashcard-chevron:focus-visible{outline:3px solid var(--primary);outline-offset:4px}.flashcard-card-inner{min-height:340px;transform-style:preserve-3d;width:100%;transition:transform .32s,filter .32s;display:grid;position:relative}.flashcard-card.is-flipped .flashcard-card-inner{transform:rotateY(180deg)}.flashcard-face{backface-visibility:hidden;background:#fff;border:1px solid #d9dfdc;border-radius:8px;flex-direction:column;grid-area:1/1;justify-content:center;align-items:center;width:100%;min-height:340px;padding:44px;display:flex;box-shadow:0 10px 24px #2331371a}.flashcard-front strong{color:#101315;font-size:3rem;font-weight:700}.flashcard-front{gap:14px}.flashcard-front .flashcard-reading{color:#5d676b;font-size:1.45rem;font-weight:600}.flashcard-card-back{transform:rotateY(180deg)}.flashcard-reading{color:#30383b;font-size:2rem;font-weight:600}.flashcard-meaning{color:#101315;font-size:2rem;font-weight:700}.flashcard-chevron{appearance:none;color:var(--primary-dark);cursor:pointer;background:0 0;border:0;border-radius:50%;justify-content:center;align-items:center;width:48px;height:48px;padding:0 0 5px;font-size:2.5rem;display:flex}.flashcard-chevron:hover:not(:disabled){background:var(--surface-soft)}.flashcard-chevron:disabled{color:#b5bfbc;cursor:default}.flashcard-rating-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;width:100%;max-width:440px;margin:4px auto 0;display:grid}.flashcards-complete{text-align:center}@media (prefers-reduced-motion:reduce){.flashcard-card-inner{transition:none}}.activity-choices{background:0 0;padding:0}.activity-choices .choice-row{cursor:pointer;min-height:54px;padding:14px 16px}.activity-choices .choice-row:hover,.activity-choices .choice-row.selected{background:var(--surface-soft);border-color:var(--primary)}.activity-choices .choice-row:has(input:disabled){cursor:default}.answer-feedback,.review-summary,.skill-check-submit{border:1px solid var(--line);border-radius:8px;gap:6px;margin:0;padding:16px;display:grid}.answer-feedback.correct{background:var(--surface-soft);color:var(--primary-dark)}.answer-feedback.incorrect,.review-summary{background:var(--accent-soft);color:#793b24;border-color:#ffd7c5}.answer-feedback span{font-size:.9rem}.activity-result{text-align:center}.activity-result .status-pill{justify-self:center}.activity-result h2{margin:0;font-size:1.65rem}.skill-check-intro ul{color:var(--muted);margin-bottom:0;padding-left:20px;line-height:1.65}.skill-check-submit{background:var(--surface-blue);border-color:#c6e3fb}@media (max-width:820px){.vocabulary-page{padding:28px 20px}.vocabulary-shell{padding:28px}.vocabulary-set-grid,.student-set-grid,.vocabulary-set-fields{grid-template-columns:1fr}.vocabulary-item-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.vocabulary-item-fields label:last-child{grid-column:1/-1}.bank-file-header,.bank-file-row{grid-template-columns:minmax(210px,1fr) 70px 90px 42px}.bank-file-header>:nth-child(3),.bank-file-row>:nth-child(3),.bank-file-header>:nth-child(4),.bank-file-row>:nth-child(4){display:none}}@media (max-width:520px){.vocabulary-page{padding:16px}.vocabulary-shell{gap:20px;padding:22px 18px}.vocabulary-title-row,.vocabulary-section-heading,.vocabulary-card-heading,.student-action-band,.student-vocabulary-word{grid-template-columns:1fr;align-items:flex-start}.vocabulary-title-row,.vocabulary-section-heading,.vocabulary-card-heading,.student-vocabulary-word{display:grid}.practice-source-tabs,.practice-selection-footer{grid-template-columns:1fr}.practice-selection-row{grid-template-columns:22px minmax(0,1fr);align-items:start}.practice-selection-state{grid-column:2}.practice-selection-footer .button{width:100%}.vocabulary-item-fields,.vocabulary-form-actions,.student-card-actions,.student-progress-summary,.vocabulary-progress-summary,.practice-mode-grid,.button-row{grid-template-columns:1fr}.bank-toolbar,.bank-search{flex-direction:column;align-items:stretch}.bank-search input{width:100%;min-width:0;max-width:none}.bank-new-menu>summary{width:100%}.bank-new-menu-panel,.bank-item-menu-panel{max-width:calc(100vw - 48px)}.bank-file-header,.bank-file-row{grid-template-columns:minmax(150px,1fr) 82px 38px;gap:8px;padding:8px 10px}.bank-file-header>:nth-child(2),.bank-file-row>:nth-child(2){display:none}.bank-picker-row{grid-template-columns:22px minmax(0,1fr)}.bank-picker-row>span:last-child{grid-column:2}.question-prompt strong{font-size:1.75rem}.flashcard-stage{grid-template-columns:minmax(0,1fr);gap:4px;position:relative}.flashcard-card{grid-column:1}.flashcard-card-inner,.flashcard-face{min-height:280px}.flashcard-face{padding:28px 20px}.flashcard-front strong{font-size:2.25rem}.flashcard-reading{font-size:1.5rem}.flashcard-meaning{font-size:1.25rem}.flashcard-chevron{z-index:2;width:40px;height:40px;font-size:2.1rem;position:absolute;top:50%;transform:translateY(-50%)}.flashcard-chevron-previous{left:4px}.flashcard-chevron-next{right:4px}.flashcard-rating-actions{grid-template-columns:1fr}.student-vocabulary-word .status-pill{justify-self:start}}
