.m-shell{background:var(--color-bg);min-height:100dvh;color:var(--color-text);flex-direction:column;display:flex}.m-topbar{z-index:2;padding:calc(env(safe-area-inset-top) + var(--space-2)) var(--space-4) var(--space-2);background:var(--color-surface);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.m-wordmark{font-size:18px;font-weight:700}.m-icon-btn{min-width:44px;min-height:44px;color:var(--color-text);border-radius:var(--radius-md);background:0 0;border:none;justify-content:center;align-items:center;display:inline-flex}.m-content{padding:var(--space-4);padding-bottom:calc(72px + env(safe-area-inset-bottom));gap:var(--space-4);flex-direction:column;flex:1;display:flex}.m-tabbar{z-index:2;background:var(--color-surface);border-top:1px solid var(--color-border);padding-bottom:env(safe-area-inset-bottom);display:flex;position:fixed;bottom:0;left:0;right:0}.m-tab{min-height:56px;color:var(--color-text-muted);font-size:var(--text-small-size);background:0 0;border:none;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;display:flex}.m-tab.active{color:var(--color-primary)}.m-heading{font-size:var(--text-title-size);font-weight:var(--text-title-weight);margin:0}.m-step{font-size:var(--text-small-size);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em;margin:0}.m-hint{color:var(--color-text-muted);font-size:var(--text-body-size);margin:0}.m-capture{gap:var(--space-3);flex-direction:column;display:flex}.m-capture-target{justify-content:center;align-items:center;gap:var(--space-2);border:2px dashed var(--color-border-strong);border-radius:var(--radius-lg);background:var(--color-surface);min-height:220px;color:var(--color-text);flex-direction:column;font-size:16px;font-weight:600;display:flex}.m-preview{object-fit:contain;border-radius:var(--radius-md);background:var(--color-surface);border:1px solid var(--color-border);width:100%;max-height:60dvh}.m-row{gap:var(--space-3);display:flex}.m-row>.m-btn{flex:1}.m-btn{justify-content:center;align-items:center;gap:var(--space-2);min-height:48px;padding:0 var(--space-4);border-radius:var(--radius-md);border:1px solid #0000;font-size:16px;font-weight:600;display:inline-flex}.m-btn:disabled{opacity:.55}.m-btn-primary{background:var(--color-text);color:var(--color-surface)}.m-btn-secondary{background:var(--color-surface);color:var(--color-text);border-color:var(--color-border-strong)}.m-btn-block{width:100%}.m-link{min-height:44px;color:var(--color-text-muted);font-size:var(--text-body-size);background:0 0;border:none;align-self:center;text-decoration:underline}.m-desktop-link{margin-top:auto}.m-thumbs{gap:var(--space-3);grid-template-columns:repeat(2,1fr);display:grid}.m-thumb{gap:var(--space-1);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text-muted);font-size:var(--text-small-size);flex-direction:column;padding:0;display:flex;overflow:hidden}.m-thumb img{aspect-ratio:3/4;object-fit:cover;width:100%}.m-thumb span{padding:var(--space-1) var(--space-2) var(--space-2)}.m-segmented{border:1px solid var(--color-border-strong);border-radius:var(--radius-md);display:flex;overflow:hidden}.m-segmented button{background:var(--color-surface);min-height:44px;color:var(--color-text);border:none;flex:1;font-weight:600}.m-segmented button+button{border-left:1px solid var(--color-border-strong)}.m-segmented button.active{background:var(--color-text);color:var(--color-surface)}.m-progress{border-radius:var(--radius-pill);background:var(--color-border);height:10px;overflow:hidden}.m-progress-fill{background:var(--color-primary);height:100%;transition:width .2s}.m-done{text-align:center;padding-top:var(--space-6);align-items:center}.m-done-icon{color:var(--color-success)}.m-section-head{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.m-empty{align-items:center;gap:var(--space-2);padding:var(--space-6) 0;color:var(--color-text-muted);text-align:center;flex-direction:column;display:flex}.m-cards{gap:var(--space-3);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.m-card{align-items:center;gap:var(--space-3);width:100%;min-height:72px;padding:var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);text-align:left;display:flex}.m-card-thumb{object-fit:cover;border-radius:var(--radius-sm);background:var(--color-neutral-bg);flex-shrink:0;width:52px;height:64px}.m-card-body{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.m-card-title{font-weight:600}.m-card-sub{font-size:var(--text-small-size);color:var(--color-text-muted)}.m-back{align-self:flex-start;align-items:center;gap:var(--space-1);text-decoration:none;display:inline-flex}.m-carousel{gap:var(--space-3);scroll-snap-type:x mandatory;display:flex;overflow-x:auto}.m-carousel img{object-fit:contain;scroll-snap-align:center;border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-surface);flex:0 0 85%;max-height:50dvh}.m-banner{align-items:center;gap:var(--space-2);padding:var(--space-3);border-radius:var(--radius-md);background:var(--color-info-bg);color:var(--color-info);font-size:var(--text-body-size);display:flex}.m-banner p{flex:1;margin:0}.m-banner-error{background:var(--color-error-bg);color:var(--color-error)}.m-fields{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface)}.m-fields summary{min-height:48px;padding:0 var(--space-3);font-weight:var(--text-section-weight);justify-content:space-between;align-items:center;list-style:none;display:flex}.m-fields summary::-webkit-details-marker{display:none}.m-fields[open] summary svg{transform:rotate(180deg)}.m-fields dl{padding:0 var(--space-3) var(--space-3);margin:0}.m-field{padding:var(--space-2) 0;border-top:1px solid var(--color-border)}.m-field dt{font-size:var(--text-small-size);color:var(--color-text-muted)}.m-field dd{word-break:break-word;margin:2px 0 0}.m-empty-value{color:var(--color-text-muted)}.m-btn-primary:hover:not(:disabled){background:var(--color-text);color:var(--color-surface);opacity:.9;border-color:#0000}.m-btn-secondary:hover:not(:disabled){background:var(--color-surface);color:var(--color-text);border-color:var(--color-border-strong)}.m-segmented button:hover:not(:disabled){background:var(--color-surface);color:var(--color-text);border-color:#0000}.m-segmented button.active:hover:not(:disabled){background:var(--color-text);color:var(--color-surface);border-color:#0000}.m-tab:hover{color:var(--color-text-muted);background:0 0;border-color:#0000}.m-tab.active:hover{color:var(--color-primary)}.m-icon-btn:hover,.m-link:hover{background:0 0;border-color:#0000}.m-capture-target:hover:not(:disabled),.m-thumb:hover:not(:disabled),.m-card:hover{background:var(--color-surface);border-color:var(--color-border-strong)}.m-capture-target:hover:not(:disabled){border-style:dashed;border-width:2px}@font-face{font-family:Nunito Sans;src:url(/fonts/NunitoSans-VariableFont_YTLC,opsz,wdth,wght.ttf)format("truetype-variations"),url(/fonts/NunitoSans-VariableFont_YTLC,opsz,wdth,wght.ttf)format("truetype");font-weight:200 1000;font-stretch:75% 125%;font-style:normal;font-display:swap}@font-face{font-family:Nunito Sans;src:url(/fonts/NunitoSans-Italic-VariableFont_YTLC,opsz,wdth,wght.ttf)format("truetype-variations"),url(/fonts/NunitoSans-Italic-VariableFont_YTLC,opsz,wdth,wght.ttf)format("truetype");font-weight:200 1000;font-stretch:75% 125%;font-style:italic;font-display:swap}:root{--color-bg:#f9fafb;--color-surface:#fff;--color-border:#e5e7eb;--color-border-strong:#6b7280;--color-text:#111827;--color-text-muted:#6b7280;--color-primary:#ef4444;--color-primary-hover:#dc2626;--color-primary-text:#fff;--color-primary-tint:#ef444414;--color-success:#1a9e5c;--color-success-bg:#e6f7ee;--color-warning:#b7791f;--color-warning-bg:#fef6e6;--color-error:#c0392b;--color-error-bg:#fdecea;--color-neutral-bg:#eef0f3;--color-neutral-text:#4b5563;--color-info:#2563eb;--color-info-bg:#eaf1fe;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--font-sans:"Nunito Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--text-title-size:22px;--text-title-weight:650;--text-section-size:15px;--text-section-weight:600;--text-body-size:14px;--text-small-size:12.5px;--text-stat-value-size:26px;--radius-sm:4px;--radius-md:10px;--radius-lg:16px;--radius-pill:999px;--shadow-sm:0 1px 2px #1018280d;--shadow-md:0 4px 12px #10182814;--max-width:1100px;--sidebar-width:76px;--sidebar-width-expanded:216px;--sidebar-bg:#101114;--sidebar-text-muted:#b7bcc5;--sidebar-text:#f4f5f7;--sidebar-active-bg:#ffffff1f;--topbar-height:52px}:root[data-theme=dark]{--color-bg:#0b0c0f;--color-surface:#16171c;--color-border:#262830;--color-border-strong:#4b4e58;--color-text:#f3f4f6;--color-text-muted:#9aa0aa;--color-success-bg:#1a9e5c29;--color-warning-bg:#b7791f29;--color-error-bg:#c0392b2e;--color-neutral-bg:#1e2027;--color-neutral-text:#c7cbd1;--color-info-bg:#2563eb2e;--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 4px 14px #0006}*{box-sizing:border-box}body{font-family:var(--font-sans);font-size:var(--text-body-size);color:var(--color-text);background:var(--color-bg);margin:0}h2{font-size:var(--text-title-size);font-weight:var(--text-title-weight);margin:0 0 var(--space-4) 0;letter-spacing:-.01em}h3{font-size:var(--text-section-size);font-weight:var(--text-section-weight);margin:0 0 var(--space-3) 0;color:var(--color-text)}.app-shell{background:var(--color-bg);align-items:stretch;height:100vh;display:flex;overflow:hidden}.app-sidebar{flex-direction:column;flex:0 0 var(--sidebar-width);width:var(--sidebar-width);height:100vh;padding:var(--space-4) 0;background:var(--sidebar-bg);align-items:center;transition:width .16s,flex-basis .16s;display:flex;position:relative}.app-sidebar.expanded{flex-basis:var(--sidebar-width-expanded);width:var(--sidebar-width-expanded);padding:var(--space-4) var(--space-3);align-items:stretch}.app-sidebar-top{margin-bottom:var(--space-5);padding:0 var(--space-1);justify-content:center;align-items:center;display:flex}.app-sidebar-toggle{background:var(--sidebar-bg);width:28px;min-width:0;height:28px;min-height:0;color:var(--sidebar-text-muted);cursor:pointer;z-index:5;border:1px solid #fff3;border-radius:50%;flex:none;justify-content:center;align-items:center;padding:0;display:flex;position:absolute;top:50%;right:-14px;transform:translateY(-50%);box-shadow:0 1px 4px #00000059}.app-sidebar .app-sidebar-toggle:hover{color:var(--sidebar-text);background:#202226}.app-sidebar-toggle svg{flex:none;width:14px;height:14px}.app-sidebar-logo{object-fit:contain;width:34px;height:34px}.app-sidebar-logo-wide{object-fit:contain;width:auto;height:22px}.app-sidebar-nav{align-items:center;gap:var(--space-2);flex-direction:column;width:100%;display:flex}.app-sidebar.expanded .app-sidebar-nav{align-items:stretch}.app-sidebar-spacer{flex:1}.app-sidebar-bottom{align-items:center;gap:var(--space-4);flex-direction:column;display:flex}.app-sidebar-btn{justify-content:center;align-items:center;gap:var(--space-3);border-radius:var(--radius-md);width:48px;height:48px;color:var(--sidebar-text-muted);cursor:pointer;background:0 0;border:none;transition:background-color .12s,color .12s;display:flex}.app-sidebar.expanded .app-sidebar-btn{width:100%;padding:0 var(--space-3);justify-content:flex-start}.app-sidebar-btn-label{font-size:var(--text-body-size);white-space:nowrap;font-weight:500}.app-sidebar-btn svg{flex:none;width:22px;height:22px}.app-sidebar .app-sidebar-btn:hover{color:var(--sidebar-text);background:#ffffff14}.app-sidebar-btn.active,.app-sidebar-btn.active:hover{background:var(--sidebar-text);color:var(--sidebar-bg)}.theme-toggle{gap:var(--space-1);padding:var(--space-1);border-radius:var(--radius-pill);background:#ffffff14;flex-direction:column;display:flex}.app-sidebar.expanded .theme-toggle{flex-direction:row}.theme-toggle button{border-radius:var(--radius-pill);width:34px;height:34px;color:var(--sidebar-text-muted);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;display:flex}.app-sidebar .theme-toggle button:hover{color:var(--sidebar-text);background:#ffffff1a}.theme-toggle button svg{flex:none;width:18px;height:18px}.theme-toggle button.active,.theme-toggle button.active:hover{background:var(--sidebar-text);color:var(--sidebar-bg)}.app-content{flex-direction:column;flex:1;min-width:0;height:100vh;display:flex;overflow:hidden}.app-topbar{min-height:var(--topbar-height);padding:var(--space-2) var(--space-6);border-bottom:1px solid var(--color-border);flex:none;justify-content:space-between;align-items:center;display:flex}.app-greeting{font-size:var(--text-section-size);font-weight:var(--text-title-weight);color:var(--color-text);letter-spacing:-.01em;margin:0}.app-topbar-right{align-items:center;gap:var(--space-4);display:flex}.app-date{font-size:var(--text-small-size);color:var(--color-text-muted)}.app-avatar-menu{position:relative}.app-avatar{background:var(--color-primary);width:34px;height:34px;color:var(--color-primary-text);font-size:var(--text-small-size);cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;padding:0;font-weight:700;display:flex}.app-avatar-dropdown{top:calc(100% + var(--space-2));z-index:20;min-width:160px;padding:var(--space-2);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);flex-direction:column;gap:2px;display:flex;position:absolute;right:0}.app-avatar-dropdown-name{padding:var(--space-2) var(--space-3) var(--space-1);font-size:var(--text-small-size);color:var(--color-text-muted);font-weight:600}.app-avatar-dropdown button{align-items:center;gap:var(--space-2);width:100%;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);font-size:var(--text-body-size);color:var(--color-text);background:0 0;border:none;justify-content:flex-start;display:flex}.app-avatar-dropdown button:hover{background:var(--color-neutral-bg)}.app-avatar-dropdown button svg{width:16px;height:16px;color:var(--color-text-muted);flex:none}.app-scroll{flex:1;min-height:0;overflow-y:auto}.app-footer{padding:var(--space-4) var(--space-6) var(--space-6);font-size:var(--text-small-size);color:var(--color-text-muted);text-align:center}.app-main{width:100%;max-width:var(--max-width);padding:var(--space-6);margin:0 auto}.app-main-fixed{min-height:0;padding:var(--space-5) var(--space-6);flex:1;display:flex;overflow:hidden}button{font-family:inherit;font-size:var(--text-body-size);border-radius:var(--radius-sm);border:1px solid var(--color-border-strong);background:var(--color-surface);color:var(--color-text);padding:var(--space-2) var(--space-4);cursor:pointer;font-weight:500;transition:background-color .12s,border-color .12s,color .12s}button:hover:not(:disabled){background:var(--color-neutral-bg);border-color:var(--color-border-strong)}button:focus-visible{outline:2px solid var(--color-primary);outline-offset:1px}button:disabled{cursor:not-allowed;opacity:.5}.btn-primary{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-primary-text);border-radius:var(--radius-pill);padding:var(--space-2) var(--space-5)}.btn-primary:hover:not(:disabled){background:var(--color-primary-hover);border-color:var(--color-primary-hover)}select,input[type=text],input[type=password]{font-family:inherit;font-size:var(--text-body-size);color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3)}select:focus-visible,input[type=text]:focus-visible,input[type=password]:focus-visible,input[type=file]:focus-visible{outline:2px solid var(--color-primary);outline-offset:1px}input[type=file]{font-family:inherit;font-size:var(--text-body-size)}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:var(--space-5);margin-bottom:var(--space-6)}.form-row{margin-bottom:var(--space-4)}.form-row label{font-size:var(--text-small-size);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.03em;margin-bottom:var(--space-2);font-weight:600;display:block}.form-row select,.form-row input[type=text],.form-row input[type=password]{width:100%;max-width:420px}.form-row pre{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-3) var(--space-4);font-size:var(--text-small-size);white-space:pre-wrap;word-break:break-word;overflow-x:auto}.dropzone{border:2px dashed var(--color-border-strong);border-radius:var(--radius-lg);min-height:220px;padding:var(--space-7) var(--space-5);text-align:center;margin-bottom:var(--space-4);flex-direction:column;justify-content:center;align-items:center;transition:border-color .15s,background-color .15s;display:flex;position:relative}.dropzone-active{border-color:var(--color-primary);background:var(--color-info-bg)}.dropzone-icon{color:var(--color-text-muted);margin-bottom:var(--space-3)}.dropzone-icon svg{flex:none;width:40px;height:40px}.dropzone label{font-size:var(--text-body-size);color:var(--color-text-muted);max-width:360px;margin:0 auto var(--space-1);display:block}.dropzone-hint{font-size:var(--text-small-size);color:var(--color-text-muted);opacity:.8}.dropzone input[type=file]{opacity:0;cursor:pointer;width:100%;height:100%;position:absolute;inset:0}.dropzone-files{font-size:var(--text-small-size);color:var(--color-text);margin:var(--space-4) 0 0 0;font-weight:600}.upload-file-list{gap:var(--space-2);margin:0 0 var(--space-4) 0;flex-direction:column;padding:0;list-style:none;display:flex}.upload-file-row{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--text-body-size);display:flex}.upload-file-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.upload-file-status{font-size:var(--text-small-size);color:var(--color-text-muted);flex:none}.upload-file-status.uploading{color:var(--color-info)}.upload-file-status.success{color:var(--color-success)}.upload-file-row-right{align-items:center;gap:var(--space-3);flex:none;display:flex}.upload-file-remove{width:24px;min-width:0;height:24px;min-height:0;color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;padding:0;display:flex}.upload-file-remove:hover{background:var(--color-error-bg);color:var(--color-error)}.upload-file-remove svg{flex:none;width:14px;height:14px}.upload-clear-all{color:var(--color-text-muted);font-size:var(--text-small-size);margin:0 0 var(--space-4) 0;cursor:pointer;background:0 0;border:none;padding:0;text-decoration:underline}.upload-clear-all:hover{color:var(--color-text);background:0 0}.error{color:var(--color-error);background:var(--color-error-bg);border-radius:var(--radius-sm);padding:var(--space-3) var(--space-4);margin:var(--space-4) 0;border:1px solid #c0392b40}.success-message{color:var(--color-success);background:var(--color-success-bg);border-radius:var(--radius-sm);padding:var(--space-3) var(--space-4);margin:var(--space-4) 0;border:1px solid #1a9e5c40}.empty-state{align-items:center;gap:var(--space-3);text-align:center;color:var(--color-text-muted);padding:var(--space-7) var(--space-4);flex-direction:column;display:flex}.empty-state p{margin:0}.loading-state{align-items:center;gap:var(--space-2);color:var(--color-text-muted);padding:var(--space-5) 0;display:flex}.loading-state svg,.spin{animation:1.8s linear infinite spin}.skeleton-line{border-radius:var(--radius-sm);background:linear-gradient(90deg, var(--color-border) 25%, var(--color-neutral-bg) 37%, var(--color-border) 63%);background-size:400% 100%;height:14px;animation:1.4s infinite skeleton-shimmer}.skeleton-line+.skeleton-line{margin-top:var(--space-2)}.skeleton-line-sm{width:60px}.skeleton-line-md{width:110px}.skeleton-line-lg{width:70%}.skeleton-block{border-radius:var(--radius-lg);background:var(--color-neutral-bg)}.skeleton-legend{margin-bottom:var(--space-4)}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.skeleton-line,.loading-state svg,.stat-icon-warning svg,.spin{animation:none}}.status-pill{font-size:var(--text-small-size);padding:4px var(--space-3);text-transform:capitalize;border-radius:999px;align-items:center;font-weight:600;display:inline-flex}.status-pill.status-queued{background:var(--color-neutral-bg);color:var(--color-neutral-text)}.status-pill.status-processing{background:var(--color-info-bg);color:var(--color-info)}.status-pill.status-done{background:var(--color-success-bg);color:var(--color-success)}.status-pill.status-error{background:var(--color-error-bg);color:var(--color-error)}.job-progress{border-radius:var(--radius-pill);background:var(--color-neutral-bg);width:100%;max-width:120px;height:6px;overflow:hidden}.job-progress-fill{border-radius:inherit;height:100%}.job-progress-fill.status-queued{background:var(--color-border-strong);width:15%}.job-progress-fill.status-processing{background:var(--color-warning);width:60%}.job-progress-fill.status-done{background:var(--color-success);width:100%}.job-progress-fill.status-error{background:var(--color-error);width:100%}.stat-grid{gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(180px,1fr));display:grid}.stat-card{gap:var(--space-2);min-width:0;padding:var(--space-3) var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);flex-direction:column;display:flex}.stat-card-top{align-items:center;gap:var(--space-3);display:flex}.stat-icon{border-radius:50%;flex:none;justify-content:center;align-items:center;width:34px;height:34px;display:flex}.stat-icon svg{flex:none;width:19px;height:19px}.stat-icon.stat-icon-neutral{background:var(--color-neutral-bg);color:var(--color-neutral-text)}.stat-icon.stat-icon-warning{background:var(--color-warning-bg);color:var(--color-warning)}.stat-icon-warning svg{animation:1.8s linear infinite spin}.stat-icon.stat-icon-success{background:var(--color-success-bg);color:var(--color-success)}.stat-icon.stat-icon-error{background:var(--color-error-bg);color:var(--color-error)}.stat-value{font-size:var(--text-stat-value-size);font-weight:var(--text-title-weight);color:var(--color-text);letter-spacing:-.01em}.stat-label{font-size:var(--text-small-size);color:var(--color-text-muted)}.table-scroll{width:100%;overflow-x:auto}table{border-collapse:collapse;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);width:100%;min-width:640px;box-shadow:var(--shadow-sm);overflow:hidden}th,td{text-align:left;padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--color-border)}th{font-size:var(--text-small-size);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.03em;background:var(--color-bg);font-weight:600}tbody tr:last-child td{border-bottom:none}tbody tr:hover{background:var(--color-bg)}.queue-job-title{color:var(--color-text);font-weight:600}.queue-job-sub{font-size:var(--text-small-size);color:var(--color-text-muted);margin-top:2px}.review-page{gap:var(--space-4);flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}.review-meta-header{gap:var(--space-2);padding:var(--space-2) var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);flex-direction:column;display:flex}.review-meta-bar{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.review-back-btn{padding:var(--space-2) var(--space-1);color:var(--color-text-muted);background:0 0;border:none;flex:none;align-items:center;gap:4px;display:flex}.review-back-btn:hover{color:var(--color-text);background:0 0}.review-meta-title{align-items:center;gap:var(--space-3);flex-wrap:wrap;flex:1;min-width:0;display:flex}.review-meta-filename{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:var(--text-body-size);color:var(--color-text);font-weight:700;overflow:hidden}.review-page-badge{font-size:var(--text-small-size);color:var(--color-text-muted);flex:none;font-weight:600}.review-meta-title>.review-page-badge:before{content:"·";margin-right:var(--space-3);color:var(--color-border-strong)}.review-meta-toolbar-actions{gap:var(--space-2);flex:none;display:flex}.review-meta-feedback{gap:var(--space-2);flex-direction:column;display:flex}.review-meta-header .review-meta-feedback .success-message,.review-meta-header .review-meta-feedback .error{margin:0}.review-meta-progress{padding-bottom:var(--space-1)}.job-progress-fill.review-progress{background:var(--color-warning);transition:width .3s}.review-split{gap:var(--space-5);flex:1;align-items:stretch;width:100%;min-height:0;display:flex}.review-image-pane{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);min-width:0;height:100%;box-shadow:var(--shadow-sm);padding:var(--space-4);flex:1;overflow-y:auto}.review-image{border:1px solid var(--color-border);border-radius:var(--radius-sm);max-width:100%;display:block}.review-page-footer-nav{justify-content:space-between;align-items:center;gap:var(--space-3);margin-top:var(--space-4);padding:var(--space-2) var(--space-3);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-pill);box-shadow:var(--shadow-md);display:flex;position:sticky;bottom:0}.review-page-footer-nav button{padding:var(--space-1) var(--space-3);font-size:var(--text-small-size);align-items:center;gap:4px;display:flex}.review-page-footer-indicator{font-size:var(--text-small-size);color:var(--color-text-muted);font-weight:600}.review-fields-pane{flex:1;min-width:0;height:100%;overflow-y:auto}.section-nav{z-index:1;gap:var(--space-2);background:var(--color-bg);padding:var(--space-2) 0 var(--space-3);margin-bottom:var(--space-2);flex-wrap:wrap;display:flex;position:sticky;top:0}.section-nav button{font-size:var(--text-small-size);padding:var(--space-1) var(--space-3);background:var(--color-surface)}fieldset{scroll-margin-top:var(--space-2);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:var(--space-4) var(--space-5) var(--space-5);margin:0 0 var(--space-5) 0}legend{font-size:var(--text-section-size);font-weight:var(--text-section-weight);padding:0 var(--space-2);color:var(--color-text)}.field-row{align-items:center;gap:var(--space-3);padding:var(--space-2) 0;border-bottom:1px solid var(--color-border);display:flex}.field-row:last-child{border-bottom:none}.field-row label{font-size:var(--text-small-size);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.03em;flex:0 0 30%;font-weight:600}.field-row input{flex:1;min-width:0}.field-extracted{min-width:0;padding:var(--space-2) var(--space-3);font-size:var(--text-body-size);color:var(--color-text-muted);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-sm);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.field-row-header{gap:var(--space-3);padding:0 0 var(--space-2) 0;display:flex}.field-row-header span{font-size:var(--text-small-size);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.03em;font-weight:600}.field-row-header span:first-child{flex:0 0 30%}.field-row-header span:nth-child(2),.field-row-header span:nth-child(3){flex:1}.settings-subtext{margin:0 0 var(--space-5) 0;max-width:62ch;color:var(--color-text-muted);font-size:var(--text-body-size);line-height:1.5}.settings-fieldset .field-hint{margin:calc(-1 * var(--space-1)) 0 var(--space-4) 0;color:var(--color-text-muted);font-size:var(--text-small-size)}.field-hint-success{margin-top:var(--space-2);color:var(--color-success);align-items:center;gap:4px;display:flex}.field-hint-success svg{flex:none}.settings-grid{gap:0 var(--space-5);grid-template-columns:1fr 1fr;display:grid}.settings-grid .form-row input{max-width:none}.provider-picker,.method-picker{margin-bottom:var(--space-5);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-pill);flex-wrap:wrap;gap:4px;padding:4px;display:inline-flex}.provider-option,.method-option{border-radius:var(--radius-pill);padding:var(--space-2) var(--space-4);font-size:var(--text-body-size);color:var(--color-text-muted);background:0 0;border:none;align-items:center;gap:6px;font-weight:500;display:flex}.provider-picker .provider-option:hover,.method-picker .method-option:hover{background:var(--color-neutral-bg);color:var(--color-text)}.provider-option.active,.provider-option.active:hover,.method-option.active,.method-option.active:hover{background:var(--color-primary);color:var(--color-primary-text)}.method-picker{margin-bottom:0}.password-field{max-width:420px;display:flex;position:relative}.settings-grid .password-field{max-width:none}.password-field input{width:100%;padding-right:40px}.password-toggle{width:30px;min-width:0;height:30px;min-height:0;color:var(--color-text-muted);background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;padding:0;display:flex;position:absolute;top:50%;right:4px;transform:translateY(-50%)}.password-field .password-toggle:hover{background:var(--color-neutral-bg);color:var(--color-text)}.password-toggle svg{flex:none;width:16px;height:16px}.model-fetch-row{align-items:center;gap:var(--space-2);display:flex}.model-dropdown{flex:1;position:relative}.model-dropdown input{width:100%}.model-dropdown-list{top:calc(100% + var(--space-2));z-index:20;max-height:220px;padding:var(--space-2);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);flex-direction:column;gap:2px;display:flex;position:absolute;left:0;right:0;overflow-y:auto}.model-dropdown-item{text-align:left;width:100%;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);font-size:var(--text-body-size);color:var(--color-text);background:0 0;border:none;display:block}.model-dropdown-item:hover{background:var(--color-neutral-bg)}.model-dropdown-item.active{background:var(--color-neutral-bg);font-weight:600}.model-fetch-row button{white-space:nowrap;flex:none;align-items:center;gap:6px;display:flex}.model-fetch-row button svg{flex:none;width:14px;height:14px}.pipeline-mode-picker{gap:var(--space-4);grid-template-columns:repeat(3,1fr);display:grid}.pipeline-mode-card{align-items:flex-start;gap:var(--space-2);text-align:left;padding:var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);flex-direction:column;font-weight:400;display:flex}.pipeline-mode-picker .pipeline-mode-card:hover{border-color:var(--color-border-strong);background:var(--color-bg)}.pipeline-mode-card.active,.pipeline-mode-picker .pipeline-mode-card.active:hover{border-color:var(--color-primary);background:var(--color-primary-tint)}.pipeline-flow{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.pipeline-flow-stage{align-items:center;gap:6px;display:flex}.pipeline-flow-stage span{font-size:var(--text-small-size);color:var(--color-text-muted)}.pipeline-flow-node{background:var(--color-neutral-bg);width:28px;height:28px;color:var(--color-neutral-text);border-radius:50%;flex:none;justify-content:center;align-items:center;display:flex}.pipeline-mode-card.active .pipeline-flow-node{background:var(--color-primary);color:var(--color-primary-text)}.pipeline-mode-card.active .pipeline-flow-stage span{color:var(--color-text);font-weight:600}.pipeline-flow-arrow{color:var(--color-border-strong);flex:none;margin:0 2px}.pipeline-mode-title{font-size:var(--text-body-size);color:var(--color-text);font-weight:700}.pipeline-mode-desc{font-size:var(--text-small-size);color:var(--color-text-muted);line-height:1.4}.code-preview{font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace}.settings-savebar{justify-content:space-between;align-items:center;gap:var(--space-4);margin-top:var(--space-2);padding:var(--space-3) var(--space-5);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);opacity:0;pointer-events:none;transition:opacity .16s,transform .16s;display:flex;position:sticky;bottom:0;transform:translateY(8px)}.settings-savebar.visible{opacity:1;pointer-events:auto;transform:translateY(0)}.settings-savebar-status{font-size:var(--text-small-size);color:var(--color-text-muted);align-items:center;gap:6px;font-weight:600;display:flex}.settings-savebar-status svg{flex:none}.settings-savebar-status.is-unsaved{color:var(--color-warning)}.settings-savebar-status.is-saved{color:var(--color-success)}.settings-savebar-actions{gap:var(--space-2);flex:none;display:flex}@media (prefers-reduced-motion:reduce){.settings-savebar{transition:none}}@media (width<=860px){.app-main-fixed{display:block;overflow-y:auto}.review-split{flex-direction:column;height:auto;overflow:visible}.review-image-pane{width:100%;height:auto;overflow:visible}.review-fields-pane{height:auto;overflow:visible}.field-row{align-items:stretch;gap:var(--space-1);flex-direction:column}.field-row label{flex:none}.field-row-header{display:none}.settings-grid,.pipeline-mode-picker{grid-template-columns:1fr}.settings-savebar{flex-direction:column;align-items:stretch}.settings-savebar-actions{justify-content:flex-end}}.login-page{align-items:stretch;min-height:100vh;display:flex}.login-panel{min-height:100vh;padding:var(--space-6) var(--space-7);background:var(--color-bg);flex:64%;justify-content:center;align-items:center;display:flex}.login-panel-inner{text-align:left;width:100%;max-width:400px}.login-eyebrow{margin:0 0 var(--space-4) 0;color:var(--color-text-muted);font-size:var(--text-small-size);letter-spacing:.06em;text-transform:uppercase;font-weight:600}.login-title{margin:0 0 var(--space-2) 0;color:var(--color-text);font-size:26px;font-weight:var(--text-title-weight)}.login-subtext{margin:0 0 var(--space-6) 0;color:var(--color-text-muted);font-size:var(--text-body-size)}.login-form{gap:var(--space-4);flex-direction:column;display:flex}.login-legal{margin:var(--space-6) 0 0 0;color:var(--color-text-muted);font-size:var(--text-small-size);line-height:1.5}.login-hero{border-left:1px solid var(--color-border);flex:50%;position:relative;overflow:hidden}.login-hero-image{object-fit:cover;width:100%;height:100%;display:block}@media (width<=820px){.login-page{flex-direction:column}.login-panel{min-height:auto;padding:var(--space-6) var(--space-5);flex:none}.login-hero{border-left:none;border-top:1px solid var(--color-border);flex:none;height:320px}.login-hero-image{object-position:center top}}@media (width<=680px){.app-shell{flex-direction:column;height:100vh}.app-sidebar,.app-sidebar.expanded{width:100%;height:auto;padding:var(--space-2) var(--space-2);flex-direction:row;flex:none;order:2;justify-content:space-around;align-items:stretch;position:static}.app-sidebar-top,.app-sidebar-toggle,.app-sidebar-spacer,.app-sidebar-bottom{display:none}.app-sidebar-nav{flex-direction:row;flex:1;justify-content:space-around;align-items:stretch}.app-sidebar.expanded .app-sidebar-nav{align-items:stretch}.app-sidebar-btn,.app-sidebar.expanded .app-sidebar-btn{width:auto;height:auto;padding:var(--space-2) 0;flex-direction:column;flex:1;justify-content:center;gap:2px}.app-sidebar-btn-label{font-size:10.5px}.app-content{flex:1;order:1;min-height:0}.app-topbar{padding:var(--space-2) var(--space-4)}.app-date{display:none}.app-main,.app-main-fixed{padding:var(--space-4)}.dropzone{min-height:160px;padding:var(--space-5) var(--space-4)}.upload-file-remove{width:44px;height:44px}.app-avatar{width:40px;height:40px}}.queue-job-source{vertical-align:-2px;color:var(--color-text-muted);margin-left:6px}
