*{margin:0;padding:0;box-sizing:border-box}html,body{width:100%;height:100%;font-family:Microsoft YaHei,微软雅黑,-apple-system,BlinkMacSystemFont,sans-serif;background:linear-gradient(135deg,#ffecd2,#fcb69f,#ffcde6 60%,#fddce6);background-attachment:fixed;color:#333;font-size:14px}#app{width:100%;min-height:100vh;position:relative}#app:before{content:"";position:fixed;top:-300px;left:-300px;width:600px;height:600px;background:radial-gradient(circle,#ffb6c166,#ffb6c100 70%);border-radius:50%;z-index:-1}#app:after{content:"";position:fixed;bottom:-200px;right:-200px;width:400px;height:400px;background:radial-gradient(circle,#ff8caa4d,#ff8caa00 70%);border-radius:50%;z-index:-1}button{cursor:pointer;border:none;font-family:inherit}.btn{height:40px;padding:0 20px;border-radius:14px;font-size:14px;font-weight:500;transition:all .3s ease;display:inline-flex;align-items:center;justify-content:center;gap:6px}.btn-primary{background:linear-gradient(90deg,#ff9bbb,#ff7bac);color:#fff;box-shadow:0 4px 12px #ff82a04d}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 6px 16px #ff82a066}.btn-success{background:linear-gradient(90deg,#66f090,#4dd670);color:#fff;box-shadow:0 4px 12px #4dd6704d}.btn-success:hover{transform:translateY(-2px);box-shadow:0 6px 16px #4dd67066}.btn-warning{background:linear-gradient(90deg,#ffb942,#ff9f43);color:#fff;box-shadow:0 4px 12px #ff9f434d}.btn-warning:hover{transform:translateY(-2px);box-shadow:0 6px 16px #ff9f4366}.btn-danger{background:linear-gradient(90deg,#ff6b9b,#ff4470);color:#fff;box-shadow:0 4px 12px #ff44704d}.btn-danger:hover{transform:translateY(-2px);box-shadow:0 6px 16px #ff447066}.btn-large{height:48px;padding:0 24px;font-size:16px;border-radius:16px;margin-top:10px}.btn-block{width:100%}input,select,textarea{font-family:inherit;font-size:14px}input,select{height:48px;padding:0 20px;border:2px solid #ffd1e0;border-radius:16px;background:#fff;color:#666;outline:none;transition:.3s ease;box-shadow:inset 0 2px 5px #ffb6c11a}input:focus,select:focus{border-color:#ff7bac;box-shadow:0 0 12px #ff8caa66,inset 0 2px 5px #ffb6c11a}input::placeholder{color:#aaa}textarea{padding:15px 20px;border:2px solid #ffd1e0;border-radius:16px;background:#fff;color:#666;outline:none;resize:vertical;min-height:100px;transition:.3s ease}textarea:focus{border-color:#ff7bac;box-shadow:0 0 12px #ff8caa66}.form-group{margin-bottom:18px}.form-row{display:flex;gap:15px;margin-bottom:18px}.form-row>*{flex:1}.form-row .half{flex:1;min-width:180px}.card{background:#fffffff5;padding:30px;border-radius:24px;margin-bottom:25px;box-shadow:0 8px 25px #ffa0be40,0 2px 8px #00000008;border:2px solid #ffd6e0;transition:all .4s ease;position:relative;overflow:hidden}.card:hover{box-shadow:0 12px 35px #ffa0be59;transform:translateY(-3px)}.card:before{content:"";position:absolute;top:0;right:0;width:80px;height:80px;background:linear-gradient(135deg,rgba(255,182,193,.2) 0%,transparent 70%);border-radius:0 24px 0 0;z-index:0}.card>*{position:relative;z-index:1}.card-title{font-size:18px;font-weight:700;color:#ff6b9b;margin-bottom:20px;text-shadow:1px 1px 3px rgba(255,180,200,.4);padding-left:12px;position:relative}.card-title:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:4px;height:20px;background:linear-gradient(#ff9bbb,#ff7bac);border-radius:2px}.table-wrapper{overflow-x:auto;border-radius:16px;box-shadow:0 4px 15px #ffb6c11a}table{width:100%;border-collapse:collapse;font-size:14px;background:#fff}th{background:linear-gradient(90deg,#ffd1e0,#ffc6d9);color:#ff6b9b;font-weight:700;padding:14px;text-align:left;white-space:nowrap}th,td{border:1px solid #ffe0e9;padding:14px;text-align:left;transition:all .2s ease}tr:hover td{background:#fff0f580}.avatar{width:48px;height:48px;border-radius:50%;object-fit:cover;border:3px solid #ffb6c1;box-shadow:0 4px 8px #ff8caa4d;transition:all .3s ease}.avatar:hover{transform:scale(1.15);box-shadow:0 6px 12px #ff8caa66}.avatar-lg{width:160px;height:160px;border-radius:50%;object-fit:cover;border:5px solid #ffb6c1;box-shadow:0 8px 20px #ff8caa66,0 0 30px #ffb6c14d;transition:all .4s ease}.avatar-lg:hover{transform:scale(1.08) rotate(3deg);box-shadow:0 12px 30px #ff8caa80,0 0 40px #ffb6c166}.modal-mask{position:fixed;top:0;left:0;width:100vw;height:100vh;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:999}.modal-box{width:500px;max-width:90vw;max-height:90vh;overflow-y:auto;background:#fff;border-radius:20px;padding:30px;box-shadow:0 10px 30px #0003;border:2px solid #ffb6c1}.stat-cards{display:flex;gap:20px;margin-bottom:25px;flex-wrap:wrap}.stat-card{flex:1;min-width:200px;padding:20px;border-radius:18px;background:linear-gradient(180deg,#fff5f8,#fff0f5);border:2px solid #ffd1e0;box-shadow:0 4px 12px #ffb6c133;transition:all .3s ease}.stat-card:hover{transform:translateY(-4px);box-shadow:0 6px 16px #ffb6c14d}.stat-card-title{font-size:14px;color:#ff7bac;margin-bottom:10px}.stat-card-num{font-size:28px;font-weight:700;color:#ff6b9b;font-family:Arial,sans-serif}.stat-card-desc{font-size:12px;color:#999;margin-top:8px}.stat-card-rank{font-size:15px;color:#333}.rank-red{color:#ff5252;font-weight:700}.status-tag{display:inline-block;padding:4px 12px;border-radius:20px;font-size:12px;font-weight:500}.status-success{background:#e8f5e9;color:#4caf50}.status-warning{background:#fff3e0;color:#ff9800}.status-danger{background:#ffebee;color:#f44336}.status-info{background:#e3f2fd;color:#2196f3}.loading{text-align:center;padding:40px;color:#ff6b9b}.loading:after{content:"";display:inline-block;width:20px;height:20px;border:3px solid #ffd1e0;border-top-color:#ff6b9b;border-radius:50%;animation:spin 1s linear infinite;margin-left:10px;vertical-align:middle}@keyframes spin{to{transform:rotate(360deg)}}.empty-state{text-align:center;padding:50px;color:#999}.num-format{font-family:Arial,sans-serif}.text-center{text-align:center}.text-right{text-align:right}.text-muted{color:#999}.text-danger{color:#ff5252}.text-success{color:#4dd670}.text-warning{color:#ff9f43}.mt-10{margin-top:10px}.mt-20{margin-top:20px}.mb-10{margin-bottom:10px}.mb-20{margin-bottom:20px}.content::-webkit-scrollbar,.modal-box::-webkit-scrollbar{width:6px}.content::-webkit-scrollbar-thumb,.modal-box::-webkit-scrollbar-thumb{background:#ffb6c1;border-radius:3px}.content::-webkit-scrollbar-track{background:transparent}@media (max-width: 768px){.card{padding:20px}.form-row{flex-direction:column;gap:0}.stat-cards{flex-direction:column}th,td{padding:10px;font-size:12px}}
