.login-container{background:#f8f6fc;display:flex;min-height:100vh}.login-left{align-items:center;background:linear-gradient(135deg,#8c60f3,#7a4fe0 50%,#353148);color:#fff;display:flex;flex:1 1;justify-content:center;overflow:hidden;padding:3rem;position:relative}.login-left:before{animation:float 20s linear infinite;background:radial-gradient(circle,#ffffff0d 1px,#0000 0);background-size:50px 50px;content:"";height:200%;position:absolute;right:-50%;top:-50%;width:200%}.brand-section{max-width:500px;position:relative;z-index:1}.logo{margin-bottom:3rem;text-align:center}.logo-icon{animation:bounce 2s infinite;display:block;font-size:4rem;margin-bottom:1rem}@keyframes bounce{0%,20%,50%,80%,to{transform:translateY(0)}40%{transform:translateY(-10px)}60%{transform:translateY(-5px)}}.logo h1{font-size:2rem;font-weight:700;margin:0}.logo p{font-size:1rem;margin-top:.5rem;opacity:.9}.advantages,.features,.testimonials{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff1a;border-radius:12px;margin-bottom:1.5rem;padding:1.5rem}.advantages h3,.features h3,.testimonials h3{color:#fff;font-size:1.2rem;margin-bottom:1rem}.advantages ul,.features ul{list-style:none;margin:0;padding:0}.advantages li,.features li{font-size:.95rem;opacity:.95;padding:.5rem 0}.testimonial{background:#ffffff0d;border-radius:8px;margin-bottom:1rem;padding:.75rem}.testimonial:last-child{margin-bottom:0}.testimonial p{font-size:1rem;font-weight:600;margin:0 0 .5rem}.testimonial span{font-size:.875rem;opacity:.9}.login-right{align-items:center;background:#fff;display:flex;flex:1 1;flex-direction:column;justify-content:center;padding:2rem}.login-form-container{background:#fff;border-radius:16px;box-shadow:0 10px 40px #8c60f31a;max-width:450px;padding:2.5rem;width:100%}.login-header{margin-bottom:2rem;text-align:center}.login-header h2{color:#353148;font-size:1.75rem;margin:0 0 .5rem}.login-header p{color:#8e8a9c;font-size:.95rem}.form-group,.login-form{margin-bottom:1.5rem}.form-group label{color:#353148;display:block;font-size:.95rem;margin-bottom:.5rem}.form-group input[type=email],.form-group input[type=password],.form-group input[type=text],.form-group select{background:#fff;border:1px solid #cccad2;border-radius:8px;color:#353148;font-size:1rem;padding:.75rem 1rem;transition:all .2s ease;width:100%}.form-group input:focus,.form-group select:focus{border-color:#8c60f3;box-shadow:0 0 0 3px #8c60f31a;outline:none}.form-group input:disabled,.form-group select:disabled{background:#f8f6fc;cursor:not-allowed;opacity:.6}.password-input-wrapper{position:relative}.password-toggle{background:none;border:none;color:#8e8a9c;cursor:pointer;font-size:1.2rem;padding:.25rem;position:absolute;right:12px;top:50%;transform:translateY(-50%);transition:color .2s ease}.password-toggle:hover{color:#8c60f3}.form-hint{color:#8e8a9c;display:block;font-size:.85rem;margin-top:.25rem}.checkbox-group{margin-bottom:1.5rem}.checkbox-label{align-items:center;cursor:pointer;display:flex;-webkit-user-select:none;user-select:none}.checkbox-label input[type=checkbox]{accent-color:#8c60f3;cursor:pointer;height:18px;margin-right:.5rem;width:18px}.checkbox-label span{color:#8e8a9c;font-size:.95rem}.error-message{animation:shake .5s ease-in-out;background:#fff3f0;border:1px solid #ffccc7;border-radius:8px;color:#cf1322;font-size:.9rem;margin-bottom:1rem;padding:.75rem 1rem}@keyframes shake{0%,to{transform:translateX(0)}10%,30%,50%,70%,90%{transform:translateX(-5px)}20%,40%,60%,80%{transform:translateX(5px)}}.submit-button{align-items:center;background:#8c60f3;border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-size:1rem;font-weight:600;gap:.5rem;justify-content:center;padding:.875rem;transition:all .3s ease;width:100%}.submit-button:hover:not(:disabled){background:#7a4fe0;box-shadow:0 4px 12px #8c60f34d;transform:translateY(-2px)}.submit-button:active:not(:disabled){box-shadow:0 2px 6px #8c60f34d;transform:translateY(0)}.submit-button:disabled{cursor:not-allowed;opacity:.6}.loading-spinner{border:2px solid #ffffff4d;border-top-color:#fff;height:16px;width:16px}.divider,.login-footer{text-align:center}.divider{margin:1.5rem 0;position:relative}.divider:before{background:#e4e0ec;content:"";height:1px;left:0;position:absolute;right:0;top:50%}.divider span{background:#fff;color:#8e8a9c;font-size:.9rem;padding:0 1rem;position:relative}.wechat-login-button{background:#fff;border:1px solid #8c60f3;border-radius:8px;color:#8c60f3;cursor:pointer;font-size:1rem;font-weight:500;margin-bottom:1.5rem;padding:.875rem;transition:all .3s ease;width:100%}.wechat-login-button:hover:not(:disabled){background:#f8f6fc;border-color:#7a4fe0}.wechat-login-button:disabled{cursor:not-allowed;opacity:.5}.login-links{align-items:center;display:flex;font-size:.9rem;gap:1rem;justify-content:center}.login-links a{color:#8c60f3;text-decoration:none;transition:color .2s ease}.login-links a:hover{color:#7a4fe0;text-decoration:underline}.separator{color:#cccad2}.footer{color:#8e8a9c;font-size:.85rem;margin-top:2rem;text-align:center}@media (max-width:1024px){.login-left{display:none}.login-right{background:linear-gradient(135deg,#f8f6fc,#fff);flex:1 1}}@media (max-width:480px){.login-form-container{box-shadow:none;padding:1.5rem}.login-header h2{font-size:1.5rem}.form-group{margin-bottom:1rem}.submit-button{padding:.75rem}}.user-management-table-wrapper{position:relative}.user-management-table .ant-table-body,.user-management-table .ant-table-content{overflow:visible!important}.user-management-table .ant-table-fixed-right{z-index:1!important}.user-management-table .ant-table-container,.user-management-table .ant-table-fixed{overflow:visible!important}.user-management-table .ant-table-body-inner{overflow-x:auto!important;overflow-y:visible!important}.ant-dropdown,.ant-dropdown-menu{z-index:1070!important}@media (max-width:768px){.user-management-table .ant-table-wrapper{overflow-x:auto}}.tooltip-container{display:contents;position:relative}.custom-tooltip{animation:tooltip-fade-in .2s ease-out forwards;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#fff;border:1px solid #00000014;border-radius:12px;box-shadow:0 8px 32px #0000001f;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:13px;max-width:300px;min-width:200px;opacity:0;padding:0;position:fixed;transform:translateY(4px) scale(.95);z-index:9999}.custom-tooltip.course{background:linear-gradient(135deg,#f8f9ff,#fff);border-color:#e3e8ff}.custom-tooltip.booking{background:linear-gradient(135deg,#f0fdf4,#fff);border-color:#d1fae5}.tooltip-content{padding:0}.tooltip-header{align-items:center;border-bottom:1px solid #0000000f;display:flex;gap:8px;padding:12px 16px 8px}.tooltip-icon{font-size:16px;line-height:1}.tooltip-title{color:#1f2937;font-size:14px;font-weight:600}.tooltip-body{padding:8px 16px 12px}.tooltip-row{align-items:center;display:flex;gap:8px;margin-bottom:6px}.tooltip-row:last-child{margin-bottom:0}.tooltip-label{color:#6b7280;font-size:12px;font-weight:500;min-width:36px}.tooltip-value{color:#111827;flex:1 1;font-weight:500;word-break:break-all}.custom-tooltip.course .tooltip-header{background:linear-gradient(135deg,#e0e7ff,#f8fafc);border-bottom-color:#e0e7ff;border-radius:11px 11px 0 0;margin:-1px -1px 0}.custom-tooltip.course .tooltip-icon,.custom-tooltip.course .tooltip-title{color:#4f46e5}.custom-tooltip.course .tooltip-label{color:#6366f1}.custom-tooltip.booking .tooltip-header{background:linear-gradient(135deg,#d1fae5,#f8fafc);border-bottom-color:#d1fae5;border-radius:11px 11px 0 0;margin:-1px -1px 0}.custom-tooltip.booking .tooltip-icon,.custom-tooltip.booking .tooltip-title{color:#059669}.custom-tooltip.booking .tooltip-label{color:#10b981}@keyframes tooltip-fade-in{0%{opacity:0;transform:translateY(4px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}@media (max-width:768px){.custom-tooltip{font-size:12px;max-width:250px;min-width:180px}.tooltip-header{padding:10px 14px 6px}.tooltip-body{padding:6px 14px 10px}.tooltip-icon{font-size:14px}.tooltip-title{font-size:13px}}.course-detail-modal .modal-header{align-items:center;border-bottom:1px solid #f0f0f0;display:flex;justify-content:space-between;padding:20px 24px}.course-detail-modal .modal-header h3{color:#333;font-size:18px;font-weight:600;margin:0}.course-detail-modal .close-btn{align-items:center;background:none;border:none;border-radius:4px;color:#999;cursor:pointer;display:flex;font-size:24px;height:32px;justify-content:center;padding:0;transition:all .2s;width:32px}.course-detail-modal .close-btn:hover{background:#f5f5f5;color:#333}.course-detail-modal .modal-body{flex:1 1;overflow-y:auto;padding:24px}.course-detail-modal .detail-section{display:flex;flex-direction:column;gap:16px}.course-detail-modal .detail-item{align-items:flex-start;border-bottom:1px solid #f5f5f5;display:flex;gap:12px;padding:12px 0}.course-detail-modal .detail-item:last-child{border-bottom:none}.course-detail-modal .detail-item label{color:#666;flex-shrink:0;font-weight:500;min-width:80px}.course-detail-modal .detail-item span{color:#333;flex:1 1}.course-detail-modal .course-tag{background:#e6f7ff;border-radius:4px;color:#1890ff;display:inline-block;font-weight:500;padding:4px 12px}.course-detail-modal .student-list{flex:1 1}.course-detail-modal .student-summary{font-weight:500;margin-bottom:8px}.course-detail-modal .student-info{align-items:center;border-bottom:1px dashed #f0f0f0;display:flex;justify-content:space-between;padding:8px 0}.course-detail-modal .student-info:last-child{border-bottom:none}.course-detail-modal .student-phone{color:#666;font-size:13px;margin-left:12px}.course-detail-modal code{background:#f5f5f5;border-radius:4px;color:#666;font-family:Courier New,monospace;font-size:12px;padding:4px 8px}.course-detail-modal .modal-footer{border-top:1px solid #f0f0f0;display:flex;gap:12px;justify-content:flex-end;padding:16px 24px}.loading-section{align-items:center;color:#666;display:flex;justify-content:center;padding:40px}.assistant-list{flex:1 1}.assistant-info{align-items:center;border-bottom:1px dashed #f0f0f0;display:flex;padding:8px 0}.assistant-info:last-child{border-bottom:none}.assistant-name{flex:1 1;font-weight:500}.student-info-detailed{border-bottom:1px dashed #f0f0f0;padding:12px 0}.student-info-detailed:last-child{border-bottom:none}.student-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:8px}.student-name{flex:1 1;font-weight:500}.student-phone{color:#666;font-size:12px;margin-left:12px}.student-details{padding-left:16px}.payment-info{align-items:center;display:flex;flex-wrap:wrap;gap:4px;margin-bottom:4px}.payment-method{display:inline-block;white-space:nowrap}.course-order,.wallet-amount{color:#666;white-space:nowrap}.session-info{display:flex;flex-wrap:wrap;gap:8px}.session-info span{white-space:nowrap}.attendance-info{align-items:center;display:flex}.attendance-status{display:inline-block;white-space:nowrap}@media (max-width:600px){.modal-content{max-height:90vh;width:95%}.course-detail-modal .modal-body{padding:16px}.course-detail-modal .detail-item{align-items:flex-start;flex-direction:column;gap:8px}.course-detail-modal .detail-item label{min-width:auto}.student-header{align-items:flex-start;flex-direction:column;gap:4px}.student-phone{margin-left:0}.payment-info{align-items:flex-start;flex-direction:column;gap:4px}.session-info{flex-direction:column;gap:2px}}.booking-detail-modal .modal-header{align-items:center;border-bottom:1px solid #f0f0f0;display:flex;justify-content:space-between;padding:20px 24px}.booking-detail-modal .modal-header h3{color:#333;font-size:18px;font-weight:600;margin:0}.booking-detail-modal .close-btn{align-items:center;background:none;border:none;border-radius:4px;color:#999;cursor:pointer;display:flex;font-size:24px;height:32px;justify-content:center;padding:0;transition:all .2s;width:32px}.booking-detail-modal .close-btn:hover{background:#f5f5f5;color:#333}.booking-detail-modal .modal-body{flex:1 1;overflow-y:auto;padding:24px}.booking-detail-modal .detail-section{display:flex;flex-direction:column;gap:16px}.booking-detail-modal .detail-item{align-items:flex-start;border-bottom:1px solid #f5f5f5;display:flex;gap:12px;padding:12px 0}.booking-detail-modal .detail-item:last-child{border-bottom:none}.booking-detail-modal .detail-item label{color:#666;flex-shrink:0;font-weight:500;min-width:80px}.booking-detail-modal .detail-item span{color:#333;flex:1 1}.booking-detail-modal .status-tag{border-radius:4px;display:inline-block;font-weight:500;padding:4px 12px}.booking-detail-modal .status-tag.status-pending{background:#fff7e6;color:#fa8c16}.booking-detail-modal .status-tag.status-paid{background:#f6ffed;color:#52c41a}.booking-detail-modal .status-tag.status-cancelled{background:#fff1f0;color:#f5222d}.booking-detail-modal .price-amount{color:#ff4d4f;font-size:18px;font-weight:600}.booking-detail-modal code{background:#f5f5f5;border-radius:4px;color:#666;font-family:Courier New,monospace;font-size:12px;padding:4px 8px}.booking-detail-modal .modal-footer{border-top:1px solid #f0f0f0;display:flex;gap:12px;justify-content:flex-end;padding:16px 24px}.btn-danger{background:#ff4d4f;color:#fff}.btn-danger:hover:not(:disabled){background:#ff7875}.refund-dialog{min-width:350px}.refund-amount-display{align-items:center;background:#fff7e6;border-radius:8px;display:flex;justify-content:space-between;margin-bottom:16px;padding:16px}.refund-amount-display .label{color:#666;font-weight:500}.refund-amount-display .amount{color:#fa8c16;font-size:24px;font-weight:600}.refund-channel-selector{margin-bottom:16px}.refund-channel-selector .label{color:#666;font-weight:500;margin-bottom:8px}.refund-channel-selector .radio-option{align-items:center;border:1px solid #e0e0e0;border-radius:6px;cursor:pointer;display:flex;gap:8px;margin-bottom:8px;padding:10px 12px;transition:all .2s}.refund-channel-selector .radio-option:hover{background:#fff1f0;border-color:#ff4d4f}.refund-channel-selector .radio-option input[type=radio]{accent-color:#ff4d4f}.refund-notice{background:#f5f5f5;border-radius:6px;color:#666;font-size:13px;margin-bottom:20px;padding:12px}.modal-overlay{animation:fadeIn .2s ease}.modal-content{animation:slideUp .3s ease;background:#fff;border-radius:12px;box-shadow:0 20px 60px #0000004d;display:flex;flex-direction:column;max-height:80vh;max-width:600px;width:90%}.lock-detail-modal .modal-header{align-items:center;border-bottom:1px solid #f0f0f0;display:flex;justify-content:space-between;padding:20px 24px}.lock-detail-modal .modal-header h3{color:#333;font-size:18px;font-weight:600;margin:0}.lock-detail-modal .close-btn{align-items:center;background:none;border:none;border-radius:4px;color:#999;cursor:pointer;display:flex;font-size:24px;height:32px;justify-content:center;padding:0;transition:all .2s;width:32px}.lock-detail-modal .close-btn:hover{background:#f5f5f5;color:#333}.lock-detail-modal .modal-body{flex:1 1;overflow-y:auto;padding:24px}.lock-detail-modal .detail-section{display:flex;flex-direction:column;gap:16px}.lock-detail-modal .detail-item{align-items:flex-start;border-bottom:1px solid #f5f5f5;display:flex;gap:12px;padding:12px 0}.lock-detail-modal .detail-item:last-child{border-bottom:none}.lock-detail-modal .detail-item label{color:#666;flex-shrink:0;font-weight:500;min-width:80px}.lock-detail-modal .detail-item span{color:#333;flex:1 1}.lock-detail-modal .lock-type-tag{border-radius:4px;display:inline-block;font-weight:500;padding:4px 12px}.lock-detail-modal .lock-type-tag.type-maintenance{background:#fff7e6;color:#fa8c16}.lock-detail-modal .lock-type-tag.type-reserved{background:#e6f7ff;color:#1890ff}.lock-detail-modal .lock-type-tag.type-event{background:#f6ffed;color:#52c41a}.lock-detail-modal .lock-type-tag.type-other,.lock-detail-modal code{background:#f5f5f5;color:#666}.lock-detail-modal code{border-radius:4px;font-family:Courier New,monospace;font-size:12px;padding:4px 8px}.lock-detail-modal .modal-footer{border-top:1px solid #f0f0f0;display:flex;gap:12px;justify-content:flex-end;padding:16px 24px}.btn{border-radius:6px;outline:none}.btn-secondary{background:#f5f5f5;color:#666}.btn-secondary:hover:not(:disabled){background:#e8e8e8}.btn-warning{background:#faad14;color:#fff}.btn-warning:hover:not(:disabled){background:#ffc53d}.confirm-overlay{align-items:center;animation:fadeIn .2s ease;background:#0009;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1100}.confirm-dialog{animation:slideUp .3s ease;background:#fff;border-radius:8px;box-shadow:0 10px 40px #0000004d;max-width:400px;padding:24px;width:90%}.confirm-dialog h4{color:#333;font-size:16px;font-weight:600;margin:0 0 12px}.confirm-dialog p{color:#666;line-height:1.5;margin:0 0 20px}.confirm-buttons{display:flex;gap:12px;justify-content:flex-end}.timecourt-table-container{background:#fafafa;border-radius:16px;box-shadow:0 1px 3px #00000005;display:flex;flex-direction:column;height:calc(100vh - 200px);max-height:800px;min-height:400px;overflow:visible;padding:12px;width:100%}.timecourt-table-wrapper{-ms-overflow-style:none;background:#fff;border-radius:8px;flex:1 1;isolation:isolate;overflow-x:auto;overflow-y:auto;position:relative;scroll-behavior:smooth;scroll-padding-left:72px;scroll-snap-type:x mandatory;scrollbar-width:none;width:100%}.timecourt-table-wrapper::-webkit-scrollbar:vertical{display:none}.timecourt-table{background:#f8f8f9;border-collapse:initial;border-spacing:2px;min-width:-webkit-max-content;min-width:max-content;width:100%}.timecourt-table thead{background:#0000;position:-webkit-sticky;position:sticky;top:0;z-index:20}.timecourt-table th{border:none;border-radius:8px;box-shadow:0 2px 4px #0000000d;color:#8b8b8f;font-size:12px;font-weight:400;letter-spacing:1px;padding:16px 12px;text-align:center;text-transform:uppercase;white-space:nowrap}.time-header,.timecourt-table th{background:#fff;position:-webkit-sticky;position:sticky;top:0}.time-header{border:1px solid #e8e8ea;box-shadow:2px 2px 4px #0000000d;color:#6b6b70;font-size:11px;font-weight:700;left:0;letter-spacing:.5px;max-width:72px;min-width:72px;padding:12px 8px;width:72px;z-index:30}.time-header:after{background:#f5f5f7;bottom:0;content:"";position:absolute;right:-1px;top:0;width:1px;z-index:31}.court-header{background:#fff;color:#4a4a4f;font-size:13px;font-weight:700;letter-spacing:.3px;max-width:140px;min-width:140px;overflow:hidden;position:-webkit-sticky;position:sticky;scroll-snap-align:start;text-overflow:ellipsis;top:0;white-space:nowrap;width:140px;z-index:20}.timecourt-table tbody tr{background:#0000}.time-cell{background:#fff;border:1px solid #f0f0f2;border-radius:8px;box-shadow:2px 0 4px #00000008;color:#6b6b70;font-size:11px;font-weight:400;left:0;letter-spacing:.5px;max-width:72px;min-width:72px;padding:12px 8px;position:-webkit-sticky;position:sticky;text-align:center;white-space:nowrap;width:72px;z-index:10}.time-cell:after{background:#f5f5f7;bottom:0;content:"";position:absolute;right:-1px;top:0;width:1px;z-index:6}.booking-cell{background:#fff;border:none;border-radius:10px;cursor:pointer;height:48px;max-height:48px;max-width:140px;min-width:140px;overflow:hidden;padding:0;position:relative;scroll-snap-align:start;transform:none!important;transition:background-color .2s ease,color .2s ease,box-shadow .2s ease;vertical-align:middle;width:140px}.booking-cell:hover{box-shadow:0 4px 12px #00000014;transform:none!important;z-index:1}.status-available{background:#d4edda;color:#155724}.status-available:hover{background:#28a745;box-shadow:0 4px 12px #28a7454d;color:#fff}.status-booked{background:#fff3cd;color:#856404}.status-booked:hover{background:#ffeaa7;box-shadow:0 8px 20px #fff3cd66}.status-course{background:#cce5ff;color:#004085}.status-course:hover{background:#b8daff;box-shadow:0 8px 20px #cce5ff66}.status-course-completed{background:#e9d5ff;color:#6b21a8}.status-course-completed:hover{background:#ddd6fe;box-shadow:0 8px 20px #e9d5ff66}.course-slot-single{border:2px solid #007bff!important;border-radius:10px}.course-slot-first{border:2px solid #007bff!important;border-bottom:none!important;border-radius:10px 10px 0 0}.course-slot-middle{border:2px solid #007bff!important;border-bottom:none!important;border-radius:0;border-top:none!important}.course-slot-last{border:2px solid #007bff!important;border-radius:0 0 10px 10px;border-top:none!important}.booking-slot-single{border:2px solid #b8860b!important;border-radius:10px}.booking-slot-first{border:2px solid #b8860b!important;border-bottom:none!important;border-radius:10px 10px 0 0}.booking-slot-middle{border:2px solid #b8860b!important;border-bottom:none!important;border-radius:0;border-top:none!important}.booking-slot-last{border:2px solid #b8860b!important;border-radius:0 0 10px 10px;border-top:none!important}.status-locked{background:#f8d7da;border:2px solid #dc3545!important;border-radius:10px;color:#721c24}.status-locked:hover{background:#f5c6cb;box-shadow:0 8px 20px #f8d7da66}.lock-slot-single{border:2px solid #dc3545!important;border-radius:10px}.lock-slot-first{border:2px solid #dc3545!important;border-bottom:none!important;border-radius:10px 10px 0 0}.lock-slot-middle{border:2px solid #dc3545!important;border-bottom:none!important;border-radius:0;border-top:none!important}.lock-slot-last{border:2px solid #dc3545!important;border-radius:0 0 10px 10px;border-top:none!important}.status-past{background:#e2e3e5;color:#6c757d;cursor:not-allowed;opacity:.8}.status-unavailable{background:#f5f5f5;border:1px solid #ddd;color:#6c757d;cursor:not-allowed;opacity:.6}.status-unavailable:hover{background:#f2f2f4;box-shadow:none;transform:none}.booking-cell.selecting{background:#28a745!important;border-radius:10px;box-shadow:0 0 0 2px #28a745,0 4px 12px #28a7454d;color:#fff!important;transform:none!important}.booking-cell.selecting *{background-color:initial!important;color:#fff!important}.booking-cell.in-range{background:#28a745!important;color:#fff!important;opacity:.7;transform:none!important}.booking-cell.in-range *{background-color:initial!important;color:#fff!important}.booking-cell[title]:hover:after,.court-header[title]:hover:after{word-wrap:break-word;background:#000000e6;border-radius:4px;bottom:100%;color:#fff;content:attr(title);font-size:12px;left:50%;margin-bottom:5px;max-width:300px;padding:6px 10px;pointer-events:none;position:absolute;transform:translateX(-50%);white-space:nowrap;white-space:pre-wrap;z-index:1000}.booking-info{align-items:center;background:#0000;border-radius:6px;bottom:0;display:flex;flex-direction:column;gap:2px;justify-content:center;left:0;overflow:hidden;padding:8px;position:absolute;right:0;text-align:center;top:0}.booking-name{font-size:11px;font-weight:500;letter-spacing:.1px;line-height:1.2;max-height:14px}.booking-name,.booking-phone{color:inherit;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%}.booking-phone{font-size:9px;letter-spacing:.2px;line-height:1.1;max-height:11px;opacity:.75}.course-info{align-items:center;background:#0000;bottom:0;display:flex;flex-direction:column;gap:2px;justify-content:center;left:0;overflow:hidden;padding:8px;position:absolute;right:0;text-align:center;top:0}.course-name,.course-student-name{color:inherit;font-size:11px;letter-spacing:.1px;line-height:1.2;max-height:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%}.course-student-name{font-weight:500}.course-coach-name{color:inherit;font-size:10px;font-weight:400;letter-spacing:.2px;line-height:1.1;max-height:12px;opacity:.85;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%}.course-coach{letter-spacing:.2px;opacity:.75}.course-coach,.course-student{color:inherit;font-size:9px;line-height:1.1;max-height:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%}.course-student{letter-spacing:.1px;opacity:.85}.course-phone{color:inherit;font-size:8px;letter-spacing:.2px;line-height:1.1;max-height:10px;opacity:.7;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%}.empty-slot{color:inherit;font-size:11px;overflow:hidden}.available-with-price,.empty-slot{align-items:center;bottom:0;display:flex;justify-content:center;left:0;padding:8px;position:absolute;right:0;top:0}.slot-price{align-items:center;display:flex;flex-direction:row;gap:4px;overflow:hidden}.price-amount{color:inherit;font-size:13px;font-weight:500;letter-spacing:.3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.price-badge{background:#0000001a;border-radius:10px;color:inherit;display:inline-block;font-size:10px;font-weight:600;letter-spacing:.5px;line-height:1;padding:2px 6px;text-transform:uppercase}.price-badge.special{background:#ffffff59}.price-badge.weekly{background:#fff3}.lock-info{align-items:center;bottom:0;cursor:pointer;display:flex;justify-content:center;left:0;overflow:hidden;padding:8px;position:absolute;right:0;top:0;transition:all .2s}.booking-cell.locked:hover .lock-info{background:#ffffff1a;transform:scale(1.02)}.lock-reason{align-items:center;color:inherit;display:flex;font-size:11px;font-weight:500;gap:4px;justify-content:center;letter-spacing:.3px;overflow:hidden;text-align:center;text-overflow:ellipsis;white-space:nowrap;width:100%}.lock-reason:before{content:"🔒";font-size:12px;opacity:.8}.booking-cell.locked{background:linear-gradient(135deg,#fca5a5,#f87171);color:#fff;cursor:pointer;position:relative}.booking-cell.locked:hover{background:linear-gradient(135deg,#f87171,#ef4444);box-shadow:0 4px 8px #ef44444d;z-index:10}.context-menu{background:#fff;border:1px solid #f0f0f2;border-radius:12px;box-shadow:0 8px 32px #00000014;min-width:180px;padding:6px;position:fixed;z-index:1000}.context-menu-item{align-items:center;border-radius:8px;color:#5a5a5f;cursor:pointer;display:flex;font-size:13px;font-weight:400;gap:10px;letter-spacing:.2px;padding:12px 16px;transition:all .2s}.context-menu-item:hover{background:#f5f5f7;color:#3a3a3f}.context-menu-item.disabled{cursor:not-allowed;opacity:.3}.context-menu-item.disabled:hover{background:#0000}.loading-container{background:#0000;padding:100px 20px}.loading-spinner{animation:spin 1s linear infinite;border:2px solid #e8e8ea;border-radius:50%;border-top-color:#9fb4c7;height:36px;width:36px}.empty-state{align-items:center;background:#0000;display:flex;flex-direction:column;justify-content:center;padding:80px 20px}.empty-icon{color:#9fb4c7;font-size:56px;margin-bottom:20px;opacity:.3}.empty-message{color:#6b6b70;font-size:15px;font-weight:400;letter-spacing:.3px;margin-bottom:8px}.empty-hint{color:#9a9a9f;font-size:13px;font-weight:300;letter-spacing:.2px}@media (max-width:768px){.timecourt-table-container{height:calc(100vh - 150px);max-height:600px;min-height:300px}.booking-cell{height:44px!important;max-height:44px!important}.booking-cell,.court-header{max-width:120px;min-width:120px;width:120px}.price-amount{font-size:12px}.customer-name{font-size:10px}.customer-phone{font-size:8px}}.timecourt-table-wrapper::-webkit-scrollbar:horizontal{height:8px}.timecourt-table-wrapper::-webkit-scrollbar-track:horizontal{background:#f5f5f7;border-radius:4px}.timecourt-table-wrapper::-webkit-scrollbar-thumb:horizontal{background:#d0d0d5;border-radius:4px}.timecourt-table-wrapper::-webkit-scrollbar-thumb:horizontal:hover{background:#b0b0b5}.booking-cell{transition:background-color .2s cubic-bezier(.4,0,.2,1),box-shadow .2s cubic-bezier(.4,0,.2,1),transform .2s cubic-bezier(.4,0,.2,1)}.content-hidden{opacity:.3!important;pointer-events:none!important}.content-hidden,.content-hidden *{transition:opacity .15s ease-out!important}.content-hidden *{opacity:0!important}.booking-cell:not(.content-hidden){opacity:1;transition:opacity .2s ease-in}.booking-cell:not(.content-hidden) *{opacity:inherit;transition:opacity .2s ease-in}.booking-cell:focus{outline:none}@keyframes breathe{0%,to{opacity:1}50%{opacity:.95}}.status-available.active,.status-available.active *,.status-available:active,.status-available:active *,.status-available:hover,.status-available:hover *{background-color:#28a745!important;color:#fff!important}.status-available.active .price-badge,.status-available:active .price-badge,.status-available:hover .price-badge{background:#fff3!important}.status-available.active .available-with-price,.status-available.active .empty-slot,.status-available:active .available-with-price,.status-available:active .empty-slot,.status-available:hover .available-with-price,.status-available:hover .empty-slot{background:#0000!important}.booking-info-tooltip{background:#6b6b70;border-radius:8px;bottom:100%;box-shadow:0 4px 12px #0000001a;color:#fff;font-size:11px;font-weight:300;left:50%;letter-spacing:.3px;margin-bottom:10px;opacity:0;padding:10px 14px;pointer-events:none;position:absolute;transform:translateX(-50%);transition:opacity .3s;white-space:nowrap;z-index:100}.booking-cell:hover .booking-info-tooltip{opacity:1}.booking-info-tooltip:after{border:5px solid #0000;border-top-color:#6b6b70;content:"";left:50%;position:absolute;top:100%;transform:translateX(-50%)}.today-column{background:linear-gradient(180deg,#9fb4c70d,#9fb4c705)}.weekend-column{background:linear-gradient(180deg,#d4a57408,#d4a57403)}.loading-user-data{background:linear-gradient(90deg,#fffc,#f0f0f0e6 50%,#fffc);background:#f0f0f0e6;opacity:.8}@keyframes skeleton-wave{0%{background-position:-200% 0}to{background-position:200% 0}}.skeleton-cell{animation:skeleton-wave 2.5s ease-in-out infinite;background:linear-gradient(90deg,#f0f0f2,#f8f8fa 25%,#e8e8ea 50%,#f8f8fa 75%,#f0f0f2);background-size:400% 100%;overflow:hidden;position:relative;will-change:background-position}.skeleton-content{align-items:center;bottom:0;display:flex;flex-direction:column;gap:3px;justify-content:center;left:0;padding:8px;position:absolute;right:0;text-align:center;top:0}.skeleton-line{background:#ffffffb3;border-radius:3px;opacity:.7}.skeleton-line-name{height:12px;margin-bottom:2px;width:80%}.skeleton-line-phone{height:10px;width:60%}.skeleton-line-price{height:14px;width:70%}.skeleton-line-reason{height:11px;width:75%}@keyframes skeleton-pulse{0%,to{opacity:.6}50%{opacity:.9}}.skeleton-available{background:linear-gradient(90deg,#d4edda,#e8f5e8 25%,#d4edda 50%,#e8f5e8 75%,#d4edda);background-size:400% 100%;color:#155724}.skeleton-booked{background:linear-gradient(90deg,#fff3cd,#fef8e1 25%,#fff3cd 50%,#fef8e1 75%,#fff3cd);background-size:400% 100%;color:#856404}.skeleton-course{background:linear-gradient(90deg,#cce5ff,#e1f0ff 25%,#cce5ff 50%,#e1f0ff 75%,#cce5ff);background-size:400% 100%;color:#004085}.skeleton-locked{background:linear-gradient(90deg,#f8d7da,#fce1e3 25%,#f8d7da 50%,#fce1e3 75%,#f8d7da);background-size:400% 100%;border:2px solid #dc35454d!important;color:#721c24}.skeleton-header{animation:skeleton-wave 3s ease-in-out infinite;background:linear-gradient(90deg,#f5f5f7cc,#ffffffe6 50%,#f5f5f7cc);background-size:200% 100%;will-change:background-position}.skeleton-header-text{background:#6b6b704d;border-radius:4px;height:14px;margin:0 auto;width:60%}.partial-skeleton .skeleton-line{background:#ffc1071a}.skeleton-transition{transition:all .3s cubic-bezier(.4,0,.2,1)}.skeleton-cell{max-height:48px;min-height:48px}@media (max-width:768px){.skeleton-cell{max-height:44px;min-height:44px}}.loading-placeholder{color:#888;display:inline-block;font-style:italic}.loading-dots{opacity:.8;position:relative}.loading-dots:after{animation:dots 1.5s steps(4) infinite;content:"...";position:absolute}@keyframes shimmer{0%{background-position:-200px 0}to{background-position:200px 0}}@keyframes pulse{0%,to{opacity:.6}50%{opacity:1}}@keyframes dots{0%,20%{color:#0000;text-shadow:.25em 0 0 #0000,.5em 0 0 #0000}40%{color:#888;text-shadow:.25em 0 0 #0000,.5em 0 0 #0000}60%{text-shadow:.25em 0 0 #888,.5em 0 0 #0000}80%,to{text-shadow:.25em 0 0 #888,.5em 0 0 #888}}.modal-overlay{align-items:center;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.modal-container{background:#fff;border-radius:8px;box-shadow:0 4px 16px #0003;max-height:90vh;max-width:600px;overflow:auto;width:90%}.modal-header{align-items:center;border-bottom:1px solid #e9ecef;display:flex;justify-content:space-between;padding:20px}.modal-header h3{color:#212529;font-size:18px;font-weight:600;margin:0}.close-btn{align-items:center;background:none;border:none;color:#6c757d;cursor:pointer;display:flex;font-size:24px;height:30px;justify-content:center;padding:0;transition:color .2s;width:30px}.close-btn:hover{color:#212529}.modal-body{padding:20px}.form-row{grid-gap:16px;display:grid;gap:16px;grid-template-columns:1fr 1fr;margin-bottom:16px}.form-group{display:flex;flex-direction:column}.form-group label{color:#495057;font-size:14px;font-weight:500;margin-bottom:6px}.required{color:#dc3545}.form-group input,.form-group select,.form-group textarea{border:1px solid #ced4da;border-radius:4px;font-size:14px;padding:8px 12px;transition:border-color .2s}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:#80bdff;box-shadow:0 0 0 .2rem #007bff40;outline:none}.form-group textarea{font-family:inherit;resize:vertical}.pricing-info{background:#f8f9fa;border:1px solid #dee2e6;border-radius:4px;margin-top:20px;padding:16px}.pricing-row{color:#495057;display:flex;font-size:14px;justify-content:space-between;padding:8px 0}.pricing-row.total{border-top:1px solid #dee2e6;color:#212529;font-size:16px;font-weight:600;margin-top:8px;padding-top:12px}.modal-footer{border-top:1px solid #e9ecef;display:flex;gap:12px;justify-content:flex-end;padding:20px}.btn{padding:8px 20px}.btn-primary:hover:not(:disabled){background:#0056b3;background:var(--primary-hover,#0056b3)}.btn:disabled{cursor:not-allowed;opacity:.6}.user-search-wrapper{position:relative}.user-dropdown{background:#fff;border:1px solid #ced4da;border-radius:4px;box-shadow:0 2px 8px #0000001a;left:0;margin-top:2px;max-height:200px;overflow-y:auto;position:absolute;right:0;top:100%;z-index:1001}.user-dropdown-item{border-bottom:1px solid #f0f0f0;cursor:pointer;padding:10px 12px;transition:background-color .2s}.user-dropdown-item:last-child{border-bottom:none}.user-dropdown-item:hover{background-color:#f8f9fa}.user-dropdown-item .user-name{color:#212529;font-size:14px;font-weight:500;margin-bottom:2px}.user-dropdown-item .user-phone{color:#6c757d;font-size:12px}.time-range-display{background:#f8f9fa;border:1px solid #ced4da;border-radius:4px;color:#495057;font-size:16px;font-weight:500;padding:10px 12px;text-align:center}@media (max-width:576px){.modal-container{max-height:95vh;width:95%}.form-row{grid-template-columns:1fr}.modal-body,.modal-footer{padding:16px}}.booking-management{background:#f5f5f5;min-height:100vh;padding:20px}.page-header{align-items:center;background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000000d;display:flex;justify-content:space-between;margin-bottom:24px;padding:20px}.page-header h2{color:#212529;font-size:24px;font-weight:600;margin:0}.header-actions{display:flex;gap:12px}.booking-controls{align-items:center;background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000000d;display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;margin-bottom:20px;padding:16px 20px}.date-navigation{align-items:center;display:flex;gap:12px}.campus-selector{min-width:200px}.date-nav-btn{background:#fff;border:1px solid #dee2e6;border-radius:4px;cursor:pointer;font-size:14px;padding:6px 12px;transition:all .2s}.date-nav-btn:hover{background:#f8f9fa;border-color:#adb5bd}.date-nav-btn.today{background:#007bff;background:var(--primary-color,#007bff);border-color:#007bff;border-color:var(--primary-color,#007bff);color:#fff}.date-nav-btn.today:hover{background:#0056b3;background:var(--primary-hover,#0056b3)}.current-date{color:#212529;font-size:16px;font-weight:500;min-width:200px}.date-picker{border:1px solid #dee2e6;border-radius:4px;font-size:14px;padding:6px 12px}.quick-date-buttons{border-left:1px solid #dee2e6;display:flex;gap:8px;margin-left:20px;padding-left:20px}.quick-date-btn{align-items:center;background:#fff;border:1px solid #dee2e6;border-radius:6px;cursor:pointer;display:flex;flex-direction:column;font-size:12px;justify-content:center;min-width:65px;padding:8px 12px;transition:all .2s;white-space:nowrap}.quick-date-btn:hover:not(.disabled):not(.selected){background:#f8f9fa;border-color:#007bff;box-shadow:0 2px 4px #007bff1a;transform:translateY(-2px)}.quick-date-btn.selected{background:#007bff;border-color:#007bff;color:#fff}.quick-date-btn.selected:hover:not(.disabled){background:#0056b3;border-color:#004085;box-shadow:0 2px 4px #007bff33;transform:translateY(-2px)}.quick-date-btn.today{background:#e7f5ea;border-color:#28a745}.quick-date-btn.today:hover:not(.disabled):not(.selected){background:#d4edda;border-color:#28a745;box-shadow:0 2px 4px #28a7451a;transform:translateY(-2px)}.quick-date-btn.today-selected{background:#28a745;border-color:#28a745;color:#fff}.quick-date-btn.today-selected:hover:not(.disabled){background:#218838;border-color:#1e7e34;box-shadow:0 2px 4px #28a74533;transform:translateY(-2px)}.quick-date-btn.disabled{cursor:not-allowed;opacity:.4}.quick-date-btn .date-part{font-size:14px;font-weight:600;margin-bottom:2px;white-space:nowrap}.quick-date-btn .weekday-part{font-size:11px;opacity:.8;white-space:nowrap}.filter-controls{align-items:center;display:flex;gap:12px}.filter-select{background:#fff;cursor:pointer}.filter-select,.search-input{border:1px solid #dee2e6;border-radius:4px;font-size:14px;padding:6px 12px}.search-input{width:200px}.search-input:focus{border-color:#80bdff;box-shadow:0 0 0 .2rem #007bff40;outline:none}.booking-stats{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000000d;display:flex;flex-wrap:wrap;gap:20px;justify-content:space-around;margin-bottom:20px;padding:16px 20px}.stat-item{align-items:center;display:flex;gap:8px}.stat-label{color:#6c757d}.stat-value{color:#007bff;color:var(--primary-color,#007bff);font-size:20px}.btn{align-items:center;border:none;border-radius:4px;cursor:pointer;display:inline-flex;font-size:14px;font-weight:500;gap:6px;padding:8px 16px;transition:all .2s}.btn-primary{background:#007bff;background:var(--primary-color,#007bff);color:#fff}.btn-primary:hover{background:#0056b3;background:var(--primary-hover,#0056b3)}.btn-secondary{background:#6c757d;color:#fff}.btn-secondary:hover{background:#5a6268}.btn-icon{background:#fff;border:1px solid #dee2e6;color:#495057;padding:6px 10px}.btn-icon:hover{background:#f8f9fa;border-color:#adb5bd}.status-legend{align-items:center;background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000000d;margin-top:20px;padding:16px 20px}.legend-items,.status-legend{display:flex;flex-wrap:wrap;gap:20px}.legend-items{margin-bottom:12px}.legend-item{color:#495057;white-space:nowrap}.status-dot{border-radius:4px;display:inline-block;height:16px;width:16px}.status-dot.available{background-color:#d4edda}.status-dot.booked{background-color:#fff3cd}.status-dot.course{background-color:#cce5ff}.status-dot.locked{background-color:#f8d7da}.status-dot.unavailable{background-color:#f5f5f5;border:1px solid #ddd}.status-dot.past{background-color:#e2e3e5}.legend-tips{border-top:1px solid #e9ecef;color:#6c757d;font-size:13px;padding-top:12px}@media (max-width:768px){.booking-management{padding:12px}.page-header{align-items:flex-start;flex-direction:column;gap:16px}.header-actions{justify-content:space-between;width:100%}.booking-controls{align-items:stretch;flex-direction:column}.date-navigation{flex-wrap:wrap;justify-content:center}.quick-date-buttons{border-left:none;border-top:1px solid #dee2e6;justify-content:space-between;margin-left:0;margin-top:12px;padding-left:0;padding-top:12px;width:100%}.quick-date-btn{min-width:48px;padding:6px 8px}.quick-date-btn .date-part{font-size:11px}.quick-date-btn .weekday-part{font-size:10px}.filter-controls{flex-wrap:wrap;justify-content:center}.search-input{width:100%}.booking-stats{align-items:center;flex-direction:column}.stat-item{border-bottom:1px solid #e9ecef;justify-content:space-between;padding:8px 0;width:100%}.stat-item:last-child{border-bottom:none}}.permission-management-container{height:100%;overflow-y:auto;padding:24px}.module-card{display:flex;flex-direction:column;height:100%}.module-card:hover{cursor:pointer}.role-management-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:24px}.role-filters{display:flex;flex-wrap:wrap;gap:16px;margin-bottom:16px}.permission-tree{border:1px solid #0000001f;border-radius:4px;max-height:500px;overflow-y:auto;padding:16px}.permission-category{margin-bottom:16px}.permission-category-header{align-items:center;display:flex;font-weight:600;margin-bottom:8px}.permission-item{margin-left:24px;padding:4px 0}.data-scope-section{background-color:#f5f5f5;border-radius:4px;margin-top:24px;padding:16px}.data-scope-options{margin-top:12px}.audit-filters{align-items:flex-end;display:flex;flex-wrap:wrap;gap:16px;margin-bottom:24px}.audit-table-container{overflow-x:auto}.user-role-section{margin-bottom:24px}.user-info-card{background-color:#f5f5f5;border-radius:4px;margin-bottom:16px;padding:16px}.user-roles-list{display:flex;flex-direction:column;gap:12px}.role-chip{margin-bottom:8px;margin-right:8px}.batch-assignment-container{grid-gap:24px;display:grid;gap:24px;grid-template-columns:1fr 1fr 1fr;margin-bottom:24px}.user-selection-list{max-height:300px;overflow-y:auto;padding:8px}.template-selection,.user-selection-list{border:1px solid #0000001f;border-radius:4px}.template-selection{padding:16px}.permission-preview{background-color:#f5f5f5;border-radius:4px;padding:16px}.dialog-content{min-width:500px}.form-section{margin-bottom:24px}.form-field{margin-bottom:16px}.loading-container{height:400px}.empty-state{color:#0000008a;padding:48px;text-align:center}.empty-state-icon{font-size:64px;margin-bottom:16px;opacity:.3}.action-buttons{display:flex;gap:8px;justify-content:flex-end;margin-top:24px}.fab-button{bottom:24px;position:fixed;right:24px}.status-indicator{align-items:center;display:inline-flex;gap:4px}.status-dot{border-radius:50%;height:8px;width:8px}.status-dot.active{background-color:#4caf50}.status-dot.inactive{background-color:#f44336}.status-dot.pending{background-color:#ff9800}@media (max-width:1200px){.batch-assignment-container{grid-template-columns:1fr}}@media (max-width:768px){.permission-management-container{padding:16px}.role-management-header{align-items:stretch;flex-direction:column;gap:16px}.audit-filters,.role-filters{flex-direction:column}.module-card{margin-bottom:16px}}@media (max-width:480px){.permission-management-container{padding:8px}.dialog-content{min-width:auto;width:100%}}.lock-details-modal-overlay{align-items:center;animation:fadeIn .2s ease-in-out;background-color:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:10000}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.lock-details-modal{animation:slideUp .3s ease-out;background:#fff;border-radius:12px;box-shadow:0 10px 40px #00000026;max-height:90vh;max-width:600px;overflow-y:auto;width:90%}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.lock-details-modal .modal-header{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);border-bottom:1px solid #e5e7eb;border-radius:12px 12px 0 0;display:flex;justify-content:space-between;padding:20px 24px}.lock-details-modal .modal-title{align-items:center;color:#fff;display:flex;font-size:20px;font-weight:600;gap:8px;margin:0}.lock-details-modal .close-btn{align-items:center;background:#fff3;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:18px;height:32px;justify-content:center;transition:all .2s;width:32px}.lock-details-modal .close-btn:hover{background:#ffffff4d;transform:scale(1.1)}.lock-details-modal .modal-body{padding:24px}.lock-info-section{margin-bottom:20px}.lock-info-section .section-title{border-bottom:2px solid #667eea;color:#1f2937;display:inline-block;font-size:16px;font-weight:600;margin:0 0 16px;padding-bottom:8px}.info-grid{grid-gap:16px;gap:16px}.info-item{flex-direction:column;gap:4px}.info-item.full-width{grid-column:1/-1}.info-item label{color:#6b7280;font-size:13px;font-weight:500}.info-item span{color:#1f2937;font-size:14px;font-weight:500}.lock-reason-text{background:#f3f4f6;border-radius:6px;display:inline-block;line-height:1.5;padding:8px 12px}.lock-type-badge{border-radius:20px;display:inline-block;font-size:13px;font-weight:500;padding:4px 12px;text-transform:capitalize}.lock-type-badge.maintenance{background:#fef3c7;border:1px solid #fbbf24;color:#92400e}.lock-type-badge.private_event{background:#dbeafe;border:1px solid #60a5fa;color:#1e40af}.lock-type-badge.manual{background:#e5e7eb;border:1px solid #9ca3af;color:#374151}.status-badge{border-radius:20px;display:inline-block;font-size:13px;font-weight:500;padding:4px 12px}.status-badge.active{background:#d1fae5;border:1px solid #6ee7b7;color:#065f46}.lock-details-modal .error-message,.status-badge.inactive{background:#fee2e2;border:1px solid #fca5a5;color:#991b1b}.lock-details-modal .error-message{align-items:center;border-radius:6px;display:flex;font-size:14px;gap:8px;margin-top:16px;padding:12px}.lock-details-modal .modal-footer{background:#f9fafb;border-radius:0 0 12px 12px;border-top:1px solid #e5e7eb;display:flex;gap:12px;justify-content:flex-end;padding:20px 24px}.confirmation-message{align-items:center;background:#fef3c7;border:1px solid #fbbf24;border-radius:8px;color:#92400e;display:flex;flex:1 1;font-size:14px;gap:12px;margin-right:12px;padding:12px 16px}.confirmation-message .warning-icon{font-size:20px}.confirmation-buttons{display:flex;gap:12px}.lock-details-modal .btn{align-items:center;border:none;border-radius:6px;cursor:pointer;display:flex;font-size:14px;font-weight:500;gap:6px;padding:8px 20px;transition:all .2s}.lock-details-modal .btn-secondary{background:#e5e7eb;color:#374151}.lock-details-modal .btn-secondary:hover{background:#d1d5db;transform:translateY(-1px)}.lock-details-modal .btn-danger{background:linear-gradient(135deg,#ef4444,#dc2626);box-shadow:0 4px 6px #ef444433;color:#fff}.lock-details-modal .btn-danger:hover{background:linear-gradient(135deg,#dc2626,#b91c1c);box-shadow:0 6px 8px #ef44444d;transform:translateY(-1px)}.lock-details-modal .btn-danger.confirm-btn{background:linear-gradient(135deg,#dc2626,#991b1b)}.lock-details-modal .btn:disabled{cursor:not-allowed;opacity:.5;transform:none!important}@media (max-width:640px){.lock-details-modal{max-height:85vh;width:95%}.info-grid{grid-template-columns:1fr}.confirmation-message{margin-bottom:12px;margin-right:0}.lock-details-modal .modal-footer{flex-direction:column}.confirmation-buttons{justify-content:stretch;width:100%}.confirmation-buttons .btn{flex:1 1}}.course-package-table .ant-table-tbody>tr{position:relative}.course-package-table .ant-dropdown{z-index:1050!important}.course-package-table .ant-table-tbody>tr:hover{z-index:10}.course-package-table .ant-dropdown-open{z-index:1051!important}:root{--primary-color:#1976d2;--primary-hover:#1565c0;--primary-light:#e3f2fd;--secondary-color:#64748b;--secondary-hover:#475569;--danger-color:#dc2626;--danger-hover:#b91c1c;--success-color:#059669;--success-hover:#047857;--warning-color:#f59e0b;--info-color:#0ea5e9;--text-primary:#333;--text-secondary:#666;--bg-primary:#fff;--bg-secondary:#f8f9fa;--border-color:#e0e0e0}@keyframes slideIn{0%{opacity:0;transform:translateX(100%)}to{opacity:1;transform:translateX(0)}}.coach-management,.course-checkout,.course-orders,.course-scheduling,.course-sku-list{background-color:#f5f5f5;min-height:calc(100vh - 64px);padding:24px}.bulk-scheduling .page-header,.coach-management .page-header,.course-checkout .page-header,.course-orders .page-header,.course-scheduling .page-header,.course-sku-list .page-header{background:#fff;border-bottom:1px solid #e0e0e0;margin:-24px -24px 24px;padding:20px}.bulk-scheduling .page-header h1,.coach-management .page-header h1,.course-checkout .page-header h1,.course-orders .page-header h1,.course-scheduling .page-header h1,.course-sku-list .page-header h1{color:#333;color:var(--text-primary);font-size:24px;margin:0}.bulk-scheduling .action-bar,.coach-management .action-bar,.course-checkout .action-bar,.course-orders .action-bar,.course-scheduling .action-bar,.course-sku-list .action-bar{background:#fff;border-radius:8px;display:flex;gap:12px;margin-bottom:20px;padding:16px}.bulk-scheduling .btn-primary,.coach-management .btn-primary,.course-checkout .btn-primary,.course-order-form .btn-primary,.course-orders .btn-primary,.course-scheduling .btn-primary,.course-sku-list .btn-primary{align-items:center;background:#1976d2;background:var(--primary-color);border:1px solid #1976d2;border:1px solid var(--primary-color);border-radius:4px;color:#fff!important;cursor:pointer;display:inline-flex;flex:0 0 auto;font-size:14px;gap:8px;min-width:-webkit-fit-content;min-width:fit-content;padding:10px 20px;width:auto}.bulk-scheduling .btn-primary:hover,.coach-management .btn-primary:hover,.course-checkout .btn-primary:hover,.course-order-form .btn-primary:hover,.course-orders .btn-primary:hover,.course-scheduling .btn-primary:hover,.course-sku-list .btn-primary:hover{background:#1565c0;background:var(--primary-hover);border-color:#1565c0;border-color:var(--primary-hover)}.bulk-scheduling .btn-primary:disabled,.coach-management .btn-primary:disabled,.course-checkout .btn-primary:disabled,.course-order-form .btn-primary:disabled,.course-orders .btn-primary:disabled,.course-scheduling .btn-primary:disabled,.course-sku-list .btn-primary:disabled{background:#ccc;cursor:not-allowed;opacity:.6}.bulk-scheduling .btn-secondary,.coach-management .btn-secondary,.course-checkout .btn-secondary,.course-order-form .btn-secondary,.course-orders .btn-secondary,.course-scheduling .btn-secondary,.course-sku-list .btn-secondary{align-items:center;background:#fff;background:var(--bg-primary);border:1px solid #e0e0e0;border:1px solid var(--border-color);border-radius:4px;color:#333!important;color:var(--text-primary)!important;cursor:pointer;display:inline-flex;flex:0 0 auto;font-size:14px;min-width:-webkit-fit-content;min-width:fit-content;padding:10px 20px;width:auto}.bulk-scheduling .btn-secondary:hover,.coach-management .btn-secondary:hover,.course-checkout .btn-secondary:hover,.course-order-form .btn-secondary:hover,.course-orders .btn-secondary:hover,.course-scheduling .btn-secondary:hover,.course-sku-list .btn-secondary:hover{background:#f8f9fa;background:var(--bg-secondary);border-color:#cbd5e1}.bulk-scheduling .btn-secondary:disabled,.coach-management .btn-secondary:disabled,.course-checkout .btn-secondary:disabled,.course-order-form .btn-secondary:disabled,.course-orders .btn-secondary:disabled,.course-scheduling .btn-secondary:disabled,.course-sku-list .btn-secondary:disabled{background:#f5f5f5;cursor:not-allowed;opacity:.6}.bulk-scheduling .btn-action,.coach-management .btn-action,.course-checkout .btn-action,.course-orders .btn-action,.course-scheduling .btn-action,.course-sku-list .btn-action{background:#0000;border:none;color:#1976d2;cursor:pointer;font-size:13px;padding:4px 8px}.bulk-scheduling .btn-action:hover,.coach-management .btn-action:hover,.course-checkout .btn-action:hover,.course-orders .btn-action:hover,.course-scheduling .btn-action:hover,.course-sku-list .btn-action:hover{background:#f0f7ff;border-radius:4px}.bulk-scheduling .btn-action.danger,.coach-management .btn-action.danger,.course-checkout .btn-action.danger,.course-orders .btn-action.danger,.course-scheduling .btn-action.danger,.course-sku-list .btn-action.danger{color:#d32f2f}.bulk-scheduling .btn-action.danger:hover,.coach-management .btn-action.danger:hover,.course-checkout .btn-action.danger:hover,.course-orders .btn-action.danger:hover,.course-scheduling .btn-action.danger:hover,.course-sku-list .btn-action.danger:hover{background:#ffebee}.bulk-scheduling .search-filter-bar,.coach-management .search-filter-bar,.course-checkout .search-filter-bar,.course-orders .search-filter-bar,.course-scheduling .search-filter-bar,.course-sku-list .search-filter-bar{align-items:center;background:#fff;border-radius:8px;display:flex;gap:12px;margin-bottom:20px;padding:16px}.bulk-scheduling .search-box,.coach-management .search-box,.course-checkout .search-box,.course-orders .search-box,.course-scheduling .search-box,.course-sku-list .search-box{flex:1 1;position:relative}.bulk-scheduling .search-box input,.coach-management .search-box input,.course-checkout .search-box input,.course-orders .search-box input,.course-scheduling .search-box input,.course-sku-list .search-box input{border:1px solid #ddd;border-radius:4px;font-size:14px;padding:10px 12px 10px 36px;width:100%}.bulk-scheduling .filter-button,.coach-management .filter-button,.course-checkout .filter-button,.course-orders .filter-button,.course-scheduling .filter-button,.course-sku-list .filter-button{background:#fff;border:1px solid #ddd;border-radius:4px;cursor:pointer;font-size:14px;padding:10px 20px}.bulk-scheduling .filter-chips,.coach-management .filter-chips,.course-checkout .filter-chips,.course-orders .filter-chips,.course-scheduling .filter-chips,.course-sku-list .filter-chips{align-items:center;background:#fff;border-radius:8px;display:flex;gap:12px;margin-bottom:20px;padding:16px}.bulk-scheduling .filter-chips select,.coach-management .filter-chips select,.course-checkout .filter-chips select,.course-orders .filter-chips select,.course-scheduling .filter-chips select,.course-sku-list .filter-chips select{background:#fff;border:1px solid #ddd;border-radius:4px;cursor:pointer;font-size:14px;padding:8px 12px}.bulk-scheduling .clear-filters,.coach-management .clear-filters,.course-checkout .clear-filters,.course-orders .clear-filters,.course-scheduling .clear-filters,.course-sku-list .clear-filters{background:#f5f5f5;border:none;border-radius:4px;color:#666;cursor:pointer;font-size:14px;padding:8px 16px}.checkout-table-container,.coaches-table-container,.orders-table-container,.reservations-table,.sku-table-container{background:#fff;border-radius:8px;overflow:hidden}.bulk-scheduling .table-info,.coach-management .table-info,.course-checkout .table-info,.course-orders .table-info,.course-scheduling .table-info,.course-sku-list .table-info{border-bottom:1px solid #e0e0e0;color:#666;display:flex;font-size:14px;justify-content:space-between;padding:12px 16px}.checkout-table,.coaches-table,.orders-table,.reservations-table,.sku-table{border-collapse:collapse;width:100%}.checkout-table th,.coaches-table th,.orders-table th,.reservations-table th,.sku-table th{background:#fafafa;border-bottom:2px solid #e0e0e0;color:#666;font-size:14px;font-weight:600;padding:12px;text-align:left}.checkout-table td,.coaches-table td,.orders-table td,.reservations-table td,.sku-table td{border-bottom:1px solid #f0f0f0;font-size:14px;padding:12px}.checkout-table tr:hover,.coaches-table tr:hover,.orders-table tr:hover,.reservations-table tr:hover,.sku-table tr:hover{background:#f8f9fa}.bulk-scheduling .empty,.bulk-scheduling .loading,.coach-management .empty,.coach-management .loading,.course-checkout .empty,.course-checkout .loading,.course-orders .empty,.course-orders .loading,.course-scheduling .empty,.course-scheduling .loading,.course-sku-list .empty,.course-sku-list .loading{color:#999;padding:40px;text-align:center}.sku-name-cell{max-width:300px}.sku-name{color:#333;font-weight:500;margin-bottom:4px}.sku-meta{color:#999;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.coach-management .status-badge,.course-checkout .status-badge,.course-orders .status-badge,.course-scheduling .status-badge,.course-sku-list .status-badge{border-radius:12px;display:inline-block;font-size:12px;font-weight:500;padding:4px 12px}.coach-management .status-badge.active,.course-checkout .status-badge.active,.course-orders .status-badge.active,.course-scheduling .status-badge.active,.course-sku-list .status-badge.active{background:#e8f5e9;color:#2e7d32}.coach-management .status-badge.inactive,.course-checkout .status-badge.inactive,.course-orders .status-badge.inactive,.course-scheduling .status-badge.inactive,.course-sku-list .status-badge.inactive{background:#ffebee;color:#c62828}.status-badge.status-pending{background:#fff3e0;color:#e65100}.status-badge.status-paid{background:#e8f5e9;color:#2e7d32}.status-badge.status-cancelled,.status-badge.status-refunded{background:#ffebee;color:#c62828}.status-badge.status-expired{background:#f5f5f5;color:#666}.status-badge.status-scheduled{background:#e3f2fd;color:#1565c0}.status-badge.status-completed{background:#e8f5e9;color:#2e7d32}.coach-management .action-buttons,.course-checkout .action-buttons,.course-orders .action-buttons,.course-scheduling .action-buttons,.course-sku-list .action-buttons{display:flex;gap:8px}.bulk-scheduling .pagination,.coach-management .pagination,.course-checkout .pagination,.course-orders .pagination,.course-scheduling .pagination,.course-sku-list .pagination{align-items:center;background:#fff;border-radius:8px;display:flex;gap:12px;justify-content:center;margin-top:20px;padding:20px}.bulk-scheduling .pagination button,.coach-management .pagination button,.course-checkout .pagination button,.course-orders .pagination button,.course-scheduling .pagination button,.course-sku-list .pagination button{background:#fff;border:1px solid #ddd;border-radius:4px;cursor:pointer;font-size:14px;padding:8px 16px}.bulk-scheduling .pagination button:disabled,.coach-management .pagination button:disabled,.course-checkout .pagination button:disabled,.course-orders .pagination button:disabled,.course-scheduling .pagination button:disabled,.course-sku-list .pagination button:disabled{cursor:not-allowed;opacity:.5}.bulk-scheduling .pagination button:not(:disabled):hover,.coach-management .pagination button:not(:disabled):hover,.course-checkout .pagination button:not(:disabled):hover,.course-orders .pagination button:not(:disabled):hover,.course-scheduling .pagination button:not(:disabled):hover,.course-sku-list .pagination button:not(:disabled):hover{background:#f5f5f5}.bulk-scheduling .pagination button.current,.coach-management .pagination button.current,.course-checkout .pagination button.current,.course-orders .pagination button.current,.course-scheduling .pagination button.current,.course-sku-list .pagination button.current{background:#8c60f3!important;border-color:#8c60f3!important;color:#fff!important}.statistics-overview{background:#fff;border-radius:8px;margin-bottom:20px;padding:20px}.statistics-overview h3{color:#333;font-size:16px;margin:0 0 16px}.stat-cards{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(3,1fr)}.stat-card{border:1px solid #e0e0e0;border-radius:8px;padding:16px}.stat-label{color:#666;font-size:14px;margin-bottom:8px}.stat-value{color:#333;font-size:24px;font-weight:600;margin-bottom:4px}.stat-amount{color:#1976d2;font-size:18px}.quick-filters{background:#fff;border-radius:8px;margin-bottom:20px;padding:16px}.course-orders .filter-tabs,.course-scheduling .filter-tabs{display:flex;gap:4px;margin-bottom:16px}.course-orders .filter-tabs button,.course-scheduling .filter-tabs button{background:#0000;border:none;border-bottom:2px solid #0000;color:#666;cursor:pointer;font-size:14px;padding:8px 16px}.course-orders .filter-tabs button.active,.course-scheduling .filter-tabs button.active{border-bottom-color:#1976d2;color:#1976d2}.filter-dropdowns{align-items:center;display:flex;gap:12px}.filter-dropdowns label{color:#666;font-size:14px}.filter-dropdowns select{border:1px solid #ddd;border-radius:4px;font-size:14px;padding:6px 12px}.order-number-cell{min-width:150px}.order-number{color:#333;font-weight:500;margin-bottom:4px}.order-time{color:#999;font-size:12px;margin-bottom:4px}.payment-method{color:#666;font-size:12px}.user-name{color:#333;margin-bottom:4px}.user-phone{color:#999;font-size:12px}.course-name{color:#333;font-weight:500;margin-bottom:4px}.course-sessions{color:#666;font-size:12px}.sessions-remaining{color:#1976d2;margin-left:8px}.amount-cell .amount{color:#333;font-weight:600}.amount-cell .discount{color:#4caf50;font-size:12px;margin-top:4px}.expire-info{color:#666}.expire-info,.expire-warning{font-size:11px;margin-top:4px}.expire-warning{color:#ff6f00;font-weight:500}.coach-management .table-footer,.course-checkout .table-footer,.course-orders .table-footer,.course-scheduling .table-footer,.course-sku-list .table-footer{align-items:center;background:#fff;border-radius:8px;display:flex;justify-content:space-between;margin-top:20px;padding:16px}.course-scheduling .view-controls{align-items:center;background:#fff;border-radius:8px;display:flex;justify-content:space-between;margin-bottom:20px;padding:16px}.course-scheduling .view-tabs{display:flex;gap:4px}.course-scheduling .view-tabs button{background:#0000;border:1px solid #ddd;cursor:pointer;font-size:14px;padding:8px 16px}.course-scheduling .view-tabs button.active{background:#1976d2;border-color:#1976d2;color:#fff}.course-scheduling .date-range{color:#333;font-size:16px;font-weight:500}.course-scheduling .date-navigation{display:flex;gap:8px}.course-scheduling .date-navigation button{align-items:center;background:#fff;border:1px solid #ddd;border-radius:4px;cursor:pointer;display:flex;height:32px;justify-content:center;width:32px}.course-scheduling .schedule-filters{align-items:center;background:#fff;border-radius:8px;display:flex;gap:12px;margin-bottom:20px;padding:16px}.course-scheduling .schedule-filters label{color:#666;font-size:14px}.course-scheduling .schedule-filters select{border:1px solid #ddd;border-radius:4px;font-size:14px;padding:8px 12px}.calendar-container{background:#fff;border-radius:8px;overflow-x:auto}.calendar-table{border-collapse:collapse;width:100%}.calendar-table th{background:#fafafa;border:1px solid #e0e0e0;color:#333;font-size:14px;font-weight:600;min-width:120px;padding:12px;text-align:center}.calendar-table .time-header{min-width:60px;text-align:left}.calendar-table td{border:1px solid #e0e0e0;height:60px;padding:4px;position:relative;vertical-align:top}.calendar-table .time-cell{background:#fafafa;font-weight:500;padding:8px;text-align:center}.course-scheduling .schedule-card{background:#e3f2fd;border:1px solid #90caf9;border-radius:4px;cursor:pointer;display:flex;flex-direction:column;font-size:11px;height:100%;justify-content:center;padding:4px}.course-scheduling .schedule-card:hover{background:#bbdefb}.course-scheduling .schedule-type{color:#1565c0;font-weight:600;margin-bottom:2px}.course-scheduling .schedule-court{color:#333;margin-bottom:2px}.course-scheduling .schedule-coach{color:#666;margin-bottom:2px}.course-scheduling .schedule-students{color:#1976d2;font-weight:500}.legend{background:#fff;border-radius:8px;display:flex;gap:20px;justify-content:center;margin-top:20px;padding:16px}.legend-item{align-items:center;color:#666;display:flex;font-size:14px;gap:8px}.legend-dot{border-radius:50%;height:12px;width:12px}.legend-dot.scheduled{background:#2196f3}.legend-dot.completed{background:#4caf50}.legend-dot.cancelled{background:#f44336}.legend-dot.available{background:#fff;border:1px solid #ddd}.section-title{color:#333;font-size:18px;font-weight:600}.filters-bar,.section-title{background:#fff;border-radius:8px;margin-bottom:20px;padding:16px}.filters-bar{align-items:center;display:flex;gap:12px}.filters-bar>span{color:#666;font-size:14px}.filters-bar select{border:1px solid #ddd;border-radius:4px;font-size:14px;padding:8px 12px}.course-checkout .time-cell .time-slot{color:#333;font-weight:500;margin-bottom:4px}.course-checkout .time-cell .attendance-status{color:#666;font-size:12px}.course-checkout .student-name{color:#333;font-weight:500;margin-bottom:4px}.course-checkout .course-package{color:#666;font-size:12px}.bulk-scheduling .modal-overlay,.coach-management .modal-overlay,.course-checkout .modal-overlay,.course-orders .modal-overlay,.course-scheduling .modal-overlay,.course-sku-list .modal-overlay{align-items:center;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.bulk-scheduling .modal-content,.coach-management .modal-content,.course-checkout .modal-content,.course-orders .modal-content,.course-scheduling .modal-content,.course-sku-list .modal-content{background:#fff;border-radius:8px;max-height:90vh;max-width:600px;overflow-y:auto;width:90%}.course-checkout .checkout-modal{max-width:700px}.bulk-scheduling .modal-header,.coach-management .modal-header,.course-checkout .modal-header,.course-orders .modal-header,.course-scheduling .modal-header,.course-sku-list .modal-header{border-bottom:1px solid #e0e0e0;padding:20px}.bulk-scheduling .modal-header h2,.coach-management .modal-header h2,.course-checkout .modal-header h2,.course-orders .modal-header h2,.course-scheduling .modal-header h2,.course-sku-list .modal-header h2{color:#333;font-size:20px;margin:0}.bulk-scheduling .modal-body,.coach-management .modal-body,.course-checkout .modal-body,.course-orders .modal-body,.course-scheduling .modal-body,.course-sku-list .modal-body{padding:20px}.bulk-scheduling .form-section,.course-checkout .form-section,.course-checkout .info-section{margin-bottom:24px}.bulk-scheduling .form-section h3,.course-checkout .form-section h3,.course-checkout .info-section h3{color:#333;font-size:16px;margin:0 0 12px}.info-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(2,1fr)}.info-item{display:flex;gap:8px}.info-item .label{color:#666;font-size:14px}.info-item .value{color:#333;font-size:14px;font-weight:500}.bulk-scheduling .form-group,.course-checkout .form-group{margin-bottom:20px}.bulk-scheduling .form-group label,.course-checkout .form-group label{color:#333;display:block;font-size:14px;font-weight:500;margin-bottom:8px}.radio-group{display:flex;gap:20px}.radio-group label{align-items:center;cursor:pointer;display:flex;font-size:14px;font-weight:400;gap:8px}.radio-group input[type=radio]{cursor:pointer}.input-with-suffix{align-items:center;display:flex;gap:8px}.input-with-suffix input{border:1px solid #ddd;border-radius:4px;font-size:14px;padding:8px 12px;width:100px}.input-with-suffix span{color:#666;font-size:14px}.feedback-textarea{border:1px solid #ddd;border-radius:4px;font-size:14px;padding:12px;resize:vertical;width:100%}.bulk-scheduling .modal-footer,.coach-management .modal-footer,.course-checkout .modal-footer,.course-orders .modal-footer,.course-scheduling .modal-footer,.course-sku-list .modal-footer{border-top:1px solid #e0e0e0;display:flex;gap:12px;justify-content:flex-end;padding:20px}.coach-management .filter-group{align-items:center;display:flex;gap:12px;margin-left:auto}.coach-management .filter-group label{color:#666;font-size:14px}.coach-management .filter-group select{border:1px solid #ddd;border-radius:4px;font-size:14px;padding:8px 12px}.coach-management .coach-info-cell{min-width:300px}.coach-management .coach-info{display:flex;gap:12px}.coach-management .coach-avatar{height:60px;width:60px}.coach-management .avatar-placeholder{align-items:center;background:#e3f2fd;border-radius:50%;color:#1976d2;display:flex;font-size:20px;font-weight:600;height:100%;justify-content:center;width:100%}.coach-management .coach-details{flex:1 1}.coach-management .coach-name{color:#333;font-weight:600;margin-bottom:4px}.coach-management .coach-campus,.coach-management .coach-phone{color:#666;font-size:13px;margin-bottom:2px}.coach-management .coach-specialties{color:#999;font-size:12px;margin-top:4px}.coach-management .level-badge{border-radius:4px;font-size:12px;font-weight:500;padding:4px 12px}.coach-management .level-badge.level-高级{background:#fff3e0;color:#e65100}.coach-management .level-badge.level-中级{background:#e3f2fd;color:#1565c0}.coach-management .level-badge.level-初级{background:#f3e5f5;color:#7b1fa2}.coach-management .rating-cell{white-space:nowrap}.coach-management .rating-stars{color:#ffc107;font-size:14px;margin-right:4px}.coach-management .review-count{color:#999;font-size:12px}.coach-management .monthly-hours{color:#333;font-weight:500}.bulk-scheduling{background-color:#f5f5f5;min-height:calc(100vh - 64px);padding:24px}.bulk-scheduling .bulk-form{background:#fff;border-radius:8px;margin-top:20px;padding:24px}.bulk-scheduling .form-row{display:flex;gap:16px;margin-bottom:16px}.bulk-scheduling .form-row .form-group{flex:1 1}.bulk-scheduling .court-checkboxes,.bulk-scheduling .weekday-checkboxes{display:flex;flex-wrap:wrap;gap:12px;margin-top:8px}.bulk-scheduling .checkbox-item{align-items:center;border-radius:4px;cursor:pointer;display:flex;gap:6px;padding:4px 8px;transition:background .2s}.bulk-scheduling .checkbox-item:hover{background:#f5f5f5}.bulk-scheduling .checkbox-item input[type=checkbox]{cursor:pointer}.bulk-scheduling .weekday-selection{margin-bottom:16px}.bulk-scheduling .time-slots{margin-top:12px}.bulk-scheduling .time-slot-row{align-items:center;display:flex;gap:12px;margin-bottom:12px}.bulk-scheduling .time-slot-row input[type=time]{border:1px solid #ddd;border-radius:4px;font-size:14px;padding:6px 12px}.bulk-scheduling .btn-remove{background:#f44336;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:13px;padding:6px 12px}.bulk-scheduling .btn-remove:hover{background:#d32f2f}.bulk-scheduling .btn-add-time{background:#fff;border:1px solid #1976d2;border-radius:4px;color:#1976d2;cursor:pointer;font-size:14px;margin-top:8px;padding:8px 16px}.bulk-scheduling .btn-add-time:hover{background:#e3f2fd}.bulk-scheduling .preview-section{border-top:2px solid #e0e0e0;margin-top:20px;padding-top:20px}.bulk-scheduling .preview-summary{color:#666;margin-bottom:16px}.bulk-scheduling .preview-table-container{border:1px solid #e0e0e0;border-radius:4px;max-height:400px;overflow-y:auto}.bulk-scheduling .preview-table{border-collapse:collapse;width:100%}.bulk-scheduling .preview-table th{background:#f5f5f5;border-bottom:1px solid #e0e0e0;color:#666;font-size:13px;font-weight:500;padding:10px;position:-webkit-sticky;position:sticky;text-align:left;top:0}.bulk-scheduling .preview-table td{border-bottom:1px solid #f0f0f0;font-size:13px;padding:10px}.bulk-scheduling .preview-table .more-rows{color:#999;font-style:italic;text-align:center}.bulk-scheduling .form-actions{border-top:1px solid #e0e0e0;display:flex;gap:12px;justify-content:flex-end;margin-top:24px;padding-top:20px}.bulk-scheduling .advanced-options{display:flex;flex-direction:column;gap:12px}.bulk-scheduling .no-data{background:#f9f9f9;border-radius:4px;color:#999;font-style:italic;padding:12px;text-align:center}.course-order-form{margin:0 auto;max-width:900px;padding:20px}.course-order-form .page-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:24px}.course-order-form .step-indicator{background:#f8f9fa;border-radius:8px;display:flex;justify-content:center;margin-bottom:32px;padding:20px}.course-order-form .step{align-items:center;display:flex;flex:1 1;flex-direction:column;position:relative}.course-order-form .step:not(:last-child):after{background:#dee2e6;content:"";height:2px;position:absolute;right:-50%;top:15px;width:100%;z-index:1}.course-order-form .step.active:not(:last-child):after{background:#007bff}.course-order-form .step-number{align-items:center;background:#dee2e6;border-radius:50%;color:#6c757d;display:flex;font-size:14px;font-weight:600;height:30px;justify-content:center;position:relative;width:30px;z-index:2}.course-order-form .step.active .step-number{background:#007bff;color:#fff}.course-order-form .step-label{color:#6c757d;font-size:12px;margin-top:8px}.course-order-form .step.active .step-label{color:#007bff;font-weight:500}.course-order-form .form-content{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;padding:24px}.course-order-form .step-content h3{color:#333;font-size:18px;margin:0 0 24px}.course-order-form .form-select,.course-order-form .search-input{border:1px solid #dee2e6;border-radius:6px;font-size:14px;padding:10px 12px;width:100%}.course-order-form .user-item{align-items:flex-start;border:1px solid #dee2e6;border-radius:8px;cursor:pointer;display:flex;gap:12px;margin-bottom:8px;padding:12px;transition:all .2s}.course-order-form .user-item:hover{background:#f8f9fa;border-color:#007bff}.course-order-form .user-item.selected{background:#e7f3ff;border-color:#007bff}.course-order-form .selected-user-info{background:#e7f3ff;border-radius:8px;margin-top:20px;padding:16px}.course-order-form .sku-details{background:#f8f9fa;border-radius:8px;margin-top:20px;padding:16px}.course-order-form .price-adjustment{background:#fff8e1;border-radius:8px;margin-top:24px;padding:16px}.course-order-form .order-summary{background:#f8f9fa;border-radius:8px;margin-top:24px;padding:16px}.course-order-form .summary-item{display:flex;font-size:14px;justify-content:space-between;margin-bottom:8px}.course-order-form .summary-item.total{border-top:1px solid #dee2e6;font-size:16px;font-weight:600;margin-top:8px;padding-top:8px}.course-order-form .form-actions{border-top:1px solid #e9ecef;display:flex;gap:12px;justify-content:flex-end;margin-top:24px;padding-top:20px}.course-order-form .form-actions button{flex:0 0 auto!important;flex-basis:auto!important;flex-grow:0!important;flex-shrink:0!important;font-size:14px!important;max-width:none!important;min-width:auto!important;padding:8px 16px!important;white-space:nowrap!important;width:auto!important}@media (max-width:768px){.stat-cards{grid-template-columns:1fr}.course-scheduling .schedule-filters,.filter-chips,.filter-dropdowns{align-items:stretch;flex-direction:column}.info-grid{grid-template-columns:1fr}.calendar-container{overflow-x:scroll}.course-order-form .step-label{display:none}.course-order-form .form-actions{flex-direction:column-reverse}}.orders-table .staff-cell{padding:12px;vertical-align:middle}.staff-info{display:flex;flex-direction:column;gap:4px}.coach-info,.sales-info{align-items:center;display:flex;font-size:13px;gap:6px;line-height:1.5}.staff-label{color:#666;font-weight:500;min-width:35px}.staff-name{color:#333;font-weight:600}.coach-info .staff-name{color:#2196f3}.sales-info .staff-name{color:#4caf50}.no-staff{color:#999;font-size:13px;font-style:italic}.staff-selection{margin-bottom:20px}.staff-selection .form-group{margin-bottom:16px}.staff-selection .form-select{border:1px solid #ddd;border-radius:4px;font-size:14px;padding:8px 12px;width:100%}.staff-summary{background:#f9f9f9;border:1px solid #e0e0e0;border-radius:4px;margin-top:20px;padding:16px}.staff-summary h4{color:#333;font-size:16px;margin:0 0 12px}.summary-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:1fr 1fr}.summary-item{align-items:center;display:flex;gap:8px}.summary-item label{color:#666;font-weight:500}.summary-item span{color:#333;font-weight:600}.hint-text{color:#4caf50;font-size:12px;margin-top:4px}.kindergarten-registration-management{background:#f0f2f5;min-height:100vh;padding:24px}.kindergarten-registration-management .ant-card{border-radius:8px;box-shadow:0 1px 2px 0 #00000008,0 1px 6px -1px #00000005,0 2px 4px 0 #00000005}.kindergarten-registration-management .ant-statistic-title{color:#00000073;font-size:14px}.kindergarten-registration-management .ant-statistic-content{font-size:24px;font-weight:600}.kindergarten-registration-management .ant-table-wrapper{background:#fff}.kindergarten-registration-management .ant-btn,.kindergarten-registration-management .ant-input,.kindergarten-registration-management .ant-picker,.kindergarten-registration-management .ant-select-selector{border-radius:6px}@media (max-width:768px){.kindergarten-registration-management{padding:16px}.kindergarten-registration-management .ant-statistic-content{font-size:20px}.kindergarten-registration-management .ant-card{margin-bottom:12px!important}}.kindergarten-registration-management .ant-table-cell{padding:12px 8px}.kindergarten-registration-management .ant-table-thead>tr>th{background:#fafafa;font-weight:600}.kindergarten-registration-management .ant-tag{border-radius:4px;font-size:12px;padding:2px 8px}.kindergarten-registration-management .ant-drawer-body{padding:24px}.kindergarten-registration-management .ant-descriptions-item-label{background:#fafafa;font-weight:600}.kindergarten-registration-management .ant-statistic{transition:all .3s ease}.kindergarten-registration-management .ant-statistic:hover{transform:translateY(-2px)}.kindergarten-registration-management .ant-space-item{align-items:center;display:inline-flex}.kindergarten-registration-management .ant-spin-nested-loading{position:relative}.kindergarten-registration-management .ant-empty{padding:40px 0}.kindergarten-registration-management .ant-pagination{margin-top:16px;text-align:right}@media (max-width:576px){.kindergarten-registration-management .ant-space{flex-wrap:wrap}.kindergarten-registration-management .ant-pagination{text-align:center}}.homepage-container{background:#f0f2f5;min-height:calc(100vh - 64px);padding:0}.homepage-hero{background:linear-gradient(135deg,#667eea,#764ba2);overflow:hidden;padding:60px 24px 100px;position:relative;text-align:center}.homepage-hero:before{background:url("data:image/svg+xml;charset=utf-8,%3Csvg width='60' height='60' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z' fill='%23fff' fill-opacity='.05' fill-rule='evenodd'/%3E%3C/svg%3E") repeat;bottom:0;content:"";left:0;pointer-events:none;position:absolute;right:0;top:0}.hero-content{position:relative;z-index:1}.hero-logo{transition:transform .3s ease}.hero-logo:hover{transform:translateY(-10px)}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.stat-card{border:none;transition:all .3s ease}.stat-card:hover{box-shadow:0 8px 32px #0000001a!important;transform:translateY(-4px)}.quick-action-card{padding:20px;transition:all .3s ease}.quick-action-card:hover{box-shadow:0 4px 16px #00000014;transform:translateY(-2px)}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.stat-card{animation:fadeInUp .5s ease-out;animation-fill-mode:both}.stat-card:first-child{animation-delay:.1s}.stat-card:nth-child(2){animation-delay:.2s}.stat-card:nth-child(3){animation-delay:.3s}.stat-card:nth-child(4){animation-delay:.4s}@media (max-width:768px){.homepage-header{border-radius:0 0 24px 24px;padding:24px 24px 80px}.homepage-container{padding:0}}.layout{background:#f8f6fc;display:flex;flex-direction:column;height:100vh}.layout-body{display:flex;flex:1 1;overflow:hidden;position:relative}.layout-content{background:#f8f6fc;flex:1 1;margin-left:220px;overflow-y:auto;padding:24px;transition:margin-left .3s ease}.layout-content.sidebar-collapsed{margin-left:80px}.content-wrapper{margin:0 auto;max-width:1400px;width:100%}.mobile-sidebar-overlay{background:#00000080;bottom:0;display:none;left:0;position:fixed;right:0;top:0;z-index:999}@media (max-width:768px){.layout-content{margin-left:0;padding:16px}.layout-content.sidebar-collapsed{margin-left:0}.mobile-sidebar-overlay{display:block}}.sidebar-menu{font-size:14px}.sidebar-menu .ant-menu-item,.sidebar-menu .ant-menu-submenu-title{border-radius:8px!important;height:40px!important;line-height:40px!important;margin:4px 8px!important}.sidebar-menu>.ant-menu-submenu>.ant-menu-submenu-title{font-size:16px!important;font-weight:600!important;height:44px!important;line-height:44px!important}.sidebar-menu .ant-menu-sub .ant-menu-item{height:36px!important;line-height:36px!important;margin:2px 8px!important;padding-left:48px!important}.ant-layout-sider-collapsed .sidebar-menu .ant-menu-item,.ant-layout-sider-collapsed .sidebar-menu .ant-menu-submenu-title{padding:0 calc(50% - 14px)!important}.sidebar-menu .ant-menu-item-selected{background:linear-gradient(135deg,#f8f6fc,#e4e0ec)!important;color:#8c60f3!important;font-weight:500}.sidebar-menu .ant-menu-item-selected:after{border-right-color:#8c60f3!important;border-width:3px!important}.sidebar-menu .ant-menu-item:hover,.sidebar-menu .ant-menu-submenu-title:hover{background:#f8f6fc!important;color:#8c60f3!important}.sidebar-menu .ant-menu-submenu-arrow{color:#8e8a9c}.sidebar-menu .ant-menu-submenu-active .ant-menu-submenu-arrow,.sidebar-menu .ant-menu-submenu-open .ant-menu-submenu-arrow{color:#8c60f3}.sidebar-menu .anticon{font-size:16px!important;margin-right:10px!important}.sidebar-menu>.ant-menu-submenu>.ant-menu-submenu-title .anticon{font-size:18px!important;margin-right:12px!important}.ant-layout-sider-collapsed .sidebar-menu .anticon{font-size:20px!important;margin-right:0!important}.sidebar-menu .ant-badge{margin-left:auto}.sidebar-menu .ant-badge-count{background:#ff4d4f;border-radius:9px;font-size:12px;height:18px;line-height:18px;min-width:18px;padding:0 5px}.mobile-sidebar-drawer .ant-drawer-body{background:#fff;padding:0}.mobile-sidebar-drawer .ant-drawer-header{display:none}.mobile-sidebar-header{align-items:center;background:#fff;border-bottom:1px solid #e4e0ec;display:flex;height:64px;padding:0 16px}.mobile-sidebar-header .sidebar-logo{font-size:24px;margin-right:12px}.mobile-sidebar-header .sidebar-title{color:#353148;font-size:16px;font-weight:600}@media (max-width:768px){.sidebar-menu .ant-menu-item,.sidebar-menu .ant-menu-submenu-title{font-size:16px!important;height:44px!important;line-height:44px!important}.sidebar-menu .ant-menu-sub .ant-menu-item{font-size:15px!important;height:40px!important;line-height:40px!important}.sidebar-menu .anticon{font-size:18px!important}.sidebar-menu .ant-menu-item,.sidebar-menu .ant-menu-submenu-title{-webkit-tap-highlight-color:rgba(140,96,243,.1);touch-action:manipulation}.sidebar-menu .ant-menu-item-selected{box-shadow:0 2px 8px #8c60f326}}.ant-layout-sider::-webkit-scrollbar,.mobile-sidebar-drawer .ant-drawer-body::-webkit-scrollbar{height:6px;width:6px}.ant-layout-sider::-webkit-scrollbar-thumb,.mobile-sidebar-drawer .ant-drawer-body::-webkit-scrollbar-thumb{background:#cccad2;border-radius:3px}.ant-layout-sider::-webkit-scrollbar-thumb:hover,.mobile-sidebar-drawer .ant-drawer-body::-webkit-scrollbar-thumb:hover{background:#8e8a9c}.ant-layout-sider::-webkit-scrollbar-track,.mobile-sidebar-drawer .ant-drawer-body::-webkit-scrollbar-track{background:#f8f6fc}.sidebar-menu .ant-menu-item,.sidebar-menu .ant-menu-submenu-title{transition:all .3s ease}.sidebar-menu .ant-menu-item-selected{animation:menuItemSelect .3s ease}@keyframes menuItemSelect{0%{transform:translateX(0)}50%{transform:translateX(4px)}to{transform:translateX(0)}}.ant-layout-sider-collapsed .sidebar-menu .ant-menu-item span,.ant-layout-sider-collapsed .sidebar-menu .ant-menu-submenu-title span{display:inline-block;opacity:0;transition:opacity .3s}.ant-layout-sider:not(.ant-layout-sider-collapsed) .sidebar-menu .ant-menu-item span,.ant-layout-sider:not(.ant-layout-sider-collapsed) .sidebar-menu .ant-menu-submenu-title span{opacity:1;transition:opacity .3s .1s}.ant-layout-sider-collapsed .ant-menu-inline-collapsed-tooltip{background:#353148eb!important}.ant-layout-sider-collapsed .ant-menu-inline-collapsed-tooltip .ant-tooltip-inner{color:#fff;font-size:12px}.ant-menu-submenu>.ant-menu{background:#fff;box-shadow:none}.sidebar-menu .ant-menu-item-group-title{color:#8e8a9c;font-size:12px;font-weight:600;letter-spacing:.5px;padding:8px 16px 4px;text-transform:uppercase}.sidebar-menu .ant-empty{color:#8e8a9c;padding:20px}@media (prefers-color-scheme:dark){.ant-layout-sider,.mobile-sidebar-drawer .ant-drawer-body{background:#1f1f1f}.sidebar-menu .ant-menu-item,.sidebar-menu .ant-menu-submenu-title{color:#e0e0e0}.sidebar-menu .ant-menu-item-selected{background:linear-gradient(135deg,#2a2a2a,#3a3a3a)!important}.sidebar-menu .ant-menu-item:hover,.sidebar-menu .ant-menu-submenu-title:hover{background:#2a2a2a!important}}.app-header{background:#fff;border-bottom:1px solid #e4e0ec;box-shadow:0 2px 4px #8c60f314;height:64px;justify-content:space-between;padding:0 24px;position:-webkit-sticky;position:sticky;top:0;z-index:100}.app-header,.header-left{align-items:center;display:flex}.header-left{gap:20px}.menu-toggle{background:none;border:none;color:#353148;cursor:pointer;font-size:24px;padding:8px;transition:all .3s ease}.menu-toggle:hover{background:#f8f6fc;border-radius:8px;color:#8c60f3}.desktop-only{display:block}.mobile-only{display:none}.header-brand{align-items:center;color:#353148;display:flex;font-size:18px;font-weight:600;gap:10px}.brand-icon{font-size:24px}.brand-text{color:#353148}.header-right{align-items:center;display:flex;gap:16px}.user-menu-wrapper{display:inline-block;position:relative!important}.user-menu-btn{align-items:center;background:none;border:1px solid #e4e0ec;border-radius:20px;cursor:pointer;display:flex;gap:8px;padding:6px 12px;transition:all .3s ease}.user-menu-btn:hover{background:#f8f6fc;border-color:#8c60f3}.user-avatar{font-size:20px}.user-name{color:#353148;font-size:14px;font-weight:500}.dropdown-arrow{color:#8e8a9c;font-size:10px}.user-menu-wrapper .user-dropdown{animation:dropdownSlide .3s ease;background:#fff;border:1px solid #e4e0ec;border-radius:12px;box-shadow:0 8px 24px #0000001f;left:auto!important;max-height:calc(100vh - 100px);max-width:calc(100vw - 48px);overflow-y:auto;position:absolute;right:0;top:calc(100% + 4px);transform:translateX(0)!important;width:280px;z-index:9999}.user-menu-wrapper .user-dropdown:before{background:#0000;content:"";height:4px;left:0;position:absolute;right:0;top:-4px}@keyframes dropdownSlide{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.user-info{gap:12px;padding:16px}.user-avatar-large,.user-info{align-items:center;display:flex}.user-avatar-large{background:#f8f6fc;border-radius:50%;font-size:40px;height:50px;justify-content:center;width:50px}.user-fullname{color:#353148;font-size:16px;font-weight:600;margin:0}.user-role{color:#8c60f3;font-size:12px;margin:2px 0}.user-email{color:#8e8a9c;font-size:12px;margin:0}.dropdown-divider{background:#e4e0ec;height:1px}.dropdown-item{align-items:center;background:none;border:none;color:#353148;cursor:pointer;display:flex;font-size:14px;gap:12px;padding:12px 16px;text-align:left;transition:background .3s ease;width:100%}.dropdown-item:hover{background:#f8f6fc}.dropdown-item.logout{color:#f44;font-weight:500}.dropdown-item.logout:hover{background:#fff5f5;color:red}@media (max-width:768px){.app-header{padding:0 16px}.desktop-only{display:none}.mobile-only{display:block}.brand-text,.user-name{display:none}.user-menu-wrapper .user-dropdown{left:auto!important;right:0;top:calc(100% + 2px);transform:translateX(0)!important;width:240px}}*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.\!visible,.visible{visibility:visible!important}.collapse{visibility:collapse!important}.static{position:static!important}.fixed{position:fixed!important}.absolute{position:absolute!important}.relative{position:relative!important}.inset-0{inset:0!important}.bottom-0{bottom:0!important}.left-0{left:0!important}.left-2{left:.5rem!important}.right-0{right:0!important}.right-1{right:.25rem!important}.right-10{right:2.5rem!important}.right-2{right:.5rem!important}.top-1\/2{top:50%!important}.top-2{top:.5rem!important}.z-10{z-index:10!important}.z-50{z-index:50!important}.z-\[80\]{z-index:80!important}.z-\[90\]{z-index:90!important}.mx-4{margin-left:1rem!important;margin-right:1rem!important}.mx-auto{margin-left:auto!important;margin-right:auto!important}.mb-1{margin-bottom:.25rem!important}.mb-2{margin-bottom:.5rem!important}.mb-3{margin-bottom:.75rem!important}.mb-4{margin-bottom:1rem!important}.mb-6{margin-bottom:1.5rem!important}.ml-2{margin-left:.5rem!important}.ml-4{margin-left:1rem!important}.ml-6{margin-left:1.5rem!important}.mr-2{margin-right:.5rem!important}.mr-6{margin-right:1.5rem!important}.mt-0\.5{margin-top:.125rem!important}.mt-1{margin-top:.25rem!important}.mt-2{margin-top:.5rem!important}.mt-3{margin-top:.75rem!important}.line-clamp-3{-webkit-box-orient:vertical!important;-webkit-line-clamp:3!important;display:-webkit-box!important;overflow:hidden!important}.block{display:block!important}.inline-block{display:inline-block!important}.inline{display:inline!important}.flex{display:flex!important}.inline-flex{display:inline-flex!important}.table{display:table!important}.grid{display:grid!important}.hidden{display:none!important}.h-0\.5{height:.125rem!important}.h-10{height:2.5rem!important}.h-12{height:3rem!important}.h-16{height:4rem!important}.h-2{height:.5rem!important}.h-3{height:.75rem!important}.h-4{height:1rem!important}.h-5{height:1.25rem!important}.h-6{height:1.5rem!important}.h-8{height:2rem!important}.h-full{height:100%!important}.max-h-20{max-height:5rem!important}.max-h-24{max-height:6rem!important}.max-h-60{max-height:15rem!important}.max-h-96{max-height:24rem!important}.max-h-\[85vh\]{max-height:85vh!important}.max-h-\[90vh\]{max-height:90vh!important}.w-10{width:2.5rem!important}.w-12{width:3rem!important}.w-16{width:4rem!important}.w-3{width:.75rem!important}.w-4{width:1rem!important}.w-5{width:1.25rem!important}.w-6{width:1.5rem!important}.w-8{width:2rem!important}.w-9{width:2.25rem!important}.w-full{width:100%!important}.min-w-0{min-width:0!important}.min-w-\[120px\]{min-width:120px!important}.min-w-\[200px\]{min-width:200px!important}.max-w-2xl{max-width:42rem!important}.max-w-3xl{max-width:48rem!important}.max-w-lg{max-width:32rem!important}.flex-1{flex:1 1!important}.shrink{flex-shrink:1!important}.shrink-0{flex-shrink:0!important}.-translate-y-1\/2{--tw-translate-y:-50%!important}.-translate-y-1\/2,.translate-x-0\.5{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important}.translate-x-0\.5{--tw-translate-x:0.125rem!important}.translate-x-4{--tw-translate-x:1rem!important}.transform,.translate-x-4{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important}.animate-spin{animation:spin 1s linear infinite!important}.cursor-grab{cursor:grab!important}.cursor-move{cursor:move!important}.cursor-pointer{cursor:pointer!important}.resize-none{resize:none!important}.resize{resize:both!important}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))!important}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))!important}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))!important}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))!important}.flex-col{flex-direction:column!important}.flex-wrap{flex-wrap:wrap!important}.items-start{align-items:flex-start!important}.items-center{align-items:center!important}.justify-center{justify-content:center!important}.justify-between{justify-content:space-between!important}.gap-1{gap:.25rem!important}.gap-1\.5{gap:.375rem!important}.gap-2{gap:.5rem!important}.gap-3{gap:.75rem!important}.gap-4{gap:1rem!important}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0!important;margin-bottom:calc(.25rem*var(--tw-space-y-reverse))!important;margin-top:calc(.25rem*(1 - var(--tw-space-y-reverse)))!important}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0!important;margin-bottom:calc(.5rem*var(--tw-space-y-reverse))!important;margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)))!important}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0!important;margin-bottom:calc(.75rem*var(--tw-space-y-reverse))!important;margin-top:calc(.75rem*(1 - var(--tw-space-y-reverse)))!important}.self-center{align-self:center!important}.overflow-hidden{overflow:hidden!important}.overflow-x-auto{overflow-x:auto!important}.overflow-y-auto{overflow-y:auto!important}.overflow-x-hidden{overflow-x:hidden!important}.whitespace-nowrap{white-space:nowrap!important}.rounded{border-radius:.25rem!important}.rounded-full{border-radius:9999px!important}.rounded-lg{border-radius:.5rem!important}.rounded-md{border-radius:.375rem!important}.rounded-xl{border-radius:.75rem!important}.border{border-width:1px!important}.border-2{border-width:2px!important}.border-b{border-bottom-width:1px!important}.border-b-2{border-bottom-width:2px!important}.border-t{border-top-width:1px!important}.border-blue-200{--tw-border-opacity:1!important;border-color:#bfdbfe!important;border-color:rgb(191 219 254/var(--tw-border-opacity,1))!important}.border-gray-100{--tw-border-opacity:1!important;border-color:#f5f5f5!important;border-color:rgb(245 245 245/var(--tw-border-opacity,1))!important}.border-gray-200{--tw-border-opacity:1!important;border-color:#eee!important;border-color:rgb(238 238 238/var(--tw-border-opacity,1))!important}.border-gray-300{--tw-border-opacity:1!important;border-color:#e0e0e0!important;border-color:rgb(224 224 224/var(--tw-border-opacity,1))!important}.border-green-200{--tw-border-opacity:1!important;border-color:#bbf7d0!important;border-color:rgb(187 247 208/var(--tw-border-opacity,1))!important}.border-purple-200{--tw-border-opacity:1!important;border-color:#e9d5ff!important;border-color:rgb(233 213 255/var(--tw-border-opacity,1))!important}.border-purple-600{--tw-border-opacity:1!important;border-color:#9333ea!important;border-color:rgb(147 51 234/var(--tw-border-opacity,1))!important}.border-red-200{--tw-border-opacity:1!important;border-color:#fecaca!important;border-color:rgb(254 202 202/var(--tw-border-opacity,1))!important}.border-yellow-200{--tw-border-opacity:1!important;border-color:#fef08a!important;border-color:rgb(254 240 138/var(--tw-border-opacity,1))!important}.bg-black{background-color:#000!important;background-color:rgb(0 0 0/var(--tw-bg-opacity,1))!important}.bg-black,.bg-blue-100{--tw-bg-opacity:1!important}.bg-blue-100{background-color:#dbeafe!important;background-color:rgb(219 234 254/var(--tw-bg-opacity,1))!important}.bg-blue-50{background-color:#eff6ff!important;background-color:rgb(239 246 255/var(--tw-bg-opacity,1))!important}.bg-blue-50,.bg-blue-600{--tw-bg-opacity:1!important}.bg-blue-600{background-color:#2563eb!important;background-color:rgb(37 99 235/var(--tw-bg-opacity,1))!important}.bg-gray-100{background-color:#f5f5f5!important;background-color:rgb(245 245 245/var(--tw-bg-opacity,1))!important}.bg-gray-100,.bg-gray-200{--tw-bg-opacity:1!important}.bg-gray-200{background-color:#eee!important;background-color:rgb(238 238 238/var(--tw-bg-opacity,1))!important}.bg-gray-300{background-color:#e0e0e0!important;background-color:rgb(224 224 224/var(--tw-bg-opacity,1))!important}.bg-gray-300,.bg-gray-50{--tw-bg-opacity:1!important}.bg-gray-50{background-color:#fafafa!important;background-color:rgb(250 250 250/var(--tw-bg-opacity,1))!important}.bg-gray-500{background-color:#9e9e9e!important;background-color:rgb(158 158 158/var(--tw-bg-opacity,1))!important}.bg-gray-500,.bg-gray-700{--tw-bg-opacity:1!important}.bg-gray-700{background-color:#616161!important;background-color:rgb(97 97 97/var(--tw-bg-opacity,1))!important}.bg-green-100{background-color:#dcfce7!important;background-color:rgb(220 252 231/var(--tw-bg-opacity,1))!important}.bg-green-100,.bg-green-50{--tw-bg-opacity:1!important}.bg-green-50{background-color:#f0fdf4!important;background-color:rgb(240 253 244/var(--tw-bg-opacity,1))!important}.bg-green-500{--tw-bg-opacity:1!important;background-color:#22c55e!important;background-color:rgb(34 197 94/var(--tw-bg-opacity,1))!important}.bg-green-600{--tw-bg-opacity:1!important;background-color:#16a34a!important;background-color:rgb(22 163 74/var(--tw-bg-opacity,1))!important}.bg-purple-100{--tw-bg-opacity:1!important;background-color:#f3e8ff!important;background-color:rgb(243 232 255/var(--tw-bg-opacity,1))!important}.bg-purple-50{--tw-bg-opacity:1!important;background-color:#faf5ff!important;background-color:rgb(250 245 255/var(--tw-bg-opacity,1))!important}.bg-purple-600{background-color:#9333ea!important;background-color:rgb(147 51 234/var(--tw-bg-opacity,1))!important}.bg-purple-600,.bg-red-100{--tw-bg-opacity:1!important}.bg-red-100{background-color:#fee2e2!important;background-color:rgb(254 226 226/var(--tw-bg-opacity,1))!important}.bg-red-50{background-color:#fef2f2!important;background-color:rgb(254 242 242/var(--tw-bg-opacity,1))!important}.bg-red-50,.bg-red-500{--tw-bg-opacity:1!important}.bg-red-500{background-color:#ef4444!important;background-color:rgb(239 68 68/var(--tw-bg-opacity,1))!important}.bg-white{background-color:#fff!important;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))!important}.bg-white,.bg-yellow-50{--tw-bg-opacity:1!important}.bg-yellow-50{background-color:#fefce8!important;background-color:rgb(254 252 232/var(--tw-bg-opacity,1))!important}.bg-yellow-500{--tw-bg-opacity:1!important;background-color:#eab308!important;background-color:rgb(234 179 8/var(--tw-bg-opacity,1))!important}.bg-opacity-50{--tw-bg-opacity:0.5!important}.bg-opacity-70{--tw-bg-opacity:0.7!important}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))!important}.from-green-500{--tw-gradient-from:#22c55e var(--tw-gradient-from-position)!important;--tw-gradient-to:#22c55e00 var(--tw-gradient-to-position)!important;--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)!important}.from-purple-500{--tw-gradient-from:#a855f7 var(--tw-gradient-from-position)!important;--tw-gradient-to:#a855f700 var(--tw-gradient-to-position)!important;--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)!important}.to-green-600{--tw-gradient-to:#16a34a var(--tw-gradient-to-position)!important}.to-purple-600{--tw-gradient-to:#9333ea var(--tw-gradient-to-position)!important}.p-0\.5{padding:.125rem!important}.p-1{padding:.25rem!important}.p-1\.5{padding:.375rem!important}.p-2{padding:.5rem!important}.p-3{padding:.75rem!important}.p-4{padding:1rem!important}.p-5{padding:1.25rem!important}.px-2{padding-left:.5rem!important;padding-right:.5rem!important}.px-2\.5{padding-left:.625rem!important;padding-right:.625rem!important}.px-3{padding-left:.75rem!important;padding-right:.75rem!important}.px-4{padding-left:1rem!important;padding-right:1rem!important}.px-6{padding-left:1.5rem!important;padding-right:1.5rem!important}.py-0\.5{padding-bottom:.125rem!important;padding-top:.125rem!important}.py-1{padding-bottom:.25rem!important;padding-top:.25rem!important}.py-1\.5{padding-bottom:.375rem!important;padding-top:.375rem!important}.py-12{padding-bottom:3rem!important;padding-top:3rem!important}.py-16{padding-bottom:4rem!important;padding-top:4rem!important}.py-2{padding-bottom:.5rem!important;padding-top:.5rem!important}.py-2\.5{padding-bottom:.625rem!important;padding-top:.625rem!important}.py-3{padding-bottom:.75rem!important;padding-top:.75rem!important}.py-4{padding-bottom:1rem!important;padding-top:1rem!important}.py-8{padding-bottom:2rem!important;padding-top:2rem!important}.pb-2{padding-bottom:.5rem!important}.pb-4{padding-bottom:1rem!important}.pl-2{padding-left:.5rem!important}.pr-16{padding-right:4rem!important}.pr-8{padding-right:2rem!important}.pt-0{padding-top:0!important}.pt-1{padding-top:.25rem!important}.pt-2{padding-top:.5rem!important}.text-left{text-align:left!important}.text-center{text-align:center!important}.text-base{font-size:1rem!important;line-height:1.5rem!important}.text-lg{font-size:1.125rem!important;line-height:1.75rem!important}.text-sm{font-size:.875rem!important;line-height:1.25rem!important}.text-xl{font-size:1.25rem!important;line-height:1.75rem!important}.text-xs{font-size:.75rem!important;line-height:1rem!important}.font-bold{font-weight:700!important}.font-medium{font-weight:500!important}.font-normal{font-weight:400!important}.font-semibold{font-weight:600!important}.italic{font-style:italic!important}.leading-relaxed{line-height:1.625!important}.text-blue-600{--tw-text-opacity:1!important;color:#2563eb!important;color:rgb(37 99 235/var(--tw-text-opacity,1))!important}.text-blue-800{--tw-text-opacity:1!important;color:#1e40af!important;color:rgb(30 64 175/var(--tw-text-opacity,1))!important}.text-gray-300{--tw-text-opacity:1!important;color:#e0e0e0!important;color:rgb(224 224 224/var(--tw-text-opacity,1))!important}.text-gray-400{--tw-text-opacity:1!important;color:#bdbdbd!important;color:rgb(189 189 189/var(--tw-text-opacity,1))!important}.text-gray-500{--tw-text-opacity:1!important;color:#9e9e9e!important;color:rgb(158 158 158/var(--tw-text-opacity,1))!important}.text-gray-600{--tw-text-opacity:1!important;color:#757575!important;color:rgb(117 117 117/var(--tw-text-opacity,1))!important}.text-gray-700{--tw-text-opacity:1!important;color:#616161!important;color:rgb(97 97 97/var(--tw-text-opacity,1))!important}.text-gray-900{--tw-text-opacity:1!important;color:#212121!important;color:rgb(33 33 33/var(--tw-text-opacity,1))!important}.text-green-600{--tw-text-opacity:1!important;color:#16a34a!important;color:rgb(22 163 74/var(--tw-text-opacity,1))!important}.text-green-700{--tw-text-opacity:1!important;color:#15803d!important;color:rgb(21 128 61/var(--tw-text-opacity,1))!important}.text-green-800{--tw-text-opacity:1!important;color:#166534!important;color:rgb(22 101 52/var(--tw-text-opacity,1))!important}.text-purple-100{--tw-text-opacity:1!important;color:#f3e8ff!important;color:rgb(243 232 255/var(--tw-text-opacity,1))!important}.text-purple-200{--tw-text-opacity:1!important;color:#e9d5ff!important;color:rgb(233 213 255/var(--tw-text-opacity,1))!important}.text-purple-600{--tw-text-opacity:1!important;color:#9333ea!important;color:rgb(147 51 234/var(--tw-text-opacity,1))!important}.text-purple-700{--tw-text-opacity:1!important;color:#7e22ce!important;color:rgb(126 34 206/var(--tw-text-opacity,1))!important}.text-purple-800{--tw-text-opacity:1!important;color:#6b21a8!important;color:rgb(107 33 168/var(--tw-text-opacity,1))!important}.text-purple-900{--tw-text-opacity:1!important;color:#581c87!important;color:rgb(88 28 135/var(--tw-text-opacity,1))!important}.text-red-500{color:#ef4444!important;color:rgb(239 68 68/var(--tw-text-opacity,1))!important}.text-red-500,.text-red-600{--tw-text-opacity:1!important}.text-red-600{color:#dc2626!important;color:rgb(220 38 38/var(--tw-text-opacity,1))!important}.text-red-700{color:#b91c1c!important;color:rgb(185 28 28/var(--tw-text-opacity,1))!important}.text-red-700,.text-white{--tw-text-opacity:1!important}.text-white{color:#fff!important;color:rgb(255 255 255/var(--tw-text-opacity,1))!important}.text-yellow-300{--tw-text-opacity:1!important;color:#fde047!important;color:rgb(253 224 71/var(--tw-text-opacity,1))!important}.text-yellow-500{--tw-text-opacity:1!important;color:#eab308!important;color:rgb(234 179 8/var(--tw-text-opacity,1))!important}.text-yellow-600{--tw-text-opacity:1!important;color:#ca8a04!important;color:rgb(202 138 4/var(--tw-text-opacity,1))!important}.text-yellow-700{--tw-text-opacity:1!important;color:#a16207!important;color:rgb(161 98 7/var(--tw-text-opacity,1))!important}.text-yellow-800{--tw-text-opacity:1!important;color:#854d0e!important;color:rgb(133 77 14/var(--tw-text-opacity,1))!important}.line-through{-webkit-text-decoration-line:line-through!important;text-decoration-line:line-through!important}.opacity-50{opacity:.5!important}.shadow-2xl{--tw-shadow:0 25px 50px -12px #00000040!important;--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color)!important}.shadow-2xl,.shadow-lg{box-shadow:0 0 #0000,0 0 #0000,var(--tw-shadow)!important;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)!important}.shadow-lg{--tw-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a!important;--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)!important}.shadow-md{--tw-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a!important;--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)!important}.shadow-md,.shadow-sm{box-shadow:0 0 #0000,0 0 #0000,var(--tw-shadow)!important;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)!important}.shadow-sm{--tw-shadow:0 1px 2px 0 #0000000d!important;--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color)!important}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)!important}.backdrop-blur-sm{--tw-backdrop-blur:blur(4px)!important;-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)!important;backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)!important}.transition{transition-duration:.15s!important;transition-property:color,background-color,border-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-text-decoration-color,-webkit-backdrop-filter!important;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter!important;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-text-decoration-color,-webkit-backdrop-filter!important;transition-timing-function:cubic-bezier(.4,0,.2,1)!important}.transition-all{transition-duration:.15s!important;transition-property:all!important;transition-timing-function:cubic-bezier(.4,0,.2,1)!important}.transition-colors{transition-duration:.15s!important;transition-property:color,background-color,border-color,fill,stroke,-webkit-text-decoration-color!important;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke!important;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,-webkit-text-decoration-color!important;transition-timing-function:cubic-bezier(.4,0,.2,1)!important}.transition-opacity{transition-duration:.15s!important;transition-property:opacity!important;transition-timing-function:cubic-bezier(.4,0,.2,1)!important}.transition-shadow{transition-duration:.15s!important;transition-property:box-shadow!important;transition-timing-function:cubic-bezier(.4,0,.2,1)!important}.transition-transform{transition-duration:.15s!important;transition-property:transform!important;transition-timing-function:cubic-bezier(.4,0,.2,1)!important}.duration-300{transition-duration:.3s!important}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)!important}:root{--color-primary-50:#f8f6fc;--color-primary-100:#e4e0ec;--color-primary-200:#cccad2;--color-primary-300:#8e8a9c;--color-primary-400:#8c60f3;--color-primary-500:#8c60f3;--color-primary-600:#7a4fe0;--color-primary-700:#6840cd;--color-primary-800:#5630ba;--color-primary-900:#353148;--primary-color:#8c60f3;--primary-hover:#7a4fe0;--primary-light:#f8f6fc;--primary-dark:#353148;--color-white:#fff;--color-gray-50:#fafafa;--color-gray-100:#f5f5f5;--color-gray-200:#eee;--color-gray-300:#e0e0e0;--color-gray-400:#bdbdbd;--color-gray-500:#9e9e9e;--color-gray-600:#757575;--color-gray-700:#616161;--color-gray-800:#424242;--color-gray-900:#212121;--color-black:#000;--color-success:#4caf50;--color-warning:#ff9800;--color-error:#f44336;--color-info:#2196f3;--font-family-primary:"PingFang SC","Helvetica Neue","Microsoft YaHei",-apple-system,BlinkMacSystemFont,"Segoe UI","Roboto","Oxygen","Ubuntu","Cantarell","Fira Sans","Droid Sans",sans-serif;--font-family-mono:"SF Mono","Monaco","Cascadia Code",monospace;--font-size-xs:0.75rem;--font-size-sm:0.875rem;--font-size-base:1rem;--font-size-lg:1.125rem;--font-size-xl:1.25rem;--font-size-2xl:1.5rem;--font-size-3xl:1.875rem;--font-size-4xl:2.25rem;--font-size-5xl:3rem;--font-weight-light:300;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--line-height-tight:1.2;--line-height-normal:1.5;--line-height-relaxed:1.75;--spacing-xs:0.25rem;--spacing-sm:0.5rem;--spacing-md:0.75rem;--spacing-lg:1rem;--spacing-xl:1.5rem;--spacing-2xl:2rem;--spacing-3xl:2.5rem;--spacing-4xl:3rem;--spacing-5xl:4rem;--radius-none:0;--radius-sm:0.125rem;--radius-base:0.25rem;--radius-md:0.375rem;--radius-lg:0.5rem;--radius-xl:0.75rem;--radius-2xl:1rem;--radius-full:9999px;--shadow-sm:0 1px 2px 0 #0000000d;--shadow-base:0 1px 3px 0 #0000001a,0 1px 2px 0 #0000000f;--shadow-md:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;--shadow-lg:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d;--shadow-xl:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;--shadow-purple:0 8px 25px -5px #8c60f34d;--transition-fast:150ms;--transition-normal:250ms;--transition-slow:400ms;--transition-slower:600ms;--z-index-dropdown:1000;--z-index-sticky:1020;--z-index-fixed:1030;--z-index-modal-backdrop:1040;--z-index-modal:1050;--z-index-popover:1060;--z-index-tooltip:1070}*{box-sizing:border-box;margin:0;padding:0}html{-webkit-tap-highlight-color:transparent;font-size:16px}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#fff;background-color:var(--color-white);color:#212121;color:var(--color-gray-900);font-family:PingFang SC,Helvetica Neue,Microsoft YaHei,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,sans-serif;font-family:var(--font-family-primary);font-size:1rem;font-size:var(--font-size-base);font-weight:400;font-weight:var(--font-weight-normal);line-height:1.5;line-height:var(--line-height-normal)}h1,h2,h3,h4,h5,h6{color:#353148;color:var(--color-primary-900);font-weight:600;font-weight:var(--font-weight-semibold);line-height:1.2;line-height:var(--line-height-tight);margin:0}h1{font-size:2.25rem;font-size:var(--font-size-4xl)}h2{font-size:1.875rem;font-size:var(--font-size-3xl)}h3{font-size:1.5rem;font-size:var(--font-size-2xl)}h4{font-size:1.25rem;font-size:var(--font-size-xl)}h5{font-size:1.125rem;font-size:var(--font-size-lg)}h6{font-size:1rem;font-size:var(--font-size-base)}p{margin:0 0 1rem;margin:0 0 var(--spacing-lg) 0}a{color:#8c60f3;color:var(--color-primary-500);text-decoration:none;transition:color .15s ease;transition:color var(--transition-fast) ease}a:hover{color:#7a4fe0;color:var(--color-primary-600)}button,input,optgroup,select,textarea{font-size:100%}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.6}.container{margin:0 auto;max-width:1440px;padding:0 1.5rem;padding:0 var(--spacing-xl);width:100%}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.mt-1{margin-top:.5rem;margin-top:var(--spacing-sm)}.mt-2{margin-top:.75rem;margin-top:var(--spacing-md)}.mt-3{margin-top:1rem;margin-top:var(--spacing-lg)}.mt-4{margin-top:1.5rem;margin-top:var(--spacing-xl)}.mb-1{margin-bottom:.5rem;margin-bottom:var(--spacing-sm)}.mb-2{margin-bottom:.75rem;margin-bottom:var(--spacing-md)}.mb-3{margin-bottom:1rem;margin-bottom:var(--spacing-lg)}.mb-4{margin-bottom:1.5rem;margin-bottom:var(--spacing-xl)}.p-1{padding:.5rem;padding:var(--spacing-sm)}.p-2{padding:.75rem;padding:var(--spacing-md)}.p-3{padding:1rem;padding:var(--spacing-lg)}.p-4{padding:1.5rem;padding:var(--spacing-xl)}.loading-container{align-items:center;background:#f8f6fc;background:var(--color-primary-50);display:flex;justify-content:center;min-height:100vh}.loading-spinner{text-align:center}.spinner{animation:spin 1s linear infinite;border:3px solid #e4e0ec;border-top-color:#8c60f3;border:3px solid var(--color-primary-100);border-radius:50%;border-top-color:var(--color-primary-500);height:40px;margin:0 auto 1rem;margin:0 auto var(--spacing-lg);width:40px}@keyframes spin{to{transform:rotate(1turn)}}.error-container{align-items:center;display:flex;flex-direction:column;justify-content:center;min-height:100vh;padding:1.5rem;padding:var(--spacing-xl);text-align:center}.error-container h2{color:#f44336;color:var(--color-error);margin-bottom:1rem;margin-bottom:var(--spacing-lg)}.sr-only{clip:rect(0,0,0,0);border-width:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}:focus-visible{border-radius:.125rem;border-radius:var(--radius-sm);outline:2px solid #8c60f3;outline:2px solid var(--color-primary-500);outline-offset:2px}@media (max-width:640px){html{font-size:14px}}@media (max-width:768px){.container{padding:0 1rem;padding:0 var(--spacing-lg)}}@media (max-width:1024px){.container{padding:0 1.5rem;padding:0 var(--spacing-xl)}}.ant-pagination .ant-pagination-item-active{background-color:#8c60f3!important;border-color:#8c60f3!important}.ant-pagination .ant-pagination-item-active a{color:#fff!important}.ant-pagination .ant-pagination-item-active:hover{background-color:#7a4fe0!important;border-color:#7a4fe0!important}.ant-pagination .ant-pagination-item-active:hover a{color:#fff!important}.last\:border-b-0:last-child{border-bottom-width:0!important}.hover\:bg-blue-50:hover{--tw-bg-opacity:1!important;background-color:#eff6ff!important;background-color:rgb(239 246 255/var(--tw-bg-opacity,1))!important}.hover\:bg-blue-700:hover{--tw-bg-opacity:1!important;background-color:#1d4ed8!important;background-color:rgb(29 78 216/var(--tw-bg-opacity,1))!important}.hover\:bg-gray-100:hover{--tw-bg-opacity:1!important;background-color:#f5f5f5!important;background-color:rgb(245 245 245/var(--tw-bg-opacity,1))!important}.hover\:bg-gray-200:hover{--tw-bg-opacity:1!important;background-color:#eee!important;background-color:rgb(238 238 238/var(--tw-bg-opacity,1))!important}.hover\:bg-gray-300:hover{--tw-bg-opacity:1!important;background-color:#e0e0e0!important;background-color:rgb(224 224 224/var(--tw-bg-opacity,1))!important}.hover\:bg-gray-50:hover{--tw-bg-opacity:1!important;background-color:#fafafa!important;background-color:rgb(250 250 250/var(--tw-bg-opacity,1))!important}.hover\:bg-gray-600:hover{--tw-bg-opacity:1!important;background-color:#757575!important;background-color:rgb(117 117 117/var(--tw-bg-opacity,1))!important}.hover\:bg-green-50:hover{--tw-bg-opacity:1!important;background-color:#f0fdf4!important;background-color:rgb(240 253 244/var(--tw-bg-opacity,1))!important}.hover\:bg-green-700:hover{--tw-bg-opacity:1!important;background-color:#15803d!important;background-color:rgb(21 128 61/var(--tw-bg-opacity,1))!important}.hover\:bg-purple-100:hover{--tw-bg-opacity:1!important;background-color:#f3e8ff!important;background-color:rgb(243 232 255/var(--tw-bg-opacity,1))!important}.hover\:bg-purple-100\/50:hover{background-color:#f3e8ff80!important}.hover\:bg-purple-200:hover{--tw-bg-opacity:1!important;background-color:#e9d5ff!important;background-color:rgb(233 213 255/var(--tw-bg-opacity,1))!important}.hover\:bg-purple-50:hover{--tw-bg-opacity:1!important;background-color:#faf5ff!important;background-color:rgb(250 245 255/var(--tw-bg-opacity,1))!important}.hover\:bg-purple-700:hover{--tw-bg-opacity:1!important;background-color:#7e22ce!important;background-color:rgb(126 34 206/var(--tw-bg-opacity,1))!important}.hover\:bg-red-100:hover{--tw-bg-opacity:1!important;background-color:#fee2e2!important;background-color:rgb(254 226 226/var(--tw-bg-opacity,1))!important}.hover\:bg-red-200:hover{--tw-bg-opacity:1!important;background-color:#fecaca!important;background-color:rgb(254 202 202/var(--tw-bg-opacity,1))!important}.hover\:bg-red-50:hover{--tw-bg-opacity:1!important;background-color:#fef2f2!important;background-color:rgb(254 242 242/var(--tw-bg-opacity,1))!important}.hover\:bg-white\/20:hover{background-color:#fff3!important}.hover\:text-blue-600:hover{--tw-text-opacity:1!important;color:#2563eb!important;color:rgb(37 99 235/var(--tw-text-opacity,1))!important}.hover\:text-green-600:hover{--tw-text-opacity:1!important;color:#16a34a!important;color:rgb(22 163 74/var(--tw-text-opacity,1))!important}.hover\:text-purple-600:hover{--tw-text-opacity:1!important;color:#9333ea!important;color:rgb(147 51 234/var(--tw-text-opacity,1))!important}.hover\:text-purple-700:hover{--tw-text-opacity:1!important;color:#7e22ce!important;color:rgb(126 34 206/var(--tw-text-opacity,1))!important}.hover\:text-red-600:hover{--tw-text-opacity:1!important;color:#dc2626!important;color:rgb(220 38 38/var(--tw-text-opacity,1))!important}.hover\:opacity-80:hover{opacity:.8!important}.hover\:shadow-md:hover{--tw-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a!important;--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)!important;box-shadow:0 0 #0000,0 0 #0000,var(--tw-shadow)!important;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)!important}.focus\:border-purple-500:focus{--tw-border-opacity:1!important;border-color:#a855f7!important;border-color:rgb(168 85 247/var(--tw-border-opacity,1))!important}.focus\:border-transparent:focus{border-color:#0000!important}.focus\:ring-1:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)!important;--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color)!important}.focus\:ring-1:focus,.focus\:ring-2:focus{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),0 0 #0000!important;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)!important}.focus\:ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)!important;--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color)!important}.focus\:ring-purple-500:focus{--tw-ring-opacity:1!important;--tw-ring-color:rgb(168 85 247/var(--tw-ring-opacity,1))!important}.active\:cursor-grabbing:active{cursor:grabbing!important}.active\:bg-blue-800:active{--tw-bg-opacity:1!important;background-color:#1e40af!important;background-color:rgb(30 64 175/var(--tw-bg-opacity,1))!important}.active\:bg-gray-100:active{--tw-bg-opacity:1!important;background-color:#f5f5f5!important;background-color:rgb(245 245 245/var(--tw-bg-opacity,1))!important}.active\:bg-gray-400:active{--tw-bg-opacity:1!important;background-color:#bdbdbd!important;background-color:rgb(189 189 189/var(--tw-bg-opacity,1))!important}.active\:bg-gray-700:active{--tw-bg-opacity:1!important;background-color:#616161!important;background-color:rgb(97 97 97/var(--tw-bg-opacity,1))!important}.active\:bg-green-800:active{--tw-bg-opacity:1!important;background-color:#166534!important;background-color:rgb(22 101 52/var(--tw-bg-opacity,1))!important}.active\:bg-purple-200:active{--tw-bg-opacity:1!important;background-color:#e9d5ff!important;background-color:rgb(233 213 255/var(--tw-bg-opacity,1))!important}.active\:bg-purple-800:active{--tw-bg-opacity:1!important;background-color:#6b21a8!important;background-color:rgb(107 33 168/var(--tw-bg-opacity,1))!important}.active\:bg-red-200:active{--tw-bg-opacity:1!important;background-color:#fecaca!important;background-color:rgb(254 202 202/var(--tw-bg-opacity,1))!important}.active\:bg-red-300:active{--tw-bg-opacity:1!important;background-color:#fca5a5!important;background-color:rgb(252 165 165/var(--tw-bg-opacity,1))!important}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed!important}.disabled\:bg-gray-300:disabled{--tw-bg-opacity:1!important;background-color:#e0e0e0!important;background-color:rgb(224 224 224/var(--tw-bg-opacity,1))!important}.disabled\:bg-gray-400:disabled{--tw-bg-opacity:1!important;background-color:#bdbdbd!important;background-color:rgb(189 189 189/var(--tw-bg-opacity,1))!important}.disabled\:opacity-50:disabled{opacity:.5!important}.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled){background-color:#8c60f3!important;border-color:#8c60f3!important;color:#fff!important}.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):hover{background-color:#7a4fe0!important;border-color:#7a4fe0!important;color:#fff!important}.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):active{background-color:#6840cd!important;border-color:#6840cd!important;color:#fff!important}.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):focus,.ant-radio-group-solid .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled){background-color:#8c60f3!important;border-color:#8c60f3!important;color:#fff!important}.ant-radio-group-solid .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):hover{background-color:#7a4fe0!important;border-color:#7a4fe0!important;color:#fff!important}.ant-radio-group-solid .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):active{background-color:#6840cd!important;border-color:#6840cd!important;color:#fff!important}.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled) span,.ant-radio-group-solid .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled) span{color:#fff!important}.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):before{background-color:initial!important}.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):after{content:none!important}.ant-radio-button-wrapper:not(.ant-radio-button-wrapper-checked):not(.ant-radio-button-wrapper-disabled),.ant-radio-button-wrapper:not(.ant-radio-button-wrapper-checked):not(.ant-radio-button-wrapper-disabled) span{color:#353148!important}body,html{height:100%;width:100%}input::-ms-clear,input::-ms-reveal{display:none}*,:after,:before{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:rgba(0,0,0,0);font-family:sans-serif;line-height:1.15}body{margin:0}[tabindex="-1"]:focus{outline:none}hr{box-sizing:initial;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{font-weight:500;margin-bottom:.5em;margin-top:0}p{margin-bottom:1em;margin-top:0}abbr[data-original-title],abbr[title]{border-bottom:0;cursor:help;-webkit-text-decoration:underline dotted;text-decoration:underline;text-decoration:underline dotted}address{font-style:normal;line-height:inherit;margin-bottom:1em}input[type=number],input[type=password],input[type=text],textarea{-webkit-appearance:none}dl,ol,ul{margin-bottom:1em;margin-top:0}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:500}dd{margin-bottom:.5em;margin-left:0}blockquote{margin:0 0 1em}dfn{font-style:italic}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:initial}sub{bottom:-.25em}sup{top:-.5em}code,kbd,pre,samp{font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace;font-size:1em}pre{margin-bottom:1em;margin-top:0;overflow:auto}figure{margin:0 0 1em}img{border-style:none;vertical-align:middle}[role=button],a,area,button,input:not([type=range]),label,select,summary,textarea{touch-action:manipulation}table{border-collapse:collapse}caption{caption-side:bottom;padding-bottom:.3em;padding-top:.75em;text-align:left}button,input,optgroup,select,textarea{color:inherit;font-family:inherit;font-size:inherit;line-height:inherit;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{border:0;margin:0;min-width:0;padding:0}legend{color:inherit;display:block;font-size:1.5em;line-height:inherit;margin-bottom:.5em;max-width:100%;padding:0;white-space:normal;width:100%}progress{vertical-align:initial}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:none;outline-offset:-2px}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}output{display:inline-block}summary{display:list-item}template{display:none}[hidden]{display:none!important}mark{background-color:#feffe6;padding:.2em}