*{box-sizing:border-box;margin:0;padding:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f5f5f5;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Helvetica Neue,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}#root{min-height:100vh}.search-form{padding:0}.search-form .ant-form-item{margin-bottom:16px}.search-form .ant-form-item-label>label{color:#333;font-weight:600}.search-form .ant-input,.search-form .ant-select-selector{border:1px solid #d9d9d9;border-radius:6px;transition:all .3s ease}.search-form .ant-input:hover,.search-form .ant-select-selector:hover{border-color:#40a9ff}.search-form .ant-input:focus,.search-form .ant-select-focused .ant-select-selector{border-color:#1890ff;box-shadow:0 0 0 2px #1890ff33}.search-form .ant-btn{border-radius:6px;font-weight:500;height:40px}.search-form .ant-btn-primary{background:linear-gradient(135deg,#667eea,#764ba2);border:none;box-shadow:0 4px 12px #667eea4d}.search-form .ant-btn-primary:hover{background:linear-gradient(135deg,#5a6fd8,#6a4190);box-shadow:0 6px 16px #667eea66;transform:translateY(-1px)}.search-form .ant-btn-default{border-color:#d9d9d9;color:#666}.search-form .ant-btn-default:hover{border-color:#40a9ff;color:#40a9ff}@media (max-width:768px){.search-form .ant-form-item{margin-bottom:12px}.search-form .ant-btn{font-size:14px;height:36px}}.result-list{min-height:400px}.result-placeholder{align-items:center;display:flex;justify-content:center;min-height:300px}.result-header{background:#f8f9fa;border-left:4px solid #1890ff;border-radius:6px;margin-bottom:16px;padding:12px 16px}.result-count{color:#666;font-size:14px}.result-count strong{color:#1890ff;font-size:16px}.certificate-item{border:1px solid #f0f0f0;border-radius:8px;margin-bottom:8px;transition:all .3s ease}.certificate-item:hover{border-color:#1890ff;box-shadow:0 4px 12px #1890ff26;transform:translateY(-2px)}.certificate-header{margin-bottom:12px}.certificate-info{align-items:flex-start;display:flex;justify-content:space-between}.certificate-title{align-items:center;display:flex;flex:1 1;gap:12px}.certificate-avatar{flex-shrink:0}.title-content{flex:1 1}.person-name{color:#333;font-size:16px;font-weight:600;margin:0 0 4px}.certificate-no{color:#666;font-size:13px}.certificate-no .anticon{margin-right:4px}.certificate-status{flex-shrink:0}.certificate-details{display:flex;flex-direction:column;gap:8px}.detail-row{align-items:center;display:flex;font-size:14px;gap:8px}.detail-label{color:#666;flex-shrink:0;font-weight:500;min-width:80px}.detail-value{color:#333;flex:1 1}.detail-value .anticon{color:#1890ff;margin-right:4px}.result-list .ant-list-pagination{margin-top:24px;text-align:center}.result-list .ant-pagination-total-text{color:#666}@media (max-width:768px){.certificate-info{flex-direction:column;gap:12px}.certificate-title{gap:8px}.person-name{font-size:15px}.certificate-no{font-size:12px}.detail-row{align-items:flex-start;flex-direction:column;gap:4px}.detail-label{font-size:13px;min-width:auto}.detail-value{font-size:13px;padding-left:12px}.result-header{padding:8px 12px}.result-count{font-size:13px}.result-count strong{font-size:15px}}@media (max-width:480px){.certificate-item{margin-bottom:12px}.certificate-avatar{height:32px!important;width:32px!important}.person-name{font-size:14px}.certificate-no{font-size:11px}.detail-label,.detail-value{font-size:12px}}.loading-container{align-items:center;display:flex;justify-content:center;min-height:200px;width:100%}.loading-container .ant-spin{color:#667eea}.loading-container .ant-spin-text{color:#666;font-size:14px;margin-top:12px}.certificate-query{min-height:100vh;padding:20px}.result-card,.search-card{border:none;border-radius:12px;box-shadow:0 4px 20px #0000001a}.result-card .ant-card-head,.search-card .ant-card-head{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:12px 12px 0 0}.result-card .ant-card-head-title,.search-card .ant-card-head-title{color:#fff;font-weight:600}.result-card .ant-card-body,.search-card .ant-card-body{padding:24px}@media (max-width:768px){.certificate-query{padding:10px}.page-title{font-size:2rem}.result-card .ant-card-body,.search-card .ant-card-body{padding:16px}}.training-certificate-card{display:flex;flex-direction:column;gap:24px}.qualification-info-card,.student-info-card{border:none;border-radius:12px;box-shadow:0 4px 20px #0000001a;overflow:hidden}.qualification-info-card .ant-card-head,.student-info-card .ant-card-head{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:12px 12px 0 0}.qualification-info-card .ant-card-head-title,.student-info-card .ant-card-head-title{color:#fff;font-weight:600}.card-title{align-items:center;display:flex;justify-content:space-between;width:100%}.title-icon{color:#fff;font-size:1.2em;margin-right:8px}.status-badge{margin-left:auto}.student-avatar{align-items:center;display:flex;flex-direction:column;gap:12px}.student-avatar .ant-avatar{border:4px solid #f0f0f0;box-shadow:0 4px 12px #0000001a;transition:all .3s ease}.student-avatar .ant-avatar:hover{box-shadow:0 6px 20px #00000026;transform:scale(1.05)}.avatar-name{color:#333;font-size:1.1em;font-weight:600;text-align:center}.certificate-no{background:#f0f2ff;border-radius:4px;color:#667eea;font-family:Courier New,monospace;font-size:.95em;font-weight:600;padding:4px 8px}.certificate-photo{display:flex;flex-direction:column;gap:12px}.photo-label{color:#333;font-size:1em;font-weight:600;text-align:center}.certificate-photo .ant-image{border-radius:8px;box-shadow:0 4px 12px #0000001a;overflow:hidden}.photo-placeholder{align-items:center;background:#f5f5f5;color:#999;display:flex;flex-direction:column;font-size:2em;height:200px;justify-content:center}.photo-placeholder div{font-size:.5em;margin-top:8px}.photo-mask{align-items:center;color:#fff;display:flex;flex-direction:column;font-size:1.2em;justify-content:center}.photo-mask div{font-size:.8em;margin-top:4px}.training-certificate-card .ant-descriptions-item-label{color:#666;font-weight:600;min-width:100px}.training-certificate-card .ant-descriptions-item-content{color:#333}.training-certificate-card .ant-tag{border-radius:6px;font-weight:500}.training-certificate-card .ant-badge{font-weight:600}@media (max-width:768px){.training-certificate-card{gap:16px}.student-avatar .ant-avatar{height:80px!important;width:80px!important}.avatar-name{font-size:1em}.certificate-photo{margin-top:16px}.training-certificate-card .ant-descriptions-item-label{font-size:13px;min-width:80px}.training-certificate-card .ant-descriptions-item-content{font-size:14px}.certificate-no{font-size:.85em;padding:2px 6px}}@media (max-width:480px){.student-avatar .ant-avatar{height:60px!important;width:60px!important}.avatar-name{font-size:.9em}.training-certificate-card .ant-descriptions-item-label{font-size:12px;min-width:70px}.training-certificate-card .ant-descriptions-item-content{font-size:13px}.photo-placeholder{font-size:1.5em;height:150px}}@media print{.training-certificate-card{background:#fff;color:#000}.qualification-info-card .ant-card-head,.student-info-card .ant-card-head{background:#f0f0f0!important;color:#000!important}.title-icon{color:#000!important}.certificate-photo .ant-image{box-shadow:none}}.certificate-search{background:#fff;min-height:100vh;padding:20px}.certificate-search .container{margin:0 auto;max-width:1200px}.certificate-search .page-header{margin-bottom:40px;text-align:center}.certificate-search .page-title{align-items:center;color:#333;display:flex;font-size:2.5rem;font-weight:600;gap:12px;justify-content:center;margin-bottom:10px}.certificate-search .title-icon{font-size:2.2rem}.certificate-search .page-subtitle{color:#666;font-size:1.1rem;font-weight:500}.search-result-card{border:none;border-radius:12px;box-shadow:0 8px 32px #00000026;overflow:hidden}.search-results{display:flex;flex-direction:column;gap:24px}.action-buttons{background:#fff;border-radius:12px;box-shadow:0 4px 20px #0000001a;display:flex;gap:16px;justify-content:center;padding:20px}.action-buttons .ant-btn{border-radius:8px;font-weight:600;height:40px;min-width:120px}.action-buttons .ant-btn-primary{background:linear-gradient(135deg,#667eea,#764ba2);border:none}.action-buttons .ant-btn-primary:hover{background:linear-gradient(135deg,#5a6fd8,#6a4190);box-shadow:0 4px 12px #667eea4d;transform:translateY(-1px)}.action-buttons .ant-btn-default:hover{border-color:#667eea;color:#667eea;transform:translateY(-1px)}@media (max-width:768px){.certificate-search{padding:10px}.certificate-search .page-title{flex-direction:column;font-size:2rem;gap:8px}.certificate-search .title-icon{font-size:1.8rem}.certificate-search .page-subtitle{font-size:1rem}.action-buttons{flex-direction:column;gap:12px}.action-buttons .ant-btn{width:100%}}@media (max-width:480px){.certificate-search .page-title{font-size:1.6rem}.certificate-search .title-icon{font-size:1.5rem}.certificate-search .page-subtitle{font-size:.9rem}}.App{background:linear-gradient(135deg,#667eea,#764ba2);min-height:100vh;padding:20px}.container{margin:0 auto;max-width:1200px}.page-header{margin-bottom:40px;text-align:center}.page-title{color:#fff;font-size:2.5rem;font-weight:600;margin-bottom:10px;text-shadow:0 2px 4px #0000004d}.page-subtitle{color:#fffc;font-size:1.1rem}