:root{
  --primary:#4F6BED;--primary-dark:#3A56D4;--primary-light:#7B93F5;--primary-lighter:#B4C2FA;
  --primary-gradient:linear-gradient(135deg,#4F6BED 0%,#7B93F5 100%);
  --primary-gradient-soft:linear-gradient(135deg,rgba(79,107,237,.08) 0%,rgba(123,147,245,.04) 100%);
  --bg:#F4F6FB;--bg-gradient:linear-gradient(180deg,#EEF2FF 0%,#F4F6FB 25%,#F4F6FB 100%);
  --card-bg:#FFFFFF;--card-bg-soft:#F8F9FC;
  --text:#1A1A2E;--text-secondary:#6B7280;--text-light:#9CA3AF;--text-lighter:#C4C9D4;
  --border:#E8EAF0;--border-light:#F0F2F8;
  --orange:#FF8A3D;--green:#22B07D;--red:#F04452;--purple:#8B5CF6;--cyan:#06B6D4;
  --shadow-xs:0 1px 3px rgba(0,0,0,.04);--shadow-sm:0 2px 8px rgba(0,0,0,.06);
  --shadow-md:0 4px 16px rgba(0,0,0,.08);--shadow-lg:0 8px 30px rgba(0,0,0,.12);
  --shadow-primary:0 4px 14px rgba(79,107,237,.35);--shadow-primary-lg:0 8px 24px rgba(79,107,237,.4);
  --tabbar-height:60px;--safe-bottom:env(safe-area-inset-bottom,0px);--safe-top:env(safe-area-inset-top,0px);
  --radius-sm:10px;--radius-md:14px;--radius-lg:18px;--radius-xl:22px;
}
@media(prefers-color-scheme:dark){
  :root{--bg:#0C0E15;--bg-gradient:linear-gradient(180deg,#131829 0%,#0C0E15 30%,#0C0E15 100%);
  --card-bg:#1A1D2A;--card-bg-soft:#222636;--text:#E8EAF0;--text-secondary:#9CA3AF;
  --text-light:#6B7280;--text-lighter:#4B5563;--border:#2A2E3F;--border-light:#222636;}
}
*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{height:100%;overflow:hidden}
body{font-family:-apple-system,BlinkMacSystemFont,'SF Pro Display','Segoe UI','PingFang SC','Hiragino Sans GB','Microsoft YaHei',sans-serif;background:var(--bg-gradient);color:var(--text);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}
#app{display:flex;flex-direction:column;height:100vh;height:100dvh;position:relative}
#content{flex:1;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;padding-bottom:calc(var(--tabbar-height) + var(--safe-bottom) + 16px);scroll-behavior:smooth}
#content::-webkit-scrollbar{display:none}
.page{display:none;padding:0 14px 16px;animation:pageIn .35s cubic-bezier(.16,1,.3,1)}
.page.active{display:block}
@keyframes pageIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
.page-header{display:flex;align-items:center;justify-content:space-between;padding:calc(var(--safe-top) + 14px) 2px 16px}
.page-title{font-size:24px;font-weight:800;letter-spacing:-.3px}
.header-actions{display:flex;gap:8px;align-items:center}
.icon-btn{width:38px;height:38px;border-radius:10px;background:var(--card-bg);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;font-size:18px;cursor:pointer;transition:all .2s;box-shadow:var(--shadow-xs)}
.icon-btn:active{transform:scale(.92)}
.card{background:var(--card-bg);border-radius:var(--radius-lg);padding:16px;margin-bottom:12px;box-shadow:var(--shadow-sm);border:1px solid var(--border-light)}
.card-title{font-size:15px;font-weight:700;margin-bottom:14px;display:flex;align-items:center;gap:8px}
.card-title .icon{width:26px;height:26px;border-radius:7px;display:flex;align-items:center;justify-content:center;font-size:14px;background:var(--primary-gradient-soft)}
/* TabBar */
#tabbar{position:fixed;bottom:0;left:0;right:0;height:calc(var(--tabbar-height) + var(--safe-bottom));padding-bottom:var(--safe-bottom);background:rgba(255,255,255,.88);backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border-top:1px solid var(--border-light);display:flex;align-items:center;justify-content:space-around;z-index:100;box-shadow:0 -4px 20px rgba(0,0,0,.05)}
@media(prefers-color-scheme:dark){#tabbar{background:rgba(26,29,42,.88)}}
.tab-item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:var(--text-light);font-size:10px;font-weight:600;gap:2px;cursor:pointer;transition:all .25s cubic-bezier(.16,1,.3,1);position:relative}
.tab-item.active{color:var(--primary);transform:translateY(-1px)}
.tab-item .tab-icon{font-size:21px;line-height:1;transition:transform .25s}
.tab-item.active .tab-icon{transform:scale(1.12)}
.tab-item.camera-tab .tab-icon{width:54px;height:54px;background:var(--primary-gradient);border-radius:50%;display:flex;align-items:center;justify-content:center;color:white;font-size:25px;margin-top:-26px;box-shadow:var(--shadow-primary-lg);border:4px solid var(--card-bg);position:relative;z-index:2;animation:cameraPulse 2.5s ease-in-out infinite}
@keyframes cameraPulse{0%,100%{box-shadow:var(--shadow-primary-lg),0 0 0 0 rgba(79,107,237,.4)}50%{box-shadow:var(--shadow-primary-lg),0 0 0 10px rgba(79,107,237,0)}}
.tab-item.camera-tab:active .tab-icon{transform:scale(.9)}
/* 按钮 */
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:0 20px;border:none;border-radius:var(--radius-md);font-size:14px;font-weight:600;cursor:pointer;transition:all .2s cubic-bezier(.16,1,.3,1);gap:6px;position:relative;overflow:hidden;letter-spacing:.2px}
.btn::after{content:'';position:absolute;top:50%;left:50%;width:0;height:0;background:rgba(255,255,255,.3);border-radius:50%;transform:translate(-50%,-50%);transition:width .4s,height .4s}
.btn:active::after{width:200px;height:200px}
.btn:active{transform:scale(.97)}
.btn-primary{background:var(--primary-gradient);color:white;box-shadow:var(--shadow-primary)}
.btn-secondary{background:var(--card-bg-soft);color:var(--text);border:1px solid var(--border)}
.btn-danger{background:linear-gradient(135deg,#F04452,#FF6B7A);color:white;box-shadow:0 4px 14px rgba(240,68,82,.35)}
.btn-success{background:linear-gradient(135deg,#22B07D,#5DD3A6);color:white;box-shadow:0 4px 14px rgba(34,176,125,.35)}
.btn-block{width:100%}
.btn-large{min-height:52px;font-size:15px;border-radius:var(--radius-lg)}
.btn-sm{min-height:34px;padding:0 12px;font-size:12px;border-radius:8px}
/* 表单 */
.form-group{margin-bottom:16px}
.form-label{display:block;font-size:12px;color:var(--text-secondary);margin-bottom:6px;font-weight:700;text-transform:uppercase;letter-spacing:.5px}
.form-input,.form-textarea,.form-select{width:100%;min-height:46px;padding:11px 14px;border:1.5px solid var(--border);border-radius:var(--radius-md);font-size:14px;background:var(--card-bg-soft);color:var(--text);font-family:inherit;transition:all .2s;-webkit-appearance:none;appearance:none}
.form-input:focus,.form-textarea:focus,.form-select:focus{outline:none;border-color:var(--primary);background:var(--card-bg);box-shadow:0 0 0 4px rgba(79,107,237,.1)}
.form-textarea{min-height:90px;resize:vertical;line-height:1.7}
.form-select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%239CA3AF' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;padding-right:38px}
/* 标签 */
.tag{display:inline-flex;align-items:center;padding:3px 10px;border-radius:16px;font-size:11px;font-weight:600;gap:3px}
.tag-math{background:rgba(79,107,237,.1);color:var(--primary)}
.tag-physics{background:rgba(255,138,61,.1);color:var(--orange)}
.tag-chemistry{background:rgba(34,176,125,.1);color:var(--green)}
.tag-biology{background:rgba(6,182,212,.1);color:var(--cyan)}
.tag-chinese{background:rgba(139,92,246,.1);color:var(--purple)}
.tag-english{background:rgba(240,68,82,.1);color:var(--red)}
.tag-other{background:var(--card-bg-soft);color:var(--text-secondary)}
.tag-pending{background:rgba(255,138,61,.1);color:var(--orange)}
.tag-reviewing{background:rgba(79,107,237,.1);color:var(--primary)}
.tag-mastered{background:rgba(34,176,125,.1);color:var(--green)}
.tag-correct{background:rgba(34,176,125,.12);color:var(--green)}
.tag-wrong{background:rgba(240,68,82,.12);color:var(--red)}
/* 统计四宫格 */
.stats-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:12px}
.stat-card{background:var(--card-bg);border-radius:var(--radius-lg);padding:14px 12px;box-shadow:var(--shadow-sm);border:1px solid var(--border-light);position:relative;overflow:hidden;transition:transform .2s}
.stat-card:active{transform:scale(.97)}
.stat-card .stat-icon{width:34px;height:34px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:18px;margin-bottom:8px}
.stat-card .stat-value{font-size:26px;font-weight:800;letter-spacing:-.5px;line-height:1.1}
.stat-card .stat-label{font-size:11px;color:var(--text-secondary);margin-top:3px;font-weight:500}
.stat-card .stat-sub{font-size:10px;color:var(--text-light);margin-top:2px}
/* 科目分布 */
.subject-bar-item{margin-bottom:12px;display:flex;align-items:center;gap:10px}
.subject-bar-name{width:36px;font-size:12px;font-weight:600;color:var(--text-secondary);flex-shrink:0}
.subject-bar-track{flex:1;height:22px;background:var(--card-bg-soft);border-radius:6px;overflow:hidden;position:relative}
.subject-bar-fill{height:100%;border-radius:6px;transition:width .6s cubic-bezier(.16,1,.3,1);display:flex;align-items:center;justify-content:flex-end;padding-right:6px;min-width:24px}
.subject-bar-fill .bar-count{font-size:10px;color:white;font-weight:700}
.subject-bar-percent{width:32px;font-size:11px;color:var(--text-light);text-align:right;flex-shrink:0}
/* 薄弱知识点 */
.weak-item{margin-bottom:10px}
.weak-item-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}
.weak-item-name{font-size:13px;font-weight:600}
.weak-item-count{font-size:11px;color:var(--text-secondary)}
.weak-bar-track{height:8px;background:var(--card-bg-soft);border-radius:4px;overflow:hidden}
.weak-bar-fill{height:100%;border-radius:4px;background:var(--primary-gradient);transition:width .6s cubic-bezier(.16,1,.3,1)}
/* 柱状图 */
.bar-chart{display:flex;align-items:flex-end;justify-content:space-between;height:120px;gap:4px;padding-top:16px}
.bar-item{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;height:100%;justify-content:flex-end}
.bar-value{font-size:10px;font-weight:700;color:var(--text-secondary)}
.bar-fill{width:100%;background:var(--primary-gradient);border-radius:5px 5px 0 0;min-height:4px;transition:height .6s cubic-bezier(.16,1,.3,1);position:relative;overflow:hidden}
.bar-fill::after{content:'';position:absolute;top:0;left:0;right:0;height:40%;background:linear-gradient(180deg,rgba(255,255,255,.25),transparent)}
.bar-label{font-size:9px;color:var(--text-light);font-weight:500}
/* 最近收录 */
.recent-item{display:flex;align-items:flex-start;gap:10px;padding:10px 0;border-bottom:1px solid var(--border-light)}
.recent-item:last-child{border-bottom:none}
.recent-subject{width:44px;flex-shrink:0}
.recent-text{flex:1;font-size:13px;color:var(--text-secondary);line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-width:0}
.recent-meta{display:flex;flex-direction:column;align-items:flex-end;gap:4px;flex-shrink:0}
.recent-date{font-size:10px;color:var(--text-light)}
/* 搜索框 */
.search-box{display:flex;align-items:center;background:var(--card-bg);border-radius:var(--radius-md);padding:0 14px;margin-bottom:12px;border:1.5px solid var(--border);transition:all .2s;box-shadow:var(--shadow-xs)}
.search-box:focus-within{border-color:var(--primary);box-shadow:0 0 0 4px rgba(79,107,237,.1)}
.search-box input{flex:1;border:none;background:transparent;min-height:42px;font-size:14px;color:var(--text);outline:none;font-weight:500}
.search-box input::placeholder{color:var(--text-light)}
.search-box .search-icon{color:var(--text-light);margin-right:8px;font-size:15px}
/* 筛选 */
.filter-bar{display:flex;gap:6px;margin-bottom:12px;overflow-x:auto;padding-bottom:2px;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.filter-bar::-webkit-scrollbar{display:none}
.filter-chip{flex-shrink:0;padding:6px 13px;border-radius:16px;background:var(--card-bg);border:1.5px solid var(--border);font-size:12px;font-weight:600;color:var(--text-secondary);cursor:pointer;transition:all .2s;white-space:nowrap}
.filter-chip.active{background:var(--primary-gradient);color:white;border-color:transparent;box-shadow:var(--shadow-primary)}
/* 错题卡片 */
.question-card{background:var(--card-bg);border-radius:var(--radius-lg);padding:14px;margin-bottom:10px;box-shadow:var(--shadow-sm);border:1px solid var(--border-light);cursor:pointer;transition:all .2s;position:relative;overflow:hidden}
.question-card:active{transform:scale(.98)}
.q-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;gap:6px}
.q-card-tags{display:flex;gap:5px;flex-wrap:wrap}
.q-card-text{font-size:13px;color:var(--text-secondary);line-height:1.6;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.q-card-footer{display:flex;align-items:center;justify-content:space-between;margin-top:10px;padding-top:10px;border-top:1px dashed var(--border-light)}
.q-card-kp{font-size:11px;color:var(--text-light);max-width:60%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.q-card-date{font-size:11px;color:var(--text-light)}
/* 空状态 */
.empty-state{text-align:center;padding:60px 20px;color:var(--text-light)}
.empty-state .empty-icon{font-size:64px;margin-bottom:16px;opacity:.5;display:inline-block;animation:float 3s ease-in-out infinite}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
.empty-state .empty-text{font-size:14px;margin-bottom:20px;color:var(--text-secondary);line-height:1.6}
/* Toast */
#toast-container{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:9999;pointer-events:none;display:flex;flex-direction:column;align-items:center;gap:8px}
.toast{background:rgba(26,26,46,.92);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);color:white;padding:12px 22px;border-radius:var(--radius-md);font-size:14px;font-weight:500;animation:toastIn .3s cubic-bezier(.16,1,.3,1);max-width:80vw;text-align:center;box-shadow:var(--shadow-lg)}
@keyframes toastIn{from{opacity:0;transform:translateY(10px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}
/* 弹窗 */
.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.45);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:200;display:flex;align-items:flex-end;justify-content:center;animation:fadeIn .25s ease}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
.modal{background:var(--card-bg);width:100%;max-width:520px;border-radius:var(--radius-xl) var(--radius-xl) 0 0;padding:22px 18px;max-height:88vh;overflow-y:auto;animation:slideUp .35s cubic-bezier(.16,1,.3,1);padding-bottom:calc(22px + var(--safe-bottom));position:relative}
.modal::before{content:'';position:absolute;top:8px;left:50%;transform:translateX(-50%);width:36px;height:4px;background:var(--border);border-radius:2px}
@keyframes slideUp{from{transform:translateY(100%)}to{transform:translateY(0)}}
.modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px;padding-top:6px}
.modal-title{font-size:19px;font-weight:800;letter-spacing:-.3px}
.modal-close{width:34px;height:34px;border-radius:50%;background:var(--card-bg-soft);border:none;font-size:15px;color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}
.modal-close:active{transform:scale(.9)}
/* 步骤指示器 */
.steps{display:flex;align-items:center;justify-content:center;margin-bottom:20px;gap:6px}
.step-dot{width:30px;height:30px;border-radius:50%;background:var(--card-bg-soft);color:var(--text-light);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;transition:all .3s;border:2px solid var(--border)}
.step-dot.active{background:var(--primary-gradient);color:white;border-color:transparent;box-shadow:var(--shadow-primary);transform:scale(1.1)}
.step-dot.done{background:var(--green);color:white;border-color:transparent}
.step-line{width:22px;height:3px;background:var(--border);border-radius:2px;transition:background .3s}
.step-line.done{background:var(--green)}
/* 加载 */
.loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 20px;gap:14px}
.spinner{width:42px;height:42px;border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.loading-text{color:var(--text-secondary);font-size:14px;font-weight:600}
.loading-desc{color:var(--text-light);font-size:12px;text-align:center;max-width:280px;line-height:1.6}
.loading-progress{width:100%;max-width:220px;height:6px;background:var(--card-bg-soft);border-radius:3px;overflow:hidden}
.loading-progress-bar{height:100%;background:var(--primary-gradient);border-radius:3px;transition:width .3s}
/* 拍照引导 */
.camera-guide{text-align:center;padding:32px 20px;background:var(--card-bg);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);border:1px solid var(--border-light);position:relative;overflow:hidden}
.camera-guide::before{content:'';position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:radial-gradient(circle,rgba(79,107,237,.06) 0%,transparent 60%);animation:pulseBg 4s ease-in-out infinite}
@keyframes pulseBg{0%,100%{transform:scale(1);opacity:.5}50%{transform:scale(1.1);opacity:.8}}
.camera-guide .guide-icon{font-size:72px;margin-bottom:16px;position:relative;z-index:1}
.camera-guide .guide-text{font-size:14px;color:var(--text-secondary);margin-bottom:28px;line-height:1.7;position:relative;z-index:1}
.camera-btn{width:90px;height:90px;border-radius:50%;background:var(--primary-gradient);border:5px solid var(--card-bg);box-shadow:var(--shadow-primary-lg),0 0 0 8px rgba(79,107,237,.1);display:flex;align-items:center;justify-content:center;color:white;font-size:38px;cursor:pointer;transition:all .25s;margin:0 auto 18px;position:relative;z-index:1}
.camera-btn::before{content:'';position:absolute;inset:-10px;border-radius:50%;border:2px dashed var(--primary-lighter);animation:rotate 20s linear infinite;opacity:.4}
@keyframes rotate{to{transform:rotate(360deg)}}
.camera-btn:active{transform:scale(.9)}
.camera-guide .alt-link{font-size:13px;color:var(--primary);text-decoration:none;font-weight:600;cursor:pointer;position:relative;z-index:1;display:inline-flex;align-items:center;gap:4px}
/* 识别结果 */
.result-image-wrap{position:relative;margin-bottom:14px}
.result-image-wrap img{width:100%;max-height:180px;object-fit:contain;border-radius:var(--radius-md);background:var(--card-bg-soft);border:1px solid var(--border-light)}
.result-badge{position:absolute;top:8px;right:8px;background:var(--primary-gradient);color:white;padding:4px 12px;border-radius:14px;font-size:11px;font-weight:700;box-shadow:var(--shadow-primary)}
.engine-badge{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border-radius:16px;font-size:11px;font-weight:700;margin-bottom:14px}
.engine-badge.vision{background:rgba(139,92,246,.1);color:var(--purple)}
.engine-badge.offline{background:rgba(255,138,61,.1);color:var(--orange)}
.engine-badge .dot{width:7px;height:7px;border-radius:50%;background:currentColor;animation:blink 1.5s ease-in-out infinite}
@keyframes blink{0%,100%{opacity:1}50%{opacity:.4}}
.confidence-bar{display:flex;align-items:center;gap:8px;margin-bottom:14px;font-size:12px;color:var(--text-secondary)}
.confidence-track{flex:1;height:6px;background:var(--card-bg-soft);border-radius:3px;overflow:hidden}
.confidence-fill{height:100%;border-radius:3px;transition:width .5s}
/* 设置项 */
.setting-item{display:flex;align-items:center;justify-content:space-between;padding:13px 8px;border-bottom:1px solid var(--border-light);cursor:pointer;transition:background .2s;border-radius:8px;margin:0 -8px}
.setting-item:last-child{border-bottom:none}
.setting-item:active{background:var(--card-bg-soft)}
.setting-label{font-size:14px;font-weight:500;display:flex;align-items:center;gap:10px}
.setting-label .icon{width:26px;height:26px;border-radius:7px;display:flex;align-items:center;justify-content:center;font-size:13px;background:var(--primary-gradient-soft)}
.setting-value{font-size:12px;color:var(--text-light);max-width:45%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.setting-arrow{color:var(--text-lighter);font-size:16px;font-weight:300}
/* 个人资料卡 */
.profile-card{background:var(--primary-gradient);border-radius:var(--radius-xl);padding:20px 18px;margin-bottom:14px;color:white;position:relative;overflow:hidden;box-shadow:var(--shadow-primary-lg)}
.profile-card::before{content:'';position:absolute;top:-28px;right:-28px;width:110px;height:110px;border-radius:50%;background:rgba(255,255,255,.1)}
.profile-card::after{content:'';position:absolute;bottom:-36px;left:-18px;width:90px;height:90px;border-radius:50%;background:rgba(255,255,255,.07)}
.profile-top{display:flex;align-items:center;gap:12px;margin-bottom:14px;position:relative;z-index:1}
.profile-avatar{width:50px;height:50px;border-radius:14px;background:rgba(255,255,255,.2);display:flex;align-items:center;justify-content:center;font-size:26px;border:2px solid rgba(255,255,255,.3)}
.profile-name{font-size:18px;font-weight:800}
.profile-grade{font-size:12px;opacity:.85;margin-top:2px}
.profile-stats{display:flex;gap:16px;padding-top:14px;border-top:1px solid rgba(255,255,255,.2);position:relative;z-index:1}
.profile-stat-num{font-size:20px;font-weight:800}
.profile-stat-label{font-size:10px;opacity:.8;margin-top:1px}
/* 复习卡片 */
.review-card{background:var(--card-bg);border-radius:var(--radius-xl);padding:22px 18px;box-shadow:var(--shadow-md);margin-bottom:14px;border:1px solid var(--border-light);position:relative}
.review-card::before{content:'';position:absolute;top:0;left:0;right:0;height:4px;background:var(--primary-gradient);border-radius:var(--radius-xl) var(--radius-xl) 0 0}
.review-question{font-size:15px;line-height:1.8;margin-bottom:18px;white-space:pre-wrap;font-weight:500;color:var(--text)}
.reveal-section{background:var(--card-bg-soft);border-radius:var(--radius-md);padding:14px;margin-bottom:12px;border-left:4px solid var(--primary);animation:revealIn .3s ease}
@keyframes revealIn{from{opacity:0;transform:translateX(-8px)}to{opacity:1;transform:translateX(0)}}
.reveal-section.correct{border-left-color:var(--green)}
.reveal-section.wrong{border-left-color:var(--red)}
.reveal-label{font-size:11px;color:var(--text-secondary);margin-bottom:6px;font-weight:700;text-transform:uppercase;letter-spacing:.5px}
.reveal-content{font-size:14px;line-height:1.7;white-space:pre-wrap}
.review-actions{display:flex;gap:10px;margin-top:18px}
.review-actions .btn{flex:1}
.review-progress{text-align:center;font-size:13px;color:var(--text-secondary);margin-bottom:14px;font-weight:600}
.review-progress .count{color:var(--primary);font-size:16px;font-weight:800}
/* 复习模式 */
.mode-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px}
.mode-card{background:var(--card-bg);border-radius:var(--radius-lg);padding:16px 14px;box-shadow:var(--shadow-sm);border:1.5px solid var(--border);cursor:pointer;transition:all .2s;text-align:center}
.mode-card:active{transform:scale(.97)}
.mode-card.recommended{border-color:var(--primary);background:var(--primary-gradient-soft)}
.mode-icon{font-size:32px;margin-bottom:8px}
.mode-name{font-size:14px;font-weight:700;margin-bottom:2px}
.mode-desc{font-size:11px;color:var(--text-secondary);line-height:1.4}
/* 详情图片 */
.detail-image{width:100%;border-radius:var(--radius-md);margin-bottom:14px;max-height:260px;object-fit:contain;background:var(--card-bg-soft);border:1px solid var(--border-light)}
.kp-list{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px}
.ai-result-field{margin-bottom:14px}
.ai-result-field .field-label{font-size:11px;color:var(--text-secondary);margin-bottom:5px;font-weight:700;text-transform:uppercase;letter-spacing:.5px}
.storage-bar{height:6px;background:var(--card-bg-soft);border-radius:3px;overflow:hidden;margin-top:6px}
.storage-fill{height:100%;border-radius:3px;transition:width .5s}
#fileInput{display:none}
/* 多题识别列表 */
.question-result-item{background:var(--card-bg-soft);border-radius:var(--radius-md);padding:14px;margin-bottom:10px;border:1.5px solid var(--border);transition:all .2s}
.question-result-item.selected{border-color:var(--primary);background:var(--primary-gradient-soft)}
.question-result-item .qri-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;gap:8px}
.question-result-item .qri-check{width:22px;height:22px;border-radius:50%;border:2px solid var(--border);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s;flex-shrink:0}
.question-result-item.selected .qri-check{background:var(--primary-gradient);border-color:transparent;color:white}
.question-result-item .qri-text{font-size:13px;line-height:1.6;color:var(--text-secondary);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.question-result-item .qri-meta{display:flex;gap:5px;flex-wrap:wrap;margin-top:8px}
.qri-expand{font-size:12px;color:var(--primary);font-weight:600;cursor:pointer;margin-top:8px;display:inline-flex;align-items:center;gap:4px}
.qri-detail{margin-top:10px;padding-top:10px;border-top:1px dashed var(--border-light);display:none}
.qri-detail.open{display:block}
@media(min-width:520px){.page{max-width:520px;margin:0 auto}#tabbar{max-width:520px;margin:0 auto;left:50%;transform:translateX(-50%)}}
