.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;background:#f5f6fa}.record-header{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem}.record-header h1{font-size:1.2rem;color:#1a1a2e}.exam-record-page .back-btn{padding:.35rem .6rem;border-radius:8px;border:1px solid #ddd;background:#fff;cursor:pointer}.record-card{background:#fff;border-radius:12px;padding:1.25rem;color:#333;font-size:.9rem;line-height:1.6}.record-tip{margin-top:.75rem;color:#999;font-size:.85rem}.record-error{color:#cf1322;padding:1rem}.record-hint{color:#666;padding:1rem}.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}.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;gap:.75rem;margin-top:.25rem}.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.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-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}.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}.tab-page-header{margin-bottom:.75rem}.tab-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}.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}.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}.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}.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)}}.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;max-width:560px;margin:0 auto;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}
