*{margin:0;padding:0;box-sizing:border-box}:root{--primary: #1890ff;--primary-light: #40a9ff;--primary-bg: #e6f7ff;--success: #52c41a;--danger: #ff4d4f;--warning: #fa8c16;--text: #333;--text-secondary: #666;--text-muted: #999;--border: #e8e8e8;--bg: #f0f2f5;--card-shadow: 0 2px 12px rgba(0,0,0,.06);--card-shadow-hover: 0 6px 20px rgba(0,0,0,.1);--radius: 10px;--radius-lg: 14px;--radius-sm: 6px;--transition: .25s cubic-bezier(.4, 0, .2, 1)}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;font-size:14px;color:var(--text);background:var(--bg)}a{color:var(--primary);text-decoration:none;transition:color var(--transition)}a:hover{color:var(--primary-light)}@keyframes fadeInUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{box-shadow:0 0 #1890ff4d}50%{box-shadow:0 0 0 8px #1890ff00}}@keyframes gradientShift{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}.admin-layout{display:flex;min-height:100vh}.admin-sidebar{width:230px;background:linear-gradient(180deg,#001529,#002140);color:#fff;display:flex;flex-direction:column;flex-shrink:0;box-shadow:2px 0 20px #00000026}.sidebar-header{padding:24px 20px;border-bottom:1px solid rgba(255,255,255,.08)}.sidebar-header h2{font-size:19px;font-weight:700;letter-spacing:.5px}.sidebar-subtitle{font-size:12px;color:#ffffff73;margin-top:4px;display:block}.sidebar-nav{flex:1;overflow-y:auto;padding:12px 0}.nav-group-title{padding:12px 20px;cursor:pointer;display:flex;justify-content:space-between;align-items:center;font-size:13px;color:#ffffffb3;transition:all var(--transition);border-radius:var(--radius-sm);margin:2px 10px}.nav-group-title:hover{background:#ffffff14;color:#fff}.nav-sub{padding-left:8px}.nav-item{display:block;padding:10px 20px 10px 28px;color:#fff9;font-size:13px;transition:all var(--transition);border-radius:var(--radius-sm);margin:2px 10px;position:relative}.nav-item:before{content:"";position:absolute;left:14px;top:50%;transform:translateY(-50%);width:5px;height:5px;border-radius:50%;background:transparent;transition:background var(--transition)}.nav-item:hover{color:#fff;background:#ffffff14}.nav-item:hover:before{background:var(--primary)}.nav-item.active{color:#fff;background:linear-gradient(90deg,var(--primary),#096dd9);box-shadow:0 4px 12px #1890ff4d}.nav-item.active:before{background:#fff}.arrow{transition:transform var(--transition);font-size:10px;opacity:.6}.arrow.open{transform:rotate(-90deg);opacity:1}.sidebar-footer{padding:14px 20px;border-top:1px solid rgba(255,255,255,.08)}.sidebar-footer .btn-text{color:#ffffff73;background:none;border:none;cursor:pointer;font-size:13px;transition:color var(--transition)}.sidebar-footer .btn-text:hover{color:#fff}.admin-main{flex:1;padding:24px;overflow-y:auto;animation:fadeInUp .4s ease}.page-header{margin-bottom:24px}.page-header h1{font-size:22px;font-weight:700;color:#1a1a1a;letter-spacing:-.3px}.page-header p{color:var(--text-muted);font-size:13px;margin-top:4px}.card{background:#fff;border-radius:var(--radius-lg);padding:20px;margin-bottom:18px;box-shadow:var(--card-shadow);transition:box-shadow var(--transition),transform var(--transition)}.card:hover{box-shadow:var(--card-shadow-hover)}.card-title{font-size:16px;font-weight:600;margin-bottom:18px;padding-bottom:14px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:8px}.form-group{margin-bottom:18px}.form-group label{display:block;margin-bottom:6px;font-weight:500;font-size:13px;color:var(--text-secondary)}.form-group .required:after{content:" *";color:var(--danger)}.form-input,.form-select,.form-textarea{width:100%;padding:9px 14px;border:1.5px solid var(--border);border-radius:var(--radius-sm);font-size:14px;transition:all var(--transition);outline:none;background:#fafafa}.form-input:hover,.form-select:hover,.form-textarea:hover{border-color:#b0c4de;background:#fff}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--primary);background:#fff;box-shadow:0 0 0 3px #1890ff1a}.form-textarea{resize:vertical;min-height:80px}.form-row{display:flex;gap:18px}.form-row .form-group{flex:1}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:9px 18px;border:1.5px solid transparent;border-radius:var(--radius-sm);font-size:14px;font-weight:500;cursor:pointer;transition:all var(--transition);background:#fff;color:var(--text);border-color:var(--border);position:relative;overflow:hidden}.btn:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle,rgba(255,255,255,.3) 10%,transparent 70%);opacity:0;transition:opacity .3s}.btn:active:after{opacity:1}.btn:hover{border-color:var(--primary);color:var(--primary);transform:translateY(-1px);box-shadow:0 4px 12px #00000014}.btn:active{transform:translateY(0) scale(.98)}.btn-primary{background:linear-gradient(135deg,var(--primary) 0%,#096dd9 100%);border-color:transparent;color:#fff;box-shadow:0 4px 14px #1890ff4d}.btn-primary:hover{background:linear-gradient(135deg,var(--primary-light) 0%,#1890ff 100%);color:#fff;box-shadow:0 6px 20px #1890ff66}.btn-danger{background:linear-gradient(135deg,var(--danger) 0%,#d9363e 100%);border-color:transparent;color:#fff;box-shadow:0 4px 14px #ff4d4f4d}.btn-danger:hover{background:linear-gradient(135deg,#ff7875 0%,var(--danger) 100%);color:#fff;box-shadow:0 6px 20px #ff4d4f66}.btn-warning{background:linear-gradient(135deg,#faad14,#d48806);border-color:transparent;color:#fff;box-shadow:0 4px 14px #faad144d}.btn-warning:hover{background:linear-gradient(135deg,#ffc53d,#faad14);color:#fff;box-shadow:0 6px 20px #faad1466}.btn-success{background:linear-gradient(135deg,var(--success) 0%,#389e0d 100%);border-color:transparent;color:#fff;box-shadow:0 4px 14px #52c41a4d}.btn-success:hover{background:linear-gradient(135deg,#73d13d 0%,var(--success) 100%);color:#fff;box-shadow:0 6px 20px #52c41a66}.btn-sm{padding:5px 12px;font-size:12px;border-radius:4px}.btn-text{background:none;border:none;color:var(--primary);cursor:pointer;padding:0;font-size:14px;transition:color var(--transition)}.btn-text:hover{color:var(--primary-light)}.btn-group{display:flex;gap:10px}.toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px;flex-wrap:wrap;gap:12px}.toolbar-left,.toolbar-right{display:flex;gap:10px;align-items:center}table{width:100%;border-collapse:separate;border-spacing:0}table th,table td{padding:12px 14px;text-align:left;border-bottom:1px solid var(--border);font-size:13px}table th{background:#f5f7fa;font-weight:600;color:var(--text-secondary);white-space:nowrap;font-size:12px;text-transform:uppercase;letter-spacing:.5px}table th:first-child{border-radius:var(--radius-sm) 0 0 var(--radius-sm)}table th:last-child{border-radius:0 var(--radius-sm) var(--radius-sm) 0}table tbody tr{transition:background var(--transition),transform var(--transition)}table tbody tr:hover{background:#f0f7ff}table tbody tr:hover td{background:transparent}.table-actions{display:flex;gap:8px}.tag{display:inline-flex;align-items:center;padding:3px 10px;border-radius:20px;font-size:12px;font-weight:500;letter-spacing:.2px}.tag-blue{background:var(--primary-bg);color:var(--primary)}.tag-green{background:#f6ffed;color:var(--success)}.tag-red{background:#fff1f0;color:var(--danger)}.tag-orange{background:#fff7e6;color:var(--warning)}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .25s ease}.modal{background:#fff;border-radius:var(--radius-lg) var(--radius-lg);width:90%;max-width:640px;max-height:85vh;overflow-y:auto;box-shadow:0 20px 60px #0003;animation:slideDown .3s cubic-bezier(.34,1.56,.64,1)}.modal-header{padding:18px 24px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center}.modal-header h3{font-size:17px;font-weight:600}.modal-body{padding:24px}.modal-footer{padding:14px 24px;border-top:1px solid var(--border);display:flex;justify-content:flex-end;gap:10px}.modal-close{width:32px;height:32px;border-radius:50%;background:#f5f5f5;border:none;font-size:16px;cursor:pointer;color:var(--text-muted);display:flex;align-items:center;justify-content:center;transition:all var(--transition)}.modal-close:hover{background:#ffeaea;color:var(--danger);transform:rotate(90deg)}.empty-state{text-align:center;padding:50px 24px;color:var(--text-muted)}.empty-state p{margin-top:10px;font-size:14px}.search-bar{display:flex;gap:8px;align-items:center}.search-bar input{width:220px}.checkbox-group{display:flex;flex-wrap:wrap;gap:12px}.checkbox-item{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:13px;padding:6px 12px;border-radius:var(--radius-sm);border:1.5px solid var(--border);transition:all var(--transition)}.checkbox-item:hover{border-color:var(--primary);background:var(--primary-bg)}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px;margin-bottom:24px}.stat-card{background:#fff;border-radius:var(--radius-lg);padding:24px;box-shadow:var(--card-shadow);transition:all var(--transition);position:relative;overflow:hidden}.stat-card:before{content:"";position:absolute;top:0;left:0;width:4px;height:100%;background:linear-gradient(180deg,var(--primary),var(--primary-light));border-radius:4px 0 0 4px}.stat-card:hover{transform:translateY(-3px);box-shadow:var(--card-shadow-hover)}.stat-card:nth-child(2):before{background:linear-gradient(180deg,var(--success),#73d13d)}.stat-card:nth-child(3):before{background:linear-gradient(180deg,var(--warning),#ffc069)}.stat-card:nth-child(4):before{background:linear-gradient(180deg,var(--danger),#ff7875)}.stat-card .stat-value{font-size:32px;font-weight:800;color:var(--primary);line-height:1}.stat-card:nth-child(2) .stat-value{color:var(--success)}.stat-card:nth-child(3) .stat-value{color:var(--warning)}.stat-card:nth-child(4) .stat-value{color:var(--danger)}.stat-card .stat-label{font-size:13px;color:var(--text-muted);margin-top:6px}.message{padding:12px 18px;border-radius:var(--radius-sm);margin-bottom:14px;font-size:13px;display:flex;align-items:center;gap:8px;animation:slideDown .3s ease}.message-success{background:#f6ffed;border:1px solid #b7eb8f;color:var(--success)}.message-error{background:#fff1f0;border:1px solid #ffa39e;color:var(--danger)}.message-info{background:var(--primary-bg);border:1px solid #91d5ff;color:var(--primary)}.radio-group{display:flex;gap:20px}.radio-item{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:13px;padding:6px 14px;border-radius:var(--radius-sm);border:1.5px solid var(--border);transition:all var(--transition)}.radio-item:hover{border-color:var(--primary)}.text-muted{color:var(--text-muted);font-size:12px}.text-right{text-align:right}.text-center{text-align:center}.mt-8{margin-top:8px}.mt-16{margin-top:16px}.mb-16{margin-bottom:16px}.pagination{display:flex;justify-content:center;align-items:center;gap:8px;margin-top:18px}.pagination button{padding:6px 12px;border:1.5px solid var(--border);border-radius:var(--radius-sm);background:#fff;cursor:pointer;font-size:13px;transition:all var(--transition)}.pagination button:hover{border-color:var(--primary);color:var(--primary);box-shadow:0 2px 8px #1890ff26}.pagination button:disabled{color:#d9d9d9;cursor:not-allowed}.pagination .current{color:var(--primary);font-weight:600;padding:4px 10px;background:var(--primary-bg);border-radius:var(--radius-sm)}.login-page{display:flex;align-items:center;justify-content:center;min-height:100vh;background:linear-gradient(135deg,#1a1a2e,#16213e,#0f3460 60%,#533483);background-size:400% 400%;animation:gradientShift 15s ease infinite;position:relative;overflow:hidden}.login-page:before{content:"";position:absolute;width:600px;height:600px;border-radius:50%;background:radial-gradient(circle,rgba(24,144,255,.15) 0%,transparent 70%);top:-200px;right:-200px;animation:float 8s ease-in-out infinite}.login-page:after{content:"";position:absolute;width:400px;height:400px;border-radius:50%;background:radial-gradient(circle,rgba(83,52,131,.12) 0%,transparent 70%);bottom:-100px;left:-100px;animation:float 10s ease-in-out infinite reverse}@keyframes float{0%,to{transform:translate(0)}50%{transform:translate(30px,-30px)}}.login-card{background:#fffffff2;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-radius:20px;padding:44px 40px;width:400px;box-shadow:0 24px 80px #00000040;animation:slideUp .6s cubic-bezier(.34,1.56,.64,1);position:relative;z-index:1;border:1px solid rgba(255,255,255,.2)}.login-card h1{text-align:center;font-size:24px;margin-bottom:6px;font-weight:700;color:#1a1a2e}.login-card .login-subtitle{text-align:center;color:var(--text-muted);font-size:13px;margin-bottom:36px}.login-card .form-input{padding:11px 14px;border-radius:var(--radius-sm);background:#f5f7fa;border:1.5px solid transparent}.login-card .form-input:focus{background:#fff;border-color:var(--primary)}.login-card .btn{width:100%;height:44px;font-size:15px;border-radius:var(--radius-sm)}.qr-display{text-align:center;padding:24px}.qr-display .qr-box{width:200px;height:200px;border:2px dashed var(--border);display:inline-flex;align-items:center;justify-content:center;margin:16px 0;border-radius:var(--radius-lg);color:var(--text-muted);font-size:13px;transition:all var(--transition);background:#fafafa}.question-item{border:1.5px solid var(--border)!important;border-radius:var(--radius)!important;padding:14px 18px!important;margin-bottom:10px;transition:all var(--transition);background:#fff}.question-item:hover{border-color:var(--primary-light)!important;box-shadow:0 4px 14px #0000000f}input[type=checkbox]{accent-color:var(--primary);width:16px;height:16px;cursor:pointer}input[type=radio]{accent-color:var(--primary);cursor:pointer}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#d4d9e0;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#b0b8c4}
