*{margin:0;padding:0;box-sizing:border-box}:root{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;line-height:1.6;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;padding:0;min-height:100vh;background-color:#f0f2f5}#root{min-height:100vh}html{scroll-behavior:smooth}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:#f0f0f0}::-webkit-scrollbar-thumb{background:#bfbfbf;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#999}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.fade-in{animation:fadeIn .3s ease-in}.slide-up{animation:slideUp .5s ease-out}.ant-menu-item,.ant-menu-submenu-title{transition:all .3s cubic-bezier(.645,.045,.355,1)}.ant-menu-dark .ant-menu-item:hover{background:#ffffff1a!important}.ant-menu-dark .ant-menu-item-selected{background:#1890ff33!important;border-left:3px solid #1890ff}.ant-layout-sider::-webkit-scrollbar{width:6px}.ant-layout-sider::-webkit-scrollbar-track{background:#0000001a}.ant-layout-sider::-webkit-scrollbar-thumb{background:#fff3;border-radius:3px}.ant-layout-sider::-webkit-scrollbar-thumb:hover{background:#ffffff4d}.ant-layout-content{animation:fadeIn .3s ease-in}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.ant-card{transition:all .3s ease}.ant-card:hover{box-shadow:0 4px 12px #00000026;transform:translateY(-2px)}.ant-btn-primary{background:linear-gradient(135deg,#667eea,#764ba2);border:none}.ant-btn-primary:hover{background:linear-gradient(135deg,#764ba2,#667eea);transform:translateY(-1px);box-shadow:0 4px 8px #667eea66}.auth-container{min-height:100vh;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}.auth-background{position:absolute;inset:0;background:linear-gradient(135deg,#667eea,#764ba2);opacity:.9;z-index:0}.auth-background:before{content:"";position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:repeating-linear-gradient(0deg,transparent,transparent 2px,rgba(255,255,255,.03) 2px,rgba(255,255,255,.03) 4px);animation:backgroundMove 20s linear infinite}@keyframes backgroundMove{0%{transform:translate(0)}to{transform:translate(50px,50px)}}.auth-content{position:relative;z-index:1;width:100%;max-width:440px;padding:24px}.auth-card{box-shadow:0 20px 60px #0000004d;border-radius:16px;animation:slideUp .5s ease-out}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.auth-card .ant-card-body{padding:48px}@media(max-width:576px){.auth-card .ant-card-body{padding:32px 24px}.auth-content{padding:16px}}.auth-card .ant-form-item{margin-bottom:20px}.auth-card .ant-input-affix-wrapper,.auth-card .ant-input{border-radius:8px}.auth-card .ant-btn-primary{border-radius:8px;font-weight:600;letter-spacing:.5px}.auth-card .ant-btn-primary:hover{transform:translateY(-1px);box-shadow:0 6px 20px #667eea66}.auth-card a{font-weight:500;transition:all .3s}.auth-card a:hover{opacity:.8}.extraction-progress-modal .ant-modal-body{max-height:80vh;overflow-y:auto}.extraction-progress-content{padding:8px}.phase-section{margin-bottom:24px;padding:16px;background:#fafafa;border-radius:8px}.phase-section .ant-typography{margin-bottom:12px}.navigation-tree-preview{background:#fff;padding:12px;border-radius:4px;border:1px solid #d9d9d9}.navigation-tree-preview ul{list-style-type:none;padding-left:0}.navigation-tree-preview li{padding:4px 0}.current-lesson{background:#fff;padding:16px;border-radius:8px;border:1px solid #d9d9d9}.asset-progress{padding:8px 0;display:flex;align-items:center}.extraction-timeline{margin-top:24px;padding:16px;background:#fafafa;border-radius:8px;max-height:300px;overflow-y:auto}.extraction-timeline .ant-timeline{margin-top:12px}.ant-progress-bg{background:linear-gradient(135deg,#667eea,#764ba2)!important}@keyframes pulse{0%,to{opacity:1}50%{opacity:.7}}.phase-section .ant-progress-status-active .ant-progress-bg:before{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}
