.upload-options{display:grid;grid-template-columns:1fr 1fr;gap:12px}.upload-options .upload-card{width:100%;border-color:#dce2e9;background:#fff;color:#3d4857}.upload-options .upload-card.selected{border-color:#2673ff;background:#eef5ff;color:#1760d5}.upload-options .upload-card>span{border:1px solid #8b939d;background:transparent}.upload-options .upload-card.selected>span{border-color:#2864eb;background:#2864eb}.upload-options .upload-card strong{display:flex;align-items:center;gap:6px}.upload-options .upload-card strong svg{width:17px;height:17px;color:currentColor}.task-workspace{margin-left:219px;padding:70px 18px 28px;min-height:100vh;background:#f3f6fa;color:#202a3a}.task-filter,.task-table-card,.detail-head,.metric-card,.analysis-card,.students-card{background:#fff;border:1px solid #dde4ed;border-radius:14px}.task-filter{padding:13px 14px 0}.filter-row{display:flex;align-items:center;gap:8px}.search-box{height:36px;width:258px;border:1px solid #e1e6ed;border-radius:10px;display:flex;align-items:center;padding:0 10px;gap:8px}.search-box svg,.students-title label svg{color:#8d99aa}.search-box input,.students-title input{border:0;outline:0;width:100%}.filter-row select{height:36px;min-width:154px;border:1px solid #e1e6ed;border-radius:10px;padding:0 12px;color:#5e6877;background:#fff}.filter-row button{height:36px;border-radius:9px;padding:0 16px;cursor:pointer}.query-btn,.new-task{border:0;background:#2c68ec;color:#fff}.reset-btn{border:1px solid #d4dbe5;background:#fff;color:#576172}.new-task{margin-left:auto;display:flex;align-items:center;gap:5px}.task-tabs{display:flex;gap:12px;margin-top:7px}.task-tabs button{border:0;background:transparent;padding:11px 12px;color:#556173;cursor:pointer}.task-tabs .active{color:#2166eb;border-bottom:2px solid #2166eb}.task-table-card{margin-top:12px;overflow:hidden}.task-table{width:100%;border-collapse:collapse;font-size:13px}.task-table th{height:40px;background:#f4f7fb;text-align:left;padding:0 13px;color:#2d3748}.task-table td{height:74px;padding:0 13px;border-bottom:1px solid #edf0f5}.progress-copy{width:120px;display:flex;justify-content:space-between;align-items:center;font-size:11px}.progress-copy span{background:#eaf2ff;color:#2866e3;border-radius:4px;padding:2px 5px}.progress{height:6px;background:#e7edf5;border-radius:8px;margin-top:6px;overflow:hidden}.progress i{display:block;width:100%;height:100%;background:#24b35b}.type-pill{color:#f16129;background:#fff1e9;border-radius:5px;padding:3px 7px}.deadline{color:#f04a4a}.detail-btn,.delete-btn{border-radius:7px;background:#fff;padding:6px 9px;cursor:pointer}.detail-btn{border:1px solid #d2dceb;color:#2365e8}.delete-btn{border:1px solid #f2d4d4;color:#ed4747;margin-left:7px}.table-footer{padding:14px;display:flex;justify-content:flex-end;align-items:center;gap:7px;color:#687386}.table-footer button,.table-footer select{height:30px;border:1px solid #d7dee8;border-radius:6px;background:#fff}.table-footer .current{color:#2166eb;border-color:#2166eb}.empty-state{text-align:center;padding:60px;color:#9aa3af}.detail-page{padding-top:64px}.detail-head{height:66px;display:flex;align-items:center;padding:0 13px}.detail-head>button:first-child{width:34px;height:34px;border:0;border-radius:10px;background:#f7f9fc;color:#6d7888;display:grid;place-items:center;cursor:pointer}.detail-head h1{font-size:18px;margin:0 0 3px}.detail-head p{font-size:11px;color:#6d7888;margin:0;display:flex;align-items:center}.detail-head .detail-title{margin-left:10px}.detail-actions{margin-left:auto;display:flex;align-items:center;gap:9px}.export-btn{border:1px solid #dbe2eb;background:#fff;border-radius:8px;padding:9px 12px;display:flex;align-items:center;gap:5px}.export-btn:disabled{color:#9aa5b4;background:#f7f9fb;cursor:not-allowed}.refresh-score-btn{border:1px solid #2d68e8;background:#2d68e8;color:#fff;border-radius:8px;padding:9px 12px;display:flex;align-items:center;gap:6px;cursor:pointer}.detail-actions .publish-score-control{margin-left:0;margin-right:2px}.publish-confirm-actions{display:flex;justify-content:center;gap:10px;margin-top:18px}.publish-confirm-actions button{min-width:84px;padding:9px 14px;border:1px solid #dbe2eb;border-radius:8px;background:#fff;cursor:pointer}.publish-confirm-actions button:last-child{border-color:#2d68e8;background:#2d68e8;color:#fff}.refresh-score-btn:disabled{opacity:.75;cursor:wait}.spinning{animation:score-spin .8s linear infinite}@keyframes score-spin{to{transform:rotate(360deg)}}.score-empty-state{min-height:calc(100vh - 160px);margin-top:10px;background:#fff;border:1px solid #dde4ed;border-radius:14px;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;color:#667386}.score-empty-icon{width:68px;height:68px;border-radius:50%;background:#eef4ff;color:#2d68e8;display:grid;place-items:center;margin-bottom:17px}.score-empty-icon svg{width:32px;height:32px}.score-empty-state h2{margin:0 0 9px;color:#283548;font-size:20px}.score-empty-state p{margin:3px 0;font-size:13px}.score-empty-state>button{height:40px;margin-top:22px;padding:0 18px;border:0;border-radius:9px;background:#2d68e8;color:#fff;display:flex;align-items:center;gap:7px;cursor:pointer}.pending-data .complete-line{background:#e2e8f0}.pending-score{color:#8a6a20;background:#fff8df;border:1px solid #f1dc91;border-radius:10px;padding:3px 9px}.students-card td button:disabled{color:#9aa5b4;cursor:not-allowed}.score-notice-backdrop{z-index:60;background:#0f172a6b}.score-notice-dialog{width:min(440px,100%);padding:30px 28px 25px;border-radius:15px;background:#fff;box-shadow:0 24px 60px #0f172a42;text-align:center}.score-notice-dialog .score-empty-icon{margin-left:auto;margin-right:auto}.score-notice-dialog h2{margin:0 0 10px;color:#283548;font-size:20px}.score-notice-dialog p{margin:5px 0;color:#69768a;font-size:13px}.score-notice-dialog>button{min-width:96px;height:38px;margin-top:22px;border:0;border-radius:8px;background:#2d68e8;color:#fff;cursor:pointer}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:10px 0}.metric-card{height:86px;padding:13px;position:relative}.metric-card small{display:block;color:#637083}.metric-card strong{font-size:31px;display:inline-block;margin-top:5px}.metric-card strong.blue{color:#2465ec}.metric-card strong.green{color:#1faa55}.metric-card strong.purple{color:#4d3ee8}.metric-card strong.dark{color:#1e2734}.metric-card>span{font-size:11px;color:#617086;margin-left:8px;font-weight:600}.complete-line{position:absolute;height:6px;background:#28b65e;border-radius:6px;left:13px;right:13px;bottom:11px}.ai-summary{height:42px;border:1px solid #cfe3ff;background:#eef6ff;color:#1f64db;border-radius:12px;display:flex;align-items:center;gap:8px;padding:0 14px;font-weight:600;font-size:13px}.analysis-card{margin-top:10px}.analysis-tabs{height:42px;border-bottom:1px solid #e8edf3;color:#2465ec;display:flex;align-items:center;gap:6px;padding:0 17px;font-size:13px;font-weight:600}.analysis-grid{display:grid;grid-template-columns:34% 66%;padding:12px}.radar-panel{border-right:1px solid #e9edf2;padding-right:10px}.radar-panel h3,.dimension-panel h3{font-size:13px;margin:0 0 8px;display:flex;align-items:center;gap:5px}.radar-wrap{height:250px;border:1px solid #e2e7ee;border-radius:10px}.dimension-panel{padding-left:12px}.dimension{background:#f8fafc;border:1px solid #edf0f4;border-radius:9px;padding:9px;margin-bottom:8px}.dimension>div:first-child{display:flex;gap:9px;align-items:center;font-size:12px}.dimension span.orange,.dimension span.green{padding:2px 7px;border-radius:5px}.dimension span.orange{color:#f07326;background:#fff1e6}.dimension span.green{color:#1ca34f;background:#e8f8ed}.score-line{height:6px;background:#e6ebf1;border-radius:8px;margin:8px 0}.score-line i{height:100%;display:block;border-radius:8px}.score-line.orange i{background:#ff761d}.score-line.green i{background:#2cbd60}.legend{display:flex;justify-content:space-between;color:#687386;font-size:10px}.students-card{margin-top:10px;overflow:hidden}.students-title{height:46px;display:flex;align-items:center;padding:0 13px}.students-title h3{font-size:14px;display:flex;align-items:center;gap:6px}.publish-score-control{margin-left:auto;display:flex;align-items:center;gap:8px;color:#2d3748;font-size:12px;font-weight:600}.publish-score-control small{color:#7b8797;font-size:11px;font-weight:400}.publish-score-control>button{position:relative;width:38px;height:22px;padding:0;border:0;border-radius:999px;background:#cbd3df;cursor:pointer;transition:background .18s ease}.publish-score-control>button i{position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #19263a40;transition:transform .18s ease}.publish-score-control>button.on{background:#2c68ec}.publish-score-control>button.on i{transform:translate(16px)}.publish-score-control.disabled{color:#9aa5b4}.publish-score-control>button:disabled{background:#e1e6ed;cursor:not-allowed}.students-title label{margin-left:16px;width:205px;height:30px;border:1px solid #dce2ea;border-radius:8px;display:flex;align-items:center;gap:5px;padding:0 8px}.students-card table{width:100%;border-collapse:collapse;font-size:12px}.students-card th{height:34px;background:#f1f5fb;text-align:left;padding:0 10px}.students-card td{height:47px;border-top:1px solid #e5eaf1;padding:0 10px}.rank{background:#ffc20d;color:#fff;padding:4px 7px;border-radius:4px}.students-card .score{color:#2368ef;font-weight:700}.done{color:#17a853;background:#eafaf0;border:1px solid #a6ebc0;border-radius:10px;padding:3px 9px}.students-card td button{border:0;background:transparent;color:#2368ef;cursor:pointer}@media(max-width:1100px){.task-workspace{margin-left:188px}.filter-row select:nth-of-type(2){display:none}.analysis-grid{grid-template-columns:40% 60%}}.legend span{display:flex;align-items:center;gap:4px}.legend i{width:6px;height:6px;border-radius:50%}.legend .weak{background:#ff4d5d}.legend .average{background:#ff7b22}.legend .excellent{background:#28b75d}.student-name{display:flex;align-items:center;gap:7px}.student-name svg{width:24px;height:24px;color:#e57878}.student-expanded td{background:#f8fbff;color:#566273;padding:12px 48px!important}.metric-card>span{white-space:nowrap}.metric-card strong{line-height:1}.student-count{padding:12px 16px;text-align:right;color:#687386;font-size:12px;border-top:1px solid #e5eaf1}.upload-mode-pill{display:inline-flex;align-items:center;gap:4px;border-radius:5px;padding:3px 7px;font-size:11px}.upload-mode-pill.student{color:#1f7a4d;background:#e7f5ec}.upload-mode-pill.teacher{color:#6a4ac9;background:#f0eafd}.batch-upload-btn{border:1px solid #6a4ac9;background:#f0eafd;color:#6a4ac9;border-radius:7px;padding:6px 9px;cursor:pointer;font-weight:600}.batch-upload-btn:hover{background:#6a4ac9;color:#fff}.task-actions-cell{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.compact-batch-list .batch-task-banner{margin:0 20px;padding:20px 4px 12px;min-height:58px;background:#fff;border:0;border-radius:0;gap:28px}.compact-batch-list .batch-task-banner .field{gap:8px}.compact-batch-list .batch-task-banner .field:nth-child(2){margin-left:0;padding-left:16px;border-left:1px solid #e5e9ef}.compact-batch-list .batch-task-banner .field b{min-width:0;font-weight:400}.compact-batch-list .batch-task-banner .field-value{min-width:0;font-weight:600}.compact-batch-list .import-toolbar{margin:0 20px;padding:10px 4px 16px;min-height:64px;border-radius:0;border-bottom:1px solid #edf0f4}.compact-batch-list .import-layout{padding:0 20px 16px}.compact-batch-list .batch-list-filter{border:0;border-radius:0;padding:18px 0;margin:0;gap:12px;justify-content:space-between}.batch-status-filters,.batch-list-search-actions{display:flex;align-items:center;gap:8px}.batch-status-filters{flex-wrap:wrap}.batch-list-search-actions{margin-left:auto}.batch-status-pill{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 12px;border:1px solid transparent;border-radius:20px;background:#f4f5f7;color:#475467;font-size:12px;white-space:nowrap;cursor:pointer}.batch-status-pill.is-active{color:#4f46e5;background:#f0f0ff;border-color:#8178ff}.batch-status-pill:focus-visible{outline:2px solid #2d68e8;outline-offset:2px}.batch-status-dot{width:7px;height:7px;border-radius:50%;background:#475467}.batch-status-pill.not-uploaded .batch-status-dot{background:#98a2b3}.batch-status-pill.in-progress .batch-status-dot{background:#ea580c}.batch-status-pill.graded .batch-status-dot{background:#16a06a}.compact-batch-list .batch-summary-table{border:0;border-radius:0}.compact-batch-list .batch-summary-head,.compact-batch-list .batch-summary-row{grid-template-columns:44px minmax(80px,1fr) minmax(90px,1.15fr) minmax(100px,1fr) 90px minmax(150px,1.25fr)}.compact-batch-list .batch-summary-head{min-height:38px;height:38px;font-size:12px}.compact-batch-list .batch-summary-row{min-height:46px;font-size:13px}.compact-batch-list .batch-summary-head span,.compact-batch-list .batch-summary-row>*{padding-left:10px;padding-right:10px}.compact-batch-list .batch-refresh-btn{background:#fff;color:#344054;border-color:#d4dbe5}.batch-refresh-notice{color:#7c8799;font-size:12px}@media(max-width:1100px){.compact-batch-list .batch-list-filter{align-items:flex-start}.compact-batch-list .batch-list-search-actions{flex:1;min-width:250px}.compact-batch-list .search-box{flex:1;min-width:0;width:auto}.compact-batch-list .search-box input{min-width:0}.batch-refresh-notice{display:none}}.import-workspace{margin-left:219px;height:100vh;padding:68px 16px 16px;background:#f3f6fa;overflow:hidden}.import-shell{height:100%;background:#fff;border:1px solid #dce3eb;border-radius:15px;overflow:hidden;display:flex;flex-direction:column}.import-heading{height:46px;padding:0 22px;border-bottom:1px solid #edf0f4;display:flex;align-items:center}.import-heading small{color:#778295;font-size:12px}.import-complete-notice{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 12px 8px;padding:9px 12px;border:1px solid #cdebd8;border-radius:8px;background:#f0fdf4;color:#18794e;font-size:13px}.import-complete-notice button{border:0;background:transparent;color:inherit;cursor:pointer;flex-shrink:0;padding:4px 8px}.import-toolbar{min-height:96px;border-bottom:1px solid #dbe1e8;display:flex;align-items:center;gap:8px;padding:8px 12px 10px;flex-wrap:wrap}.import-toolbar>button{height:36px;border:1px solid #cbd2dc;background:#fff;border-radius:8px;padding:0 16px;color:#475467;font-size:13px;cursor:pointer;white-space:nowrap}.import-toolbar>button.selected{border-color:#7ba8ef;background:#fff;color:#215fc4;font-weight:600}.import-result{min-height:36px;font-size:13px;font-weight:500;order:-1;width:100%;flex-basis:100%;display:flex;align-items:center;gap:6px;padding:7px 11px;border:1px solid #cdebd8;border-radius:8px;background:#f2fbf5;color:#245b38}.import-result.guidance{border-color:#c9dbf8;background:#f2f7ff;color:#315f9f}.import-result.guidance svg{color:#3e7add}.import-result svg{color:#22a95a}.import-result.loading{color:#2b67dc;border-color:#cfddfb;background:#f4f7ff}.import-result.warning:not(.loading){color:#7b4d0d;border-color:#f1cf91;background:#fff8e9}.import-result.warning:not(.loading) svg{color:#d97706}.import-result.batch-empty-result{display:none}.exception-detail-button{flex:0 0 auto;margin-left:auto;padding:5px 12px;border:1px solid #e7a64e!important;border-radius:6px;background:#fff!important;color:#b75b00!important;font-weight:600;cursor:pointer}.exception-detail-button:hover{border-color:#d66b00!important;background:#fff1d8!important}.import-toolbar .nav-import{color:#8d99a9;background:#f8fafc}.import-result+.nav-import{margin-left:auto}.import-toolbar .confirm-import{border:0;background:#2d68e8;color:#fff;display:flex;align-items:center;gap:5px}.import-layout{display:block;position:relative;height:auto;min-height:0;flex:1;overflow:hidden}.overwrite-summary{order:10;width:100%;display:grid;grid-template-columns:250px 1fr;align-items:center;gap:12px;padding:8px 11px;border:1px solid #f3cf92;border-radius:9px;background:#fff9ed;color:#6e4b13;font-size:12px}.overwrite-summary>div{display:flex;align-items:center;gap:7px}.overwrite-summary svg{width:17px;height:17px;color:#d47a08}.overwrite-summary>div span{color:#8b6a36}.overwrite-summary ul{display:flex;gap:8px;margin:0;padding:0;list-style:none;overflow-x:auto}.overwrite-summary li{display:flex;gap:6px;padding:5px 8px;border:1px solid #efd8ae;border-radius:6px;background:#fff;white-space:nowrap}.overwrite-summary li span{color:#8a6a3a}.student-files{width:64%;height:100%;min-width:0;border-right:1px solid #d6dde6;display:flex;flex-direction:column}.import-layout>.student-files,.import-layout>.batch-summary-table{width:100%;border-right:0}.file-table-head{height:46px;display:grid;grid-template-columns:72px 110px 1fr 1fr;border-bottom:1px solid #cfd6df;background:#f4f7fb;color:#2d3748;font-size:15px;font-weight:700;align-items:center;white-space:nowrap}.file-table-head span{height:100%;padding:13px 15px;display:flex;align-items:center}.file-table-head span:first-child{justify-content:center}.file-rows{overflow:auto;min-height:0}.file-row{display:grid;grid-template-columns:72px 110px 1fr 1fr;min-height:210px;border-bottom:1px solid #dce2ea}.file-row.row-selected{box-shadow:inset 0 0 0 2px #3695eb}.file-row.student-chosen{background:#f4f8ff;box-shadow:inset 0 0 0 2px #8bb6f5;cursor:pointer}.file-row.single-empty-row{cursor:pointer}.file-row.single-empty-row:not(.student-chosen):hover{background:#f8fbff}.file-row.student-chosen .student-label{color:#215ecf}.student-index,.student-label{display:flex;align-items:center;padding:10px;border-right:1px solid #cfd6df}.student-index{justify-content:center}.student-label{font-size:13px;line-height:1.4}.essay-cards{display:flex;gap:12px;align-items:center;overflow-x:auto;padding:10px 12px}.essay-thumb{width:128px;min-width:128px;height:184px;border:1px solid transparent;background:#fff;padding:7px;position:relative;cursor:grab;transition:opacity .15s,transform .15s,box-shadow .15s}.essay-thumb:active{cursor:grabbing}.essay-thumb:hover{background:#f5f9ff}.essay-thumb:after{content:attr(data-drag-tip);position:absolute;left:50%;top:68px;z-index:4;max-width:calc(100% - 12px);padding:6px 8px;border-radius:6px;background:#172435eb;color:#fff;font-size:11px;font-weight:500;line-height:1.3;white-space:nowrap;pointer-events:none;opacity:0;transform:translate(-50%,5px);transition:opacity .15s ease,transform .15s ease;box-shadow:0 5px 14px #0f172a40}.essay-thumb:hover:after,.essay-thumb:focus-visible:after{opacity:1;transform:translate(-50%)}.essay-thumb.dragging:after{display:none}.essay-thumb.dragging{opacity:.42;transform:scale(.97)}.essay-thumb.drag-over{box-shadow:inset 3px 0 #2d68e8;background:#eef5ff}.essay-thumb.selected{border:2px solid #4ba2ec;background:#e9f6ff}.essay-thumb img{width:100%;height:145px;object-fit:contain}.essay-thumb span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px}.essay-thumb i{position:absolute;right:4px;top:3px;color:#ef5149;background:#fff;border-radius:4px;padding:2px;display:grid}.essay-thumb i svg{width:16px;height:16px}.add-essay-files{width:190px;min-width:190px;height:156px;border:1px dashed #b9cbea;border-radius:9px;background:#f8fbff;color:#2f70df;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:9px;cursor:pointer;transition:border-color .15s,background .15s,transform .15s}.add-essay-files:hover,.add-essay-files:focus-visible{border-color:#4d86e8;background:#eef5ff;transform:translateY(-1px)}.add-essay-files>span{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#e5efff;color:#3478ec}.add-essay-files svg{width:19px;height:19px}.add-essay-files small{color:#3478ec;font-size:12px;font-weight:600}.no-files{width:100%;min-width:220px;color:#778295;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:6px;text-align:center}.no-files svg{width:24px;height:24px;color:#5f8ee8}.no-files span{color:#a0a9b6;font-size:12px;font-weight:400}.no-files small{color:#2d68e8;font-size:13px;font-weight:650}.preview-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a73;z-index:300;display:flex;align-items:center;justify-content:center}.preview-backdrop.preview-modal-closed{display:none!important}.essay-preview{position:relative;width:min(1280px,96vw);height:min(840px,92vh);display:flex;flex-direction:column;background:#fff;border-radius:14px;box-shadow:0 24px 60px #0f172a47;overflow:hidden}.essay-preview.preview-modal-closed{display:none!important}.essay-preview h2{margin:0;font-size:16px;font-weight:600;color:#1f2937;letter-spacing:.2px;flex:0 0 auto}.preview-meta{flex:0 0 auto;min-height:44px;padding:10px 22px;border-bottom:1px solid #e5e9ee;display:flex;justify-content:space-between;align-items:center;gap:18px;font-weight:500;font-size:13px;color:#475467;background:#fff}.essay-preview .preview-meta{display:none}.preview-meta span b{color:#1f2937;font-weight:600;margin-left:4px}.preview-stage{position:relative;background:#f7f9fc;display:flex;overflow:hidden}.preview-stage.is-empty{background:#f7f9fc}.preview-image-scroll{flex:1;overflow-y:auto;overflow-x:hidden;display:flex;flex-direction:column;align-items:center;gap:18px;padding:24px 24px 36px;background:#f7f9fc}.preview-image-card{position:relative;width:100%;max-width:640px;margin:0;background:#fff;border:2px solid transparent;border-radius:10px;padding:12px 14px 16px;cursor:pointer;transition:border-color .15s,box-shadow .15s}.preview-image-card:hover{border-color:#b9d3ff;box-shadow:0 4px 16px #2d68e81f}.preview-image-card.is-active{border-color:#2d68e8;box-shadow:0 0 0 1px #2d68e8 inset,0 6px 18px #2d68e82e}.preview-image-card figcaption{display:flex;justify-content:space-between;align-items:center;font-size:13px;font-weight:600;color:#1f2937;margin-bottom:10px;padding-bottom:8px;border-bottom:1px solid #e5e9ee;gap:12px}.preview-image-card-name{min-width:0;overflow-wrap:anywhere}.preview-image-card-actions{display:inline-flex;align-items:center;flex-shrink:0;gap:10px}.preview-image-card-count{font-size:12px;color:#6b7685;font-weight:500;background:#f0f4fa;border-radius:12px;padding:2px 10px}.preview-image-card img{display:block;width:62%;margin:0 auto;height:auto;background:#fff;border-radius:4px}.preview-body{flex:1;min-height:0;display:grid;grid-template-columns:220px 180px 1fr;background:#fff;overflow:hidden}.preview-empty{position:absolute;top:0;right:0;bottom:0;left:0;color:#6b7685;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:10px;text-align:center}.preview-empty svg{width:42px;height:42px;color:#aab4c2}.preview-empty b{color:#526071;font-size:16px}.preview-empty span{color:#8b96a5;font-size:13px}.import-toast{position:fixed;right:25px;top:67px;background:#172435;color:#fff;padding:12px 18px;border-radius:10px;display:flex;align-items:center;gap:8px;box-shadow:0 8px 24px #0003}.import-toast svg{color:#51df82}.empty-import-toast{background:#315f9f}.empty-import-toast svg{color:#fff}.reupload-success-toast{z-index:80;background:#1d6b45}.delete-dialog-backdrop,.score-notice-backdrop{position:fixed;top:0;right:0;bottom:0;left:219px;z-index:80;background:#0f172a8c;display:flex;align-items:center;justify-content:center;padding:24px}.delete-dialog-backdrop.preview-confirm-backdrop{z-index:10002!important;background:#0f172a59}@media(max-width:1100px){.delete-dialog-backdrop,.score-notice-backdrop{left:188px}}.delete-dialog{width:min(430px,100%);background:#fff;border-radius:14px;box-shadow:0 20px 55px #0f172a3d;padding:26px;text-align:center}.delete-dialog-icon{width:44px;height:44px;border-radius:50%;margin:0 auto 12px;background:#fff0f0;color:#e5484d;display:grid;place-items:center}.delete-dialog-icon svg{width:22px;height:22px}.delete-dialog h2{margin:0;font-size:19px;color:#202938}.delete-dialog>p{margin:8px 0 18px;color:#748094;font-size:13px}.delete-dialog>.delete-dialog-description{display:grid;gap:2px;margin:10px 0 18px;line-height:22px;text-wrap:pretty}.delete-dialog dl{margin:0;padding:4px 15px;border:1px solid #e1e6ed;border-radius:10px;background:#f8fafc;text-align:left}.delete-dialog dl>div{display:grid;grid-template-columns:78px 1fr;gap:12px;padding:10px 0}.delete-dialog dl>div+div{border-top:1px solid #e5eaf0}.delete-dialog dt{color:#7b8797}.delete-dialog dd{margin:0;color:#263142;font-weight:600;word-break:break-all}.delete-dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:22px}.delete-dialog-actions button{height:38px;min-width:88px;border:1px solid #cfd6df;border-radius:8px;background:#fff;color:#344054;cursor:pointer}.delete-dialog-actions button:hover{background:#f7f8fa}.delete-dialog-actions button.danger{border-color:#dc3d43;background:#dc3d43;color:#fff}.delete-dialog-actions button.danger:hover{background:#c93238}.delete-dialog-actions button.primary{border-color:#2d68e8;background:#2d68e8;color:#fff}.delete-dialog-actions button.primary:hover{background:#245bc9}.import-rule-dialog{width:min(580px,100%);background:#fff;border-radius:14px;box-shadow:0 20px 55px #0f172a3d;padding:24px}.batch-import-entry-dialog{width:min(520px,100%);padding:24px;border-radius:14px;background:#fff;box-shadow:0 20px 55px #0f172a3d}.batch-import-entry-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:24px;padding-top:16px;border-top:1px solid #edf0f4}.import-rule-heading{display:flex;align-items:center;gap:12px}.import-rule-icon{width:42px;height:42px;border-radius:10px;display:grid;place-items:center;background:#edf4ff;color:#2d68e8}.import-rule-icon svg{width:23px;height:23px}.import-rule-heading h2{margin:0 0 4px;font-size:19px;color:#202938}.import-rule-heading p{margin:0;color:#7a8697;font-size:13px}.import-rule-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:20px}.import-rule-card{display:grid;gap:7px;min-width:0;padding:15px;border:1px solid #dbe3ee;border-radius:10px;background:#fff}.import-rule-card small{color:#718096}.import-rule-card strong{color:#215ecf;font-size:16px;line-height:1.35}.import-rule-card code{color:#465468;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px}.import-rule-card span{color:#536174;font-size:12px;line-height:1.55}.import-rule-notes{margin-top:16px;padding:12px 14px;border:1px solid #e3e8ef;border-radius:9px;background:#f8fafc;color:#536174;font-size:12px;line-height:1.65}.import-rule-notes>strong{display:block;margin-bottom:4px;color:#344054;font-size:13px}.import-rule-notes ol{margin:0;padding-left:18px}.import-rule-notes li{padding-left:2px}.import-rule-example{margin-top:12px;padding:10px 12px;border-radius:8px;background:#f7f8fa;color:#667386;font-size:12px}.import-rule-actions{margin-top:18px;padding-top:16px;border-top:1px solid #edf0f4}@media(max-width:640px){.import-rule-cards{grid-template-columns:1fr}}.single-import-dialog{width:min(470px,100%);background:#fff;border-radius:14px;box-shadow:0 20px 55px #0f172a3d;padding:25px}.scenario-dialog{width:min(620px,100%);max-height:min(720px,90vh);overflow:auto;background:#fff;border-radius:14px;box-shadow:0 20px 55px #0f172a3d;padding:25px}.scenario-dialog.import-summary-dialog{width:min(760px,86vw);max-width:none;border:2px solid #000}.scenario-dialog h2{margin:0 0 4px;color:#202938;font-size:19px}.scenario-dialog p{margin:0;color:#748094;font-size:13px}.scenario-list,.conflict-list{display:grid;gap:9px;margin-top:18px}.scenario-list>div,.conflict-list>label{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 13px;border:1px solid #e2e7ee;border-radius:9px;background:#f8fafc}.scenario-list strong,.conflict-list strong{color:#263142;font-size:13px}.scenario-list span,.conflict-list small{color:#a04f14;font-size:12px}.conflict-list label>span{display:grid;gap:4px}.conflict-list select{min-width:220px;height:38px;border:1px solid #cfd6df;border-radius:8px;background:#fff;padding:0 10px;color:#344054}.import-result-dialog{width:min(500px,100%);background:#fff;border-radius:14px;box-shadow:0 20px 55px #0f172a3d;padding:27px;text-align:center}.import-result-table-wrap{margin:18px 0 14px;overflow-x:auto;border:1px solid #e5e7eb;border-radius:10px}.import-result-table{width:100%;min-width:680px;border-collapse:collapse;font-size:12px;text-align:left}.import-result-table th,.import-result-table td{padding:10px 9px;border-bottom:1px solid #eef0f3;white-space:nowrap}.import-result-table th{position:sticky;top:0;z-index:2;color:#667085;background:#f8fafc;font-weight:600;box-shadow:0 1px #e5e7eb}.import-result-table tr:last-child td{border-bottom:0}.import-result-table .is-warning td{color:#a15c00;background:#fffaf0}.import-result-table .is-resolved td{background:#effaf3}.import-record-feedback{display:grid;gap:4px}.import-record-status{display:flex;align-items:center;gap:5px}.is-resolved .import-record-status{color:#087443;font-weight:600}.import-record-last-action{font-size:12px;line-height:18px;color:#526174}.import-summary-dialog .import-submit-reason{margin:0;font-size:12px;line-height:18px;color:#667085;text-align:center}.import-summary-dialog .import-submit-reason+.delete-dialog-actions{margin-top:8px}.import-result-table .is-error td{color:#b42318;background:#fff5f4}.import-summary-dialog{width:min(1080px,86vw);max-width:none;border:2px solid #000;border-radius:14px;box-shadow:0 20px 55px #0f172a3d}.import-summary-dialog{padding:28px 28px 26px;max-height:min(92vh,820px);overflow:auto;box-sizing:border-box}.import-summary-upload-head{margin-bottom:8px}.import-summary-section-title{font-size:20px;color:#202938}.import-summary-tip{font-size:13px}.import-summary-dropzone{min-height:92px;border:1px dashed #c5d0df;border-radius:10px;background:#f8fafc}.import-summary-dropzone svg{color:#748094}.import-summary-dropzone b{color:#697586;font-weight:600}.import-summary-dialog .import-result-table-wrap{max-height:52vh;overflow:auto}.import-summary-dialog .import-result-table-wrap{margin-top:18px;max-height:470px}.import-summary-dialog .import-result-table{font-size:13px}.import-summary-dialog .import-result-table th,.import-summary-dialog .import-result-table td{padding:11px 10px}.import-summary-dialog .delete-dialog-actions{justify-content:center;margin-top:20px}.import-summary-dialog .delete-dialog-actions>button:first-child{min-width:88px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.import-result-table td button{border:0;background:transparent;color:#1764db;cursor:pointer;margin-right:8px;padding:3px 0}.import-result-table td button.selected-action{color:#067647;font-weight:600}.import-student-select{margin-top:4px}.import-result-table tr[id^=import-record-]{scroll-margin-top:44px}.import-student-options{width:210px;padding:8px;margin-top:4px;border:1px solid #cbd5e1;border-radius:6px;background:#fff;white-space:normal}.import-student-options input,.import-student-options select{box-sizing:border-box;width:100%;padding:6px;border:1px solid #cbd5e1;border-radius:4px;background:#fff;color:#344054;font:inherit}.import-student-options select{margin-top:6px}.import-student-options small{display:block;margin:6px 0;color:#b54708;line-height:1.5}.import-summary-dialog .delete-dialog-actions .primary:disabled{background:#cbd5e1;color:#64748b;cursor:not-allowed}.batch-upload-progress-track{height:10px;margin-top:22px;overflow:hidden;border-radius:999px;background:#e9eef6}.import-two-step{display:flex;justify-content:center;align-items:center;gap:20px;padding:6px 0 14px;font-size:13px;color:#98a2b3}.import-two-step span{display:flex;align-items:center;gap:6px}.import-two-step i{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;font-style:normal;background:#f0f3f9}.import-two-step .is-current{color:#2f66eb;font-weight:600}.import-two-step .is-current i{color:#fff;background:#2f66eb}.import-two-step .is-done{color:#067647}.import-two-step .is-done i{color:#fff;background:#12b76a}.inline-upload-progress{text-align:left;padding:10px 12px;margin-top:10px;border-radius:8px;background:#f5f8ff}.inline-upload-progress .batch-upload-progress-meta{margin:0;gap:12px;flex-wrap:wrap}.inline-upload-progress .batch-upload-progress-meta strong{font-size:12px}.inline-upload-progress .batch-upload-progress-track{margin-top:8px;height:6px}.inline-upload-progress small{display:block;margin-top:6px;color:#667085;font-size:11px}.import-summary-dialog button:disabled{cursor:not-allowed}.upload-methods{display:flex;gap:10px;margin-bottom:10px}.upload-methods button{flex:1;min-width:0;padding:12px 14px;border:1px solid #cbd5e1;border-radius:6px;background:#fff;color:#475467;font:inherit;text-align:left;cursor:pointer}.upload-methods button strong{display:block;font-size:14px;line-height:1.5}.upload-methods button small{display:block;margin-top:5px;color:#667085;font-size:12px;font-weight:400;line-height:1.6}@media(max-width:640px){.upload-methods{flex-direction:column}}.upload-methods button[aria-pressed=true]{color:#245bea;border-color:#3169ef;background:#eef4ff;font-weight:600}.upload-methods button:focus-visible{outline:2px solid #3169ef;outline-offset:2px}.ai-empty-space{min-height:220px}.upload-method-confirm-backdrop{z-index:220}.upload-method-confirm-backdrop .delete-confirm-dialog{background:#fff;width:min(460px,100%);border-radius:14px;padding:26px;box-shadow:0 20px 55px #172b4d33}.upload-method-confirm-backdrop h2{margin:0 0 12px;font-size:18px}.upload-method-confirm-backdrop p{color:#667085;line-height:1.8}.batch-upload-progress-track span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#3478ec,#61a2ff);transition:width 80ms linear}.batch-upload-progress-meta{margin-top:9px;display:flex;align-items:center;justify-content:space-between;color:#647187;font-size:12px}.batch-upload-progress-meta strong{color:#2769e8;font-size:14px}@keyframes upload-float{0%,to{transform:translateY(2px)}50%{transform:translateY(-4px)}}@keyframes upload-pulse{0%{opacity:.55;transform:scale(.82)}75%,to{opacity:0;transform:scale(1.35)}}.import-result-dialog h2{margin:0;color:#202938;font-size:20px}.import-result-dialog>p{margin:9px auto 20px;max-width:410px;color:#667386;font-size:13px;line-height:1.7}.import-result-dialog .delete-dialog-actions{justify-content:center}.overwrite-dialog{width:min(520px,100%);background:#fff;border-radius:14px;box-shadow:0 20px 55px #0f172a3d;padding:25px}.overwrite-dialog-icon{width:44px;height:44px;display:grid;place-items:center;border-radius:50%;background:#fff1dc;color:#d46f00}.overwrite-dialog-icon svg{width:24px;height:24px}.overwrite-dialog h2{margin:16px 0 7px;color:#222b38;font-size:20px}.overwrite-dialog>p{margin:0;color:#6d7888;font-size:13px}.overwrite-dialog-list{display:grid;gap:7px;margin-top:16px}.overwrite-dialog-list>div{display:grid;grid-template-columns:145px 1fr;gap:12px;padding:10px 12px;border:1px solid #ead9be;border-radius:8px;background:#fffaf2;font-size:13px}.overwrite-dialog-list span{color:#7d6746;word-break:break-all}.unmatched-dialog{width:min(590px,100%);background:#fff;border-radius:14px;box-shadow:0 20px 55px #0f172a3d;padding:25px}.unmatched-dialog-heading{display:flex;align-items:center;gap:12px}.unmatched-dialog-icon{width:44px;height:44px;flex:0 0 auto;display:grid;place-items:center;border-radius:11px;background:#fff1dc;color:#d46f00}.unmatched-dialog-icon svg{width:24px;height:24px}.unmatched-dialog-heading h2{margin:0 0 4px;color:#222b38;font-size:20px}.unmatched-dialog-heading p{margin:0;color:#6d7888;font-size:13px}.unmatched-summary{display:flex;gap:18px;margin-top:18px;padding:11px 13px;border-radius:9px;background:#f6f8fb;font-size:13px}.unmatched-summary strong{color:#168449}.unmatched-summary span{color:#c05a16;font-weight:650}.unmatched-dialog-list{display:grid;gap:8px;margin-top:14px}.unmatched-dialog-list>div{display:grid;grid-template-columns:220px 1fr;gap:12px;padding:11px 12px;border:1px solid #ead9be;border-radius:8px;background:#fffaf2;font-size:13px}.unmatched-dialog-list strong{color:#344054;word-break:break-all}.unmatched-dialog-list span{color:#9a6328}.unmatched-dialog-note{margin:14px 0 0;color:#667386;font-size:12px}.student-select-field{display:grid;gap:7px;margin-top:22px;color:#4d5b6e;font-size:13px;font-weight:600}.student-select-field select{width:100%;height:42px;border:1px solid #cfd8e5;border-radius:9px;background:#fff;color:#263448;padding:0 12px;outline:none}.student-select-field select:focus{border-color:#2d68e8;box-shadow:0 0 0 3px #2d68e821}.selected-student-card{margin-top:15px;padding:14px;border:1px solid #d6e3f8;border-radius:10px;background:#f5f8ff;display:grid;gap:6px}.selected-student-card small,.selected-student-card span{color:#78869a;font-size:12px}.selected-student-card strong{color:#215ecf;font-size:17px}@media(max-width:1200px){.import-workspace{margin-left:188px}.student-files{width:62%}.essay-preview{width:38%}.import-result{font-size:12px}.file-row,.file-table-head{grid-template-columns:64px 126px 1fr}}.import-rule-backdrop{z-index:140}.import-rule-backdrop .import-rule-dialog{position:relative;z-index:101}.batch-task-banner{display:flex;align-items:center;gap:34px;background:#f7f4ff;border:1px solid #e3d7fb;border-radius:10px;padding:12px 20px;margin:0 12px 10px;color:#3a2f5a;font-size:13px}.batch-task-banner .field{display:flex;align-items:center;gap:6px}.batch-task-banner .field:nth-child(2){justify-content:flex-start}.batch-task-banner .field b{color:#6d7888;font-weight:500;min-width:88px;font-size:12px}.batch-task-banner .field-value{color:#1f2937;font-size:13px;font-weight:600}.import-rule-example{display:flex;flex-direction:column;gap:8px;margin-top:8px}.import-rule-example .example-row{display:flex;flex-wrap:wrap;gap:6px;align-items:center;background:#f4f7fc;border-radius:6px;padding:8px 10px}.import-rule-example .example-row.error{background:#fdf1f1;border:1px solid #f3d4d4;align-items:stretch}.import-rule-example .example-row b{min-width:64px;color:#4b5563}.import-rule-example .example-row.error b{color:#c0362f}.import-rule-example code{font-size:12px;color:#2c3e50;background:#fff;border:1px solid #dde4ed;border-radius:4px;padding:2px 6px;font-family:ui-monospace,SF Mono,Menlo,monospace}.import-rule-example .example-row.error code{background:#fff5f5;border-color:#f3d4d4;color:#b1362f}.import-rule-example small{font-size:11px;color:#6b7280}.import-rule-example .example-case{display:flex;min-width:0;flex:1 1 190px;flex-direction:column;align-items:flex-start;gap:4px}.import-rule-example .example-case small{line-height:1.4;white-space:normal}.file-picker-dialog{width:760px;background:#fff;border-radius:10px;overflow:hidden;box-shadow:0 12px 40px #0f172a2e}.file-picker-chrome{background:#ececec;border-bottom:1px solid #d4d4d4;padding:8px 14px;display:flex;align-items:center;gap:12px}.file-picker-traffic{display:flex;gap:6px}.file-picker-traffic i{width:12px;height:12px;border-radius:50%;display:inline-block}.file-picker-path{flex:1;display:flex;align-items:center;gap:6px;background:#fff;border:1px solid #d4d4d4;border-radius:6px;padding:5px 10px;font-size:12px;color:#4b5563}.file-picker-path svg{width:14px;height:14px;color:#6b7280}.file-picker-body{display:flex;height:360px;border-bottom:1px solid #e5e7eb}.file-picker-sidebar{width:168px;background:#f7f7f7;border-right:1px solid #e5e7eb;padding:10px 8px;display:flex;flex-direction:column;gap:3px}.picker-sidebar-title{font-size:11px;color:#6b7280;padding:8px 8px 4px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.picker-sidebar-item{display:flex;align-items:center;gap:6px;background:transparent;border:0;padding:5px 8px;border-radius:5px;font-size:12px;color:#4b5563;cursor:pointer;text-align:left}.picker-sidebar-item svg{width:14px;height:14px;color:#6b7280}.picker-sidebar-item.active{background:#e3eefc;color:#1d4ed8}.picker-sidebar-item.active svg{color:#1d4ed8}.picker-sidebar-item.muted{color:#9aa3af}.file-picker-content{flex:1;padding:14px 16px;overflow:hidden;display:flex;flex-direction:column}.file-picker-header h2{margin:0;font-size:14px;color:#1f2937}.file-picker-header small{font-size:11px;color:#6b7280}.file-picker-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:14px;overflow-y:auto}.picker-file{background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:12px 8px;display:flex;flex-direction:column;align-items:center;gap:4px;cursor:pointer;position:relative}.picker-file svg{width:26px;height:26px;color:#94a3b8}.picker-file-name{font-size:11px;color:#1f2937;text-align:center;word-break:break-all;line-height:1.3}.picker-file small{font-size:10px;color:#9aa3af}.picker-file.selected{border-color:#2563eb;background:#eff6ff;box-shadow:0 0 0 1px #2563eb inset}.picker-file.selected svg{color:#2563eb}.picker-file.unmatched .picker-file-name{color:#9aa3af}.picker-file-tag{position:absolute;top:6px;right:6px;background:#fef3c7;color:#92400e;border-radius:3px;font-size:10px;padding:1px 4px}.file-picker-footer{display:flex;align-items:center;gap:12px;padding:10px 14px;background:#f7f7f7}.file-picker-footer input{flex:1;border:1px solid #d4d4d4;border-radius:6px;padding:6px 10px;font-size:12px}.file-picker-actions{display:flex;gap:8px}.file-picker-actions button{border-radius:6px;padding:6px 14px;border:1px solid #d4d4d4;background:#fff;cursor:pointer;font-size:12px}.file-picker-actions .primary{background:#2563eb;color:#fff;border-color:#2563eb;display:inline-flex;align-items:center;gap:4px}.single-empty-row{cursor:pointer}.single-empty-banner,.single-imported-banner{display:flex;align-items:center;gap:12px;border-radius:10px;padding:12px 16px;margin-bottom:14px;font-size:13px}.single-empty-banner{background:#f7f4ff;border:1px solid #e3d7fb;color:#4a357b}.single-empty-banner svg{width:22px;height:22px;color:#6a4ac9;flex-shrink:0}.single-empty-banner b{display:block;margin-bottom:2px;color:#3a2f5a;font-size:14px}.single-imported-banner{background:#f0f8f4;border:1px solid #c8e6d4;color:#2f6b46}.single-imported-banner svg{width:22px;height:22px;color:#2f9e5a;flex-shrink:0}.single-imported-banner b{display:block;margin-bottom:2px;color:#1f5237;font-size:14px}.visually-hidden-file-input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.batch-mode-detailed{display:none!important}.batch-summary-table{grid-column:1;overflow:hidden}.batch-summary-head,.batch-summary-row{display:grid;grid-template-columns:58px minmax(90px,.9fr) minmax(110px,1fr) minmax(100px,.8fr) 90px minmax(170px,1.5fr);align-items:center}.batch-summary-head{min-height:48px;background:#f8fafc;border-bottom:1px solid #e5e7eb;color:#667085;font-size:13px;font-weight:600}.batch-summary-head span,.batch-summary-row>*{padding:0 16px}.batch-summary-row{min-height:56px;border-bottom:1px solid #eef0f3;color:#344054;font-size:14px}.batch-summary-row:last-child{border-bottom:0}.batch-summary-row strong{font-weight:500}.batch-summary-row .student-code-cell{font-weight:600;color:#1f2937}.batch-summary-row .student-name-cell{display:flex;align-items:center;gap:6px;min-width:0}.batch-summary-row button{width:fit-content;border:0;background:transparent;color:#1764db;cursor:pointer;padding:5px 16px}.batch-summary-row button:disabled{color:#98a2b3;cursor:default}.grading-status{font-size:12px}.grading-status.graded{color:#067647}.grading-status.pending{color:#2d68e8}.grading-status.in-progress{color:#b54708}.grading-status.not-uploaded{color:#98a2b3}.grading-status.exception{color:#b54708}.batch-row-actions{display:flex;align-items:center;justify-content:flex-start;gap:4px;flex-wrap:nowrap;min-width:0;white-space:nowrap}.batch-row-actions button{width:auto;min-width:max-content;padding:5px 6px;white-space:nowrap;word-break:keep-all}.batch-row-actions .danger-text{color:#b42318}.batch-row-actions .danger-text:disabled{color:#98a2b3;cursor:default}.preview-action-disabled:disabled,.preview-action-disabled[disabled]{color:#98a2b3;background:#f1f3f6;border-color:#d8dde3;cursor:not-allowed}.preview-action-disabled:disabled:hover{color:#98a2b3;background:#f1f3f6;border-color:#d8dde3}.preview-modal-closed{display:none!important}.preview-modal-open{position:fixed;z-index:60;top:8vh;right:10vw;bottom:8vh;left:10vw;max-width:1200px;max-height:88vh;min-width:520px;min-height:520px;margin:auto;background:#fff!important;border:1px solid #d0d5dd;border-radius:12px;padding:0;box-shadow:0 24px 64px #0f172a38;display:flex;flex-direction:column;overflow:hidden}.preview-modal-open:before{content:"";position:fixed;z-index:-1;top:-8vh;right:-10vw;bottom:-8vh;left:-10vw;background:#0f172a47}.preview-titlebar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex:0 0 auto;background:#fff!important;padding:12px 22px;min-height:56px}.preview-modal-open .preview-meta,.preview-modal-open .preview-stage{background:#fff!important}.preview-backdrop.preview-modal-open{z-index:10000!important;position:fixed;top:0;right:0;bottom:0;left:0;max-width:none;max-height:none;min-width:0;min-height:0;margin:0;padding:0;border:0;border-radius:0;background:#0f172a73!important;display:flex;align-items:center;justify-content:center}.essay-preview.preview-modal-open{z-index:10001!important;top:auto;right:auto;bottom:auto;left:auto;width:min(1280px,96vw);height:min(840px,92vh);max-width:none;max-height:none;min-width:0;min-height:0;margin:0}.preview-titlebar h2{margin:0}.preview-actions{display:flex;align-items:center;gap:8px;flex:0 0 auto;flex-wrap:nowrap}.preview-close{display:inline-flex;align-items:center;justify-content:center;gap:5px;flex:0 0 auto;white-space:nowrap;border:1px solid #d0d5dd;border-radius:8px;background:#fff;color:#344054;padding:7px 14px;font-size:14px;height:38px;cursor:pointer}.preview-switch{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;white-space:nowrap;border:1px solid #b9d3ff;border-radius:8px;background:#f4f8ff;color:#1764db;padding:7px 14px;font-size:14px;height:38px;cursor:pointer}.confirm-import:disabled{background:#cbd5e1;color:#64748b;cursor:not-allowed;opacity:.8}.batch-list-filter{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:12px 14px;margin-bottom:12px;background:#fff;border:1px solid #dde4ed;border-radius:12px}.batch-list-filter .search-box{height:34px;width:280px;border:1px solid #e1e6ed;border-radius:9px;display:flex;align-items:center;padding:0 10px;gap:8px;background:#fff;color:#5e6877}.batch-list-filter .search-box svg{color:#8d99aa;flex-shrink:0}.batch-list-filter .search-box input{border:0;outline:0;flex:1;font-size:14px;background:transparent}.batch-list-filter .search-box .search-clear{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border:0;border-radius:50%;background:#dde4ed;color:#576172;padding:0;cursor:pointer}.batch-list-filter .search-clear svg{color:#576172}.batch-list-filter .batch-filter-reset{height:34px;padding:0 14px;border-radius:8px;border:1px solid #d4dbe5;background:#fff;color:#576172;font-size:13px;cursor:pointer}.batch-list-filter .batch-filter-reset:hover{border-color:#2c68ec;color:#2c68ec}.batch-list-empty{padding:38px 20px;text-align:center;color:#8d99aa;font-size:14px;background:#fff;border:1px dashed #dde4ed;border-radius:12px;margin-bottom:12px}.preview-student-list{padding:18px 14px;display:flex;flex-direction:column;gap:6px;overflow-y:auto;border-right:1px solid #e5e9ee;background:#fafbfc;min-height:0}.preview-student-item{border:1px solid #dde4ed;background:#fff;color:#344054;font-size:13px;font-weight:600;padding:9px 10px;border-radius:8px;cursor:pointer;text-align:left;transition:background .15s,border-color .15s,color .15s}.preview-student-item:hover{border-color:#b9d3ff;color:#1764db}.preview-student-item.is-active{background:#eaf2ff;border-color:#2d68e8;color:#2d68e8;box-shadow:0 0 0 1px #2d68e8 inset}.preview-student-item.is-empty{color:#98a2b3;background:#f7f9fc}.preview-delete-page{display:inline-flex;align-items:center;gap:5px;height:32px;padding:0 14px;border:0;border-radius:8px;background:#e02d2d;color:#fff;font-size:13px;font-weight:600;cursor:pointer;box-shadow:0 4px 12px #e02d2d52}.preview-delete-page:hover:not(:disabled){background:#c61f1f}.preview-delete-page svg{width:16px;height:16px}.preview-delete-page:disabled{background:#eef1f5;color:#98a2b3;box-shadow:none;cursor:not-allowed}.preview-delete-page:focus-visible{outline:2px solid #2d68e8;outline-offset:3px}.preview-actions{display:flex;gap:8px}.batch-flow-stepper{display:flex;align-items:center;gap:6px;padding:10px 18px;margin-bottom:12px;background:#fff;border:1px solid #dde4ed;border-radius:12px;font-size:13px;color:#576172;flex-wrap:wrap}.batch-flow-step-item{display:inline-flex;align-items:center;gap:6px;color:#98a2b3}.batch-flow-step-item.is-done{color:#344054}.batch-flow-step-item.is-current{color:#2d68e8;font-weight:700}.batch-flow-step-item.is-current b{color:#2d68e8}.batch-flow-step-circle{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;background:#f0f4fa;color:#98a2b3;font-size:12px;font-weight:700;font-style:normal}.batch-flow-step-item.is-done .batch-flow-step-circle{background:#2d68e8;color:#fff}.batch-flow-step-item.is-current .batch-flow-step-circle{background:#fff;border:2px solid #2d68e8;color:#2d68e8;font-weight:800}.batch-flow-step-item b{font-weight:600}.batch-flow-step-arrow{margin:0 4px 0 6px;color:#c2cad6;font-style:normal;font-size:16px;line-height:1}.import-toolbar-actions{display:flex;align-items:center;gap:10px;margin-left:auto}.import-toolbar-actions button{display:inline-flex;align-items:center;gap:5px;height:36px;padding:0 16px;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;border:1px solid transparent}.import-toolbar-actions .batch-grade-btn{background:#fff;color:#2d68e8;border-color:#2d68e8}.import-toolbar-actions .batch-grade-btn:hover{background:#eaf2ff}.import-toolbar-actions .batch-grade-btn:disabled,.import-toolbar-actions .confirm-import:disabled{opacity:.5;cursor:not-allowed}.import-toolbar-actions .confirm-import{background:#2c68ec;color:#fff;border-color:#2c68ec}.import-toolbar-actions .confirm-import:hover{background:#1f56cc;border-color:#1f56cc}.import-toolbar-actions svg{width:16px;height:16px}.import-result{display:none!important}.multifile-exception-panel{margin:6px auto 14px;width:min(680px,100%);background:#fff8ec;border:1px solid #f7d9a1;border-radius:12px;padding:16px 18px;text-align:left}.multifile-exception-panel header{display:flex;align-items:center;gap:10px;margin-bottom:6px}.multifile-exception-badge{font-size:12px;font-weight:600;color:#ad6800;background:#ffecd1;border:1px solid #f7d9a1;border-radius:6px;padding:2px 8px}.multifile-exception-panel h3{margin:0;font-size:16px;font-weight:700;color:#1f2937}.multifile-exception-lead{margin:4px 0 10px;font-size:13px;color:#6b7685;line-height:1.55}.multifile-exception-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.multifile-exception-list>li{background:#fff;border:1px solid #f1e3ca;border-radius:10px;padding:12px 14px}.multifile-exception-head{display:flex;align-items:center;justify-content:space-between;font-size:14px;color:#1f2937;margin-bottom:8px}.multifile-exception-head strong{font-weight:700;color:#b45309}.multifile-exception-head span{font-size:12px;color:#6b7685}.multifile-exception-files{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}.multifile-exception-chip{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border:1px solid #d6dde7;border-radius:999px;background:#fff;font-size:12px;color:#1f2937}.multifile-exception-chip em{font-style:normal;font-size:11px;color:#fff;background:#ef4444;border-radius:999px;padding:1px 6px}.multifile-exception-chip.is-extra{border-color:#f3a8a8;background:#fff5f5;color:#b42323}.multifile-exception-reason{font-size:12px;color:#6b7685;line-height:1.55;margin-bottom:10px}.multifile-exception-actions{display:flex;gap:8px;flex-wrap:wrap}.multifile-exception-actions button{padding:6px 12px;border-radius:6px;border:1px solid #d6dde7;background:#fff;color:#1f2937;font-size:12px;cursor:pointer;transition:all .15s}.multifile-exception-actions button:hover{border-color:#2d68e8;color:#2d68e8}.multifile-exception-actions button.secondary{background:#fff7e6;border-color:#f7d9a1;color:#ad6800}.multifile-exception-actions button.link{border:none;background:transparent;color:#2d68e8;padding:6px 4px}.batch-summary-row.is-multifile-row{background:linear-gradient(90deg,#fff8ec,#fff 70%);border-left:3px solid #f59e0b}.batch-summary-row.is-multifile-row strong{display:inline-flex;align-items:center;gap:8px}.multifile-target-tag{display:inline-block;font-size:11px;font-weight:600;color:#ad6800;background:#ffecd1;border:1px solid #f7d9a1;border-radius:4px;padding:1px 6px;font-style:normal}.multifile-target-hint{display:block;font-size:12px;color:#b45309;margin-top:2px}.student-code{font-weight:600;color:#1f2937}.student-name-cell{font-weight:500;color:#344054;display:inline-flex;align-items:center;gap:6px}.batch-summary-row .student-name-cell{flex-wrap:wrap}.preview-student-item{display:flex;align-items:center;gap:6px}.preview-student-item .student-code{font-weight:600;color:#475569}.preview-student-item .student-name-cell{color:#1f2937}.import-summary-upload-head{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:8px}.import-summary-section-title{margin:0;font-size:18px;font-weight:700;color:#1f2937}.import-summary-tip{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:#6b7685}.import-summary-tip .link-action{background:transparent;border:0;padding:0;color:#1764db;font-size:13px;cursor:pointer;text-decoration:none}.import-summary-tip .link-action:hover{text-decoration:underline}.import-summary-dropzone{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;height:92px;border:1.5px dashed #cbd5e1;border-radius:10px;background:#f8fafc;color:#6b7685;cursor:pointer;margin-bottom:14px;transition:border-color .15s,background-color .15s}.import-summary-dropzone:hover{border-color:#2d68e8;background:#eef4ff;color:#2d68e8}.import-summary-dropzone b{font-size:14px;font-weight:600}.import-summary-subtitle{margin:4px 0 10px;font-size:13px;color:#6b7685;line-height:1.55}.preview-file-list{padding:18px 12px;display:flex;flex-direction:column;gap:6px;overflow-y:auto;border-right:1px solid #e5e9ee;background:#fafbfc;min-height:0}.preview-file-item{border:1px solid #dde4ed;background:#fff;color:#344054;font-size:13px;font-weight:600;padding:9px 10px;border-radius:8px;cursor:pointer;text-align:left;display:flex;align-items:center;justify-content:space-between;gap:6px;transition:background .15s,border-color .15s,color .15s}.preview-file-item:hover{border-color:#b9d3ff;color:#1764db}.preview-file-item.is-active{background:#eaf2ff;border-color:#2d68e8;color:#2d68e8;box-shadow:0 0 0 1px #2d68e8 inset}.preview-file-item-name{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.preview-file-item-count{font-size:11px;color:#6b7685;background:#f0f4fa;border-radius:10px;padding:1px 6px;font-weight:500}.preview-file-item.is-active .preview-file-item-count{background:#dbe7ff;color:#2d68e8}.preview-file-empty{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:6px;padding:24px 12px;color:#98a2b3;font-size:13px;border:1px dashed #dde4ed;border-radius:8px;background:#fff;text-align:center}.empty-batch-import-backdrop{z-index:120}.empty-batch-import-dialog{width:min(1080px,86vw);max-height:92vh;overflow:auto;padding:28px;background:#fff;border-radius:14px;box-shadow:0 20px 55px #0f172a3d}.empty-batch-import-head{display:flex;align-items:baseline;gap:14px;margin-bottom:8px}.empty-batch-import-head h2{margin:0;color:#202938;font-size:20px}.empty-batch-import-head p{margin:0;color:#748094;font-size:13px}.empty-batch-import-head .link-action{padding:0;border:0;background:transparent;color:#1764db;cursor:pointer;font-size:inherit}.empty-batch-import-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:16px}.empty-batch-import-stats>div{padding:13px 14px;border:1px solid #e1e7ef;border-radius:9px;background:#f8fafc}.empty-batch-import-stats span,.empty-batch-import-stats strong{display:block}.empty-batch-import-stats span{color:#667085;font-size:12px}.empty-batch-import-stats strong{margin-top:5px;color:#344054;font-size:17px}.empty-batch-import-list{overflow:hidden;margin:18px 0 14px;border:1px solid #e1e7ef;border-radius:9px;background:#fff}.empty-batch-import-list-head{display:grid;grid-template-columns:52px 1.25fr 1fr 1fr 1fr 1fr .8fr;gap:10px;padding:10px 12px;color:#667085;background:#f8fafc;border-bottom:1px solid #e5e7eb;font-size:12px}.empty-batch-import-list-empty{padding:24px 16px;color:#98a2b3;font-size:13px;text-align:center}.empty-batch-import-dropzone{width:100%;min-height:92px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;border:1px dashed #c5d0df;border-radius:10px;background:#f8fafc;color:#697586;cursor:pointer}.empty-batch-import-dropzone:hover{border-color:#2d68e8;background:#f2f7ff;color:#2d68e8}.empty-batch-import-dropzone b{font-size:14px}.empty-batch-import-dropzone small{color:#98a2b3;font-size:12px}.import-summary-dialog .empty-batch-import-actions{margin-top:18px;justify-content:center}.import-filter-tabs{display:flex;gap:24px;margin:12px 0 8px;border-bottom:1px solid #e1e7ef}.import-filter-tabs button{display:flex;align-items:center;gap:6px;padding:7px 2px 9px;border:0;border-bottom:2px solid transparent;background:transparent;color:#667085;font:inherit;font-size:14px;cursor:pointer;white-space:nowrap}.import-filter-tabs button[aria-selected=true]{color:#2d68e8;border-bottom-color:#2d68e8;font-weight:600}.import-filter-tabs button:hover{color:#2d68e8}.import-filter-tabs button:focus-visible{outline:2px solid #2d68e8;outline-offset:2px}.import-filter-tabs span{padding:1px 6px;border-radius:10px;background:#f0f3f8;font-size:12px}.import-filter-tabs button[aria-selected=true] span{background:#edf4ff}.delete-dialog-backdrop .import-summary-dialog.is-empty-upload{display:grid;grid-template-columns:minmax(0,1fr);overflow-y:auto}.empty-import-rules{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;min-width:0;margin-top:20px}.empty-import-rules .import-rule-heading,.empty-import-rules .import-rule-cards{grid-column:1 / -1}.empty-import-rules .import-rule-heading{gap:10px}.empty-import-rules .import-rule-icon{width:34px;height:34px;flex-shrink:0;border-radius:8px}.empty-import-rules .import-rule-icon svg{width:20px;height:20px}.empty-import-rules .import-rule-heading h2{font-size:16px;margin-bottom:4px}.empty-import-rules .import-rule-heading p{font-size:12px}.empty-import-rules .import-rule-cards{margin:0;gap:14px}.empty-import-rules .import-rule-card{padding:14px 16px;gap:8px;border-radius:9px}.empty-import-rules .import-rule-card small,.empty-import-rules .import-rule-card code,.empty-import-rules .import-rule-card span{font-size:12px}.empty-import-rules .import-rule-card strong{font-size:14px}.empty-import-rules .import-rule-notes,.empty-import-rules .import-rule-example{margin:0;padding:12px;font-size:12px}.empty-import-rules .import-rule-notes>strong{font-size:13px}.empty-import-rules .import-rule-example .example-row{gap:6px;padding:7px}.empty-import-rules .import-rule-example .example-row b{min-width:50px}.empty-import-rules .import-rule-example .example-case{flex:1 1 140px}.empty-import-rules .import-rule-example code{padding:2px 4px}.empty-import-rules .example-row code,.empty-import-rules .example-case small{font-size:11px}.is-empty-upload .empty-batch-import-actions{justify-content:center;position:sticky;bottom:-28px;z-index:1;margin:20px -28px -28px;padding:16px 28px;border-top:1px solid #e5eaf2;background:#fff}@media(max-width:850px){.empty-import-rules{grid-template-columns:minmax(0,1fr)}}.batch-flow-stepper{padding:7px 14px;margin-bottom:6px;min-height:42px;box-sizing:border-box}.import-toolbar{min-height:64px;padding:6px 12px;box-sizing:border-box}.import-toolbar>button,.import-toolbar-actions button{height:34px}.single-import-backdrop{z-index:125}.overwrite-confirm-backdrop{z-index:150}.delete-dialog-backdrop>[role=dialog]{box-sizing:border-box;max-width:100%;max-height:calc(100dvh - 48px);overflow-y:auto}.delete-dialog-backdrop .import-summary-dialog{display:flex;flex-direction:column;width:min(1080px,100%);overflow:hidden}.import-summary-dialog>:not(.import-result-table-wrap){flex-shrink:0}.import-summary-dialog .import-result-table-wrap{min-height:80px;flex:1 1 auto;overflow:auto}.import-summary-dropzone{width:100%;padding:12px;font:inherit;flex-shrink:0}.import-summary-dropzone svg,.empty-batch-import-dropzone svg{flex-shrink:0}.import-summary-dropzone:focus-visible,.empty-batch-import-dropzone:focus-visible{outline:2px solid #2d68e8;outline-offset:3px}.import-summary-upload-head,.empty-batch-import-head,.import-summary-tip{flex-wrap:wrap}.single-import-dialog .import-summary-dropzone{margin-top:18px}.import-confirmed-result{display:flex;flex-direction:column}.import-confirmed-result>:not(.import-result-table-wrap){flex-shrink:0}.import-confirmed-result .import-result-table-wrap{min-height:80px;max-height:300px;flex:1 1 auto;overflow:auto}.import-rule-dialog .import-rule-actions{position:sticky;bottom:-24px;margin-bottom:-24px;padding-bottom:24px;background:#fff}@media(max-height:620px){.delete-dialog-backdrop .import-summary-dialog{padding:16px}.import-summary-dialog .delete-dialog-actions{margin-top:10px}}.batch-task-banner{padding:9px 16px;margin:0 10px 6px}.batch-list-filter{padding:8px 12px;margin-bottom:8px}.batch-flow-stepper{min-height:38px;padding:5px 14px;margin-bottom:4px;border-radius:10px 10px 0 0}.import-toolbar{min-height:58px;padding:6px 10px;gap:8px;border-radius:0 0 10px 10px;background:#fff}.import-toolbar>button:first-of-type{border-color:#2d68e8;background:#2d68e8;color:#fff;font-weight:600}.import-toolbar>button:first-of-type:hover{border-color:#1f56c7;background:#1f56c7}.import-toolbar-actions{gap:8px}.import-toolbar-actions button{height:34px}.dialog-atlas{margin:0;padding:0 16px}.atlas-eyebrow{color:#4266a1;font-size:11px}.atlas-filters{display:flex;flex-wrap:wrap;gap:8px;padding:14px 0}.atlas-filters button{background:#fff;color:#596b82;padding:8px 10px;border:1px solid #dce3ed;border-radius:7px;font:inherit;font-size:12px;cursor:pointer}.atlas-filters button[aria-pressed=true]{background:#edf4ff;border-color:#96b9f8;color:#2864eb}.atlas-card{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(220px,1fr);align-items:start;gap:20px;padding-top:12px}.atlas-thumbnail{width:100%;display:block;position:relative;padding:8px;border:1px solid #e3e9f1;border-radius:8px;background:#eaf0f7;cursor:zoom-in;aspect-ratio:16/9;overflow:hidden}.atlas-thumbnail img{display:block;width:100%;height:100%;object-fit:contain;border-radius:4px}.atlas-thumbnail>span{position:absolute;bottom:14px;right:14px;padding:5px 9px;border-radius:5px;background:#142b4cdd;color:#fff;font-size:11px}.atlas-thumbnail>.atlas-image-loading{position:static;display:grid;place-items:center;height:100%;background:transparent;color:#687b94}.atlas-resource-error{padding:12px;color:#9a640e;background:#fff6e5;border-radius:8px;font-size:12px}.atlas-resource-error button{cursor:pointer;color:#2863d9;background:transparent;border:0}.atlas-card h4{margin:0 0 10px;font-size:14px}.atlas-state{display:inline-block;color:#426692;background:#edf3fa;padding:4px 8px;border-radius:5px;font-size:11px}.atlas-details{margin:0;font-size:12px;line-height:1.8}.atlas-details>div{display:grid;grid-template-columns:56px minmax(0,1fr);gap:10px;margin-top:7px}.atlas-details dt{color:#7a8799;font-weight:400}.atlas-details dd{margin:0;color:#475b75}.atlas-baseline{color:#78869a;font-size:11px;line-height:1.8;margin:12px 0}.atlas-lightbox{width:min(1540px,96vw);max-width:96vw;max-height:94vh;padding:0;border:1px solid #dce3ed;border-radius:16px;background:#fff;color:#243044;box-shadow:0 24px 100px #0d213966}.atlas-lightbox::backdrop{background:#13233ccc;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.atlas-lightbox-shell{display:flex;flex-direction:column;max-height:92vh}.atlas-lightbox header{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:20px 24px;border-bottom:1px solid #e3e9f1}.atlas-lightbox h2{font-size:20px;margin:6px 0 0}.atlas-lightbox button{font-size:13px;border:1px solid #d7e0ec;border-radius:7px;padding:9px 13px;color:#385579;background:#fff;cursor:pointer;white-space:nowrap}.atlas-lightbox button:disabled{opacity:.4;cursor:default}.atlas-lightbox-body{display:grid;grid-template-columns:minmax(0,1fr) 270px;min-height:0;overflow:auto}.atlas-large-image{background:#edf1f7;display:flex;align-items:center;justify-content:center;padding:16px;min-width:0}.atlas-large-image img{display:block;width:100%;height:auto;max-height:65vh;object-fit:contain}.atlas-large-image.atlas-actual-size{display:block;overflow:auto;max-height:65vh}.atlas-actual-size img{width:1280px;height:720px;max-width:none;max-height:none}.atlas-lightbox aside{padding:22px;border-left:1px solid #e3e9f1}.atlas-lightbox aside p{font-size:11px;color:#8a97a9;line-height:1.8;margin-top:20px}.atlas-lightbox footer{padding:14px 24px;border-top:1px solid #e3e9f1;display:flex;gap:14px;align-items:center;font-size:12px;color:#667b95}.atlas-lightbox footer div{display:flex;gap:8px;margin-left:auto}.atlas-lightbox footer small{color:#8a97a9}.dialog-atlas button:focus-visible,.atlas-lightbox button:focus-visible{outline:3px solid #72a2ff;outline-offset:3px}@media(max-width:1000px){.atlas-card{grid-template-columns:1fr}}@media(max-width:760px){.atlas-lightbox-body{grid-template-columns:1fr}.atlas-lightbox aside{border:0}.atlas-lightbox footer{flex-wrap:wrap;padding:12px}.atlas-lightbox footer small{display:none}.atlas-lightbox header{padding:16px}.atlas-lightbox h2{font-size:17px}}[data-theme=dark] .atlas-filters button,[data-theme=dark] .atlas-lightbox,[data-theme=dark] .atlas-lightbox button{background:#17273b;color:#dbe7f6;border-color:#34445b}[data-theme=dark] .atlas-details dd{color:#dbe7f6}[data-theme=dark] .atlas-details dt,[data-theme=dark] .atlas-eyebrow{color:#a8bdd9}[data-theme=dark] .atlas-thumbnail,[data-theme=dark] .atlas-large-image{background:#20334c;border-color:#34445b;color:#c0cee0}[data-theme=dark] .atlas-filters button[aria-pressed=true]{background:#295ed7}.acceptance-workspace{max-width:1320px;margin:0 auto 0 244px;padding:94px 28px 40px;color:#243044}.acceptance-sidebar{position:fixed;top:94px;bottom:18px;left:18px;width:222px;overflow-y:auto;padding:16px 10px;box-sizing:border-box;border:1px solid #dce3ed;border-radius:12px;background:#fff}.acceptance-sidebar h2{font-size:16px;margin:0 12px 6px}.acceptance-sidebar>p{margin:0 12px 16px;color:#66758b;font-size:12px}.acceptance-nav-group+.acceptance-nav-group{margin-top:12px}.acceptance-sidebar button{display:block;width:100%;padding:7px 10px 7px 33px;border:0;border-radius:6px;color:#617087;text-align:left;font:inherit;font-size:12px;background:transparent;cursor:pointer}.acceptance-sidebar button.acceptance-nav-section{padding:9px 8px;font-size:13px;font-weight:650;color:#30445d}.acceptance-nav-section span{margin-right:7px;color:#8b9bb0;font-size:11px}.acceptance-sidebar button:hover,.acceptance-sidebar button[aria-current]{background:#edf4ff;color:#2864eb}.acceptance-workspace :focus-visible{outline:2px solid #2864eb;outline-offset:3px}.acceptance-workspace [id]{scroll-margin-top:90px}.acceptance-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px}.acceptance-heading p{margin:0 0 6px;font-size:12px;color:#66758b}.acceptance-heading h1{font-size:26px;margin:0}.acceptance-heading>span{font-size:12px;color:#66758b}.acceptance-stats{display:flex;align-items:center;flex-wrap:wrap;gap:24px;padding:15px 18px;border:1px solid #dce3ed;border-radius:10px;background:#fff;font-size:13px}.acceptance-stats b{margin-left:5px;font-size:17px;font-variant-numeric:tabular-nums}.acceptance-progress-track{margin-left:auto;width:120px;height:5px;background:#e9eef6;border-radius:8px;overflow:hidden}.acceptance-progress-track i{display:block;height:100%;background:#3270e8}.acceptance-pending{color:#66758b}.acceptance-passed{color:#087349}.acceptance-failed{color:#ba3737}.acceptance-scope,.acceptance-list-count{font-size:12px;color:#66758b;line-height:1.8;margin:12px 0 20px}.acceptance-scope>span{margin-left:8px}.acceptance-section-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:24px 0 14px}.acceptance-section-heading h2{margin:0 0 6px;font-size:19px}.acceptance-section-heading p{margin:0;font-size:12px;color:#66758b}.acceptance-workspace label{display:flex;align-items:center;gap:10px;font-size:12px;color:#617087}.acceptance-workspace select{border:1px solid #d5deeb;border-radius:7px;padding:7px 9px;background:#fff;font-size:13px;min-height:34px}.acceptance-topic-columns{display:flex;justify-content:space-between;padding:0 20px 10px;color:#748297;font-size:11px}.acceptance-topic{background:#fff;border:1px solid #dce3ed;border-radius:10px;margin-bottom:10px;overflow:hidden}.acceptance-topic.is-open{border-color:#b4cdf5}.acceptance-topic h3{margin:0}.acceptance-topic-toggle{width:100%;display:flex;align-items:center;gap:14px;background:transparent;padding:18px;border:0;text-align:left;cursor:pointer;color:inherit;font:inherit}.acceptance-topic-toggle:hover{background:#f8faff}.acceptance-topic-arrow{display:grid;place-items:center;flex-shrink:0;width:24px;height:24px;border:1px solid #dce6f4;border-radius:6px;font-size:17px;color:#3971c5}.acceptance-topic-name{font-size:15px;font-weight:650;line-height:1.6}.acceptance-topic-name small{display:block;font-size:12px;color:#66758b;font-weight:400;margin-top:4px}.acceptance-topic-progress{margin-left:auto;min-width:80px;text-align:right;font-size:16px;font-weight:600;font-variant-numeric:tabular-nums}.acceptance-topic-progress small{display:block;font-size:11px;margin-top:5px;font-weight:400}.acceptance-topic-body{padding:0 18px 18px;border-top:1px solid #e5edf7}.acceptance-case{padding:16px 0}.acceptance-case+.acceptance-case{border-top:1px dashed #dde5f0}.acceptance-case header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:10px;font-size:12px}.acceptance-case header small{padding:3px 6px;margin-left:8px;color:#6e7e93;background:#f0f4f9;border-radius:4px}.acceptance-case dl{margin:0;font-size:13px;line-height:1.85}.acceptance-case dl>div{display:grid;grid-template-columns:64px 1fr;gap:14px;margin-top:5px}.acceptance-case dt{color:#748297}.acceptance-case dd{margin:0}.acceptance-reference{border:1px solid #dde5ef;border-radius:9px;background:#fff;margin:12px 0}.acceptance-reference>summary{cursor:pointer;padding:14px 16px;font-size:13px;color:#415b7d;font-weight:600}.acceptance-reference[open]>summary{border-bottom:1px solid #e6ecf4}.acceptance-reference>.acceptance-scope{padding:0 16px}.acceptance-empty{padding:36px;background:#fff;border:1px dashed #dce3ed;border-radius:10px;text-align:center;color:#66758b;font-size:13px}.acceptance-empty button{display:block;margin:16px auto 0;padding:8px 12px;color:#2864eb;border:1px solid #b4cdf5;border-radius:6px;background:#fff;cursor:pointer}.operation-legend{display:flex;gap:8px;padding:14px 16px 0}.operation-state{display:inline-block;border-radius:5px;padding:2px 6px;font-size:11px;white-space:nowrap}.operation-enabled{color:#087349;background:#eaf8f0}.operation-disabled{color:#a43a37;background:#fff0ef}.operation-hidden{color:#657184;background:#eef1f5}.operation-conditional{color:#975a08;background:#fff6df}.acceptance-table-wrap{overflow-x:auto}.acceptance-table{width:100%;min-width:830px;border-collapse:collapse;font-size:12px;line-height:1.8}.acceptance-table caption{padding:12px 16px;text-align:left;color:#66758b}.acceptance-table th,.acceptance-table td{padding:12px;text-align:left;vertical-align:top;border-top:1px solid #e8edf4}.acceptance-table thead th{background:#f7f9fc;color:#66758b;font-weight:600;white-space:nowrap}.acceptance-table tbody th{min-width:96px}.acceptance-table td:last-child{width:30%}.acceptance-table small{display:block;color:#748297;font-size:11px}.acceptance-table summary{cursor:pointer;color:#2864eb}.acceptance-table p{margin:8px 0}.operation-rule-note{padding:12px 16px;margin:0;font-size:12px;line-height:1.8;color:#617087;border-top:1px solid #e8edf4}[data-theme=dark] .acceptance-workspace{color:#e3eaf5}[data-theme=dark] .acceptance-sidebar,[data-theme=dark] .acceptance-stats,[data-theme=dark] .acceptance-topic,[data-theme=dark] .acceptance-reference,[data-theme=dark] .acceptance-workspace select,[data-theme=dark] .acceptance-empty{background:#17273b;border-color:#34445b}[data-theme=dark] .acceptance-sidebar button,[data-theme=dark] .acceptance-reference>summary,[data-theme=dark] .acceptance-scope,[data-theme=dark] .acceptance-topic-name small,[data-theme=dark] .acceptance-workspace label{color:#b5c7de}[data-theme=dark] .acceptance-sidebar button[aria-current],[data-theme=dark] .acceptance-topic-toggle:hover,[data-theme=dark] .acceptance-table thead th{background:#243c60;color:#c4daff}@media(max-width:900px){.acceptance-workspace{margin-left:208px;padding:88px 16px 30px}.acceptance-sidebar{width:190px;left:10px;top:88px}.acceptance-stats{gap:12px}.acceptance-progress-track,.acceptance-heading>span{display:none}}@media(max-width:620px){.acceptance-workspace{margin:0;padding-top:90px}.acceptance-sidebar{position:static;width:auto;margin-bottom:20px;display:grid;grid-template-columns:1fr 1fr}.acceptance-sidebar>h2,.acceptance-sidebar>p{grid-column:1/-1}.acceptance-nav-group+.acceptance-nav-group{margin:0}.acceptance-nav-group>button:not(.acceptance-nav-section){display:none}.acceptance-section-heading{flex-wrap:wrap}.acceptance-topic-toggle{gap:9px;padding:14px}.acceptance-topic-progress{min-width:60px}}.sidebar{overflow-y:auto;z-index:21}.sidebar .composition-parent{height:54px;font-size:16px;font-weight:650;background:#0d639d}.sidebar .composition-parent.task-parent{border-top:1px solid rgb(255 255 255 / 14%)}.composition-parent .composition-caret{width:14px;transition:transform .18s}.composition-parent .composition-caret.closed{transform:rotate(-90deg)}.composition-submenu{padding:5px 7px 10px;background:#f8fafc}.sidebar .composition-submenu button{height:auto;min-height:38px;padding:7px 9px;border-radius:7px;color:#21252b;position:relative;align-items:flex-start;gap:8px;font-size:12px;line-height:1.4;margin-bottom:2px}.sidebar .composition-submenu button>span{min-width:0;flex:1;overflow-wrap:anywhere}.sidebar .composition-submenu button:hover{background:#eff1f4}.sidebar .composition-submenu button.current{background:#e8ebef;color:#12151a;font-weight:650}.sidebar .composition-submenu button>i{width:6px;height:6px;border-radius:50%;background:#2d67e7;margin:5px 1px 0 auto;flex:0 0 auto}.sidebar .composition-submenu svg{width:15px;height:15px;margin-top:1px;flex:0 0 auto}.sidebar .composition-submenu button.exception-group{font-weight:650;color:#344054;background:#f1f4f8}.sidebar .composition-submenu button.exception-group .composition-caret{margin-left:auto;transition:transform .18s}.exception-submenu{margin:2px 0 5px 17px;padding-left:5px;border-left:1px solid #dce3eb}.sidebar .composition-submenu .exception-submenu button{min-height:34px;padding-top:5px;padding-bottom:5px;font-size:11.5px}.product-tabs{display:flex;gap:4px;padding:4px;border-radius:9px;background:#ffffff1f}.product-switchbar{position:fixed;inset:0 0 auto;z-index:7;height:46px;display:flex;align-items:center;justify-content:center;background:#0e5d96;border-bottom:1px solid rgb(255 255 255 / 18%)}.topbar{top:46px}.sidebar{top:98px}.workspace{padding-top:120px}.task-workspace{padding-top:116px}.task-workspace.detail-page{padding-top:110px}.import-workspace{padding-top:114px}.toast,.import-toast{top:116px}.product-tabs button{height:30px;min-width:86px;padding:0 15px;border:0;border-radius:7px;background:transparent;color:#ffffffbf;font-size:13px;font-weight:600;cursor:pointer}.product-tabs button:hover{background:#ffffff1a;color:#fff}.product-tabs button.active{background:#fff;color:#155fa0;box-shadow:0 2px 7px #00224933}.prd-shell{min-height:100vh;background:#eef2f7}.prd-workspace{width:min(1380px,calc(100% - 48px));margin:0 auto;padding:82px 0 54px;color:#243044}.prd-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;padding:31px 34px;border-radius:18px;color:#fff;background:linear-gradient(120deg,#0e5d96,#2379bf 62%,#4d8fe9);box-shadow:0 16px 34px #164d7e33}.prd-hero span{font-size:11px;letter-spacing:.14em;opacity:.75}.prd-hero h1{margin:8px 0 0;font-size:28px;line-height:1.25}.prd-meta{display:flex;align-items:center;gap:10px;white-space:nowrap}.prd-meta b,.prd-meta span{padding:7px 11px;border-radius:999px;background:#ffffff26;font-size:12px;letter-spacing:0;opacity:1}.prd-summary-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin-top:18px}.prd-summary-grid article,.prd-section{border:1px solid #dde4ec;border-radius:14px;background:#fff;box-shadow:0 7px 22px #263a520f}.prd-summary-grid article{padding:21px}.prd-summary-grid small{color:#2871d8;font-size:11px;font-weight:700;letter-spacing:.08em}.prd-summary-grid h2{margin:8px 0;color:#202c3d;font-size:16px}.prd-summary-grid p{margin:0;color:#68768a;font-size:13px;line-height:1.65}.prd-section{margin-top:18px;padding:24px}.prd-section-title{display:flex;align-items:center;gap:12px;margin-bottom:19px}.prd-section-title>span{width:34px;height:34px;display:grid;place-items:center;border-radius:9px;background:#eaf2ff;color:#2d6fd5;font-size:12px;font-weight:750}.prd-section-title h2{margin:0;color:#202c3d;font-size:19px}.prd-section-title p{margin:4px 0 0;color:#8995a5;font-size:12px}.prd-section-title.compact{margin-bottom:14px}.prd-flow{display:grid;grid-template-columns:repeat(7,1fr);gap:10px}.prd-flow div{position:relative;min-height:80px;padding:14px 12px;border-radius:10px;background:#f5f8fc;text-align:center}.prd-flow div:not(:last-child):after{content:"›";position:absolute;right:-8px;top:27px;z-index:1;color:#8aa1bd;font-size:20px}.prd-flow b{width:24px;height:24px;margin:0 auto 8px;display:grid;place-items:center;border-radius:50%;background:#3277df;color:#fff;font-size:11px}.prd-flow span{color:#46556a;font-size:12px;line-height:1.4}.prd-table{overflow:hidden;border:1px solid #e1e6ed;border-radius:10px}.prd-table-head,.prd-table-row{display:grid;grid-template-columns:190px 1fr 74px;align-items:center}.prd-process-table .prd-table-head,.prd-process-table .prd-table-row{grid-template-columns:72px 220px 1fr}.prd-page-table .prd-table-head,.prd-page-table .prd-table-row{grid-template-columns:72px 285px 1fr}.prd-pdf-table .prd-table-head,.prd-pdf-table .prd-table-row{grid-template-columns:72px 190px 1fr}.prd-exception-table .prd-exception-head,.prd-exception-table .prd-exception-row{min-width:980px}.prd-section>.prd-table{width:100%}.prd-table-head{min-height:42px;background:#f4f7fb;color:#6c788a;font-size:12px;font-weight:650}.prd-table-row{min-height:49px;border-top:1px solid #e9edf2;font-size:12px}.prd-table-head span,.prd-table-row>*{padding:10px 14px}.prd-table-row strong{color:#29364a}.prd-table-row span{color:#667386;line-height:1.55}.prd-table-row i{justify-self:start;padding:4px 9px;border-radius:999px;font-style:normal;font-weight:700}.prd-table-row i.p0{background:#ffe9e8;color:#d4483e}.prd-table-row i.p1{background:#e8f1ff;color:#2869ce}.prd-overview-table{display:grid;grid-template-columns:220px 1fr 1fr;overflow:hidden;border:1px solid #e1e6ed;border-radius:10px;margin-top:8px}.prd-overview-head,.prd-overview-row{display:contents}.prd-overview-head>span{background:#f4f7fb;color:#6c788a;font-size:12px;font-weight:650;padding:10px 14px;min-height:42px;display:flex;align-items:center}.prd-overview-row>strong{color:#29364a;font-size:12.5px;padding:12px 14px;border-top:1px solid #e9edf2;line-height:1.5;background:#fbfcfe}.prd-overview-row>span{color:#4a566b;font-size:12px;padding:12px 14px;border-top:1px solid #e9edf2;line-height:1.55}.prd-overview-tag{display:inline-block;padding:2px 8px;border-radius:999px;font-size:10.5px;font-weight:700;margin-right:6px}.prd-overview-tag.new{background:#e8f7ee;color:#1f8a4a}.prd-overview-tag.optim{background:#eaf1ff;color:#2869ce}.prd-section-subtitle{margin:18px 0 6px;color:#2b3749;font-size:13.5px;font-weight:700}.prd-page-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.prd-page-grid article{display:flex;gap:12px;padding:14px;border:1px solid #e2e7ed;border-radius:10px;background:#fafbfd}.prd-page-grid em{color:#a4afbd;font-size:11px;font-style:normal;font-weight:700}.prd-page-grid h3{margin:0 0 5px;color:#2b3749;font-size:13px}.prd-page-grid p{margin:0;color:#778396;font-size:12px;line-height:1.5}.prd-flow{background:#fafbfd;border:1px solid #e2e7ed;border-radius:12px;padding:20px 22px;margin-bottom:18px}.prd-flow-title{font-size:12.5px;font-weight:700;color:#2b3749;margin-bottom:14px;display:flex;align-items:center;gap:8px}.prd-flow-title span{background:#e8f1ff;color:#2869ce;padding:2px 8px;border-radius:999px;font-size:10.5px}.prd-flow-track{display:grid;grid-template-columns:1fr 24px 1fr 24px 1fr;align-items:stretch;gap:0}.prd-flow-node{background:#fff;border:1px solid #d8e0ea;border-radius:10px;padding:12px;text-align:center}.prd-flow-node strong{display:block;color:#2b3749;font-size:13px;line-height:1.4;margin-bottom:4px}.prd-flow-node small{color:#778396;font-size:11px;line-height:1.4}.prd-flow-node.start{background:#f0f5ff;border-color:#c2d6f5}.prd-flow-node.end{background:#e8f7ee;border-color:#b4dec1}.prd-flow-arrow{align-self:center;text-align:center;color:#a4afbd;font-size:18px;line-height:1}.prd-flow-error-row{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:16px;padding:0 8px}.prd-flow-error{background:#fff9f8;border:1px solid #f1cbc7;border-radius:10px;padding:13px 15px;position:relative}.prd-flow-error:before{content:"";position:absolute;top:-16px;left:50%;width:1px;height:16px;background:#f3b6b1}.prd-flow-error>div{display:flex;align-items:center;gap:8px}.prd-flow-error strong{display:inline;color:#c53f38;font-size:13px}.prd-flow-error p{margin:9px 0 6px;color:#795d5a;font-size:12px;line-height:1.5}.prd-flow-error small,.prd-flow-error em{display:block;color:#9b6c67;font-size:11px;line-height:1.5;font-style:normal}.prd-flow-error em{margin-top:5px;color:#b24b43;font-weight:650}.prd-flow-error .tag{display:inline-block;background:#ffe2df;color:#d4483e;font-size:10px;font-weight:700;padding:2px 7px;border-radius:999px;margin-bottom:6px}.prd-exception-table-wrap{overflow-x:auto}.prd-exception-table{min-width:980px;overflow:hidden;border:1px solid #e1e6ed;border-radius:10px}.prd-exception-head,.prd-exception-row{display:grid;grid-template-columns:145px 1.2fr 1.55fr 1.15fr;align-items:center}.prd-exception-head{min-height:43px;background:#f4f7fb;color:#647187;font-size:11px;font-weight:700}.prd-exception-row{min-height:76px;border-top:1px solid #e8edf3;color:#667386;font-size:12px;line-height:1.45}.prd-exception-head>*,.prd-exception-row>*{padding:12px 14px}.prd-exception-row strong{display:block;color:#2a3749;font-size:13px}.prd-exception-row small{display:block;margin-top:4px;color:#9aa6b5;font-size:10px}.prd-exception-scene{align-self:stretch;display:flex;flex-direction:column;justify-content:center;background:#fbfcfe;border-right:1px solid #edf0f4}.prd-exception-trigger{display:grid;gap:7px}.prd-exception-trigger span{color:#667386;line-height:1.5}.prd-exception-trigger b{justify-self:start;padding:3px 8px;border-radius:999px;background:#edf4ff;color:#2869ce;font-size:10.5px}.prd-exception-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.prd-exception-actions button{min-height:29px;padding:4px 9px;border-radius:7px;font:inherit;font-size:11px;line-height:1.25}.secondary-action{border:1px solid #d8e0ea;background:#f7f9fc;color:#68768a}.primary-action{border:1px solid #b9d3ff;background:#edf4ff;color:#2869ce;font-weight:700}.action-arrow{color:#a3afbd;font-size:14px}.prd-exception-result{padding-left:18px!important;border-left:1px solid #edf0f4}.prd-exception-result span{display:block;padding-left:10px;border-left:3px solid #65b88a;color:#4d6959;line-height:1.5}.prd-two-column{display:grid;grid-template-columns:1fr 1fr;gap:35px}.prd-checklist{margin:0;padding:0;list-style:none;display:grid;gap:10px}.prd-checklist li{position:relative;padding-left:21px;color:#58677b;font-size:12px;line-height:1.55}.prd-checklist li:before{content:"✓";position:absolute;left:0;top:0;color:#23a765;font-weight:800}.prd-important-rule{display:flex;gap:10px;margin:0 0 14px;padding:12px 13px;border:1px solid #ffc967;border-left:4px solid #f59e0b;border-radius:9px;background:#fff8e8;color:#8b5a08}.prd-important-rule>svg{flex:0 0 auto;margin-top:2px;color:#f59e0b}.prd-important-rule strong{display:block;margin-bottom:4px;color:#9a5b00;font-size:12px}.prd-important-rule p{margin:0;color:#765b2c;font-size:12px;line-height:1.6}.prd-acceptance{display:grid;grid-template-columns:repeat(2,1fr);gap:10px 26px}.prd-acceptance p{margin:0;padding:11px 13px;border-radius:8px;background:#f4faf7;color:#416252;font-size:12px}.prd-workspace{padding-top:128px}@media(max-width:1100px){.prd-flow{grid-template-columns:repeat(4,1fr)}.prd-summary-grid{grid-template-columns:1fr}}.theme-selector{position:relative}.theme-trigger{height:34px;display:flex;align-items:center;gap:6px;padding:0 9px;border:1px solid rgb(255 255 255 / 18%);border-radius:8px;background:#ffffff14;color:#fff;font-size:13px;cursor:pointer}.theme-trigger:hover{background:#ffffff24}.theme-trigger svg{width:16px;height:16px}.theme-trigger svg:last-child{width:13px;transition:transform .18s ease}.theme-trigger svg:last-child.open{transform:rotate(180deg)}.theme-menu{position:absolute;right:0;top:42px;z-index:30;width:218px;padding:7px;border:1px solid #dce4ee;border-radius:11px;background:#fff;box-shadow:0 12px 30px #142b4633}.theme-menu button{width:100%;min-height:52px;display:grid;grid-template-columns:24px 1fr 18px;align-items:center;gap:8px;padding:8px 9px;border:0;border-radius:8px;background:transparent;color:#334155;text-align:left;cursor:pointer}.theme-menu button:hover{background:#f3f7fc}.theme-menu button.selected{background:#eaf3ff;color:#155fac}.theme-menu button>span{display:grid;gap:2px}.theme-menu b{font-size:13px}.theme-menu small{color:#7b8797;font-size:11px}.brand-badge{display:inline-flex;align-items:center;font-weight:700;box-shadow:0 2px 6px #062f5930}.task-card{transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.task-card:hover,.task-card.selected{transform:translateY(-2px);box-shadow:0 10px 24px #3558801c}.task-card:focus-visible,.sidebar button:focus-visible,.primary:focus-visible,.text-btn:focus-visible,.theme-trigger:focus-visible{outline:3px solid #8bb8ff;outline-offset:2px}.sidebar{scrollbar-width:thin;scrollbar-color:rgb(255 255 255 / 28%) transparent}@media(max-width:1100px){.workspace,.task-workspace,.import-workspace,.prd-workspace{padding-right:14px;padding-left:14px}.panel{border-radius:13px}}html[data-theme=dark]{color-scheme:dark}html[data-theme=dark] body,html[data-theme=dark] .app-shell,html[data-theme=dark] .workspace,html[data-theme=dark] .task-workspace,html[data-theme=dark] .import-workspace,html[data-theme=dark] .prd-shell{background:#101923;color:#e6edf5}html[data-theme=dark] .product-switchbar,html[data-theme=dark] .topbar{background:#0a4a75}html[data-theme=dark] .sidebar{background:#0b4266}html[data-theme=dark] .sidebar .composition-parent{background:#0a3b5b}html[data-theme=dark] .composition-submenu{background:#121e2a}html[data-theme=dark] .sidebar .composition-submenu button{color:#d7e2ee}html[data-theme=dark] .sidebar .composition-submenu button:hover{background:#1c2b3b}html[data-theme=dark] .sidebar .composition-submenu button.current{background:#233b55;color:#8dbbff}html[data-theme=dark] .sidebar .composition-submenu button.exception-group{background:#1b2c3e;color:#c9d6e4}html[data-theme=dark] .sidebar .composition-submenu button.exception-group:hover{background:#22364a}html[data-theme=dark] .exception-submenu{border-color:#34485d}html[data-theme=dark] .panel,html[data-theme=dark] .import-shell,html[data-theme=dark] .task-filter,html[data-theme=dark] .task-table-card,html[data-theme=dark] .detail-head,html[data-theme=dark] .metric-card,html[data-theme=dark] .analysis-card,html[data-theme=dark] .students-card,html[data-theme=dark] .prd-summary-grid article,html[data-theme=dark] .prd-section,html[data-theme=dark] .task-card,html[data-theme=dark] .form-card,html[data-theme=dark] .require-card,html[data-theme=dark] .settings-card{background:#172331;border-color:#2a3b4e;color:#e6edf5}html[data-theme=dark] .panel-head,html[data-theme=dark] .panel-footer,html[data-theme=dark] .import-heading,html[data-theme=dark] .file-table-head,html[data-theme=dark] .task-table th,html[data-theme=dark] .prd-table-head,html[data-theme=dark] .prd-exception-head{background:#1b2a3a;border-color:#304155;color:#dce6f1}html[data-theme=dark] .task-table td,html[data-theme=dark] .file-row,html[data-theme=dark] .student-index,html[data-theme=dark] .student-label,html[data-theme=dark] .student-files,html[data-theme=dark] .essay-preview,html[data-theme=dark] .prd-table-row,html[data-theme=dark] .prd-exception-row{border-color:#2d3d50}html[data-theme=dark] .essay-preview,html[data-theme=dark] .preview-stage{background:#111c27}html[data-theme=dark] .file-row.student-chosen,html[data-theme=dark] .file-row.single-empty-row:hover{background:#1a2d42}html[data-theme=dark] .prd-workspace,html[data-theme=dark] .prd-section-title h2,html[data-theme=dark] .prd-summary-grid h2,html[data-theme=dark] .prd-page-grid h3,html[data-theme=dark] .prd-table-row strong,html[data-theme=dark] .prd-exception-row strong{color:#e7eef7}html[data-theme=dark] .prd-summary-grid p,html[data-theme=dark] .prd-page-grid p,html[data-theme=dark] .prd-table-row span,html[data-theme=dark] .prd-exception-row,html[data-theme=dark] .prd-checklist li{color:#aebccc}html[data-theme=dark] .prd-page-grid article,html[data-theme=dark] .prd-flow div,html[data-theme=dark] .prd-table,html[data-theme=dark] .prd-exception-table{background:#13202d;border-color:#2d3d50}html[data-theme=dark] .prd-flow span{color:#bdc9d7}html[data-theme=dark] input,html[data-theme=dark] select,html[data-theme=dark] textarea,html[data-theme=dark] .import-toolbar>button,html[data-theme=dark] .class-list button{background:#111d29;border-color:#36485d;color:#d9e4ef}html[data-theme=dark] .theme-menu{background:#172331;border-color:#33475d}html[data-theme=dark] .theme-menu button{color:#dce7f2}html[data-theme=dark] .theme-menu button:hover{background:#213247}html[data-theme=dark] .theme-menu button.selected{background:#183b60;color:#8bbcff}html[data-theme=dark] .theme-menu small{color:#91a1b4}html[data-theme=dark] .prd-acceptance p{background:#172e27;color:#acd5c0}html[data-theme=dark] .prd-important-rule{background:#352a17;border-color:#7d5a1a;color:#f3d18b}html[data-theme=dark] .prd-important-rule p{color:#d8be89}html[data-theme=dark] .task-card h3,html[data-theme=dark] .task-card p,html[data-theme=dark] .student-label,html[data-theme=dark] .student-index{color:#e3ebf4}@media(max-width:1180px){.theme-trigger span{display:none}.theme-trigger{width:34px;justify-content:center;padding:0}.theme-trigger svg:last-child{display:none}}:root{font-family:PingFang TC,Microsoft JhengHei,Noto Sans TC,Arial,sans-serif;color:#202a3a;background:#f3f6fa;font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-width:980px;min-height:100vh;-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit}.app-shell{min-height:100vh;background:#f3f6fa}.topbar{height:52px;background:#0e5d96;color:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 18px;position:fixed;inset:0 0 auto;z-index:5;box-shadow:0 2px 5px #17304b35}.brand,.top-actions,.top-actions span{display:flex;align-items:center}.brand{gap:13px;font-size:14px}.brand-badge{width:33px;height:33px;border-radius:50%;justify-content:center;background:#f6fbff;color:#2463c4;font-size:17px}.top-actions{gap:18px;font-size:14px}.top-actions span{gap:5px}.top-actions svg{width:16px;height:16px}.top-actions .avatar{width:25px;height:25px;border-radius:50%;justify-content:center;background:#236de1;font-size:12px;margin-right:-10px}.sidebar{position:fixed;top:52px;bottom:0;left:0;width:219px;background:#116da5;color:#fff;padding-top:2px}.sidebar button{width:100%;height:48px;border:0;background:transparent;color:#fff;display:flex;align-items:center;gap:10px;padding:0 19px;cursor:pointer;text-align:left}.sidebar button:hover{background:#0d639d}.sidebar .active{background:#0b568f;border-right:3px solid #edf6ff}.nav-caret{margin-left:auto}.workspace{margin-left:219px;padding:74px 19px 36px 24px;min-height:100vh}.panel{background:#fff;border:1px solid #dce2e9;border-radius:16px;min-height:615px;overflow:hidden;box-shadow:0 9px 23px #2d4b6e0d;display:grid;grid-template-rows:63px 1fr 65px}.panel-head{display:flex;align-items:center;padding:0 17px;border-bottom:1px solid #edf0f4;position:relative;font-size:18px}.back-icon{border:0;background:#fafbfd;width:36px;height:36px;border-radius:11px;color:#798496;display:grid;place-items:center;margin-right:10px;cursor:pointer}.dots{display:flex;gap:5px;margin-left:auto}.dots span{width:8px;height:8px;border-radius:50%;background:#e2e6eb}.dots .on{background:#2864dc}.panel-body{min-height:0}.panel-footer{border-top:1px solid #edf0f4;display:flex;align-items:center;justify-content:flex-end;gap:20px;padding:0 16px}.primary,.generate,.publish{border:0;border-radius:11px;height:37px;padding:0 17px;color:#fff;display:flex;align-items:center;gap:6px;font-weight:600;cursor:pointer}.primary{background:#2864eb}.primary:disabled{opacity:.45;cursor:not-allowed}.text-btn{border:0;background:transparent;color:#556071;cursor:pointer}.select-content{padding:26px 24px}.select-content h2,.config-content h2{font-size:21px;margin:0 0 15px}.task-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.task-card{height:188px;border:1px solid #dce2e9;background:#fff;border-radius:16px;text-align:left;padding:40px 23px 24px;position:relative;overflow:hidden;cursor:pointer;color:#202a3a}.task-card:hover,.task-card.selected{border-color:currentColor;box-shadow:0 7px 18px #35588012}.task-card svg{position:relative}.task-card h3{font-size:20px;margin:13px 0 9px}.task-card p{font-size:13px;color:#6c7584;margin:0;line-height:1.55}.task-card.blue{color:#2062ef}.task-card.purple{color:#7635ff}.task-card.orange{color:#f05512}.task-card h3,.task-card p{color:#202a3a}.corner{position:absolute;width:93px;height:93px;border-radius:0 0 0 100%;right:0;top:0;background:#edf4fd}.purple .corner{background:#f3effd}.orange .corner{background:#fff4e8}.selected-check{position:absolute;right:16px;bottom:14px;width:24px;height:24px;background:currentColor;border-radius:50%;display:grid;place-items:center}.selected-check svg{color:#fff;width:14px}.config-content{max-width:760px;margin:0 auto;padding:26px 0}.config-content h2{font-size:21px}.form-card{border:1px solid #dce2e9;border-radius:16px;padding:29px;box-shadow:0 6px 15px #34506d0b}.form-card label{display:flex;flex-direction:column;gap:7px;font-size:13px;font-weight:600}.form-card input,.form-card select{height:34px;border:1px solid #d4d8de;border-radius:4px;padding:0 11px;background:#fff;color:#666;font-weight:400}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:17px}.generate{background:linear-gradient(105deg,#ff6917,#ff3f49);min-width:146px}.generate:disabled{opacity:.7}.publish{background:#17a94e}.publish svg{width:15px}.publish-content{max-width:916px;margin:0 auto;padding:24px 0 38px}.publish-content>h2{font-size:21px;margin:0 0 13px;display:flex;align-items:center;gap:8px}.orange-icon{color:#ff650f}.require-card,.settings-card{border:1px solid #dce2e9;border-radius:16px;padding:18px;box-shadow:0 5px 12px #34506d0b}.field-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;font-size:14px}.field-title button{height:34px;border:1px solid #b9d3ff;border-radius:10px;background:#f4f8ff;color:#1764db;padding:0 13px;display:flex;align-items:center;gap:5px;font-weight:600}.require-card textarea{width:100%;height:115px;resize:vertical;border:1px solid #cfd4da;border-radius:3px;padding:8px 11px;line-height:1.55;color:#666}.settings-card{margin-top:14px;padding:19px 18px 23px}.settings-card h3{margin:0 0 16px;font-size:16px;display:flex;gap:7px;align-items:center}.settings-card h3 svg{color:#7635ff}.mini-label{display:block;font-size:13px;margin:0 0 8px}.class-list{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:23px}.class-list button{height:37px;border:1px solid #dce2e9;border-radius:10px;background:#fff;color:#394256;padding:0 11px;display:flex;align-items:center;gap:8px;cursor:pointer}.class-list button>span{width:14px;height:14px;border:1px solid #8b939d;border-radius:3px;display:grid;place-items:center}.class-list .checked{border-color:#4a83ee;background:#f3f7ff}.class-list .checked>span{background:#2864eb;border-color:#2864eb}.class-list svg{color:#fff;width:11px}.date-row{display:grid;grid-template-columns:1fr 30px 1fr;align-items:center;margin-bottom:18px}.date-row input{height:33px;border:1px solid #d4d8de;border-radius:4px;padding:0 10px;color:#666}.date-row em{text-align:center;font-style:normal;color:#8b919a}.upload-card{width:435px;height:83px;border:1px solid #2673ff;border-radius:10px;background:#eef5ff;color:#1760d5;text-align:left;padding:13px;display:grid;grid-template-columns:18px 1fr;grid-template-rows:25px 1fr;cursor:pointer}.upload-card>span{width:15px;height:15px;border-radius:50%;background:#2864eb;display:grid;place-items:center;margin-top:2px}.upload-card svg{width:10px;color:#fff}.upload-card strong{font-size:16px}.upload-card small{grid-column:1/3;color:#3d4857;margin-top:4px}.toast{position:fixed;right:30px;top:70px;padding:12px 18px;background:#172435;color:#fff;border-radius:10px;display:flex;gap:8px;align-items:center;box-shadow:0 8px 25px #0003}.toast svg{color:#61e78a}@media(max-width:1100px){.top-actions span:nth-child(-n+2){display:none}.sidebar{width:188px}.workspace{margin-left:188px}.publish-content,.select-content{padding-left:18px;padding-right:18px}}.batch-class-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#14233761;display:grid;place-items:center;z-index:20}.batch-class-dialog{width:min(430px,calc(100% - 40px));padding:24px;border-radius:16px;background:#fff;box-shadow:0 18px 50px #162d4c33;color:#202a3a}.batch-class-dialog h2{margin:0 0 8px;font-size:19px}.batch-class-dialog p{margin:0 0 18px;color:#6b7584;font-size:13px}.batch-class-options{display:grid;gap:10px}.batch-class-options button{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;border:1px solid #d8e0ea;border-radius:10px;background:#fff;color:#2d5fc0;cursor:pointer;text-align:left}.batch-class-options button:hover{border-color:#2d68e8;background:#f3f7ff}.batch-class-options span{font-size:12px;color:#6c7787}.batch-class-cancel{margin-top:16px;width:100%;height:36px;border:0;border-radius:9px;background:#f1f4f8;color:#536073;cursor:pointer}.prd-workspace{padding-top:58px!important}.prd-table-head>*,.prd-table-row>*{min-width:0}.prd-process-table .prd-table-head,.prd-process-table .prd-table-row{grid-template-columns:72px 220px 1fr!important}.prd-page-table .prd-table-head,.prd-page-table .prd-table-row{grid-template-columns:72px 285px 1fr!important}.prd-data-operation-table .prd-table-head,.prd-data-operation-table .prd-table-row{grid-template-columns:118px 1.1fr 1.1fr 1.25fr!important}.prd-pdf-table .prd-table-head,.prd-pdf-table .prd-table-row{grid-template-columns:72px 190px 1fr!important}.prd-table-row>span{overflow-wrap:anywhere}.prd-table-row .process-name{color:#2d6fd5;font-weight:700}.prd-table-row .accept-pass,.prd-table-row .accept-pending{justify-self:start;padding:4px 8px;border-radius:999px;font-size:11px}.prd-table-row .accept-pass{background:#e8f7ee;color:#1f8a4a}.prd-table-row .accept-pending{background:#fff3dc;color:#a46809}.legacy-prd-section{display:none}.prd-compact-spec{display:block}.prd-scope-note{display:flex;gap:12px;align-items:baseline;margin-top:14px;padding:12px 14px;border:1px solid #e5eaf2;border-radius:10px;background:#f8fafc;color:#526174;font-size:13px}.prd-scope-note strong{color:#223047;white-space:nowrap}.compact-subtable{margin-top:16px}
