:root{--md-primary: #6750A4;--md-on-primary: #FFFFFF;--md-primary-container: #EADDFF;--md-on-primary-container: #21005D;--md-secondary: #00897B;--md-on-secondary: #FFFFFF;--md-secondary-container: #B2DFDB;--md-on-secondary-container: #00251A;--md-tertiary: #7D5260;--md-on-tertiary: #FFFFFF;--md-tertiary-container: #FFD8E4;--md-error: #B3261E;--md-on-error: #FFFFFF;--md-error-container: #F9DEDC;--md-on-error-container: #410E0B;--md-warning-container: #FFDF9E;--md-on-warning-container: #271900;--md-warning: #F0A000;--md-success: #18A058;--md-surface: #FFFBFE;--md-surface-dim: #DED8E1;--md-surface-bright: #FFFBFE;--md-surface-container-lowest: #FFFFFF;--md-surface-container-low: #F7F2FA;--md-surface-container: #F3EDF7;--md-surface-container-high: #ECE6F0;--md-surface-container-highest: #E6E0E9;--md-on-surface: #1C1B1F;--md-on-surface-variant: #49454F;--md-surface-variant: #E7E0EC;--md-inverse-surface: #313033;--md-inverse-on-surface: #F4EFF4;--md-inverse-primary: #D0BCFF;--md-background: #FFFBFE;--md-outline: #79747E;--md-outline-variant: #CAC4D0;--md-elevation-0: none;--md-elevation-1: 0 1px 2px rgba(0,0,0,.3), 0 1px 3px 1px rgba(0,0,0,.15);--md-elevation-2: 0 1px 2px rgba(0,0,0,.3), 0 2px 6px 2px rgba(0,0,0,.15);--md-elevation-3: 0 4px 8px 3px rgba(0,0,0,.15), 0 1px 3px rgba(0,0,0,.3);--md-elevation-4: 0 6px 10px 4px rgba(0,0,0,.15), 0 2px 3px rgba(0,0,0,.3);--md-elevation-5: 0 8px 12px 6px rgba(0,0,0,.15), 0 4px 4px rgba(0,0,0,.3);--md-shape-xs: 4px;--md-shape-sm: 8px;--md-shape-md: 12px;--md-shape-lg: 16px;--md-shape-xl: 28px;--md-shape-full: 9999px;--md-font: "Roboto", "Google Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--md-loading-overlay-bg: rgba(255, 251, 254, .8);--md-disabled-bg: rgba(28, 27, 31, .12);--md-disabled-fg: rgba(28, 27, 31, .38);--md-easing-standard: cubic-bezier(.2, 0, 0, 1);--md-easing-emphasized: cubic-bezier(.2, 0, 0, 1);--md-easing-decelerate: cubic-bezier(0, 0, 0, 1);--md-duration-short1: 50ms;--md-duration-short2: .1s;--md-duration-short3: .15s;--md-duration-short4: .2s;--md-duration-medium1: .25s;--md-duration-medium2: .3s;--md-duration-medium4: .4s;--md-duration-long2: .5s}[data-theme=dark]{--md-primary: #D0BCFF;--md-on-primary: #381E72;--md-primary-container: #4F378B;--md-on-primary-container: #EADDFF;--md-secondary: #80CBC4;--md-on-secondary: #003733;--md-secondary-container: #004D47;--md-on-secondary-container: #B2DFDB;--md-tertiary: #EFB8C8;--md-on-tertiary: #492532;--md-tertiary-container: #633B48;--md-error: #F2B8B5;--md-on-error: #601410;--md-error-container: #8C1D18;--md-on-error-container: #F9DEDC;--md-warning-container: #5B4300;--md-on-warning-container: #FFDF9E;--md-warning: #FFC34D;--md-success: #4FC584;--md-background: #1C1B1F;--md-surface: #1C1B1F;--md-surface-dim: #141218;--md-surface-bright: #3B383E;--md-surface-container-lowest: #0F0D13;--md-surface-container-low: #1D1B20;--md-surface-container: #211F26;--md-surface-container-high: #2B2930;--md-surface-container-highest: #36343B;--md-on-surface: #E6E1E5;--md-on-surface-variant: #CAC4D0;--md-surface-variant: #49454F;--md-inverse-surface: #E6E1E5;--md-inverse-on-surface: #313033;--md-inverse-primary: #6750A4;--md-outline: #938F99;--md-outline-variant: #49454F;--md-disabled-bg: rgba(230, 225, 229, .12);--md-disabled-fg: rgba(230, 225, 229, .38);--md-loading-overlay-bg: rgba(28, 27, 31, .7);--md-elevation-1: 0 1px 3px 1px rgba(0,0,0,.3), 0 1px 2px rgba(0,0,0,.5);--md-elevation-2: 0 2px 6px 2px rgba(0,0,0,.3), 0 1px 2px rgba(0,0,0,.5);--md-elevation-3: 0 4px 8px 3px rgba(0,0,0,.3), 0 1px 3px rgba(0,0,0,.5);--md-elevation-4: 0 6px 10px 4px rgba(0,0,0,.3), 0 2px 3px rgba(0,0,0,.5);--md-elevation-5: 0 8px 12px 6px rgba(0,0,0,.3), 0 4px 4px rgba(0,0,0,.5)}[data-theme=dark] .md-scrim{background:#000000bf}[data-theme=dark] .loading-overlay{background:var(--md-loading-overlay-bg)}[data-theme=dark] .md-text-field__label{background:var(--md-surface-container-lowest)}[data-theme=dark] .settings-dialog .md-text-field__label{background:var(--md-surface-container-high)}[data-theme=dark] .result-container::-webkit-scrollbar-thumb{background:var(--md-outline-variant);border-color:var(--md-surface-container-lowest)}[data-theme=dark] .result-container::-webkit-scrollbar-thumb:hover{background:var(--md-outline)}[data-theme=dark] .upload-zone{border-color:var(--md-outline)}@font-face{font-family:Roboto-fallback;src:local("Segoe UI");size-adjust:100.5%;ascent-override:92%;descent-override:22%}*,*:before,*:after{box-sizing:border-box}body{margin:0;background:var(--md-background);color:var(--md-on-surface);font-family:var(--md-font);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh}.md-app{min-height:100vh;display:flex;flex-direction:column}.md-top-app-bar{position:sticky;top:0;z-index:100;background:var(--md-surface);box-shadow:var(--md-elevation-2);padding:0 16px;transition:box-shadow var(--md-duration-medium2) var(--md-easing-standard)}.md-top-app-bar__row{display:flex;align-items:center;height:64px;gap:12px;max-width:1200px;margin:0 auto;width:100%}.md-top-app-bar__nav-icon{color:var(--md-primary);font-size:28px;user-select:none}.md-top-app-bar__title{flex:1;font-size:22px;font-weight:500;color:var(--md-on-surface);letter-spacing:0;margin:0;line-height:28px}.md-main{flex:1;max-width:1200px;width:100%;margin:0 auto;padding:24px 16px 48px;display:flex;flex-direction:column;align-items:center;gap:24px;transition:gap var(--md-duration-medium4) var(--md-easing-standard),padding var(--md-duration-medium4) var(--md-easing-standard)}.md-main.has-content{flex-direction:row;align-items:flex-start}.hero-subtitle{text-align:center;margin:16px 0 8px;color:var(--md-on-surface-variant);font-size:16px;line-height:24px;font-weight:400;letter-spacing:.5px}.md-card{background:var(--md-surface-container-lowest);border-radius:var(--md-shape-md);position:relative;overflow:hidden;transition:box-shadow var(--md-duration-medium2) var(--md-easing-standard)}.md-elevation-1{box-shadow:var(--md-elevation-1)}.md-elevation-2{box-shadow:var(--md-elevation-2)}.md-elevation-3{box-shadow:var(--md-elevation-3)}.md-elevation-4{box-shadow:var(--md-elevation-4)}.md-elevation-5{box-shadow:var(--md-elevation-5)}.md-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:40px;padding:0 24px;border-radius:var(--md-shape-full);font-family:var(--md-font);font-size:14px;font-weight:500;letter-spacing:.1px;line-height:20px;border:none;cursor:pointer;user-select:none;text-decoration:none;position:relative;overflow:hidden;white-space:nowrap;transition:box-shadow var(--md-duration-short4) var(--md-easing-standard),background-color var(--md-duration-short4) var(--md-easing-standard)}.md-button .material-icons-round{font-size:18px}.md-button:before{content:"";position:absolute;inset:0;border-radius:inherit;background:radial-gradient(circle at center,currentColor 0%,transparent 70%);opacity:0;transform:scale(0);pointer-events:none;z-index:0}.md-button:active:before{animation:md-ripple .5s var(--md-easing-decelerate) forwards}.md-button:after{content:"";position:absolute;inset:0;background:currentColor;opacity:0;transition:opacity var(--md-duration-short4) var(--md-easing-standard);pointer-events:none}.md-button:hover:after{opacity:.08}.md-button:active:after{opacity:.12}.md-button:focus-visible{outline:2px solid var(--md-primary);outline-offset:2px}.md-button--filled{background:var(--md-primary);color:var(--md-on-primary);box-shadow:var(--md-elevation-0)}.md-button--filled:hover{box-shadow:var(--md-elevation-1)}.md-button--tonal{background:var(--md-secondary-container);color:var(--md-on-secondary-container)}.md-button--outlined{background:transparent;color:var(--md-primary);border:1px solid var(--md-outline)}.md-button--text{background:transparent;color:var(--md-primary);padding:0 12px}.md-button:disabled{background:var(--md-disabled-bg);color:var(--md-disabled-fg);box-shadow:none;cursor:default;pointer-events:none}.md-button--outlined:disabled{background:transparent;border-color:var(--md-disabled-bg)}.md-icon-button{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:var(--md-shape-full);border:none;background:transparent;color:var(--md-on-surface-variant);cursor:pointer;position:relative;overflow:hidden;padding:0;text-decoration:none;transition:color var(--md-duration-short4) var(--md-easing-standard)}.md-icon-button .material-icons-round{font-size:24px}.md-icon-button svg{width:24px;height:24px;fill:currentColor}.github-icon{width:22px;height:22px;transition:opacity var(--md-duration-short4) var(--md-easing-standard)}.md-icon-button:hover .github-icon{opacity:.85}.md-icon-button:after{content:"";position:absolute;inset:0;border-radius:inherit;background:currentColor;opacity:0;transition:opacity var(--md-duration-short4) var(--md-easing-standard);pointer-events:none}.md-icon-button:hover:after{opacity:.08}.md-icon-button:active:after{opacity:.12}.md-icon-button:disabled{color:var(--md-disabled-fg);cursor:default;pointer-events:none}.md-icon-button--filled{background:var(--md-primary);color:var(--md-on-primary)}.upload-card{width:100%;max-width:560px;padding:24px;transition:width var(--md-duration-medium4) var(--md-easing-emphasized),max-width var(--md-duration-medium4) var(--md-easing-emphasized)}.upload-card.with-image{width:340px;max-width:340px;flex-shrink:0}.upload-card:hover{box-shadow:var(--md-elevation-2)}.upload-zone{border:2px dashed var(--md-outline-variant);border-radius:var(--md-shape-md);padding:24px 16px;text-align:center;transition:border-color var(--md-duration-medium2) var(--md-easing-standard),background var(--md-duration-medium2) var(--md-easing-standard),transform var(--md-duration-medium2) var(--md-easing-standard);display:flex;flex-direction:column;align-items:center;gap:16px;position:relative;min-height:180px;justify-content:center}.upload-zone.dragging{border-color:var(--md-secondary);background:color-mix(in srgb,var(--md-secondary) 5%,transparent);transform:scale(1.01);animation:md-drag-pulse 1.5s var(--md-easing-standard) infinite}.upload-zone.dragging .upload-actions,.upload-zone.dragging .upload-zone__empty{opacity:0;visibility:hidden}.upload-zone.dragging:before{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:500;color:var(--md-secondary);z-index:10;animation:md-fade-in var(--md-duration-medium2) var(--md-easing-decelerate)}.upload-zone__drag-hint{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:500;color:var(--md-secondary);z-index:10;pointer-events:none;animation:md-fade-in var(--md-duration-medium2) var(--md-easing-decelerate)}.upload-zone__empty{display:flex;flex-direction:column;align-items:center;gap:8px;transition:opacity var(--md-duration-medium2) var(--md-easing-standard)}.upload-zone__icon{font-size:48px;color:var(--md-on-surface-variant);opacity:.6}.upload-zone__icon-wrapper{width:80px;height:80px;border-radius:50%;background:var(--md-primary-container);display:flex;align-items:center;justify-content:center;animation:md-gentle-float 3s var(--md-easing-standard) infinite;will-change:transform}.upload-zone__icon-wrapper .material-icons-round{font-size:40px;color:var(--md-on-primary-container)}.upload-zone__title{font-size:16px;font-weight:500;color:var(--md-on-surface);margin:0}.upload-zone__subtitle{font-size:14px;color:var(--md-on-surface-variant);margin:0}.upload-actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;transition:opacity var(--md-duration-medium2) var(--md-easing-standard)}.url-form{display:flex;gap:12px;width:100%;animation:md-fade-in var(--md-duration-medium2) var(--md-easing-decelerate)}.md-text-field{flex:1;position:relative}.md-text-field__input{width:100%;height:48px;padding:0 16px;font-family:var(--md-font);font-size:16px;color:var(--md-on-surface);background:transparent;border:1px solid var(--md-outline);border-radius:var(--md-shape-xs);outline:none;caret-color:var(--md-primary);transition:border-color var(--md-duration-short4) var(--md-easing-standard),box-shadow var(--md-duration-short4) var(--md-easing-standard)}.md-text-field__input:hover{border-color:var(--md-on-surface)}.md-text-field__input:focus{border-color:var(--md-primary);border-width:2px;padding:0 15px;box-shadow:none}.md-text-field__label{position:absolute;left:12px;top:50%;transform:translateY(-50%);font-size:16px;color:var(--md-on-surface-variant);background:var(--md-surface-container-lowest);padding:0 4px;pointer-events:none;transition:top var(--md-duration-short4) var(--md-easing-standard),transform var(--md-duration-short4) var(--md-easing-standard),font-size var(--md-duration-short4) var(--md-easing-standard),color var(--md-duration-short4) var(--md-easing-standard)}.md-text-field__input:focus+.md-text-field__label,.md-text-field__input:not(:placeholder-shown)+.md-text-field__label{top:0;transform:translateY(-50%);font-size:12px;color:var(--md-primary)}.md-text-field--textarea{flex:unset}.md-text-field__textarea{height:auto;min-height:96px;padding:12px 16px;resize:vertical;line-height:1.5;font-family:var(--md-font)}.md-text-field__textarea:focus{padding:11px 15px}.md-text-field--textarea .md-text-field__label{top:14px;transform:none}.md-text-field__textarea:focus+.md-text-field__label,.md-text-field__textarea:not(:placeholder-shown)+.md-text-field__label{top:0;transform:translateY(-50%);font-size:12px;color:var(--md-primary)}.image-preview-wrapper{margin-top:16px}.image-navigation{display:flex;align-items:center;justify-content:center;gap:8px;margin-bottom:12px}.image-counter{font-size:14px;font-weight:500;color:var(--md-on-surface-variant);min-width:56px;text-align:center;letter-spacing:.25px}.image-preview{position:relative;border-radius:var(--md-shape-md);overflow:hidden;background:var(--md-surface-container);box-shadow:var(--md-elevation-1);cursor:pointer;transition:box-shadow var(--md-duration-medium2) var(--md-easing-standard);aspect-ratio:4 / 3}.image-preview--placeholder{cursor:default}.image-preview:hover{box-shadow:var(--md-elevation-2)}.image-preview:focus-visible{outline:2px solid var(--md-primary);outline-offset:2px}.image-preview img{width:100%;height:100%;object-fit:contain;display:block;transition:opacity var(--md-duration-medium2) var(--md-easing-standard)}.image-preview__placeholder{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:var(--md-on-surface-variant);background:radial-gradient(circle at top,color-mix(in srgb,var(--md-primary) 12%,transparent),transparent 55%),var(--md-surface-container);text-align:center;padding:16px}.image-preview__placeholder .material-icons-round{font-size:48px}.image-preview__placeholder-text{font-size:14px;font-weight:500;word-break:break-word}.image-preview img.fade-enter{opacity:0}.image-preview img.fade-active{opacity:1}.loading-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:var(--md-loading-overlay-bg);z-index:2;border-radius:inherit}.md-circular-progress{width:48px;height:48px;border:4px solid var(--md-primary-container);border-top-color:var(--md-primary);border-radius:50%;animation:md-spin .8s linear infinite;will-change:transform}.result-card{flex:1;min-width:280px;max-height:calc(100vh - 120px);position:sticky;top:88px;display:flex;flex-direction:column;opacity:0;transform:translateY(8px);animation:md-slide-up var(--md-duration-medium4) var(--md-easing-decelerate) forwards}.result-card:hover{box-shadow:var(--md-elevation-2)}.md-linear-progress{height:4px;background:var(--md-primary-container);overflow:hidden;border-radius:var(--md-shape-md) var(--md-shape-md) 0 0;flex-shrink:0}.md-linear-progress__bar{height:100%;background:var(--md-primary);animation:md-progress-indeterminate 2s var(--md-easing-standard) infinite}.result-container{flex:1;overflow-y:auto;padding:20px 24px;scroll-behavior:smooth;min-height:300px;display:flex;flex-direction:column}.loading-state{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:48px 0;color:var(--md-on-surface-variant);font-size:14px;font-weight:500}.loading-state__icon{font-size:36px;color:var(--md-primary);animation:md-spin 1.5s var(--md-easing-standard) infinite}.result-header{display:flex;justify-content:space-between;align-items:center;gap:12px;padding-bottom:12px;margin-bottom:16px;border-bottom:1px solid var(--md-outline-variant);flex-wrap:wrap}.result-header__info{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:500;color:var(--md-on-surface-variant);letter-spacing:.1px;flex:1;min-width:0}.result-header__info .material-icons-round{font-size:20px;color:var(--md-primary);flex-shrink:0}.result-header__actions{display:flex;gap:8px;flex-shrink:0}.result-body{line-height:1.7;color:var(--md-on-surface);font-size:15px}.result-text--enter{animation:md-slide-up var(--md-duration-medium2) var(--md-easing-decelerate) both}.streaming-text{white-space:pre-wrap;word-break:break-word}.text-line{margin:4px 0;min-height:1.4em}.streaming-text.is-streaming .text-line{opacity:0;animation:md-line-reveal var(--md-duration-medium1) var(--md-easing-decelerate) forwards;animation-delay:min(calc(var(--line-index) * 30ms),1s)}.latex-inline{display:inline-block;vertical-align:middle;margin:0 2px}.latex-block-wrapper{display:block;margin:12px 0;overflow-x:auto;max-width:100%;text-align:center}.latex-block-wrapper .katex-display{margin:0;padding:8px 0}.katex{font-size:1.1em;line-height:1.2}.katex-display>.katex{display:flex!important;justify-content:center;width:100%}.katex-html{max-width:100%;overflow-x:auto;overflow-y:hidden;padding:4px 0}.md-scrim{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;animation:md-fade-in var(--md-duration-medium2) var(--md-easing-decelerate)}.md-dialog{position:relative;max-width:90vw;max-height:90vh;background:var(--md-surface-container-highest);border-radius:var(--md-shape-xl);padding:16px;box-shadow:var(--md-elevation-5);animation:md-dialog-enter var(--md-duration-medium4) var(--md-easing-emphasized)}.md-dialog img{max-width:100%;max-height:calc(90vh - 32px);object-fit:contain;border-radius:var(--md-shape-md);display:block}.md-dialog__close{position:absolute;top:-8px;right:-8px;background:var(--md-surface);color:var(--md-on-surface);box-shadow:var(--md-elevation-2);z-index:1}.md-dialog__close:hover{box-shadow:var(--md-elevation-3)}.settings-dialog{background:var(--md-surface-container-high);border-radius:var(--md-shape-xl);padding:24px;width:420px;max-width:calc(100vw - 32px);max-height:90vh;overflow-y:auto;animation:md-dialog-enter var(--md-duration-medium4) var(--md-easing-emphasized)}.settings-dialog__title{font-size:24px;font-weight:500;color:var(--md-on-surface);margin:0 0 4px;line-height:32px}.settings-dialog__desc{font-size:13px;color:var(--md-on-surface-variant);margin:0 0 24px;line-height:18px}.settings-dialog__form{display:flex;flex-direction:column;gap:20px;margin-bottom:24px}.settings-dialog__form .md-text-field{flex:unset}.settings-dialog__actions{display:flex;justify-content:flex-end;gap:8px;align-items:center}.settings-dialog__helper{font-size:12px;line-height:16px;margin:-12px 0 0 16px;color:var(--md-on-surface-variant)}.settings-dialog__helper--error{color:var(--md-error)}.settings-dialog__helper--info{color:var(--md-on-surface-variant);background:var(--md-surface-variant, #e7e0ec22);border-left:3px solid var(--md-primary, #6750a4);border-radius:0 4px 4px 0;padding:6px 10px;margin:0 0 4px;line-height:1.5}.md-text-field__input--error{border-color:var(--md-error)}.md-text-field__input--error:focus{border-color:var(--md-error)}.md-text-field__input--error+.md-text-field__label,.md-text-field__input--error:focus+.md-text-field__label{color:var(--md-error)}.md-text-field--with-trailing{position:relative}.md-text-field--with-trailing .md-text-field__input{padding-right:48px}.md-text-field--with-trailing .md-text-field__input:focus{padding-right:47px}.md-text-field__trailing{position:absolute;right:4px;top:50%;transform:translateY(-50%);width:40px;height:40px}.md-text-field__trailing .material-icons-round{font-size:20px}.md-icon-button--badge{position:relative}.md-icon-button--badge:before{content:"";position:absolute;top:6px;right:6px;width:8px;height:8px;background:var(--md-error);border-radius:50%;z-index:1}.md-snackbar{position:fixed;bottom:24px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:8px;padding:0 16px;height:48px;background:var(--md-inverse-surface);color:var(--md-inverse-on-surface);border-radius:var(--md-shape-xs);box-shadow:var(--md-elevation-3);font-size:14px;font-weight:400;letter-spacing:.25px;z-index:2000;animation:md-snackbar-enter var(--md-duration-medium2) var(--md-easing-decelerate)}.md-snackbar .material-icons-round{font-size:20px;color:var(--md-inverse-primary)}.md-snackbar--error .material-icons-round{color:var(--md-error)}.md-snackbar--info .material-icons-round{color:var(--md-primary)}.md-snackbar__text{flex:1}.md-snackbar__dismiss{color:var(--md-inverse-on-surface);width:32px;height:32px;margin-left:4px}.md-snackbar__dismiss .material-icons-round{font-size:18px;color:var(--md-inverse-on-surface)}.result-container::-webkit-scrollbar{width:8px}.result-container::-webkit-scrollbar-track{background:transparent}.result-container::-webkit-scrollbar-thumb{background:var(--md-outline-variant);border-radius:var(--md-shape-full);border:2px solid var(--md-surface-container-lowest)}.result-container::-webkit-scrollbar-thumb:hover{background:var(--md-outline)}.md-scrim{will-change:opacity}.md-dialog.is-animating,.settings-dialog.is-animating,.md-snackbar.is-animating{will-change:transform,opacity}.md-linear-progress__bar{will-change:transform}@keyframes md-fade-in{0%{opacity:0}to{opacity:1}}@keyframes md-spin{to{transform:rotate(360deg)}}@keyframes md-progress-indeterminate{0%{transform:translate(-100%);width:40%}50%{transform:translate(60%);width:30%}to{transform:translate(200%);width:10%}}@keyframes md-line-reveal{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes md-dialog-enter{0%{opacity:0;transform:scale(.85)}to{opacity:1;transform:scale(1)}}@keyframes md-snackbar-enter{0%{opacity:0;transform:translate(-50%) translateY(16px)}to{opacity:1;transform:translate(-50%) translateY(0)}}@keyframes md-ripple{0%{transform:scale(0);opacity:.16}to{transform:scale(2.5);opacity:0}}@keyframes md-gentle-float{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes md-drag-pulse{0%,to{border-color:var(--md-secondary);background:#00897b0d}50%{border-color:var(--md-primary);background:#6750a40f}}@keyframes md-slide-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media(min-width:600px)and (max-width:839px){.md-top-app-bar__row{height:56px}.md-top-app-bar__title{font-size:20px}.md-main{padding:20px 16px 40px}.upload-card.with-image{width:300px;max-width:300px}.result-container{padding:16px 20px}.settings-dialog{width:calc(100vw - 48px)}.result-header__actions{flex-wrap:wrap}}@media(max-width:599px){.md-top-app-bar__row{height:56px}.md-top-app-bar__title{font-size:18px}.md-main{padding:16px 12px 32px}.md-main.has-content{flex-direction:column;justify-content:flex-start}.upload-card,.upload-card.with-image{width:100%;max-width:100%}.result-card{max-height:50vh;min-width:0;width:100%;position:relative;top:0}.result-container{min-height:200px;padding:16px}.result-header{flex-direction:column;gap:8px;align-items:flex-start}.result-header__actions{width:100%;display:flex;gap:8px}.result-header__actions .md-button{flex:1;justify-content:center}.upload-actions{flex-direction:column;align-items:stretch}.url-form{flex-direction:column}.md-dialog{max-width:95vw;padding:8px;border-radius:var(--md-shape-lg)}.settings-dialog{width:calc(100vw - 32px);padding:20px 16px}.md-snackbar{left:16px;right:16px;transform:none;width:auto}@keyframes md-snackbar-enter{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.katex-display{font-size:.9em}.latex-block-wrapper{max-width:100%;overflow-x:auto}}@media(pointer:coarse){.md-icon-button{width:48px;height:48px}.image-navigation{gap:4px}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.page-thumbnails-strip{display:flex;gap:8px;padding:8px 12px;overflow-x:auto;border-bottom:1px solid var(--md-outline, #ccc);scrollbar-width:thin}.page-thumbnails-strip::-webkit-scrollbar{height:4px}.page-thumbnails-strip::-webkit-scrollbar-thumb{background:var(--md-outline, #ccc);border-radius:2px}.export-actions{padding:12px 16px;margin-top:12px}.export-actions__header{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:500;color:var(--md-on-surface-variant, #666);margin-bottom:8px}.export-actions__header .material-icons-round{font-size:18px}.export-actions__buttons{display:flex;flex-wrap:wrap;gap:8px}.export-actions__buttons .md-button{font-size:13px;padding:6px 12px}.export-actions__buttons .md-button .material-icons-round{font-size:16px}.md-button--tonal{background:var(--md-primary-container, #EADDFF);color:var(--md-on-primary-container, #21005D);border:none;cursor:pointer;border-radius:20px;padding:6px 16px;font-size:13px;font-weight:500;transition:background .15s}.md-button--tonal:hover{filter:brightness(.95)}[data-theme=dark] .md-button--tonal{background:var(--md-primary-container, #4A4458);color:var(--md-on-primary-container, #EADDFF)}.md-scrim{position:fixed;inset:0}.page-thumbnail{position:relative;width:80px;height:80px;border-radius:8px;overflow:hidden;cursor:pointer;border:2px solid transparent;transition:border-color .2s,box-shadow .2s;flex-shrink:0}.page-thumbnail:hover{border-color:var(--md-sys-color-outline, #888)}.page-thumbnail--selected{border-color:var(--md-sys-color-primary, #1976d2);box-shadow:0 0 0 2px #1976d233}.page-thumbnail__img{width:100%;height:100%;object-fit:cover}.page-thumbnail__placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:var(--md-sys-color-surface-variant, #e0e0e0);color:var(--md-sys-color-on-surface-variant, #666)}.page-thumbnail__name{position:absolute;bottom:0;left:0;right:0;font-size:9px;padding:2px 4px;background:#0009;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.page-thumbnail__cancel{position:absolute;top:2px;right:2px;z-index:3;width:20px;height:20px;border-radius:50%;border:none;background:#0009;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;opacity:.95;transition:background-color .15s,transform .15s}.page-thumbnail__cancel .material-icons-round{font-size:14px}.page-thumbnail__cancel:hover,.page-thumbnail__cancel:focus-visible{background:#d32f2fe6;transform:scale(1.05)}.status-badge{position:absolute;top:2px;left:2px;display:flex;align-items:center;justify-content:center}.status-badge__icon{font-size:16px;color:var(--badge-color, #888);filter:drop-shadow(0 1px 2px rgba(0,0,0,.4))}.status-badge__icon.spin{animation:spin 1.2s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.health-indicator{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 12px;border-radius:var(--md-shape-full);font-family:var(--md-font);font-size:12px;font-weight:500;letter-spacing:.1px;transition:background-color var(--md-duration-short4) var(--md-easing-standard),color var(--md-duration-short4) var(--md-easing-standard)}.health-indicator--healthy{padding:0;background:transparent;color:var(--md-on-surface-variant)}.health-indicator--degraded{background:var(--md-warning-container);color:var(--md-on-warning-container)}.health-indicator--unavailable{background:var(--md-error-container);color:var(--md-on-error-container)}.health-indicator__icon{font-size:18px;color:inherit}.health-indicator__label{color:inherit;white-space:nowrap}.queue-status{display:inline-flex;align-items:center;gap:4px;height:28px;padding:0 12px;border-radius:var(--md-shape-full);background:var(--md-secondary-container);color:var(--md-on-secondary-container);font-family:var(--md-font);font-size:12px;font-weight:600;letter-spacing:.1px}.queue-status__icon{font-size:16px;color:inherit}.markdown-result{line-height:1.7;font-size:14px;word-break:break-word}.markdown-result h1,.markdown-result h2,.markdown-result h3{margin-top:1em;margin-bottom:.5em;font-weight:600}.markdown-result p{margin:.5em 0}.markdown-result table{border-collapse:collapse;width:100%;margin:.8em 0;font-size:13px;overflow-x:auto;display:block}.markdown-result th,.markdown-result td{border:1px solid var(--md-outline-variant, #CAC4D0);padding:6px 10px;text-align:left}.markdown-result th{background:var(--md-surface-container-high, #ECE6F0);font-weight:600}.markdown-result tr:nth-child(2n){background:var(--md-surface-container-lowest, #FFFFFF)}.markdown-result code{background:var(--md-surface-container, #F3EDF7);padding:1px 4px;border-radius:3px;font-size:13px}.markdown-result pre{background:var(--md-surface-container, #F3EDF7);padding:12px;border-radius:8px;overflow-x:auto}.markdown-result pre code{background:transparent;padding:0}.markdown-result blockquote{border-left:3px solid var(--md-outline, #79747E);margin:.5em 0;padding-left:12px;color:var(--md-on-surface-variant, #49454F)}.markdown-result ul,.markdown-result ol{padding-left:1.5em;margin:.5em 0}.markdown-result img{max-width:100%}[data-theme=dark] .markdown-result th{background:var(--md-surface-container-high, #2B2930)}[data-theme=dark] .markdown-result tr:nth-child(2n){background:var(--md-surface-container-lowest, #0F0D13)}.button-with-dropdown{position:relative;display:inline-flex;flex-direction:column}.button-with-dropdown__group{display:inline-flex;border-radius:var(--md-shape-full, 9999px);overflow:hidden}.button-with-dropdown__main{border-top-right-radius:0!important;border-bottom-right-radius:0!important;border-right:1px solid rgba(255,255,255,.3)!important}.button-with-dropdown__trigger{border-top-left-radius:0!important;border-bottom-left-radius:0!important;min-width:32px!important;padding:0 4px!important}.button-with-dropdown__trigger .material-icons-round{font-size:18px}.export-dropdown{position:absolute;top:calc(100% + 4px);right:0;z-index:100;background:var(--md-surface-container-low, #F7F2FA);border-radius:var(--md-shape-sm, 8px);box-shadow:var(--md-elevation-2, 0 1px 2px rgba(0,0,0,.3), 0 2px 6px 2px rgba(0,0,0,.15));min-width:140px;padding:4px 0;animation:dropdown-enter .15s ease-out}@keyframes dropdown-enter{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.export-dropdown__item{display:flex;align-items:center;gap:8px;width:100%;padding:8px 16px;border:none;background:transparent;color:var(--md-on-surface, #1C1B1F);font-size:14px;cursor:pointer;text-align:left;transition:background .1s}.export-dropdown__item:hover{background:var(--md-surface-container-highest, #E6E0E9)}.export-dropdown__item .material-icons-round{font-size:18px;color:var(--md-on-surface-variant, #49454F)}[data-theme=dark] .export-dropdown{background:var(--md-surface-container-low, #1D1B20)}[data-theme=dark] .export-dropdown__item:hover{background:var(--md-surface-container-highest, #36343B)}.pdf-select-dialog{position:relative;display:flex;flex-direction:column;width:min(1100px,calc(100vw - 48px));height:calc(100vh - 96px);max-height:calc(100vh - 96px);padding:24px;background:var(--md-surface, #FEF7FF);border-radius:var(--md-shape-xl, 28px);font-family:var(--md-font)}.pdf-select-dialog__title{margin:0 0 4px;font-size:1.4rem;color:var(--md-on-surface, #1D1B20)}.pdf-select-dialog__desc{margin:0 0 12px;font-size:.85rem;color:var(--md-on-surface-variant, #49454F);word-break:break-all}.pdf-select-dialog__toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:4px;margin-bottom:12px}.pdf-select-dialog__range-input{flex:1;min-width:140px;padding:6px 12px;border:1px solid var(--md-outline-variant, #CAC4D0);border-radius:var(--md-shape-xs, 4px);background:var(--md-surface-container, #F3EDF7);color:var(--md-on-surface, #1D1B20);font-size:.85rem;font-family:var(--md-font)}.pdf-select-dialog__range-input:focus{outline:2px solid var(--md-primary, #6750A4);outline-offset:-1px}.pdf-select-dialog__content{display:flex;gap:16px;flex:1;min-height:0}.pdf-select-dialog__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(76px,1fr));gap:8px;overflow-y:auto;padding:4px;flex:0 0 36%;align-content:start;min-height:0}.pdf-select-page{position:relative;display:flex;flex-direction:column;padding:0;border:2px solid var(--md-outline-variant, #CAC4D0);border-radius:var(--md-shape-md, 12px);background:var(--md-surface-container, #F3EDF7);cursor:pointer;overflow:hidden;transition:border-color .15s var(--md-easing-standard),box-shadow .15s var(--md-easing-standard)}.pdf-select-page:hover{border-color:var(--md-primary, #6750A4)}.pdf-select-page--selected{border-color:var(--md-primary, #6750A4);box-shadow:0 0 0 1px var(--md-primary, #6750A4)}.pdf-select-page--current{outline:2px solid var(--md-secondary, #625B71);outline-offset:2px}.pdf-select-page img{display:block;width:100%;height:auto;user-select:none}.pdf-select-page__number{padding:2px 0;font-size:.75rem;text-align:center;color:var(--md-on-surface-variant, #49454F)}.pdf-select-page__check{position:absolute;top:4px;right:4px;font-size:20px;color:var(--md-primary, #6750A4);background:var(--md-surface, #FEF7FF);border-radius:var(--md-shape-full, 999px)}.pdf-select-page:not(.pdf-select-page--selected) .pdf-select-page__check{color:var(--md-outline, #79747E)}.pdf-select-dialog__loading{display:flex;align-items:center;justify-content:center;gap:8px;grid-column:1 / -1;padding:16px;color:var(--md-on-surface-variant, #49454F);font-size:.85rem}.pdf-select-dialog__actions{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}[data-theme=dark] .pdf-select-dialog{background:var(--md-surface-container-low, #1D1B20)}[data-theme=dark] .pdf-select-page,[data-theme=dark] .pdf-select-dialog__range-input{background:var(--md-surface-container, #211F26)}.pdf-select-preview{flex:1;min-width:0;min-height:0;display:flex;flex-direction:column}.pdf-select-preview__header{display:flex;align-items:center;gap:8px;padding-bottom:8px}.pdf-select-preview__indicator{flex:1;font-size:.95rem;font-weight:500;color:var(--md-on-surface, #1D1B20)}.pdf-select-preview__body{flex:1;overflow-y:auto;display:flex;justify-content:center;background:var(--md-surface-container, #F3EDF7);border-radius:var(--md-shape-md, 12px)}.pdf-select-preview__body img{display:block;width:100%;height:auto;align-self:flex-start;user-select:none}.pdf-select-preview__nav{display:flex;justify-content:center;gap:16px;padding-top:8px}[data-theme=dark] .pdf-select-preview__body{background:var(--md-surface-container, #211F26)}@media(max-width:760px){.pdf-select-dialog__content{flex-direction:column}.pdf-select-dialog__grid{flex:0 0 auto;max-height:26vh}}
