:root{--color-bg: #fff;--color-surface: #f8f9fa;--color-surface-raised: #fff;--color-surface-overlay: rgba(0, 0, 0, .5);--color-text: #1a1a2e;--color-text-secondary: #64748b;--color-text-muted: #94a3b8;--color-text-inverse: #fff;--color-primary: #3b82f6;--color-primary-hover: #2563eb;--color-primary-light: #dbeafe;--color-primary-text: #fff;--color-success: #22c55e;--color-success-light: #dcfce7;--color-success-text: #166534;--color-warning: #f59e0b;--color-warning-light: #fef3c7;--color-warning-text: #92400e;--color-error: #ef4444;--color-error-light: #fee2e2;--color-error-text: #991b1b;--color-info: #3b82f6;--color-info-light: #dbeafe;--color-info-text: #1e40af;--color-border: #e2e8f0;--color-border-strong: #cbd5e1;--status-pending: #f59e0b;--status-pending-bg: #fef3c7;--status-processing: #3b82f6;--status-processing-bg: #dbeafe;--status-completed: #22c55e;--status-completed-bg: #dcfce7;--status-error: #ef4444;--status-error-bg: #fee2e2;--status-export-failed: #f97316;--status-export-failed-bg: #ffedd5;--sidebar-bg: #1a1a2e;--sidebar-text: #e2e8f0;--sidebar-text-muted: #94a3b8;--sidebar-active-bg: rgba(59, 130, 246, .15);--sidebar-active-text: #3b82f6;--sidebar-hover-bg: rgba(255, 255, 255, .05);--sidebar-width: 240px;--sidebar-collapsed-width: 60px;--tab-bar-bg: #fff;--tab-bar-border: #e2e8f0;--tab-bar-text: #64748b;--tab-bar-active: #3b82f6;--tab-bar-height: 56px;--top-bar-height: 56px;--top-bar-bg: #fff;--top-bar-border: #e2e8f0;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--space-7: 48px;--space-8: 64px;--font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;--font-mono: "SF Mono", SFMono-Regular, ui-monospace, "DejaVu Sans Mono", Menlo, Consolas, monospace;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--leading-tight: 1.25;--leading-normal: 1.5;--leading-relaxed: 1.75;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-full: 9999px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -2px rgba(0, 0, 0, .1);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -4px rgba(0, 0, 0, .1);--transition-fast: .15s ease;--transition-normal: .25s ease;--z-dropdown: 100;--z-sticky: 200;--z-modal: 300;--z-toast: 400}[data-theme=dark]{--color-bg: #0f0f23;--color-surface: #1a1a2e;--color-surface-raised: #242442;--color-surface-overlay: rgba(0, 0, 0, .7);--color-text: #e2e8f0;--color-text-secondary: #94a3b8;--color-text-muted: #64748b;--color-text-inverse: #0f0f23;--color-primary: #60a5fa;--color-primary-hover: #93bbfd;--color-primary-light: rgba(59, 130, 246, .2);--color-primary-text: #0f0f23;--color-success: #4ade80;--color-success-light: rgba(34, 197, 94, .15);--color-success-text: #86efac;--color-warning: #fbbf24;--color-warning-light: rgba(245, 158, 11, .15);--color-warning-text: #fde68a;--color-error: #f87171;--color-error-light: rgba(239, 68, 68, .15);--color-error-text: #fca5a5;--color-info: #60a5fa;--color-info-light: rgba(59, 130, 246, .15);--color-info-text: #93c5fd;--color-border: #2d2d4a;--color-border-strong: #3d3d5c;--status-pending: #fbbf24;--status-pending-bg: rgba(245, 158, 11, .15);--status-processing: #60a5fa;--status-processing-bg: rgba(59, 130, 246, .15);--status-completed: #4ade80;--status-completed-bg: rgba(34, 197, 94, .15);--status-error: #f87171;--status-error-bg: rgba(239, 68, 68, .15);--status-export-failed: #fb923c;--status-export-failed-bg: rgba(249, 115, 22, .15);--sidebar-bg: #0a0a1a;--sidebar-text: #e2e8f0;--sidebar-text-muted: #64748b;--sidebar-active-bg: rgba(96, 165, 250, .15);--sidebar-active-text: #60a5fa;--sidebar-hover-bg: rgba(255, 255, 255, .05);--tab-bar-bg: #1a1a2e;--tab-bar-border: #2d2d4a;--tab-bar-text: #94a3b8;--tab-bar-active: #60a5fa;--top-bar-bg: #1a1a2e;--top-bar-border: #2d2d4a;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .4), 0 2px 4px -2px rgba(0, 0, 0, .3);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .5), 0 4px 6px -4px rgba(0, 0, 0, .4)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-family:var(--font-family);font-size:16px;line-height:var(--leading-normal);color:var(--color-text);background-color:var(--color-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{min-height:100vh;min-height:100dvh;overflow:hidden}#root{min-height:100vh;min-height:100dvh}.app-layout{display:grid;height:100vh;height:100dvh;overflow:hidden}.app-layout{grid-template-rows:var(--top-bar-height) 1fr var(--tab-bar-height);grid-template-columns:1fr;grid-template-areas:"topbar" "main" "tabbar"}.top-bar{grid-area:topbar;display:flex;align-items:center;justify-content:space-between;padding:0 var(--space-4);background-color:var(--top-bar-bg);border-bottom:1px solid var(--top-bar-border);height:var(--top-bar-height);position:sticky;top:0;z-index:var(--z-sticky)}.top-bar__title{font-size:var(--text-lg);font-weight:var(--font-weight-semibold);color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.top-bar__status{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--color-text-secondary)}.top-bar__status-dot{width:8px;height:8px;border-radius:var(--radius-full);background-color:var(--color-error);flex-shrink:0}.top-bar__status-dot--connected{background-color:var(--color-success)}.top-bar__actions{display:flex;align-items:center;gap:var(--space-2)}.sidebar{display:none;grid-area:sidebar;background-color:var(--sidebar-bg);color:var(--sidebar-text);overflow-y:auto;overflow-x:hidden;flex-direction:column}.sidebar__header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4);height:var(--top-bar-height);border-bottom:1px solid rgba(255,255,255,.08)}.sidebar__logo{font-size:var(--text-lg);font-weight:var(--font-weight-bold);color:var(--sidebar-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar__toggle{display:none;background:none;border:none;color:var(--sidebar-text-muted);cursor:pointer;padding:var(--space-1);border-radius:var(--radius-sm);font-size:var(--text-lg);line-height:1;transition:color var(--transition-fast)}.sidebar__toggle:hover{color:var(--sidebar-text)}.sidebar__nav{flex:1;padding:var(--space-3) 0;display:flex;flex-direction:column;gap:var(--space-1)}.sidebar__link{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);color:var(--sidebar-text-muted);text-decoration:none;font-size:var(--text-sm);font-weight:var(--font-weight-medium);border-radius:0;transition:background-color var(--transition-fast),color var(--transition-fast);white-space:nowrap;overflow:hidden}.sidebar__link:hover{background-color:var(--sidebar-hover-bg);color:var(--sidebar-text)}.sidebar__link--active,.sidebar__link.active{background-color:var(--sidebar-active-bg);color:var(--sidebar-active-text)}.sidebar__link-icon{width:20px;height:20px;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:var(--text-base)}.sidebar__link-label{overflow:hidden;text-overflow:ellipsis}.sidebar__footer{padding:var(--space-3) var(--space-4);border-top:1px solid rgba(255,255,255,.08);font-size:var(--text-xs);color:var(--sidebar-text-muted)}.main-content{grid-area:main;overflow-y:auto;overflow-x:hidden;padding:var(--space-4);background-color:var(--color-bg)}.main-content__inner{max-width:1200px;margin:0 auto;width:100%}.bottom-tab-bar{grid-area:tabbar;display:flex;align-items:center;justify-content:space-around;background-color:var(--tab-bar-bg);border-top:1px solid var(--tab-bar-border);height:var(--tab-bar-height);padding-bottom:env(safe-area-inset-bottom,0);position:fixed;bottom:0;left:0;right:0;z-index:var(--z-sticky)}.bottom-tab-bar__item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;flex:1;padding:var(--space-1) 0;color:var(--tab-bar-text);text-decoration:none;font-size:var(--text-xs);font-weight:var(--font-weight-medium);transition:color var(--transition-fast);position:relative;-webkit-tap-highlight-color:transparent;min-height:44px}.bottom-tab-bar__item:hover,.bottom-tab-bar__item--active,.bottom-tab-bar__item.active{color:var(--tab-bar-active)}.bottom-tab-bar__icon{font-size:var(--text-xl);line-height:1}.bottom-tab-bar__label{line-height:1}.bottom-tab-bar__more-menu{position:absolute;bottom:calc(var(--tab-bar-height) + var(--space-2));right:var(--space-2);background-color:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);min-width:160px;z-index:var(--z-dropdown);padding:var(--space-2) 0;display:none}.bottom-tab-bar__more-menu--open{display:block}.bottom-tab-bar__more-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);color:var(--color-text);text-decoration:none;font-size:var(--text-sm);transition:background-color var(--transition-fast)}.bottom-tab-bar__more-item:hover{background-color:var(--color-surface)}.bottom-tab-bar__more-item.active{color:var(--color-primary)}@media(min-width:768px){.app-layout{grid-template-rows:1fr;grid-template-columns:var(--sidebar-collapsed-width) 1fr;grid-template-areas:"sidebar main"}.app-layout--sidebar-expanded{grid-template-columns:var(--sidebar-width) 1fr}.top-bar{display:none}.sidebar{display:flex;width:var(--sidebar-collapsed-width);transition:width var(--transition-normal)}.app-layout--sidebar-expanded .sidebar{width:var(--sidebar-width)}.sidebar__toggle{display:flex;align-items:center;justify-content:center}.sidebar__link{justify-content:center;padding:var(--space-3)}.sidebar__link-label,.sidebar__logo,.sidebar__footer{display:none}.app-layout--sidebar-expanded .sidebar__link{justify-content:flex-start;padding:var(--space-3) var(--space-4)}.app-layout--sidebar-expanded .sidebar__link-label,.app-layout--sidebar-expanded .sidebar__logo,.app-layout--sidebar-expanded .sidebar__footer{display:block}.bottom-tab-bar{display:none}.main-content{padding:var(--space-5)}}@media(min-width:1024px){.app-layout{grid-template-columns:var(--sidebar-width) 1fr}.sidebar{width:var(--sidebar-width)}.sidebar__toggle{display:none}.sidebar__link{justify-content:flex-start;padding:var(--space-3) var(--space-4)}.sidebar__link-label,.sidebar__logo,.sidebar__footer{display:block}.main-content{padding:var(--space-6)}}.page-header{margin-bottom:var(--space-5)}.page-header__title{font-size:var(--text-2xl);font-weight:var(--font-weight-bold);color:var(--color-text)}.page-header__description{margin-top:var(--space-1);font-size:var(--text-sm);color:var(--color-text-secondary)}.card{background-color:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-4);transition:box-shadow var(--transition-fast)}.card--clickable{cursor:pointer}.card--clickable:hover{box-shadow:var(--shadow-md)}.stat-card{background-color:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-2);transition:box-shadow var(--transition-fast);cursor:default}.stat-card--clickable{cursor:pointer}.stat-card--clickable:hover{box-shadow:var(--shadow-md)}.stat-card__header{display:flex;align-items:center;justify-content:space-between}.stat-card__icon{width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md);background-color:var(--color-primary-light);color:var(--color-primary);font-size:var(--text-xl);flex-shrink:0}.stat-card__trend{font-size:var(--text-xs);font-weight:var(--font-weight-medium);padding:2px var(--space-2);border-radius:var(--radius-full)}.stat-card__trend--up{color:var(--color-success-text);background-color:var(--color-success-light)}.stat-card__trend--down{color:var(--color-error-text);background-color:var(--color-error-light)}.stat-card__value{font-size:var(--text-2xl);font-weight:var(--font-weight-bold);color:var(--color-text);line-height:var(--leading-tight)}.stat-card__title{font-size:var(--text-sm);color:var(--color-text-secondary);font-weight:var(--font-weight-medium)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:44px;padding:var(--space-2) var(--space-4);font-family:var(--font-family);font-size:var(--text-sm);font-weight:var(--font-weight-medium);line-height:var(--leading-normal);border:1px solid var(--color-border);border-radius:var(--radius-md);background-color:var(--color-surface-raised);color:var(--color-text);cursor:pointer;transition:background-color var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast),color var(--transition-fast);text-decoration:none;white-space:nowrap;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}.btn:hover{background-color:var(--color-surface);border-color:var(--color-border-strong)}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-primary{background-color:var(--color-primary);border-color:var(--color-primary);color:var(--color-primary-text)}.btn-primary:hover{background-color:var(--color-primary-hover);border-color:var(--color-primary-hover)}.btn-secondary{background-color:transparent;border-color:var(--color-border);color:var(--color-text)}.btn-secondary:hover{background-color:var(--color-surface)}.btn-danger{background-color:var(--color-error);border-color:var(--color-error);color:#fff}.btn-danger:hover{background-color:#dc2626;border-color:#dc2626}.btn-icon{min-height:44px;min-width:44px;padding:var(--space-2);border-radius:var(--radius-md)}.btn--sm{min-height:36px;padding:var(--space-1) var(--space-3);font-size:var(--text-xs)}.btn--lg{min-height:52px;padding:var(--space-3) var(--space-5);font-size:var(--text-base)}.form-group{display:flex;flex-direction:column;gap:var(--space-1);margin-bottom:var(--space-4)}.form-label{font-size:var(--text-sm);font-weight:var(--font-weight-medium);color:var(--color-text)}.form-label--required:after{content:" *";color:var(--color-error)}.form-input,.form-select{min-height:44px;padding:var(--space-2) var(--space-3);font-family:var(--font-family);font-size:var(--text-base);color:var(--color-text);background-color:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:var(--radius-md);transition:border-color var(--transition-fast),box-shadow var(--transition-fast);width:100%}.form-input:focus,.form-select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light)}.form-input::placeholder{color:var(--color-text-muted)}.form-input--error{border-color:var(--color-error)}.form-input--error:focus{box-shadow:0 0 0 3px var(--color-error-light)}.form-hint{font-size:var(--text-xs);color:var(--color-text-muted)}.form-error{font-size:var(--text-xs);color:var(--color-error)}.toast-container{position:fixed;z-index:var(--z-toast);display:flex;flex-direction:column;gap:var(--space-2);pointer-events:none;bottom:calc(var(--tab-bar-height) + var(--space-3));left:var(--space-3);right:var(--space-3);align-items:center}@media(min-width:768px){.toast-container{bottom:var(--space-5);left:auto;right:var(--space-5);align-items:flex-end;width:380px}}.toast{pointer-events:auto;display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background-color:var(--color-surface-raised);border:1px solid var(--color-border);box-shadow:var(--shadow-lg);font-size:var(--text-sm);color:var(--color-text);max-width:100%;animation:toast-in .25s ease forwards}.toast--exiting{animation:toast-out .2s ease forwards}@keyframes toast-in{0%{opacity:0;transform:translateY(12px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes toast-out{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(12px) scale(.96)}}.toast__icon{font-size:var(--text-lg);line-height:1;flex-shrink:0;margin-top:1px}.toast__content{flex:1;min-width:0}.toast__title{font-weight:var(--font-weight-semibold);margin-bottom:2px}.toast__message{color:var(--color-text-secondary)}.toast__close{background:none;border:none;color:var(--color-text-muted);cursor:pointer;padding:var(--space-1);font-size:var(--text-base);line-height:1;flex-shrink:0;border-radius:var(--radius-sm);transition:color var(--transition-fast)}.toast__close:hover{color:var(--color-text)}.toast-success{border-left:3px solid var(--color-success)}.toast-success .toast__icon{color:var(--color-success)}.toast-error{border-left:3px solid var(--color-error)}.toast-error .toast__icon{color:var(--color-error)}.toast-warning{border-left:3px solid var(--color-warning)}.toast-warning .toast__icon{color:var(--color-warning)}.toast-info{border-left:3px solid var(--color-info)}.toast-info .toast__icon{color:var(--color-info)}.dialog-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background-color:var(--color-surface-overlay);z-index:var(--z-modal);display:flex;align-items:center;justify-content:center;padding:var(--space-4);animation:overlay-in .2s ease}@keyframes overlay-in{0%{opacity:0}to{opacity:1}}.dialog{background-color:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:var(--space-5);max-width:440px;width:100%;max-height:90vh;overflow-y:auto;animation:dialog-in .25s ease}@keyframes dialog-in{0%{opacity:0;transform:scale(.95) translateY(8px)}to{opacity:1;transform:scale(1) translateY(0)}}.dialog__title{font-size:var(--text-lg);font-weight:var(--font-weight-semibold);color:var(--color-text);margin-bottom:var(--space-2)}.dialog__message{font-size:var(--text-sm);color:var(--color-text-secondary);line-height:var(--leading-relaxed);margin-bottom:var(--space-5)}.dialog__actions{display:flex;justify-content:flex-end;gap:var(--space-3)}.spinner{display:inline-block;border:2px solid var(--color-border);border-top-color:var(--color-primary);border-radius:var(--radius-full);animation:spin .6s linear infinite}.spinner--sm{width:16px;height:16px;border-width:2px}.spinner--md{width:24px;height:24px;border-width:2px}.spinner--lg{width:40px;height:40px;border-width:3px}.spinner-fullpage{display:flex;align-items:center;justify-content:center;min-height:200px;width:100%}@keyframes spin{to{transform:rotate(360deg)}}.badge{display:inline-flex;align-items:center;gap:var(--space-1);padding:2px var(--space-2);font-size:var(--text-xs);font-weight:var(--font-weight-semibold);border-radius:var(--radius-full);white-space:nowrap;line-height:var(--leading-normal);background-color:var(--color-surface);color:var(--color-text-secondary)}.badge-pending{background-color:var(--status-pending-bg);color:var(--status-pending)}.badge-processing{background-color:var(--status-processing-bg);color:var(--status-processing)}.badge-completed{background-color:var(--status-completed-bg);color:var(--status-completed)}.badge-error{background-color:var(--status-error-bg);color:var(--status-error)}.badge-export-failed{background-color:var(--status-export-failed-bg);color:var(--status-export-failed)}.badge-storage{background-color:var(--color-primary-light, rgba(59, 130, 246, .1));color:var(--color-primary, #3b82f6)}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:var(--space-7) var(--space-4);min-height:200px}.empty-state__icon{font-size:48px;line-height:1;margin-bottom:var(--space-4);color:var(--color-text-muted);opacity:.6}.empty-state__title{font-size:var(--text-lg);font-weight:var(--font-weight-semibold);color:var(--color-text);margin-bottom:var(--space-2)}.empty-state__description{font-size:var(--text-sm);color:var(--color-text-secondary);max-width:360px;line-height:var(--leading-relaxed);margin-bottom:var(--space-5)}.scan-item{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-4);background-color:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:var(--radius-md);transition:box-shadow var(--transition-fast);cursor:pointer;text-decoration:none;color:inherit}.scan-item:hover{box-shadow:var(--shadow-md)}.scan-item__preview{width:56px;height:56px;border-radius:var(--radius-sm);background-color:var(--color-surface);display:flex;align-items:center;justify-content:center;flex-shrink:0;overflow:hidden;font-size:var(--text-2xl);color:var(--color-text-muted)}.scan-item__preview img{width:100%;height:100%;object-fit:cover}.scan-item__body{flex:1;min-width:0}.scan-item__title{font-size:var(--text-sm);font-weight:var(--font-weight-semibold);color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.scan-item__meta{display:flex;align-items:center;gap:var(--space-2) var(--space-3);margin-top:var(--space-1);font-size:var(--text-xs);color:var(--color-text-muted);flex-wrap:wrap}.scan-item__status{flex-shrink:0}@media(max-width:480px){.scan-item{gap:var(--space-3);padding:var(--space-3)}.scan-item__preview{width:44px;height:44px}}.stat-grid{display:grid;gap:var(--space-4);grid-template-columns:1fr}@media(min-width:480px){.stat-grid{grid-template-columns:repeat(2,1fr)}}@media(min-width:1024px){.stat-grid{grid-template-columns:repeat(4,1fr)}}.list-stack{display:flex;flex-direction:column;gap:var(--space-3)}.scrollable{overflow-y:auto;-webkit-overflow-scrolling:touch}.scrollable::-webkit-scrollbar{width:6px}.scrollable::-webkit-scrollbar-track{background:transparent}.scrollable::-webkit-scrollbar-thumb{background-color:var(--color-border);border-radius:var(--radius-full)}.scrollable::-webkit-scrollbar-thumb:hover{background-color:var(--color-border-strong)}@media(max-width:767px){button,a.btn,select,input[type=text],input[type=search],input[type=file],.btn{min-height:44px}.main-content__inner{overflow-x:hidden;word-break:break-word}.main-content{padding-bottom:calc(var(--tab-bar-height, 56px) + env(safe-area-inset-bottom,0px) + var(--space-4))}}button,a,select,input{touch-action:manipulation}.card,.stat-card,.scan-item{overflow:hidden;word-break:break-word}.swipe-compare{position:relative;overflow:hidden;touch-action:none;-webkit-user-select:none;user-select:none;border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-surface);min-height:200px}.swipe-compare__layer{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center}.swipe-compare__layer img{width:100%;height:100%;object-fit:contain;pointer-events:none;-webkit-user-select:none;user-select:none}.swipe-compare__divider{position:absolute;top:0;bottom:0;width:3px;background:var(--color-primary);z-index:2;cursor:ew-resize}.swipe-compare__handle{position:absolute;top:50%;transform:translate(-50%,-50%);width:36px;height:36px;border-radius:var(--radius-full);background:var(--color-primary);border:2px solid white;box-shadow:var(--shadow-md);display:flex;align-items:center;justify-content:center;color:#fff;font-size:var(--text-xs);z-index:3}.swipe-compare__label{position:absolute;top:var(--space-2);padding:2px var(--space-2);font-size:var(--text-xs);font-weight:var(--font-weight-semibold);background:var(--color-surface-overlay);color:#fff;border-radius:var(--radius-sm);z-index:1;pointer-events:none}.swipe-compare__label--left{left:var(--space-2)}.swipe-compare__label--right{right:var(--space-2)}.home-stats{display:flex;gap:var(--space-3);margin-bottom:var(--space-4);overflow-x:auto;-webkit-overflow-scrolling:touch}.home-stat-badge{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:var(--radius-full);white-space:nowrap;flex-shrink:0}.home-stat-badge__icon{font-size:var(--text-base);color:var(--color-primary);display:flex;align-items:center}.home-stat-badge__value{font-size:var(--text-sm);font-weight:var(--font-weight-bold);color:var(--color-text)}.home-stat-badge__label{font-size:var(--text-xs);color:var(--color-text-muted)}.home-actions{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-3);margin-bottom:var(--space-4)}.home-action-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-2);min-height:88px;padding:var(--space-4);background:var(--color-surface-raised);border:2px solid var(--color-border);border-radius:var(--radius-lg);cursor:pointer;transition:border-color var(--transition-fast),background var(--transition-fast),box-shadow var(--transition-fast);-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;font-family:var(--font-family)}.home-action-btn:hover{border-color:var(--color-primary);box-shadow:var(--shadow-md)}.home-action-btn:active{transform:scale(.97)}.home-action-btn--active{border-color:var(--color-primary);background:var(--color-primary-light)}.home-action-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.home-action-btn__icon{font-size:28px;line-height:1;color:var(--color-primary);display:flex;align-items:center;justify-content:center}.home-action-btn--active .home-action-btn__icon{color:var(--color-primary)}.home-action-btn__label{font-size:var(--text-sm);font-weight:var(--font-weight-semibold);color:var(--color-text)}.home-capture{margin-bottom:var(--space-4)}.home-camera-wrapper{position:relative;width:100%;aspect-ratio:4 / 3;background:#000;border-radius:var(--radius-md);overflow:hidden}.home-camera-video{width:100%;height:100%;object-fit:cover;display:block}.home-camera-grid{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:2}.home-camera-grid__line{position:absolute;background:#ffffff4d}.home-camera-grid__line--h1{left:0;right:0;top:33.33%;height:1px}.home-camera-grid__line--h2{left:0;right:0;top:66.66%;height:1px}.home-camera-grid__line--v1{top:0;bottom:0;left:33.33%;width:1px}.home-camera-grid__line--v2{top:0;bottom:0;left:66.66%;width:1px}.home-camera-guide{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:2;display:flex;align-items:center;justify-content:center}.home-camera-guide__inner{position:relative;width:82%;height:82%;display:flex;align-items:center;justify-content:center}.home-camera-guide__corners{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.home-camera-guide__corners path{fill:none;stroke:#ffffffb3;stroke-width:2;vector-effect:non-scaling-stroke}.home-camera-guide__label{color:#fff9;font-size:var(--font-size-sm);text-align:center;text-shadow:0 1px 3px rgba(0,0,0,.6);-webkit-user-select:none;user-select:none}.home-camera-ctrl--active{background:#ffffff40}.home-camera-flash{position:absolute;top:0;right:0;bottom:0;left:0;background:#fff;opacity:.8;z-index:10;animation:scanner-flash .2s ease-out forwards;pointer-events:none}.home-camera-start{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:var(--color-surface-overlay);z-index:5}.home-camera-top{position:absolute;top:0;left:0;right:0;display:flex;align-items:flex-start;justify-content:space-between;padding:var(--space-3);z-index:3;pointer-events:none}.home-camera-counter{background:#0009;color:#fff;padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);font-size:var(--text-sm);font-weight:var(--font-weight-semibold);pointer-events:auto}.home-camera-top-right{display:flex;gap:var(--space-2);pointer-events:auto}.home-camera-ctrl{background:#00000080!important;color:#fff!important;border:none!important;min-height:40px;min-width:40px;font-size:var(--text-lg)}.home-camera-bottom{display:flex;align-items:center;justify-content:center;gap:var(--space-4);padding:var(--space-3) 0}.home-capture-btn{width:64px;height:64px;border-radius:var(--radius-full);background:#fff;border:3px solid var(--color-border-strong);cursor:pointer;display:flex;align-items:center;justify-content:center;padding:4px;transition:transform .1s ease;flex-shrink:0}.home-capture-btn:active{transform:scale(.93)}.home-capture-btn__inner{width:100%;height:100%;border-radius:var(--radius-full);background:#fff;border:2px solid var(--color-text-muted);display:block}.home-send-btn{background:var(--color-success)!important;border-color:var(--color-success)!important;color:#fff!important;font-weight:var(--font-weight-semibold)}.home-dropzone{border:2px dashed var(--color-border-strong);border-radius:var(--radius-lg);padding:var(--space-5) var(--space-4);display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;transition:border-color var(--transition-fast),background var(--transition-fast);background:var(--color-surface);text-align:center;margin-bottom:var(--space-4)}.home-dropzone:hover{border-color:var(--color-primary)}.home-dropzone--active{border-color:var(--color-primary);background:var(--color-primary-light)}.home-dropzone__icon{font-size:36px;line-height:1;margin-bottom:var(--space-2);color:var(--color-text-muted);opacity:.5;display:flex;align-items:center;justify-content:center}.home-dropzone__title{font-size:var(--text-base);font-weight:var(--font-weight-semibold);color:var(--color-text);margin-bottom:var(--space-1)}.home-dropzone__hint{font-size:var(--text-sm);color:var(--color-text-secondary)}.home-pile-section{margin-bottom:var(--space-4);background:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-3)}.home-pile-toolbar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);flex-wrap:wrap;margin-bottom:var(--space-3)}.home-pile-profile{display:flex;align-items:center;gap:var(--space-2)}.home-pile-profile__label{font-size:var(--text-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);white-space:nowrap}.home-pile-profile__select{min-height:36px;padding:var(--space-1) var(--space-3);font-size:var(--text-sm);min-width:120px;width:auto}.home-pile-actions{display:flex;gap:var(--space-2)}.home-pile-swap-hint{font-size:var(--text-sm);color:var(--color-info);background:var(--color-info-light);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);text-align:center;margin-bottom:var(--space-3)}.home-pile{display:flex;gap:var(--space-2);overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;padding-bottom:var(--space-1)}.home-pile-thumb{position:relative;flex-shrink:0;cursor:pointer;transition:box-shadow var(--transition-fast),border-color var(--transition-fast)}.home-pile-thumb--selected{box-shadow:0 0 0 2px var(--color-primary);border-radius:var(--radius-sm)}.home-pile-thumb--error{opacity:.6;cursor:default}.home-pile-thumb__img{width:64px;height:64px;border-radius:var(--radius-sm);overflow:hidden;background:var(--color-surface);border:2px solid var(--color-border)}.home-pile-thumb__img img{width:100%;height:100%;object-fit:cover;display:block}.home-pile-thumb__err{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:var(--color-error);font-weight:var(--font-weight-bold);font-size:var(--text-lg)}.home-pile-thumb__index{text-align:center;font-size:var(--text-xs);color:var(--color-text-secondary);margin-top:2px}.home-pile-thumb__delete{position:absolute;top:-6px;right:-6px;width:20px;height:20px;border-radius:var(--radius-full);background:var(--color-error);color:#fff;border:none;cursor:pointer;font-size:12px;line-height:1;display:flex;align-items:center;justify-content:center;padding:0}.home-activity{margin-top:var(--space-4)}.home-section-title{font-size:var(--text-lg);font-weight:var(--font-weight-semibold);margin-bottom:var(--space-3)}.home-sending-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--color-surface-overlay);display:flex;align-items:center;justify-content:center;z-index:var(--z-modal);padding:var(--space-4)}.home-sending-card{background:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-6);max-width:360px;width:100%;text-align:center;box-shadow:var(--shadow-lg)}.home-sending-title{font-size:var(--text-lg);font-weight:var(--font-weight-semibold);color:var(--color-text);margin-bottom:var(--space-3)}.home-sending-step{font-size:var(--text-sm);color:var(--color-text-secondary);margin-bottom:var(--space-2)}.home-sending-progress{font-size:var(--text-sm);color:var(--color-text-muted);margin-top:var(--space-2)}.home-progress-bar{width:100%;height:8px;background:var(--color-surface);border-radius:var(--radius-full);overflow:hidden}.home-progress-bar__inner{height:100%;background:var(--color-primary);border-radius:var(--radius-full);transition:width .3s ease}.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}.export-section{background:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-4);margin-bottom:var(--space-4)}.export-section__title{font-size:var(--text-sm);font-weight:var(--font-weight-semibold);margin-bottom:var(--space-3);text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-secondary)}.export-section__item{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-2) 0;border-bottom:1px solid var(--color-border);font-size:var(--text-sm)}.export-section__item:last-child{border-bottom:none}@keyframes scanner-flash{0%{opacity:.8}to{opacity:0}}.crop-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background-color:#000;z-index:var(--z-modal);display:flex;flex-direction:column;animation:overlay-in .2s ease}.crop-modal-canvas-wrap{flex:1;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;min-height:0}.crop-modal-canvas{display:block;width:100%;height:100%;touch-action:none;cursor:crosshair}.crop-modal-detecting{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#0009;z-index:2;color:#fff}.crop-modal-toolbar{display:flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-3) var(--space-3);background:var(--color-surface-raised);border-top:1px solid var(--color-border);flex-shrink:0;padding-bottom:max(var(--space-3),env(safe-area-inset-bottom))}.crop-modal-queue-badge{font-size:var(--text-xs);color:var(--color-text-muted);padding:var(--space-1) var(--space-2);background:var(--color-bg);border-radius:var(--radius-full)}@media(min-width:1024px){.crop-modal-overlay{padding:var(--space-6);background-color:var(--color-surface-overlay)}.crop-modal-canvas-wrap{border-radius:var(--radius-lg) var(--radius-lg) 0 0;background:#000}.crop-modal-toolbar{border-radius:0 0 var(--radius-lg) var(--radius-lg);gap:var(--space-3);padding:var(--space-4)}}.station-page{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;background:#000;color:#fff;z-index:9999;overflow:hidden}.station-setup{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-6);gap:var(--space-4);text-align:center;background:var(--color-surface);color:var(--color-text)}.station-setup__icon{color:var(--color-primary);margin-bottom:var(--space-2)}.station-setup__title{font-size:var(--text-xl);font-weight:var(--font-weight-bold);margin:0}.station-setup__desc{font-size:var(--text-sm);color:var(--color-text-secondary);max-width:400px;margin:0}.station-setup__hint{font-size:var(--text-xs);color:var(--color-text-muted);max-width:320px;margin:0}.station-topbar{display:flex;align-items:center;justify-content:space-between;padding:var(--space-2) var(--space-3);padding-top:max(var(--space-2),env(safe-area-inset-top));background:#000000b3;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:2;min-height:44px}.station-topbar__left{display:flex;align-items:center;gap:var(--space-2);flex:1;min-width:0}.station-topbar__name{font-size:var(--text-sm);font-weight:var(--font-weight-semibold);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;opacity:.9}.station-topbar__name:hover{opacity:1;text-decoration:underline}.station-topbar__name-input{min-height:28px!important;padding:var(--space-1) var(--space-2)!important;font-size:var(--text-sm)!important;max-width:200px}.station-topbar__right{display:flex;align-items:center;gap:var(--space-2);flex-shrink:0}.station-topbar__badge{font-size:var(--text-xs);padding:2px 6px;border-radius:var(--radius-sm);background:#ffffff26;color:#ffffffb3}.station-topbar__badge--count{background:#3b82f64d;color:#93bbfc}.station-status-dot{width:8px;height:8px;border-radius:50%;background:var(--color-text-muted);flex-shrink:0}.station-status-dot--online{background:var(--color-success);box-shadow:0 0 6px var(--color-success)}.station-viewfinder{flex:1;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;background:#000}.station-video{width:100%;height:100%;object-fit:cover}.station-flash{position:absolute;top:0;right:0;bottom:0;left:0;background:#fff;opacity:.8;animation:station-flash-anim .2s ease-out forwards;pointer-events:none}@keyframes station-flash-anim{0%{opacity:.8}to{opacity:0}}.station-viewfinder__loading{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;color:#fff9;font-size:var(--text-sm)}.station-controls{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-4);padding-bottom:max(var(--space-3),env(safe-area-inset-bottom));background:#000000b3;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:2;gap:var(--space-3)}.station-controls__side{display:flex;align-items:center;gap:var(--space-2);min-width:80px}.station-controls__side--right{justify-content:flex-end}.station-ctrl-btn{width:40px;height:40px;border-radius:var(--radius-full);background:#ffffff26;color:#fff;border:none;display:flex;align-items:center;justify-content:center;font-size:18px;cursor:pointer;transition:background var(--transition-fast)}.station-ctrl-btn:hover{background:#ffffff40}.station-capture-btn{width:64px;height:64px;border-radius:50%;border:3px solid #fff;background:transparent;padding:4px;cursor:pointer;flex-shrink:0;transition:transform var(--transition-fast)}.station-capture-btn:hover{transform:scale(1.05)}.station-capture-btn:active{transform:scale(.95)}.station-capture-btn:disabled{opacity:.5;cursor:not-allowed}.station-capture-btn__inner{display:block;width:100%;height:100%;border-radius:50%;background:#fff;transition:background var(--transition-fast)}.station-capture-btn__inner--busy{background:var(--color-primary)}.station-profile-select{max-width:100px;min-height:32px!important;padding:var(--space-1) var(--space-2)!important;font-size:var(--text-xs)!important;background:#ffffff1a;color:#fff;border-color:#fff3}.station-capture-count{font-size:var(--text-xs);color:#fff9;min-width:20px;text-align:center}.station-error{position:absolute;bottom:100px;left:50%;transform:translate(-50%);padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);background:var(--color-error);color:#fff;font-size:var(--text-sm);z-index:10;max-width:80%;text-align:center;animation:station-error-in .3s ease-out}@keyframes station-error-in{0%{opacity:0;transform:translate(-50%) translateY(10px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.station-card{display:flex;flex-direction:column;gap:var(--space-3)}.station-card__header{display:flex;align-items:center;gap:var(--space-2)}.station-card__name{font-weight:var(--font-weight-semibold);font-size:var(--text-sm);color:var(--color-text)}.station-card__preview{position:relative;width:100%;aspect-ratio:4 / 3;border-radius:var(--radius-sm);overflow:hidden;background:var(--color-surface);display:flex;align-items:center;justify-content:center}.station-card__preview-img{width:100%;height:100%;object-fit:cover}.station-card__no-preview{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);color:var(--color-text-muted);font-size:var(--text-xs)}.station-card__actions{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.station-card__actions .btn{display:inline-flex;align-items:center;gap:4px}.station-card__badge{margin-left:auto;padding:2px 8px;border-radius:var(--radius-full);background:var(--color-primary);color:#fff;font-size:var(--text-xs);font-weight:var(--font-weight-semibold)}.station-card__send-row{display:flex;align-items:center;gap:var(--space-2);padding-top:var(--space-2);border-top:1px solid var(--color-border)}.btn-warning{background:var(--color-warning, #f59e0b);color:#000;border:none}.btn-warning:hover{opacity:.85}.station-pending-strip{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);background:#000000b3;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.station-pending-strip__thumbs{display:flex;gap:var(--space-1);flex:1;overflow-x:auto;align-items:center}.station-pending-strip__thumb{width:40px;height:40px;object-fit:cover;border-radius:var(--radius-sm);border:1px solid rgba(255,255,255,.3);flex-shrink:0}.station-pending-strip__more{color:#fff9;font-size:var(--text-xs);white-space:nowrap;padding:0 var(--space-1)}.station-pending-strip__actions{display:flex;gap:var(--space-2);flex-shrink:0}
