@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}:root:not([data-advanced-mode=true]) [data-advanced]{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}.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}.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,.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,.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}.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))}}@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}}.device-header{margin-inline-start:auto;display:flex;align-items:center;gap:16px}.device-menu{position:relative}.device-avatar{inline-size:48px;block-size:48px;display:grid;place-items:center;border-radius:50%;border:1px solid var(--border-subtle);background:var(--bg-surface-elevated);color:var(--text-secondary);cursor:pointer;list-style:none;overflow:hidden}.device-avatar::-webkit-details-marker{display:none}.device-avatar.is-connected{background:#e0f1e8;color:#236246;border-color:#41a873;box-shadow:0 0 0 3px #41a87335,0 0 14px #41a87355}[data-theme=dark] .device-avatar.is-connected{background:#244b39;color:#b8eacf}.device-avatar-text{font-size:10px;font-weight:650;text-align:center;line-height:1.12;max-inline-size:43px}.device-image{inline-size:100%;block-size:100%;object-fit:contain}.device-avatar-icon{display:grid;place-items:center}.device-panel{position:absolute;z-index:30;inset:calc(100% + 8px) 0 auto auto;inline-size:min(340px,calc(100vw - max(16px,env(safe-area-inset-left)) - max(16px,env(safe-area-inset-right))));max-block-size:calc(100dvh - 76px - env(safe-area-inset-top) - env(safe-area-inset-bottom));overflow:auto;overscroll-behavior:contain;background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:20px;padding:14px;box-shadow:var(--shadow-elevation);font-size:13px}.device-panel-head{display:flex;align-items:center;gap:8px;padding:2px 6px 8px}.device-panel-head span{display:flex;color:var(--accent-cyan)}.device-panel-head strong{font-size:16px}.device-facts{margin:0;display:grid;gap:3px;padding:0 6px 10px}.device-facts div{display:grid;grid-template-columns:110px minmax(0,1fr);gap:8px}.device-facts dt{color:var(--text-secondary)}.device-facts dd{margin:0;font-weight:550;overflow-wrap:anywhere}.header-sensors,.device-panel-sensors{display:flex;align-items:center;flex-wrap:wrap;gap:6px}.header-sensors{display:none}.device-panel-sensors{padding:0 6px 10px}.header-sensors span,.device-panel-sensors span{background:var(--bg-surface-elevated);color:var(--text-secondary);padding:4px 8px;border-radius:999px;font-size:12px}.device-message{margin:4px 6px 8px;color:var(--accent-rose);overflow-wrap:anywhere}.device-actions,.device-disclosure{border-block-start:1px solid var(--border-subtle);padding-block:4px}.device-actions :is(button,a){display:flex;gap:8px;align-items:center;inline-size:100%;min-block-size:36px;padding:5px 8px;border:0;border-radius:8px;background:transparent;color:var(--text-primary);font-size:13px;text-align:start;text-decoration:none;cursor:pointer}.device-actions button:disabled{opacity:.5;cursor:default}.device-disclosure summary{min-block-size:36px;padding:7px 8px;cursor:pointer;font-weight:600}.device-disclosure p,.device-disclosure code{margin:4px 8px}.device-actions .device-disconnect{color:var(--on-error-container);background:var(--error-container);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent-rose) 16%,transparent)}.device-header [data-state=ok]{color:var(--accent-emerald);background:color-mix(in srgb,var(--accent-emerald) 12%,var(--bg-surface))}.device-header [data-state=alert]{color:var(--on-error-container);background:var(--error-container)}.settings-advanced-hint{color:var(--text-secondary);font-size:13px;margin-block-start:6px}.download-controls{display:flex;align-items:start;gap:8px 12px;flex-wrap:wrap;min-width:0}.download-options{flex-basis:100%;min-width:0}.download-options summary{min-height:42px;padding:8px 2px;cursor:pointer;font-size:14px;font-weight:600}.download-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr));gap:10px}.download-fields label{display:grid;gap:4px;align-content:start;min-width:0;color:var(--text-secondary);font-size:13px}.download-fields .workflow-actions{grid-column:1 / -1}.download-status{color:var(--accent-rose);font-size:13px;overflow-wrap:anywhere;flex-basis:100%}.photo-download-panel{margin-block-start:16px}.photo-download-panel h2{font-size:18px;margin-block-end:8px}@media(min-width:1200px){.header-sensors{display:flex}}@media(hover:hover)and (pointer:fine){.device-actions :is(button:not(:disabled),a):hover,.device-disclosure summary:hover{background:var(--bg-surface-elevated)}.device-actions .device-disconnect:not(:disabled):hover{background:color-mix(in srgb,var(--error-container) 88%,var(--accent-rose))}}@media(max-width:599px){.nav-item[data-view=fmt-designer]{display:none}.nav-item-label{text-align:center;line-height:1.1}.device-actions :is(button,a),.device-disclosure summary{min-block-size:44px}.diag-log-main .diag-summary{order:1;flex:0 0 100%;white-space:normal;overflow-wrap:anywhere}.diag-log-main .diag-toggle-btn{margin-inline-start:auto;min-height:30px}}.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:stretch;flex-direction:column;gap:12px}.scanner-operation .scanner-start{min-block-size:56px;padding-inline:24px;font-weight:650}.scanner-start-hint{color:var(--text-secondary);font-size:14px}.scanner-start-hint:empty{display:none}.scanner-flow .scanner-fmt-card{margin-block-end:12px}.scanner-fmt-row,.scanner-fmt-meta{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.scanner-fmt-row{justify-content:space-between}.scanner-fmt-meta #fmt-card-name{font:600 14px var(--font-mono);overflow-wrap:anywhere}.scanner-fmt-stats{padding:4px 9px;border-radius:999px;background:var(--primary-container);color:var(--on-primary-container);font-size:12px}.scanner-image-option,.scanner-result-options label{display:flex;align-items:center;gap:8px;min-height:40px;cursor:pointer}.scanner-result-options{position:relative}.scanner-result-options summary{list-style:none}.scanner-result-options summary::-webkit-details-marker{display:none}.scanner-result-options fieldset{position:absolute;inset-block-start:calc(100% + 6px);inset-inline-start:0;z-index:6;width:min(230px,calc(100vw - 72px));max-block-size:44dvh;overflow:auto;overscroll-behavior:contain;padding:8px 12px;margin:0;border:1px solid var(--border-subtle);border-radius:12px;background:var(--bg-surface);box-shadow:var(--shadow-elevation)}.scanner-result-options legend{padding-inline:4px;background:var(--bg-surface);font-size:13px;font-weight:600}.scanner-result-options label,.scanner-result-options p{font-size:13px}.scanner-flow .scanner-feed-card:has(.scanner-result-options[open]){overflow:visible}.scanner-flow .scanner-workspace:has(.download-options[open]){height:auto}.scanner-flow .scans-table-container{min-block-size:64px}.scanner-flow .scan-raw-line{white-space:pre}.scan-direction-rotated{color:var(--accent-rose)!important}.scan-direction-standard{color:var(--accent-emerald)!important}.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}.scanner-flow .matrix-canvas-wrapper canvas{height:auto!important;background:var(--bg-input)}.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-background-tools{display:flex;gap:8px;flex-wrap:wrap;width:100%;margin-block-end:10px}.fmt-background-adjust{width:100%;margin-block-end:10px}.fmt-background-adjust summary{cursor:pointer}.fmt-background-adjust label{display:grid;gap:4px;font-size:13px;margin-block-start:6px}.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 .scanner-actions{width:100%;flex-wrap:wrap}.scanner-flow .scanner-operation .btn-primary{flex:1 0 100%}.scanner-flow .scanner-fmt-desktop{display:none}.scanner-flow .scans-table th{white-space:nowrap}}@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)}}.scan-target{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;padding:14px 16px;border-radius:var(--radius-lg);background:var(--bg-surface-card)}.scan-target-info{display:flex;flex-wrap:wrap;gap:3px 10px;align-items:baseline;min-width:0}.scan-target-info strong{overflow-wrap:anywhere}.scan-target-info [data-count],.scan-target-label{color:var(--text-secondary);font-size:13px}.scan-target-info [data-count]{flex-basis:100%}.scan-target-duplicate{color:var(--on-error-container);background:var(--error-container);border-radius:999px;padding:2px 9px;font-size:12px}.scan-target-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.scan-target-dialog{width:min(440px,calc(100% - 32px));max-height:calc(100dvh - 32px - env(safe-area-inset-top) - env(safe-area-inset-bottom));padding:20px;background:var(--bg-surface);color:var(--text-primary);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);box-shadow:var(--shadow-elevation)}.scan-target-dialog::backdrop{background:#0008}.scan-target-form,.scan-target-form [data-open]{display:grid;gap:12px}.scan-target-form label{display:grid;gap:4px;font-size:14px;min-width:0}.scan-target-form p{font-size:13px;color:var(--text-secondary);overflow-wrap:anywhere}.scan-target-message:empty{display:none}.scan-target-dialog .scan-target-actions{justify-content:flex-end}.data-panel{min-inline-size:0;margin-block:16px;padding:16px;border-radius:16px;background:var(--bg-surface)}.data-panel h2{margin:0;font-size:1.125rem;overflow-wrap:anywhere}.data-panel p{margin:4px 0 0;color:var(--text-secondary)}.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{display:grid;justify-items:start;gap:12px;min-inline-size:0}.data-fields .data-actions{align-items:end;max-inline-size:100%}.data-fields label{display:grid;gap:4px;min-inline-size:0;max-inline-size:100%}.data-fields :is(select,input[type=file]){max-inline-size:100%}.data-status{margin-block:8px;overflow-wrap:anywhere}.data-status:empty{margin:0}.data-format,.data-download{margin-block:12px}.data-format summary{min-block-size:44px;align-content:center;font-weight:600;cursor:pointer}.data-format summary span{color:var(--text-secondary);overflow-wrap:anywhere}.data-format .data-actions{margin-block:8px}.data-field-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,18rem),1fr));gap:8px}.data-field-options>div{display:grid;grid-template-columns:minmax(0,1fr) max-content max-content;align-items:center;gap:8px;padding-inline:12px;border-radius:12px;background:var(--bg-surface-card)}.data-field-options>div>span{overflow-wrap:anywhere}.data-field-options label{display:inline-flex;align-items:center;gap:4px;min-block-size:44px;font-size:.875rem}.data-table-scroll{max-inline-size:100%;max-block-size:min(60dvh,42rem);overflow:auto;overscroll-behavior:contain;margin-block-start:12px;border:1px solid var(--border-subtle);border-radius:12px}.data-table{inline-size:100%;border-collapse:separate;border-spacing:0;font-size:.875rem}.data-table :is(th,td){border-block-end:1px solid var(--border-subtle);text-align:start}.data-table tr:last-child td,.data-table tr:last-child th[scope=row]{border-block-end:0}.data-table th{padding:10px 12px;white-space:nowrap}.data-table thead th{position:sticky;inset-block-start:0;z-index:1;background:var(--bg-surface-elevated)}.data-cell{min-block-size:44px;inline-size:100%;padding:8px 12px;border:0;background:transparent;color:inherit;font:400 .875rem/1.4 var(--font-mono, monospace);text-align:start;white-space:pre;cursor:pointer}.data-cell:focus-visible{outline-offset:-2px}.data-cell:active{background:var(--secondary-container);color:var(--on-secondary-container)}.data-raw-cell{max-inline-size:min(48rem,65vw);overflow:hidden;text-overflow:ellipsis}.data-invalid{color:var(--on-error-container);background:var(--error-container)}.data-cell-warning{display:block;font:500 .75rem/1.4 var(--font-family, sans-serif);white-space:normal}.data-pagination{display:flex;justify-content:end;align-items:center;flex-wrap:wrap;gap:8px;margin-block-start:12px}@media(hover:hover)and (pointer:fine){.data-cell:hover{box-shadow:inset 0 0 0 2px currentColor}}.data-dialog{margin:auto;padding:24px;max-inline-size:min(480px,calc(100% - 32px));border:1px solid var(--border-hover);border-radius:24px;background:var(--bg-surface);color:var(--text-primary);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}.data-edit-dialog{inline-size:min(640px,calc(100% - 32px));max-inline-size:640px;max-block-size:calc(100dvh - 32px);overflow:auto}.data-edit-dialog form{display:grid;align-items:start;gap:12px}.data-edit-dialog h2,.data-edit-dialog p{margin:0}.data-edit-dialog :is(textarea,input[type=text]){font:400 16px/24px var(--font-mono, monospace)}.data-edit-dialog textarea{inline-size:100%;block-size:clamp(96px,30dvh,360px);resize:vertical;border:1px solid var(--border-hover);border-radius:12px;padding:12px;background:var(--bg-input);color:inherit;user-select:text;overscroll-behavior:contain}.data-edit-error{color:var(--accent-rose)}.data-edit-error:empty,.data-edit-status:empty{display:none}.data-edit-dialog .data-actions{justify-content:end}@media(max-width:599px){.data-panel{padding:12px}.data-panel .btn,.data-panel select,.data-cell{min-block-size:48px}.data-panel select,.data-panel input[type=file]{min-inline-size:0;max-inline-size:100%;font-size:16px}.data-edit-dialog{padding:16px}}
