:root{color-scheme:light;font-family:Inter,Segoe UI,Microsoft YaHei,sans-serif;color:#17221d;background:#edf2ef;font-synthesis:none;--app-bg: #edf2ef;--surface: #ffffff;--surface-soft: #f5f8f6;--text: #17221d;--muted: #637069;--border: #d4ddd8;--border-strong: #abbab2;--primary: #17634d;--primary-hover: #0f513d;--primary-soft: #e0f0e9;--accent: #c66b16;--danger: #a43e36;--qr-black: #111714}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:var(--app-bg);color:var(--text)}button,input,select{font:inherit}button{letter-spacing:0}button:focus-visible,input:focus-visible,select:focus-visible,.file-drop:has(input:focus-visible){outline:3px solid color-mix(in srgb,var(--primary),transparent 68%);outline-offset:2px}[hidden]{display:none!important}#app-shell{min-height:100vh;display:grid;grid-template-rows:64px 1fr}.app-header{display:grid;grid-template-columns:minmax(220px,1fr) auto minmax(220px,1fr);align-items:center;gap:20px;padding:0 24px;background:var(--surface);border-bottom:1px solid var(--border)}.brand-block{display:flex;align-items:center;gap:10px;min-width:0}.brand-mark{width:34px;height:34px;display:grid;place-items:center;flex:0 0 auto;border-radius:7px;color:#fff;background:var(--primary)}.brand-block>div:last-child{display:grid;min-width:0}.brand-block strong{font-size:15px;font-weight:600}.brand-block span{color:var(--muted);font-size:12px}.mode-tabs{display:grid;grid-template-columns:repeat(2,minmax(90px,1fr));padding:3px;background:var(--surface-soft);border:1px solid var(--border);border-radius:7px}.mode-tab{height:36px;padding:0 18px;display:inline-flex;align-items:center;justify-content:center;gap:7px;border:0;border-radius:5px;background:transparent;color:var(--muted)}.mode-tab.is-active{background:var(--surface);color:var(--text);box-shadow:0 1px 3px #132d221f}.prototype-label{justify-self:end;color:var(--accent);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:12px;font-weight:600}main{min-height:0}.workspace{min-height:calc(100vh - 64px);display:grid;grid-template-columns:340px minmax(0,1fr)}.control-pane{padding:28px 24px;background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;gap:20px}.pane-heading h1{margin:0 0 5px;font-size:20px;line-height:1.3;font-weight:600;letter-spacing:0}.pane-heading p,.field-note{margin:0;color:var(--muted);font-size:13px;line-height:1.55}.file-drop{min-height:132px;padding:18px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:7px;text-align:center;border:1px dashed var(--border-strong);border-radius:7px;background:var(--surface-soft);transition:border-color .12s ease,background .12s ease}.file-drop:hover,.file-drop.is-dragging{border-color:var(--primary);background:var(--primary-soft)}.file-drop input{position:absolute;width:1px;height:1px;opacity:0}.file-drop svg{color:var(--primary)}.file-drop span{max-width:260px;overflow-wrap:anywhere;font-size:14px;font-weight:600}.file-drop small{color:var(--muted);font-size:12px}.form-field{display:grid;gap:7px}.form-field>label,.field-label,.speed-control>span{color:var(--text);font-size:13px;font-weight:600}.transport-switch{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:3px;border:1px solid var(--border);border-radius:7px;background:var(--surface-soft)}.transport-option{min-width:0;min-height:40px;padding:0 8px;display:inline-flex;align-items:center;justify-content:center;gap:7px;border:0;border-radius:5px;background:transparent;color:var(--muted)}.transport-option.is-selected{background:var(--surface);color:var(--text);box-shadow:0 1px 3px #132d221f}input:not([type=range]),select{width:100%;height:42px;padding:0 11px;border:1px solid var(--border-strong);border-radius:6px;background:var(--surface);color:var(--text)}.input-action{display:grid;grid-template-columns:minmax(0,1fr) 42px 42px;gap:6px}.icon-button,.primary-button,.secondary-button,.text-button{min-height:40px;display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:6px}.icon-button{width:42px;padding:0;border:1px solid var(--border-strong);background:var(--surface);color:var(--text)}.icon-button.prominent{background:var(--primary);border-color:var(--primary);color:#fff}.primary-button,.secondary-button,.text-button{padding:0 15px}.primary-button{border:1px solid var(--primary);background:var(--primary);color:#fff}.primary-button:hover:not(:disabled),.icon-button.prominent:hover:not(:disabled){background:var(--primary-hover);border-color:var(--primary-hover)}.secondary-button{border:1px solid var(--border-strong);background:var(--surface);color:var(--text)}.text-button{min-height:34px;align-self:flex-start;padding:0;border:0;background:transparent;color:var(--muted)}button:disabled{opacity:.45}.security-strip{display:flex;align-items:center;gap:8px;color:var(--primary);font-size:12px}.status-line{margin:auto 0 0;min-height:40px;padding-top:14px;border-top:1px solid var(--border);color:var(--muted);font-size:13px;overflow-wrap:anywhere}.visual-pane{min-width:0;padding:24px 28px 28px;display:grid;grid-template-rows:auto minmax(300px,1fr) auto;gap:18px}.visual-toolbar{min-height:42px;display:flex;align-items:center;justify-content:space-between;gap:16px}.visual-toolbar>div:first-child{display:grid;gap:3px;min-width:0}.visual-toolbar strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:600}.eyebrow,.metric-label{color:var(--muted);font-size:12px}.qr-stage{min-height:0;display:grid;place-items:center;overflow:hidden}.qr-stage:fullscreen{background:#fff}.qr-grid{width:min(72vh,100%,760px);aspect-ratio:1;display:grid;place-items:stretch;gap:10px}.qr-grid[data-lanes="1"]{grid-template-columns:1fr}.qr-grid[data-lanes="4"]{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr))}.qr-grid canvas{display:block;width:100%!important;height:100%!important;min-width:0;min-height:0;object-fit:contain;image-rendering:pixelated;background:#fff}.qr-stage:fullscreen .qr-grid{width:min(94vmin,1200px)}.qr-placeholder,.video-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;color:var(--muted);text-align:center}.qr-placeholder svg,.video-placeholder svg{width:44px;height:44px;color:var(--border-strong)}.qr-placeholder strong,.video-placeholder strong{color:var(--text);font-size:14px;font-weight:600}.qr-placeholder span,.video-placeholder span{font-size:13px}.playback-strip{min-height:76px;display:grid;grid-template-columns:42px minmax(180px,1fr) minmax(160px,220px) 42px;align-items:center;gap:18px;padding:13px 16px;background:var(--surface);border:1px solid var(--border);border-radius:7px}.playback-progress,.speed-control,.receive-progress-block{display:grid;gap:8px}.progress-labels{display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--muted);font-size:12px}.progress-labels strong{color:var(--text);font-weight:600}.progress-track{height:7px;overflow:hidden;border-radius:4px;background:#dfe6e2}.progress-fill{width:0;height:100%;background:var(--primary);transition:width .1s linear}.progress-fill.accent{background:var(--accent)}.speed-control output{color:var(--muted);font-weight:400}.speed-control input{width:100%;accent-color:var(--primary)}.source-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.source-actions button{min-width:0;padding-inline:8px}.receive-progress-block{padding:15px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.mono-detail{color:var(--muted);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:11px;overflow-wrap:anywhere}.receiver-visual{grid-template-rows:auto minmax(320px,1fr) auto}.video-stage{position:relative;min-height:320px;display:grid;place-items:center;overflow:hidden;background:#111714;border-radius:7px}.video-stage video{width:100%;height:100%;max-height:calc(100vh - 230px);object-fit:contain}.video-stage .video-placeholder{color:#aab7b0}.video-stage .video-placeholder strong{color:#f4f7f5}.scan-frame{position:absolute;width:min(55%,430px);aspect-ratio:1;pointer-events:none;opacity:.7}.scan-frame span{position:absolute;width:30px;height:30px;border-color:#f2a04d;border-style:solid}.scan-frame span:nth-child(1){top:0;left:0;border-width:2px 0 0 2px}.scan-frame span:nth-child(2){top:0;right:0;border-width:2px 2px 0 0}.scan-frame span:nth-child(3){bottom:0;left:0;border-width:0 0 2px 2px}.scan-frame span:nth-child(4){right:0;bottom:0;border-width:0 2px 2px 0}.result-panel{min-height:82px;display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:14px;padding:14px 16px;border:1px solid var(--border);border-radius:7px;background:var(--surface)}.result-icon{width:42px;height:42px;display:grid;place-items:center;border-radius:7px;background:var(--primary-soft);color:var(--primary)}.result-copy{min-width:0;display:grid;gap:3px}.result-copy span,.result-copy small{color:var(--muted);font-size:12px}.result-copy strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:600}.primary-button.compact{min-height:38px}@media(max-width:880px){.app-header{grid-template-columns:minmax(0,1fr) auto}.prototype-label{display:none}.workspace{grid-template-columns:1fr}.control-pane{border-right:0;border-bottom:1px solid var(--border)}.status-line{margin-top:0}.visual-pane{min-height:720px}}@media(max-width:620px){#app-shell{grid-template-rows:auto 1fr}.app-header{padding:10px 14px;grid-template-columns:1fr;gap:10px}.mode-tabs{width:100%}.workspace{min-height:auto}.control-pane,.visual-pane{padding:20px 14px}.visual-toolbar{align-items:flex-start;flex-direction:column}.visual-toolbar .secondary-button{width:100%}.playback-strip{grid-template-columns:42px minmax(0,1fr) 42px}.speed-control{grid-column:1 / -1;grid-row:2}.result-panel{grid-template-columns:42px minmax(0,1fr)}.result-panel .primary-button{grid-column:1 / -1;width:100%}}
