*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.\!visible{visibility:visible!important}.visible{visibility:visible}.fixed{position:fixed}.inline{display:inline}.flex{display:flex}.table{display:table}.hidden{display:none}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.border{border-width:1px}.outline{outline-style:solid}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}:root{--primary-50: #EFF6FF;--primary-100: #DBEAFE;--primary-200: #BFDBFE;--primary-300: #93C5FD;--primary-400: #60A5FA;--primary-500: #3B82F6;--primary-600: #3B82F6;--primary-700: #3B82F6;--text-primary: #111827;--text-secondary: #374151;--text-tertiary: #6B7280;--text-quaternary: #9CA3AF;--text-link: #3B82F6;--text-white: #FFFFFF;--bg-page: #FFFFFF;--bg-card: #FFFFFF;--bg-hover: #F9FAFB;--bg-active: #EFF6FF;--border-light: #E5E7EB;--border-medium: #D1D5DB;--border-primary: #BFDBFE;--success: #10B981;--warning: #F59E0B;--error: #EF4444;--info: #3B82F6;--gradient-brand: linear-gradient(135deg, #667eea 0%, #764ba2 100%)}*{margin:0;padding:0;box-sizing:border-box}html{font-size:16px;-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,Segoe UI,PingFang SC,sans-serif;background-color:var(--bg-page);color:var(--text-secondary);line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,h4,h5,h6{color:var(--text-primary);font-weight:600}a{color:var(--text-link);text-decoration:none}a:hover{color:var(--primary-600)}.text-muted{color:var(--text-tertiary)}.text-placeholder{color:var(--text-quaternary)}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#BFDBFE;border-radius:2px}::-webkit-scrollbar-thumb:hover{background:#93C5FD}::-moz-selection{background:rgba(147,197,253,.3);color:#3b82f6}::selection{background:rgba(147,197,253,.3);color:#3b82f6}:root{--primary-lightest: #EFF6FF;--primary-lighter: #DBEAFE;--primary-light: #BFDBFE;--primary: #93C5FD;--primary-dark: #60A5FA;--primary-darker: #3B82F6}button{font-family:inherit;outline:none}input,textarea{font-family:inherit}a{color:inherit;text-decoration:none}@keyframes slide-up{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.animate-slide-up{animation:slide-up .3s ease}.app{width:100%;min-height:100vh;background:var(--bg-page);position:relative;opacity:0;transition:opacity .5s ease}.app.loaded{opacity:1}.header{background:#FFFFFF;padding:10px 16px;position:sticky;top:0;z-index:100;border-bottom:1px solid #F0F4F8}.header-top{display:flex;justify-content:space-between;align-items:center;max-width:1200px;margin:0 auto}.header-title{text-align:center;flex:1;margin:0 12px}.header-title h1{font-size:16px;font-weight:700;color:#1e293b;margin:0;letter-spacing:.5px}.header-title p{font-size:11px;color:#64748b;margin:2px 0 0;white-space:nowrap}.header-btn{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:var(--primary-50);border:1px solid var(--primary-100);border-radius:10px;color:var(--primary-600);cursor:pointer;transition:all .2s ease}.header-btn:hover{background:var(--primary-100);color:var(--primary-700)}.header-btn .icon-line{stroke:currentColor;stroke-width:1.5}.header-title h1{font-size:16px;font-weight:700;color:var(--text-primary);margin:0;letter-spacing:.5px}.header-title p{font-size:11px;color:var(--text-tertiary);margin:2px 0 0;white-space:nowrap}.bell-wrapper{position:relative}.unread-badge{position:absolute;top:2px;right:2px;width:8px;height:8px;background:var(--primary-400);border-radius:50%;border:2px solid var(--bg-card)}.main-content{padding-bottom:80px;min-height:100vh;background:var(--bg-page)}.bottom-nav{position:fixed;bottom:0;left:0;right:0;width:100%;max-width:100%;display:flex;justify-content:center;gap:60px;padding:8px 16px calc(8px + env(safe-area-inset-bottom,0px));background:var(--bg-card);border-top:1px solid var(--border-light);z-index:1000}.nav-item{display:flex;flex-direction:column;align-items:center;gap:4px;padding:6px 20px;background:none;border:none;color:#bbdefb;cursor:pointer;transition:all .2s ease;border-radius:12px}.nav-item .icon-line{stroke:currentColor;stroke-width:1.5;transition:all .2s ease}.nav-label{font-size:11px;font-weight:500;transition:all .2s ease}.nav-item.active{color:#1565c0;background:#E3F2FD}.nav-item.active .icon-line{stroke:#1565c0}@media (min-width: 769px){.app{max-width:none}.header{padding:12px 24px}}@media (max-width: 768px){.app{max-width:100%;height:100vh;max-height:100vh;overflow:hidden;display:flex;flex-direction:column}.header-top{max-width:100%}.header{padding:8px 12px;flex-shrink:0}.header-btn{width:36px;height:36px}.main-content{flex:1;padding-bottom:0;min-height:0;overflow:hidden;display:flex;flex-direction:column}.bottom-nav{gap:20px;padding:6px 12px calc(6px + env(safe-area-inset-bottom,0px));flex-shrink:0;position:relative}.nav-item{padding:4px 16px;gap:2px}.nav-label{font-size:10px}}@media (max-width: 480px){.app{max-width:480px;margin:0 auto;box-shadow:0 0 40px #bbdefb1a}.header{padding:12px 16px}}.login-page{min-height:100vh;background:linear-gradient(180deg,#FAFBFC 0%,#FFFFFF 100%);position:relative;overflow-x:hidden;opacity:0;transition:opacity .5s ease}.login-page.visible{opacity:1}.login-bg{position:fixed;top:0;left:0;right:0;bottom:0;pointer-events:none;overflow:hidden;z-index:0}.bg-orb{position:absolute;border-radius:50%;filter:blur(80px);opacity:.4}.orb-1{width:300px;height:300px;background:#BBDEFB;top:-100px;right:-100px}.orb-2{width:250px;height:250px;background:#E1F5FE;bottom:10%;left:-80px}.login-wrapper{position:relative;z-index:1;max-width:1200px;margin:0 auto;padding:24px 20px;display:flex;flex-direction:column;gap:32px;min-height:100vh}.login-form-section{background:#FFFFFF;border-radius:16px;border:1px solid #E3F2FD;padding:32px 24px;box-shadow:0 4px 24px #bbdefb26;flex:1}.login-brand{text-align:center;margin-bottom:32px}.brand-logo{display:flex;justify-content:center;margin-bottom:16px}.brand-title{font-size:24px;font-weight:700;color:#1e293b;margin-bottom:8px}.brand-subtitle{font-size:13px;color:#94a3b8}.login-form{display:flex;flex-direction:column;gap:16px;margin-bottom:24px}.login-error{padding:12px 16px;background:#FFEBEE;color:#c62828;font-size:13px;border-radius:8px;text-align:center;animation:shake .5s ease}.login-success{padding:12px 16px;background:#E8F5E9;color:#2e7d32;font-size:13px;border-radius:8px;text-align:center;animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-5px)}75%{transform:translate(5px)}}.input-group{width:100%}.input-wrapper{display:flex;align-items:center;gap:12px;padding:0 14px;height:50px;background:#FAFBFC;border:1px solid #E3F2FD;border-radius:12px;transition:all .2s ease}.input-wrapper:focus-within{background:#FFFFFF;border-color:#bbdefb;box-shadow:0 0 0 3px #bbdefb4d}.input-prefix{display:flex;align-items:center;color:#bbdefb;flex-shrink:0}.input-icon{stroke:currentColor;stroke-width:1.5;fill:none;stroke-linecap:round;stroke-linejoin:round}.input-wrapper input{flex:1;border:none;background:transparent;font-size:15px;color:#1e293b;outline:none}.input-wrapper input::-moz-placeholder{color:#bbdefb}.input-wrapper input::placeholder{color:#bbdefb}.input-suffix{display:flex;align-items:center;padding:4px;background:none;border:none;color:#bbdefb;cursor:pointer;transition:color .2s ease}.input-suffix:hover{color:#90caf9}.login-options{display:flex;justify-content:space-between;align-items:center;padding:0 4px}.remember-me{display:flex;align-items:center;gap:8px;font-size:13px;color:#64748b;cursor:pointer}.remember-me input[type=checkbox]{display:none}.checkmark{width:18px;height:18px;border:2px solid #BBDEFB;border-radius:4px;position:relative;transition:all .2s ease}.remember-me input[type=checkbox]:checked+.checkmark{background:#BBDEFB;border-color:#bbdefb}.remember-me input[type=checkbox]:checked+.checkmark:after{content:"";position:absolute;top:2px;left:5px;width:4px;height:8px;border:solid #1565C0;border-width:0 2px 2px 0;transform:rotate(45deg)}.forgot-link{font-size:13px;color:#42a5f5;text-decoration:none;font-weight:500}.forgot-link:hover{color:#1565c0}.login-btn{height:50px;display:flex;align-items:center;justify-content:center;gap:8px;background:#1565C0;color:#fff;border:none;border-radius:12px;font-size:16px;font-weight:600;cursor:pointer;transition:all .3s ease;margin-top:8px}.login-btn:hover:not(:disabled){background:#0D47A1;transform:translateY(-1px);box-shadow:0 4px 12px #1565c04d}.login-btn.loading{cursor:not-allowed;opacity:.9}.auth-switch{text-align:center;padding:16px 0 0;font-size:14px;color:#64748b}.switch-btn{margin-left:4px;background:none;border:none;color:#1565c0;font-weight:600;cursor:pointer;font-size:14px;transition:color .2s ease}.switch-btn:hover:not(:disabled){color:#0d47a1;text-decoration:underline}.switch-btn:disabled{opacity:.6;cursor:not-allowed}.copyright{text-align:center;margin-top:24px;font-size:12px;color:#bbdefb}.login-intro-section{flex:1}.intro-card{background:linear-gradient(135deg,#E3F2FD 0%,#F5FAFF 100%);border-radius:16px;padding:28px 24px;border:1px solid #BBDEFB}.intro-title{font-size:20px;font-weight:700;color:#1565c0;margin-bottom:8px;text-align:center}.intro-desc{font-size:14px;color:#64748b;text-align:center;margin-bottom:24px;line-height:1.5}.intro-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-bottom:24px}.intro-stat-item{background:#FFFFFF;border-radius:12px;padding:16px 12px;text-align:center;border:1px solid #E3F2FD}.intro-stat-icon{color:#42a5f5;margin-bottom:8px;display:flex;justify-content:center}.intro-stat-value{font-size:20px;font-weight:700;color:#1565c0;margin-bottom:4px}.intro-stat-label{font-size:12px;color:#94a3b8}.intro-steps{background:#FFFFFF;border-radius:12px;padding:20px;border:1px solid #E3F2FD}.intro-steps h3{font-size:14px;font-weight:600;color:#1e293b;margin-bottom:16px;text-align:center}.steps-list{display:flex;flex-direction:column;gap:12px}.step-item{display:flex;align-items:flex-start;gap:12px}.step-icon{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:#E3F2FD;border-radius:10px;color:#1565c0;flex-shrink:0}.step-content h4{font-size:14px;font-weight:600;color:#1e293b;margin-bottom:2px}.step-content p{font-size:12px;color:#94a3b8;line-height:1.4;margin:0}@media (min-width: 900px){.login-wrapper{flex-direction:row;align-items:center;justify-content:center;gap:48px;padding:48px}.login-form-section{flex:0 0 420px;padding:40px 32px}.login-intro-section{flex:1;max-width:520px}.intro-card{padding:32px}.intro-stats{grid-template-columns:repeat(4,1fr)}}@media (max-width: 380px){.login-wrapper{padding:16px;gap:24px}.login-form-section{padding:24px 20px}.brand-title{font-size:22px}.login-btn{font-size:15px}.intro-card{padding:20px 16px}.intro-title{font-size:18px}}@media (max-height: 600px) and (orientation: landscape){.login-wrapper{padding:16px}.login-form-section{padding:24px 20px}.login-brand{margin-bottom:20px}.brand-logo svg{width:40px;height:40px}}.home-page{min-height:100vh;display:flex;flex-direction:column;background:#FFFFFF}.home-main{flex:1;display:flex;flex-direction:column;padding:8px 12px;gap:8px;max-width:800px;margin:0 auto;width:100%;min-height:0;overflow:visible;align-items:center}.home-main>*{width:100%}.upload-section{flex:0 0 auto;min-height:200px;background:var(--bg-card);border-radius:16px;border:none;display:flex;flex-direction:column;overflow:visible;transition:all .3s ease;opacity:1;transform:translateY(0);max-height:500px}.upload-section.hidden{opacity:0;transform:translateY(-20px);max-height:0;min-height:0;margin:0;padding:0;overflow:hidden;pointer-events:none}.floating-upload-btn{position:fixed;top:80px;left:16px;right:auto;display:inline-flex;align-items:center;gap:6px;padding:8px 14px;background:#3B82F6;color:#fff;border:none;border-radius:20px;font-size:13px;font-weight:500;cursor:pointer;box-shadow:0 4px 12px #3b82f64d;transition:all .2s ease;z-index:100;width:auto;white-space:nowrap}.floating-upload-btn:hover{background:#2563EB;transform:translateY(-2px);box-shadow:0 6px 16px #3b82f666}.floating-upload-btn svg{width:16px;height:16px;flex-shrink:0}.section-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:var(--bg-card);color:var(--text-primary);flex-shrink:0}.section-header h2{font-size:15px;font-weight:600;margin:0;color:var(--text-primary)}.section-badge{font-size:11px;padding:4px 10px;background:var(--primary-50);border-radius:12px;color:var(--primary-500);font-weight:500}.upload-area{padding:10px;display:flex;flex-direction:column;flex:1;min-height:80px}.upload-box{border:none;border-radius:12px;display:flex;align-items:center;justify-content:center;transition:all .3s;cursor:pointer;background:var(--bg-hover);padding:20px;flex:1;min-height:80px}.upload-box:hover{background:var(--primary-50)}.upload-box.drag-over{background:#E3F2FD}.upload-box.uploading{pointer-events:none}.file-input{display:none}.upload-label{display:flex;flex-direction:column;align-items:center;gap:4px;cursor:pointer;text-align:center}.upload-icon{color:var(--primary-400);width:28px;height:28px;margin-bottom:8px}.upload-icon svg{width:28px;height:28px}.upload-text{font-size:15px;font-weight:500;color:var(--text-primary);margin-bottom:4px}.upload-formats{font-size:12px;color:var(--text-tertiary)}.upload-progress{display:flex;flex-direction:column;align-items:center;gap:8px}.progress-ring{width:48px;height:48px;position:relative}.progress-ring svg{width:100%;height:100%;transform:rotate(-90deg)}.progress-bg{fill:none;stroke:#e3f2fd;stroke-width:5}.progress-fill{fill:none;stroke:#bbdefb;stroke-width:5;stroke-linecap:round;transition:stroke-dashoffset .3s}.progress-value{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:12px;font-weight:600;color:#1565c0}.progress-text{font-size:12px;color:#94a3b8}.upload-message{margin-top:8px;padding:6px 10px;border-radius:6px;font-size:11px;text-align:center}.upload-message.success{background:#DCFCE7;color:#166534}.upload-message.error{background:#FEE2E2;color:#991b1b}.chat-section{flex:1;background:#FFFFFF;border-radius:10px;border:none;overflow:hidden;display:flex;flex-direction:column;min-height:300px}.chat-section .ai-chat-container{margin:0;height:100%;border:none;border-radius:0;box-shadow:none;min-height:0}.home-footer{text-align:center;padding:8px;color:#bbdefb;font-size:11px;background:#FFFFFF;border-top:1px solid #F0F4F8;flex-shrink:0}@media (max-width: 640px){.home-page{min-height:100vh;overflow:auto}.home-main{flex:1;padding:4px 8px 70px;gap:6px;min-height:0;overflow:visible}.upload-section{border-radius:6px;flex:0 0 auto;min-height:100px;max-height:130px}.section-header{padding:4px 8px}.section-header h2{font-size:12px}.upload-area{padding:4px}.upload-box{padding:6px;border-radius:4px}.upload-icon{width:16px;height:16px}.upload-icon svg{width:16px;height:16px}.upload-text{font-size:11px}.upload-formats{font-size:9px}.chat-section{border-radius:6px;flex:1;min-height:0;margin-bottom:4px}.chat-section .ai-chat-container{display:flex;flex-direction:column}.home-footer{padding:6px;font-size:10px;display:none}}@media (max-width: 380px){.upload-box{padding:8px}}.mode-selector-container{padding:12px 16px;background:var(--bg-card);position:relative;z-index:10}.mode-selector-header{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:var(--bg-hover);border:1px solid var(--border-light);border-radius:10px;cursor:pointer;transition:all .2s ease}.mode-selector-header:hover{border-color:var(--primary-300);background:var(--primary-50)}.mode-selector-current{display:flex;align-items:center;gap:12px}.mode-label{font-size:12px;color:#64748b;font-weight:500}.mode-value{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:#1565c0}.mode-icon-small{display:flex;align-items:center;justify-content:center}.mode-icon-small svg{width:14px;height:14px}.mode-status-dot{width:6px;height:6px;border-radius:50%;margin-left:4px}.mode-status-dot.online{background:#3B82F6}.mode-status-dot.offline{background:#EF4444}.mode-selector-arrow{font-size:10px;color:var(--text-quaternary);transition:transform .2s ease}.mode-selector-arrow.open{transform:rotate(180deg)}.mode-selector-dropdown{margin-top:6px;background:var(--bg-card);border:1px solid var(--border-light);border-radius:8px;overflow:hidden;box-shadow:0 4px 12px #00000026;position:absolute;left:10px;right:10px;z-index:100}.mode-option{padding:10px 12px;cursor:pointer;transition:all .2s ease;border-bottom:1px solid var(--border-light)}.mode-option:last-child{border-bottom:none}.mode-option:hover:not(.disabled){background:var(--primary-50)}.mode-option.active{background:var(--primary-100)}.mode-option.disabled{opacity:.5;cursor:not-allowed;background:var(--bg-page)}.mode-option-main{display:flex;align-items:center;gap:10px}.mode-option-icon{display:flex;align-items:center;justify-content:center;color:var(--text-tertiary)}.mode-option-icon svg{width:18px;height:18px}.mode-option.active .mode-option-icon{color:var(--primary-600)}.mode-option-info{flex:1;display:flex;flex-direction:column;gap:2px}.mode-option-title{font-size:13px;font-weight:600;color:var(--text-primary)}.mode-option.active .mode-option-title{color:var(--primary-700)}.mode-option-desc{font-size:11px;color:var(--text-tertiary)}.mode-option-status{width:8px;height:8px;border-radius:50%;flex-shrink:0}.mode-option-status.online{background:#3B82F6}.mode-option-status.offline{background:#9CA3AF}.mode-value{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:500;color:#1e293b;white-space:nowrap}.mode-value .mode-status-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.mode-fallback-notice{margin-top:4px;padding:3px 8px;font-size:10px;color:var(--warning);background:#FEF3C7;border-radius:4px;border:1px solid var(--warning);text-align:center}@media (min-width: 641px){.home-main{padding:16px 20px;gap:16px}.upload-box{padding:24px}.mode-switch-container{padding:16px}.mode-switch-label{font-size:13px}.mode-btn{padding:14px 12px}.mode-text{font-size:13px}.mode-desc{font-size:11px}}@media (max-width: 640px){.mode-selector-container{padding:4px 6px}.mode-selector-header{padding:6px 10px}.mode-label{font-size:11px}.mode-value{font-size:12px;gap:4px}.mode-icon-small svg{width:12px;height:12px}.mode-option{padding:8px 10px}.mode-option-icon svg{width:16px;height:16px}.mode-option-title{font-size:12px}.mode-option-desc{font-size:10px}.mode-fallback-notice{font-size:10px;padding:2px 6px}.upload-section{flex:0 0 auto;min-height:180px}.upload-box{min-height:50px;padding:12px}.chat-section{flex:1;min-height:250px}.floating-upload-btn{top:70px;left:12px;right:auto;padding:6px 12px;font-size:12px}.floating-upload-btn svg{width:14px;height:14px}}.ai-chat-container{background:var(--bg-card);border-radius:0;border:none;overflow:hidden;display:flex;flex-direction:column;height:100%;min-height:0;position:relative}.ai-chat-header{display:none}.ai-chat-title{display:flex;align-items:center;gap:8px;font-size:15px;font-weight:600;color:var(--text-primary)}.ai-chat-status{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text-tertiary)}.status-dot{width:8px;height:8px;border-radius:50%;background:#3B82F6}.status-dot.offline{background:#9CA3AF}.ai-chat-messages{flex:1;overflow-y:auto;padding:10px 10px 200px;background:var(--bg-page);display:flex;flex-direction:column;gap:8px;min-height:0}.chat-message{display:flex;gap:8px;max-width:90%;animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.chat-message.user{align-self:flex-end;flex-direction:row-reverse}.chat-message.assistant{align-self:flex-start;margin-left:0}.message-avatar{width:28px;height:28px;border-radius:8px;background:#1565C0;display:flex;align-items:center;justify-content:center;font-size:14px;flex-shrink:0;color:#fff}.chat-message.assistant .message-content{margin-left:0}.message-content{background:var(--bg-card);padding:12px 16px;border-radius:18px;font-size:14px;line-height:1.6;color:var(--text-secondary);word-break:break-word;max-width:100%}.chat-message.user .message-content{background:var(--primary-500);color:var(--text-white);border-radius:18px 18px 4px}.chat-message.assistant .message-content{border-radius:18px 18px 18px 4px;background:var(--bg-hover)}.message-content strong{font-weight:600}.markdown-table{width:100%;border-collapse:collapse;margin:12px 0;font-size:13px;border-radius:8px;overflow:hidden;box-shadow:0 1px 3px #0000001a}.markdown-table thead{background:#F1F5F9}.markdown-table th{padding:10px 12px;text-align:left;font-weight:600;color:#334155;border-bottom:2px solid #E2E8F0;white-space:nowrap}.markdown-table td{padding:10px 12px;border-bottom:1px solid #E2E8F0;color:#475569;vertical-align:top}.markdown-table tbody tr:hover{background:#F8FAFC}.markdown-table tbody tr:last-child td{border-bottom:none}@media (max-width: 640px){.markdown-table{font-size:12px}.markdown-table th,.markdown-table td{padding:8px}}.message-time{font-size:10px;color:var(--text-quaternary);margin-top:4px;padding:0 4px}.scroll-to-bottom-btn{position:fixed;right:20px;bottom:160px;width:40px;height:40px;border-radius:50%;background:#3B82F6;color:#fff;border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 4px 12px #3b82f666;transition:all .2s ease;animation:slideInUp .3s ease;z-index:1000}.scroll-to-bottom-btn:hover{background:#2563EB;transform:translateY(-2px);box-shadow:0 6px 16px #3b82f680}.scroll-to-bottom-btn:active{transform:translateY(0)}@keyframes slideInUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.ai-chat-input-area{padding:12px 16px 20px;background:transparent;flex-shrink:0;position:fixed;bottom:0;left:0;right:0;z-index:100}.chat-input-card{background:#F8FAFC;border-radius:16px;border:1px solid #E2E8F0;padding:12px 16px;display:flex;flex-direction:column;gap:12px;transition:all .2s ease}.chat-input-card:focus-within{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.chat-input{width:100%;border:none;background:transparent;padding:4px 0;font-size:15px;color:var(--text-primary);outline:none;resize:none;min-height:24px;max-height:80px;font-family:inherit;line-height:1.5}.chat-input::-moz-placeholder{color:#94a3b8}.chat-input::placeholder{color:#94a3b8}.chat-input-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px}.input-action-btn{width:36px;height:36px;border-radius:50%;border:none;background:transparent;color:#3b82f6;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease;flex-shrink:0}.input-action-btn:hover:not(:disabled){background:rgba(59,130,246,.1)}.input-action-btn:disabled{color:#cbd5e1;cursor:not-allowed}.input-action-btn.send-btn{background:#3B82F6;color:#fff}.input-action-btn.send-btn:hover:not(:disabled){background:#2563EB;transform:scale(1.05)}.input-action-btn.send-btn:disabled{background:#E2E8F0;color:#94a3b8}.input-action-btn.voice-btn.recording{background:#EF4444;color:#fff;animation:pulse-recording 1.5s infinite}.input-action-btn.voice-btn.recording:hover{background:#DC2626}.recording-indicator{font-size:16px;animation:blink 1s infinite}@keyframes pulse-recording{0%,to{box-shadow:0 0 #ef444466}50%{box-shadow:0 0 0 8px #ef444400}}@keyframes blink{0%,to{opacity:1}50%{opacity:.5}}.input-action-btn.voice-btn,.chat-input-wrapper,.chat-toolbar{display:none}.welcome-message{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;height:100%;margin-top:-24px;padding:40px 24px;text-align:left;color:var(--text-tertiary)}.welcome-title{font-size:32px;font-weight:700;margin-bottom:12px;background:linear-gradient(135deg,#94A3B8 0%,#3B82F6 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;letter-spacing:-.5px}.welcome-desc{font-size:15px;line-height:1.6;margin-bottom:32px;color:var(--text-tertiary)}.quick-actions{display:flex;flex-direction:column;gap:12px;align-items:flex-start;width:100%}.quick-action-btn{padding:12px 20px;border:1px solid var(--border-light);background:var(--bg-card);color:var(--text-secondary);font-size:14px;border-radius:12px;cursor:pointer;transition:all .2s ease;text-align:left;width:auto;max-width:100%;box-shadow:0 1px 2px #0000000d}.quick-action-btn:hover{background:var(--bg-hover);border-color:var(--border-medium);transform:translateY(-1px);box-shadow:0 4px 12px #00000014}.typing-indicator{display:flex;gap:4px;padding:8px 4px}.typing-indicator span{width:8px;height:8px;background:#90A4AE;border-radius:50%;animation:typingBounce 1.4s infinite ease-in-out both}.typing-indicator span:nth-child(1){animation-delay:-.32s}.typing-indicator span:nth-child(2){animation-delay:-.16s}@keyframes typingBounce{0%,80%,to{transform:scale(0)}40%{transform:scale(1)}}.message-thinking-wrapper{margin:8px 0 12px;animation:slideIn .3s ease;max-width:100%}.message-body{flex:1;min-width:0}@keyframes slideIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.ai-chat-messages::-webkit-scrollbar{width:6px}.ai-chat-messages::-webkit-scrollbar-track{background:transparent}.ai-chat-messages::-webkit-scrollbar-thumb{background:#CFD8DC;border-radius:3px}.ai-chat-messages::-webkit-scrollbar-thumb:hover{background:#B0BEC5}@media (max-width: 640px){.chat-message{max-width:95%}.message-content{font-size:14px;padding:10px 14px}.ai-chat-messages{padding:10px 10px 160px}.ai-chat-input-area{padding:8px 12px 12px!important;background:transparent!important;position:fixed!important;bottom:90px!important;left:0!important;right:0!important;z-index:1001!important}.chat-input-card{padding:10px 12px;border-radius:12px}.chat-input{font-size:14px;min-height:20px}.input-action-btn{width:34px;height:34px}.scroll-to-bottom-btn{right:12px;bottom:208px;width:36px;height:36px;z-index:1002}}@media (min-width: 641px){.ai-chat-messages{padding:16px 16px 200px}.ai-chat-input-area{padding:12px 24px 16px;width:100%;max-width:800px;left:50%;right:auto;transform:translate(-50%);bottom:76px}.scroll-to-bottom-btn{right:calc(50% - 380px);bottom:160px;width:40px;height:40px;z-index:1000}}@media (min-width: 841px){.scroll-to-bottom-btn{right:calc(50% - 380px)}}@media (max-width: 840px) and (min-width: 641px){.scroll-to-bottom-btn{right:20px}}@media (min-width: 1024px){.ai-chat-header{padding:10px 16px}.welcome-message{padding:40px 20px}.welcome-icon{width:64px;height:64px;font-size:28px;border-radius:20px;margin-bottom:16px}.welcome-title{font-size:18px;margin-bottom:8px}.welcome-desc{font-size:14px;margin-bottom:24px}}.thinking-process-container{background:rgba(248,250,252,.6);border:1px solid rgba(226,232,240,.6);border-radius:12px;margin:8px 0;overflow:hidden;animation:slideIn .3s ease;transition:all .3s ease;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.thinking-process-container.thinking{border-color:#3b82f64d;box-shadow:0 0 0 2px #3b82f61a}.thinking-process-container.completed{border-color:#3b82f633;background:rgba(248,250,252,.5)}.thinking-process-container.collapsed{opacity:.7}.thinking-process-container.collapsed:hover{opacity:.9}.thinking-header{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;cursor:pointer;transition:background .2s ease;-webkit-user-select:none;-moz-user-select:none;user-select:none}.thinking-header:hover{background:rgba(255,255,255,.3)}.thinking-title{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:#3b82f6}.thinking-process-container.completed .thinking-title{color:#3b82f6}.thinking-title svg{stroke:#3b82f6}.thinking-process-container.completed .thinking-title svg{stroke:#3b82f6}.thinking-animation{display:flex;gap:3px;align-items:center}.thinking-animation .dot{width:5px;height:5px;background:#3B82F6;border-radius:50%;animation:thinkingBounce 1.4s infinite ease-in-out both}.thinking-animation .dot:nth-child(1){animation-delay:-.32s}.thinking-animation .dot:nth-child(2){animation-delay:-.16s}@keyframes thinkingBounce{0%,80%,to{transform:scale(0)}40%{transform:scale(1)}}.thinking-toggle{display:flex;align-items:center;gap:6px;font-size:11px;color:#64748b}.step-count{padding:2px 6px;background:rgba(255,255,255,.6);border-radius:10px;font-weight:500}.thinking-content{padding:0 14px 14px;animation:expandContent .3s ease}@keyframes expandContent{0%{opacity:0;max-height:0}to{opacity:1;max-height:500px}}.thinking-steps{display:flex;flex-direction:column;gap:8px}.thinking-step{display:flex;align-items:flex-start;gap:10px;padding:8px 10px;background:rgba(255,255,255,.4);border-radius:8px;animation:stepAppear .3s ease forwards;opacity:0;transform:translate(-10px)}@keyframes stepAppear{to{opacity:1;transform:translate(0)}}.thinking-step.loading{background:rgba(59,130,246,.08)}.step-number{width:20px;height:20px;display:flex;align-items:center;justify-content:center;background:#3B82F6;color:#fff;font-size:11px;font-weight:600;border-radius:50%;flex-shrink:0}.thinking-process-container.completed .step-number{background:#3B82F6}.step-text{font-size:12px;color:#475569;line-height:1.5;flex:1}.thinking-collapsed-hint{padding:10px 14px;font-size:11px;color:#3b82f6;text-align:center;background:rgba(59,130,246,.08);border-top:1px dashed rgba(59,130,246,.2)}@media (prefers-color-scheme: dark){.thinking-process-container{background:rgba(30,41,59,.6);border-color:#3b82f64d}.thinking-process-container.completed{background:rgba(30,41,59,.5);border-color:#3b82f640}.thinking-title,.thinking-process-container.completed .thinking-title{color:#60a5fa}.thinking-title svg{stroke:#60a5fa}.thinking-process-container.completed .thinking-title svg{stroke:#60a5fa}.step-text{color:#cbd5e1}.thinking-step{background:rgba(15,23,42,.4)}.thinking-collapsed-hint{color:#60a5fa;background:rgba(59,130,246,.15);border-color:#3b82f64d}.thinking-animation .dot{background:#60a5fa}}@media (max-width: 640px){.thinking-process-container{margin:6px 0}.thinking-header{padding:8px 12px}.thinking-content{padding:0 12px 12px}.step-text{font-size:11px}}.analysis-steps-container{background:linear-gradient(135deg,#f8fafc 0%,#f1f5f9 100%);border:1px solid #e2e8f0;border-radius:12px;padding:16px;margin:12px 0;animation:slideIn .3s ease-out;transition:opacity .5s ease,transform .5s ease}.analysis-steps-container.completing{opacity:0;transform:translateY(-10px)}@keyframes slideIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.analysis-steps-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid #e2e8f0}.analysis-steps-title{display:flex;align-items:center;gap:8px;font-weight:600;color:#1e293b;font-size:14px}.step-loading{display:flex;gap:3px;align-items:center}.spinner-dot{width:6px;height:6px;background:#3b82f6;border-radius:50%;animation:bounce 1.4s infinite ease-in-out both}.spinner-dot:nth-child(1){animation-delay:-.32s}.spinner-dot:nth-child(2){animation-delay:-.16s}@keyframes bounce{0%,80%,to{transform:scale(0)}40%{transform:scale(1)}}.analysis-steps-progress{display:flex;align-items:center;gap:8px}.progress-text{font-size:12px;font-weight:600;color:#3b82f6;min-width:32px;text-align:right}.progress-bar{width:80px;height:4px;background:#e2e8f0;border-radius:2px;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,#3b82f6,#60a5fa);border-radius:2px;transition:width .3s ease}.analysis-steps-list{display:flex;flex-direction:column;gap:8px}.analysis-step{display:flex;align-items:flex-start;gap:12px;padding:10px 12px;border-radius:8px;transition:all .3s ease;position:relative}.analysis-step:hover{background:rgba(255,255,255,.5)}.analysis-step.active{background:rgba(59,130,246,.08)}.analysis-step.past{opacity:.7}.step-indicator{display:flex;flex-direction:column;align-items:center;position:relative}.step-icon{width:20px;height:20px;flex-shrink:0}.step-icon.pending{color:#cbd5e1}.step-icon.processing{color:#3b82f6;animation:pulse 2s infinite}.step-icon.completed{color:#10b981}.step-icon.error{color:#ef4444}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.step-connector{width:2px;height:24px;background:#e2e8f0;margin:4px 0;transition:background .3s ease}.step-connector.completed{background:#10b981}.step-content{flex:1;min-width:0}.step-title{font-size:13px;font-weight:600;color:#334155;margin-bottom:2px}.analysis-step.processing .step-title{color:#3b82f6}.step-description{font-size:11px;color:#64748b;line-height:1.4}.step-duration{font-size:10px;color:#10b981;margin-top:2px;font-weight:500}.step-pulse{position:absolute;right:12px;top:50%;transform:translateY(-50%);width:8px;height:8px;background:#3b82f6;border-radius:50%;animation:pulse-ring 1.5s ease-out infinite}@keyframes pulse-ring{0%{transform:translateY(-50%) scale(1);opacity:1}to{transform:translateY(-50%) scale(3);opacity:0}}.analysis-complete{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:12px;padding-top:12px;border-top:1px solid #e2e8f0;color:#10b981;font-weight:600;font-size:13px;animation:completeSlide .3s ease}@keyframes completeSlide{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.complete-icon{width:18px;height:18px}.analysis-steps-container.compact{padding:12px}.analysis-steps-container.compact .step-description{display:none}@media (prefers-color-scheme: dark){.analysis-steps-container{background:linear-gradient(135deg,#1e293b 0%,#0f172a 100%);border-color:#334155}.analysis-steps-header{border-color:#334155}.analysis-steps-title{color:#f1f5f9}.step-title{color:#e2e8f0}.step-description{color:#94a3b8}.progress-bar{background:#334155}}.result-page{min-height:100%;background:#F8FAFC;padding-bottom:140px}.result-page.loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;gap:16px;color:#93c5fd}.loading-spinner-large{width:48px;height:48px;border:3px solid #DBEAFE;border-top-color:#93c5fd;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.result-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:#FFFFFF;border-bottom:1px solid #EFF6FF;position:sticky;top:0;z-index:100}.back-btn{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:#EFF6FF;border:none;border-radius:10px;color:#60a5fa;cursor:pointer;transition:all .2s ease}.back-btn:hover{background:#DBEAFE;color:#3b82f6}.result-title{font-size:18px;font-weight:600;color:#1e293b}.header-placeholder{width:40px}.warning-section{padding:12px 16px 0}.warning-card{display:flex;align-items:center;gap:8px;padding:12px 16px;background:#FEF3C7;border-radius:10px;color:#d97706;font-size:13px}.warning-card .icon-line{stroke:currentColor;stroke-width:1.5;flex-shrink:0}.doc-info{padding:16px}.doc-card{display:flex;align-items:center;gap:12px;padding:16px;background:#FFFFFF;border-radius:12px;box-shadow:0 1px 3px #93c5fd1a}.doc-icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:#EFF6FF;border-radius:10px;color:#93c5fd}.doc-details{display:flex;flex-direction:column;gap:4px}.doc-name{font-size:16px;font-weight:600;color:#1e293b}.doc-meta{font-size:13px;color:#93c5fd}.table-section{padding:0 16px 16px}.table-container{background:#FFFFFF;border-radius:12px;overflow:hidden;box-shadow:0 1px 3px #93c5fd1a;overflow-x:auto}.purchase-table{width:100%;border-collapse:collapse;font-size:13px}.purchase-table th,.purchase-table td{padding:12px 8px;text-align:left;border-bottom:1px solid #EFF6FF;white-space:nowrap}.purchase-table th{background:#F8FAFC;font-weight:600;color:#3b82f6;font-size:12px}.purchase-table tbody tr:hover{background:#F8FAFC}.purchase-table tbody tr:last-child td{border-bottom:none}.col-seq{width:40px;text-align:center}.col-name{min-width:120px}.col-spec{min-width:140px}.col-unit{width:50px;text-align:center}.col-qty{width:70px;text-align:right}.col-price{width:90px;text-align:right}.col-total{width:100px;text-align:right;font-weight:600;color:#3b82f6}.col-remark{min-width:80px}.editable-cell{display:flex;align-items:center;justify-content:space-between;gap:4px;cursor:pointer;padding:4px;border-radius:4px;transition:all .2s ease;min-height:24px}.editable-cell:hover{background:#EFF6FF}.editable-cell .icon-line{stroke:#bfdbfe;stroke-width:1.5;width:14px;height:14px;opacity:0;transition:opacity .2s ease}.editable-cell:hover .icon-line{opacity:1}.cell-input{width:100%;padding:4px 8px;border:2px solid #93C5FD;border-radius:6px;font-size:13px;color:#1e293b;outline:none;background:#FFFFFF}.cell-input:focus{border-color:#3b82f6}.total-row{background:#F0F9FF!important;font-weight:600}.total-row .total-label{text-align:right;padding-right:16px;color:#3b82f6}.total-amount{color:#3b82f6;font-size:15px}.edit-hint{text-align:center;font-size:12px;color:#93c5fd;margin-top:12px}.ocr-raw-section{padding:0 16px 16px}.ocr-raw-details{background:#FFFFFF;border-radius:10px;overflow:hidden}.ocr-raw-details summary{padding:12px 16px;cursor:pointer;font-size:13px;color:#60a5fa;background:#F8FAFC;-webkit-user-select:none;-moz-user-select:none;user-select:none}.ocr-raw-content{padding:12px 16px;max-height:200px;overflow-y:auto}.ocr-raw-line{display:flex;gap:12px;padding:6px 0;border-bottom:1px dashed #EFF6FF;font-size:12px}.ocr-raw-line:last-child{border-bottom:none}.line-number{color:#93c5fd;min-width:24px;text-align:right}.line-text{color:#64748b;flex:1;word-break:break-all}.action-section{position:fixed;bottom:0;left:50%;transform:translate(-50%);width:100%;max-width:480px;padding:16px;padding-bottom:calc(16px + env(safe-area-inset-bottom,0px));background:#FFFFFF;border-top:1px solid #EFF6FF;display:flex;flex-direction:column;gap:12px}.summary-info{display:flex;justify-content:center;align-items:center;gap:16px;font-size:14px;color:#64748b}.summary-item strong{color:#3b82f6;font-size:16px}.total-price{color:#3b82f6;font-size:20px!important}.summary-divider{color:#dbeafe}.confirm-btn{width:100%;height:52px;display:flex;align-items:center;justify-content:center;gap:8px;background:linear-gradient(135deg,#93C5FD,#60A5FA);border:none;border-radius:12px;color:#fff;font-size:16px;font-weight:600;cursor:pointer;transition:all .3s ease}.confirm-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 20px #93c5fd66}.confirm-btn.loading{cursor:not-allowed;opacity:.9}.confirm-btn .icon-line{stroke:currentColor;stroke-width:2}.loading-spinner{width:20px;height:20px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}@media (max-width: 480px){.purchase-table{font-size:12px}.purchase-table th,.purchase-table td{padding:10px 6px}.col-spec,.col-remark{max-width:100px;overflow:hidden;text-overflow:ellipsis}}.orders-page{min-height:100%;background:#FFFFFF;padding-bottom:24px}.stats-section{padding:16px;background:#FFFFFF;border-bottom:1px solid #F0F4F8}.stats-card{display:flex;align-items:center;justify-content:space-around;padding:20px 16px;background:#FAFBFC;border-radius:16px;border:1px solid #E3F2FD}.stat-item{display:flex;flex-direction:column;align-items:center;gap:4px;flex:1}.stat-value{font-size:24px;font-weight:700;color:#1565c0}.stat-value.highlight{color:#42a5f5}.stat-label{font-size:12px;color:#94a3b8}.stat-divider{width:1px;height:32px;background:#E3F2FD}.tabs-section{background:#FFFFFF;padding:12px 16px;border-bottom:1px solid #F0F4F8}.tabs-row{display:flex;gap:8px}.tabs-row+.tabs-row{margin-top:8px;padding-top:8px;border-top:1px dashed #E3F2FD}.main-tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.sub-tabs{display:flex;justify-content:space-between;align-items:center}.tab-item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:10px 4px;background:#FAFBFC;border:1px solid #E3F2FD;border-radius:12px;font-size:13px;color:#64748b;cursor:pointer;transition:all .2s ease;min-height:56px}.tab-item:hover{background:#E3F2FD;color:#1565c0}.tab-item.active{background:#E3F2FD;border-color:#bbdefb;color:#1565c0}.sub-tab{flex-direction:row;padding:10px 16px;min-height:auto}.tab-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;background:#BBDEFB;color:#1565c0;font-size:11px;font-weight:600;border-radius:9px}.tab-item.active .tab-badge{background:#42A5F5;color:#fff}.filter-dropdown-wrapper{position:relative}.filter-btn{display:flex;align-items:center;gap:6px;padding:10px 14px;background:#FAFBFC;border:1px solid #E3F2FD;border-radius:10px;font-size:13px;color:#64748b;cursor:pointer;transition:all .2s ease}.filter-btn:hover,.filter-btn.active{background:#E3F2FD;border-color:#bbdefb;color:#1565c0}.filter-btn .icon-line{stroke:currentColor;stroke-width:1.5}.filter-dropdown{position:absolute;top:calc(100% + 8px);right:0;min-width:160px;background:#FFFFFF;border-radius:12px;border:1px solid #E3F2FD;box-shadow:0 4px 20px #bbdefb33;padding:8px;z-index:100;animation:dropdown-slide .2s ease}@keyframes dropdown-slide{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.dropdown-item{display:flex;justify-content:space-between;align-items:center;width:100%;padding:12px 16px;background:transparent;border:none;border-radius:8px;font-size:14px;color:#1e293b;cursor:pointer;transition:all .2s ease}.dropdown-item:hover{background:#FAFBFC}.dropdown-item.active{background:#E3F2FD;color:#1565c0}.dropdown-count{font-size:12px;color:#bbdefb;font-weight:500}.dropdown-item.active .dropdown-count{color:#1565c0}.dropdown-overlay{position:fixed;top:0;left:0;right:0;bottom:0;z-index:99}.orders-section{padding:16px}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:64px 20px;color:#bbdefb}.empty-icon{width:64px;height:64px;display:flex;align-items:center;justify-content:center;background:#FAFBFC;border-radius:16px;margin-bottom:16px;border:1px solid #E3F2FD}.empty-icon .icon-line{stroke:#bbdefb;stroke-width:1.5}.orders-list{display:flex;flex-direction:column;gap:12px}.order-card{background:#FFFFFF;border-radius:16px;padding:16px;display:flex;flex-direction:column;gap:12px;border:1px solid #E3F2FD;transition:all .2s ease}.order-card:hover{border-color:#bbdefb;box-shadow:0 2px 12px #bbdefb26}.order-header{display:flex;align-items:flex-start;gap:12px}.order-icon{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:#E3F2FD;border-radius:10px;color:#42a5f5;flex-shrink:0}.order-icon .icon-line{stroke:currentColor;stroke-width:1.5}.order-info{flex:1;min-width:0}.order-title{display:block;font-size:15px;font-weight:500;color:#1e293b;margin-bottom:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.order-id{font-size:12px;color:#94a3b8}.order-status{padding:4px 10px;border-radius:12px;font-size:12px;font-weight:500;flex-shrink:0;background:#E3F2FD;color:#1565c0}.order-details{display:flex;flex-direction:column;gap:8px;padding:12px 0;border-top:1px solid #F0F4F8;border-bottom:1px solid #F0F4F8}.detail-row{display:flex;justify-content:space-between;align-items:center}.detail-label{font-size:13px;color:#94a3b8}.detail-value{font-size:13px;color:#64748b}.order-footer{display:flex;justify-content:space-between;align-items:center}.order-amount{font-size:18px;font-weight:700;color:#1565c0;letter-spacing:-.01em}.view-btn{display:flex;align-items:center;gap:4px;padding:8px 14px;background:#E3F2FD;border:none;border-radius:8px;color:#1565c0;font-size:13px;cursor:pointer;transition:all .2s ease}.view-btn:hover{background:#BBDEFB}.view-btn .icon-line{stroke:currentColor;stroke-width:1.5}@media (max-width: 360px){.main-tabs{grid-template-columns:repeat(2,1fr)}.tab-item{font-size:12px;padding:8px 4px}}.profile-page{min-height:100%;background:#FFFFFF;padding:16px 16px 32px;display:flex;flex-direction:column;gap:16px}.user-section{margin-top:8px}.user-card{display:flex;align-items:center;gap:16px;padding:20px;background:#FAFBFC;border-radius:16px;border:1px solid #E3F2FD}.user-avatar{width:64px;height:64px;display:flex;align-items:center;justify-content:center;background:#FFFFFF;border-radius:50%;font-size:32px;border:2px solid #E3F2FD;flex-shrink:0}.user-info{flex:1;min-width:0}.user-name{font-size:18px;font-weight:600;color:#1e293b;margin-bottom:4px}.user-company{font-size:13px;color:#64748b;margin-bottom:10px}.user-badges{display:flex;gap:6px}.badge{padding:3px 8px;background:#E3F2FD;color:#1565c0;font-size:10px;font-weight:600;border-radius:10px}.badge.outline{background:#FFFFFF;border:1px solid #BBDEFB;color:#42a5f5}.overview-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.overview-item{display:flex;flex-direction:column;align-items:center;gap:4px;padding:16px 8px;background:#FAFBFC;border-radius:12px;text-align:center;border:1px solid #E3F2FD}.overview-value{font-size:16px;font-weight:700;color:#1565c0}.overview-label{font-size:11px;color:#94a3b8}.security-section{margin-top:8px}.security-card{display:flex;align-items:center;gap:12px;padding:14px 16px;background:#FAFBFC;border-radius:12px;color:#42a5f5;border:1px solid #E3F2FD}.security-info{display:flex;flex-direction:column;gap:2px}.security-title{font-size:13px;font-weight:500;color:#1e293b}.security-desc{font-size:12px;color:#94a3b8}.menu-section{margin-top:8px}.section-title{font-size:15px;font-weight:600;color:#1e293b;margin-bottom:12px;padding-left:4px}.menu-list{display:flex;flex-direction:column;gap:8px}.menu-item{display:flex;align-items:center;gap:12px;padding:14px;background:#FFFFFF;border:1px solid #E3F2FD;border-radius:12px;text-align:left;cursor:pointer;transition:all .2s ease}.menu-item:hover{background:#FAFBFC;border-color:#bbdefb}.menu-item .icon-line{stroke:#bbdefb;stroke-width:1.5}.menu-icon{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:#E3F2FD;border-radius:10px;color:#42a5f5;flex-shrink:0}.menu-content{flex:1;display:flex;flex-direction:column;gap:2px}.menu-label{font-size:14px;font-weight:500;color:#1e293b}.menu-desc{font-size:12px;color:#94a3b8}.logout-section{margin-top:8px}.logout-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:8px;padding:14px;background:#FFFFFF;border:1px solid #FFCDD2;border-radius:12px;color:#e53935;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease}.logout-btn:hover{background:#FFEBEE}.logout-btn .icon-line{stroke:currentColor;stroke-width:1.5}.version-section{text-align:center;padding:16px 0;color:#bbdefb}.version-text{font-size:12px;margin-bottom:4px}.copyright{font-size:11px}@media (max-width: 360px){.overview-grid{grid-template-columns:repeat(2,1fr)}.user-card{flex-direction:column;text-align:center}.user-badges{justify-content:center}}.model-deploy-page{padding:20px;max-width:1400px;margin:0 auto;min-height:calc(100vh - 80px)}.model-deploy-header{text-align:center;margin-bottom:24px;padding-top:10px}.model-deploy-header h1{font-size:26px;font-weight:700;color:#1f2937;margin-bottom:6px}.model-deploy-header p{font-size:14px;color:#6b7280}.architecture-flow{display:flex;align-items:center;justify-content:center;gap:20px;margin-bottom:24px;padding:20px;background:linear-gradient(135deg,#f8fafc 0%,#e2e8f0 100%);border-radius:16px;flex-wrap:wrap}.flow-card{background:white;border-radius:12px;padding:20px;min-width:240px;box-shadow:0 4px 12px #00000014;border:2px solid transparent;transition:all .3s}.flow-card.paddle{border-color:#3b82f6}.flow-card.llm{border-color:#8b5cf6}.flow-icon{width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center;margin-bottom:12px}.flow-card.paddle .flow-icon{background:#dbeafe;color:#2563eb}.flow-card.llm .flow-icon{background:#ede9fe;color:#7c3aed}.flow-content h3{font-size:16px;font-weight:600;color:#1f2937;margin-bottom:4px}.flow-role{font-size:12px;color:#6b7280;margin-bottom:12px}.flow-functions{list-style:none;padding:0;margin:0 0 12px}.flow-functions li{font-size:12px;color:#4b5563;padding:3px 0 3px 16px;position:relative}.flow-functions li:before{content:"✓";position:absolute;left:0;color:#10b981;font-weight:700}.flow-status{display:inline-block;padding:4px 10px;border-radius:12px;font-size:11px;font-weight:500}.flow-status.online{background:#d1fae5;color:#065f46}.flow-status.offline{background:#fee2e2;color:#991b1b}.flow-arrow{display:flex;flex-direction:column;align-items:center;color:#6b7280;gap:6px}.flow-arrow span{font-size:11px;background:white;padding:4px 10px;border-radius:12px;box-shadow:0 2px 4px #0000000d}.deploy-container{display:grid;grid-template-columns:1fr 1fr;gap:20px}@media (max-width: 1024px){.deploy-container{grid-template-columns:1fr}.architecture-flow{flex-direction:column}.flow-arrow{transform:rotate(90deg)}}.upload-card{background:white;border-radius:16px;box-shadow:0 4px 20px #00000014;border:1px solid #e8e8e8;overflow:hidden;display:flex;flex-direction:column;height:600px}.upload-card-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;background:linear-gradient(135deg,#1e40af 0%,#3b82f6 100%);color:#fff}.upload-card-title{display:flex;align-items:center;gap:10px;font-size:15px;font-weight:600}.upload-card-icon{width:32px;height:32px;background:rgba(255,255,255,.2);border-radius:8px;display:flex;align-items:center;justify-content:center}.upload-toggle{display:flex;align-items:center;gap:8px;font-size:13px}.toggle-switch{position:relative;width:44px;height:22px;background:rgba(255,255,255,.3);border-radius:11px;cursor:pointer;transition:background .3s}.toggle-switch.active{background:#10b981}.toggle-slider{position:absolute;top:2px;left:2px;width:18px;height:18px;background:white;border-radius:50%;transition:transform .3s}.toggle-switch.active .toggle-slider{transform:translate(22px)}.upload-card-body{flex:1;padding:20px;overflow-y:auto}.process-flow{display:flex;gap:8px;margin-bottom:20px;padding:12px;background:#f8fafc;border-radius:10px}.process-step{flex:1;text-align:center;padding:10px 6px;border-radius:8px;transition:all .3s}.process-step.active{background:#dbeafe}.process-step.dimmed{opacity:.5}.step-num{display:block;width:24px;height:24px;background:#3b82f6;color:#fff;border-radius:50%;font-size:12px;font-weight:600;line-height:24px;margin:0 auto 6px}.step-name{display:block;font-size:11px;color:#4b5563;font-weight:500}.drag-upload-zone{border:2px dashed #d1d5db;border-radius:12px;padding:36px 20px;text-align:center;transition:all .3s;background:#f9fafb;margin-bottom:20px;cursor:pointer}.drag-upload-zone:hover{border-color:#3b82f6;background:#eff6ff}.drag-upload-zone.drag-over{border-color:#3b82f6;background:#dbeafe;transform:scale(1.01)}.upload-zone-icon{width:56px;height:56px;margin:0 auto 14px;color:#6b7280}.upload-zone-text{font-size:15px;font-weight:500;color:#374151;margin-bottom:6px}.upload-zone-hint{font-size:12px;color:#9ca3af}.file-result-card{background:#f8fafc;border-radius:10px;padding:14px;margin-bottom:12px;border:1px solid #e2e8f0}.file-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.file-info{display:flex;align-items:center;gap:12px}.file-info svg{color:#3b82f6}.file-name{font-size:13px;font-weight:500;color:#1f2937}.file-meta{font-size:11px;color:#6b7280;margin-top:2px}.progress-mini{width:80px;height:4px;background:#e5e7eb;border-radius:2px;overflow:hidden}.progress-bar{height:100%;background:#3b82f6;transition:width .3s}.status-success{color:#059669}.status-error{color:#dc2626}.status-pending{color:#d97706}.result-details{border-top:1px solid #e2e8f0;padding-top:12px}.result-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;font-size:12px;color:#4b5563}.engine-badge{padding:2px 8px;background:#dbeafe;color:#1d4ed8;font-size:10px;border-radius:10px;font-weight:500}.materials-mini-list{display:flex;flex-direction:column;gap:6px}.material-mini-item{display:grid;grid-template-columns:1fr 80px 60px 60px;gap:8px;font-size:12px;padding:6px 8px;background:white;border-radius:6px}.material-name{color:#1f2937;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.material-spec{color:#6b7280;font-size:11px}.material-qty{color:#4b5563;text-align:center}.material-price{color:#059669;font-weight:600;text-align:right}.more-items{text-align:center;font-size:11px;color:#9ca3af;padding:4px}.summary-mini{display:flex;justify-content:space-between;margin-top:10px;padding-top:10px;border-top:1px dashed #e2e8f0;font-size:12px;color:#4b5563}.deploy-footer{text-align:center;padding:16px;color:#6b7280;font-size:12px;background:#f8fafc;border-radius:10px;margin-top:20px}.deploy-footer strong{color:#374151}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (max-width: 768px){.model-deploy-page{padding:12px}.model-deploy-header h1{font-size:20px}.process-flow{flex-direction:column}.material-mini-item{grid-template-columns:1fr 60px}.material-spec{display:none}}.sidebar-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.2);opacity:0;visibility:hidden;transition:all .3s ease;z-index:150}.sidebar-overlay.visible{opacity:1;visibility:visible}.sidebar{position:fixed;top:0;left:0;width:85%;max-width:380px;height:100vh;background:#FFFFFF;transform:translate(-100%);transition:transform .3s ease;z-index:160;display:flex;flex-direction:column}.sidebar.open{transform:translate(0)}.sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:16px;padding-top:calc(16px + env(safe-area-inset-top,0px));border-bottom:1px solid #F0F4F8}.sidebar-title{font-size:18px;font-weight:600;color:#1e293b}.sidebar-close{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:#FAFBFC;border:1px solid #E3F2FD;border-radius:10px;color:#64748b;cursor:pointer;transition:all .2s ease}.sidebar-close:hover{background:#E3F2FD;color:#1565c0}.sidebar-content{flex:1;overflow-y:auto;padding:12px}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:64px 20px;color:#bbdefb}.empty-state .icon-line{stroke:#bbdefb;stroke-width:1.5}.empty-state p{font-size:14px;color:#94a3b8}.history-list{display:flex;flex-direction:column;gap:8px}.history-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px;background:#FAFBFC;border:1px solid #E3F2FD;border-radius:12px;transition:all .2s ease;cursor:pointer}.history-item:hover{background:#E3F2FD;border-color:#bbdefb}.history-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}.history-title{font-size:15px;font-weight:500;color:#1e293b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.history-date{font-size:12px;color:#94a3b8}.history-status{padding:4px 10px;border-radius:12px;font-size:12px;font-weight:500;flex-shrink:0}.history-status.completed{background:#E8F5E9;color:#2e7d32}.history-status.failed{background:#FFEBEE;color:#c62828}.sidebar-footer{padding:12px 16px;padding-bottom:calc(12px + env(safe-area-inset-bottom,0px));border-top:1px solid #F0F4F8}.clear-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:8px;padding:14px;background:#FFFFFF;border:1px solid #E3F2FD;border-radius:12px;color:#64748b;font-size:14px;cursor:pointer;transition:all .2s ease}.clear-btn:hover{border-color:#ffcdd2;color:#e53935;background:#FFEBEE}.clear-btn .icon-line{stroke:currentColor;stroke-width:1.5}.notification-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.3);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);opacity:0;visibility:hidden;transition:all .3s ease;z-index:150}.notification-overlay.visible{opacity:1;visibility:visible}.notification-panel{position:fixed;top:0;right:0;width:90%;max-width:400px;height:100vh;background:#FFFFFF;transform:translate(100%);transition:transform .3s ease;z-index:160;display:flex;flex-direction:column}.notification-panel.open{transform:translate(0)}.notification-header{display:flex;align-items:center;justify-content:space-between;padding:16px;padding-top:calc(16px + env(safe-area-inset-top,0px));border-bottom:1px solid #F1F5F9}.notification-title{font-size:18px;font-weight:600;color:#1e293b}.notification-actions{display:flex;align-items:center;gap:8px}.action-btn{display:flex;align-items:center;gap:4px;padding:8px 12px;background:#F8FAFC;border:none;border-radius:10px;color:#64748b;font-size:13px;cursor:pointer;transition:all .2s ease}.action-btn:hover{background:#F1F5F9;color:#1e293b}.action-btn .icon-line{stroke:currentColor;stroke-width:1.5}.close-btn{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:#F8FAFC;border:none;border-radius:10px;color:#64748b;cursor:pointer;transition:all .2s ease}.close-btn:hover{background:#F1F5F9;color:#1e293b}.notification-tabs{display:flex;gap:8px;padding:12px 16px;border-bottom:1px solid #F1F5F9;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none}.notification-tabs::-webkit-scrollbar{display:none}.tab{padding:8px 16px;background:transparent;border:none;border-radius:20px;font-size:14px;color:#64748b;cursor:pointer;transition:all .2s ease;white-space:nowrap;flex-shrink:0}.tab:hover{background:#F8FAFC;color:#1e293b}.tab.active{background:#3B82F6;color:#fff}.notification-list{flex:1;overflow-y:auto;padding:12px}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:64px 20px;color:#94a3b8}.empty-state .icon-line{stroke:#cbd5e1;stroke-width:1.5}.empty-state p{font-size:14px}.notification-item{padding:16px;border-radius:12px;transition:all .2s ease;cursor:pointer;margin-bottom:8px;background:#F8FAFC}.notification-item:hover{background:#F1F5F9}.notification-item.unread{background:#EFF6FF}.notification-item.unread:hover{background:#DBEAFE}.notification-content{display:flex;flex-direction:column;gap:6px}.notification-title-row{display:flex;align-items:center;gap:8px}.notification-title-text{font-size:15px;font-weight:600;color:#1e293b}.unread-dot{width:6px;height:6px;background:#3B82F6;border-radius:50%;flex-shrink:0}.notification-desc{font-size:14px;color:#64748b;line-height:1.5}.notification-time{font-size:12px;color:#94a3b8}.icon-line{stroke:currentColor;stroke-width:1.5;fill:none;stroke-linecap:round;stroke-linejoin:round}@media (max-width: 480px){.notification-panel{width:100%;max-width:none}}
