*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}:root{--bg-primary: #0f0f1a;--bg-secondary: #1a1a2e;--text-primary: #f0f0f5;--text-secondary: #8e8ea0;--text-hint: #6b6b80;--accent: #6c5ce7;--accent-text: #ffffff;--link-color: #7c6cf0;--destructive: #ff6b6b;--gradient-1: #6c5ce7;--gradient-2: #00b4d8;--gradient-3: #a855f7;--success: #10b981;--success-bg: rgba(16, 185, 129, .12);--error: #ef4444;--error-bg: rgba(239, 68, 68, .12);--warning: #f59e0b;--warning-bg: rgba(245, 158, 11, .12);--card-bg: rgba(255, 255, 255, .04);--card-border: rgba(255, 255, 255, .08);--card-hover: rgba(255, 255, 255, .08);--overlay: rgba(0, 0, 0, .6);--space-xs: 4px;--space-sm: 8px;--space-md: 16px;--space-lg: 24px;--space-xl: 32px;--space-2xl: 48px;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 24px;--radius-full: 9999px;--shadow-sm: 0 2px 8px rgba(0, 0, 0, .15);--shadow-md: 0 4px 16px rgba(0, 0, 0, .2);--shadow-lg: 0 8px 32px rgba(0, 0, 0, .3);--shadow-glow: 0 0 20px rgba(108, 92, 231, .3);--font: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--transition-fast: .15s ease;--transition-normal: .25s ease;--transition-slow: .4s cubic-bezier(.4, 0, .2, 1);--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px)}html,body{font-family:var(--font);background:var(--bg-primary);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden;min-height:100vh;font-size:16px;line-height:1.5}#root{min-height:100vh;display:flex;flex-direction:column}a{color:var(--link-color);text-decoration:none}.heading-xl{font-size:28px;font-weight:800;line-height:1.2;letter-spacing:-.02em}.heading-lg{font-size:22px;font-weight:700;line-height:1.3;letter-spacing:-.01em}.heading-md{font-size:18px;font-weight:600;line-height:1.4}.heading-sm{font-size:15px;font-weight:600;line-height:1.4}.text-body{font-size:15px;font-weight:400;line-height:1.5}.text-small{font-size:13px;font-weight:400;line-height:1.4;color:var(--text-secondary)}.text-caption{font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.06em;color:var(--text-hint)}.text-gradient{background:linear-gradient(135deg,var(--gradient-1),var(--gradient-2));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.page{flex:1;display:flex;flex-direction:column;padding:var(--space-md);padding-top:calc(var(--safe-top) + var(--space-md));padding-bottom:calc(var(--safe-bottom) + 80px);max-width:480px;margin:0 auto;width:100%}.page-header{margin-bottom:var(--space-lg)}.page-header h1{font-size:28px;font-weight:800;letter-spacing:-.02em;margin-bottom:var(--space-xs)}.page-header p{color:var(--text-secondary);font-size:15px}.card{background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--radius-lg);padding:var(--space-lg);transition:all var(--transition-normal);position:relative;overflow:hidden}.card:hover{background:var(--card-hover)}.card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--gradient-1),var(--gradient-2));opacity:0;transition:opacity var(--transition-normal)}.card:hover:before{opacity:1}.card-clickable{cursor:pointer;-webkit-tap-highlight-color:transparent}.card-clickable:active{transform:scale(.98)}.set-card{margin-bottom:var(--space-md)}.set-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--space-md)}.set-card-title{font-size:17px;font-weight:700;flex:1;margin-right:var(--space-sm)}.set-card-badge{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:var(--radius-full);font-size:12px;font-weight:600;white-space:nowrap}.badge-access{background:var(--success-bg);color:var(--success)}.badge-locked{background:var(--warning-bg);color:var(--warning)}.badge-expired{background:var(--error-bg);color:var(--error)}.set-card-stats{display:flex;gap:var(--space-lg);margin-bottom:var(--space-md)}.stat-item{display:flex;flex-direction:column}.stat-value{font-size:20px;font-weight:700;color:var(--text-primary)}.stat-label{font-size:12px;color:var(--text-hint)}.set-card-price{display:flex;align-items:center;justify-content:space-between;padding-top:var(--space-md);border-top:1px solid var(--card-border)}.price-tag{font-size:16px;font-weight:700;color:var(--gradient-1)}.price-detail{font-size:12px;color:var(--text-hint)}.quiz-card{display:flex;align-items:center;gap:var(--space-md);margin-bottom:var(--space-sm);padding:var(--space-md) var(--space-lg)}.quiz-card-number{width:44px;height:44px;border-radius:var(--radius-md);background:linear-gradient(135deg,var(--gradient-1),var(--gradient-2));display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:700;color:#fff;flex-shrink:0}.quiz-card-info{flex:1}.quiz-card-title{font-size:15px;font-weight:600;margin-bottom:2px}.quiz-card-subtitle{font-size:13px;color:var(--text-secondary)}.quiz-card-arrow{color:var(--text-hint);font-size:18px}.quiz-card-score{text-align:right}.quiz-card-score-value{font-size:15px;font-weight:700;color:var(--success)}.quiz-card-score-label{font-size:11px;color:var(--text-hint)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);padding:12px 24px;border-radius:var(--radius-md);font-family:var(--font);font-size:15px;font-weight:600;cursor:pointer;border:none;transition:all var(--transition-fast);-webkit-tap-highlight-color:transparent;outline:none;text-decoration:none;-webkit-user-select:none;user-select:none}.btn:active{transform:scale(.96)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-primary{background:linear-gradient(135deg,var(--gradient-1),var(--gradient-2));color:#fff;box-shadow:var(--shadow-glow)}.btn-primary:hover:not(:disabled){box-shadow:0 0 30px #6c5ce766}.btn-secondary{background:var(--card-bg);color:var(--text-primary);border:1px solid var(--card-border)}.btn-danger{background:var(--error-bg);color:var(--error)}.btn-full{width:100%}.btn-lg{padding:16px 32px;font-size:16px;border-radius:var(--radius-lg)}.btn-sm{padding:8px 16px;font-size:13px}.progress-wrapper{margin-bottom:var(--space-lg)}.progress-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-sm)}.progress-count{font-size:14px;font-weight:600}.progress-percent{font-size:13px;color:var(--text-secondary)}.progress-bar{height:6px;background:var(--card-bg);border-radius:var(--radius-full);overflow:hidden;border:1px solid var(--card-border)}.progress-fill{height:100%;background:linear-gradient(90deg,var(--gradient-1),var(--gradient-2));border-radius:var(--radius-full);transition:width .5s cubic-bezier(.4,0,.2,1);position:relative}.progress-fill:after{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);animation:shimmer 2s infinite}.question-number-badge{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border-radius:var(--radius-full);background:linear-gradient(135deg,var(--gradient-1),var(--gradient-3));color:#fff;font-size:13px;font-weight:600;margin-bottom:var(--space-md)}.question-text{font-size:18px;font-weight:600;line-height:1.5;margin-bottom:var(--space-lg);color:var(--text-primary)}.options-list{display:flex;flex-direction:column;gap:var(--space-sm)}.option-btn{display:flex;align-items:flex-start;gap:var(--space-md);width:100%;padding:var(--space-md) var(--space-lg);background:var(--card-bg);border:2px solid var(--card-border);border-radius:var(--radius-md);color:var(--text-primary);font-family:var(--font);font-size:15px;font-weight:500;text-align:left;cursor:pointer;transition:all var(--transition-fast);-webkit-tap-highlight-color:transparent;line-height:1.4}.option-btn:hover:not(:disabled){background:var(--card-hover);border-color:var(--accent)}.option-btn:active:not(:disabled){transform:scale(.98)}.option-letter{width:28px;height:28px;border-radius:var(--radius-sm);background:var(--card-hover);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px;flex-shrink:0;transition:all var(--transition-fast);margin-top:1px}.option-text{flex:1;padding-top:3px}.option-btn.correct{background:var(--success-bg);border-color:var(--success);animation:correctPulse .5s ease}.option-btn.correct .option-letter{background:var(--success);color:#fff}.option-btn.wrong{background:var(--error-bg);border-color:var(--error);animation:wrongShake .4s ease}.option-btn.wrong .option-letter{background:var(--error);color:#fff}.option-btn:disabled{cursor:default;opacity:.7}.option-btn.correct:disabled,.option-btn.wrong:disabled{opacity:1}.result-container{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:var(--space-2xl) var(--space-md);animation:scaleIn .5s ease-out}.result-emoji{font-size:72px;margin-bottom:var(--space-lg);animation:bounceIn .6s ease-out .2s both}.result-score-circle{width:160px;height:160px;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;margin-bottom:var(--space-lg);position:relative}.result-score-circle:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;padding:4px;background:linear-gradient(135deg,var(--gradient-1),var(--gradient-2));-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude}.result-score-number{font-size:48px;font-weight:800;letter-spacing:-.03em}.result-score-total{font-size:16px;color:var(--text-secondary);font-weight:500}.result-message{font-size:20px;font-weight:700;margin-bottom:var(--space-sm)}.result-detail{font-size:15px;color:var(--text-secondary);margin-bottom:var(--space-xl);max-width:280px}.result-actions{display:flex;flex-direction:column;gap:var(--space-sm);width:100%;max-width:320px}.upload-dropzone{border:2px dashed var(--card-border);border-radius:var(--radius-lg);padding:var(--space-2xl) var(--space-lg);text-align:center;cursor:pointer;transition:all var(--transition-normal);position:relative;overflow:hidden}.upload-dropzone:hover,.upload-dropzone.drag-over{border-color:var(--accent);background:#6c5ce70d}.upload-dropzone.drag-over{transform:scale(1.02)}.upload-icon{font-size:48px;margin-bottom:var(--space-md);opacity:.7}.upload-text{font-size:16px;font-weight:600;margin-bottom:var(--space-xs)}.upload-hint{font-size:13px;color:var(--text-hint)}.upload-preview{margin-top:var(--space-lg)}.upload-preview-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-md)}.upload-preview-title{font-size:16px;font-weight:600}.upload-preview-count{font-size:13px;color:var(--text-secondary)}.upload-question-preview{background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--radius-md);padding:var(--space-md);margin-bottom:var(--space-sm);font-size:14px}.upload-question-preview .q-text{font-weight:600;margin-bottom:var(--space-xs)}.upload-question-preview .q-correct{color:var(--success);font-size:13px}.upload-question-preview .q-wrong{color:var(--text-hint);font-size:13px}.form-group{margin-bottom:var(--space-lg)}.form-label{display:block;font-size:14px;font-weight:600;margin-bottom:var(--space-sm);color:var(--text-primary)}.form-input{width:100%;padding:12px 16px;background:var(--card-bg);border:2px solid var(--card-border);border-radius:var(--radius-md);color:var(--text-primary);font-family:var(--font);font-size:15px;outline:none;transition:border-color var(--transition-fast)}.form-input:focus{border-color:var(--accent)}.form-input::placeholder{color:var(--text-hint)}.form-hint{font-size:12px;color:var(--text-hint);margin-top:var(--space-xs)}.access-gate{display:flex;flex-direction:column;align-items:center;text-align:center;padding:var(--space-2xl) var(--space-md)}.access-gate-icon{font-size:64px;margin-bottom:var(--space-lg)}.access-gate-title{font-size:22px;font-weight:700;margin-bottom:var(--space-sm)}.access-gate-desc{font-size:15px;color:var(--text-secondary);margin-bottom:var(--space-lg);max-width:300px;line-height:1.6}.access-gate-price{background:linear-gradient(135deg,var(--gradient-1),var(--gradient-2));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;font-size:32px;font-weight:800;margin-bottom:var(--space-lg)}.access-gate-steps{text-align:left;width:100%;max-width:320px;margin-bottom:var(--space-lg)}.access-gate-step{display:flex;align-items:flex-start;gap:var(--space-md);margin-bottom:var(--space-md)}.access-gate-step-num{width:28px;height:28px;border-radius:50%;background:var(--card-hover);display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;flex-shrink:0}.access-gate-step-text{font-size:14px;color:var(--text-secondary);padding-top:4px}.empty-state{display:flex;flex-direction:column;align-items:center;text-align:center;padding:var(--space-2xl) var(--space-md)}.empty-state-icon{font-size:56px;margin-bottom:var(--space-md);opacity:.6}.empty-state-title{font-size:18px;font-weight:600;margin-bottom:var(--space-sm)}.empty-state-text{font-size:14px;color:var(--text-secondary);max-width:260px}.loader{display:flex;align-items:center;justify-content:center;padding:var(--space-2xl)}.spinner{width:36px;height:36px;border:3px solid var(--card-border);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}.loading-skeleton{background:linear-gradient(90deg,var(--card-bg) 25%,var(--card-hover) 50%,var(--card-bg) 75%);background-size:200% 100%;animation:skeletonShimmer 1.5s infinite;border-radius:var(--radius-md)}.toast{position:fixed;bottom:90px;left:50%;transform:translate(-50%);padding:12px 24px;border-radius:var(--radius-full);font-size:14px;font-weight:600;z-index:100;animation:toastIn .3s ease,toastOut .3s ease 2.7s forwards;box-shadow:var(--shadow-lg)}.toast-success{background:var(--success);color:#fff}.toast-error{background:var(--error);color:#fff}.admin-badge{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:var(--radius-full);background:linear-gradient(135deg,var(--gradient-1),var(--gradient-3));color:#fff;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em}.tab-bar{position:fixed;bottom:0;left:0;right:0;display:flex;justify-content:center;gap:var(--space-xs);padding:var(--space-sm) var(--space-md);padding-bottom:calc(var(--safe-bottom) + var(--space-sm));background:var(--bg-secondary);border-top:1px solid var(--card-border);z-index:50}.tab-item{display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 20px;border-radius:var(--radius-md);background:none;border:none;color:var(--text-hint);font-family:var(--font);font-size:11px;font-weight:500;cursor:pointer;transition:all var(--transition-fast);-webkit-tap-highlight-color:transparent}.tab-item.active{color:var(--accent)}.tab-item-icon{font-size:22px}.divider{height:1px;background:var(--card-border);margin:var(--space-md) 0}.flex-center{display:flex;align-items:center;justify-content:center}.flex-between{display:flex;align-items:center;justify-content:space-between}.gap-sm{gap:var(--space-sm)}.gap-md{gap:var(--space-md)}.gap-lg{gap:var(--space-lg)}.mt-sm{margin-top:var(--space-sm)}.mt-md{margin-top:var(--space-md)}.mt-lg{margin-top:var(--space-lg)}.mt-xl{margin-top:var(--space-xl)}.mb-sm{margin-bottom:var(--space-sm)}.mb-md{margin-bottom:var(--space-md)}.mb-lg{margin-bottom:var(--space-lg)}.w-full{width:100%}.text-center{text-align:center}@keyframes pageEnter{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes bounceIn{0%{opacity:0;transform:scale(.3)}50%{transform:scale(1.1)}70%{transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes correctPulse{0%{transform:scale(1)}30%{transform:scale(1.02)}to{transform:scale(1)}}@keyframes wrongShake{0%,to{transform:translate(0)}20%{transform:translate(-6px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}@keyframes skeletonShimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes toastIn{0%{opacity:0;transform:translate(-50%) translateY(20px)}to{opacity:1;transform:translate(-50%) translateY(0)}}@keyframes toastOut{0%{opacity:1;transform:translate(-50%) translateY(0)}to{opacity:0;transform:translate(-50%) translateY(20px)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--card-border);border-radius:4px}
