.top-nav[data-v-09829a3c]{position:sticky;top:0;z-index:50;background:#ffffffd9;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid transparent;transition:background .2s ease,box-shadow .2s ease,border-color .2s ease}.top-nav.scrolled[data-v-09829a3c]{background:#fffffff2;border-bottom-color:var(--brand-100);box-shadow:0 1px 3px #0000000a}.nav-inner[data-v-09829a3c]{display:flex;align-items:center;justify-content:space-between;max-width:1200px;margin:0 auto;padding:0 24px;height:64px}.nav-brand[data-v-09829a3c]{display:flex;align-items:center;gap:10px;text-decoration:none;z-index:52}.brand-mark-small[data-v-09829a3c]{width:28px;height:28px;border-radius:7px;background:linear-gradient(135deg,var(--brand-700),var(--brand-400));flex-shrink:0}.nav-brand-text[data-v-09829a3c]{font-size:18px;font-weight:700;color:var(--brand-900);letter-spacing:-.01em}.nav-links[data-v-09829a3c]{display:flex;gap:6px;position:absolute;left:50%;transform:translate(-50%)}.nav-links a[data-v-09829a3c]{font-size:14px;color:var(--gray-600);text-decoration:none;padding:8px 16px;border-radius:6px;transition:color .15s ease,background .15s ease;font-weight:500}.nav-links a[data-v-09829a3c]:hover{color:var(--brand-700);background:var(--brand-50)}.nav-links a.active[data-v-09829a3c]{color:var(--brand-700);background:var(--brand-100)}.nav-auth[data-v-09829a3c]{display:flex;align-items:center;gap:10px;z-index:52}.nav-username[data-v-09829a3c]{font-size:14px;font-weight:600;color:var(--brand-700);padding:8px 12px}.btn[data-v-09829a3c]{display:inline-flex;align-items:center;justify-content:center;padding:8px 18px;border-radius:8px;font-size:14px;font-weight:600;text-decoration:none;transition:background .15s ease,border-color .15s ease,transform .1s ease,box-shadow .15s ease;border:none;cursor:pointer}.btn[data-v-09829a3c]:active{transform:scale(.97)}.btn-ghost[data-v-09829a3c]{color:var(--brand-700);border:1.5px solid var(--brand-200);background:transparent}.btn-ghost[data-v-09829a3c]:hover{background:var(--brand-50);border-color:var(--brand-300)}.btn-primary[data-v-09829a3c]{background:var(--brand-600);color:#fff;border:1.5px solid var(--brand-600);box-shadow:0 2px 8px #16a34a40}.btn-primary[data-v-09829a3c]:hover{background:var(--brand-700);border-color:var(--brand-700);box-shadow:0 4px 12px #16a34a59}.mobile-menu-toggle[data-v-09829a3c]{display:none;z-index:52;background:transparent;border:none;color:var(--gray-700);cursor:pointer;padding:6px;border-radius:6px;transition:background .15s ease}.mobile-menu-toggle[data-v-09829a3c]:hover{background:var(--gray-100)}.page-enter-active[data-v-09829a3c],.page-leave-active[data-v-09829a3c]{transition:opacity .2s ease,transform .2s ease}.page-enter-from[data-v-09829a3c]{opacity:0;transform:translateY(6px)}.page-leave-to[data-v-09829a3c]{opacity:0;transform:translateY(-4px)}@media(max-width:720px){.nav-inner[data-v-09829a3c]{height:56px;padding:0 16px}.mobile-menu-toggle[data-v-09829a3c]{display:grid;place-items:center}.nav-links[data-v-09829a3c],.nav-auth[data-v-09829a3c]{position:fixed;inset:56px 0 auto 0;left:0;transform:none;flex-direction:column;align-items:stretch;background:#fffffffa;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);padding:16px 20px 20px;border-bottom:1px solid var(--brand-100);box-shadow:0 8px 24px #0000000f;opacity:0;pointer-events:none;transform:translateY(-8px);transition:opacity .2s ease,transform .2s ease}.nav-links.open[data-v-09829a3c],.nav-auth.open[data-v-09829a3c]{opacity:1;pointer-events:auto;transform:translateY(0)}.nav-auth[data-v-09829a3c]{top:auto;bottom:0;border-bottom:none;border-top:1px solid var(--brand-100);box-shadow:0 -4px 16px #0000000a;flex-direction:row;justify-content:center;padding:12px 20px}.nav-links a[data-v-09829a3c]{padding:12px 16px;font-size:16px;border-radius:8px}.top-nav.menu-open[data-v-09829a3c]{background:#fffffffa}}:root{--brand-50: #f0fdf4;--brand-100: #dcfce7;--brand-200: #bbf7d0;--brand-300: #86efac;--brand-400: #4ade80;--brand-500: #22c55e;--brand-600: #16a34a;--brand-700: #15803d;--brand-800: #166534;--brand-900: #14532d;--brand-950: #052e16;--gray-50: #f8fafc;--gray-100: #f1f5f9;--gray-200: #e2e8f0;--gray-300: #cbd5e1;--gray-400: #94a3b8;--gray-500: #64748b;--gray-600: #475569;--gray-700: #334155;--gray-800: #1e293b;--gray-900: #0f172a;--danger-50: #fef2f2;--danger-100: #fee2e2;--danger-500: #ef4444;--danger-600: #dc2626;--warning-500: #f59e0b;--info-500: #3b82f6;--font-sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif;--font-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--text-3xl: 1.875rem;--text-4xl: 2.25rem;--text-5xl: 3rem;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-1_5: .375rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--space-16: 4rem;--space-20: 5rem;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-2xl: 20px;--radius-full: 9999px;--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .05);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--shadow-xl: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--shadow-brand: 0 4px 14px rgba(22, 163, 74, .35);--shadow-brand-lg: 0 12px 32px rgba(22, 163, 74, .15);--transition-fast: .15s ease;--transition-base: .2s ease;--transition-slow: .3s ease;color:#172026;background:#eef1f3;font-family:var(--font-sans)}html,body,#app{width:100%;height:100%}*{box-sizing:border-box}body{margin:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}button,input,select,textarea{font:inherit}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleIn{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@keyframes slideInRight{0%{opacity:0;transform:translate(30px)}to{opacity:1;transform:translate(0)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes pulse-soft{0%,to{opacity:1}50%{opacity:.6}}@keyframes spin{to{transform:rotate(360deg)}}.animate-fade-in-up{animation:fadeInUp .6s ease-out both}.animate-fade-in{animation:fadeIn .4s ease-out both}.animate-scale-in{animation:scaleIn .4s ease-out both}.animate-slide-in-right{animation:slideInRight .5s ease-out both}.animate-float{animation:float 4s ease-in-out infinite}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.text-gradient{background:linear-gradient(135deg,var(--brand-700),var(--brand-400));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.glass{background:#ffffffbf;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.3)}.page-enter-active,.page-leave-active{transition:opacity .25s ease,transform .25s ease}.page-enter-from{opacity:0;transform:translateY(8px)}.page-leave-to{opacity:0;transform:translateY(-4px)}@keyframes glowPulse{0%,to{box-shadow:0 0 #0f766e66}50%{box-shadow:0 0 0 6px #0f766e00}}@keyframes gentleFloatSm{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}.app-shell{display:grid;grid-template-columns:360px minmax(0,1fr);height:100vh;overflow:hidden;background:linear-gradient(135deg,#eef1f3,#e2e8ec)}.sidebar{display:flex;flex-direction:column;gap:14px;height:100vh;overflow-y:auto;overscroll-behavior:contain;padding:16px;border-right:1px solid rgba(148,163,184,.18);background:#f8fafbc7;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);z-index:10;box-shadow:2px 0 28px #0000000a}.panel{padding:16px;border:1px solid rgba(148,163,184,.16);border-radius:var(--radius-xl);background:#ffffffd1;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);box-shadow:var(--shadow-sm);transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}.panel:hover{transform:translateY(-1px);box-shadow:var(--shadow-md);border-color:#0f766e1f}.brand{display:flex;align-items:center;gap:14px}.brand-mark{width:42px;height:42px;border-radius:10px;background:linear-gradient(135deg,#0f766e,#0d9488 45%,#eab308);box-shadow:0 4px 16px #0f766e4d;position:relative;flex-shrink:0}.brand-mark:after{content:"";position:absolute;top:-2px;right:-2px;bottom:-2px;left:-2px;border-radius:12px;background:linear-gradient(135deg,#0f766e40,#eab30840);filter:blur(6px);z-index:-1;opacity:.6}h1{font-size:20px;font-weight:700;line-height:1.2;letter-spacing:-.01em}h1,h2,p{margin:0}h2{margin-bottom:14px;padding-left:12px;border-left:3px solid var(--brand-500);font-size:13px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:#475569}.brand p,.status{margin-top:4px;font-size:12px;line-height:1.5;color:#64717c;transition:color .3s ease}.upload-zone{display:flex;align-items:center;gap:10px;min-height:50px;margin-top:16px;padding:12px 14px;border:2px dashed #bcc7d0;border-radius:10px;color:#475569;cursor:pointer;background:#f8fafb80;transition:border-color .3s ease,background .3s ease,transform .2s ease,box-shadow .3s ease;font-size:13px}.upload-zone:hover{border-color:var(--brand-500);background:#f0fdf4a6;transform:scale(1.01);box-shadow:0 0 0 5px #22c55e12}.upload-zone input{display:none}.controls{display:grid;gap:12px}.controls.disabled{opacity:.5;pointer-events:none;filter:grayscale(.3);transition:opacity .3s ease,filter .3s ease}.section-header{display:flex;justify-content:space-between;align-items:center}.help-btn{width:26px;height:26px;padding:0;border:1px solid #d8dee3;border-radius:50%;background:#f8fafb;color:#64717c}.help-btn:hover{background:#eef1f3}.help-box{padding:10px 12px;border:1px solid #eab308;border-radius:6px;background:#fffbeb;font-size:12px;line-height:1.5;color:#451a03}.help-box strong{color:#92400e}.params-group{display:grid;gap:8px;padding:8px;border:1px dashed #cbd5dc;border-radius:6px;transition:opacity .2s}.params-group.disabled{opacity:.6;pointer-events:none}.param-unit{font-size:12px;color:#8b99a4}.toggle-hint{font-size:11px;color:#8b99a4}.param-tips{display:flex;align-items:center;gap:6px;padding:8px 10px;border:1px solid #fcd34d;border-radius:5px;background:#fef3c7;font-size:12px;color:#92400e}.status-bar{display:flex;align-items:flex-start;gap:7px;padding:10px;border-radius:6px;background:#f8fafb}.status-bar .status{margin-top:0;word-break:break-word}.status-icon{flex-shrink:0;margin-top:1px;color:#64717c}.status-icon :deep(.check-circle){color:#16a34a}.status-icon :deep(.alert-triangle){color:#d97706}.model-info{display:block;font-size:11px;color:#8b99a4}.info{padding:12px}.info-item{display:flex;justify-content:space-between;padding:6px 0;font-size:13px}.info-label{color:#64717c}.info-value{color:#172026}.info-value.status-online{color:#16a34a}.format-tips{margin-top:8px;padding:8px 12px;border-radius:5px;background:#f1f5f9;font-size:12px;color:#64717c}.controls label{display:grid;gap:5px;font-size:13px;font-weight:500;color:#475569}.toggle-row{grid-template-columns:1fr auto;align-items:center}.toggle-row input{width:20px;height:20px;padding:0;accent-color:#0f766e;cursor:pointer;border-radius:4px}select,input[type=text],input[type=number],input[type=email],input[type=password],textarea{width:100%;border:1.5px solid #d1d9e0;border-radius:8px;background:#fff;color:#172026;font-size:13px;transition:border-color .2s ease,box-shadow .2s ease}input[type=text],input[type=number],input[type=email],input[type=password]{height:38px;padding:0 12px}textarea{min-height:92px;resize:vertical;padding:10px 12px;line-height:1.45}select:hover,input[type=text]:hover,input[type=number]:hover,input[type=email]:hover,input[type=password]:hover,textarea:hover{border-color:#94a3b8}select:focus,input[type=text]:focus,input[type=number]:focus,input[type=email]:focus,input[type=password]:focus,textarea:focus{outline:none;border-color:var(--brand-500);box-shadow:0 0 0 4px #22c55e1f}button{border:1.5px solid #d1d9e0;border-radius:8px;background:#fff;color:#334155;font-weight:500;font-size:13px;cursor:pointer;transition:background .2s ease,border-color .2s ease,transform .15s ease,box-shadow .2s ease}button:hover:not(:disabled){border-color:#94a3b8;background:#f8fafc}button:active:not(:disabled){transform:scale(.97)}button:disabled{cursor:not-allowed;opacity:.45}.segmented{display:grid;grid-template-columns:repeat(auto-fit,minmax(0,1fr));gap:4px;padding:4px;background:#f1f5f9;border-radius:10px}.segmented button{border:1.5px solid transparent;border-radius:8px;background:transparent;transition:all .25s cubic-bezier(.4,0,.2,1)}.segmented button:hover:not(.active){background:#ffffff8c}.segmented .active{border-color:#0f766e26;background:#fff;color:#0f766e;box-shadow:0 1px 4px #00000012;font-weight:600}.segmented button{display:inline-flex;align-items:center;justify-content:center;gap:4px;height:36px;font-size:12px;padding:0 4px}.tool,.primary{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:38px}.tool{border-radius:8px;font-size:13px}.tool.active{border-color:#0f766e40;background:linear-gradient(135deg,#e6f4f1,#d4f3e9);color:#0f5f59;box-shadow:0 1px 4px #0f766e14}.tool:hover:not(:disabled) svg{transform:scale(1.12);transition:transform .2s ease}.primary{border:none;background:linear-gradient(135deg,#0f766e,#0d9488);color:#fff;font-weight:600;box-shadow:0 4px 16px #0f766e4d;transition:all .25s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden}.primary:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.13),transparent);transition:left .5s ease}.primary:hover:not(:disabled):before{left:100%}.primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 28px #0f766e66}.primary:active:not(:disabled){transform:translateY(0);box-shadow:0 2px 8px #0f766e4d}.viewer-region{position:relative;min-width:0;height:100vh;overflow:hidden;background:radial-gradient(ellipse at 60% 40%,rgba(15,118,110,.03) 0%,transparent 50%),radial-gradient(ellipse at 30% 70%,rgba(234,179,8,.02) 0%,transparent 50%),linear-gradient(135deg,#e8ecf0,#dee4e8)}.empty-state{display:grid;place-items:center;align-content:center;min-height:100vh;padding:32px;text-align:center;color:#64717c}.empty-state>svg:first-child{animation:gentleFloatSm 4s ease-in-out infinite;color:var(--brand-600);opacity:.55}.empty-state h2{margin-top:20px;margin-bottom:10px;padding-left:0;border-left:none;font-size:24px;font-weight:700;text-transform:none;color:#1e293b;letter-spacing:-.01em}.empty-state p{max-width:460px;font-size:15px;line-height:1.6;color:#64717c}.viewer-wrap{position:relative;width:100%;height:100vh;overflow:hidden}.osd-viewer,.overlay{position:absolute;top:0;right:0;bottom:0;left:0}.overlay{display:block;width:100%;height:100%;z-index:4;pointer-events:none}.viewer-error{position:absolute;left:50%;top:50%;z-index:5;max-width:min(520px,calc(100% - 48px));transform:translate(-50%,-50%);padding:14px 18px;border:1px solid rgba(220,38,38,.18);border-radius:10px;background:#fffffff2;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);color:#991b1b;font-size:14px;line-height:1.5;text-align:center;box-shadow:0 8px 24px #0000000f}.hud{position:absolute;top:16px;right:16px;z-index:6;display:flex;gap:4px;padding:6px;border:1px solid rgba(148,163,184,.18);border-radius:var(--radius-lg);background:#ffffffd1;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);box-shadow:0 4px 16px #0000000d}.hud button{display:grid;place-items:center;width:36px;height:36px;border-radius:8px;border:1px solid transparent;background:transparent;color:#475569;transition:all .2s ease}.hud button:hover{background:#f1f5f9;border-color:#e2e8f0;color:#0f766e}.legend{display:grid;gap:8px;max-height:160px;overflow:auto;padding-top:4px;scrollbar-width:thin}.legend-item{display:grid;grid-template-columns:16px minmax(0,1fr);align-items:center;gap:10px;font-size:12px;font-weight:500;color:#475569}.swatch{width:12px;height:12px;border:1px solid rgba(23,32,38,.18);border-radius:3px}@media(max-width:880px){.app-shell{grid-template-columns:1fr}.sidebar{height:auto;max-height:42vh;border-right:0;border-bottom:1px solid rgba(148,163,184,.18)}.viewer-wrap{height:68vh}}
