@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap";*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{min-height:100vh}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:#1e293b;background:#f8fafc;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#94a3b8}.ant-layout{background:#f8fafc!important}.ant-layout-sider{background:#0f172a!important}.ant-layout-sider .ant-menu{background:0 0!important;border-right:0!important}.ant-layout-sider .ant-menu-item{color:#ffffffa6!important;border-radius:10px!important;width:calc(100% - 16px)!important;margin:2px 8px!important}.ant-layout-sider .ant-menu-item:hover{color:#fff!important;background:#ffffff14!important}.ant-layout-sider .ant-menu-item-selected{color:#f6a800!important;background:#f6a80026!important}.ant-layout-sider .ant-menu-item-selected .anticon{color:#f6a800!important}.ant-layout-sider .ant-menu-item .anticon{transition:color .2s;color:#ffffff80!important}.ant-layout-sider .ant-menu-item:hover .anticon{color:#ffffffe6!important}.ant-card{border:1px solid #f1f5f9!important;transition:box-shadow .25s,transform .25s!important;box-shadow:0 2px 12px #0f172a0f!important}.ant-card:hover{box-shadow:0 8px 30px #0f172a1f!important}.ant-statistic-title{text-transform:uppercase!important;letter-spacing:.5px!important;color:#64748b!important;font-size:12px!important;font-weight:500!important}.ant-statistic-content-value{color:#0f172a!important;font-weight:700!important}.ant-btn-primary{font-weight:600!important;box-shadow:0 4px 16px #f6a8004d!important}.ant-btn-primary:hover{box-shadow:0 6px 20px #f6a80066!important}.ant-tag{font-weight:500!important}.ant-form-item-label>label{color:#374151!important;font-weight:500!important}.ant-input:focus,.ant-input-affix-wrapper:focus,.ant-input-affix-wrapper-focused{box-shadow:0 0 0 3px #f6a8001f!important}@supports (padding-bottom:env(safe-area-inset-bottom)){.safe-bottom{padding-bottom:env(safe-area-inset-bottom)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.fade-in-up{animation:.4s both fadeInUp}.stat-card-blue{border-top:4px solid #2563eb!important}.stat-card-green{border-top:4px solid #16a34a!important}.stat-card-orange{border-top:4px solid #f6a800!important}.stat-card-purple{border-top:4px solid #7c3aed!important}.stat-card-pink{border-top:4px solid #db2777!important}.stat-card-teal{border-top:4px solid #0d9488!important}.spreadsheet-container{background:#fff;border:1px solid #d9d9d9;border-radius:6px;position:relative;overflow:hidden}.picker-overlay{z-index:999;position:fixed;inset:0}.formula-bar{background:#fafafa;border-bottom:1px solid #d9d9d9;align-items:center;height:32px;display:flex}.cell-ref{color:#666;border-right:1px solid #d9d9d9;align-items:center;width:60px;height:100%;padding:0 8px;font-size:12px;display:flex}.formula-input{background:0 0;border:none;outline:none;flex:1;height:100%;padding:0 8px;font-size:13px}.grid-wrapper{max-height:calc(100vh - 280px);overflow:auto}.spreadsheet-table{border-collapse:collapse;-webkit-user-select:none;user-select:none;width:100%;min-width:max-content}.spreadsheet-table th,.spreadsheet-table td{text-overflow:ellipsis;border:1px solid #e0e0e0;padding:0;font-size:13px;overflow:hidden}.spreadsheet-table td{white-space:nowrap}.spreadsheet-table td.cell-multi{white-space:normal}.col-header{text-align:center;color:#666;z-index:2;background:#f5f5f5;height:24px;font-size:12px;font-weight:500;position:sticky;top:0}.row-header{text-align:center;color:#666;z-index:1;background:#f5f5f5;width:40px;min-width:40px;font-size:12px;font-weight:500;position:sticky;left:0}.cell{cursor:cell;outline:none;min-height:24px;padding:2px 6px;position:relative}.cell:focus{outline:none}.cell.selected{outline-offset:-1px;z-index:1;outline:2px solid #1677ff}.cell.in-selection{outline-offset:-1px;outline:1px solid #1677ff4d;background-color:#1677ff14!important}.cell-input{z-index:2;box-sizing:border-box;background:#fff;border:none;outline:none;width:100%;height:100%;padding:2px 6px;font-size:13px;position:absolute;top:0;left:0}.cell-multiline{flex-direction:column;gap:1px;line-height:1.2;display:flex}.cell-line-lesson{font-size:12px;font-weight:600}.cell-line-topic{opacity:.85;font-size:10px}.cell-line-book{opacity:.65;font-size:9px;font-style:italic}.context-menu{z-index:1000;background:#fff;border:1px solid #d9d9d9;border-radius:6px;min-width:180px;padding:4px 0;position:fixed;box-shadow:0 4px 12px #00000026}.context-menu-item{cursor:pointer;padding:6px 12px;font-size:13px}.context-menu-item:hover{background:#f0f0f0}.context-menu-divider{border-top:1px solid #f0f0f0;margin:4px 0}.context-menu-label{color:#999;padding:4px 12px;font-size:11px}.color-palette{flex-wrap:wrap;gap:4px;padding:4px 12px;display:flex}.color-swatch{cursor:pointer;border:1px solid #0000;border-radius:3px;width:20px;height:20px}.color-swatch:hover{border-color:#1677ff;transform:scale(1.1)}.toolbar-buttons{border-left:1px solid #e0e0e0;align-items:center;gap:4px;margin-left:4px;padding:0 4px;display:flex}.toolbar-btn{cursor:pointer;white-space:nowrap;background:#fff;border:1px solid #d9d9d9;border-radius:4px;align-items:center;height:24px;padding:2px 8px;font-size:12px;transition:all .15s;display:flex}.toolbar-btn:hover{color:#1677ff;border-color:#1677ff}.toolbar-btn-primary{color:#1677ff;background:#e6f4ff;border-color:#91caff}.toolbar-btn-active{color:#fff;background:#1677ff;border-color:#1677ff}.cell-line-assignment{white-space:nowrap;text-overflow:ellipsis;font-size:10px;line-height:1.3;overflow:hidden}.cell-line-assignment:first-child{font-size:11px;font-weight:600}.lesson-picker-btn{color:#1677ff;cursor:pointer;white-space:nowrap;background:#e6f4ff;border:1px solid #1677ff;border-radius:4px;margin-right:4px;padding:2px 12px;font-size:12px;font-weight:500;transition:all .2s}.lesson-picker-btn:hover{color:#fff;background:#1677ff}.lesson-picker{z-index:1001;background:#fff;border:1px solid #d9d9d9;border-radius:8px;min-width:280px;max-width:400px;max-height:420px;position:fixed;overflow-y:auto;box-shadow:0 6px 16px #00000026}.lesson-picker-title{color:#333;z-index:1;background:#fff;border-bottom:1px solid #f0f0f0;align-items:center;gap:6px;padding:8px 12px;font-size:13px;font-weight:600;display:flex;position:sticky;top:0}.picker-back-btn{cursor:pointer;background:#f0f0f0;border:none;border-radius:4px;justify-content:center;align-items:center;width:24px;height:24px;font-size:16px;transition:background .15s;display:flex}.picker-back-btn:hover{background:#d9d9d9}.picker-lesson-badge{border:1px solid #0000000f;border-radius:4px;padding:2px 8px;font-size:11px;font-weight:600}.picker-topic-badge{color:#666;background:#f0f0f0;border-radius:4px;padding:2px 8px;font-size:11px;font-weight:500}.lesson-grid{flex-wrap:wrap;gap:4px;padding:8px;display:flex}.lesson-chip{cursor:pointer;white-space:nowrap;border:1px solid #0000000f;border-radius:4px;align-items:center;gap:4px;padding:4px 10px;font-size:12px;font-weight:500;transition:all .15s;display:flex}.lesson-chip:hover{transform:scale(1.05);box-shadow:0 2px 6px #00000026}.chip-arrow{opacity:.5;font-size:14px;font-weight:700}.lesson-chip-clear{color:#999;border:1px dashed #d9d9d9;background:#fff!important}.lesson-chip-clear:hover{color:#ff4d4f;border-color:#ff4d4f}.topic-chip-skip{color:#888;border:1px dashed #bbb;justify-content:center;width:100%;background:#fafafa!important}.topic-chip-skip:hover{color:#1677ff;border-color:#1677ff;background:#e6f4ff!important}.book-chip{flex-direction:column;align-items:flex-start;gap:1px;padding:4px 10px}.book-chip-name{font-size:12px;font-weight:500}.book-chip-publisher{opacity:.7;font-size:10px}.picker-test-header{color:#666;background:#fafafa;border-bottom:1px solid #f0f0f0;padding:6px 12px;font-size:12px;font-weight:600}.test-number-grid{grid-template-columns:repeat(8,1fr);gap:3px;padding:8px;display:grid}.test-number-btn{aspect-ratio:1;cursor:pointer;border:1px solid #00000014;border-radius:4px;justify-content:center;align-items:center;width:100%;min-height:28px;font-size:11px;font-weight:600;transition:all .15s;display:flex}.test-number-btn:hover{z-index:1;transform:scale(1.1);box-shadow:0 2px 6px #0003}.test-number-btn.test-used{color:#999;border:1px solid #bbb;text-decoration:line-through;position:relative;background:#d9d9d9!important}.test-number-btn.test-used:after{content:"✓";color:#52c41a;font-size:8px;text-decoration:none;position:absolute;top:-2px;right:1px}.test-number-btn.test-prev-used{color:#d46b08;cursor:pointer;border:2px solid #fa8c16;position:relative;background:#fff3e6!important}.test-number-btn.test-prev-used:after{content:"!";color:#fa8c16;font-size:9px;font-weight:900;text-decoration:none;position:absolute;top:-4px;right:0}.test-number-btn.test-prev-used:hover{border-color:#d46b08;background:#ffe7ba!important}.test-number-btn.test-checked{font-weight:800;transform:scale(1.05);box-shadow:0 0 0 2px #1890ff}.test-confirm-bar{background:#fafafa;border-top:1px solid #e8e8e8;justify-content:space-between;align-items:center;gap:8px;padding:8px 12px;display:flex}.test-confirm-count{color:#1890ff;font-size:12px;font-weight:600}.test-confirm-btn{color:#fff;cursor:pointer;background:#1890ff;border:none;border-radius:4px;padding:4px 16px;font-size:13px;font-weight:600;transition:background .2s}.test-confirm-btn:hover{background:#096dd9}
