:root{color:#182026;background:#f6f7f2;font-family:Inter,PingFang SC,Microsoft YaHei,system-ui,sans-serif}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{border:0;border-radius:8px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;padding:0 14px;background:#e7ebe4;color:#182026}a{color:inherit;text-decoration:none}button:disabled{cursor:not-allowed;opacity:.45}input,select,textarea{width:100%;border:1px solid #d7ddd5;border-radius:8px;padding:12px;background:#fff;color:#182026}textarea{resize:vertical}label{display:grid;gap:8px;font-size:14px;color:#55615b}h1,h2,h3,h4,p{margin:0}.primary{background:#166b63;color:#fff}.error{color:#b3261e}.muted{color:#78847e}.eyebrow{color:#166b63;font-weight:700;font-size:13px}.spin{animation:spin 1s linear infinite}.home-shell,.auth-shell{min-height:100vh;display:grid;place-items:center;padding:16px;background:#eef3f0}.home-panel,.auth-panel{width:min(100%,720px);background:#fff;border:1px solid #dde3da;border-radius:8px;padding:24px;display:grid;gap:18px}.home-panel h1,.auth-panel h1,.page-head h1{font-size:clamp(30px,5vw,44px);line-height:1.12}.entry-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.entry-card{border:1px solid #dde3da;border-radius:8px;min-height:150px;padding:18px;display:grid;align-content:space-between;background:#f8faf6}.entry-card strong{font-size:22px}.entry-card span,.teacher-account small,.admin-row span{color:#66716b}.admin-shell{min-height:100vh;width:min(100%,960px);margin:0 auto;padding:22px;display:grid;gap:16px;align-content:start}.page-head{display:flex;justify-content:space-between;gap:16px;align-items:center}.form-grid{grid-template-columns:repeat(3,minmax(0,1fr)) auto;align-items:end}.form-grid h2,.form-grid .error{grid-column:1 / -1}.admin-list{display:grid;gap:10px}.admin-row{display:grid;grid-template-columns:minmax(160px,1fr) minmax(180px,240px) auto;gap:12px;align-items:end;border-top:1px solid #e6ece4;padding-top:12px}.admin-row>div{display:grid;gap:4px}.room-picker-shell{width:min(100%,1120px)}.room-picker-shell .page-head small{color:#66716b}.room-list{display:grid;gap:0;padding:0}.room-row{display:grid;grid-template-columns:minmax(220px,1fr) auto auto auto auto;gap:14px;align-items:center;min-height:72px;padding:12px 16px;border-top:1px solid #e6ece4}.room-row:first-child{border-top:0}.room-row>div:first-child{min-width:0;display:grid;gap:3px}.room-row strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:20px}.room-row>div:first-child span{color:#66716b}.room-pill,.room-count{border-radius:8px;background:#eef4f1;color:#426059;padding:6px 10px;font-size:13px;white-space:nowrap}.room-count{background:#f6f7f2;color:#66716b}.empty-room-card{min-height:180px;place-items:center;text-align:center}@keyframes spin{to{transform:rotate(360deg)}}.teacher-shell{height:100vh;min-height:0;display:grid;grid-template-columns:360px 1fr;overflow:hidden}.teacher-shell.sidebar-collapsed{grid-template-columns:1fr}.teacher-shell.sidebar-collapsed .teacher-setup{display:none}.teacher-setup{background:#fff;border-right:1px solid #dde3da;padding:18px;display:flex;flex-direction:column;gap:14px;min-height:0;overflow:auto}.teacher-setup h1{font-size:24px;line-height:1.15}.teacher-account{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.teacher-account>div:first-child{min-width:0;display:grid;gap:4px}.teacher-account h1,.teacher-account small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.compact-actions{display:flex;gap:6px}.field input{min-height:44px}.sentence-editor{display:grid;gap:8px}.section-title{display:flex;align-items:center;justify-content:space-between;font-size:14px;color:#55615b}.check-row{display:flex;grid-template-columns:none;align-items:center;gap:10px}.check-row input{width:auto}.readonly-field{display:grid;gap:8px;font-size:14px;color:#55615b}.readonly-field strong{border:1px solid #d7ddd5;border-radius:8px;min-height:44px;padding:12px;background:#f6f7f2;color:#182026}.icon-button{width:34px;min-height:34px;padding:0}.icon-button.danger{color:#9e2a24;background:#f4e8e6}.danger-action{background:#b3261e;color:#fff}.sentence-row{display:grid;grid-template-columns:26px 1fr 34px;gap:8px;align-items:center}.sentence-row span{color:#78847e;text-align:center}.sentence-row input{min-height:40px;padding:9px 10px}.task-list{display:grid;gap:8px;overflow:auto}.task-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px;align-items:center;border-radius:8px;background:#e7ebe4;padding:6px}.task-item.active{background:#dcebe8;color:#0c554e}.task-select{min-width:0;min-height:46px;padding:0 8px;background:transparent;justify-content:space-between;text-align:left}.task-select strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.task-select span{font-size:12px;color:#66716b}.task-actions{display:flex;gap:4px}.task-actions .icon-button{width:30px;min-height:30px;background:#ffffff94}.dashboard{height:100vh;min-height:0;padding:22px;display:grid;grid-template-rows:auto auto minmax(0,1fr);gap:16px;overflow:hidden}.empty-dashboard{place-items:center;min-height:100vh}.dashboard-head{display:flex;justify-content:space-between;gap:18px;align-items:center}.dashboard-title{display:flex;align-items:flex-start;gap:14px;min-width:0}.dashboard-title>div{min-width:0}.dashboard-head h2{font-size:clamp(28px,4vw,42px)}.actions{display:flex;gap:10px;flex-wrap:wrap}.status-strip{display:grid;grid-template-columns:repeat(4,minmax(110px,1fr)) minmax(260px,360px);gap:10px}.panel,.mini-metric,.mini-code,.student-panel{background:#fff;border:1px solid #dde3da;border-radius:8px}.mini-metric{min-height:68px;padding:8px 12px;display:flex;justify-content:space-between;align-items:center;gap:10px}.mini-metric span{color:#66716b}.mini-metric strong{font-size:26px;line-height:1}.mini-metric .status-word{font-size:21px}.mini-code{min-height:68px;padding:8px 12px;display:grid;gap:2px;align-content:center;text-align:center}.mini-code>span,.mini-code small{color:#66716b}.mini-code strong{color:#166b63;font-size:32px;line-height:1;letter-spacing:0}.mini-code small{font-size:12px}.share-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;background:#f6f7f2;display:grid;place-items:center;height:100dvh;overflow:hidden;padding:clamp(10px,2vmin,28px)}.share-modal{width:min(100%,980px);height:100%;min-height:0;display:grid;grid-template-rows:auto auto auto minmax(0,1fr) auto;place-items:center;gap:clamp(6px,1.5vmin,18px);text-align:center}.share-modal .icon-button{position:fixed;top:24px;right:24px;width:52px;min-height:52px}.share-modal h2{font-size:clamp(28px,7vmin,72px);line-height:1.05}.share-modal>strong{font-size:clamp(56px,18vmin,180px);line-height:.95;letter-spacing:0;color:#166b63}.share-modal img{width:auto;height:100%;max-width:min(82vw,460px);max-height:min(44dvh,460px);object-fit:contain;border:12px solid #fff;border-radius:8px}.share-modal small{max-width:100%;overflow-wrap:anywhere;color:#66716b;font-size:18px}.dashboard-main{display:grid;grid-template-columns:1fr;gap:12px;min-height:0;overflow:hidden}.panel{padding:16px;display:grid;gap:12px;align-content:start}.panel h3,.panel h4{display:flex;gap:8px;align-items:center}.panel h4{font-size:15px}.panel-head{display:flex;justify-content:space-between;gap:12px;align-items:center}.panel-head select{width:128px;padding:8px 10px}.dashboard-tab-panel{min-height:0;grid-template-rows:auto minmax(0,1fr);overflow:hidden}.dashboard-tabs{display:flex;justify-content:space-between;align-items:center;gap:8px;border-bottom:1px solid #e6ece4;padding-bottom:10px}.tab-buttons{display:flex;gap:8px}.dashboard-tabs button{min-height:36px;padding:0 12px;color:#55615b}.dashboard-tabs select{width:128px;padding:8px 10px}.dashboard-tabs button.active{background:#dcebe8;color:#0c554e}.word-cloud{display:flex;gap:8px;flex-wrap:wrap}.word-cloud span{background:#f6ecd6;color:#75520d;border-radius:8px;padding:7px 9px}.analysis-panel ul{margin:0;padding-left:18px}.student-table{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));grid-auto-rows:128px;gap:10px;height:100%;max-height:100%;min-height:0;overflow:auto;align-content:start;padding-right:2px}.student-row{border:1px solid #e0e6dd;border-radius:8px;background:#fff;padding:12px;display:grid;gap:12px;height:100%;align-content:center;justify-items:center;text-align:center}.student-row>div{display:grid;gap:3px}.student-row span{color:#66716b;font-size:13px}.student-row b{font-size:34px;line-height:1}.student-row:disabled{cursor:default;opacity:.72}.analysis-panel{display:grid;gap:12px;align-content:start}.analysis-head{display:flex;justify-content:space-between;gap:10px;align-items:center}.analysis-panel section{display:grid;gap:10px;border-top:1px solid #e6ece4;padding-top:12px}.score-good{color:#166b63}.score-mid{color:#a05d00}.score-low{color:#b3261e}.score-empty{color:#8a958f}.score-progress{color:#166b63}.student-shell{min-height:100vh;display:grid;place-items:center;padding:16px;background:#eef3f0}.student-panel{width:min(100%,480px);padding:22px;display:grid;gap:20px}.student-panel h1{font-size:clamp(28px,8vw,44px);line-height:1.18}.student-task-list{display:grid;gap:10px}.student-title,.student-actions,.progress-actions{display:flex;align-items:center;justify-content:space-between;gap:10px}.student-title{align-items:flex-start}.student-actions{flex-wrap:wrap;justify-content:center}.progress-actions{justify-content:flex-end}.progress-actions button{min-height:34px;padding:0 10px}.task-choice{min-height:66px;justify-content:space-between;text-align:left}.task-choice span{display:grid;gap:4px}.task-choice small{color:#66716b}.reading{min-height:calc(100vh - 32px);align-content:start}.progress,.student-nav{display:flex;justify-content:space-between;align-items:center;gap:10px}.record-actions{display:grid}.recording-actions{display:grid;grid-template-columns:1fr auto;gap:10px}.record,.stop,.discard{min-height:64px;font-size:18px}.record{background:#166b63;color:#fff}.stop{background:#b3261e;color:#fff}.discard{background:#e7ebe4}.current-result{display:grid;gap:10px;border:1px solid #d7e2dd;border-radius:8px;padding:12px}.current-result audio,.detail-sentence audio{width:100%}.final-analysis,.final-score,.sentence-comments{display:grid;gap:12px}.sentence-text span{white-space:pre-wrap}.final-analysis{text-align:left;width:100%;border-top:1px solid #e6ece4;padding-top:16px}.final-analysis h2{font-size:20px}.final-score{width:100%}.final-score .score-total,.final-score article{display:flex;justify-content:space-between;gap:12px;align-items:center;border:1px solid #e0e6dd;border-radius:8px;padding:10px 12px;text-align:left}.final-score .score-total strong{font-size:32px;line-height:1}.final-score span{color:#66716b}.final-analysis ul,.modal ul{margin:0;padding-left:18px}.sentence-comments article{border-top:1px solid #e6ece4;padding-top:10px;display:grid;gap:5px}.sentence-comments small{color:#66716b}.done{text-align:center;place-items:center}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#1820266b;display:grid;place-items:start center;padding:16px;overflow:hidden;z-index:20}.modal{width:min(100%,560px);max-height:min(720px,calc(100vh - 32px));overflow:auto;overscroll-behavior:contain;background:#fff;border-radius:8px;padding:18px;display:grid;gap:14px}.modal>header{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;position:sticky;top:-18px;z-index:2;margin-top:-18px;padding:18px 0 12px;background:#fff;border-bottom:1px solid #e6ece4}.modal h2{font-size:26px}.task-modal{align-content:start}.confirm-modal{max-width:460px}.student-detail-modal{width:min(100%,720px)}.student-detail,.detail-sentence{display:grid;gap:12px}.detail-sentence{border-top:1px solid #e6ece4;padding-top:12px}.detail-sentence-head,.score-grid,.word-scores{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.detail-sentence-head{justify-content:space-between}.score-grid span,.word-scores span{background:#eef4f1;border-radius:8px;padding:6px 10px;font-size:14px}.modal-loading{min-height:120px;display:grid;place-items:center}@media (max-width: 900px){.teacher-shell{grid-template-columns:1fr}.teacher-setup{border-right:0;border-bottom:1px solid #dde3da}.status-strip,.dashboard-main{grid-template-columns:1fr}.dashboard-head{align-items:flex-start;flex-direction:column}.entry-grid,.form-grid,.admin-row,.room-row{grid-template-columns:1fr}.room-row .actions{justify-content:flex-start}}
