.image-loading[data-v-ed706615]{padding:40px;text-align:center;background:#f8f9fa;border-radius:8px}.image-error[data-v-ed706615]{padding:30px;text-align:center;background:#fee;border:2px solid #fcc;border-radius:8px;color:#c33}.spinner[data-v-ed706615]{border:4px solid #f3f3f3;border-top:4px solid #2196F3;border-radius:50%;width:40px;height:40px;animation:spin-ed706615 1s linear infinite;margin:0 auto 15px}@keyframes spin-ed706615{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.sphere-visualization[data-v-1486d706]{background:#f8f9fa;padding:20px;border-radius:10px;margin-top:20px}.sphere-visualization h4[data-v-1486d706]{margin:0 0 10px;color:#2c5aa0;font-size:18px}.canvas-container[data-v-1486d706]{background:#fff;border-radius:8px;padding:10px;box-shadow:0 2px 8px #0000001a;margin-bottom:15px;display:flex;justify-content:center}canvas[data-v-1486d706]{max-width:100%;height:auto}.legend[data-v-1486d706]{background:#fff;padding:15px;border-radius:8px;box-shadow:0 2px 8px #0000001a}.legend h5[data-v-1486d706]{margin:0 0 10px;color:#333;font-size:14px}.legend-items[data-v-1486d706]{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:8px}.legend-item[data-v-1486d706]{display:flex;align-items:center;gap:8px;padding:5px;border-radius:4px;transition:background .2s}.legend-item[data-v-1486d706]:hover{background:#f0f0f0}.legend-color[data-v-1486d706]{width:20px;height:20px;border-radius:50%;border:2px solid #ddd;flex-shrink:0}.legend-text[data-v-1486d706]{font-size:12px;color:#333}.fcc-lattice-visualization[data-v-bc85c9cd]{background:#f8f9fa;padding:20px;border-radius:10px;margin-top:20px}.fcc-lattice-visualization h4[data-v-bc85c9cd]{margin:0 0 10px;color:#2c5aa0;font-size:18px}.viz-container[data-v-bc85c9cd]{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:20px}@media (max-width: 900px){.viz-container[data-v-bc85c9cd]{grid-template-columns:1fr}}.viz-section[data-v-bc85c9cd],.info-section[data-v-bc85c9cd]{background:#fff;border-radius:8px;padding:15px;box-shadow:0 2px 8px #0000001a}.viz-section h5[data-v-bc85c9cd],.info-card h5[data-v-bc85c9cd]{margin:0 0 15px;color:#333;font-size:16px;border-bottom:2px solid #4facfe;padding-bottom:8px}.canvas-wrapper[data-v-bc85c9cd]{display:flex;justify-content:center;align-items:center;background:#fafafa;border-radius:8px;padding:10px}canvas[data-v-bc85c9cd]{max-width:100%;height:auto}.info-card[data-v-bc85c9cd]{margin-bottom:20px}.info-card[data-v-bc85c9cd]:last-child{margin-bottom:0}.formula-box[data-v-bc85c9cd]{background:#f0f7ff;padding:15px;border-radius:8px;border-left:4px solid #4facfe}.formula-main[data-v-bc85c9cd]{font-size:20px;font-weight:700;color:#2c5aa0;text-align:center;margin-bottom:10px;font-family:Times New Roman,serif}.formula-detail[data-v-bc85c9cd]{font-size:13px;color:#555;line-height:1.6}.current-params[data-v-bc85c9cd]{background:#f9f9f9;padding:12px;border-radius:6px}.param-row[data-v-bc85c9cd]{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid #eee}.param-row[data-v-bc85c9cd]:last-child{border-bottom:none}.param-label[data-v-bc85c9cd]{font-size:13px;color:#666}.param-value[data-v-bc85c9cd]{font-size:14px;font-weight:600;color:#333}.param-value.highlight[data-v-bc85c9cd]{color:#4facfe;font-size:16px}.features-list[data-v-bc85c9cd]{margin:0;padding-left:20px;font-size:13px;color:#555;line-height:1.8}.features-list li[data-v-bc85c9cd]{margin-bottom:5px}.explanation[data-v-bc85c9cd]{background:#fff;padding:15px;border-radius:8px;box-shadow:0 2px 8px #0000001a}.explanation h5[data-v-bc85c9cd]{margin:0 0 12px;color:#333;font-size:16px;border-bottom:2px solid #4facfe;padding-bottom:8px}.explanation-content p[data-v-bc85c9cd]{margin:10px 0;font-size:13px;color:#555;line-height:1.6}.formula-derivation[data-v-bc85c9cd]{background:#f0f7ff;padding:10px 15px;border-radius:6px;font-family:Times New Roman,serif;font-size:16px;color:#2c5aa0;text-align:center;margin:10px 0;font-weight:700}.sphere-3d-visualization[data-v-2eb63c5c]{background:#f8f9fa;padding:20px;border-radius:10px;margin-top:20px}.sphere-3d-visualization h4[data-v-2eb63c5c]{margin:0 0 10px;color:#2c5aa0;font-size:18px}.canvas-container[data-v-2eb63c5c]{background:#fff;border-radius:8px;padding:10px;box-shadow:0 2px 8px #0000001a;margin-bottom:15px}.three-container[data-v-2eb63c5c]{width:100%;height:400px;position:relative}.three-container canvas[data-v-2eb63c5c]{width:100%!important;height:100%!important}.control-btn[data-v-2eb63c5c]{padding:8px 16px;background:#4facfe;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:14px;transition:all .3s}.control-btn[data-v-2eb63c5c]:hover{background:#2c5aa0;transform:translateY(-2px);box-shadow:0 4px 8px #0003}.legend[data-v-2eb63c5c]{background:#fff;padding:15px;border-radius:8px;box-shadow:0 2px 8px #0000001a;margin-top:15px}.legend h5[data-v-2eb63c5c]{margin:0 0 10px;color:#333;font-size:14px}.legend-items[data-v-2eb63c5c]{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:8px}.legend-item[data-v-2eb63c5c]{display:flex;align-items:center;gap:8px;padding:5px;border-radius:4px;transition:background .2s}.legend-item[data-v-2eb63c5c]:hover{background:#f0f0f0}.legend-color[data-v-2eb63c5c]{width:20px;height:20px;border-radius:50%;border:2px solid #ddd;flex-shrink:0}.legend-text[data-v-2eb63c5c]{font-size:12px;color:#333}.fcc-lattice-3d[data-v-572e06bc]{background:#f8f9fa;padding:20px;border-radius:10px;margin-top:20px}.fcc-lattice-3d h4[data-v-572e06bc]{margin:0 0 10px;color:#2c5aa0;font-size:18px}.viz-container[data-v-572e06bc]{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:20px}@media (max-width: 900px){.viz-container[data-v-572e06bc]{grid-template-columns:1fr}}.viz-section[data-v-572e06bc],.info-section[data-v-572e06bc]{background:#fff;border-radius:8px;padding:15px;box-shadow:0 2px 8px #0000001a}.three-container-3d[data-v-572e06bc]{width:100%;height:400px;position:relative;background:#fafafa;border-radius:8px;overflow:hidden}.three-container-3d canvas[data-v-572e06bc]{width:100%!important;height:100%!important}.control-btn[data-v-572e06bc]{padding:8px 16px;background:#4facfe;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:14px;transition:all .3s}.control-btn[data-v-572e06bc]:hover{background:#2c5aa0;transform:translateY(-2px);box-shadow:0 4px 8px #0003}.info-card[data-v-572e06bc]{margin-bottom:15px}.info-card[data-v-572e06bc]:last-child{margin-bottom:0}.info-card h5[data-v-572e06bc]{margin:0 0 12px;color:#333;font-size:15px;border-bottom:2px solid #4facfe;padding-bottom:6px}.formula-box[data-v-572e06bc]{background:#f0f7ff;padding:12px;border-radius:6px;border-left:4px solid #4facfe}.formula-main[data-v-572e06bc]{font-size:18px;font-weight:700;color:#2c5aa0;text-align:center;margin-bottom:10px;font-family:Times New Roman,serif}.formula-detail[data-v-572e06bc]{font-size:12px;color:#555;line-height:1.6}.current-params[data-v-572e06bc]{background:#f9f9f9;padding:12px;border-radius:6px}.param-row[data-v-572e06bc]{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid #eee}.param-row[data-v-572e06bc]:last-child{border-bottom:none}.param-label[data-v-572e06bc]{font-size:12px;color:#666}.param-value[data-v-572e06bc]{font-size:13px;font-weight:600;color:#333}.param-value.highlight[data-v-572e06bc]{color:#4facfe;font-size:15px}.features-list[data-v-572e06bc]{margin:0;padding-left:20px;font-size:12px;color:#555;line-height:1.7}.features-list li[data-v-572e06bc]{margin-bottom:6px}.explanation[data-v-572e06bc]{background:#fff;padding:15px;border-radius:8px;box-shadow:0 2px 8px #0000001a}.explanation h5[data-v-572e06bc]{margin:0 0 12px;color:#333;font-size:16px;border-bottom:2px solid #4facfe;padding-bottom:8px}.explanation-content p[data-v-572e06bc]{margin:8px 0;font-size:13px;color:#555;line-height:1.6}.detail-section[data-v-572e06bc]{margin:15px 0;padding:12px;background:#f9f9f9;border-radius:6px}.detail-section h6[data-v-572e06bc]{margin:0 0 8px;color:#2c5aa0;font-size:14px}.formula-box-inline[data-v-572e06bc]{background:#f0f7ff;padding:10px;border-radius:6px;margin-top:8px}.formula-text[data-v-572e06bc]{font-family:Times New Roman,serif;font-size:15px;color:#2c5aa0;font-weight:700;text-align:center;margin:8px 0}.visualization-section[data-v-5ba17372]{margin-top:20px}.layer-compact-row[data-v-5ba17372]{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;align-items:start}.form-group-compact[data-v-5ba17372]{display:flex;flex-direction:column}.form-group-compact label[data-v-5ba17372]{font-size:.85em;font-weight:500;color:#555;margin-bottom:4px}.form-group-compact input[data-v-5ba17372]{padding:6px 10px;border:1px solid #ddd;border-radius:4px;font-size:.9em;width:100%}.form-group-compact input[data-v-5ba17372]:focus{outline:none;border-color:#4facfe;box-shadow:0 0 0 2px #4facfe1a}.form-group-compact input.readonly-input[data-v-5ba17372]{background:#f8f9fa;cursor:not-allowed;color:#666}@media (max-width: 768px){.layer-compact-row[data-v-5ba17372]{grid-template-columns:repeat(2,1fr)}}.task-queue-container[data-v-df6f8b99]{margin-top:20px}.task-queue-header[data-v-df6f8b99]{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.task-queue-header h3[data-v-df6f8b99]{margin:0;color:#333}.refresh-btn[data-v-df6f8b99]{padding:8px 16px;background:#2c5aa0;color:#fff;border:none;border-radius:5px;cursor:pointer;font-size:14px}.refresh-btn[data-v-df6f8b99]:hover:not(:disabled){background:#1e3f6f}.refresh-btn[data-v-df6f8b99]:disabled{opacity:.6;cursor:not-allowed}.loading-state[data-v-df6f8b99],.empty-state[data-v-df6f8b99]{text-align:center;padding:40px;color:#999}.task-list[data-v-df6f8b99]{display:flex;flex-direction:column;gap:15px}.task-item[data-v-df6f8b99]{background:#fff;border:1px solid #ddd;border-radius:8px;overflow:hidden;transition:all .2s}.task-item[data-v-df6f8b99]:hover{box-shadow:0 2px 8px #0000001a}.task-item.status-running[data-v-df6f8b99]{border-left:4px solid #ffc107}.task-item.status-completed[data-v-df6f8b99]{border-left:4px solid #28a745}.task-item.status-failed[data-v-df6f8b99]{border-left:4px solid #dc3545}.task-header[data-v-df6f8b99]{display:flex;align-items:center;justify-content:space-between;padding:15px;background:#f8f9fa;cursor:pointer;-webkit-user-select:none;user-select:none}.task-header[data-v-df6f8b99]:hover{background:#e9ecef}.task-header-left[data-v-df6f8b99]{display:flex;align-items:center;gap:10px;flex:1}.task-header-right[data-v-df6f8b99]{display:flex;align-items:center;gap:10px}.delete-icon-btn[data-v-df6f8b99]{background:transparent;border:none;cursor:pointer;font-size:16px;padding:4px 8px;border-radius:4px;transition:background .2s}.delete-icon-btn[data-v-df6f8b99]:hover{background:#dc354533}.recalc-icon-btn[data-v-df6f8b99]{background:transparent;border:none;cursor:pointer;font-size:16px;padding:4px 8px;border-radius:4px;transition:background .2s}.recalc-icon-btn[data-v-df6f8b99]:hover{background:#28a74533}.task-id[data-v-df6f8b99]{font-weight:700;color:#2c5aa0;min-width:100px}.task-status[data-v-df6f8b99]{padding:4px 12px;border-radius:12px;font-size:12px;font-weight:700;min-width:80px;text-align:center}.status-badge-pending[data-v-df6f8b99]{background:#e3f2fd;color:#1976d2}.status-badge-running[data-v-df6f8b99]{background:#fff3e0;color:#f57c00}.status-badge-completed[data-v-df6f8b99]{background:#e8f5e9;color:#388e3c}.status-badge-failed[data-v-df6f8b99]{background:#ffebee;color:#d32f2f}.task-time[data-v-df6f8b99]{color:#666;font-size:14px}.expand-icon[data-v-df6f8b99]{color:#666;font-size:12px}.task-details[data-v-df6f8b99]{padding:20px;border-top:1px solid #ddd}.task-info[data-v-df6f8b99]{margin-bottom:15px}.task-info p[data-v-df6f8b99]{margin:5px 0;color:#333;font-size:14px}.error-message[data-v-df6f8b99]{color:#d32f2f;background:#ffebee;padding:10px;border-radius:5px;margin-top:10px}.layers-detail[data-v-df6f8b99]{margin:20px 0;padding:15px;background:#f8f9fa;border-radius:8px;border:1px solid #e0e0e0}.layers-title[data-v-df6f8b99]{margin:0 0 15px;color:#333;font-size:14px;font-weight:600}.calc-params-area[data-v-df6f8b99]{display:flex;gap:15px;margin-top:15px}.calc-params[data-v-df6f8b99]{flex:1;padding:10px 12px;background:#e8f4fd;border-radius:5px;font-size:13px}.calc-params-label[data-v-df6f8b99]{font-weight:600;color:#1976d2}.calc-params-value[data-v-df6f8b99]{color:#333}.layers-table-wrapper[data-v-df6f8b99]{overflow-x:auto}.layers-table[data-v-df6f8b99]{width:100%;border-collapse:collapse;font-size:13px}.layers-table thead[data-v-df6f8b99]{background:#e3f2fd}.layers-table th[data-v-df6f8b99]{padding:10px 12px;text-align:left;font-weight:600;color:#1976d2;border-bottom:2px solid #2c5aa0}.layers-table td[data-v-df6f8b99]{padding:8px 12px;border-bottom:1px solid #e0e0e0;color:#333}.layers-table tbody tr[data-v-df6f8b99]:hover{background:#e9ecef}.layers-table tbody tr:last-child td[data-v-df6f8b99]{border-bottom:none}.layers-table td[data-v-df6f8b99]:first-child,.layers-table th[data-v-df6f8b99]:first-child{width:50px;text-align:center}.dos-params[data-v-df6f8b99]{flex:1;padding:10px 12px;background:#fff3e0;border-radius:5px;font-size:13px}.dos-params-label[data-v-df6f8b99]{font-weight:600;color:#f57c00}.dos-params-value[data-v-df6f8b99]{color:#333}.task-actions[data-v-df6f8b99]{display:flex;gap:10px;margin-bottom:15px}.action-btn[data-v-df6f8b99]{padding:8px 16px;background:#2c5aa0;color:#fff;border:none;border-radius:5px;cursor:pointer;font-size:14px}.action-btn[data-v-df6f8b99]:hover{background:#1e3f6f}.action-btn-delete[data-v-df6f8b99]{background:#dc3545}.action-btn-delete[data-v-df6f8b99]:hover{background:#c82333}.task-results[data-v-df6f8b99]{margin-top:20px;padding-top:20px;border-top:2px solid #e0e0e0}.task-results h4[data-v-df6f8b99]{color:#333;margin-bottom:15px}.result-section[data-v-df6f8b99]{margin-bottom:25px}.result-section h5[data-v-df6f8b99]{color:#666;font-size:16px;margin-bottom:10px}.download-links[data-v-df6f8b99]{margin-top:15px;display:flex;gap:10px;flex-wrap:wrap}.download-link[data-v-df6f8b99]{padding:8px 16px;background:#28a745;color:#fff;text-decoration:none;border-radius:5px;font-size:14px;display:inline-block}.download-link[data-v-df6f8b99]:hover{background:#218838}.download-link-csv[data-v-df6f8b99]{background:#007bff}.download-link-csv[data-v-df6f8b99]:hover{background:#0056b3}.auto-refresh-info[data-v-df6f8b99]{margin-top:20px;text-align:center;color:#666;background:#fff3e0;padding:10px;border-radius:5px}.sem-history-container[data-v-38589bc5]{background:#fff;border-radius:10px;padding:25px;box-shadow:0 2px 10px #0000001a}.history-header[data-v-38589bc5]{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.history-header h3[data-v-38589bc5]{color:#2c5aa0;margin:0}.refresh-btn[data-v-38589bc5]{padding:8px 16px;background:#4facfe;color:#fff;border:none;border-radius:6px;cursor:pointer;transition:background .3s}.refresh-btn[data-v-38589bc5]:hover:not(:disabled){background:#2196f3}.refresh-btn[data-v-38589bc5]:disabled{opacity:.6;cursor:not-allowed}.loading-state[data-v-38589bc5],.empty-state[data-v-38589bc5]{text-align:center;padding:40px;color:#666}.empty-state .hint[data-v-38589bc5]{font-size:.9em;color:#999;margin-top:10px}.history-list[data-v-38589bc5]{display:flex;flex-direction:column;gap:15px}.history-item[data-v-38589bc5]{border:1px solid #e0e0e0;border-radius:8px;overflow:hidden;transition:box-shadow .3s}.history-item[data-v-38589bc5]:hover{box-shadow:0 2px 8px #0000001a}.history-item.expanded[data-v-38589bc5]{border-color:#4facfe;box-shadow:0 4px 12px #4facfe33}.item-summary[data-v-38589bc5]{display:flex;align-items:center;padding:15px;cursor:pointer;background:#fff;transition:background .2s}.item-summary[data-v-38589bc5]:hover{background:#f9f9f9}.summary-left[data-v-38589bc5]{display:flex;align-items:center;gap:12px;flex:1}.summary-icon[data-v-38589bc5]{font-size:2em}.summary-info h4[data-v-38589bc5]{margin:0;color:#333;font-size:16px}.summary-time[data-v-38589bc5]{margin:4px 0 0;color:#999;font-size:.85em}.summary-stats[data-v-38589bc5]{display:flex;gap:15px;margin-right:15px}.stat-badge[data-v-38589bc5]{padding:6px 12px;background:#f0f7ff;border-radius:6px;font-size:.9em}.stat-label[data-v-38589bc5]{color:#666}.stat-value[data-v-38589bc5]{color:#2c5aa0;font-weight:600;margin-left:4px}.expand-btn[data-v-38589bc5]{padding:6px 12px;background:#e0e0e0;border:none;border-radius:6px;cursor:pointer;font-size:12px;transition:background .2s}.expand-btn[data-v-38589bc5]:hover{background:#d0d0d0}.item-details[data-v-38589bc5]{padding:20px;background:#f9f9f9;border-top:1px solid #e0e0e0}.detail-section[data-v-38589bc5]{margin-bottom:25px}.detail-section h5[data-v-38589bc5]{color:#2c5aa0;margin-bottom:15px;font-size:15px}.param-grid[data-v-38589bc5]{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}.param-item[data-v-38589bc5],.info-item[data-v-38589bc5]{display:flex;justify-content:space-between;padding:8px 12px;background:#fff;border-radius:6px}.param-label[data-v-38589bc5],.info-label[data-v-38589bc5]{color:#666}.param-value[data-v-38589bc5],.info-value[data-v-38589bc5]{color:#333;font-weight:500}.stats-grid[data-v-38589bc5]{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:15px}.stat-box[data-v-38589bc5]{padding:15px;background:#fff;border-radius:8px;text-align:center;border:1px solid #e0e0e0}.box-label[data-v-38589bc5]{display:block;color:#666;font-size:.9em;margin-bottom:8px}.box-value[data-v-38589bc5]{display:block;color:#333;font-size:1.2em;font-weight:600}.box-value.primary[data-v-38589bc5]{color:#4facfe;font-size:1.4em}.images-grid[data-v-38589bc5]{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:15px}.image-box[data-v-38589bc5]{background:#fff;padding:12px;border-radius:8px;border:1px solid #e0e0e0}.image-box h6[data-v-38589bc5]{margin:0 0 10px;color:#666;font-size:.9em}.result-thumb[data-v-38589bc5]{width:100%;border-radius:6px;border:1px solid #ddd}.detail-actions[data-v-38589bc5]{display:flex;gap:10px;flex-wrap:wrap}.action-btn[data-v-38589bc5]{padding:10px 20px;border:none;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .3s}.action-btn.primary[data-v-38589bc5]{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.action-btn.primary[data-v-38589bc5]:hover{box-shadow:0 4px 12px #667eea66}.action-btn[data-v-38589bc5]:not(.primary):not(.danger){background:#6c757d;color:#fff}.action-btn[data-v-38589bc5]:not(.primary):not(.danger):hover{background:#5a6268}.action-btn.danger[data-v-38589bc5]{background:#dc3545;color:#fff}.action-btn.danger[data-v-38589bc5]:hover{background:#c82333}.calibration-info[data-v-38589bc5]{display:flex;flex-direction:column;gap:10px}.sem-analysis-container[data-v-8a494bb7]{padding:20px;max-width:1400px;margin:0 auto}.analysis-header[data-v-8a494bb7]{text-align:center;margin-bottom:30px}.analysis-header h2[data-v-8a494bb7]{color:#2c5aa0;margin-bottom:10px}.analysis-header p[data-v-8a494bb7]{color:#666;font-size:1.1em}.sub-tabs-nav[data-v-8a494bb7]{display:flex;gap:10px;margin-bottom:25px;border-bottom:2px solid #e0e0e0;padding-bottom:0}.sub-tab-button[data-v-8a494bb7]{padding:12px 24px;background:#fff;color:#666;border:none;border-bottom:3px solid transparent;font-size:15px;font-weight:500;cursor:pointer;transition:all .3s;position:relative}.sub-tab-button[data-v-8a494bb7]:hover{color:#2c5aa0;background:#f5f5f5}.sub-tab-button.active[data-v-8a494bb7]{color:#2c5aa0;border-bottom-color:#2c5aa0;background:#fff}.history-badge[data-v-8a494bb7]{position:absolute;top:-5px;right:-5px;background:#dc3545;color:#fff;border-radius:10px;padding:2px 8px;font-size:12px;font-weight:600}.upload-section[data-v-8a494bb7]{display:flex;flex-direction:column;gap:30px;margin-bottom:30px}.upload-card[data-v-8a494bb7],.params-card[data-v-8a494bb7]{background:#fff;border-radius:10px;padding:25px;box-shadow:0 2px 10px #0000001a;width:100%}.upload-card h3[data-v-8a494bb7],.params-card h3[data-v-8a494bb7]{color:#2c5aa0;margin-bottom:10px}.hint[data-v-8a494bb7]{color:#666;font-size:.9em;margin-bottom:20px}.upload-area[data-v-8a494bb7]{border:3px dashed #ddd;border-radius:10px;padding:40px;text-align:center;transition:all .3s;cursor:pointer}.upload-area[data-v-8a494bb7]:hover,.upload-area.drag-over[data-v-8a494bb7]{border-color:#4facfe;background:#4facfe0d}.upload-content[data-v-8a494bb7]{display:flex;flex-direction:column;align-items:center;gap:15px}.upload-icon[data-v-8a494bb7]{font-size:3em}.upload-text[data-v-8a494bb7]{font-size:1.2em;color:#333}.upload-subtext[data-v-8a494bb7]{color:#999}.upload-btn[data-v-8a494bb7]{padding:12px 30px;background:linear-gradient(135deg,#4facfe,#00f2fe);color:#fff;border:none;border-radius:8px;font-size:16px;cursor:pointer;transition:transform .2s}.upload-btn[data-v-8a494bb7]:hover{transform:translateY(-2px)}.preview-section[data-v-8a494bb7]{margin-top:20px}.preview-header[data-v-8a494bb7]{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.preview-header h4[data-v-8a494bb7]{color:#2c5aa0;margin:0}.calibration-tools[data-v-8a494bb7]{display:flex;gap:10px}.calibration-btn[data-v-8a494bb7]{padding:8px 16px;background:#2c5aa0;color:#fff;border:none;border-radius:6px;font-size:14px;cursor:pointer;transition:all .3s}.calibration-btn[data-v-8a494bb7]:hover:not(:disabled){background:#1a4480}.calibration-btn.active[data-v-8a494bb7]{background:#1a4480;box-shadow:inset 0 2px 4px #0000004d}.calibration-btn[data-v-8a494bb7]:disabled{opacity:.5;cursor:not-allowed}.cancel-btn[data-v-8a494bb7],.reset-btn[data-v-8a494bb7]{padding:8px 16px;background:#6c757d;color:#fff;border:none;border-radius:6px;font-size:14px;cursor:pointer;transition:background .3s}.cancel-btn[data-v-8a494bb7]:hover,.reset-btn[data-v-8a494bb7]:hover{background:#5a6268}.preview-image-container[data-v-8a494bb7]{position:relative;border:1px solid #ddd;border-radius:8px;overflow:hidden;max-height:900px;display:flex;justify-content:center;align-items:center;background:#f5f5f5}.preview-image[data-v-8a494bb7]{max-width:100%;max-height:900px;object-fit:contain;display:block}.calibration-canvas[data-v-8a494bb7]{position:absolute;top:0;left:0;cursor:crosshair;z-index:10}.calibration-instructions[data-v-8a494bb7]{margin-top:15px;padding:12px;background:#e3f2fd;border-left:4px solid #2196F3;border-radius:6px}.calibration-instructions p[data-v-8a494bb7]{margin:0;color:#1976d2;font-size:.95em}.calibration-instructions strong[data-v-8a494bb7]{color:#0d47a1}.ruler-input[data-v-8a494bb7]{margin-top:15px;padding:15px;background:#f9f9f9;border-radius:8px;display:flex;flex-direction:column;gap:12px}.ruler-input label[data-v-8a494bb7]{display:flex;align-items:center;gap:10px}.ruler-label[data-v-8a494bb7]{font-weight:600;color:#333}.ruler-input-field[data-v-8a494bb7]{flex:1;padding:8px 12px;border:2px solid #4facfe;border-radius:6px;font-size:16px}.ruler-unit-select[data-v-8a494bb7]{padding:8px 12px;border:2px solid #4facfe;border-radius:6px;font-size:14px;background:#fff}.confirm-btn[data-v-8a494bb7]{padding:12px;background:#28a745;color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:background .3s}.confirm-btn[data-v-8a494bb7]:hover{background:#218838}.calibration-result[data-v-8a494bb7]{margin-top:15px;padding:15px;background:#e8f5e9;border-left:4px solid #4caf50;border-radius:8px;display:flex;flex-direction:column;gap:10px}.result-item[data-v-8a494bb7]{display:flex;justify-content:space-between;padding:8px 0}.result-label[data-v-8a494bb7]{color:#666;font-weight:500}.result-value[data-v-8a494bb7]{color:#2e7d32;font-weight:600}.recalibrate-btn[data-v-8a494bb7]{align-self:flex-start;padding:8px 16px;background:#4caf50;color:#fff;border:none;border-radius:6px;font-size:14px;cursor:pointer;transition:background .3s}.recalibrate-btn[data-v-8a494bb7]:hover{background:#388e3c}.export-buttons[data-v-8a494bb7]{display:flex;flex-direction:column;gap:10px}.export-btn[data-v-8a494bb7]{padding:12px 20px;background:#6c757d;color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .3s;text-align:left}.export-btn[data-v-8a494bb7]:hover{background:#5a6268;transform:translate(3px)}.export-btn.primary[data-v-8a494bb7]{background:linear-gradient(135deg,#667eea,#764ba2);font-weight:600}.export-btn.primary[data-v-8a494bb7]:hover{background:linear-gradient(135deg,#5568d3,#65408b);box-shadow:0 4px 12px #667eea66}.save-status[data-v-8a494bb7]{margin-top:15px;padding:12px;border-radius:6px;font-size:14px;font-weight:500}.save-status.success[data-v-8a494bb7]{background:#d4edda;color:#155724;border-left:4px solid #28a745}.save-status.error[data-v-8a494bb7]{background:#f8d7da;color:#721c24;border-left:4px solid #dc3545}.file-info[data-v-8a494bb7]{margin-top:15px;padding:15px;background:#f9f9f9;border-radius:8px}.file-info p[data-v-8a494bb7]{margin:5px 0;color:#666}.param-group[data-v-8a494bb7]{margin-bottom:20px}.param-group label[data-v-8a494bb7]{display:flex;align-items:center;gap:10px;margin-bottom:8px}.param-label[data-v-8a494bb7]{font-weight:500;color:#333;flex:1}.param-input[data-v-8a494bb7],.param-select[data-v-8a494bb7]{padding:8px 12px;border:2px solid #e1e5e9;border-radius:6px;font-size:14px;width:120px}.param-input[data-v-8a494bb7]:focus,.param-select[data-v-8a494bb7]:focus{outline:none;border-color:#4facfe}.param-input[data-v-8a494bb7]:disabled{background-color:#f5f5f5;cursor:not-allowed}.param-unit[data-v-8a494bb7]{color:#666;font-size:.9em;width:50px}.param-group small[data-v-8a494bb7]{display:block;color:#999;font-size:.85em;margin-top:5px}.advanced-section[data-v-8a494bb7]{padding:15px;background:#f8f9fa;border-radius:8px;border:1px solid #e0e0e0;margin-bottom:20px}.param-header[data-v-8a494bb7]{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.param-header .param-label[data-v-8a494bb7]{font-size:16px;font-weight:600;color:#2c5aa0;margin:0}.toggle-switch[data-v-8a494bb7]{position:relative;display:inline-block;width:50px;height:26px;flex:0 0 50px}.toggle-switch input[data-v-8a494bb7]{opacity:0;width:0;height:0}.toggle-slider[data-v-8a494bb7]{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#ccc;transition:.4s;border-radius:34px}.toggle-slider[data-v-8a494bb7]:before{position:absolute;content:"";height:20px;width:20px;left:3px;bottom:3px;background-color:#fff;transition:.4s;border-radius:50%}.toggle-switch input:checked+.toggle-slider[data-v-8a494bb7]{background-color:#4facfe}.toggle-switch input:focus+.toggle-slider[data-v-8a494bb7]{box-shadow:0 0 1px #4facfe}.toggle-switch input:checked+.toggle-slider[data-v-8a494bb7]:before{transform:translate(24px)}.advanced-params[data-v-8a494bb7]{margin-top:15px;padding-left:20px;border-left:3px solid #4facfe}.sub-param[data-v-8a494bb7]{margin-bottom:12px}.sub-param[data-v-8a494bb7]:last-child{margin-bottom:0}.param-slider[data-v-8a494bb7]{flex:1;max-width:150px;height:6px;border-radius:5px;background:#d3d3d3;outline:none;-webkit-appearance:none}.param-slider[data-v-8a494bb7]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:18px;height:18px;border-radius:50%;background:#4facfe;cursor:pointer}.param-slider[data-v-8a494bb7]::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:#4facfe;cursor:pointer;border:none}.param-value-display[data-v-8a494bb7]{min-width:45px;text-align:right;font-weight:600;color:#4facfe;font-size:14px}.scale-section[data-v-8a494bb7]{padding:15px;background:#f0f7ff;border-radius:8px;border:1px solid #b3d9ff}.analyze-btn[data-v-8a494bb7]{width:100%;padding:15px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:8px;font-size:18px;font-weight:600;cursor:pointer;transition:all .3s;margin-top:10px}.analyze-btn[data-v-8a494bb7]:hover:not(.disabled){transform:translateY(-2px);box-shadow:0 5px 15px #667eea66}.analyze-btn.disabled[data-v-8a494bb7]{opacity:.5;cursor:not-allowed}.results-section[data-v-8a494bb7]{margin-top:30px}.results-header[data-v-8a494bb7]{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.results-header h3[data-v-8a494bb7]{color:#2c5aa0}.download-btn[data-v-8a494bb7]{padding:10px 20px;background:#28a745;color:#fff;border:none;border-radius:6px;cursor:pointer;transition:background .3s}.download-btn[data-v-8a494bb7]:hover{background:#218838}.results-grid[data-v-8a494bb7]{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px;margin-bottom:30px}.result-card[data-v-8a494bb7]{background:#fff;border-radius:10px;padding:25px;box-shadow:0 2px 10px #0000001a}.result-card h4[data-v-8a494bb7]{color:#2c5aa0;margin-bottom:20px}.stat-item[data-v-8a494bb7]{display:flex;justify-content:space-between;padding:12px 0;border-bottom:1px solid #f0f0f0}.stat-item[data-v-8a494bb7]:last-child{border-bottom:none}.stat-label[data-v-8a494bb7]{color:#666}.stat-value[data-v-8a494bb7]{font-weight:600;color:#333}.stat-value.primary[data-v-8a494bb7]{color:#4facfe;font-size:1.2em}.distribution-stats[data-v-8a494bb7]{display:flex;flex-direction:column;gap:12px}.dist-item[data-v-8a494bb7]{display:flex;justify-content:space-between;padding:10px;background:#f9f9f9;border-radius:6px}.dist-label[data-v-8a494bb7]{color:#666}.dist-value[data-v-8a494bb7]{font-weight:600;color:#2c5aa0}.visualization-section[data-v-8a494bb7]{background:#fff;border-radius:10px;padding:25px;box-shadow:0 2px 10px #0000001a;margin-bottom:30px}.visualization-section h4[data-v-8a494bb7]{color:#2c5aa0;margin-bottom:20px}.image-grid[data-v-8a494bb7]{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px}.image-item[data-v-8a494bb7]{text-align:center}.image-item h5[data-v-8a494bb7]{color:#666;margin-bottom:10px}.result-image[data-v-8a494bb7]{max-width:100%;border:1px solid #ddd;border-radius:8px}.data-table-section[data-v-8a494bb7]{background:#fff;border-radius:10px;padding:25px;box-shadow:0 2px 10px #0000001a}.data-table-section h4[data-v-8a494bb7]{color:#2c5aa0;margin-bottom:20px}.table-container[data-v-8a494bb7]{overflow-x:auto}.data-table[data-v-8a494bb7]{width:100%;border-collapse:collapse}.data-table th[data-v-8a494bb7],.data-table td[data-v-8a494bb7]{padding:12px;text-align:left;border-bottom:1px solid #f0f0f0}.data-table th[data-v-8a494bb7]{background:#f9f9f9;font-weight:600;color:#2c5aa0}.data-table tbody tr[data-v-8a494bb7]:hover{background:#f9f9f9}.table-note[data-v-8a494bb7]{margin-top:15px;color:#999;font-size:.9em;text-align:center}.error-message[data-v-8a494bb7]{background:#fee;border-left:4px solid #dc3545;color:#dc3545;padding:15px;border-radius:6px;margin-top:20px;white-space:pre-line;line-height:1.6;font-family:Courier New,Courier,monospace}@media (max-width: 1024px){.upload-section[data-v-8a494bb7]{grid-template-columns:1fr}}.reference-library-container[data-v-f08f4ba2]{max-width:1400px;margin:0 auto;padding:30px 20px;background:#fff;border-radius:12px;box-shadow:0 4px 12px #00000014}.library-header[data-v-f08f4ba2]{text-align:center;margin-bottom:40px;padding-bottom:20px;border-bottom:3px solid #2c5aa0}.library-header h2[data-v-f08f4ba2]{color:#2c5aa0;font-size:2.2em;margin-bottom:10px}.subtitle[data-v-f08f4ba2]{color:#666;font-size:1.1em}.main-tabs[data-v-f08f4ba2]{display:flex;gap:15px;margin-bottom:30px;justify-content:center;border-bottom:2px solid #e0e0e0;padding-bottom:0}.main-tab-button[data-v-f08f4ba2]{padding:16px 32px;background:#fff;color:#666;border:none;border-bottom:4px solid transparent;font-size:18px;font-weight:600;cursor:pointer;transition:all .3s;position:relative}.main-tab-button[data-v-f08f4ba2]:hover{color:#2c5aa0;background:#f5f5f5}.main-tab-button.active[data-v-f08f4ba2]{color:#2c5aa0;border-bottom-color:#2c5aa0;background:#fff}.sub-tabs[data-v-f08f4ba2]{display:flex;gap:10px;margin-bottom:30px;flex-wrap:wrap;border-bottom:2px solid #e0e0e0;padding-bottom:0}.sub-tab-button[data-v-f08f4ba2]{padding:12px 24px;background:#fff;color:#666;border:none;border-bottom:3px solid transparent;font-size:15px;font-weight:500;cursor:pointer;transition:all .3s}.sub-tab-button[data-v-f08f4ba2]:hover{color:#2c5aa0;background:#f5f5f5}.sub-tab-button.active[data-v-f08f4ba2]{color:#2c5aa0;border-bottom-color:#2c5aa0;background:#fff}.reference-section[data-v-f08f4ba2]{margin-top:30px}.reference-section h3[data-v-f08f4ba2]{color:#2c5aa0;font-size:1.8em;margin-bottom:15px;display:flex;align-items:center;gap:10px}.section-intro[data-v-f08f4ba2]{color:#666;font-size:1.05em;margin-bottom:25px;padding:12px 18px;background:#f8f9fa;border-left:4px solid #2c5aa0;border-radius:4px}.reference-list[data-v-f08f4ba2]{display:grid;gap:25px}.reference-item[data-v-f08f4ba2]{padding:25px;background:#fafafa;border:1px solid #e0e0e0;border-radius:8px;transition:all .3s}.reference-item[data-v-f08f4ba2]:hover{box-shadow:0 4px 12px #0000001a;transform:translateY(-2px);border-color:#2c5aa0}.reference-item h4[data-v-f08f4ba2]{color:#1a1a1a;font-size:1.15em;margin-bottom:12px;line-height:1.4}.reference-meta[data-v-f08f4ba2]{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:12px;font-size:.9em}.authors[data-v-f08f4ba2]{color:#2c5aa0;font-weight:600}.source[data-v-f08f4ba2]{color:#666;font-style:italic}.year[data-v-f08f4ba2]{color:#888;font-weight:500}.reference-abstract[data-v-f08f4ba2]{color:#444;line-height:1.6;margin-bottom:12px}.reference-links[data-v-f08f4ba2]{display:flex;gap:15px;align-items:center}.ref-link[data-v-f08f4ba2]{color:#2c5aa0;text-decoration:none;font-weight:500;transition:color .3s}.ref-link[data-v-f08f4ba2]:hover{color:#1a4480;text-decoration:underline}.citation[data-v-f08f4ba2]{color:#888;font-size:.9em;padding:4px 10px;background:#e8e8e8;border-radius:12px}@media (max-width: 768px){.reference-library-container[data-v-f08f4ba2]{padding:20px 15px}.main-tabs[data-v-f08f4ba2]{flex-direction:column;gap:5px}.main-tab-button[data-v-f08f4ba2]{width:100%}.sub-tabs[data-v-f08f4ba2]{gap:8px}.sub-tab-button[data-v-f08f4ba2]{padding:10px 18px;font-size:14px}.reference-item[data-v-f08f4ba2]{padding:20px}.library-header h2[data-v-f08f4ba2]{font-size:1.8em}}.login-page[data-v-18ac27bd]{min-height:100vh;display:flex;justify-content:center;align-items:center;padding:20px}.login-card[data-v-18ac27bd]{background:#fff;border-radius:15px;box-shadow:0 10px 40px #0003;overflow:hidden;width:100%;max-width:400px}.login-card-header[data-v-18ac27bd]{background:linear-gradient(135deg,#4facfe,#00f2fe);color:#fff;padding:40px 30px;text-align:center}.login-card-header h1[data-v-18ac27bd]{margin:0;font-size:2em;font-weight:300}.login-card-header p[data-v-18ac27bd]{margin:10px 0 0;opacity:.9;font-size:1em}.login-card-body[data-v-18ac27bd]{padding:40px 30px}.login-form-group[data-v-18ac27bd]{margin-bottom:25px}.login-form-group label[data-v-18ac27bd]{display:block;margin-bottom:8px;color:#333;font-weight:500}.login-form-group input[data-v-18ac27bd]{width:100%;padding:12px 15px;border:2px solid #e1e5e9;border-radius:8px;font-size:16px;transition:all .3s ease}.login-form-group input[data-v-18ac27bd]:focus{outline:none;border-color:#4facfe;box-shadow:0 0 0 3px #4facfe1a}.login-btn[data-v-18ac27bd]{width:100%;padding:14px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:all .3s ease}.login-btn[data-v-18ac27bd]:hover{transform:translateY(-2px);box-shadow:0 5px 15px #667eea66}.login-btn[data-v-18ac27bd]:active{transform:translateY(0)}.login-info-box[data-v-18ac27bd]{background:#f0f7ff;border-left:4px solid #4facfe;padding:15px;margin-top:20px;border-radius:5px;font-size:14px;color:#333}.login-info-box strong[data-v-18ac27bd]{color:#4facfe}.main-container[data-v-18ac27bd]{width:100%}.tabs-nav[data-v-18ac27bd]{display:flex;gap:10px;margin-bottom:20px;border-bottom:2px solid #e0e0e0;padding-bottom:0}.tab-button[data-v-18ac27bd]{padding:12px 24px;background:transparent;border:none;border-bottom:3px solid transparent;cursor:pointer;font-size:16px;font-weight:500;color:#666;transition:all .3s;display:flex;align-items:center;gap:8px;position:relative}.tab-button[data-v-18ac27bd]:hover{color:#2c5aa0;background:#2c5aa00d}.tab-button.active[data-v-18ac27bd]{color:#2c5aa0;border-bottom-color:#2c5aa0;font-weight:700}.task-badge[data-v-18ac27bd]{background:#dc3545;color:#fff;font-size:12px;padding:2px 8px;border-radius:10px;min-width:20px;text-align:center}.tabs-content[data-v-18ac27bd],.tab-panel[data-v-18ac27bd]{width:100%}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;background:linear-gradient(135deg,#667eea,#764ba2);min-height:100vh;padding:20px}.container{max-width:1000px;margin:0 auto;background:#fff;border-radius:15px;box-shadow:0 10px 30px #0003;overflow:hidden}.header{background:linear-gradient(135deg,#4facfe,#00f2fe);color:#fff;padding:30px;text-align:center}.header h1{margin:0;font-size:2.2em;font-weight:300}.header p{margin:10px 0 0;opacity:.9;font-size:1.1em}.back-link{display:inline-block;margin-top:15px;padding:8px 16px;background:#fff3;color:#fff;text-decoration:none;border-radius:5px;font-size:.9em}.back-link:hover{background:#ffffff4d}.form-container{padding:40px}.section{margin-bottom:30px;padding:20px;border:2px solid #e1e5e9;border-radius:8px;background:#f8f9fa}.section h3{margin:0 0 15px;color:#333;font-size:1.3em;display:flex;align-items:center;gap:10px}.section h3:before{content:"▶";color:#4facfe;font-size:.8em}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:15px}.form-group{margin-bottom:15px}.form-group label{display:block;margin-bottom:8px;font-weight:600;color:#333;font-size:1em}.form-group input[type=text],.form-group input[type=number],.form-group select{width:100%;padding:10px 12px;border:2px solid #e1e5e9;border-radius:6px;font-size:1em;transition:border-color .3s ease}.form-group input:focus,.form-group select:focus{outline:none;border-color:#4facfe;box-shadow:0 0 0 3px #4facfe1a}.form-group small{display:block;margin-top:5px;color:#666;font-size:.85em;line-height:1.4}.layer-list{margin:15px 0}.layer-item{background:#fff;border:2px solid #e1e5e9;border-radius:8px;padding:12px;margin-bottom:12px;position:relative;transition:all .3s ease}.layer-item:hover{box-shadow:0 4px 12px #0000001a}.layer-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;padding-bottom:8px;border-bottom:1px solid #e1e5e9}.layer-title{font-weight:600;color:#4facfe;font-size:1em}.layer-order-info{font-size:.8em;color:#666}.remove-layer-btn{background:#dc3545;color:#fff;border:none;padding:6px 12px;border-radius:4px;cursor:pointer;font-size:.85em;transition:background .3s ease}.remove-layer-btn:hover{background:#c82333}.btn{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:12px 24px;border:none;border-radius:8px;font-size:1.1em;font-weight:600;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease;width:100%}.btn:hover{transform:translateY(-2px);box-shadow:0 5px 15px #0003}.btn:disabled{background:#ccc;cursor:not-allowed;opacity:.6}.btn-secondary{background:linear-gradient(135deg,#28a745,#20c997)}.btn-secondary:hover{transform:translateY(-2px);box-shadow:0 5px 15px #28a7454d}.btn-add-layer{background:linear-gradient(135deg,#17a2b8,#138496);margin-top:10px}.preset-materials{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.preset-btn{padding:6px 12px;background:#e9ecef;border:1px solid #dee2e6;border-radius:4px;cursor:pointer;font-size:.85em;transition:all .2s ease}.preset-btn:hover{background:#4facfe;color:#fff;border-color:#4facfe}.layer-preview{margin-top:20px;padding:15px;background:#f0f8ff;border:1px solid #b0d4f1;border-radius:6px}.layer-preview h4{margin:0 0 10px;color:#0c5460;font-size:1em}.layer-preview-text{font-family:Courier New,monospace;font-size:.9em;color:#0c5460;line-height:1.6;white-space:pre-wrap}.calculating-indicator{margin:20px 0;padding:20px;background:#e8f4fd;border:2px solid #2196F3;border-radius:8px;text-align:center;color:#1976d2}.calculating-indicator span{display:block;font-size:1.2em;font-weight:700;margin-bottom:8px}.spinner{border:4px solid #f3f3f3;border-top:4px solid #2196F3;border-radius:50%;width:40px;height:40px;animation:spin 1s linear infinite;margin:0 auto 15px}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.alert{padding:15px 20px;border-radius:8px;margin:20px 0}.alert-error{background:#fee;border:1px solid #fcc;color:#c33}.alert-success{background:#efe;border:1px solid #cfc;color:#3c3}.result-container{text-align:center;margin:30px 0}.result-container img{max-width:100%;height:auto;border-radius:8px;box-shadow:0 5px 15px #0000001a}.download-link{display:inline-block;margin-top:15px;padding:10px 20px;background:#28a745;color:#fff;text-decoration:none;border-radius:5px;transition:background .3s ease}.download-link:hover{background:#218838}@media (max-width: 768px){.form-row{grid-template-columns:1fr}.container{margin:10px;border-radius:10px}.header,.form-container{padding:20px}}
