.global-loading-mask{position:fixed;top:0;left:0;right:0;bottom:0;background:#ffffffd9;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;z-index:9999;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.global-loading-content{display:flex;flex-direction:column;align-items:center;gap:16px}.global-loading-message{margin:0;color:#1890ff;font-size:14px;font-weight:500}.login-page{display:flex;height:100vh;width:100vw;overflow:hidden;margin:0;padding:0}.login-brand{flex:1;background:linear-gradient(135deg,#003087,#1e5aa8,#003087);display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;padding:80px 60px}.sports-icons{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}.sports-icons .icon{position:absolute;font-size:80px;opacity:.15;animation:float 20s infinite ease-in-out;text-shadow:0 2px 8px rgba(0,0,0,.1)}.icon-1{top:8%;left:12%;animation-delay:0s}.icon-2{top:55%;left:8%;animation-delay:4s}.icon-3{top:25%;left:78%;animation-delay:8s}.icon-4{top:70%;left:72%;animation-delay:12s}.icon-5{top:40%;left:85%;animation-delay:16s}.icon-6{top:15%;left:45%;animation-delay:20s}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-20px)}}.brand-content{position:relative;z-index:1;text-align:center;color:#fff;max-width:520px}.logo-section{display:flex;align-items:center;justify-content:center;gap:16px;margin-bottom:48px}.logo{width:64px;height:64px;background:#ffffff26;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:2px solid rgba(255,255,255,.3);border-radius:16px;display:flex;align-items:center;justify-content:center;font-size:28px;font-weight:700;letter-spacing:1px;color:#fff}.brand-name{font-size:42px;font-weight:700;color:#fff;margin:0;letter-spacing:2px}.version{font-size:12px;color:#ffffffb3;background:#ffffff1a;padding:4px 12px;border-radius:12px;margin-left:8px}.tagline{font-size:30px;font-weight:600;color:#fff;margin:0 0 16px;letter-spacing:1.5px;line-height:1.4}.description{font-size:14px;color:#ffffffd9;margin:0 0 12px;letter-spacing:1px;text-transform:uppercase;line-height:1.5}.subtitle{font-size:14px;color:#fffffff2;margin:0 0 40px;padding:10px 20px;background:#ffffff1f;border-radius:20px;display:inline-block;letter-spacing:.5px}.features{display:flex;flex-direction:column;gap:14px;text-align:left;margin-top:40px}.feature{display:flex;align-items:flex-start;gap:12px;font-size:15px;color:#fff;line-height:1.6;padding:10px 14px;background:#ffffff0d;border-radius:8px;transition:all .3s}.feature:hover{background:#ffffff1a;transform:translate(4px)}.feature .check{width:22px;height:22px;min-width:22px;border-radius:50%;background:#52c41a4d;border:2px solid rgba(82,196,26,.7);display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;margin-top:1px}.login-form-section{flex:1;background:#fafafa;display:flex;align-items:center;justify-content:center;padding:60px 80px}.form-container{width:100%;max-width:440px}.form-header{margin-bottom:48px;text-align:center}.form-header h2{font-size:32px;font-weight:600;color:#262626;margin:0 0 8px}.form-header p{font-size:14px;color:#8c8c8c;margin:0}.form-container .ant-form-item{margin-bottom:24px}.form-container .ant-form-item-label>label{font-size:14px;font-weight:500;color:#262626;height:32px}.form-container .ant-input-affix-wrapper{height:48px;border-radius:8px;border:1px solid #d9d9d9;background:#fff;transition:all .3s;padding:0 11px;display:flex;align-items:center}.form-container .ant-input{height:48px;border-radius:8px;border:1px solid #d9d9d9;background:#fff;transition:all .3s;padding:4px 11px}.form-container .ant-input-password{height:48px;border-radius:8px;border:1px solid #d9d9d9;background:#fff;transition:all .3s}.form-container .ant-input-password .ant-input{height:100%;padding:0;border:none;background:transparent;box-shadow:none}.form-container .ant-input-prefix{margin-right:8px;display:flex;align-items:center;color:#8c8c8c}.form-container .ant-input-suffix{margin-left:8px;display:flex;align-items:center;color:#8c8c8c}.form-container .ant-input:hover,.form-container .ant-input-affix-wrapper:hover,.form-container .ant-input-password:hover{border-color:#1890ff}.form-container .ant-input:focus,.form-container .ant-input-focused,.form-container .ant-input-affix-wrapper-focused,.form-container .ant-input-password-focused{border-color:#1890ff;box-shadow:0 0 0 2px #1890ff1a}.form-container .ant-input-password-focused .ant-input:focus{border:none;box-shadow:none}.form-container .ant-btn-primary{height:48px;font-size:16px;font-weight:500;border-radius:8px;margin-top:8px}.demo-info{margin-top:24px;padding-top:16px;border-top:1px solid #e8e8e8}.demo-title{display:flex;justify-content:space-between;align-items:center;font-size:12px;color:#262626;font-weight:500;margin-bottom:10px}.toggle-btn{background:none;border:none;color:#1890ff;font-size:11px;cursor:pointer;padding:2px 6px;border-radius:4px;transition:all .3s;display:flex;align-items:center}.toggle-btn:hover{background:#e6f7ff;color:#0050b3}.demo-accounts-wrapper{max-height:110px;overflow-y:auto;transition:max-height .3s ease;scrollbar-width:thin;scrollbar-color:#d9d9d9 #f0f0f0}.demo-accounts-wrapper::-webkit-scrollbar{width:4px}.demo-accounts-wrapper::-webkit-scrollbar-track{background:#f0f0f0;border-radius:2px}.demo-accounts-wrapper::-webkit-scrollbar-thumb{background:#d9d9d9;border-radius:2px}.demo-accounts-wrapper::-webkit-scrollbar-thumb:hover{background:#bfbfbf}.demo-accounts-wrapper.expanded{max-height:240px}.demo-accounts{display:flex;flex-direction:column;gap:6px}.demo-account{background:#fff;padding:10px 12px;border-radius:6px;border:1px solid #e8e8e8;display:flex;flex-direction:column;gap:4px;transition:all .25s cubic-bezier(.4,0,.2,1);cursor:pointer;position:relative;overflow:hidden}.demo-account:after{content:"";position:absolute;top:50%;left:50%;width:5px;height:5px;background:#1890ff4d;border-radius:50%;transform:translate(-50%,-50%) scale(0);transition:transform .4s ease}.demo-account:active:after{transform:translate(-50%,-50%) scale(40);opacity:0}.demo-account:hover{border-color:#1890ff;box-shadow:0 4px 12px #1890ff26;transform:translateY(-2px);background:#fafcff}.demo-account:active{transform:translateY(0);box-shadow:0 2px 6px #1890ff1f}.demo-account.highlight{background:linear-gradient(135deg,#e6f7ff,#d4efff);border-color:#1890ff;border-width:1.5px;box-shadow:0 3px 10px #1890ff26;animation:subtle-pulse 3s ease-in-out infinite}@keyframes subtle-pulse{0%,to{box-shadow:0 3px 10px #1890ff26}50%{box-shadow:0 4px 16px #1890ff40}}.demo-account.highlight:hover{box-shadow:0 5px 18px #1890ff40;animation:none}.demo-account .role{font-size:11px;color:#262626;font-weight:500;display:flex;align-items:center;gap:3px;line-height:1.2}.badge{background:#52c41a;color:#fff;font-size:9px;padding:1px 5px;border-radius:7px;font-weight:600;margin-left:2px}.demo-account .credentials{font-size:12px;color:#1890ff;font-family:Courier New,monospace;font-weight:600;line-height:1.2}.demo-account .permission{font-size:10px;color:#8c8c8c;line-height:1.2}@media (max-width: 1024px){.login-page{flex-direction:column}.login-brand,.login-form-section{flex:none;width:100%;padding:40px 24px}.login-brand{min-height:40vh}}.parent-dashboard{padding:0}.parent-dashboard-loading,.parent-dashboard-empty{display:flex;justify-content:center;align-items:center;min-height:400px}.empty-hint{margin-top:12px;color:#8c8c8c;font-size:14px}.child-info-card{margin-bottom:24px;border-radius:12px;box-shadow:0 2px 8px #0000000f}.child-avatar{width:80px;height:80px;border-radius:50%;background:linear-gradient(135deg,#1890ff,#096dd9);display:flex;align-items:center;justify-content:center;font-size:36px;color:#fff}.child-name{font-size:28px;font-weight:600;color:#262626;margin:0 0 12px;line-height:1.2}.child-details{display:flex;flex-wrap:wrap;gap:16px;font-size:15px;color:#595959}.detail-item strong{color:#262626;margin-right:4px}.performance-summary{margin-bottom:24px}.summary-card{text-align:center;border-radius:12px;border:none;transition:all .3s}.summary-card:hover{transform:translateY(-4px);box-shadow:0 4px 12px #0000001a}.summary-card.excellent{background:linear-gradient(135deg,#fff7e6,#fffbe6);border-left:4px solid #faad14}.summary-card.good{background:linear-gradient(135deg,#e6f7ff,#f0f9ff);border-left:4px solid #1890ff}.summary-card.average{background:linear-gradient(135deg,#f5f5f5,#fafafa);border-left:4px solid #8c8c8c}.summary-card.needs-improvement{background:linear-gradient(135deg,#fff1f0,#fff7f6);border-left:4px solid #ff4d4f}.summary-icon{font-size:36px;margin-bottom:8px}.summary-value{font-size:32px;font-weight:700;color:#262626;line-height:1.2;margin-bottom:4px}.summary-label{font-size:14px;color:#8c8c8c}.recent-tests-card,.trend-card{border-radius:12px;border:none;box-shadow:0 2px 8px #0000000f}.recent-tests-card .ant-card-head-title,.trend-card .ant-card-head-title{font-size:18px;font-weight:600}.test-list{display:flex;flex-direction:column;gap:12px}.test-item{display:flex;justify-content:space-between;align-items:center;padding:16px;background:#fafafa;border-radius:8px;transition:all .2s}.test-item:hover{background:#f0f0f0;transform:translate(4px)}.test-info{flex:1}.test-name{font-size:16px;font-weight:500;color:#262626;margin-bottom:4px}.test-date{font-size:13px;color:#8c8c8c}.test-result{display:flex;align-items:center;gap:12px}.test-value{font-size:18px;font-weight:600;color:#1890ff}.test-grade{min-width:60px;text-align:center}.trend-content{padding:8px 0}.trend-hint{font-size:14px;color:#8c8c8c;margin-bottom:16px}.trend-insights{display:flex;flex-direction:column;gap:12px}.insight-item{display:flex;align-items:center;gap:12px;padding:12px 16px;border-radius:8px;font-size:15px;line-height:1.5}.insight-item.positive{background:#f6ffed;border-left:3px solid #52c41a;color:#389e0d}.insight-item.attention{background:#fffbe6;border-left:3px solid #faad14;color:#d46b08}.insight-item.neutral{background:#e6f7ff;border-left:3px solid #1890ff;color:#0050b3}.insight-icon{font-size:20px;flex-shrink:0}.help-content h4{font-size:16px;font-weight:600;color:#262626;margin-bottom:8px}.help-content ul{padding-left:20px;margin-bottom:12px}.help-content li{font-size:14px;color:#595959;line-height:2}@media (max-width: 768px){.child-name{font-size:24px}.child-details{font-size:14px;gap:12px}.summary-icon{font-size:28px}.summary-value{font-size:26px}.test-item{flex-direction:column;align-items:flex-start;gap:8px}.test-result{width:100%;justify-content:space-between}}.dashboard-container{padding:20px;background:#f0f2f5;min-height:calc(100vh - 64px)}.dashboard-container h2{margin-bottom:20px;color:#333;font-size:24px;font-weight:500}.overview-tab{padding:20px}.ant-statistic-title{font-size:14px;color:#666}.ant-statistic-content{font-size:28px;font-weight:600}.ant-card{border-radius:8px;box-shadow:0 2px 8px #0000000f}.ant-card-head{border-bottom:1px solid #f0f0f0}.ant-card-head-title{font-size:16px;font-weight:500;color:#333}.ant-tabs-card>.ant-tabs-nav .ant-tabs-tab{border-radius:8px 8px 0 0;border:1px solid #f0f0f0;background:#fafafa;transition:all .3s}.ant-tabs-card>.ant-tabs-nav .ant-tabs-tab-active{background:#fff;border-bottom-color:#fff}@media (max-width: 768px){.dashboard-container{padding:10px}.dashboard-container h2{font-size:20px}.ant-statistic-content{font-size:24px}}.main-layout{min-height:100vh;width:100vw;margin:0;padding:0}.main-sider{background:#001529}.main-sider .ant-layout-sider-trigger{background:#002140}.logo-container{height:64px;display:flex;align-items:center;justify-content:center;gap:12px;padding:0 24px;background:#ffffff0d;border-bottom:1px solid rgba(255,255,255,.08)}.logo-icon{width:40px;height:40px;background:linear-gradient(135deg,#1890ff,#096dd9);border-radius:10px;display:flex;align-items:center;justify-content:center;color:#fff;font-size:18px;font-weight:700;letter-spacing:1px;flex-shrink:0}.logo-text{font-size:20px;font-weight:600;color:#fff;letter-spacing:.5px}.main-menu{border-right:none;background:transparent}.main-menu .ant-menu-item{height:48px;line-height:48px;margin:4px 8px;border-radius:6px}.main-menu .ant-menu-item-selected{background:#1890ff!important}.main-menu .ant-menu-item:hover:not(.ant-menu-item-selected){background:#ffffff14!important}.main-menu .ant-menu-item .anticon{font-size:16px}.main-menu .ant-menu-submenu-title{height:48px;line-height:48px;margin:4px 8px;border-radius:6px}.main-menu .ant-menu-submenu-title:hover{background:#ffffff14!important}.main-menu .ant-menu-submenu-title .anticon{font-size:16px}.main-menu .ant-menu-item,.main-menu .ant-menu-submenu-title{padding-left:24px!important;padding-right:16px!important}.main-menu .ant-menu-submenu-arrow{right:16px}.main-header{background:#fff;padding:0 32px;height:64px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #f0f0f0;position:relative;z-index:10;margin:0}.header-left{display:flex;flex-direction:column;justify-content:center;gap:4px}.header-title{font-size:18px;font-weight:600;color:#262626;margin:0;line-height:1.2}.header-breadcrumb{font-size:12px;line-height:1}.header-breadcrumb .ant-breadcrumb-separator{margin:0 6px;color:#bfbfbf}.header-breadcrumb li{color:#8c8c8c}.header-breadcrumb li:last-child{color:#1890ff;font-weight:500}.header-right{display:flex;align-items:center;gap:16px}.help-button{width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:50%;cursor:pointer;color:#8c8c8c;transition:all .3s}.help-button:hover{background:#e6f7ff;color:#1890ff}.user-info{display:flex;align-items:center;gap:12px;cursor:pointer;padding:6px 12px;border-radius:6px;transition:background .2s}.user-info:hover{background:#fafafa}.user-avatar{background:#1890ff;flex-shrink:0}.user-details{display:flex;flex-direction:column;gap:2px}.user-name{font-size:14px;font-weight:500;color:#262626;line-height:1.2}.user-role{font-size:12px;color:#8c8c8c;line-height:1.2}.main-content{margin:0;padding:24px;background:#f5f5f5;min-height:calc(100vh - 64px)}.content-wrapper{background:#fff;padding:24px;border-radius:8px;border:1px solid #f0f0f0;min-height:calc(100vh - 112px)}.ant-layout{background:transparent}.ant-layout-content{margin:0}@media (max-width: 1280px){.main-header{padding:0 16px}.header-title{font-size:16px}.main-content,.content-wrapper{padding:16px}}.student-list-container{padding:24px;background:#f5f5f5;min-height:100vh}.filter-bar{background:#fff;padding:20px;border-radius:8px;margin-bottom:16px;box-shadow:0 1px 2px #00000008}.table-container{background:#fff;padding:20px;border-radius:8px;box-shadow:0 1px 2px #00000008}.ant-table{font-size:14px}.ant-table-tbody>tr:hover>td{background:#f5f9ff}@media (max-width: 768px){.student-list-container,.filter-bar{padding:16px}.filter-bar .ant-space,.filter-bar .ant-space-item{width:100%}.filter-bar .ant-select,.filter-bar .ant-input-search{width:100%!important}}.training-plan-card{transition:all .3s ease}.training-plan-card:hover{box-shadow:0 4px 12px #0000001a}.training-plan-card .ant-card-head{background:#fffbf0;border-bottom:1px solid #ffd591}.training-plan-card .ant-card-body{padding:20px}.score-comparison{background:linear-gradient(to right,#fff1f0,#fff,#f6ffed);padding:16px;border-radius:8px}.recommendations-tab{padding:0}.recommendations-tab .ant-alert{border-radius:4px}.recommendations-tab h3{color:#262626;margin-bottom:16px}.student-detail-container{padding:24px;background:#f5f5f5;min-height:100vh}.page-header h2{font-size:24px;font-weight:600;color:#1a1a1a;margin:0;flex:1}.info-card{height:100%;box-shadow:0 1px 2px #00000008}.chart-card,.table-card{box-shadow:0 1px 2px #00000008}.ant-descriptions-bordered .ant-descriptions-item-label{background:#fafafa;font-weight:500;width:120px}.ant-descriptions-bordered .ant-descriptions-item-content{background:#fff}@media (max-width: 768px){.student-detail-container{padding:16px}.page-header{flex-wrap:wrap}.page-header h2{width:100%;margin:12px 0}}.student-form-container{padding:24px;background:#f5f5f5;min-height:100vh}.page-header{display:flex;align-items:center;margin-bottom:24px}.page-header h2{font-size:24px;font-weight:600;color:#1a1a1a;margin:0}.form-card{max-width:800px;margin:0 auto;box-shadow:0 1px 2px #00000008}.ant-form-item-label>label{font-weight:500}@media (max-width: 768px){.student-form-container{padding:16px}.form-card{max-width:100%}}.situp-test-container{padding:24px;min-height:calc(100vh - 64px);background:#f0f2f5}.situp-test-container .ant-card{box-shadow:0 2px 8px #0000001a}.video-container{position:relative;width:100%;aspect-ratio:4 / 3;background:#000;border-radius:8px;overflow:hidden;margin-bottom:16px}.video-element{width:100%;height:100%;object-fit:cover}.canvas-element{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:contain}.video-loading{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center;color:#fff}.video-loading p{margin-top:16px;font-size:16px}.control-buttons{display:flex;justify-content:center;padding:16px 0}.control-buttons .ant-btn{min-width:120px}.state-indicator{display:flex;align-items:center;justify-content:space-between;font-size:16px}.state-label{color:#666;font-weight:500}.state-value{font-size:24px;font-weight:700;padding:4px 16px;border-radius:4px}.state-value.state-down{color:#52c41a;background:#f6ffed;border:1px solid #b7eb8f}.state-value.state-up{color:#1890ff;background:#e6f7ff;border:1px solid #91d5ff}.situp-test-container .ant-statistic-title{font-size:14px;color:#8c8c8c;margin-bottom:8px}@media (max-width: 1200px){.situp-test-container .ant-col-16,.situp-test-container .ant-col-8{flex:0 0 100%;max-width:100%}.video-container{margin-bottom:24px}}.situp-test-container .ant-progress{margin-top:8px}.situp-test-container .ant-alert{border-radius:8px}.situp-test-container .ant-alert ul{font-size:13px;line-height:1.8}.video-upload-container{padding:24px;background:#f0f2f5;min-height:calc(100vh - 64px)}.ant-upload-drag{border:2px dashed #d9d9d9;border-radius:8px;background:#fafafa;transition:all .3s}.ant-upload-drag:hover{border-color:#1890ff;background:#e6f7ff}.ant-upload-drag-icon{font-size:48px;color:#1890ff}.video-upload-container .ant-card{border-radius:8px;box-shadow:0 2px 8px #00000014}.video-upload-container .ant-table{background:#fff}.video-upload-container .ant-btn-primary{background:#1890ff;border-color:#1890ff}.video-upload-container .ant-btn-primary:hover{background:#40a9ff;border-color:#40a9ff}.test-management-page{padding:0 24px 24px}.page-header{margin-bottom:32px}.page-header h2{margin-bottom:8px;font-size:28px;font-weight:600}.test-project-card{height:100%;border-radius:12px;box-shadow:0 2px 8px #0000000f;transition:all .3s ease}.test-project-card:hover{box-shadow:0 4px 16px #0000001f;transform:translateY(-4px)}.card-header{display:flex;align-items:center;margin-bottom:16px;gap:16px}.project-icon{width:56px;height:56px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:28px;color:#fff;flex-shrink:0}.project-info{flex:1;min-width:0}.card-meta{margin-bottom:8px}.test-methods{margin-bottom:16px;padding-top:16px;border-top:1px solid #f0f0f0}.card-footer{padding-top:12px;border-top:1px solid #f0f0f0}@media (max-width: 768px){.test-management-page{padding:0 16px 16px}.page-header h2{font-size:24px}.project-icon{width:48px;height:48px;font-size:24px}}.report-generation{padding:24px}.page-header{margin-bottom:24px}.page-header h2{font-size:24px;font-weight:600;color:#1a1a1a;margin:0 0 8px}.page-header p{color:#666;margin:0;font-size:14px}@media (max-width: 768px){.report-generation{padding:16px}.page-header h2{font-size:20px}}.user-management-page{padding:0}.page-header{margin:0}.page-header h2{font-size:24px;font-weight:600;color:#262626;margin:0 0 4px}.page-description{font-size:14px;color:#8c8c8c;margin:0}.filter-bar{margin-bottom:24px;padding:16px;background:#fafafa;border-radius:8px}.ant-table{background:#fff}.ant-table-thead>tr>th{background:#fafafa;font-weight:600;color:#262626}.ant-table-tbody>tr:hover>td{background:#f0f2f5}.App{text-align:center}.App h1{font-size:3rem;margin-bottom:1rem}.App p{font-size:1.2rem;margin:.5rem 0}*{margin:0;padding:0;box-sizing:border-box}html,body,#root{margin:0;padding:0;width:100%;height:100%;overflow-x:hidden}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}
