:root{--primary: #4f6ef7;--primary-light: #e8ecff;--success: #00b578;--danger: #ff3141;--warning: #ff8f1f;--text: #333;--text-secondary: #666;--bg: #f5f5f5;--card-bg: #fff}*{margin:0;padding:0;box-sizing:border-box}html,body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;background:var(--bg);color:var(--text);font-size:14px;-webkit-font-smoothing:antialiased}body{padding-bottom:env(safe-area-inset-bottom)}.page{min-height:100vh;padding:12px 12px 70px}.page-title{font-size:20px;font-weight:600;text-align:center;padding:16px 0}.card{background:var(--card-bg);border-radius:12px;padding:16px;margin-bottom:12px;box-shadow:0 1px 4px #0000000f}.btn{display:block;width:100%;padding:12px;border:none;border-radius:8px;font-size:16px;font-weight:500;cursor:pointer;text-align:center;transition:opacity .2s}.btn:active{opacity:.8}.btn-primary{background:var(--primary);color:#fff}.btn-success{background:var(--success);color:#fff}.btn-outline{background:transparent;border:1px solid var(--primary);color:var(--primary)}.btn:disabled{opacity:.5;cursor:not-allowed}.score-badge{display:inline-flex;align-items:center;justify-content:center;width:60px;height:60px;border-radius:50%;font-size:20px;font-weight:700;color:#fff}.score-high{background:var(--success)}.score-medium{background:var(--warning)}.score-low{background:var(--danger)}.tag{display:inline-block;padding:2px 8px;border-radius:4px;font-size:12px;margin:2px}.tag-easy{background:#e8f5e9;color:#2e7d32}.tag-medium{background:#fff3e0;color:#ef6c00}.tag-hard{background:#fce4ec;color:#c62828}.tag-knowledge{background:var(--primary-light);color:var(--primary)}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;text-align:center}.spinner{width:40px;height:40px;border:3px solid #e0e0e0;border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite;margin-bottom:16px}@keyframes spin{to{transform:rotate(360deg)}}.empty-state{text-align:center;padding:60px 20px;color:var(--text-secondary)}.empty-state .icon{font-size:48px;margin-bottom:12px}.tab-bar{position:fixed;bottom:0;left:0;right:0;display:flex;background:#fff;border-top:1px solid #eee;padding:6px 0;padding-bottom:calc(6px + env(safe-area-inset-bottom));z-index:100}.tab-item{flex:1;display:flex;flex-direction:column;align-items:center;text-decoration:none;color:var(--text-secondary);font-size:11px;gap:2px}.tab-item.active{color:var(--primary)}.tab-item .tab-icon{font-size:22px}
