.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-1e66cf13]{margin-top:20px;display:flex;gap:20px;flex-wrap:wrap}.layer-compact-row[data-v-1e66cf13]{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;align-items:start}.form-group-compact[data-v-1e66cf13]{display:flex;flex-direction:column}.form-group-compact label[data-v-1e66cf13]{font-size:.82em;font-weight:550;color:var(--color-text-secondary, #64748b);margin-bottom:4px}.form-group-compact input[data-v-1e66cf13]{padding:8px 10px;border:1.5px solid var(--color-border, #e4e8f1);border-radius:var(--radius-sm, 6px);font-size:.88em;font-family:var(--font-family, inherit);width:100%;transition:var(--transition-fast, .15s ease);background:var(--color-surface, #fff);color:var(--color-text, #1e293b)}.form-group-compact input[data-v-1e66cf13]:focus{outline:none;border-color:var(--color-primary, #4f6ef7);box-shadow:0 0 0 3px #4f6ef71a}.form-group-compact input.readonly-input[data-v-1e66cf13]{background:var(--color-bg, #f4f6fc);cursor:default;color:var(--color-text-secondary, #64748b)}@media (max-width: 768px){.layer-compact-row[data-v-1e66cf13]{grid-template-columns:repeat(2,1fr)}}.task-queue-container[data-v-0dd85e63]{margin-top:8px}.task-queue-header[data-v-0dd85e63]{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;flex-wrap:wrap;gap:12px}.task-queue-header h3[data-v-0dd85e63]{margin:0;color:var(--color-text, #1e293b);font-weight:650;font-size:1.1em}.header-actions[data-v-0dd85e63]{display:flex;align-items:center;gap:12px}.filter-buttons[data-v-0dd85e63]{display:flex;gap:6px;background:var(--color-bg, #f4f6fc);padding:4px;border-radius:var(--radius-sm, 6px)}.filter-btn[data-v-0dd85e63]{padding:6px 14px;background:transparent;color:var(--color-text-secondary, #64748b);border:none;border-radius:var(--radius-sm, 6px);cursor:pointer;font-size:13px;font-weight:500;font-family:var(--font-family, inherit);transition:var(--transition-fast, .15s ease)}.filter-btn[data-v-0dd85e63]:hover{background:var(--color-surface, #fff);color:var(--color-text, #1e293b)}.filter-btn.active[data-v-0dd85e63]{background:var(--color-primary, #4f6ef7);color:#fff;box-shadow:var(--shadow-xs, 0 1px 2px rgba(0,0,0,.04))}.refresh-btn[data-v-0dd85e63]{padding:8px 18px;background:var(--color-surface, #fff);color:var(--color-primary, #4f6ef7);border:1.5px solid var(--color-border, #e4e8f1);border-radius:var(--radius-sm, 6px);cursor:pointer;font-size:13px;font-weight:550;font-family:var(--font-family, inherit);transition:var(--transition-fast, .15s ease)}.refresh-btn[data-v-0dd85e63]:hover:not(:disabled){border-color:var(--color-primary, #4f6ef7);background:var(--color-primary-bg, rgba(79, 110, 247, .06))}.refresh-btn[data-v-0dd85e63]:disabled{opacity:.5;cursor:not-allowed}.loading-state[data-v-0dd85e63],.empty-state[data-v-0dd85e63]{text-align:center;padding:48px 20px;color:var(--color-text-tertiary, #94a3b8)}.loading-state p[data-v-0dd85e63],.empty-state p[data-v-0dd85e63]{font-size:.95em}.task-list[data-v-0dd85e63]{display:flex;flex-direction:column;gap:12px}.task-item[data-v-0dd85e63]{background:var(--color-surface, #fff);border:1.5px solid var(--color-border, #e4e8f1);border-radius:var(--radius-md, 10px);overflow:hidden;transition:var(--transition-fast, .15s ease)}.task-item[data-v-0dd85e63]:hover{border-color:var(--color-primary-light, #7b93fa);box-shadow:var(--shadow-sm, 0 2px 8px rgba(0,0,0,.06))}.task-item.status-pending[data-v-0dd85e63]{border-left:4px solid var(--color-info, #0984e3)}.task-item.status-running[data-v-0dd85e63]{border-left:4px solid var(--color-warning, #f0932b)}.task-item.status-completed[data-v-0dd85e63]{border-left:4px solid var(--color-success, #00b894)}.task-item.status-failed[data-v-0dd85e63]{border-left:4px solid var(--color-error, #e74c3c)}.task-header[data-v-0dd85e63]{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;background:var(--color-bg, #f4f6fc);cursor:pointer;-webkit-user-select:none;user-select:none;transition:var(--transition-fast, .15s ease)}.task-header[data-v-0dd85e63]:hover{background:var(--color-primary-bg, rgba(79, 110, 247, .06))}.task-header-left[data-v-0dd85e63]{display:flex;align-items:center;gap:10px;flex:1;min-width:0}.task-header-right[data-v-0dd85e63]{display:flex;align-items:center;gap:8px;flex-shrink:0}.task-type-badge[data-v-0dd85e63]{padding:4px 10px;border-radius:var(--radius-full, 9999px);font-size:11px;font-weight:600;white-space:nowrap;letter-spacing:.02em}.task-type-badge.type-mpb[data-v-0dd85e63]{background:#0984e31a;color:var(--color-info, #0984e3)}.task-type-badge.type-sem[data-v-0dd85e63]{background:#6c5ce71a;color:var(--color-accent, #6c5ce7)}.task-type-badge.type-puf_single[data-v-0dd85e63],.task-type-badge.type-puf_batch[data-v-0dd85e63],.task-type-badge.type-puf_reproducibility[data-v-0dd85e63]{background:#f0932b1a;color:var(--color-warning, #f0932b)}.delete-icon-btn[data-v-0dd85e63],.recalc-icon-btn[data-v-0dd85e63]{background:transparent;border:none;cursor:pointer;font-size:15px;padding:5px 8px;border-radius:var(--radius-sm, 6px);transition:var(--transition-fast, .15s ease);opacity:.5}.delete-icon-btn[data-v-0dd85e63]:hover{background:var(--color-error-bg, #fdecea);opacity:1}.recalc-icon-btn[data-v-0dd85e63]:hover{background:var(--color-success-bg, #e6faf5);opacity:1}.task-id[data-v-0dd85e63]{font-weight:650;color:var(--color-primary, #4f6ef7);font-size:.92em}.task-status[data-v-0dd85e63]{padding:4px 12px;border-radius:var(--radius-full, 9999px);font-size:11px;font-weight:600;text-align:center;letter-spacing:.01em}.status-badge-pending[data-v-0dd85e63]{background:var(--color-info-bg, #e8f4fd);color:var(--color-info, #0984e3)}.status-badge-running[data-v-0dd85e63]{background:var(--color-warning-bg, #fef6e8);color:var(--color-warning, #f0932b)}.status-badge-completed[data-v-0dd85e63]{background:var(--color-success-bg, #e6faf5);color:#0a7a5e}.status-badge-failed[data-v-0dd85e63]{background:var(--color-error-bg, #fdecea);color:var(--color-error, #e74c3c)}.task-time[data-v-0dd85e63]{color:var(--color-text-tertiary, #94a3b8);font-size:.82em}.expand-icon[data-v-0dd85e63]{color:var(--color-text-tertiary, #94a3b8);font-size:11px;transition:var(--transition-fast, .15s ease)}.task-details[data-v-0dd85e63]{padding:20px 22px;border-top:1px solid var(--color-border-light, #eef0f6)}.task-info[data-v-0dd85e63]{margin-bottom:16px}.task-info p[data-v-0dd85e63]{margin:5px 0;color:var(--color-text, #1e293b);font-size:.9em}.error-message[data-v-0dd85e63]{color:var(--color-error, #e74c3c);background:var(--color-error-bg, #fdecea);padding:12px 16px;border-radius:var(--radius-sm, 6px);margin-top:12px;font-size:.88em;border:1px solid rgba(231,76,60,.12)}.layers-detail[data-v-0dd85e63],.sem-details[data-v-0dd85e63],.puf-details[data-v-0dd85e63]{margin:16px 0;padding:16px;background:var(--color-bg, #f4f6fc);border-radius:var(--radius-md, 10px);border:1px solid var(--color-border, #e4e8f1)}.layers-title[data-v-0dd85e63]{margin:0 0 14px;color:var(--color-text, #1e293b);font-size:.9em;font-weight:600}.analysis-params[data-v-0dd85e63]{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:8px;margin-top:10px}.param-item[data-v-0dd85e63]{display:flex;justify-content:space-between;align-items:center;padding:8px 14px;background:var(--color-surface, #fff);border-radius:var(--radius-sm, 6px);border:1px solid var(--color-border, #e4e8f1)}.param-label[data-v-0dd85e63]{color:var(--color-text-secondary, #64748b);font-size:.82em}.param-value[data-v-0dd85e63]{font-weight:550;color:var(--color-text, #1e293b);font-size:.82em}.calc-params-area[data-v-0dd85e63]{display:flex;gap:12px;margin-top:14px;flex-wrap:wrap}.calc-params[data-v-0dd85e63]{flex:1;min-width:200px;padding:12px 14px;background:var(--color-info-bg, #e8f4fd);border-radius:var(--radius-sm, 6px);font-size:.82em;border:1px solid rgba(9,132,227,.1)}.calc-params-label[data-v-0dd85e63]{font-weight:600;color:var(--color-info, #0984e3)}.calc-params-value[data-v-0dd85e63]{color:var(--color-text, #1e293b)}.layers-table-wrapper[data-v-0dd85e63]{overflow-x:auto;border-radius:var(--radius-sm, 6px);border:1px solid var(--color-border, #e4e8f1)}.layers-table[data-v-0dd85e63]{width:100%;border-collapse:collapse;font-size:.82em}.layers-table thead[data-v-0dd85e63]{background:var(--color-info-bg, #e8f4fd)}.layers-table th[data-v-0dd85e63]{padding:10px 14px;text-align:left;font-weight:600;color:var(--color-info, #0984e3);border-bottom:2px solid rgba(9,132,227,.15)}.layers-table td[data-v-0dd85e63]{padding:8px 14px;border-bottom:1px solid var(--color-border-light, #eef0f6);color:var(--color-text, #1e293b)}.layers-table tbody tr[data-v-0dd85e63]:hover{background:var(--color-primary-bg, rgba(79, 110, 247, .04))}.layers-table tbody tr:last-child td[data-v-0dd85e63]{border-bottom:none}.layers-table td[data-v-0dd85e63]:first-child,.layers-table th[data-v-0dd85e63]:first-child{width:50px;text-align:center}.dos-params[data-v-0dd85e63]{flex:1;min-width:200px;padding:12px 14px;background:var(--color-warning-bg, #fef6e8);border-radius:var(--radius-sm, 6px);font-size:.82em;border:1px solid rgba(240,147,43,.1)}.dos-params-label[data-v-0dd85e63]{font-weight:600;color:var(--color-warning, #f0932b)}.dos-params-value[data-v-0dd85e63]{color:var(--color-text, #1e293b)}.task-actions[data-v-0dd85e63]{display:flex;gap:10px;margin-bottom:16px}.action-btn[data-v-0dd85e63]{padding:8px 16px;background:var(--color-primary, #4f6ef7);color:#fff;border:none;border-radius:var(--radius-sm, 6px);cursor:pointer;font-size:.88em;font-weight:550;transition:var(--transition-fast, .15s ease)}.action-btn[data-v-0dd85e63]:hover{background:var(--color-primary-dark, #3a51c5)}.action-btn-delete[data-v-0dd85e63]{background:var(--color-error, #e74c3c)}.action-btn-delete[data-v-0dd85e63]:hover{background:#c0392b}.task-results[data-v-0dd85e63]{margin-top:20px;padding-top:20px;border-top:1.5px solid var(--color-border, #e4e8f1)}.task-results h4[data-v-0dd85e63]{color:var(--color-text, #1e293b);margin-bottom:16px;font-weight:650}.result-section[data-v-0dd85e63]{margin-bottom:24px}.result-section h5[data-v-0dd85e63]{color:var(--color-text-secondary, #64748b);font-size:.95em;margin-bottom:12px;font-weight:550}.download-links[data-v-0dd85e63]{margin-top:14px;display:flex;gap:10px;flex-wrap:wrap}.download-link[data-v-0dd85e63]{padding:8px 18px;background:var(--gradient-success, linear-gradient(135deg, #00b894 0%, #00cec9 100%));color:#fff;text-decoration:none;border-radius:var(--radius-sm, 6px);font-size:.85em;font-weight:550;display:inline-flex;align-items:center;gap:6px;transition:var(--transition-fast, .15s ease)}.download-link[data-v-0dd85e63]:hover{box-shadow:0 4px 14px #00b89440;transform:translateY(-1px)}.download-link-csv[data-v-0dd85e63]{background:linear-gradient(135deg,#0984e3,#6c5ce7)}.download-link-csv[data-v-0dd85e63]:hover{box-shadow:0 4px 14px #0984e340}.results-grid[data-v-0dd85e63]{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;margin-bottom:20px}.result-card[data-v-0dd85e63]{background:var(--color-bg, #f4f6fc);border-radius:var(--radius-md, 10px);padding:20px;border:1px solid var(--color-border, #e4e8f1)}.result-card h4[data-v-0dd85e63]{color:var(--color-primary, #4f6ef7);margin-bottom:14px;font-size:.92em;font-weight:600}.stat-item[data-v-0dd85e63]{display:flex;justify-content:space-between;align-items:center;padding:9px 0;border-bottom:1px solid var(--color-border-light, #eef0f6)}.stat-item[data-v-0dd85e63]:last-child{border-bottom:none}.stat-label[data-v-0dd85e63]{color:var(--color-text-secondary, #64748b);font-size:.82em}.stat-value[data-v-0dd85e63]{font-weight:600;color:var(--color-text, #1e293b);font-size:.82em}.stat-value.primary[data-v-0dd85e63]{color:var(--color-primary, #4f6ef7);font-size:.95em}.quality-grade[data-v-0dd85e63]{text-align:center;padding:14px;border-radius:var(--radius-md, 10px);font-size:1.15em;font-weight:700;margin-bottom:16px;text-transform:uppercase;letter-spacing:.05em}.quality-grade.excellent[data-v-0dd85e63]{background:var(--color-success-bg, #e6faf5);color:#0a7a5e;border:1.5px solid rgba(0,184,148,.2)}.quality-grade.good[data-v-0dd85e63]{background:var(--color-info-bg, #e8f4fd);color:var(--color-info, #0984e3);border:1.5px solid rgba(9,132,227,.2)}.quality-grade.acceptable[data-v-0dd85e63]{background:var(--color-warning-bg, #fef6e8);color:var(--color-warning, #f0932b);border:1.5px solid rgba(240,147,43,.2)}.quality-grade.poor[data-v-0dd85e63]{background:var(--color-error-bg, #fdecea);color:var(--color-error, #e74c3c);border:1.5px solid rgba(231,76,60,.2)}.visualization-section[data-v-0dd85e63]{margin-top:20px;padding:20px;background:var(--color-surface, #fff);border-radius:var(--radius-md, 10px);border:1px solid var(--color-border, #e4e8f1)}.visualization-section h4[data-v-0dd85e63]{color:var(--color-primary, #4f6ef7);margin-bottom:16px;font-size:.92em;font-weight:600}.image-grid[data-v-0dd85e63]{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}.image-item[data-v-0dd85e63]{text-align:center}.image-item h5[data-v-0dd85e63]{color:var(--color-text-secondary, #64748b);margin-bottom:10px;font-size:.85em;font-weight:500}.result-image[data-v-0dd85e63]{max-width:100%;border:1px solid var(--color-border, #e4e8f1);border-radius:var(--radius-md, 10px)}.auto-refresh-info[data-v-0dd85e63]{margin-top:20px;text-align:center;color:var(--color-text-secondary, #64748b);background:var(--color-warning-bg, #fef6e8);padding:10px 16px;border-radius:var(--radius-sm, 6px);font-size:.82em;border:1px solid rgba(240,147,43,.1)}.particle-data-section[data-v-0dd85e63]{margin-top:20px;padding:20px;background:var(--color-surface, #fff);border-radius:var(--radius-md, 10px);border:1px solid var(--color-border, #e4e8f1)}.particle-data-section h4[data-v-0dd85e63]{color:var(--color-primary, #4f6ef7);margin-bottom:14px;font-size:.92em;font-weight:600}.table-container[data-v-0dd85e63]{max-height:400px;overflow-y:auto;border:1px solid var(--color-border, #e4e8f1);border-radius:var(--radius-sm, 6px)}.particle-table[data-v-0dd85e63]{width:100%;border-collapse:collapse;font-size:.82em}.particle-table thead[data-v-0dd85e63]{background:var(--color-info-bg, #e8f4fd);position:sticky;top:0;z-index:1}.particle-table th[data-v-0dd85e63]{padding:10px 14px;text-align:left;font-weight:600;color:var(--color-info, #0984e3);border-bottom:2px solid rgba(9,132,227,.15)}.particle-table td[data-v-0dd85e63]{padding:8px 14px;border-bottom:1px solid var(--color-border-light, #eef0f6);color:var(--color-text, #1e293b)}.particle-table tbody tr[data-v-0dd85e63]:hover{background:var(--color-primary-bg, rgba(79, 110, 247, .04))}.particle-table tbody tr:last-child td[data-v-0dd85e63]{border-bottom:none}.sem-analysis-container[data-v-ce1ebe56]{padding:4px;max-width:1400px;margin:0 auto}.analysis-header[data-v-ce1ebe56]{text-align:center;margin-bottom:28px}.analysis-header h2[data-v-ce1ebe56]{color:var(--color-text, #1e293b);margin-bottom:8px;font-weight:700;font-size:1.4em}.analysis-header p[data-v-ce1ebe56]{color:var(--color-text-secondary, #64748b);font-size:.95em}.upload-section[data-v-ce1ebe56]{display:flex;flex-direction:column;gap:24px;margin-bottom:28px}.upload-card[data-v-ce1ebe56],.params-card[data-v-ce1ebe56]{background:var(--color-surface, #fff);border-radius:var(--radius-lg, 14px);padding:24px;border:1px solid var(--color-border, #e4e8f1);width:100%}.upload-card h3[data-v-ce1ebe56],.params-card h3[data-v-ce1ebe56]{color:var(--color-text, #1e293b);margin-bottom:8px;font-weight:650;font-size:1.05em}.hint[data-v-ce1ebe56]{color:var(--color-text-secondary, #64748b);font-size:.85em;margin-bottom:16px}.upload-area[data-v-ce1ebe56]{border:2px dashed var(--color-border, #e4e8f1);border-radius:var(--radius-lg, 14px);padding:40px;text-align:center;transition:var(--transition-normal, .25s ease);cursor:pointer;background:var(--color-bg, #f4f6fc)}.upload-area[data-v-ce1ebe56]:hover,.upload-area.drag-over[data-v-ce1ebe56]{border-color:var(--color-primary, #4f6ef7);background:var(--color-primary-bg, rgba(79, 110, 247, .06))}.upload-content[data-v-ce1ebe56]{display:flex;flex-direction:column;align-items:center;gap:12px}.upload-icon[data-v-ce1ebe56]{font-size:2.5em}.upload-text[data-v-ce1ebe56]{font-size:1.05em;color:var(--color-text, #1e293b);font-weight:500}.upload-subtext[data-v-ce1ebe56]{color:var(--color-text-tertiary, #94a3b8);font-size:.9em}.upload-btn[data-v-ce1ebe56]{padding:11px 28px;background:var(--gradient-primary, linear-gradient(135deg, #4f6ef7 0%, #6c5ce7 100%));color:#fff;border:none;border-radius:var(--radius-md, 10px);font-size:.92em;font-weight:600;cursor:pointer;transition:var(--transition-fast, .15s ease);font-family:inherit}.upload-btn[data-v-ce1ebe56]:hover{transform:translateY(-1px);box-shadow:var(--shadow-primary, 0 4px 14px rgba(79, 110, 247, .25))}.preview-section[data-v-ce1ebe56]{margin-top:20px}.preview-header[data-v-ce1ebe56]{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.preview-header h4[data-v-ce1ebe56]{color:var(--color-text, #1e293b);margin:0;font-weight:600}.calibration-tools[data-v-ce1ebe56]{display:flex;gap:8px}.calibration-btn[data-v-ce1ebe56]{padding:7px 16px;background:var(--color-primary, #4f6ef7);color:#fff;border:none;border-radius:var(--radius-sm, 6px);font-size:.85em;font-weight:500;cursor:pointer;transition:var(--transition-fast, .15s ease);font-family:inherit}.calibration-btn[data-v-ce1ebe56]:hover:not(:disabled){background:var(--color-primary-dark, #3a51c5)}.calibration-btn.active[data-v-ce1ebe56]{background:var(--color-primary-dark, #3a51c5);box-shadow:inset 0 2px 4px #00000026}.calibration-btn[data-v-ce1ebe56]:disabled{opacity:.45;cursor:not-allowed}.cancel-btn[data-v-ce1ebe56],.reset-btn[data-v-ce1ebe56]{padding:7px 16px;background:var(--color-text-secondary, #64748b);color:#fff;border:none;border-radius:var(--radius-sm, 6px);font-size:.85em;cursor:pointer;transition:var(--transition-fast, .15s ease);font-family:inherit}.cancel-btn[data-v-ce1ebe56]:hover,.reset-btn[data-v-ce1ebe56]:hover{background:var(--color-text, #1e293b)}.preview-image-container[data-v-ce1ebe56]{position:relative;border:1px solid var(--color-border, #e4e8f1);border-radius:var(--radius-md, 10px);overflow:hidden;max-height:900px;display:flex;justify-content:center;align-items:center;background:var(--color-bg, #f4f6fc)}.preview-image[data-v-ce1ebe56]{max-width:100%;max-height:900px;object-fit:contain;display:block}.calibration-canvas[data-v-ce1ebe56]{position:absolute;top:0;left:0;cursor:crosshair;z-index:10}.calibration-instructions[data-v-ce1ebe56]{margin-top:14px;padding:12px 16px;background:var(--color-info-bg, #e8f4fd);border-left:3px solid var(--color-info, #0984e3);border-radius:var(--radius-sm, 6px)}.calibration-instructions p[data-v-ce1ebe56]{margin:0;color:var(--color-info, #0984e3);font-size:.9em}.calibration-instructions strong[data-v-ce1ebe56]{color:var(--color-primary-dark, #3a51c5)}.ruler-input[data-v-ce1ebe56]{margin-top:14px;padding:14px;background:var(--color-bg, #f4f6fc);border-radius:var(--radius-md, 10px);display:flex;flex-direction:column;gap:12px}.ruler-input label[data-v-ce1ebe56]{display:flex;align-items:center;gap:10px}.ruler-label[data-v-ce1ebe56]{font-weight:600;color:var(--color-text, #1e293b)}.ruler-input-field[data-v-ce1ebe56]{flex:1;padding:9px 14px;border:1.5px solid var(--color-primary, #4f6ef7);border-radius:var(--radius-sm, 6px);font-size:15px;font-family:inherit}.ruler-unit-select[data-v-ce1ebe56]{padding:9px 14px;border:1.5px solid var(--color-primary, #4f6ef7);border-radius:var(--radius-sm, 6px);font-size:.88em;background:var(--color-surface, #fff);font-family:inherit}.confirm-btn[data-v-ce1ebe56]{padding:11px;background:var(--gradient-success, linear-gradient(135deg, #00b894 0%, #00cec9 100%));color:#fff;border:none;border-radius:var(--radius-md, 10px);font-size:.95em;font-weight:600;cursor:pointer;transition:var(--transition-fast, .15s ease);font-family:inherit}.confirm-btn[data-v-ce1ebe56]:hover{box-shadow:0 4px 14px #00b8944d}.calibration-result[data-v-ce1ebe56]{margin-top:14px;padding:16px;background:var(--color-success-bg, #e6faf5);border-left:3px solid var(--color-success, #00b894);border-radius:var(--radius-md, 10px);display:flex;flex-direction:column;gap:8px}.result-item[data-v-ce1ebe56]{display:flex;justify-content:space-between;padding:7px 0}.result-label[data-v-ce1ebe56]{color:var(--color-text-secondary, #64748b);font-weight:500;font-size:.9em}.result-value[data-v-ce1ebe56]{color:#0a7a5e;font-weight:600;font-size:.9em}.recalibrate-btn[data-v-ce1ebe56]{align-self:flex-start;padding:7px 16px;background:var(--color-success, #00b894);color:#fff;border:none;border-radius:var(--radius-sm, 6px);font-size:.85em;cursor:pointer;transition:var(--transition-fast, .15s ease);font-family:inherit}.recalibrate-btn[data-v-ce1ebe56]:hover{background:#009b7d}.export-buttons[data-v-ce1ebe56]{display:flex;flex-direction:column;gap:8px}.export-btn[data-v-ce1ebe56]{padding:11px 18px;background:var(--color-bg, #f4f6fc);color:var(--color-text, #1e293b);border:1px solid var(--color-border, #e4e8f1);border-radius:var(--radius-sm, 6px);font-size:.88em;font-weight:500;cursor:pointer;transition:var(--transition-fast, .15s ease);text-align:left;font-family:inherit}.export-btn[data-v-ce1ebe56]:hover{background:var(--color-primary-bg, rgba(79, 110, 247, .06));border-color:var(--color-primary, #4f6ef7)}.export-btn.primary[data-v-ce1ebe56]{background:var(--gradient-primary, linear-gradient(135deg, #4f6ef7 0%, #6c5ce7 100%));color:#fff;border:none;font-weight:600}.export-btn.primary[data-v-ce1ebe56]:hover{box-shadow:var(--shadow-primary, 0 4px 14px rgba(79, 110, 247, .25))}.save-status[data-v-ce1ebe56]{margin-top:12px;padding:10px 14px;border-radius:var(--radius-sm, 6px);font-size:.85em;font-weight:500}.save-status.success[data-v-ce1ebe56]{background:var(--color-success-bg, #e6faf5);color:#0a7a5e;border-left:3px solid var(--color-success, #00b894)}.save-status.error[data-v-ce1ebe56]{background:var(--color-error-bg, #fdecea);color:var(--color-error, #e74c3c);border-left:3px solid var(--color-error, #e74c3c)}.file-info[data-v-ce1ebe56]{margin-top:14px;padding:14px;background:var(--color-bg, #f4f6fc);border-radius:var(--radius-sm, 6px)}.file-info p[data-v-ce1ebe56]{margin:4px 0;color:var(--color-text-secondary, #64748b);font-size:.88em}.param-group[data-v-ce1ebe56]{margin-bottom:18px}.param-group label[data-v-ce1ebe56]{display:flex;align-items:center;gap:10px;margin-bottom:6px}.param-label[data-v-ce1ebe56]{font-weight:500;color:var(--color-text, #1e293b);flex:1;font-size:.9em}.param-input[data-v-ce1ebe56],.param-select[data-v-ce1ebe56]{padding:8px 12px;border:1.5px solid var(--color-border, #e4e8f1);border-radius:var(--radius-sm, 6px);font-size:.88em;width:120px;font-family:inherit}.param-input[data-v-ce1ebe56]:focus,.param-select[data-v-ce1ebe56]:focus{outline:none;border-color:var(--color-primary, #4f6ef7);box-shadow:0 0 0 3px #4f6ef71a}.param-input[data-v-ce1ebe56]:disabled{background:var(--color-bg, #f4f6fc);cursor:not-allowed}.param-unit[data-v-ce1ebe56]{color:var(--color-text-tertiary, #94a3b8);font-size:.85em;width:40px}.param-group small[data-v-ce1ebe56]{display:block;color:var(--color-text-tertiary, #94a3b8);font-size:.8em;margin-top:4px}.advanced-section[data-v-ce1ebe56]{padding:14px;background:var(--color-bg, #f4f6fc);border-radius:var(--radius-md, 10px);border:1px solid var(--color-border, #e4e8f1);margin-bottom:18px}.param-header[data-v-ce1ebe56]{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.param-header .param-label[data-v-ce1ebe56]{font-size:.95em;font-weight:600;color:var(--color-text, #1e293b);margin:0}.toggle-switch[data-v-ce1ebe56]{position:relative;display:inline-block;width:46px;height:24px;flex:0 0 46px}.toggle-switch input[data-v-ce1ebe56]{opacity:0;width:0;height:0}.toggle-slider[data-v-ce1ebe56]{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:var(--color-border, #e4e8f1);transition:.3s;border-radius:34px}.toggle-slider[data-v-ce1ebe56]:before{position:absolute;content:"";height:18px;width:18px;left:3px;bottom:3px;background-color:#fff;transition:.3s;border-radius:50%;box-shadow:0 1px 3px #0000001a}.toggle-switch input:checked+.toggle-slider[data-v-ce1ebe56]{background-color:var(--color-primary, #4f6ef7)}.toggle-switch input:focus+.toggle-slider[data-v-ce1ebe56]{box-shadow:0 0 0 2px #4f6ef733}.toggle-switch input:checked+.toggle-slider[data-v-ce1ebe56]:before{transform:translate(22px)}.advanced-params[data-v-ce1ebe56]{margin-top:14px;padding-left:16px;border-left:3px solid var(--color-primary, #4f6ef7)}.sub-param[data-v-ce1ebe56]{margin-bottom:12px}.sub-param[data-v-ce1ebe56]:last-child{margin-bottom:0}.param-slider[data-v-ce1ebe56]{flex:1;max-width:150px;height:5px;border-radius:5px;background:var(--color-border, #e4e8f1);outline:none;-webkit-appearance:none}.param-slider[data-v-ce1ebe56]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:16px;height:16px;border-radius:50%;background:var(--color-primary, #4f6ef7);cursor:pointer;box-shadow:0 1px 3px #00000026}.param-slider[data-v-ce1ebe56]::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:var(--color-primary, #4f6ef7);cursor:pointer;border:none}.param-value-display[data-v-ce1ebe56]{min-width:40px;text-align:right;font-weight:600;color:var(--color-primary, #4f6ef7);font-size:.85em}.scale-section[data-v-ce1ebe56]{padding:14px;background:var(--color-info-bg, #e8f4fd);border-radius:var(--radius-sm, 6px);border:1px solid rgba(9,132,227,.12)}.analyze-btn[data-v-ce1ebe56]{width:100%;padding:14px;background:var(--gradient-primary, linear-gradient(135deg, #4f6ef7 0%, #6c5ce7 100%));color:#fff;border:none;border-radius:var(--radius-md, 10px);font-size:1em;font-weight:600;cursor:pointer;transition:var(--transition-fast, .15s ease);margin-top:10px;font-family:inherit}.analyze-btn[data-v-ce1ebe56]:hover:not(.disabled){transform:translateY(-1px);box-shadow:var(--shadow-primary, 0 4px 14px rgba(79, 110, 247, .25))}.analyze-btn.disabled[data-v-ce1ebe56]{opacity:.45;cursor:not-allowed}.results-section[data-v-ce1ebe56]{margin-top:28px}.results-header[data-v-ce1ebe56]{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.results-header h3[data-v-ce1ebe56]{color:var(--color-text, #1e293b);font-weight:650}.download-btn[data-v-ce1ebe56]{padding:9px 18px;background:var(--gradient-success, linear-gradient(135deg, #00b894 0%, #00cec9 100%));color:#fff;border:none;border-radius:var(--radius-sm, 6px);cursor:pointer;transition:var(--transition-fast, .15s ease);font-size:.88em;font-weight:500;font-family:inherit}.download-btn[data-v-ce1ebe56]:hover{box-shadow:0 4px 14px #00b8944d}.results-grid[data-v-ce1ebe56]{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;margin-bottom:24px}.result-card[data-v-ce1ebe56]{background:var(--color-surface, #fff);border-radius:var(--radius-md, 10px);padding:20px;border:1px solid var(--color-border, #e4e8f1)}.result-card h4[data-v-ce1ebe56]{color:var(--color-text, #1e293b);margin-bottom:16px;font-size:.95em;font-weight:650}.stat-item[data-v-ce1ebe56]{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--color-border-light, #eef0f6)}.stat-item[data-v-ce1ebe56]:last-child{border-bottom:none}.stat-label[data-v-ce1ebe56]{color:var(--color-text-secondary, #64748b);font-size:.88em}.stat-value[data-v-ce1ebe56]{font-weight:600;color:var(--color-text, #1e293b);font-size:.88em}.stat-value.primary[data-v-ce1ebe56]{color:var(--color-primary, #4f6ef7);font-size:1.05em}.distribution-stats[data-v-ce1ebe56]{display:flex;flex-direction:column;gap:10px}.dist-item[data-v-ce1ebe56]{display:flex;justify-content:space-between;padding:9px 12px;background:var(--color-bg, #f4f6fc);border-radius:var(--radius-sm, 6px)}.dist-label[data-v-ce1ebe56]{color:var(--color-text-secondary, #64748b);font-size:.85em}.dist-value[data-v-ce1ebe56]{font-weight:600;color:var(--color-text, #1e293b);font-size:.85em}.visualization-section[data-v-ce1ebe56]{background:var(--color-surface, #fff);border-radius:var(--radius-md, 10px);padding:20px;border:1px solid var(--color-border, #e4e8f1);margin-bottom:24px}.visualization-section h4[data-v-ce1ebe56]{color:var(--color-text, #1e293b);margin-bottom:16px;font-weight:600;font-size:.95em}.image-grid[data-v-ce1ebe56]{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}.image-item[data-v-ce1ebe56]{text-align:center}.image-item h5[data-v-ce1ebe56]{color:var(--color-text-secondary, #64748b);margin-bottom:10px;font-weight:500;font-size:.85em}.result-image[data-v-ce1ebe56]{max-width:100%;border:1px solid var(--color-border, #e4e8f1);border-radius:var(--radius-sm, 6px)}.data-table-section[data-v-ce1ebe56]{background:var(--color-surface, #fff);border-radius:var(--radius-md, 10px);padding:20px;border:1px solid var(--color-border, #e4e8f1)}.data-table-section h4[data-v-ce1ebe56]{color:var(--color-text, #1e293b);margin-bottom:16px;font-weight:600;font-size:.95em}.table-container[data-v-ce1ebe56]{overflow-x:auto}.data-table[data-v-ce1ebe56]{width:100%;border-collapse:collapse}.data-table th[data-v-ce1ebe56],.data-table td[data-v-ce1ebe56]{padding:10px 14px;text-align:left;border-bottom:1px solid var(--color-border-light, #eef0f6);font-size:.85em}.data-table th[data-v-ce1ebe56]{background:var(--color-bg, #f4f6fc);font-weight:600;color:var(--color-primary, #4f6ef7)}.data-table tbody tr[data-v-ce1ebe56]:hover{background:var(--color-primary-bg, rgba(79, 110, 247, .04))}.table-note[data-v-ce1ebe56]{margin-top:12px;color:var(--color-text-tertiary, #94a3b8);font-size:.82em;text-align:center}.error-message[data-v-ce1ebe56]{background:var(--color-error-bg, #fdecea);border-left:3px solid var(--color-error, #e74c3c);color:var(--color-error, #e74c3c);padding:14px 18px;border-radius:var(--radius-sm, 6px);margin-top:18px;white-space:pre-line;line-height:1.6;font-size:.88em}@media (max-width: 1024px){.upload-section[data-v-ce1ebe56]{grid-template-columns:1fr}}.sem-analysis-container[data-v-d68203ae]{padding:4px;max-width:1400px;margin:0 auto}.analysis-header[data-v-d68203ae]{text-align:center;margin-bottom:28px}.analysis-header h2[data-v-d68203ae]{color:var(--color-text, #1e293b);margin-bottom:8px;font-weight:700;font-size:1.4em}.analysis-header p[data-v-d68203ae]{color:var(--color-text-secondary, #64748b);font-size:.95em}.sub-tabs-nav[data-v-d68203ae]{display:flex;gap:4px;margin-bottom:24px;border-bottom:2px solid var(--color-border-light, #eef0f6);padding-bottom:0}.sub-tab-button[data-v-d68203ae]{padding:11px 22px;background:transparent;color:var(--color-text-tertiary, #94a3b8);border:none;border-bottom:2.5px solid transparent;margin-bottom:-2px;font-size:.92em;font-weight:500;font-family:inherit;cursor:pointer;transition:var(--transition-fast, .15s ease)}.sub-tab-button[data-v-d68203ae]:hover{color:var(--color-primary, #4f6ef7);background:var(--color-primary-bg, rgba(79, 110, 247, .06));border-radius:var(--radius-sm, 6px) var(--radius-sm, 6px) 0 0}.sub-tab-button.active[data-v-d68203ae]{color:var(--color-primary, #4f6ef7);border-bottom-color:var(--color-primary, #4f6ef7);font-weight:600}.upload-section[data-v-d68203ae]{display:flex;flex-direction:column;gap:24px;margin-bottom:28px}.upload-card[data-v-d68203ae],.params-card[data-v-d68203ae]{background:var(--color-surface, #fff);border-radius:var(--radius-lg, 14px);padding:24px;border:1px solid var(--color-border, #e4e8f1);width:100%}.upload-card h3[data-v-d68203ae],.params-card h3[data-v-d68203ae]{color:var(--color-text, #1e293b);margin-bottom:8px;font-weight:650;font-size:1.05em}.hint[data-v-d68203ae]{color:var(--color-text-secondary, #64748b);font-size:.85em;margin-bottom:16px}.upload-area[data-v-d68203ae]{border:2px dashed var(--color-border, #e4e8f1);border-radius:var(--radius-lg, 14px);padding:36px;text-align:center;transition:var(--transition-normal, .25s ease);cursor:pointer;background:var(--color-bg, #f4f6fc)}.upload-area-small[data-v-d68203ae]{padding:20px}.upload-area[data-v-d68203ae]:hover,.upload-area.drag-over[data-v-d68203ae]{border-color:var(--color-primary, #4f6ef7);background:var(--color-primary-bg, rgba(79, 110, 247, .06))}.upload-content[data-v-d68203ae]{display:flex;flex-direction:column;align-items:center;gap:12px}.upload-icon[data-v-d68203ae]{font-size:2.5em}.upload-text[data-v-d68203ae]{font-size:1.05em;color:var(--color-text, #1e293b);font-weight:500}.upload-subtext[data-v-d68203ae]{color:var(--color-text-tertiary, #94a3b8);font-size:.9em}.upload-btn[data-v-d68203ae]{padding:11px 28px;background:var(--gradient-primary, linear-gradient(135deg, #4f6ef7 0%, #6c5ce7 100%));color:#fff;border:none;border-radius:var(--radius-md, 10px);font-size:.92em;font-weight:600;cursor:pointer;transition:var(--transition-fast, .15s ease);font-family:inherit}.upload-btn-sm[data-v-d68203ae]{padding:7px 18px;font-size:.85em}.upload-btn[data-v-d68203ae]:hover{transform:translateY(-1px);box-shadow:var(--shadow-primary, 0 4px 14px rgba(79, 110, 247, .25))}.preview-section[data-v-d68203ae]{margin-top:18px}.preview-image-container[data-v-d68203ae]{border:1px solid var(--color-border, #e4e8f1);border-radius:var(--radius-md, 10px);overflow:hidden;max-height:400px;display:flex;justify-content:center;align-items:center;background:var(--color-bg, #f4f6fc)}.preview-image[data-v-d68203ae]{max-width:100%;max-height:400px;object-fit:contain}.file-info[data-v-d68203ae]{margin-top:14px;padding:14px;background:var(--color-bg, #f4f6fc);border-radius:var(--radius-sm, 6px);margin-bottom:14px}.file-info p[data-v-d68203ae]{margin:4px 0;color:var(--color-text-secondary, #64748b);font-size:.88em}.file-list[data-v-d68203ae]{margin-top:18px}.file-list h4[data-v-d68203ae]{color:var(--color-text, #1e293b);margin-bottom:10px;font-weight:600;font-size:.95em}.file-list-items[data-v-d68203ae]{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.file-list-item[data-v-d68203ae]{display:flex;align-items:center;gap:8px;padding:7px 12px;background:var(--color-bg, #f4f6fc);border-radius:var(--radius-sm, 6px);border:1px solid var(--color-border, #e4e8f1);max-width:220px}.file-thumb[data-v-d68203ae]{width:36px;height:36px;object-fit:cover;border-radius:var(--radius-sm, 6px)}.file-name[data-v-d68203ae]{flex:1;font-size:.8em;color:var(--color-text, #1e293b);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-remove-btn[data-v-d68203ae]{background:none;border:none;color:var(--color-error, #e74c3c);cursor:pointer;font-size:14px;padding:2px 4px;border-radius:var(--radius-sm, 6px);transition:var(--transition-fast, .15s ease)}.file-remove-btn[data-v-d68203ae]:hover{background:var(--color-error-bg, #fdecea)}.sample-groups[data-v-d68203ae]{display:flex;flex-direction:column;gap:16px;margin-top:16px}.sample-group[data-v-d68203ae]{padding:14px;background:var(--color-bg, #f4f6fc);border-radius:var(--radius-md, 10px);border:1px solid var(--color-border, #e4e8f1)}.sample-group-header[data-v-d68203ae]{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.sample-group-header h4[data-v-d68203ae]{color:var(--color-text, #1e293b);font-weight:600;font-size:.95em;margin:0}.add-group-btn[data-v-d68203ae]{width:100%;padding:10px;background:var(--color-bg, #f4f6fc);border:2px dashed var(--color-border, #e4e8f1);border-radius:var(--radius-md, 10px);color:var(--color-primary, #4f6ef7);font-size:.9em;font-weight:600;cursor:pointer;margin-top:12px;font-family:inherit;transition:var(--transition-fast, .15s ease)}.add-group-btn[data-v-d68203ae]:hover{background:var(--color-primary-bg, rgba(79, 110, 247, .06));border-color:var(--color-primary, #4f6ef7)}.param-group[data-v-d68203ae]{margin-bottom:18px}.param-group label[data-v-d68203ae]{display:flex;align-items:center;gap:10px;margin-bottom:6px}.param-label[data-v-d68203ae]{font-weight:500;color:var(--color-text, #1e293b);flex:1;font-size:.9em}.param-input[data-v-d68203ae],.param-select[data-v-d68203ae]{padding:8px 12px;border:1.5px solid var(--color-border, #e4e8f1);border-radius:var(--radius-sm, 6px);font-size:.88em;width:120px;font-family:inherit}.param-input[data-v-d68203ae]:focus,.param-select[data-v-d68203ae]:focus{outline:none;border-color:var(--color-primary, #4f6ef7);box-shadow:0 0 0 3px #4f6ef71a}.param-unit[data-v-d68203ae]{color:var(--color-text-tertiary, #94a3b8);font-size:.85em;width:40px}.param-group small[data-v-d68203ae]{display:block;color:var(--color-text-tertiary, #94a3b8);font-size:.8em;margin-top:4px}.advanced-section[data-v-d68203ae]{padding:14px;background:var(--color-bg, #f4f6fc);border-radius:var(--radius-md, 10px);border:1px solid var(--color-border, #e4e8f1);margin-bottom:18px}.param-header[data-v-d68203ae]{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.param-header .param-label[data-v-d68203ae]{font-size:.95em;font-weight:600;color:var(--color-text, #1e293b);margin:0}.toggle-switch[data-v-d68203ae]{position:relative;display:inline-block;width:46px;height:24px;flex:0 0 46px}.toggle-switch input[data-v-d68203ae]{opacity:0;width:0;height:0}.toggle-slider[data-v-d68203ae]{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:var(--color-border, #e4e8f1);transition:.3s;border-radius:34px}.toggle-slider[data-v-d68203ae]:before{position:absolute;content:"";height:18px;width:18px;left:3px;bottom:3px;background-color:#fff;transition:.3s;border-radius:50%;box-shadow:0 1px 3px #0000001a}.toggle-switch input:checked+.toggle-slider[data-v-d68203ae]{background-color:var(--color-primary, #4f6ef7)}.toggle-switch input:focus+.toggle-slider[data-v-d68203ae]{box-shadow:0 0 0 2px #4f6ef733}.toggle-switch input:checked+.toggle-slider[data-v-d68203ae]:before{transform:translate(22px)}.analyze-btn[data-v-d68203ae]{width:100%;padding:14px;background:var(--gradient-primary, linear-gradient(135deg, #4f6ef7 0%, #6c5ce7 100%));color:#fff;border:none;border-radius:var(--radius-md, 10px);font-size:1em;font-weight:600;cursor:pointer;transition:var(--transition-fast, .15s ease);margin-top:10px;font-family:inherit}.analyze-btn[data-v-d68203ae]:hover:not(.disabled){transform:translateY(-1px);box-shadow:var(--shadow-primary, 0 4px 14px rgba(79, 110, 247, .25))}.analyze-btn.disabled[data-v-d68203ae]{opacity:.45;cursor:not-allowed}.task-status-banner[data-v-d68203ae]{padding:14px 18px;border-radius:var(--radius-md, 10px);margin-bottom:18px;font-weight:500;text-align:center;font-size:.92em}.task-status-banner.pending[data-v-d68203ae]{background:var(--color-info-bg, #e8f4fd);color:var(--color-info, #0984e3);border:1px solid rgba(9,132,227,.15)}.task-status-banner.running[data-v-d68203ae]{background:var(--color-warning-bg, #fef6e8);color:var(--color-warning, #f0932b);border:1px solid rgba(240,147,43,.15)}.task-status-banner.completed[data-v-d68203ae]{background:var(--color-success-bg, #e6faf5);color:var(--color-success, #00b894);border:1px solid rgba(0,184,148,.15)}.task-status-banner.failed[data-v-d68203ae]{background:var(--color-error-bg, #fdecea);color:var(--color-error, #e74c3c);border:1px solid rgba(231,76,60,.15)}.results-section[data-v-d68203ae]{margin-top:28px}.results-header[data-v-d68203ae]{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.results-header h3[data-v-d68203ae]{color:var(--color-text, #1e293b);font-weight:650}.download-btn[data-v-d68203ae]{padding:9px 18px;background:var(--gradient-success, linear-gradient(135deg, #00b894 0%, #00cec9 100%));color:#fff;border:none;border-radius:var(--radius-sm, 6px);cursor:pointer;transition:var(--transition-fast, .15s ease);font-size:.88em;font-weight:500;font-family:inherit}.download-btn[data-v-d68203ae]:hover{box-shadow:0 4px 14px #00b8944d}.results-grid[data-v-d68203ae]{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;margin-bottom:24px}.result-card[data-v-d68203ae]{background:var(--color-surface, #fff);border-radius:var(--radius-md, 10px);padding:20px;border:1px solid var(--color-border, #e4e8f1)}.result-card h4[data-v-d68203ae]{color:var(--color-text, #1e293b);margin-bottom:16px;font-size:.95em;font-weight:650}.stat-item[data-v-d68203ae]{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--color-border-light, #eef0f6)}.stat-item[data-v-d68203ae]:last-child{border-bottom:none}.stat-label[data-v-d68203ae]{color:var(--color-text-secondary, #64748b);font-size:.88em}.stat-value[data-v-d68203ae]{font-weight:600;color:var(--color-text, #1e293b);font-size:.88em}.stat-value.primary[data-v-d68203ae]{color:var(--color-primary, #4f6ef7);font-size:1.05em}.quality-grade[data-v-d68203ae]{text-align:center;padding:14px;border-radius:var(--radius-md, 10px);font-size:1.3em;font-weight:700;margin-bottom:16px;text-transform:uppercase;letter-spacing:.05em}.quality-grade.excellent[data-v-d68203ae]{background:var(--color-success-bg, #e6faf5);color:var(--color-success, #00b894);border:1.5px solid rgba(0,184,148,.2)}.quality-grade.good[data-v-d68203ae]{background:var(--color-info-bg, #e8f4fd);color:var(--color-info, #0984e3);border:1.5px solid rgba(9,132,227,.2)}.quality-grade.acceptable[data-v-d68203ae]{background:var(--color-warning-bg, #fef6e8);color:var(--color-warning, #f0932b);border:1.5px solid rgba(240,147,43,.2)}.quality-grade.poor[data-v-d68203ae]{background:var(--color-error-bg, #fdecea);color:var(--color-error, #e74c3c);border:1.5px solid rgba(231,76,60,.2)}.suggestions[data-v-d68203ae]{margin-top:14px;padding:12px;background:var(--color-warning-bg, #fef6e8);border-left:3px solid var(--color-warning, #f0932b);border-radius:var(--radius-sm, 6px)}.suggestion-item[data-v-d68203ae]{margin:4px 0;font-size:.85em;color:var(--color-warning, #f0932b)}.visualization-section[data-v-d68203ae]{background:var(--color-surface, #fff);border-radius:var(--radius-md, 10px);padding:20px;border:1px solid var(--color-border, #e4e8f1);margin-bottom:24px}.visualization-section h4[data-v-d68203ae]{color:var(--color-text, #1e293b);margin-bottom:16px;font-weight:600;font-size:.95em}.image-grid[data-v-d68203ae]{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}.image-item[data-v-d68203ae]{text-align:center}.result-image[data-v-d68203ae]{max-width:100%;border:1px solid var(--color-border, #e4e8f1);border-radius:var(--radius-sm, 6px)}.data-table-section[data-v-d68203ae]{background:var(--color-surface, #fff);border-radius:var(--radius-md, 10px);padding:20px;border:1px solid var(--color-border, #e4e8f1)}.data-table-section h4[data-v-d68203ae]{color:var(--color-text, #1e293b);margin-bottom:16px;font-weight:600;font-size:.95em}.table-container[data-v-d68203ae]{overflow-x:auto}.data-table[data-v-d68203ae]{width:100%;border-collapse:collapse}.data-table th[data-v-d68203ae],.data-table td[data-v-d68203ae]{padding:10px 14px;text-align:left;border-bottom:1px solid var(--color-border-light, #eef0f6);font-size:.85em}.data-table th[data-v-d68203ae]{background:var(--color-bg, #f4f6fc);font-weight:600;color:var(--color-primary, #4f6ef7)}.data-table tbody tr[data-v-d68203ae]:hover{background:var(--color-primary-bg, rgba(79, 110, 247, .04))}.error-message[data-v-d68203ae]{background:var(--color-error-bg, #fdecea);border-left:3px solid var(--color-error, #e74c3c);color:var(--color-error, #e74c3c);padding:14px 18px;border-radius:var(--radius-sm, 6px);margin-top:18px;white-space:pre-line;line-height:1.6;font-size:.88em}@media (max-width: 1024px){.results-grid[data-v-d68203ae]{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-35923337]{min-height:100vh;display:flex;justify-content:center;align-items:center;padding:20px}.login-card[data-v-35923337]{background:var(--color-surface, #fff);border-radius:var(--radius-xl, 20px);box-shadow:var(--shadow-xl, 0 16px 48px rgba(0,0,0,.12));overflow:hidden;width:100%;max-width:420px;border:1px solid var(--color-border-light, #eef0f6)}.login-card-header[data-v-35923337]{background:var(--gradient-header, linear-gradient(135deg, #4f6ef7 0%, #6c5ce7 50%, #a29bfe 100%));color:#fff;padding:44px 32px;text-align:center;position:relative;overflow:hidden}.login-card-header[data-v-35923337]:before{content:"";position:absolute;top:-50%;right:-30%;width:100%;height:200%;background:radial-gradient(circle,rgba(255,255,255,.1) 0%,transparent 60%);pointer-events:none}.login-card-header h1[data-v-35923337]{margin:0;font-size:1.8em;font-weight:700;letter-spacing:-.02em}.login-card-header p[data-v-35923337]{margin:10px 0 0;opacity:.85;font-size:.95em}.login-card-body[data-v-35923337]{padding:36px 32px}.login-form-group[data-v-35923337]{margin-bottom:24px}.login-form-group label[data-v-35923337]{display:block;margin-bottom:8px;color:var(--color-text, #1e293b);font-weight:550;font-size:.9em}.login-form-group input[data-v-35923337]{width:100%;padding:12px 16px;border:1.5px solid var(--color-border, #e4e8f1);border-radius:var(--radius-sm, 6px);font-size:15px;font-family:var(--font-family, inherit);transition:var(--transition-fast, .15s ease);background:var(--color-bg, #f4f6fc)}.login-form-group input[data-v-35923337]:focus{outline:none;border-color:var(--color-primary, #4f6ef7);box-shadow:0 0 0 3px #4f6ef71f;background:var(--color-surface, #fff)}.login-btn[data-v-35923337]{width:100%;padding:14px;background:var(--gradient-primary, linear-gradient(135deg, #4f6ef7 0%, #6c5ce7 100%));color:#fff;border:none;border-radius:var(--radius-md, 10px);font-size:15px;font-weight:600;font-family:var(--font-family, inherit);cursor:pointer;transition:var(--transition-fast, .15s ease)}.login-btn[data-v-35923337]:hover{transform:translateY(-1px);box-shadow:var(--shadow-primary, 0 4px 14px rgba(79, 110, 247, .3))}.login-btn[data-v-35923337]:active{transform:translateY(0)}.login-info-box[data-v-35923337]{background:var(--color-info-bg, #e8f4fd);border-left:4px solid var(--color-primary, #4f6ef7);padding:14px 16px;margin-top:20px;border-radius:var(--radius-sm, 6px);font-size:.85em;color:var(--color-text-secondary, #64748b);line-height:1.5}.login-info-box strong[data-v-35923337]{color:var(--color-primary, #4f6ef7)}.app-header[data-v-35923337]{background:var(--color-surface, #fff);border-bottom:1px solid var(--color-border, #e4e8f1);padding:16px 24px}.header-top[data-v-35923337]{display:flex;align-items:center;justify-content:space-between;gap:16px}.header-brand[data-v-35923337]{display:flex;align-items:center;gap:14px}.header-logo[data-v-35923337]{width:44px;height:44px;border-radius:var(--radius-md, 10px);background:var(--gradient-primary, linear-gradient(135deg, #4f6ef7 0%, #6c5ce7 100%));color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:.85em;letter-spacing:.02em;flex-shrink:0;box-shadow:0 2px 8px #4f6ef740}.header-text h1[data-v-35923337]{margin:0;font-size:1.25em;font-weight:700;color:var(--color-text, #1e293b);letter-spacing:-.01em;line-height:1.2}.header-text p[data-v-35923337]{margin:3px 0 0;font-size:.8em;color:var(--color-text-tertiary, #94a3b8);font-weight:450}.logout-btn[data-v-35923337]{padding:8px 18px;background:transparent;border:1.5px solid var(--color-border, #e4e8f1);border-radius:var(--radius-full, 9999px);color:var(--color-text-secondary, #64748b);font-size:.82em;font-weight:500;cursor:pointer;text-decoration:none;transition:var(--transition-fast, .15s ease);font-family:var(--font-family, inherit);white-space:nowrap}.logout-btn[data-v-35923337]:hover{border-color:var(--color-error, #e74c3c);color:var(--color-error, #e74c3c);background:var(--color-error-bg, #fdecea)}.main-container[data-v-35923337]{width:100%}.tabs-nav[data-v-35923337]{display:flex;gap:4px;margin-bottom:24px;border-bottom:2px solid var(--color-border-light, #eef0f6);padding-bottom:0;overflow-x:auto}.tab-button[data-v-35923337]{padding:12px 20px;background:transparent;border:none;border-bottom:2.5px solid transparent;margin-bottom:-2px;cursor:pointer;font-size:.92em;font-weight:500;font-family:var(--font-family, inherit);color:var(--color-text-tertiary, #94a3b8);transition:var(--transition-fast, .15s ease);display:flex;align-items:center;gap:8px;position:relative;white-space:nowrap}.tab-button[data-v-35923337]:hover{color:var(--color-primary, #4f6ef7);background:var(--color-primary-bg, rgba(79, 110, 247, .06));border-radius:var(--radius-sm, 6px) var(--radius-sm, 6px) 0 0}.tab-button.active[data-v-35923337]{color:var(--color-primary, #4f6ef7);border-bottom-color:var(--color-primary, #4f6ef7);font-weight:600}.task-badge[data-v-35923337]{background:var(--color-error, #e74c3c);color:#fff;font-size:11px;padding:2px 8px;border-radius:var(--radius-full, 9999px);min-width:20px;text-align:center;font-weight:600;line-height:1.4}.tabs-content[data-v-35923337]{width:100%}.tab-panel[data-v-35923337]{width:100%;animation:fadeIn-35923337 .2s ease}@keyframes fadeIn-35923337{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 768px){.header-top[data-v-35923337]{flex-wrap:wrap}.header-brand[data-v-35923337]{flex:1;min-width:0}.logout-btn[data-v-35923337]{order:-1}}:root{--color-primary: #4f6ef7;--color-primary-light: #7b93fa;--color-primary-dark: #3a51c5;--color-primary-bg: rgba(79, 110, 247, .06);--color-primary-bg-hover: rgba(79, 110, 247, .1);--color-accent: #6c5ce7;--color-accent-light: #a29bfe;--color-success: #00b894;--color-success-bg: #e6faf5;--color-warning: #f0932b;--color-warning-bg: #fef6e8;--color-error: #e74c3c;--color-error-bg: #fdecea;--color-info: #0984e3;--color-info-bg: #e8f4fd;--color-bg: #f4f6fc;--color-surface: #ffffff;--color-surface-elevated: #ffffff;--color-border: #e4e8f1;--color-border-light: #eef0f6;--color-text: #1e293b;--color-text-secondary: #64748b;--color-text-tertiary: #94a3b8;--color-text-inverse: #ffffff;--shadow-xs: 0 1px 2px 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 32px rgba(0, 0, 0, .1);--shadow-xl: 0 16px 48px rgba(0, 0, 0, .12);--shadow-primary: 0 4px 14px rgba(79, 110, 247, .25);--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--radius-xl: 20px;--radius-full: 9999px;--space-xs: 4px;--space-sm: 8px;--space-md: 16px;--space-lg: 24px;--space-xl: 32px;--space-2xl: 48px;--transition-fast: .15s ease;--transition-normal: .25s ease;--transition-slow: .35s ease;--font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", sans-serif;--font-mono: "JetBrains Mono", "Fira Code", "SF Mono", "Consolas", monospace;--gradient-header: linear-gradient(135deg, #4f6ef7 0%, #6c5ce7 50%, #a29bfe 100%);--gradient-primary: linear-gradient(135deg, var(--color-primary) 0%, var(--color-accent) 100%);--gradient-success: linear-gradient(135deg, #00b894 0%, #00cec9 100%);--gradient-warm: linear-gradient(135deg, #f0932b 0%, #e74c3c 100%);--bg-gradient: linear-gradient(135deg, #e0e7ff 0%, #ede9fe 40%, #fce7f3 100%)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:var(--font-family);background:var(--bg-gradient);min-height:100vh;padding:20px;color:var(--color-text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.container{max-width:1000px;margin:0 auto;background:var(--color-surface);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);overflow:hidden}.header{background:var(--gradient-header);color:var(--color-text-inverse);padding:36px 32px;text-align:center;position:relative;overflow:hidden}.header:before{content:"";position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:radial-gradient(circle at 30% 50%,rgba(255,255,255,.08) 0%,transparent 50%);pointer-events:none}.header h1{margin:0;font-size:1.9em;font-weight:700;letter-spacing:-.02em}.header p{margin:10px 0 0;opacity:.9;font-size:1.05em;font-weight:400}.back-link{display:inline-block;margin-top:16px;padding:8px 20px;background:#ffffff2e;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:#fff;text-decoration:none;border-radius:var(--radius-full);font-size:.88em;font-weight:500;border:1px solid rgba(255,255,255,.15);transition:var(--transition-fast)}.back-link:hover{background:#ffffff47}.form-container{padding:32px}.section{margin-bottom:28px;padding:24px;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-bg);transition:var(--transition-normal)}.section:hover{border-color:var(--color-primary-bg-hover)}.section h3{margin:0 0 16px;color:var(--color-text);font-size:1.15em;font-weight:650;display:flex;align-items:center;gap:10px}.section h3:before{content:"";width:4px;height:18px;background:var(--gradient-primary);border-radius:2px;flex-shrink:0}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:16px}.form-group{margin-bottom:16px}.form-group label{display:block;margin-bottom:8px;font-weight:550;color:var(--color-text);font-size:.92em}.form-group input[type=text],.form-group input[type=number],.form-group select{width:100%;padding:10px 14px;border:1.5px solid var(--color-border);border-radius:var(--radius-sm);font-size:.95em;font-family:var(--font-family);color:var(--color-text);background:var(--color-surface);transition:var(--transition-fast)}.form-group input:focus,.form-group select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-bg)}.form-group small{display:block;margin-top:6px;color:var(--color-text-secondary);font-size:.82em;line-height:1.5}.layer-list{margin:16px 0}.layer-item{background:var(--color-surface);border:1.5px solid var(--color-border);border-radius:var(--radius-md);padding:14px 16px;margin-bottom:12px;position:relative;transition:var(--transition-fast)}.layer-item:hover{border-color:var(--color-primary-light);box-shadow:var(--shadow-sm)}.layer-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;padding-bottom:10px;border-bottom:1px solid var(--color-border-light)}.layer-title{font-weight:600;color:var(--color-primary);font-size:.95em}.layer-order-info{font-size:.8em;color:var(--color-text-tertiary);margin-left:8px}.remove-layer-btn{background:var(--color-error-bg);color:var(--color-error);border:none;padding:6px 14px;border-radius:var(--radius-sm);cursor:pointer;font-size:.82em;font-weight:500;transition:var(--transition-fast)}.remove-layer-btn:hover{background:var(--color-error);color:#fff}.btn{background:var(--gradient-primary);color:#fff;padding:13px 28px;border:none;border-radius:var(--radius-md);font-size:1em;font-weight:600;font-family:var(--font-family);cursor:pointer;transition:var(--transition-fast);width:100%;position:relative;overflow:hidden}.btn:hover{box-shadow:var(--shadow-primary);transform:translateY(-1px)}.btn:active{transform:translateY(0)}.btn:disabled{background:var(--color-border);cursor:not-allowed;opacity:.6;transform:none;box-shadow:none}.btn-secondary{background:var(--gradient-success)}.btn-secondary:hover{box-shadow:0 4px 14px #00b8944d}.btn-add-layer{background:linear-gradient(135deg,#0984e3,#6c5ce7);margin-top:10px}.btn-add-layer:hover{box-shadow:0 4px 14px #0984e34d}.preset-materials{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.preset-btn{padding:7px 14px;background:var(--color-surface);border:1.5px solid var(--color-border);border-radius:var(--radius-full);cursor:pointer;font-size:.82em;font-weight:500;transition:var(--transition-fast);color:var(--color-text-secondary);font-family:var(--font-family)}.preset-btn:hover{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.layer-preview{margin-top:20px;padding:18px;background:var(--color-info-bg);border:1px solid rgba(9,132,227,.15);border-radius:var(--radius-md)}.layer-preview h4{margin:0 0 10px;color:var(--color-info);font-size:.95em;font-weight:600}.layer-preview-text{font-family:var(--font-mono);font-size:.85em;color:var(--color-text);line-height:1.7;white-space:pre-wrap}.calculating-indicator{margin:20px 0;padding:24px;background:var(--color-info-bg);border:1px solid rgba(9,132,227,.15);border-radius:var(--radius-md);text-align:center;color:var(--color-info)}.calculating-indicator span{display:block;font-size:1.1em;font-weight:600;margin-bottom:8px}.spinner{border:3px solid var(--color-border);border-top:3px solid var(--color-primary);border-radius:50%;width:36px;height:36px;animation:spin .8s linear infinite;margin:0 auto 14px}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.alert{padding:14px 18px;border-radius:var(--radius-md);margin:20px 0;font-size:.92em}.alert-error{background:var(--color-error-bg);border:1px solid rgba(231,76,60,.15);color:var(--color-error)}.alert-success{background:var(--color-success-bg);border:1px solid rgba(0,184,148,.15);color:#0a7a5e}.result-container{text-align:center;margin:28px 0}.result-container img{max-width:100%;height:auto;border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}.download-link{display:inline-block;margin-top:14px;padding:10px 22px;background:var(--gradient-success);color:#fff;text-decoration:none;border-radius:var(--radius-sm);font-weight:500;font-size:.9em;transition:var(--transition-fast)}.download-link:hover{box-shadow:0 4px 14px #00b8944d;transform:translateY(-1px)}@media (max-width: 768px){body{padding:12px}.form-row{grid-template-columns:1fr}.container{margin:0;border-radius:var(--radius-lg)}.header,.form-container{padding:20px}.header h1{font-size:1.5em}}
