.login-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:#00000073;display:flex;align-items:center;justify-content:center;padding:1rem}.login-modal{position:relative;width:100%;max-width:420px;max-height:90vh;overflow-y:auto}.login-modal-close{position:absolute;top:.5rem;right:.5rem;z-index:2;width:2rem;height:2rem;border:none;border-radius:50%;background:#0000000f;color:#666;font-size:1.25rem;line-height:1;cursor:pointer}.login-modal-card{margin:0}.auth-login{width:100%}.auth-card{background:#fff;border-radius:20px;padding:2rem 1.5rem;box-shadow:0 12px 40px #00000026;text-align:center}.auth-header{margin-bottom:1.5rem}.auth-icon{font-size:3rem;margin-bottom:.75rem}.auth-header h1{font-size:1.5rem;color:#1a1a2e;margin-bottom:.5rem}.auth-header p{color:#888;font-size:.9rem}.auth-alert{border-radius:12px;padding:1rem;margin-bottom:1rem;text-align:left}.auth-alert.warning{background:#fff8e6;border:1px solid #ffe58f}.auth-alert.warning p{color:#d48806;font-weight:600}.auth-alert.warning .sub{font-weight:400;font-size:.85rem;margin-top:.25rem}.auth-alert.error{background:#fff2f0;border:1px solid #ffccc7}.auth-alert.error p{color:#cf1322;font-size:.9rem}.auth-alert.info{background:#e6f7ff;border:1px solid #91d5ff;margin-bottom:1rem;text-align:left}.auth-alert.info p{color:#096dd9;font-size:.85rem;word-break:break-all}.auth-alert.info .mono{font-family:monospace}.auth-status.loading{padding:1.5rem 0;color:#666}.auth-code-hint{margin-top:.5rem;font-size:.75rem;color:#999;word-break:break-all;font-family:monospace}.spinner{width:36px;height:36px;border:3px solid #e8e8e8;border-top-color:#667eea;border-radius:50%;margin:0 auto .75rem;animation:spin .8s linear infinite}.auth-success{text-align:left}.success-badge{display:inline-block;background:#f6ffed;color:#389e0d;border:1px solid #b7eb8f;border-radius:8px;padding:.4rem .75rem;font-size:.9rem;font-weight:600;margin-bottom:1rem}.user-info{background:#f8f9ff;border-radius:12px;padding:1rem;margin-bottom:1rem}.info-row{display:flex;justify-content:space-between;align-items:flex-start;gap:.75rem;padding:.5rem 0;border-bottom:1px solid #eef0f8}.info-row:last-child{border-bottom:none}.info-row .label{color:#888;font-size:.85rem;flex-shrink:0}.info-row .value{color:#333;font-size:.85rem;text-align:right;word-break:break-all}.info-row .value.mono{font-family:monospace;font-size:.75rem}.info-row .value.truncate{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.btn{width:100%;padding:.875rem 1.5rem;border-radius:12px;font-size:1rem;font-weight:600;cursor:pointer;border:none;transition:opacity .2s,transform .1s}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.link-btn{display:block;text-decoration:none;text-align:center;margin-bottom:.75rem}.btn-outline{background:#fff;color:#667eea;border:1.5px solid #667eea}.auth-footer{margin-top:1.5rem;padding-top:1rem;border-top:1px solid #f0f0f0}.api-hint{font-size:.7rem;color:#bbb;word-break:break-all}.exam-record-page{min-height:100vh;max-width:560px;margin:0 auto;padding:12px 12px 24px;background:#f5f6fa}.record-header{display:flex;align-items:flex-start;gap:.75rem;margin-bottom:1rem}.record-header-main{flex:1;min-width:0}.record-header h1{font-size:1.1rem;color:#1a1a2e;line-height:1.4}.record-meta{margin-top:.25rem;font-size:.8rem;color:#666}.exam-record-page .back-btn{padding:.35rem .6rem;border-radius:8px;border:1px solid #ddd;background:#fff;cursor:pointer;flex-shrink:0}.record-summary{display:flex;justify-content:space-between;gap:.5rem;margin-bottom:.75rem;padding:.75rem 1rem;background:#fff;border-radius:12px;font-size:.82rem;color:#666}.question-card{background:#fff;border-radius:12px;padding:1rem;margin-bottom:1rem}.question-head{display:flex;align-items:center;gap:.5rem;margin-bottom:.75rem;flex-wrap:wrap}.question-index{font-size:.85rem;color:#1677ff;font-weight:600}.question-type,.question-score{font-size:.75rem;color:#888;background:#f5f5f5;padding:.15rem .45rem;border-radius:999px}.question-content{font-size:.95rem;line-height:1.7;color:#222;margin-bottom:1rem;white-space:pre-wrap}.question-image{max-width:100%;border-radius:8px}.option-list{display:flex;flex-direction:column;gap:.6rem}.option-item{display:flex;align-items:flex-start;gap:.65rem;width:100%;padding:.75rem .85rem;border:1px solid #e8e8e8;border-radius:10px;background:#fff;text-align:left;cursor:pointer}.option-item.active{border-color:#1677ff;background:#f0f7ff}.option-item:disabled{cursor:not-allowed;opacity:.85}.option-key{flex-shrink:0;width:1.5rem;height:1.5rem;border-radius:50%;background:#f0f0f0;color:#333;display:inline-flex;align-items:center;justify-content:center;font-size:.82rem;font-weight:600}.option-item.active .option-key{background:#1677ff;color:#fff}.option-content{flex:1;font-size:.9rem;line-height:1.6;color:#333}.answer-editor{margin-top:.5rem}.answer-input,.answer-textarea{width:100%;box-sizing:border-box;border:1px solid #ddd;border-radius:10px;padding:.75rem .85rem;font-size:.9rem;background:#fff}.answer-textarea{min-height:120px;resize:vertical}.answer-review{margin-top:1rem;padding:.85rem;border-radius:10px;background:#f8fafc;font-size:.85rem;line-height:1.6;color:#444}.question-nav{display:flex;align-items:center;gap:.5rem;margin-bottom:1rem}.nav-btn{flex-shrink:0;padding:.45rem .7rem;border:1px solid #ddd;border-radius:8px;background:#fff;font-size:.82rem;cursor:pointer}.nav-btn:disabled{opacity:.45;cursor:not-allowed}.question-dots{flex:1;display:flex;gap:.35rem;overflow-x:auto;padding-bottom:.2rem}.question-dots .dot{flex-shrink:0;width:2rem;height:2rem;border-radius:8px;border:1px solid #e5e5e5;background:#fff;font-size:.78rem;color:#666;cursor:pointer}.question-dots .dot.active{border-color:#1677ff;color:#1677ff;background:#f0f7ff}.question-dots .dot.done{background:#e8f7ee;border-color:#95de64;color:#389e0d}.submit-btn{width:100%;padding:.85rem;border:none;border-radius:12px;background:linear-gradient(135deg,#1677ff,#0958d9);color:#fff;font-size:1rem;font-weight:600;cursor:pointer}.submit-btn:disabled{opacity:.7;cursor:not-allowed}.submit-btn.secondary{margin-top:1rem;background:#fff;color:#1677ff;border:1px solid #1677ff}.record-submit-tip{color:#1677ff;padding:.35rem 0 .75rem;font-size:.88rem;font-weight:600}.result-card{background:#fff;border-radius:16px;overflow:hidden;margin-bottom:1rem;box-shadow:0 4px 20px #0000000f}.result-card-hero{padding:1.25rem 1rem 1.1rem;text-align:center;background:linear-gradient(160deg,#f0f5ff,#fff 55%)}.result-card.passed .result-card-hero{background:linear-gradient(160deg,#f6ffed,#fff 55%)}.result-card.failed .result-card-hero{background:linear-gradient(160deg,#fff2f0,#fff 55%)}.result-status-pill,.result-pass-pill{display:inline-block;font-size:.72rem;padding:.2rem .55rem;border-radius:999px;font-weight:600;margin:0 .2rem .85rem}.result-status-pill{background:#1677ff1a;color:#1677ff}.result-pass-pill.pass{background:#f6ffed;color:#389e0d}.result-pass-pill.fail{background:#fff1f0;color:#cf1322}.result-score-ring{--ring-color: #1677ff;width:132px;height:132px;margin:0 auto .65rem;border-radius:50%;background:conic-gradient(var(--ring-color) 0%,var(--ring-color) var(--progress),#e8edf5 var(--progress),#e8edf5 100%);display:flex;align-items:center;justify-content:center;position:relative}.result-card.passed .result-score-ring{--ring-color: #52c41a}.result-card.failed .result-score-ring{--ring-color: #ff7875}.result-score-inner{width:108px;height:108px;border-radius:50%;background:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:0 2px 12px #0000000f}.result-score-value{font-size:2rem;font-weight:700;color:#1a1a2e;line-height:1.1}.result-score-total{font-size:.82rem;color:#999;margin-top:.1rem}.result-score-caption{font-size:.85rem;color:#666;font-weight:500}.result-pass-line{margin-top:.25rem;font-size:.78rem;color:#999}.result-stats{display:flex;align-items:stretch;padding:.85rem .5rem;border-top:1px solid #f0f0f0}.result-stat{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.2rem;min-width:0;padding:0 .25rem}.result-stat-value{font-size:1.05rem;font-weight:700;color:#1a1a2e;line-height:1.2}.result-stat-value.sm{font-size:.82rem;font-weight:600}.result-stat-label{font-size:.72rem;color:#999}.result-stat-divider{width:1px;background:#f0f0f0;margin:.15rem 0}.result-back-btn{display:block;width:calc(100% - 2rem);margin:0 1rem 1rem;padding:.75rem;border:none;border-radius:12px;background:linear-gradient(135deg,#1677ff,#0958d9);color:#fff;font-size:.92rem;font-weight:600;cursor:pointer}.record-error{color:#cf1322;padding:.75rem 0;font-size:.88rem}.record-save-tip{color:#389e0d;padding:.35rem 0 .75rem;font-size:.82rem}.question-saving{font-size:.75rem;color:#1677ff}.record-hint{color:#666;padding:1rem 0}.review-section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}.review-section-title{font-size:1rem;color:#1a1a2e;font-weight:700}.review-section-count{font-size:.78rem;color:#999}.review-question-list{margin-top:.25rem}.review-card{margin-bottom:.75rem}.review-badge{font-size:.72rem;padding:.15rem .45rem;border-radius:999px;font-weight:600}.review-badge.correct{background:#f6ffed;color:#389e0d}.review-badge.wrong{background:#fff1f0;color:#cf1322}.option-item.review{cursor:default;position:relative;flex-wrap:wrap}.option-item.review.user-correct{border-color:#52c41a;background:#f6ffed}.option-item.review.user-wrong{border-color:#ff4d4f;background:#fff1f0}.option-item.review.correct-answer{border-color:#52c41a;background:#fcffe6}.option-item.review.user-correct .option-key{background:#52c41a;color:#fff}.option-item.review.user-wrong .option-key{background:#ff4d4f;color:#fff}.option-item.review.correct-answer .option-key{background:#52c41a;color:#fff}.option-tag{flex-shrink:0;font-size:.68rem;padding:.1rem .35rem;border-radius:4px;margin-left:auto}.option-tag.user{background:#e6f4ff;color:#1677ff}.option-tag.correct{background:#f6ffed;color:#389e0d}.review-answer-block{display:flex;flex-direction:column;gap:.65rem;margin-top:.25rem}.review-row{display:flex;flex-direction:column;gap:.35rem}.review-label{font-size:.78rem;color:#888;font-weight:600}.review-value{font-size:.9rem;line-height:1.6;color:#333;padding:.65rem .75rem;border-radius:8px;background:#f8fafc;white-space:pre-wrap}.review-value.correct{background:#f6ffed;color:#389e0d}.review-value.wrong{background:#fff1f0;color:#cf1322}.review-value.highlight{background:#f6ffed;color:#237804}.review-answer-summary{display:flex;flex-direction:column;gap:.35rem;margin-top:.75rem;padding:.75rem;border-radius:8px;background:#f8fafc;font-size:.85rem;color:#555}.review-answer-summary strong{color:#1a1a2e}.review-analysis{margin-top:.85rem;padding:.85rem;border-radius:10px;background:#fffbe6;border:1px solid #ffe58f}.review-analysis-title{font-size:.82rem;font-weight:600;color:#d48806;margin-bottom:.45rem}.review-analysis-body{font-size:.88rem;line-height:1.7;color:#444;white-space:pre-wrap}.paper-detail-page{min-height:100vh;max-width:560px;margin:0 auto;padding:12px;background:#f5f6fa;text-align:left}.detail-header{display:flex;align-items:center;gap:.75rem;margin-bottom:1.25rem;color:#1a1a2e}.detail-header h1{font-size:1.35rem}.back-btn{padding:.35rem .6rem;border-radius:8px;border:1px solid #ddd;background:#fff;color:#333;font-size:.85rem;cursor:pointer}.detail-status,.detail-error{background:#fff;border-radius:16px;padding:2rem;text-align:center;color:#666}.detail-error p{color:#cf1322;margin-bottom:.75rem}.detail-error button{padding:.5rem 1rem;border:none;border-radius:8px;background:#667eea;color:#fff;cursor:pointer}.detail-card{background:#fff;border-radius:16px;padding:1.25rem;box-shadow:0 4px 20px #0000001a}.detail-title{font-size:1.15rem;color:#1a1a2e;margin-bottom:1rem;padding-bottom:.75rem;border-bottom:1px solid #f0f0f0}.detail-section{display:flex;flex-direction:column;gap:.25rem}.detail-row{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;padding:.6rem 0;border-bottom:1px solid #f5f5f5}.detail-row:last-child{border-bottom:none}.detail-row .label{color:#888;font-size:.85rem;flex-shrink:0}.detail-row .value{color:#333;font-size:.85rem;text-align:right;word-break:break-all}.detail-row .value.price{color:#d48806;font-weight:600}.detail-success{background:#f6ffed;border:1px solid #b7eb8f;color:#389e0d;border-radius:10px;padding:.75rem 1rem;margin-bottom:.75rem;font-size:.9rem}.pay-section{margin-top:1.25rem;padding-top:1rem;border-top:1px solid #f0f0f0}.pay-hint{color:#d48806;font-size:.85rem;margin-bottom:.75rem;text-align:center}.pay-button{width:100%;padding:.85rem;border:none;border-radius:12px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;font-size:1rem;font-weight:600;cursor:pointer}.pay-button:disabled{opacity:.6;cursor:not-allowed}.pay-button.secondary{margin-top:1rem;background:#fff;color:#667eea;border:1.5px solid #667eea}.paper-detail-page .spinner{width:32px;height:32px;border:3px solid #e8e8e8;border-top-color:#667eea;border-radius:50%;margin:0 auto .75rem;animation:spin .8s linear infinite}.index-tab{text-align:left}.guest-hint{text-align:center;padding:2rem 1rem}.guest-hint p{color:#666;margin-bottom:1rem}.index-banner{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:16px;padding:1.5rem 1.25rem;color:#fff;margin-bottom:1rem}.index-banner h1{font-size:1.4rem;margin-bottom:.35rem}.index-banner p{font-size:.85rem;opacity:.9}.paper-filters{display:flex;gap:.5rem;margin-bottom:.75rem}.filter-input{flex:1;padding:.55rem .75rem;border:none;border-radius:10px;font-size:.9rem}.filter-search-btn{padding:.55rem .9rem;border:none;border-radius:10px;background:#667eea;color:#fff;font-weight:600;cursor:pointer}.paper-type-tabs{display:flex;gap:.5rem;margin-bottom:.75rem}.paper-type-tabs button{flex:1;padding:.45rem .5rem;border-radius:8px;border:none;background:#fff;color:#666;font-size:.8rem;cursor:pointer}.paper-type-tabs button.active{background:#667eea;color:#fff;font-weight:600}.paper-list{list-style:none;display:flex;flex-direction:column;gap:.65rem}.paper-card{background:#fff;border-radius:12px;padding:.9rem 1rem;box-shadow:0 2px 8px #0000000d}.paper-card-footer{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.75rem;margin-top:.25rem}.paper-action-group{display:flex;flex-shrink:0;gap:.4rem}.paper-action-btn{flex-shrink:0;padding:.45rem .85rem;border:none;border-radius:999px;font-size:.8rem;font-weight:600;cursor:pointer}.paper-action-btn:disabled{opacity:.6;cursor:not-allowed}.paper-action-btn.primary{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.paper-action-btn.secondary{background:#fff;color:#667eea;border:1px solid #667eea}.paper-action-btn.buy{background:#fff7e6;color:#d48806;border:1px solid #ffd591}.paper-title{font-size:.95rem;font-weight:600;color:#1a1a2e;margin-bottom:.35rem}.paper-meta{display:flex;flex-wrap:wrap;gap:.5rem;font-size:.75rem;color:#888;margin-bottom:.45rem}.paper-tags{display:flex;gap:.35rem}.paper-tags .tag{font-size:.7rem;padding:.15rem .45rem;border-radius:4px}.paper-tags .tag.free{background:#f6ffed;color:#389e0d}.paper-tags .tag.paid{background:#fff7e6;color:#d48806}.paper-tags .tag.ok{background:#e6f7ff;color:#096dd9}.paper-tags .tag.muted{background:#f5f5f5;color:#999}.tab-pagination{display:flex;justify-content:center;align-items:center;gap:.75rem;margin-top:1rem;font-size:.8rem;color:#666}.index-tab .spinner{width:28px;height:28px;border:3px solid #e8e8e8;border-top-color:#667eea;border-radius:50%;margin:0 auto .5rem;animation:spin .8s linear infinite}.mine-tab{text-align:left}.mine-guest{background:#fff;border-radius:14px;padding:2rem 1.25rem;text-align:center;box-shadow:0 2px 12px #0000000f}.mine-guest .avatar{width:52px;height:52px;border-radius:50%;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;align-items:center;justify-content:center;font-size:1.5rem;margin:0 auto 1rem}.mine-guest p{color:#666;font-size:.9rem;margin-bottom:1rem}.mine-login-btn{width:100%;padding:.85rem;border:none;border-radius:12px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;font-size:.95rem;font-weight:600;cursor:pointer}.mine-profile{display:flex;align-items:center;gap:1rem;background:#fff;border-radius:14px;padding:1.25rem;margin-bottom:.75rem;box-shadow:0 2px 12px #0000000f}.mine-profile .avatar{width:52px;height:52px;border-radius:50%;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;align-items:center;justify-content:center;font-size:1.5rem}.profile-info .nickname{font-size:1.05rem;font-weight:600;color:#1a1a2e;margin-bottom:.25rem}.profile-info .openid{font-size:.7rem;color:#999;word-break:break-all}.mine-menu{background:#fff;border-radius:14px;overflow:hidden;margin-bottom:1rem;box-shadow:0 2px 12px #0000000f}.menu-item{width:100%;display:flex;justify-content:space-between;align-items:center;padding:1rem 1.1rem;border:none;background:#fff;font-size:.9rem;color:#333;cursor:pointer;text-align:left}.menu-item .arrow{color:#ccc;font-size:1.1rem}.debug-token-panel{background:#fffbe6;border:1px solid #ffe58f;border-radius:12px;padding:.85rem 1rem;margin-bottom:.75rem}.debug-token-title{font-size:.88rem;font-weight:600;color:#ad6800;margin-bottom:.35rem}.debug-token-hint{font-size:.75rem;color:#d48806;margin-bottom:.6rem;line-height:1.5}.debug-token-input{width:100%;box-sizing:border-box;border:1px solid #ffe58f;border-radius:8px;padding:.65rem .75rem;font-size:.78rem;font-family:monospace;resize:vertical;margin-bottom:.65rem;background:#fff}.debug-token-actions{display:flex;flex-direction:column;gap:.5rem}.debug-token-btn{width:100%;padding:.65rem;border:1px solid #faad14;border-radius:8px;background:#fff;color:#d48806;font-size:.85rem;cursor:pointer}.debug-token-btn.primary{background:#faad14;border-color:#faad14;color:#fff;font-weight:600}.debug-token-btn.danger{border-color:#ffa39e;color:#cf1322}.debug-token-status,.debug-token-success,.debug-token-error{margin-top:.55rem;font-size:.75rem;word-break:break-all}.debug-token-status{color:#8c8c8c}.debug-token-success{color:#389e0d}.debug-token-error{color:#cf1322}.mine-tab .logout-btn{width:100%;padding:.85rem;border:none;border-radius:12px;background:#fff;color:#cf1322;font-size:.9rem;font-weight:500;cursor:pointer;box-shadow:0 2px 12px #0000000f}.order-tab{text-align:left}.order-page-header{display:flex;align-items:center;gap:.75rem;margin-bottom:.75rem}.order-back-btn{flex-shrink:0;padding:.35rem .6rem;border-radius:8px;border:1px solid #ddd;background:#fff;font-size:.82rem;color:#666;cursor:pointer}.order-page-header h1{font-size:1.25rem;color:#1a1a2e}.order-status-tabs{display:flex;gap:.4rem;margin-bottom:.75rem;overflow-x:auto}.order-status-tabs button{flex-shrink:0;padding:.4rem .75rem;border:none;border-radius:999px;background:#fff;color:#666;font-size:.8rem;cursor:pointer}.order-status-tabs button.active{background:#667eea;color:#fff}.order-list{list-style:none;display:flex;flex-direction:column;gap:.65rem}.order-card{background:#fff;border-radius:12px;padding:.9rem 1rem;box-shadow:0 2px 8px #0000000d}.order-card.clickable{cursor:pointer}.order-title{font-size:.95rem;font-weight:600;color:#1a1a2e;margin-bottom:.35rem}.order-meta{font-size:.75rem;color:#999;margin-bottom:.5rem}.order-footer{display:flex;justify-content:space-between;align-items:center}.order-price{color:#d48806;font-weight:600;font-size:.95rem}.order-tags{display:flex;gap:.35rem}.order-tags .tag{font-size:.7rem;padding:.15rem .45rem;border-radius:4px;background:#e6f7ff;color:#096dd9}.order-tags .tag.muted{background:#f5f5f5;color:#999}.order-tab .spinner{width:28px;height:28px;border:3px solid #e8e8e8;border-top-color:#667eea;border-radius:50%;margin:0 auto .5rem;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.record-tab{text-align:left}.record-status-tabs{display:flex;gap:.4rem;margin-bottom:.75rem;overflow-x:auto}.record-status-tabs button{flex-shrink:0;padding:.4rem .75rem;border:none;border-radius:999px;background:#fff;color:#666;font-size:.8rem;cursor:pointer}.record-status-tabs button.active{background:#667eea;color:#fff}.record-list{list-style:none;display:flex;flex-direction:column;gap:.65rem}.record-card{background:#fff;border-radius:12px;padding:.9rem 1rem;box-shadow:0 2px 8px #0000000d}.record-card.clickable{cursor:pointer}.record-card-head{margin-bottom:.5rem}.record-title{font-size:.95rem;font-weight:600;color:#1a1a2e;margin-bottom:.35rem}.record-tags{display:flex;flex-wrap:wrap;gap:.35rem}.record-tags .tag{font-size:.7rem;padding:.15rem .45rem;border-radius:4px}.record-tags .tag.type{background:#f0f5ff;color:#2f54eb}.record-tags .tag.status.ongoing{background:#e6f7ff;color:#096dd9}.record-tags .tag.status.submitted,.record-tags .tag.status.pending{background:#fff7e6;color:#d48806}.record-tags .tag.status.done{background:#f6ffed;color:#389e0d}.record-tags .tag.status.timeout{background:#fff1f0;color:#cf1322}.record-meta,.record-footer{display:flex;flex-wrap:wrap;gap:.5rem .75rem;font-size:.75rem;color:#999}.record-meta{margin-bottom:.35rem}.record-score{color:#d48806;font-weight:600}.record-footer .passed{color:#389e0d;font-weight:500}.record-footer .failed{color:#cf1322;font-weight:500}.record-tab .spinner{width:28px;height:28px;border:3px solid #e8e8e8;border-top-color:#667eea;border-radius:50%;margin:0 auto .5rem;animation:record-spin .8s linear infinite}@keyframes record-spin{to{transform:rotate(360deg)}}.wrong-tab{text-align:left}.tab-page-header{margin-bottom:.75rem}.tab-page-header h1{font-size:1.25rem;color:#1a1a2e}.wrong-tab-summary{margin-top:.25rem;font-size:.8rem;color:#999}.guest-hint p{margin-bottom:1rem}.guest-login-btn{padding:.65rem 1.5rem;border:none;border-radius:10px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;font-size:.9rem;cursor:pointer}.tab-status,.tab-empty,.tab-error{background:#fff;border-radius:12px;padding:2rem;text-align:center;color:#666}.tab-error p{color:#cf1322;margin-bottom:.75rem}.tab-error button{padding:.5rem 1rem;border:none;border-radius:8px;background:#667eea;color:#fff;cursor:pointer}.tab-pagination{display:flex;justify-content:center;align-items:center;gap:1rem;margin-top:1rem;font-size:.85rem;color:#666}.tab-pagination button{padding:.4rem .75rem;border:1px solid #ddd;border-radius:8px;background:#fff;cursor:pointer}.tab-pagination button:disabled{opacity:.4;cursor:not-allowed}.wrong-list{list-style:none;display:flex;flex-direction:column;gap:.65rem}.wrong-card{background:#fff;border-radius:12px;padding:.9rem 1rem;box-shadow:0 2px 8px #0000000d;border-left:3px solid #ff7875}.wrong-card-head{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem;margin-bottom:.5rem}.wrong-type{font-size:.72rem;padding:.15rem .45rem;border-radius:4px;background:#f0f5ff;color:#2f54eb}.wrong-difficulty{font-size:.72rem;padding:.15rem .45rem;border-radius:4px;background:#f5f5f5;color:#666}.wrong-count{margin-left:auto;font-size:.72rem;padding:.15rem .45rem;border-radius:4px;background:#fff1f0;color:#cf1322;font-weight:600}.wrong-content{font-size:.9rem;line-height:1.65;color:#1a1a2e;white-space:pre-wrap;margin-bottom:.5rem}.wrong-footer{font-size:.75rem;color:#999}.wrong-tab .spinner{width:28px;height:28px;border:3px solid #e8e8e8;border-top-color:#667eea;border-radius:50%;margin:0 auto .5rem;animation:wrong-spin .8s linear infinite}@keyframes wrong-spin{to{transform:rotate(360deg)}}.main-layout{min-height:100vh;display:flex;flex-direction:column;background:#f5f6fa}.main-content{flex:1;overflow-y:auto;padding:12px 12px 72px;-webkit-overflow-scrolling:touch}.tab-bar{position:fixed;left:0;right:0;bottom:0;z-index:100;display:flex;width:100%;height:56px;padding-bottom:env(safe-area-inset-bottom,0);background:#fff;border-top:1px solid #eee;box-shadow:0 -2px 12px #0000000f}.tab-item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;text-decoration:none;color:#999;font-size:.7rem;transition:color .2s}.tab-item.active{color:#667eea}.tab-icon{font-size:1.25rem;line-height:1}.tab-label{font-weight:500}.tab-item.active .tab-label{font-weight:600}.app.auth-shell{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px;background:transparent}.container{width:100%;max-width:560px;text-align:center}.title{color:#fff;font-size:2.5rem;font-weight:700;margin-bottom:2rem;text-shadow:0 2px 10px rgba(0,0,0,.2)}.warning{background:#fff;border-radius:16px;padding:2rem;box-shadow:0 10px 40px #0003}.warning p{color:#666;font-size:1.1rem;margin:.5rem 0}.warning p:first-child{font-size:1.5rem;color:#ff6b6b;font-weight:600}.version-pill{margin-top:.5rem;display:inline-flex;align-items:center;justify-content:center;padding:6px 12px;border-radius:999px;background:#ffffff2e;color:#f1f5ff;font-size:.7rem;border:1px solid rgba(255,255,255,.35);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);margin-bottom:2rem}*{margin:0;padding:0;box-sizing:border-box}html{background:#667eea}html:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;background:linear-gradient(135deg,#667eea,#764ba2);pointer-events:none}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh;overflow-x:hidden;background:transparent}#root{min-height:100vh;background:transparent}
