.fade-enter-active,.fade-leave-active{transition:opacity .2s}.fade-enter-from,.fade-leave-to{opacity:0}.site-footer{background:var(--bg-secondary, #f8f9fa);border-top:1px solid var(--border, #e5e7eb);padding:24px 0;text-align:center;margin-top:auto}.footer-content p{margin:4px 0;color:var(--text-secondary, #6b7280);font-size:13px;line-height:1.6}.footer-note{font-size:12px!important;opacity:.75}:root{--primary: #6366f1;--primary-dark: #4f46e5;--primary-light: #818cf8;--primary-bg: #eef2ff;--success: #10b981;--success-light: #d1fae5;--danger: #ef4444;--danger-light: #fee2e2;--warning: #f59e0b;--warning-light: #fef3c7;--info: #3b82f6;--info-light: #dbeafe;--bg: #f8fafc;--bg-card: #ffffff;--bg-hover: #f1f5f9;--text: #1e293b;--text-secondary: #64748b;--text-muted: #94a3b8;--border: #e2e8f0;--border-light: #f1f5f9;--shadow-sm: 0 1px 2px rgba(0,0,0,.05);--shadow: 0 1px 3px rgba(0,0,0,.1), 0 1px 2px rgba(0,0,0,.06);--shadow-md: 0 4px 6px -1px rgba(0,0,0,.1), 0 2px 4px -1px rgba(0,0,0,.06);--shadow-lg: 0 10px 15px -3px rgba(0,0,0,.1), 0 4px 6px -2px rgba(0,0,0,.05);--shadow-xl: 0 20px 25px -5px rgba(0,0,0,.1), 0 10px 10px -5px rgba(0,0,0,.04);--radius-sm: 6px;--radius: 12px;--radius-lg: 16px;--radius-xl: 24px;--transition: all .2s ease;--transition-slow: all .3s ease}*{margin:0;padding:0;box-sizing:border-box}html{font-size:16px;-webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,Segoe UI,sans-serif;background:var(--bg);color:var(--text);line-height:1.6;min-height:100vh;overflow-x:hidden}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--text-muted);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-secondary)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 20px;border:none;border-radius:var(--radius-sm);font-size:15px;font-weight:500;cursor:pointer;transition:var(--transition);text-decoration:none;white-space:nowrap;-webkit-user-select:none;user-select:none}.btn-primary{background:linear-gradient(135deg,var(--primary),var(--primary-dark));color:#fff;box-shadow:0 2px 4px #6366f14d}.btn-primary:hover{background:linear-gradient(135deg,var(--primary-dark),#4338ca);transform:translateY(-1px);box-shadow:0 4px 8px #6366f166}.btn-primary:active{transform:translateY(0);box-shadow:0 1px 2px #6366f14d}.btn-outline{background:transparent;border:1.5px solid var(--primary);color:var(--primary)}.btn-outline:hover{background:var(--primary);color:#fff;box-shadow:0 2px 4px #6366f14d}.btn-success{background:linear-gradient(135deg,var(--success),#059669);color:#fff;box-shadow:0 2px 4px #10b9814d}.btn-success:hover{background:linear-gradient(135deg,#059669,#047857);transform:translateY(-1px)}.btn-danger{background:linear-gradient(135deg,var(--danger),#dc2626);color:#fff;box-shadow:0 2px 4px #ef44444d}.btn-danger:hover{background:linear-gradient(135deg,#dc2626,#b91c1c);transform:translateY(-1px)}.btn-ghost{background:transparent;color:var(--text-secondary)}.btn-ghost:hover{background:var(--bg-hover);color:var(--text)}.btn-lg{padding:14px 28px;font-size:16px;border-radius:var(--radius);font-weight:600}.btn-sm{padding:6px 14px;font-size:13px;border-radius:var(--radius-sm)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none!important}.card{background:var(--bg-card);border-radius:var(--radius);box-shadow:var(--shadow);padding:24px;transition:var(--transition);border:1px solid var(--border-light)}.card:hover{box-shadow:var(--shadow-md)}.card-header{margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid var(--border-light)}.card-title{font-size:18px;font-weight:600;color:var(--text);margin:0}.tag{display:inline-flex;align-items:center;padding:4px 12px;border-radius:20px;font-size:12px;font-weight:500;line-height:1.5}.tag-primary{background:var(--primary-bg);color:var(--primary)}.tag-success{background:var(--success-light);color:var(--success)}.tag-danger{background:var(--danger-light);color:var(--danger)}.tag-warning{background:var(--warning-light);color:var(--warning)}.tag-info{background:var(--info-light);color:var(--info)}.tag-gray{background:var(--bg-hover);color:var(--text-secondary)}.input{width:100%;padding:10px 14px;border:1.5px solid var(--border);border-radius:var(--radius-sm);font-size:15px;outline:none;transition:var(--transition);background:#fff;color:var(--text)}.input:focus{border-color:var(--primary);box-shadow:0 0 0 3px #6366f11a}.input::placeholder{color:var(--text-muted)}.input-error{border-color:var(--danger)}.input-error:focus{box-shadow:0 0 0 3px #ef44441a}.form-group{margin-bottom:20px}.form-label{display:block;font-size:14px;font-weight:500;margin-bottom:8px;color:var(--text)}.form-hint{font-size:12px;color:var(--text-secondary);margin-top:6px}.form-error{font-size:12px;color:var(--danger);margin-top:6px;display:flex;align-items:center;gap:4px}.progress-bar{height:8px;background:var(--border);border-radius:10px;overflow:hidden;position:relative}.progress-fill{height:100%;background:linear-gradient(90deg,var(--primary),var(--primary-light));border-radius:10px;transition:width .4s ease;position:relative}.progress-fill:after{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(90deg,#fff0,#ffffff4d,#fff0);animation:shimmer 2s infinite}.progress-fill.success{background:linear-gradient(90deg,var(--success),#34d399)}.progress-fill.danger{background:linear-gradient(90deg,var(--danger),#f87171)}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.option-item{display:flex;align-items:flex-start;gap:12px;padding:16px;border:1.5px solid var(--border);border-radius:var(--radius);cursor:pointer;transition:var(--transition);margin-bottom:12px;position:relative;overflow:hidden}.option-item:before{content:"";position:absolute;top:0;left:0;width:4px;height:100%;background:transparent;transition:var(--transition)}.option-item:hover:not(.disabled){border-color:var(--primary);background:var(--primary-bg);transform:translate(4px)}.option-item:hover:not(.disabled):before{background:var(--primary)}.option-item.selected{border-color:var(--primary);background:var(--primary-bg)}.option-item.selected:before{background:var(--primary)}.option-item.correct{border-color:var(--success);background:var(--success-light)}.option-item.correct:before{background:var(--success)}.option-item.wrong{border-color:var(--danger);background:var(--danger-light)}.option-item.wrong:before{background:var(--danger)}.option-item.disabled{cursor:default}.option-key{width:32px;height:32px;min-width:32px;border-radius:50%;background:var(--bg-hover);color:var(--text-secondary);font-weight:600;font-size:14px;display:flex;align-items:center;justify-content:center;transition:var(--transition)}.option-item.selected .option-key{background:var(--primary);color:#fff;box-shadow:0 2px 4px #6366f14d}.option-item.correct .option-key{background:var(--success);color:#fff;box-shadow:0 2px 4px #10b9814d}.option-item.wrong .option-key{background:var(--danger);color:#fff;box-shadow:0 2px 4px #ef44444d}.option-text{font-size:15px;line-height:1.6;flex:1;padding-top:4px}.container{max-width:1200px;margin:0 auto;padding:0 20px}.page{padding:32px 0;min-height:calc(100vh - 64px)}.nav{background:#fffffff2;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:100;height:64px;display:flex;align-items:center;box-shadow:var(--shadow-sm)}.nav-inner{display:flex;align-items:center;justify-content:space-between;width:100%}.nav-logo{font-size:20px;font-weight:700;color:var(--primary);text-decoration:none;display:flex;align-items:center;gap:10px;transition:var(--transition)}.nav-logo:hover{opacity:.8}.nav-logo-icon{width:36px;height:36px;background:linear-gradient(135deg,var(--primary),var(--primary-light));border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;color:#fff;font-size:18px}.nav-links{display:flex;align-items:center;gap:4px}.nav-link{padding:8px 16px;border-radius:var(--radius-sm);font-size:14px;font-weight:500;color:var(--text-secondary);text-decoration:none;transition:var(--transition);position:relative}.nav-link:hover,.nav-link.active{color:var(--primary);background:var(--primary-bg)}.nav-link.active:after{content:"";position:absolute;bottom:-1px;left:50%;transform:translate(-50%);width:20px;height:3px;background:var(--primary);border-radius:3px}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-5px)}75%{transform:translate(5px)}}.fade-in{animation:fadeIn .3s ease forwards}.fade-in-up{animation:fadeInUp .4s ease forwards}.slide-in-left{animation:slideInLeft .3s ease forwards}.pulse{animation:pulse 2s ease-in-out infinite}.shake{animation:shake .3s ease}@media (max-width: 1024px){.container{max-width:100%}}@media (max-width: 768px){.container{padding:0 16px}.card{padding:20px 16px;border-radius:var(--radius-sm)}.btn-lg{padding:12px 24px;font-size:15px}.page{padding:20px 0}.nav{height:56px}.nav-logo{font-size:18px}.nav-logo span{display:none}.nav-links{gap:2px}.nav-link{padding:6px 10px;font-size:13px}}@media (max-width: 480px){.container{padding:0 12px}.card{padding:16px 12px}.btn{padding:8px 16px;font-size:14px}.btn-lg{padding:10px 20px;font-size:15px}.nav-logo-icon{width:32px;height:32px;font-size:16px}.option-item{padding:12px;gap:8px}.option-key{width:28px;height:28px;min-width:28px;font-size:13px}}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.text-secondary{color:var(--text-secondary)}.text-success{color:var(--success)}.text-danger{color:var(--danger)}.text-primary{color:var(--primary)}.text-warning{color:var(--warning)}.text-muted{color:var(--text-muted)}.mt-1{margin-top:8px}.mt-2{margin-top:16px}.mt-3{margin-top:24px}.mt-4{margin-top:32px}.mb-1{margin-bottom:8px}.mb-2{margin-bottom:16px}.mb-3{margin-bottom:24px}.mb-4{margin-bottom:32px}.ml-1{margin-left:8px}.ml-2{margin-left:16px}.mr-1{margin-right:8px}.mr-2{margin-right:16px}.p-1{padding:8px}.p-2{padding:16px}.p-3{padding:24px}.flex{display:flex}.flex-center{display:flex;align-items:center;justify-content:center}.flex-between{display:flex;align-items:center;justify-content:space-between}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-center{justify-content:center}.gap-1{gap:8px}.gap-2{gap:16px}.gap-3{gap:24px}.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}@media (max-width: 768px){.grid-3,.grid-4{grid-template-columns:repeat(2,1fr)}}@media (max-width: 480px){.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}}.empty-state{text-align:center;padding:60px 20px}.empty-state-icon{font-size:64px;margin-bottom:16px;opacity:.6}.empty-state-title{font-size:18px;font-weight:600;color:var(--text);margin-bottom:8px}.empty-state-desc{font-size:14px;color:var(--text-secondary);max-width:400px;margin:0 auto}.loading{display:flex;align-items:center;justify-content:center;padding:40px}.loading-spinner{width:40px;height:40px;border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.alert{padding:16px;border-radius:var(--radius-sm);margin-bottom:16px;display:flex;align-items:flex-start;gap:12px}.alert-info{background:var(--info-light);color:var(--info);border:1px solid rgba(59,130,246,.2)}.alert-success{background:var(--success-light);color:var(--success);border:1px solid rgba(16,185,129,.2)}.alert-danger{background:var(--danger-light);color:var(--danger);border:1px solid rgba(239,68,68,.2)}.alert-warning{background:var(--warning-light);color:var(--warning);border:1px solid rgba(245,158,11,.2)}@media print{.nav,.btn,.no-print{display:none!important}.card{box-shadow:none;border:1px solid #ddd}}
