.mobile-page .phone{background:linear-gradient(to bottom,#e3f2fd,#f5f7fa 25% 100%);display:flex;flex-direction:column}.nav-bar{display:flex;justify-content:space-between;align-items:center;padding:0 var(--mobile-padding);height:44px;background:transparent}.nav-icon{width:24px;height:24px;display:flex;align-items:center;justify-content:center;cursor:pointer}.nav-icon svg{width:22px;height:22px;stroke:#000;fill:none;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}.nav-title{font-size:17px;font-weight:var(--fw-bold);color:#000}.mp-pill{display:flex;align-items:center;background:#fff9;border:1px solid rgba(0,0,0,.08);border-radius:16px;padding:4px 10px;gap:8px}.mp-pill .dots svg{width:16px;height:16px;fill:#000}.mp-pill .divider{width:1px;height:14px;background:#0000001a}.mp-pill .circle svg{width:16px;height:16px;stroke:#000;stroke-width:2;fill:none}.top-header{padding:12px var(--mobile-padding) 4px;flex-shrink:0}.segment-wrapper{display:flex;justify-content:center}.segmented-control{display:inline-flex;background:#ffffff80;border-radius:var(--radius-md);overflow:hidden;padding:2px}.segment-btn{padding:6px 20px;font-size:var(--font-sm);color:var(--text-secondary);border-radius:var(--radius-sm);cursor:pointer;transition:all .2s ease}.segment-btn.active{background:#fff;color:var(--text-primary);font-weight:var(--fw-medium);box-shadow:0 1px 3px #0000000d}.segmented-control.locked .segment-btn{cursor:default}.segmented-control.locked .segment-btn:not(.active){opacity:.55}.tab-container{padding:12px var(--mobile-padding) var(--mobile-padding);display:none;padding-bottom:100px}.tab-container.active{display:block}.form-group{background:#fff;border-radius:12px;padding:16px;margin-bottom:16px}.form-title{font-size:var(--font-md);font-weight:var(--fw-bold);margin-bottom:16px;color:var(--text-primary);display:flex;justify-content:space-between;align-items:center}.form-title-right{font-size:15px;color:var(--text-muted);font-weight:400}.book-card{display:flex;align-items:center;gap:12px;cursor:pointer}.book-card.locked{cursor:default}.book-card.locked .book-arrow{opacity:.35}.book-cover-mock{width:65px;height:85px;background:linear-gradient(135deg,#f2f2f2,#e0e0e0);border-radius:6px;border:1px solid var(--border);flex-shrink:0;display:flex;flex-direction:column;overflow:hidden}.book-cover-mock .top{height:16px;background:#e8f5e9}.book-cover-mock .mid{flex:1;display:flex;align-items:center;justify-content:center;font-size:10px;color:#a372b6;font-weight:700;background:#fff}.book-cover-mock .bottom{height:35px;background:#a372b6;clip-path:polygon(0 0,100% 30%,100% 100%,0 100%)}.book-cover-mock.subject-yuwen{background:linear-gradient(135deg,#e0c3fc,#8ec5fc);border:none}.book-cover-mock.subject-shuxue{background:linear-gradient(135deg,#fdfbfb,#ebedee)}.book-cover-mock.subject-yingyu{background:linear-gradient(135deg,#f6d365,#fda085);border:none}.book-cover-mock.subject{align-items:center;justify-content:center;font-size:24px;font-weight:700;color:#000000a6;letter-spacing:2px}.book-info{flex:1;display:flex;flex-direction:column;justify-content:center;gap:6px}.book-title{font-size:16px;font-weight:var(--fw-bold);color:var(--text-primary)}.book-desc{font-size:13px;color:var(--text-muted);line-height:1.4}.book-arrow{width:24px;height:24px;display:flex;align-items:center;justify-content:center}.book-arrow svg{width:20px;height:20px;stroke:var(--text-secondary);fill:none;stroke-width:2}.selection-placeholder{flex:1;font-size:15px;color:var(--text-muted);display:flex;align-items:center;line-height:1.5}.selection-meta-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.selection-chip{padding:3px 9px;border-radius:999px;background:#eff6ff;color:#2563eb;font-size:12px;font-weight:600}.student-avatar-badge{width:42px;height:42px;border-radius:50%;background:linear-gradient(135deg,#dbeafe,#bfdbfe);color:#1d4ed8;display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:700;flex-shrink:0}.photo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:30px}.photo-item{aspect-ratio:1;background:var(--bg-page);border-radius:8px;position:relative}.photo-item img{width:100%;height:100%;object-fit:cover;border-radius:8px}.photo-delete{position:absolute;top:-8px;right:-8px;width:22px;height:22px;background:#3c3c3ce6;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:10}.photo-delete svg{width:12px;height:12px;stroke:#fff;fill:none;stroke-width:2.5;stroke-linecap:round}.add-photo-btn{aspect-ratio:1;background:#f8f9fb;border:1px dashed #D1D5DB;border-radius:8px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;cursor:pointer;color:var(--text-secondary)}.add-photo-btn svg{width:24px;height:24px;stroke:#8f95a3;fill:none;stroke-width:1.5}.add-photo-btn span{font-size:12px;color:#8f95a3;font-weight:var(--fw-medium)}.add-photo-btn.hidden{display:none}.upload-tips{text-align:center;font-size:12px;color:#c0c4cc;line-height:1.6;margin-top:10px}.floating-action-bar{position:absolute;bottom:0;left:0;right:0;background:#fff;padding:12px var(--mobile-padding) 34px;display:flex;z-index:100}.btn-submit{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:14px 0;background:linear-gradient(90deg,#4facfe,#00f2fe);color:#fff;border-radius:28px;font-size:17px;font-weight:var(--fw-medium);border:none;cursor:pointer;opacity:.6;pointer-events:none;transition:opacity .2s}.btn-submit.active{opacity:1;pointer-events:auto}.btn-submit.loading{opacity:1;pointer-events:none}.btn-spinner{display:none;width:16px;height:16px;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;border-radius:50%;animation:spin .9s linear infinite}.btn-submit.loading .btn-spinner{display:inline-block}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.photo-item.uploading .photo-delete{display:none}.upload-photo-state{position:absolute;right:6px;top:6px;width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-size:12px;font-weight:700;box-shadow:0 2px 8px #0f172a3d}.upload-photo-state.pending{background:#3b82f6f2}.upload-photo-state.pending:before{content:"";width:12px;height:12px;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}.upload-photo-state.success{background:#10b981f5}.upload-photo-state.failed{background:#ef4444f5}.inline-upload-panel{display:none;margin:0 var(--mobile-padding) 12px;background:#fff;border-radius:16px;padding:14px;box-shadow:0 12px 28px #0f172a1f}.inline-upload-panel.show{display:block}.modal-overlay{position:absolute;inset:0;background:#0f172a94;z-index:1800;display:none;align-items:center;justify-content:center}.modal-overlay.show{display:flex}.modal-box{background:var(--bg-card);width:280px;border-radius:var(--radius-lg);overflow:hidden;animation:scaleIn .2s ease-out}.modal-body{padding:24px 20px;text-align:center;font-size:16px;color:var(--text-primary);line-height:1.5}.modal-footer{display:flex;border-top:1px solid var(--border)}.modal-btn{flex:1;padding:14px 0;text-align:center;font-size:16px;cursor:pointer}.modal-btn.cancel{border-right:1px solid var(--border);color:var(--text-secondary)}.modal-btn.confirm{color:var(--brand-primary);font-weight:var(--fw-medium)}@keyframes scaleIn{0%{transform:scale(.95);opacity:0}to{transform:scale(1);opacity:1}}.sheet-overlay{position:absolute;inset:0;display:none;align-items:flex-end;justify-content:center;background:#0f172a75;z-index:1900}.sheet-overlay.show{display:flex}.sheet-panel{width:100%;max-height:72%;background:#fff;border-radius:20px 20px 0 0;box-shadow:0 -12px 36px #0f172a2e;padding:10px 16px 18px;display:flex;flex-direction:column;animation:sheetUp .22s ease-out}.sheet-handle{width:44px;height:5px;border-radius:999px;background:#dbe2ea;margin:0 auto 12px}.sheet-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px}.sheet-head-title{font-size:16px;font-weight:700;color:#0f172a}.sheet-head-sub{margin-top:4px;font-size:12px;color:#64748b;line-height:1.5}.sheet-close{width:28px;height:28px;border:none;border-radius:50%;background:#f1f5f9;color:#475569;font-size:16px;line-height:1;cursor:pointer;flex-shrink:0}.sheet-class-selector-wrap{margin:12px 0 10px;background:#f8fafc;border-radius:12px;position:relative;padding:12px 14px;display:flex;align-items:center;border:1px solid #e2e8f0}.sheet-class-selector-wrap .label{font-size:14px;color:#64748b;margin-right:8px;flex-shrink:0}.sheet-class-selector-wrap .value{flex:1;font-size:15px;font-weight:600;color:#0f172a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sheet-class-selector-wrap .icon{width:20px;height:20px;stroke:#64748b;fill:none;stroke-width:2;margin-left:8px;flex-shrink:0}.sheet-class-native-select{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;font-size:16px;-webkit-appearance:none}.sheet-student-panel{flex:1;min-height:0;overflow-y:auto;border-top:1px solid #f1f5f9}.sheet-student-item{display:flex;align-items:center;gap:12px;padding:14px 10px;border-bottom:1px solid #f1f5f9;border-radius:10px;margin-bottom:4px;background:#fff;cursor:pointer;transition:background .16s ease}.sheet-student-item:last-child{border-bottom:none}.sheet-student-item.active{background:#f8fbff}.sheet-student-avatar{width:38px;height:38px;border-radius:50%;background:linear-gradient(135deg,#e0e7ff,#c7d2fe);color:#4338ca;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;flex-shrink:0}.sheet-student-info{flex:1;min-width:0}.sheet-student-name{font-size:15px;font-weight:600;color:#0f172a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sheet-student-sub{margin-top:3px;font-size:12px;color:#64748b;display:flex;align-items:center;justify-content:space-between}.sheet-student-check{width:18px;height:18px;border-radius:50%;border:1.5px solid #cbd5e1;flex-shrink:0;position:relative}.sheet-student-item.active .sheet-student-check{border-color:#2563eb;background:#2563eb}.sheet-student-item.active .sheet-student-check:after{content:"";position:absolute;inset:4px;border-radius:50%;background:#fff}.sheet-empty{padding:28px 12px;text-align:center;color:#94a3b8;font-size:13px}@keyframes sheetUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.result-mode{display:none;padding:10px var(--mobile-padding) 112px}.result-head-card{background:#fff;border-radius:14px;padding:14px;margin-bottom:12px;box-shadow:0 8px 24px #0f172a14}.result-head-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.result-head-title{font-size:16px;font-weight:700;color:#0f172a}.result-head-status{font-size:12px;border-radius:999px;padding:4px 8px;color:#166534;background:#dcfce7;white-space:nowrap}.result-head-status.warning{color:#b45309;background:#ffedd5}.result-homework-name{margin-top:8px;font-size:16px;color:#0f172a;font-weight:700;line-height:1.35}.result-info-grid{margin-top:10px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.result-info-item{min-width:0;padding:10px 12px;border-radius:10px;background:#f8fafc}.result-info-item.full{grid-column:1 / -1}.result-info-label{display:block;font-size:11px;color:#64748b}.result-info-value{display:block;margin-top:4px;font-size:13px;line-height:1.45;color:#0f172a;font-weight:600;word-break:break-word}.result-meta{margin-top:10px;font-size:12px;color:#64748b;line-height:1.5}.mode-block{background:#fff;border-radius:14px;padding:14px;margin-bottom:12px;box-shadow:0 6px 20px #0f172a0f}.mode-title{font-size:15px;font-weight:var(--fw-bold);color:#111827;margin-bottom:8px}.result-note{margin-bottom:10px;font-size:12px;color:#64748b}.mode-summary{margin-top:10px;display:flex;gap:8px}.summary-chip{flex:1;border:none;border-radius:10px;text-align:center;padding:10px 4px;background:#f8fafc;color:#475569;font-size:12px;cursor:pointer;transition:all .2s ease}.summary-chip strong{display:block;font-size:18px;line-height:1.2;color:#0f172a}.summary-chip.active{background:#e8f1ff;color:#1d4ed8;box-shadow:inset 0 0 0 1px #3b82f62e}.summary-chip.active strong{color:#1d4ed8}.summary-chip.warning{background:#fff7ed;color:#b45309}.summary-chip.warning strong{color:#b45309}.summary-chip.warning.active{background:#ffedd5;color:#c2410c;box-shadow:inset 0 0 0 1px #f973162e}.summary-chip.warning.active strong{color:#c2410c}.result-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.result-empty{grid-column:1 / -1;padding:24px 12px;border-radius:12px;text-align:center;font-size:13px;color:#94a3b8;background:#f8fafc}.result-photo{position:relative;border-radius:12px;overflow:hidden;aspect-ratio:1;background:linear-gradient(145deg,#e2e8f0,#f8fafc);cursor:pointer}.result-photo img{width:100%;height:100%;object-fit:cover;display:block}.abnormal-badge{position:absolute;top:6px;right:6px;width:22px;height:22px;border-radius:50%;background:#ef4444;color:#fff;font-size:14px;font-weight:700;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 10px #ef444480}.retake-pending-badge{position:absolute;top:6px;right:6px;width:22px;height:22px;border-radius:50%;background:#3b82f6f2;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 10px #3b82f659}.retake-pending-badge:before{content:"";width:12px;height:12px;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}.result-preview-overlay{position:absolute;inset:0;z-index:2350;display:none;align-items:center;justify-content:center;padding:16px;background:#0f172ab8;border-radius:inherit}.result-preview-overlay.show{display:flex}.result-preview-card{width:100%;background:#fff;border-radius:14px;overflow:hidden;box-shadow:0 20px 40px #0f172a59}.result-preview-head{padding:12px 14px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #e2e8f0}.result-preview-title{font-size:15px;font-weight:700;color:#0f172a}.result-preview-close{border:none;width:28px;height:28px;border-radius:50%;background:#f1f5f9;color:#475569;font-size:16px;line-height:1;cursor:pointer}.result-preview-image-wrap{background:#0f172a;aspect-ratio:1}.result-preview-image-wrap img{width:100%;height:100%;object-fit:contain;display:block}.result-preview-meta{padding:12px 14px 8px}.result-preview-status{font-size:13px;font-weight:600;color:#0f172a}.result-preview-status.warning{color:#b45309}.result-preview-reason{margin-top:6px;font-size:12px;line-height:1.5;color:#64748b}.result-preview-extra{margin-top:10px;padding-top:10px;border-top:1px solid #e2e8f0}.result-preview-extra-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;font-size:13px;line-height:1.6;color:#334155}.result-preview-extra-row+.result-preview-extra-row{margin-top:6px}.result-preview-extra-row.full{flex-direction:column;gap:2px}.result-preview-extra-label{flex-shrink:0;color:#64748b}.result-preview-extra-value{text-align:right;color:#0f172a;font-weight:600;word-break:break-word}.result-preview-extra-row.full .result-preview-extra-value{text-align:left}.result-preview-actions{display:flex;gap:8px;padding:0 14px 14px}.result-preview-btn{flex:1;border:none;border-radius:10px;padding:10px 0;font-size:14px;cursor:pointer}.result-preview-btn.secondary{background:#f1f5f9;color:#475569}.result-preview-btn.primary{background:linear-gradient(90deg,#f97316,#ef4444);color:#fff}.result-preview-btn.disabled{opacity:.55;pointer-events:none}.btn-secondary{flex:1;border:1px solid #bfdbfe;background:#eff6ff;color:#1d4ed8;border-radius:28px;font-size:15px;font-weight:var(--fw-medium);cursor:pointer}.btn-submit.disabled{opacity:.55;pointer-events:none}.camera-overlay{display:none;position:absolute;inset:0;background:#111;z-index:2400;flex-direction:column;border-radius:inherit}.camera-toolbar-placeholder{width:72px;height:1px;flex-shrink:0}.camera-hint{font-size:14px;color:#a1a1aa}.camera-hint:empty{display:none}.camera-control-panel{height:140px;border-top:1px solid rgba(255,255,255,.1);display:flex;align-items:center;justify-content:center;position:relative;padding-bottom:30px}.camera-shutter-btn{width:64px;height:64px;background:#fff;border-radius:50%;cursor:pointer}.camera-counter-badge,.camera-flash-btn{position:absolute;bottom:48px;width:40px;height:40px;background:#ffffff26;border-radius:6px;display:flex;align-items:center;justify-content:center;color:#fff;font-size:14px}.camera-counter-badge{left:30px}.camera-flash-btn{right:30px;border:none;cursor:pointer;padding:0;transition:background .18s ease,color .18s ease,box-shadow .18s ease}.camera-flash-btn svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.camera-flash-btn.active{background:#facc15;color:#111827;box-shadow:0 0 18px #facc1573}.upload-title{font-size:16px;color:#0f172a;font-weight:700}.upload-sub{margin-top:6px;font-size:12px;color:#64748b}.upload-progress{margin-top:12px;height:8px;border-radius:999px;background:#e2e8f0;overflow:hidden}.upload-progress-fill{height:100%;width:0;background:linear-gradient(90deg,#4facfe,#00f2fe);transition:width .25s ease}.upload-stats{margin-top:10px;display:flex;gap:8px}.upload-stat{flex:1;text-align:center;border-radius:8px;background:#f8fafc;color:#475569;font-size:12px;padding:7px 4px}.upload-stat strong{display:block;color:#0f172a;font-size:16px}
