@font-face{font-family:Inter;src:url(../fonts/inter-latin.woff2) format("woff2");font-weight:400 700;font-display:swap}@font-face{font-family:Inter;src:url(../fonts/inter-latin-ext.woff2) format("woff2");font-weight:400 700;font-display:swap;unicode-range:U+0100-024F,U+1E00-1EFF}@font-face{font-family:JetBrains Mono;src:url(../fonts/jetbrains-mono-latin.woff2) format("woff2");font-display:swap}@font-face{font-family:JetBrains Mono;src:url(../fonts/jetbrains-mono-latin-ext.woff2) format("woff2");font-display:swap;unicode-range:U+0100-024F,U+1E00-1EFF}:root{color-scheme:light;--bg-app: #faf8ff;--bg-surface: #f4f2fa;--bg-surface-elevated: #e8e7f0;--bg-surface-card: #eeedf5;--bg-input: #faf8ff;--border-subtle: #c7c5d7;--border-hover: #747487;--border-active: #4d53a0;--text-primary: #1b1b25;--text-secondary: #48495b;--text-muted: var(--text-secondary);--accent-cyan: #5056a5;--accent-blue: var(--accent-cyan);--on-primary: #fff;--primary-container: #e1e0ff;--on-primary-container: #202457;--secondary-container: #e4e3f6;--on-secondary-container: #282943;--error-container: #ffdbdb;--on-error-container: #7d1825;--accent-emerald: #236246;--accent-amber: #745000;--accent-rose: #ad2835;--font-family: Inter, system-ui, sans-serif;--font-mono: "JetBrains Mono", Consolas, ui-monospace, monospace;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 24px;--shadow-card: none;--shadow-elevation: 0 2px 6px #00000014, 0 12px 32px #0000001f}:root[data-theme=dark]{color-scheme:dark;--bg-app: #13131c;--bg-surface: #191923;--bg-surface-elevated: #292935;--bg-surface-card: #20202c;--bg-input: #13131c;--border-subtle: #47475b;--border-hover: #9292a8;--border-active: #c5c7ff;--text-primary: #ebeaf5;--text-secondary: #c4c3d5;--accent-cyan: #c0c3ff;--on-primary: #292e69;--primary-container: #383d80;--on-primary-container: #e2e3ff;--secondary-container: #35364d;--on-secondary-container: #e4e3fa;--error-container: #692632;--on-error-container: #ffdadb;--accent-emerald: #b8eacf;--accent-amber: #ffdf9f;--accent-rose: #ffb3b7;--shadow-elevation: 0 2px 8px #00000040, 0 12px 32px #00000059}*,*:before,*:after{box-sizing:border-box}[hidden]{display:none!important}html,body{margin:0;overscroll-behavior:none}body{background:var(--bg-app);color:var(--text-primary);font:16px/1.5 var(--font-family)}h1,h2,h3,p{margin:0}button,input,select,textarea{font:inherit}a{color:var(--accent-cyan)}code,pre,textarea[data-source]{font-family:var(--font-mono);font-variant-ligatures:none}#app{display:grid;block-size:100vh;block-size:100dvh;grid-template:auto minmax(0,1fr) / 208px minmax(0,1fr);grid-template-areas:"rail bar" "rail content";overflow:hidden}.studio-bar{grid-area:bar;min-block-size:calc(64px + env(safe-area-inset-top,0px));padding:env(safe-area-inset-top,0px) max(24px,env(safe-area-inset-right)) 0 24px;display:flex;gap:12px;align-items:center;background:var(--bg-surface)}.studio-name{font-weight:650}.studio-bar .brand-mark{display:none}.legacy-link{margin-inline-start:auto;border-radius:999px;padding:8px 14px;font-size:13px;text-decoration:none;color:var(--text-secondary);display:grid;place-items:center}.nav-rail{grid-area:rail;display:flex;flex-direction:column;gap:6px;background:var(--bg-surface);padding:calc(18px + env(safe-area-inset-top)) 12px 16px max(12px,env(safe-area-inset-left))}.rail-brand{display:flex;gap:10px;align-items:center;font-size:14px;font-weight:650;padding:0 6px 22px}.rail-brand small{display:block;font-size:11px;color:var(--text-secondary)}.brand-mark{display:grid;place-items:center;width:36px;height:36px;flex:none;border-radius:12px;background:var(--primary-container);color:var(--on-primary-container);font-weight:700}.nav-item{display:flex;gap:12px;align-items:center;min-height:48px;color:var(--text-secondary);padding:4px 12px;text-decoration:none;border-radius:999px}.nav-item-label{font-size:14px;font-weight:600}.nav-icon{display:grid;place-items:center;width:32px;height:32px;flex:none}.nav-item[aria-current=page]{background:var(--secondary-container);color:var(--on-secondary-container)}.content-area{grid-area:content;min-inline-size:0;overflow:auto;scroll-padding:16px}.view-pane{display:none;max-inline-size:1600px;min-block-size:100%;padding:24px max(32px,env(safe-area-inset-right)) max(32px,env(safe-area-inset-bottom)) 32px;margin-inline:auto}.view-pane.active{display:block}.scan-modes{display:inline-flex;padding:4px;gap:4px;border-radius:999px;background:var(--bg-surface-card);margin-block-end:16px}.scan-modes a{border-radius:999px;padding:8px 16px;text-decoration:none;color:var(--text-secondary);font-weight:600;font-size:14px;display:grid;place-items:center}.scan-modes [aria-current]{background:var(--primary-container);color:var(--on-primary-container)}.theme-setting{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin-block-end:16px}.theme-setting div{margin-inline-end:auto}.theme-setting h2{font-size:18px}.theme-setting p,.theme-setting label{font-size:14px;color:var(--text-secondary)}.boot-message,.boot-error{padding:24px}.skip-link{position:fixed;z-index:2000;inset:12px auto auto 12px;translate:0 -200%;padding:8px 12px;background:var(--bg-surface-elevated)}.skip-link:focus{translate:0}button,a,summary,[role=button]{touch-action:manipulation;-webkit-tap-highlight-color:transparent}button,.nav-item,.scan-modes a,.chip-btn{user-select:none;-webkit-touch-callout:none}:where(button,a,summary,input,select,textarea,[tabindex]):focus-visible{outline:2px solid var(--border-active);outline-offset:2px}:where(button,a,summary):not(:disabled):active{filter:brightness(.9)}dialog,.status-popover-panel,.modal-box{overscroll-behavior:contain}@media(hover:hover)and (pointer:fine){.nav-item:hover,.scan-modes a:hover,.legacy-link:hover,.chip-btn:hover,.btn:hover:not(:disabled){box-shadow:inset 0 0 0 100px color-mix(in srgb,currentColor 8%,transparent)}.scans-table tbody tr:hover td{background:var(--secondary-container)}}@media(prefers-reduced-motion:no-preference){.btn-primary:not(:disabled){transition-property:scale,background-color;transition-duration:.15s;transition-timing-function:ease-out}.btn-primary:not(:disabled):active{scale:.96}}@media(max-width:1199px){#app{grid-template-columns:84px minmax(0,1fr)}.nav-item{flex-direction:column;justify-content:center;gap:1px;padding:2px;border-radius:16px}.nav-item-label{font-size:11px}.rail-brand{justify-content:center;padding-inline:0}.rail-brand>:nth-child(2){display:none}.view-pane{padding-inline:24px}}@media(max-width:599px){#app{grid-template:auto minmax(0,1fr) auto / minmax(0,1fr);grid-template-areas:"bar" "content" "rail"}.studio-bar{min-block-size:calc(56px + env(safe-area-inset-top));padding-inline:max(16px,env(safe-area-inset-left)) max(16px,env(safe-area-inset-right))}.studio-bar .brand-mark{display:grid;width:30px;height:30px;border-radius:10px}.legacy-link{min-height:48px;padding-inline:8px}.nav-rail{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;padding:4px max(8px,env(safe-area-inset-right)) calc(4px + env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left))}.rail-brand{display:none}.nav-item{min-height:56px}.nav-icon{width:min(100%,64px);border-radius:999px}.nav-item[aria-current]{background:transparent}.nav-item[aria-current] .nav-icon{background:var(--secondary-container)}.view-pane{padding:16px max(16px,env(safe-area-inset-right)) 24px max(16px,env(safe-area-inset-left))}.scan-modes a{min-height:48px}}@media(max-height:479px){.studio-bar{min-block-size:calc(48px + env(safe-area-inset-top))}.rail-brand{padding-block-end:4px}.view-pane{padding-block-start:12px}}.page-header{margin-bottom:12px;padding-bottom:10px;border-bottom:1px solid var(--border-subtle);display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px}.page-title{font-size:20px;font-weight:600;color:var(--text-primary);letter-spacing:-.01em}.page-subtitle{font-size:12px;color:var(--text-secondary);margin-top:2px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:5px 12px;border-radius:var(--radius-md);font-size:14px;font-weight:500;font-family:inherit;border:1px solid var(--border-subtle);background:var(--bg-surface-elevated);color:var(--text-primary);cursor:pointer;transition:background .1s ease,border-color .1s ease;user-select:none;text-decoration:none}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--accent-blue);border-color:transparent;color:var(--on-primary)}.btn-accent{background:var(--primary-container);border-color:transparent;color:var(--on-primary-container)}.btn-danger{background:var(--error-container);border-color:transparent;color:var(--on-error-container)}.btn-sm{padding:3px 9px;font-size:12px}.card{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:14px;box-shadow:var(--shadow-card)}.bottom-bar{position:relative;flex:0 0 auto;min-height:42px;background-color:var(--bg-surface);border-top:1px solid var(--border-subtle);display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;padding:0 12px;z-index:20;font-size:12px;gap:8px}.bottom-bar-left,.bottom-bar-center,.bottom-bar-right{display:flex;align-items:center;gap:8px;min-width:0}.bottom-bar-right{justify-content:flex-end}.bottom-bar [hidden]{display:none}.bottom-bar .status-badge{white-space:nowrap}.status-storage{max-width:min(30vw,180px)}.status-storage strong,#status-conn-text{overflow:hidden;text-overflow:ellipsis}#status-conn-badge{max-width:100%;cursor:pointer}.status-icon{min-width:24px;color:var(--accent-amber)}.status-popover{min-width:0}.status-popover>summary{list-style:none}.status-popover>summary::-webkit-details-marker{display:none}.status-popover-panel{position:absolute;inset:auto auto calc(100% + 6px) 12px;width:min(375px,calc(100vw - 24px));max-height:70dvh;overflow:auto;padding:12px;display:grid;gap:8px;background:var(--bg-surface-elevated);border:1px solid var(--border-hover);border-radius:var(--radius-xl);box-shadow:var(--shadow-elevation)}.status-menu-items,.status-help-actions{display:flex;flex-wrap:wrap;gap:6px}.status-popover-panel>button{justify-self:start}.status-popover-panel p,.status-popover-panel span{overflow-wrap:anywhere}.setup-command{display:block;user-select:all;overflow-wrap:anywhere;padding:6px 8px;background:var(--bg-input);border-radius:var(--radius-sm);font:12px var(--font-mono)}.winusb-settings,.reader-help{display:grid;gap:8px;padding:10px 12px;border:1px solid var(--border-subtle);border-radius:var(--radius-md);font-size:13px}.reader-help{margin-bottom:12px}.reader-help:not([open])>:not(summary){display:none}.status-badge{display:inline-flex;align-items:center;gap:6px;padding:3px 8px;border-radius:var(--radius-sm);background:var(--bg-input);border:1px solid var(--border-subtle);font-size:11px;font-weight:500;font-family:var(--font-mono)}.badge-dot{width:7px;height:7px;border-radius:50%;background:var(--text-muted)}.badge-dot.online{background:var(--accent-emerald);box-shadow:0 0 6px var(--accent-emerald)}.badge-dot.warning{background:var(--accent-amber)}.badge-dot.error{background:var(--accent-rose)}.badge-dot.busy{background:var(--accent-cyan)}.scanner-workspace{display:grid;grid-template-columns:minmax(0,1fr) clamp(280px,29vw,420px);gap:14px;height:calc(100% - 125px);min-height:520px}.scanner-workspace:has(>.scanner-preview:not([open])){grid-template-columns:minmax(0,1fr) auto}.scanner-preview{min-width:0;align-self:start;border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background:var(--bg-surface)}.scanner-preview>summary,.scanner-save-options>summary,.reader-help>summary{padding:6px 10px;cursor:pointer;font-size:13px}.scanner-save-options{border:1px solid var(--border-subtle);border-radius:var(--radius-md)}.scanner-save-options-fields,.scanner-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.scanner-save-options-fields{padding:0 10px 8px}#scanner-eject-status:empty{display:none}#scanner-eject-status,#scanner-usb-message{color:var(--text-secondary);font-size:12px}.matrix-canvas-wrapper{background:var(--bg-surface);border-top:1px solid var(--border-subtle);padding:12px;display:flex;flex-direction:column;align-items:center;overflow:auto}.matrix-canvas-wrapper canvas{max-width:100%;background:#0b0f17;border-radius:var(--radius-sm);border:1px solid var(--border-subtle)}.scanner-feed-card{min-width:0;display:flex;flex-direction:column;gap:10px;background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:12px;height:100%;overflow:hidden}.scans-table-container{flex:1;overflow:auto;border:1px solid var(--border-subtle);border-radius:var(--radius-sm);background:var(--bg-input)}table.scans-table{width:100%;border-collapse:collapse;font-size:12px;font-family:var(--font-mono);font-variant-numeric:tabular-nums}table.scans-table th{position:sticky;top:0;background:var(--bg-surface-elevated);padding:6px 10px;text-align:left;border-bottom:1px solid var(--border-subtle);color:var(--text-secondary);font-weight:600;font-size:11px;z-index:5}table.scans-table td{padding:5px 10px;border-bottom:1px solid var(--border-subtle);color:var(--text-primary);white-space:nowrap}.photo-omr-container{display:flex;gap:14px;height:calc(100% - 60px)}.photo-canvas-area{flex:1;background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;min-height:420px}.photo-canvas-area canvas{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain}.settings-grid-2col{display:grid;grid-template-columns:1fr 1fr;gap:16px}.fmt-details-grid{display:grid;grid-template-columns:2fr 1fr;gap:12px}.photo-tuning-drawer{width:320px;background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:14px;display:flex;flex-direction:column;gap:12px;overflow-y:auto}.slider-group{display:flex;flex-direction:column;gap:4px}.slider-label{display:flex;justify-content:space-between;font-size:11px;color:var(--text-secondary)}.slider-value{font-family:var(--font-mono);color:var(--accent-cyan)}input[type=range]{accent-color:var(--accent-cyan);width:100%}.fmt-designer-container{display:grid;grid-template-columns:1fr 340px;gap:14px;height:calc(100% - 60px)}.fmt-grid-area{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:14px;display:flex;flex-direction:column;align-items:center;overflow:auto}.fmt-inspector-card{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:14px;display:flex;flex-direction:column;gap:10px;overflow-y:auto}.form-group{display:flex;flex-direction:column;gap:4px}.form-label{font-size:11px;font-weight:500;color:var(--text-secondary)}.form-input,.form-select{background:var(--bg-input);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:6px 10px;color:var(--text-primary);font-size:12px;outline:none;font-family:inherit}.form-input:focus,.form-select:focus{border-color:var(--accent-cyan)}.chip-btn-group{display:flex;flex-wrap:wrap;gap:4px}.chip-btn{padding:3px 8px;border-radius:var(--radius-sm);background:var(--bg-surface-elevated);border:1px solid var(--border-subtle);color:var(--text-secondary);font-size:11px;font-family:var(--font-mono);cursor:pointer}.chip-btn.active{background:#0ea5e929;border-color:var(--accent-cyan);color:var(--accent-cyan)}.diag-log-console{max-height:290px;overflow-y:auto;background:var(--bg-input);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:11px}.diag-log-row{padding:5px 10px;border-bottom:1px solid var(--border-subtle)}.diag-log-row:last-child{border-bottom:none}.diag-log-main{display:flex;align-items:center;gap:8px}.diag-time{color:var(--text-muted);white-space:nowrap}.diag-badge{font-size:10px;font-weight:700;padding:1px 5px;border-radius:2px;min-width:42px;text-align:center}.diag-level-ok{background:#10b98129;color:var(--accent-emerald)}.diag-level-info{background:#38bdf826;color:var(--accent-cyan)}.diag-level-warn{background:#f59e0b29;color:var(--accent-amber)}.diag-level-error{background:#f43f5e2e;color:var(--accent-rose)}.diag-cat{color:var(--text-secondary);font-weight:600;white-space:nowrap}.diag-summary{color:var(--text-primary);flex:1;overflow:hidden;text-overflow:ellipsis}.diag-toggle-btn{background:var(--bg-surface-elevated);border:1px solid var(--border-subtle);color:var(--accent-cyan);font-family:var(--font-mono);font-size:10px;padding:1px 6px;border-radius:2px;cursor:pointer}.diag-details-pre{margin-top:6px;padding:8px;background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);color:var(--text-primary);font-size:10px;overflow-x:auto;user-select:text}.modal-overlay{position:fixed;inset:0;background:#000000b8;display:flex;align-items:center;justify-content:center;z-index:1000;opacity:0;pointer-events:none;transition:opacity .12s ease}.modal-overlay.active{opacity:1;pointer-events:auto}.modal-box{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:18px;width:90%;max-width:540px;box-shadow:var(--shadow-elevation)}::-webkit-scrollbar{width:7px;height:7px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-hover);border-radius:3px}.page-header{border:0;gap:12px;padding:0;margin-block-end:16px}.page-title{font-size:30px;font-weight:650;letter-spacing:-.025em}.page-subtitle,.form-label{font-size:14px}.btn{min-height:40px;border-radius:999px;padding-inline:16px}.btn-sm{min-height:36px;padding-inline:12px;font-size:13px}.btn:focus-visible,.form-input:focus-visible,.form-select:focus-visible{outline:2px solid var(--border-active);outline-offset:2px}.card,.scanner-feed-card,.scanner-preview,.photo-canvas-area,.photo-tuning-drawer,.fmt-grid-area,.fmt-inspector-card{border-color:transparent;padding:16px}.scanner-preview{padding:0}.card,.scanner-feed-card,.photo-tuning-drawer,.fmt-inspector-card{background:var(--bg-surface-card)}.form-input,.form-select{min-width:0;max-width:100%;min-height:40px;font-size:16px;border-color:var(--border-hover)}.settings-grid-2col,.fmt-details-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.bottom-bar{border:0;border-radius:var(--radius-md);margin-block:0 16px;padding:8px 12px;grid-template-columns:minmax(0,1fr) auto}.status-badge{font-family:inherit;font-size:13px;padding:6px 10px}.status-popover-panel{inset:calc(100% + 6px) auto auto 0;max-height:64dvh}.device-sensors summary{padding-block:8px;cursor:pointer}.device-sensors .bottom-bar-right{display:flex;justify-content:flex-start;flex-wrap:wrap}.chip-btn.active{background:var(--primary-container);color:var(--on-primary-container)}.modal-overlay:not(.active){visibility:hidden}.modal-overlay{padding:max(16px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left))}.modal-box{max-block-size:100%;overflow:auto}#view-scanner,#view-photo-omr,#view-fmt-designer,#view-settings{min-width:0}.diag-log-main{flex-wrap:wrap}#view-settings :not(pre)>code{overflow-wrap:anywhere}.form-group{min-width:0}@media(max-width:1023px){.scanner-workspace,.scanner-workspace:has(>.scanner-preview:not([open])){grid-template-columns:minmax(0,1fr);height:auto;min-height:0}.scanner-feed-card{min-height:300px;height:auto}.scans-table-container{max-block-size:52dvh}.photo-omr-container,.fmt-designer-container{height:auto}.settings-grid-2col{grid-template-columns:minmax(0,1fr)}.bottom-bar{grid-template-columns:minmax(0,1fr) auto}.bottom-bar-right{grid-column:1 / -1;justify-content:flex-start;flex-wrap:wrap}}@media(max-width:599px){.page-title{font-size:24px}.bottom-bar{display:flex;flex-wrap:wrap}.bottom-bar-center{display:none}.btn,.chip-btn,.status-popover>summary{min-height:48px}.btn-primary{min-height:52px}.photo-omr-container,.fmt-designer-container{display:flex;flex-direction:column}.photo-canvas-area{min-height:0}.photo-tuning-drawer{width:100%}.form-input,.form-select,textarea,[contenteditable=true]{font-size:16px!important}#view-settings .form-group{flex-basis:100%}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;transition-duration:.001ms!important}}.photo-flow [hidden],.scanner-flow [hidden]{display:none!important}.workflow-actions,.photo-flow-template,.photo-pagination,.scanner-operation,.scanner-results-head{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.workflow-status{color:var(--text-secondary);overflow-wrap:anywhere}.workflow-status:not(:empty){margin-block:8px}.workflow-kicker{color:var(--accent-cyan);font-size:12px;font-weight:650;letter-spacing:.075em}.photo-flow-template{margin-block-end:16px;min-width:0}.photo-flow-template label{font-size:14px;font-weight:600}.photo-source{max-inline-size:720px;display:grid;gap:12px;padding:clamp(20px,4vw,40px);border-radius:24px;background:var(--bg-surface-card)}.photo-source h2{font-size:clamp(24px,4vw,36px);letter-spacing:-.025em}.photo-source p{max-inline-size:45ch;color:var(--text-secondary)}.photo-source .workflow-actions{margin-block-start:8px}.photo-workspace{display:grid;gap:12px}.photo-step,.scanner-results-head{display:flex;align-items:center;justify-content:space-between;gap:8px 16px}.photo-step h2,.scanner-results-head h2,.fmt-output-panel h2{font-size:18px}.photo-pagination{font-variant-numeric:tabular-nums;flex-wrap:nowrap}.photo-pagination .btn{padding-inline:10px;min-inline-size:44px}.photo-workspace-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(240px,1fr);align-items:start;gap:16px}.photo-flow .photo-canvas-area{display:grid;place-items:center;min-width:0;min-height:0;max-height:none;padding:8px}.photo-flow #photo-grid-canvas{width:auto;max-width:100%;height:min(54dvh,620px);aspect-ratio:3 / 4;object-fit:contain;touch-action:pinch-zoom}.photo-flow[data-photo-stage=review] #photo-grid-canvas{pointer-events:none}.photo-result,.photo-tuning{padding:16px;border-radius:16px;background:var(--bg-surface-card)}.photo-tuning>summary,.settings-section>summary{cursor:pointer;font-weight:600}.photo-tuning-fields{margin-block-start:12px;display:grid;gap:12px}.photo-tuning-fields input[type=range]{width:100%}.photo-tuning-fields .slider-label{gap:8px}.photo-result pre,.scan-detail-data pre{max-width:100%;margin-block-start:8px;overflow:auto;overscroll-behavior:contain;font-family:var(--font-mono);font-size:14px;user-select:text}.photo-result pre{white-space:pre-wrap;overflow-wrap:anywhere}.photo-controls{justify-content:flex-end}.scanner-operation{align-items:end;gap:12px}.scanner-operation .form-group{min-width:min(100%,130px)}.scanner-results-head{flex-wrap:wrap}.scanner-results-head p{color:var(--text-secondary);font-size:14px}.scanner-results-head .btn-icon{display:inline-grid;place-items:center;padding:0;inline-size:44px}.scanner-flow .scanner-feed-card{min-width:0}.scanner-flow .scans-table-container{overscroll-behavior:contain}.scanner-flow #fmt-details-panel>div,.scanner-flow #scanner-fmt-card>div{min-width:0}.scanner-flow .fmt-details-grid>div{min-width:0}.scan-detail-dialog{background:var(--bg-surface);color:var(--text-primary);margin:auto;border:1px solid var(--border-subtle);padding:16px;border-radius:24px;width:min(860px,calc(100% - 32px - env(safe-area-inset-left) - env(safe-area-inset-right)));max-height:calc(100dvh - 32px - env(safe-area-inset-top) - env(safe-area-inset-bottom));overflow:auto;overscroll-behavior:contain}.scan-detail-dialog::backdrop{background:#0000007a}.scan-detail{display:grid;gap:12px}.scan-detail>div{flex-wrap:wrap;gap:8px}.scan-detail-image{display:grid;place-items:center;background:var(--bg-input);border-radius:12px}.scan-detail-image img{max-height:54dvh;object-fit:contain}.scan-detail-image p{padding:16px;color:var(--text-secondary)}.scan-detail-data{min-width:0}.scan-detail-data summary{cursor:pointer}.fmt-flow .fmt-designer-container{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,.8fr);align-items:start;height:auto;gap:16px}.fmt-view-switch{margin-block:8px 16px}.fmt-view-switch .btn[aria-pressed=true]{background:var(--primary-container);color:var(--on-primary-container)}.fmt-flow[data-fmt-panel=output] .fmt-designer-container{grid-template-columns:minmax(0,1fr)}.fmt-flow[data-fmt-panel=output] :is(.fmt-grid-area,.fmt-inspector-card){display:none}.fmt-flow:not([data-fmt-panel=output]) .fmt-output-panel{display:none}.fmt-flow .fmt-grid-area,.fmt-flow .fmt-inspector-card{min-width:0;width:100%;max-height:none}.fmt-flow #fmt-designer-canvas{max-width:100%;height:auto;border-radius:12px;cursor:crosshair;touch-action:pinch-zoom}.fmt-flow .fmt-grid-edit{display:none}.fmt-coordinates{min-width:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:12px;border:1px solid var(--border-subtle);border-radius:12px}.fmt-coordinates label{display:grid;gap:4px;font-size:14px}.fmt-coordinates input{width:100%}.fmt-output-panel{display:grid;gap:12px}.fmt-output-panel textarea{width:100%;min-height:250px;padding:12px;border:1px solid var(--border-subtle);border-radius:12px;resize:vertical;font:16px/1.5 var(--font-mono);color:var(--text-primary);background:var(--bg-input);white-space:pre}#fmt-rules-list{display:grid;gap:6px}.fmt-rule-row{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;padding:8px 10px;border-radius:12px;background:var(--bg-input);overflow-wrap:anywhere}.fmt-rule-row small{display:block;color:var(--text-secondary)}.settings-sections{display:grid;gap:10px;max-inline-size:960px}.settings-section.card{min-width:0;padding:0}.settings-section>summary{min-height:52px;padding:14px 16px}.settings-section-body{padding:0 16px 16px;display:grid;gap:12px;min-width:0;overflow-wrap:anywhere}.settings-section-body>.btn{justify-self:start}.settings-storage-badge{display:inline-block;border:1px solid transparent;border-radius:999px;padding:4px 8px;font-size:13px}.settings-storage-facts{display:grid;gap:6px}.settings-storage-facts>div{display:flex;justify-content:space-between;flex-wrap:wrap;gap:4px 12px}.settings-toggle{display:flex;align-items:center;min-height:44px;gap:8px;cursor:pointer}.settings-help{grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr))}.settings-section .setup-command{white-space:normal;overflow-wrap:anywhere}@media(max-width:839px){.fmt-flow .fmt-designer-container{grid-template-columns:minmax(0,1fr)}.fmt-flow[data-fmt-panel=fields] .fmt-grid-area,.fmt-flow[data-fmt-panel=grid] .fmt-inspector-card{display:none}.fmt-flow .fmt-grid-edit{display:inline-flex;margin-block-start:12px}}@media(max-width:599px){.photo-flow-template label{width:100%}.photo-source .workflow-actions{display:grid;grid-template-columns:minmax(0,1fr)}.photo-workspace-grid{grid-template-columns:minmax(0,1fr);gap:8px}.photo-flow[data-photo-stage=review] .photo-canvas-area{display:none}.photo-flow .photo-canvas-area{padding:0}.photo-flow #photo-grid-canvas{height:min(52dvh,450px)}.photo-pagination .btn,.scanner-results-head .btn-icon{min-inline-size:48px}.photo-controls{justify-content:flex-start}.photo-controls .btn-primary{flex:1 0 100%;order:-1}.scanner-flow .scanner-feed-card{min-height:0}.scanner-flow .scanner-operation{align-items:start}.scanner-flow .scanner-operation .form-group{width:100%}.scanner-flow .scanner-operation .scanner-actions{width:100%;flex-wrap:wrap}.scanner-flow .scanner-operation .btn-primary{flex:1 0 100%}.scanner-flow .scans-table th,.scanner-flow .scans-table td{display:none}.scanner-flow .scans-table :is(th,td):is(:nth-child(1),:nth-child(2),:nth-child(8)){display:table-cell}.scanner-flow .scans-table th{white-space:normal}.scanner-flow .scans-table td:nth-child(2){white-space:normal;overflow-wrap:anywhere}}@media(max-height:479px)and (min-width:600px){.photo-workspace-grid{grid-template-columns:minmax(0,1fr) minmax(180px,.65fr)}.photo-flow #photo-grid-canvas{height:min(63dvh,310px)}}.data-panel{min-inline-size:0;margin-block:16px;padding:16px;border-radius:16px;background:var(--color-surface-container-low, var(--bg-card, Canvas))}.data-panel h2{margin:0;font-size:1.125rem}.data-panel p{margin:4px 0 0;color:var(--color-on-surface-variant, var(--text-secondary, CanvasText))}.data-panel>summary{min-block-size:48px;display:list-item;align-content:center;font-weight:600;cursor:pointer}.data-panel[open]>summary{margin-block-end:12px}.data-toolbar,.data-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.data-toolbar{justify-content:space-between;margin-block-end:12px}.data-fields,.data-keys{display:grid;justify-items:start;gap:12px;min-inline-size:0}.data-fields label,.data-keys label{display:grid;gap:4px;max-inline-size:100%}.data-fields .data-check{display:flex;align-items:center;gap:8px;min-block-size:48px}.data-fields input[type=file],.data-keys input[type=file]{max-inline-size:100%}.data-icon{inline-size:48px;min-block-size:48px;display:inline-grid;place-items:center;padding:0}.data-status{margin-block:8px;overflow-wrap:anywhere}.data-status:empty{margin:0}.data-preview,.data-editor,.data-position{font-family:var(--font-mono, ui-monospace, monospace)}.data-preview{margin-block:12px 0;padding:12px;max-inline-size:100%;max-block-size:20rem;overflow:auto;border-radius:12px;background:var(--color-surface, var(--bg-app, Canvas));white-space:pre;user-select:text}.data-editor{display:grid;grid-template-columns:max-content minmax(0,1fr);margin-block:12px;border:1px solid var(--color-outline, var(--border-subtle, GrayText));border-radius:12px;background:var(--color-surface, var(--bg-app, Canvas));overflow:hidden}.data-editor textarea,.data-gutter{box-sizing:border-box;margin:0;padding:12px;font:inherit;font-size:16px;line-height:24px;font-variant-ligatures:none;white-space:pre}.data-editor textarea{inline-size:100%;block-size:clamp(192px,46dvh,680px);border:0;border-radius:0;background:transparent;color:inherit;resize:none;user-select:text;overscroll-behavior:contain}.data-editor:focus-within{outline:2px solid var(--color-focus, Highlight);outline-offset:2px}.data-editor textarea:focus-visible{outline:none}.data-gutter{block-size:clamp(192px,46dvh,680px);min-inline-size:5ch;text-align:end;color:var(--color-on-surface-variant, var(--text-secondary, GrayText));background:var(--color-surface-container, var(--bg-card, Canvas));overflow:hidden}.data-queue{inline-size:100%;padding-inline-start:20px}.data-queue li{padding-block:8px;overflow-wrap:anywhere}.data-queue .data-actions{margin-block-start:8px}.data-dialog{margin:auto;padding:24px;max-inline-size:min(480px,calc(100% - 32px));border:1px solid var(--color-outline, GrayText);border-radius:24px;background:var(--color-surface, Canvas);color:var(--color-on-surface, CanvasText);overscroll-behavior:contain}.data-dialog::backdrop{background:#0000007a}.data-dialog form{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.data-dialog p{flex-basis:100%;margin:0 0 8px}.data-dialog a{text-decoration:none}@media(max-width:599px){.data-panel{padding:12px}.data-panel .btn,.data-panel select{min-block-size:48px}.data-panel select,.data-panel input[type=file]{font-size:16px}}
