.practice-transfer .question{display:grid;grid-template-columns:20px minmax(0,1fr);column-gap:10px;align-items:start}.practice-transfer .question>input{grid-column:1;grid-row:1;margin:2px 0 0}.practice-transfer .question-body{grid-column:2;min-width:0}.question-content-cell{min-width:420px}.question-full-content{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.65;margin-top:5px}.question-inline-image{display:block;width:auto;max-width:min(100%,620px);max-height:360px;margin-top:10px;border:1px solid #dfe7f1;border-radius:8px;background:#f8fafd;cursor:zoom-in;object-fit:contain;object-position:left top}.question-inline-image:focus-visible{outline:3px solid rgba(46,99,199,.25);outline-offset:2px}.practice-transfer .question-body>span{display:block;color:#8190a4;margin-top:7px}.practice-transfer .picker-image{max-width:100%;max-height:280px}.image-preview-backdrop{z-index:30}.image-preview-modal{width:min(920px,calc(100vw - 48px));max-height:calc(100vh - 48px);display:flex;flex-direction:column}.image-preview-modal .pagehead{align-items:center;margin-bottom:14px}.image-preview-stage{overflow:auto;border:1px solid #dfe7f1;border-radius:9px;background:#f8fafd;padding:14px}.image-preview-stage img{display:block;width:100%;height:auto}.tree button.preview{background:#eef8f2;color:var(--green);cursor:default;font-style:italic;opacity:1}.import-modal{width:min(980px,calc(100vw - 48px));max-height:calc(100vh - 48px);overflow:auto}.import-modal-preview{margin-top:18px}:root{font-family:PingFang SC,Microsoft YaHei,sans-serif;color:#18314f;background:#f4f7fb;font-synthesis:none;--navy:#173a70;--navy-2:#214b86;--blue:#2e63c7;--blue-soft:#eaf1ff;--paper:#f4f7fb;--line:#dfe7f1;--muted:#718096;--yellow:#ffd45c;--green:#2f9b69;--orange:#ef8c3a;--red:#d85b5b;--control-h:42px}*{box-sizing:border-box}body{margin:0;min-width:1024px;background:var(--paper)}button,input,select,textarea{font:inherit}.shell{min-height:100vh;display:grid;grid-template-columns:212px 1fr}.sidebar{position:sticky;top:0;height:100vh;background:var(--navy);color:#dfe9fb;padding:20px 15px;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:11px;color:#fff;font-size:17px;font-weight:850;padding:0 7px 22px}.mark{width:38px;height:38px;border-radius:11px;background:var(--yellow);color:var(--navy);display:grid;place-items:center;font-size:20px;font-weight:900}.nav-label{font-size:10px;color:#91a8cc;letter-spacing:.09em;padding:17px 11px 7px}.nav-item{display:flex;gap:10px;align-items:center;width:100%;border:0;background:transparent;color:inherit;text-align:left;padding:10px 12px;margin:2px 0;border-radius:9px;font-size:13px;cursor:pointer}.nav-item:hover,.nav-item.active{background:#ffffff26;color:#fff;font-weight:750}.sidebar-foot{margin-top:auto;padding:13px 10px;border-top:1px solid rgba(255,255,255,.12);font-size:11px;color:#aebedd;line-height:1.65}.app{min-width:0}.topbar{height:68px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 28px;position:sticky;top:0;z-index:5}.crumb{font-size:13px;color:var(--muted)}.top-actions{margin-left:auto;display:flex;align-items:center;gap:10px}.avatar{width:34px;height:34px;border-radius:50%;background:#dbe8ff;color:#2459ad;display:grid;place-items:center;font-weight:800}.user{font-size:11px;line-height:1.35}.page{padding:24px 28px 34px}.pagehead{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:18px}.pagehead h1{font-size:24px;margin:0 0 5px}.pagehead p{font-size:12px;color:var(--muted);margin:0}.actions,.row{display:flex;align-items:center;gap:8px}.btn{border:1px solid var(--line);background:#fff;color:#3a5270;border-radius:9px;padding:0 14px;height:38px;font-size:12px;font-weight:700;cursor:pointer;white-space:nowrap}.btn:hover{border-color:#aabbd2}.btn.primary{background:var(--navy);color:#fff;border-color:var(--navy)}.btn.yellow{background:var(--yellow);color:var(--navy);border-color:#e4bb35}.btn.danger{color:#b44747;border-color:#e8caca}.btn:focus-visible,.control:focus-visible{outline:3px solid rgba(46,99,199,.2);outline-offset:2px}.panel{background:#fff;border:1px solid var(--line);border-radius:14px;padding:17px 18px;margin-top:14px}.hero{background:linear-gradient(112deg,#dfeaff,#eef4ff 58%,#fff2bd);border:1px solid #cbdaf5;border-radius:17px;padding:20px 22px;display:flex;align-items:center}.hero h2{margin:0 0 6px;font-size:19px}.hero p{margin:0;color:#667991;font-size:12px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:16px}.stat{background:#fff;border:1px solid var(--line);border-radius:13px;padding:14px 15px}.stat label,.stat small{display:block;font-size:10px;color:var(--muted)}.stat strong{display:block;font-size:25px;margin:6px 0}.filters{display:grid;grid-template-columns:minmax(260px,1fr) repeat(3,minmax(130px,190px));gap:9px;margin-bottom:14px}.control{width:100%;height:var(--control-h);min-width:0;padding:0 12px;border:1px solid var(--line);border-radius:9px;background:#fff;color:#435a75;line-height:20px}.textarea{height:94px;padding:10px 12px;resize:vertical}.field{margin-bottom:14px}.field label{display:block;font-size:12px;font-weight:750;margin:0 0 7px}.field em{color:var(--red);font-style:normal}.formgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 16px}.table-wrap{overflow:auto}.table{width:100%;border-collapse:collapse;font-size:11px}.table th,.table td{text-align:left;padding:11px 9px;border-bottom:1px solid #edf1f6;vertical-align:top}.table th{color:#64758b;background:#f8fafd;font-weight:700}.link{border:0;background:transparent;color:var(--blue);padding:0;margin-right:10px;cursor:pointer;font-size:11px}.pill{display:inline-block;padding:4px 8px;border-radius:999px;font-size:9px;font-weight:750}.pill.blue{background:#e7efff;color:#285db6}.pill.green{background:#e2f5ea;color:#24734c}.pill.orange{background:#fff0dd;color:#b96824}.pill.gray{background:#eef0f3;color:#626d7c}.pill.red{background:#fde8e8;color:#b34444}.tabs{display:flex;border-bottom:1px solid var(--line);margin:14px 0 16px}.tab{border:0;background:transparent;padding:10px 14px;font-size:12px;color:var(--muted);border-bottom:2px solid transparent;cursor:pointer}.tab.active{color:var(--blue);border-color:var(--blue);font-weight:750}.stepper{display:flex;margin-bottom:18px}.step{flex:1;display:flex;align-items:center;color:#8996a7;font-size:11px}.step:after{content:"";height:2px;background:var(--line);flex:1;margin:0 12px}.step:last-child:after{display:none}.step i{width:25px;height:25px;border-radius:50%;background:#e8edf4;display:grid;place-items:center;font-style:normal;margin-right:7px}.step.on{color:var(--blue);font-weight:750}.step.on i{background:var(--blue);color:#fff}.practice-transfer{display:grid;grid-template-columns:minmax(0,1fr) 92px minmax(0,1fr);gap:16px;align-items:stretch}.picklist{border:1px solid var(--line);border-radius:12px;background:#fff;height:375px;overflow:auto;min-width:0}.pickhead{position:sticky;top:0;background:#fff;z-index:2;padding:12px;border-bottom:1px solid var(--line);font-size:12px;font-weight:750}.pick-filters{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(160px,.85fr);gap:8px;padding:9px;border-bottom:1px solid var(--line)}.question{padding:11px 12px;border-bottom:1px solid #edf1f6;font-size:11px;cursor:pointer}.question.selected{background:#edf4ff}.question b{display:block}.question span{display:block;color:#8190a4;margin-top:6px}.transfer-actions{display:flex;flex-direction:column;justify-content:center;gap:10px;min-width:0}.transfer-actions .btn{width:100%;min-width:84px;height:42px;padding:0 10px;display:inline-flex;align-items:center;justify-content:center;gap:6px;color:var(--blue)}.schedule-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.metric-row{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.metric{border-radius:12px;padding:15px;background:#f8fafd;border:1px solid var(--line)}.metric strong{font-size:24px;display:block;margin-top:8px}.tree-layout{display:grid;grid-template-columns:280px 1fr;gap:16px}.tree{background:#fff;border:1px solid var(--line);border-radius:13px;padding:13px;line-height:2.25;font-size:12px}.tree button{border:0;background:transparent;width:100%;text-align:left;padding:4px 8px;border-radius:7px}.tree button.active{background:var(--blue-soft);color:var(--blue);font-weight:750}.login{min-height:100vh;background:linear-gradient(130deg,#eef4ff,#fff8d8);display:grid;place-items:center}.login-card{width:410px;background:#fff;border:1px solid #dce4ef;border-radius:20px;padding:30px;box-shadow:0 22px 60px #1e3b6229}.login-card h1{font-size:22px;margin:22px 0 4px}.login-tabs{display:grid;grid-template-columns:1fr 1fr;background:#f1f4f8;border-radius:9px;padding:4px;margin:18px 0}.login-tabs button{height:34px;border:0;background:transparent;border-radius:7px}.login-tabs button.active{background:#fff;color:var(--blue);font-weight:750}.empty{text-align:center;color:var(--muted);padding:42px}.toast{position:fixed;right:24px;top:82px;padding:12px 16px;border-radius:10px;background:#18314f;color:#fff;font-size:12px;z-index:20}.editor{min-height:130px}.error{color:var(--red);font-size:11px;margin-top:6px}@media(max-width:1100px){.practice-transfer{grid-template-columns:1fr}.transfer-actions{flex-direction:row}.transfer-actions .btn{width:auto;flex:1}.stats{grid-template-columns:repeat(2,1fr)}}@media(prefers-reduced-motion:no-preference){.toast{animation:slide .2s ease-out}@keyframes slide{0%{transform:translateY(-8px);opacity:0}}}.link.danger-link{color:#b34444}.chart-panel{padding:18px 20px}.chart-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px}.chart-head h3{margin:0 0 5px;font-size:15px}.chart-head p,.chart-empty{margin:0;color:var(--muted);font-size:11px}.chart-head>b{font-size:17px;color:var(--navy)}.stacked-bar{height:22px;display:flex;overflow:hidden;border-radius:999px;background:#edf1f6}.stacked-bar>i{display:block;height:100%;min-width:0}.stacked-bar>.green,.chart-legend>.green{background:var(--green)}.stacked-bar>.red,.chart-legend>.red{background:var(--red)}.stacked-bar>.orange,.chart-legend>.orange{background:var(--orange)}.stacked-bar>.blue,.chart-legend>.blue{background:var(--blue)}.chart-legend{display:flex;flex-wrap:wrap;gap:12px 18px;margin-top:12px;color:#516984;font-size:11px}.chart-legend span{display:inline-flex;align-items:center;gap:5px}.chart-legend i{width:8px;height:8px;border-radius:50%}.item-overview{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0 0 16px}.item-overview>div{background:#f8fafd;border:1px solid #edf1f6;border-radius:9px;padding:10px 12px}.item-overview span{display:block;color:var(--muted);font-size:10px}.item-overview b{display:block;margin-top:4px;color:var(--navy);font-size:15px}.rate-chart{display:grid;gap:12px}.rate-row{display:grid;grid-template-columns:112px minmax(160px,1fr) 44px;gap:12px;align-items:center}.rate-label{display:grid;gap:2px;font-size:11px}.rate-label span{color:var(--muted);font-size:10px}.rate-track{height:12px;overflow:hidden;border-radius:999px;background:#edf1f6}.rate-track i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#4d7dd2,#285db6)}.rate-value{text-align:right;color:#285db6;font-size:12px}.student-layout{display:block}.student-layout .panel{margin-top:0}.student-editor .pagehead{align-items:flex-start;margin-bottom:16px}.class-choices{display:flex;flex-wrap:wrap;gap:8px}.class-choices label,.status-choice{display:inline-flex;align-items:center;gap:6px;font-size:11px;color:#435a75}.class-choices label{padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:#f8fafd}.status-choice{margin-top:2px}@media(max-width:1180px){.student-filters{grid-template-columns:minmax(260px,1fr) minmax(130px,190px) auto}}.modal-backdrop{position:fixed;inset:0;z-index:30;display:grid;place-items:center;padding:24px;background:#1023406b}.modal-backdrop .student-editor{position:relative;top:auto;width:min(520px,100%);max-height:calc(100vh - 48px);overflow:auto;margin:0;box-shadow:0 20px 60px #112a4f3d}.modal-backdrop .password-editor{width:min(460px,100%)}.import-upload{padding:42px 34px;text-align:center}.import-upload p,.import-preview-head p{margin:10px 0 0;color:var(--muted);font-size:11px}.import-file-label{display:inline-flex;align-items:center;justify-content:center}.import-file-label input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.import-file-label.disabled{opacity:.55;cursor:not-allowed}.import-preview-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:14px}.import-preview-head h3{margin:0 0 5px;font-size:15px}.overwrite-choice{display:inline-flex;align-items:center;gap:7px;white-space:nowrap;font-size:12px;font-weight:700;color:#435a75;background:#f8fafd;border:1px solid var(--line);border-radius:8px;padding:9px 11px}.import-errors,.import-duplicates{border-radius:9px;padding:10px 12px;margin:0 0 12px;font-size:11px}.import-errors{background:#fff1f1;color:#b34444;border:1px solid #f3d2d2}.import-duplicates{background:#fff8e2;color:#906c18;border:1px solid #f0dfa6}.import-errors p,.import-duplicates p{margin:3px 0}.metric-row-four{grid-template-columns:repeat(4,1fr)}.stat-link{border:0;background:transparent;color:var(--blue);font:inherit;font-weight:750;padding:0;cursor:pointer}.stat-link:hover{text-decoration:underline}.readonly-practice h3{margin:0 0 12px;font-size:14px}.readonly-practice .field{margin-bottom:0}.readonly-practice .field>p{margin:0;color:#435a75;font-size:12px;line-height:1.7}.readonly-questions{padding-left:22px;margin:0}.readonly-questions li{padding:10px 0;border-bottom:1px solid #edf1f6;font-size:12px}.readonly-questions li:last-child{border-bottom:0}.readonly-questions span{display:block;margin-top:5px;color:var(--muted);font-size:11px}.stat-students-modal{width:min(620px,calc(100vw - 48px))}@media(max-width:1100px){.metric-row-four{grid-template-columns:repeat(2,1fr)}}
