:root{--radius: 10px;--radius-sm: 6px;--logo-grad: radial-gradient(circle at 30% 30%, #6bb4ff, #2b6fd4 60%, #163a72);--logo-glow: rgba(43, 111, 212, .4);--viewer-bg: #05080f;--viewer-elev: #141a25;--viewer-border: #2b3446;--viewer-text: #e6ecf5;--viewer-muted: #9aa4b8;--viewer-dim: #8089a0;--viewer-demo: #b78bff;--viewer-demo-chip: #241a38;--viewer-demo-line: rgba(183, 139, 255, .4);--viewer-scrim: linear-gradient(180deg, rgba(5, 8, 15, .2), rgba(5, 8, 15, .6));--viewer-btn-bg: #1c2230;--viewer-btn-hover-bg: #232b3d;--viewer-control-border: #616d88;--camera-guide: #ffb340;--lightbox-scrim: rgba(0, 0, 0, .88);--thumb-caption-bg: rgba(5, 8, 15, .82);--thumb-ribbon-bg: rgba(5, 8, 15, .88);--fs-xs: .75rem;--fs-sm: .8125rem;--fs-base: .875rem;--fs-md: 1rem;--fs-lg: 1.125rem;--fs-xl: 1.375rem;--fs-display: 1.75rem;font-family:system-ui,-apple-system,Segoe UI,Roboto,PingFang SC,Hiragino Sans GB,Microsoft Yahei,Helvetica Neue,Arial,sans-serif;font-size:100%;line-height:1.55}:root{color-scheme:light;--bg: #eceff5;--bg-elev: #ffffff;--bg-elev-2: #f4f6fb;--border: #c0c9da;--control-border: #7d8899;--divider: #e4e9f2;--header-bg: linear-gradient(180deg, #ffffff 0%, #f6f8fc 100%);--shadow-1: 0 1px 2px rgba(19, 26, 36, .05), 0 6px 16px rgba(19, 26, 36, .06);--card-hover-border: #93a0b6;--tabs-bg: #edf1f8;--logo-ring: rgba(22, 58, 114, .35);--text: #131a24;--text-muted: #4e5a6e;--text-dim: #5f6b7e;--accent: #a34200;--accent-hover: #803300;--accent-soft: rgba(163, 66, 0, .1);--accent-wash: #fff5eb;--accent-chip: #ffe4cb;--accent-line: rgba(163, 66, 0, .45);--on-accent: #ffffff;--focus-ring: #a34200;--success: #0c6f4a;--success-wash: #e6f5ed;--success-chip: #cfe8db;--success-line: rgba(12, 111, 74, .45);--warn: #8a5a06;--warn-wash: #fdf3e0;--warn-chip: #f8e6bf;--warn-line: rgba(138, 90, 6, .45);--error: #b81f26;--error-wash: #fdecec;--error-chip: #f8d3d3;--error-line: rgba(184, 31, 38, .45);--demo: #6d3fd1;--demo-wash: #f3ecfd;--demo-chip: #e6d9fb;--demo-line: rgba(109, 63, 209, .45);--btn-bg: #f4f6fb;--btn-hover-bg: #e7ecf6;--field-bg: #ffffff;--field-focus-bg: #ffffff;--progress-track: #dde3ee;--thumb-bg: #e2e7f0}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){color-scheme:dark;--bg: #0d1017;--bg-elev: #151a24;--bg-elev-2: #1c2230;--border: #262d3d;--control-border: #616d88;--divider: #1d2333;--header-bg: linear-gradient(180deg, #10151f 0%, #0d1017 100%);--shadow-1: 0 1px 2px rgba(0, 0, 0, .25), 0 6px 20px rgba(0, 0, 0, .25);--card-hover-border: #354162;--tabs-bg: #151a24;--logo-ring: #2b3a55;--text: #e6ecf5;--text-muted: #9aa4b8;--text-dim: #8089a0;--accent: #ffb366;--accent-hover: #ffc78f;--accent-soft: rgba(255, 179, 102, .14);--accent-wash: #211810;--accent-chip: #332211;--accent-line: rgba(255, 179, 102, .45);--on-accent: #08131f;--focus-ring: #ffb366;--success: #34c38a;--success-wash: #101a15;--success-chip: #0e2a20;--success-line: rgba(52, 195, 138, .4);--warn: #f0b73f;--warn-wash: #1a1205;--warn-chip: #2a2009;--warn-line: rgba(240, 183, 63, .4);--error: #ff6b6b;--error-wash: #1d0f11;--error-chip: #2e1518;--error-line: rgba(255, 107, 107, .45);--demo: #b78bff;--demo-wash: #170f22;--demo-chip: #241a38;--demo-line: rgba(183, 139, 255, .4);--btn-bg: #1c2230;--btn-hover-bg: #232b3d;--field-bg: #0d1017;--field-focus-bg: #0a0f18;--progress-track: #0d1017;--thumb-bg: #1c2230}}:root[data-theme=dark]{color-scheme:dark;--bg: #0d1017;--bg-elev: #151a24;--bg-elev-2: #1c2230;--border: #262d3d;--control-border: #616d88;--divider: #1d2333;--header-bg: linear-gradient(180deg, #10151f 0%, #0d1017 100%);--shadow-1: 0 1px 2px rgba(0, 0, 0, .25), 0 6px 20px rgba(0, 0, 0, .25);--card-hover-border: #354162;--tabs-bg: #151a24;--logo-ring: #2b3a55;--text: #e6ecf5;--text-muted: #9aa4b8;--text-dim: #8089a0;--accent: #ffb366;--accent-hover: #ffc78f;--accent-soft: rgba(255, 179, 102, .14);--accent-wash: #211810;--accent-chip: #332211;--accent-line: rgba(255, 179, 102, .45);--on-accent: #08131f;--focus-ring: #ffb366;--success: #34c38a;--success-wash: #101a15;--success-chip: #0e2a20;--success-line: rgba(52, 195, 138, .4);--warn: #f0b73f;--warn-wash: #1a1205;--warn-chip: #2a2009;--warn-line: rgba(240, 183, 63, .4);--error: #ff6b6b;--error-wash: #1d0f11;--error-chip: #2e1518;--error-line: rgba(255, 107, 107, .45);--demo: #b78bff;--demo-wash: #170f22;--demo-chip: #241a38;--demo-line: rgba(183, 139, 255, .4);--btn-bg: #1c2230;--btn-hover-bg: #232b3d;--field-bg: #0d1017;--field-focus-bg: #0a0f18;--progress-track: #0d1017;--thumb-bg: #1c2230}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--bg);color:var(--text);min-height:100vh}body{font-size:var(--fs-base)}button{font:inherit;color:inherit}:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px;border-radius:var(--radius-sm)}#app{display:flex;flex-direction:column;min-height:100vh}.app-header{display:flex;flex-wrap:wrap;align-items:center;gap:12px 24px;padding:14px clamp(14px,3vw,28px);background:var(--header-bg);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:20}.brand{display:flex;align-items:center;gap:12px;flex:1 1 auto;min-width:240px}.brand h1{font-size:var(--fs-md);margin:0}.brand .tagline{margin:2px 0 0;font-size:var(--fs-xs);color:var(--text-muted)}.logo-dot{width:28px;height:28px;border-radius:8px;background:var(--logo-grad);box-shadow:0 0 0 1px var(--logo-ring),0 4px 14px var(--logo-glow)}.tabs{display:flex;gap:4px;background:var(--tabs-bg);padding:4px;border-radius:999px;border:1px solid var(--border)}.tab{border:0;background:transparent;color:var(--text-muted);padding:6px 14px;border-radius:999px;cursor:pointer;font-size:var(--fs-sm);transition:color .15s,background .15s}.tab:hover{color:var(--text)}.tab[aria-selected=true]{background:var(--accent-soft);color:var(--accent)}.theme-toggle{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;flex:0 0 auto;border:1px solid var(--control-border);border-radius:999px;background:var(--btn-bg);color:var(--text-muted);cursor:pointer;transition:color .15s,background .15s,border-color .15s}.theme-toggle:hover{background:var(--btn-hover-bg);color:var(--text)}.theme-toggle:focus-visible{color:var(--accent);border-color:var(--accent)}.theme-toggle[data-choice=light],.theme-toggle[data-choice=dark]{color:var(--accent);border-color:var(--accent-line)}.theme-icon{display:block}.main{flex:1;padding:clamp(14px,3vw,28px);max-width:1200px;width:100%;margin:0 auto}.app-footer{display:flex;gap:12px;align-items:center;padding:10px clamp(14px,3vw,28px);border-top:1px solid var(--border);background:var(--bg-elev);font-size:var(--fs-xs);color:var(--text-muted)}.status-badge{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:999px;font-size:var(--fs-xs);border:1px solid var(--border);background:var(--bg-elev-2);white-space:nowrap}.status-badge:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--text-dim)}.status-ok:before{background:var(--success)}.status-warn:before{background:var(--warn)}.status-error:before{background:var(--error)}.status-unknown:before{background:var(--text-dim)}.footer-note{color:var(--text-dim)}.card{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius);padding:18px;box-shadow:var(--shadow-1)}.card+.card{margin-top:16px}.section-title{margin:0 0 14px;font-size:var(--fs-base);color:var(--text-muted);letter-spacing:.08em}.btn{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;background:var(--btn-bg);border:1px solid var(--control-border);color:var(--text);border-radius:var(--radius-sm);cursor:pointer;font-size:var(--fs-sm);transition:background .15s,border-color .15s,transform .05s}.btn:hover{background:var(--btn-hover-bg)}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-primary{background:var(--accent);color:var(--on-accent);border-color:transparent;font-weight:600}.btn-primary:hover{background:var(--accent-hover)}.btn-danger{background:transparent;color:var(--error);border-color:var(--error-line)}.btn-ghost{background:transparent;border-color:transparent;color:var(--text-muted)}.btn-ghost:hover{color:var(--text);background:var(--btn-hover-bg)}.field{display:flex;flex-direction:column;gap:4px;margin-bottom:12px}.field label{font-size:var(--fs-xs);color:var(--text-muted)}.field .hint{font-size:var(--fs-xs);color:var(--text-dim)}input[type=text],input[type=email],input[type=url],input[type=password],select,textarea{background:var(--field-bg);color:var(--text);border:1px solid var(--control-border);border-radius:var(--radius-sm);padding:8px 10px;font:inherit;transition:border-color .15s,background .15s;width:100%}input:focus,select:focus,textarea:focus{border-color:var(--accent);background:var(--field-focus-bg)}::placeholder{color:var(--text-dim);opacity:1}.row{display:flex;gap:12px;flex-wrap:wrap}.row>*{flex:1 1 220px}.dropzone{border:1.5px dashed var(--control-border);border-radius:var(--radius);padding:28px;text-align:center;color:var(--text-muted);background:var(--bg-elev-2);cursor:pointer;transition:border-color .15s,background .15s,color .15s}.dropzone:hover,.dropzone.dragover{border-color:var(--accent);color:var(--text);background:var(--accent-wash)}.dropzone strong{color:var(--text);font-weight:600}.dropzone-preview{max-width:100%;max-height:260px;margin-top:12px;border-radius:var(--radius-sm)}.views-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px}.view-card{position:relative;background:var(--bg-elev-2);border:1.5px dashed var(--control-border);border-radius:var(--radius);padding:12px;min-height:200px;display:flex;flex-direction:column;gap:8px;transition:border-color .15s,background .15s}.view-card.has-photo{border-style:solid}.view-card.dragover{border-color:var(--accent);background:var(--accent-wash)}.view-head{display:flex;align-items:center;justify-content:space-between}.view-title{font-weight:600;font-size:var(--fs-sm)}.view-body{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:var(--text-muted);min-height:120px}.view-empty-hint{font-size:var(--fs-xs)}.view-preview{width:100%;max-height:160px;object-fit:cover;border-radius:var(--radius-sm);background:var(--thumb-bg)}.view-meta{display:flex;flex-direction:column;gap:4px}.view-meta .view-name{font-size:var(--fs-xs)}.view-actions{display:flex;gap:8px}.view-actions .btn{padding:4px 10px;font-size:var(--fs-xs)}.jobs-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}.job-card{background:var(--bg-elev-2);border:1px solid var(--border);border-radius:var(--radius);padding:14px;display:flex;flex-direction:column;gap:8px;cursor:pointer;transition:transform .1s,border-color .15s}.job-card:hover{transform:translateY(-1px);border-color:var(--card-hover-border)}.job-card .stage{font-size:var(--fs-xs);color:var(--text-muted)}.job-card .row-between{display:flex;justify-content:space-between;align-items:center}.job-card time{font-size:var(--fs-xs);color:var(--text-dim)}.chip{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:999px;font-size:var(--fs-xs);border:1px solid var(--border);background:var(--bg);color:var(--text-muted)}.chip-queued,.chip-generating,.chip-processing{color:var(--warn);border-color:var(--warn-line);background:var(--warn-chip)}.chip-succeeded{color:var(--success);border-color:var(--success-line);background:var(--success-chip)}.chip-failed{color:var(--error);border-color:var(--error-line);background:var(--error-chip)}.chip-cancelled{color:var(--text-dim)}.chip-required{color:var(--warn);border-color:var(--warn-line);background:var(--warn-chip)}.chip-demo{color:var(--demo);border-color:var(--demo-line);background:var(--demo-chip)}.detail-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(280px,1fr);gap:16px}@media (max-width: 900px){.detail-grid{grid-template-columns:1fr}}.viewer-wrap{--bg: var(--viewer-elev);--bg-elev: var(--viewer-elev);--bg-elev-2: var(--viewer-elev);--border: var(--viewer-border);--text: var(--viewer-text);--text-muted: var(--viewer-muted);--text-dim: var(--viewer-dim);--demo: var(--viewer-demo);--demo-chip: var(--viewer-demo-chip);--demo-line: var(--viewer-demo-line);--btn-bg: var(--viewer-btn-bg);--btn-hover-bg: var(--viewer-btn-hover-bg);--control-border: var(--viewer-control-border);--divider: var(--viewer-border);position:relative;background:var(--viewer-bg);border:1px solid var(--border);border-radius:var(--radius);aspect-ratio:4 / 3;min-height:360px;overflow:hidden;color:var(--viewer-text)}.viewer-wrap canvas{display:block;width:100%!important;height:100%!important}.viewer-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:var(--viewer-muted);font-size:var(--fs-sm);pointer-events:none;background:var(--viewer-scrim)}.viewer-badges{position:absolute;top:10px;left:10px;display:flex;gap:6px;z-index:2}.empty-state,.error-state{padding:32px;text-align:center;border:1px dashed var(--border);border-radius:var(--radius);color:var(--text-muted);background:var(--bg-elev-2)}.error-state{color:var(--error);border-color:var(--error-line);background:var(--error-wash)}.error-inline{padding:8px 12px;border:1px solid var(--error-line);border-radius:var(--radius-sm);color:var(--error);background:var(--error-wash);font-size:var(--fs-xs)}.progress{width:100%;height:6px;background:var(--progress-track);border-radius:999px;overflow:hidden}.progress>div{height:100%;background:linear-gradient(90deg,var(--accent),var(--accent-hover));transition:width .3s ease}.progress.indeterminate>div{width:30%!important;animation:slide 1.4s infinite}@keyframes slide{0%{transform:translate(-100%)}to{transform:translate(400%)}}.devices-list{display:flex;flex-direction:column;gap:8px}.device-row{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-elev-2)}.device-row .meta{font-size:var(--fs-xs);color:var(--text-muted)}.pair-code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:var(--fs-display);letter-spacing:6px;padding:14px;background:var(--bg);border-radius:var(--radius-sm);text-align:center;border:1px dashed var(--control-border)}.toast-root{position:fixed;bottom:24px;right:24px;display:flex;flex-direction:column;gap:8px;z-index:100;pointer-events:none}.toast{background:var(--bg-elev-2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px 14px;color:var(--text);box-shadow:var(--shadow-1);font-size:var(--fs-sm);max-width:360px;pointer-events:auto}.toast.error{border-color:var(--error-line);background:var(--error-wash)}.toast.success{border-color:var(--success-line);background:var(--success-wash)}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.muted{color:var(--text-muted)}.tiny{font-size:var(--fs-xs)}.stack-sm>*+*{margin-top:8px}.stack-md>*+*{margin-top:14px}.hstack{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.spacer{flex:1}.hidden{display:none!important}.break{overflow-wrap:anywhere;word-break:break-word;white-space:normal}.tech-details{border-top:1px dashed var(--divider);padding-top:6px;margin-top:4px}.tech-details>summary{cursor:pointer;color:var(--text-muted);list-style:none;padding:2px 0;user-select:none}.tech-details>summary:before{content:"▸";display:inline-block;margin-right:4px;transition:transform .15s}.tech-details[open]>summary:before{transform:rotate(90deg)}.tech-details>div{margin-top:4px}kbd{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;background:var(--bg);border:1px solid var(--control-border);border-radius:4px;padding:1px 5px;font-size:var(--fs-xs)}.detail-grid>*{min-width:0}.viewer-wrap{min-width:0;width:100%;overflow:hidden}.viewer-wrap canvas{display:block;max-width:100%}.photo-strip{display:flex;flex-wrap:wrap;gap:10px}.photo-item{margin:0;width:120px}.photo-item img{width:120px;height:120px;object-fit:cover;border-radius:8px;cursor:zoom-in;display:block;background:var(--thumb-bg)}.photo-failed{width:120px;height:120px;border-radius:8px;display:flex;align-items:center;justify-content:center;background:var(--thumb-bg)}.lightbox{position:fixed;inset:0;z-index:999;background:var(--lightbox-scrim);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:24px;cursor:zoom-out;--bg: var(--viewer-elev);--bg-elev: var(--viewer-elev);--bg-elev-2: var(--viewer-elev);--border: var(--viewer-border);--text: var(--viewer-text);--text-muted: var(--viewer-muted);--text-dim: var(--viewer-dim);--btn-bg: var(--viewer-btn-bg);--btn-hover-bg: var(--viewer-btn-hover-bg);--control-border: var(--viewer-control-border);--divider: var(--viewer-border);color:var(--viewer-text)}.lightbox img{max-width:96vw;max-height:86vh;object-fit:contain;border-radius:8px}.state-block{display:flex;flex-direction:column;align-items:center;gap:10px;padding:28px 20px;text-align:center}.state-icon{color:var(--text-dim);flex:0 0 auto}.error-state .state-icon{color:var(--error)}.state-title{margin:0;font-size:var(--fs-base);font-weight:600;color:var(--text)}.error-state .state-title{color:var(--error)}.state-body{margin:0;max-width:46ch;font-size:var(--fs-xs);color:var(--text-muted);line-height:1.6}.state-tech{border-top:0;margin-top:2px;max-width:100%}.skeleton{width:100%;display:flex;flex-direction:column;gap:8px}.skeleton-line,.skeleton-thumb{background:var(--progress-track);border-radius:var(--radius-sm);height:12px;animation:skeleton-pulse 1.6s ease-in-out infinite}.skeleton-thumb{height:96px;border-radius:var(--radius-sm)}.job-card-skeleton{cursor:default;gap:8px}.job-card-skeleton:hover{transform:none;border-color:var(--border)}@keyframes skeleton-pulse{0%,to{opacity:1}50%{opacity:.45}}@media (prefers-reduced-motion: reduce){.skeleton-line,.skeleton-thumb,.progress.indeterminate>div,.viewer-spinner,.job-thumb-spinner{animation:none}}.stale-banner{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:8px 12px;border:1px solid var(--warn-line);border-radius:var(--radius-sm);background:var(--warn-wash);color:var(--text);font-size:var(--fs-xs)}.warn-panel,.warn-inline{border:1px solid var(--warn-line);border-radius:var(--radius-sm);background:var(--warn-wash);color:var(--text);padding:12px 14px}.warn-panel>*+*{margin-top:8px}.warn-panel p{margin:0;color:var(--text-muted);line-height:1.6}.warn-inline p{margin:0;font-size:var(--fs-xs);color:var(--text-muted)}.banner-row{align-items:flex-start;gap:12px}.banner-line{margin-top:4px}.text-warn{color:var(--warn)}.text-error{color:var(--error)}.credit-pill{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border:1px solid var(--control-border);border-radius:999px;background:var(--btn-bg);color:var(--text);font-size:var(--fs-xs);cursor:pointer;white-space:nowrap}.credit-pill:hover{background:var(--btn-hover-bg)}.credit-icon{color:var(--accent);flex:0 0 auto}.credit-amount{font-weight:600;font-variant-numeric:tabular-nums}.credit-unit,.credit-held,.credit-stale{color:var(--text-muted)}.credit-pill-unknown .credit-icon{color:var(--text-dim)}.credit-pill-unknown .credit-amount{color:var(--text-muted);font-weight:500}.credit-panel{border:1px solid var(--warn-line);border-radius:var(--radius);background:var(--warn-wash);color:var(--text);padding:14px 16px}.credit-panel>*+*{margin-top:10px}.credit-panel p{margin:0;line-height:1.6}.credit-panel-head{display:flex;align-items:center;gap:8px}.credit-panel-head .credit-icon{color:var(--warn)}.credit-rows{margin:0;display:flex;flex-direction:column;gap:6px}.credit-rows>div{display:flex;justify-content:space-between;gap:12px;font-size:var(--fs-xs)}.credit-rows dt{color:var(--text-muted)}.credit-rows dd{margin:0;font-variant-numeric:tabular-nums}.credit-gap{border-top:1px solid var(--warn-line);padding-top:6px}.credit-gap dd{color:var(--warn);font-weight:600}.credit-figures{display:flex;flex-wrap:wrap;gap:12px}.credit-figure{flex:1 1 120px;display:flex;flex-direction:column;gap:2px;padding:12px 14px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-elev-2)}.credit-figure-value{font-size:var(--fs-xl);font-weight:600;font-variant-numeric:tabular-nums}.credit-figure-label{font-size:var(--fs-xs);color:var(--text-muted)}.credit-line{display:flex;flex-direction:column;gap:4px}.credit-line-head{display:flex;align-items:center;gap:8px;font-size:var(--fs-xs)}.credit-line p{margin:0}.chip.credit-held{color:var(--accent);border-color:var(--accent-line);background:var(--accent-chip)}.chip.credit-released{color:var(--success);border-color:var(--success-line);background:var(--success-chip)}.chip.credit-checking{color:var(--warn);border-color:var(--warn-line);background:var(--warn-chip)}.job-card{padding:0;overflow:hidden}.job-card>*:not(.job-thumb){margin-left:14px;margin-right:14px}.job-card>*:first-child{margin-top:0}.job-card>*:last-child{margin-bottom:14px}.job-card>.row-between{margin-top:12px}.job-thumb{position:relative;aspect-ratio:4 / 3;background:var(--thumb-bg);overflow:hidden}.job-thumb img{width:100%;height:100%;object-fit:cover;display:block}.thumb-caption{position:absolute;left:0;bottom:0;padding:3px 8px;font-size:var(--fs-xs);line-height:1.4;color:var(--viewer-text);background:var(--thumb-caption-bg);border-top-right-radius:var(--radius-sm);pointer-events:none}.thumb-ribbon{position:absolute;top:8px;right:0;padding:3px 10px;font-size:var(--fs-xs);line-height:1.4;font-weight:600;color:var(--viewer-demo);background:var(--thumb-ribbon-bg);border-top-left-radius:var(--radius-sm);border-bottom-left-radius:var(--radius-sm);pointer-events:none}.job-thumb-spinner{position:absolute;left:50%;top:50%;width:22px;height:22px;margin:-11px 0 0 -11px;border:2px solid var(--progress-track);border-top-color:var(--accent);border-radius:50%;animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.job-card:focus-visible{border-color:var(--accent)}.viewer-overlay .viewer-state{pointer-events:auto}.viewer-state{display:flex;flex-direction:column;align-items:center;gap:8px;padding:18px;text-align:center;max-width:40ch}.viewer-state p{margin:0}.viewer-state p.tiny{color:var(--viewer-muted);line-height:1.6}.viewer-state .btn{margin-top:4px}.viewer-state-error p:first-child{color:var(--viewer-text);font-weight:600}.viewer-spinner{width:24px;height:24px;border:2px solid var(--viewer-border);border-top-color:var(--viewer-muted);border-radius:50%;animation:spin .9s linear infinite}.detail-sub{padding:14px}.detail-sub+.detail-sub{margin-top:12px}.detail-grid>div>.detail-sub{margin-top:12px}.detail-sub-title{margin:0 0 8px}.detail-actions{margin-top:10px}.detail-send{margin-top:12px}.device-row{align-items:flex-start;gap:12px}.device-main{min-width:0;flex:1}.device-name{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.device-row-confirming{border-color:var(--warn-line)}.device-confirm{margin:8px 0}.photo-open{padding:0;border:0;background:none;cursor:zoom-in;display:block;border-radius:8px}.photo-open:focus-visible{outline-offset:3px}.blender-guide{margin:0;padding-left:1.5rem}.blender-guide li{padding:.5rem 0}.blender-guide p{margin:.5rem 0;line-height:1.7}#blenderServer{flex:1;min-width:0;width:100%}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}.visually-hidden-input{position:absolute;width:1px;height:1px;opacity:0;overflow:hidden;z-index:-1}.visually-hidden-input:focus-visible{position:static;width:auto;height:auto;opacity:1;z-index:auto}.ui-icon{width:22px;height:22px;flex:0 0 22px;vertical-align:middle}.app-icon{width:36px;height:36px;border-radius:9px}.brandmark{width:72px;height:72px;border-radius:18px}.login-brand,.about-brand{display:flex;flex-direction:column;align-items:center;gap:12px;padding:16px}.page-heading{display:flex;align-items:center;gap:12px}.page-heading h2{font-size:var(--fs-display);margin:8px 0 16px;letter-spacing:-.6px}.settings-group{max-width:760px;width:100%;margin:0 auto 8px}.settings-group h3{color:var(--text-muted);font-size:var(--fs-base);font-weight:400;padding:0 16px;margin:12px 0 8px}.settings-list{background:var(--bg-elev);border-radius:16px;overflow:hidden;border:1px solid var(--divider)}.settings-row{display:flex;align-items:center;gap:12px;min-height:56px;width:100%;background:transparent;color:var(--text);padding:12px 16px;text-align:left;font:inherit;border:0;border-bottom:1px solid var(--divider);text-decoration:none}button.settings-row{cursor:pointer}.settings-row:last-child{border-bottom:0}.settings-row>.ui-icon:first-child{color:var(--accent)}.settings-row.text-error,.settings-row.text-error>.ui-icon{color:var(--error)}.settings-row>.ui-icon:last-child:not(:first-child){width:16px;color:var(--text-muted)}.settings-row:hover{background:var(--accent-soft)}.settings-value{margin-left:auto;color:var(--text-muted);font-size:var(--fs-base);text-align:right}.settings-note{padding:0 16px}.settings-row input[type=checkbox]{width:20px;height:20px;flex-shrink:0}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px}.tab{display:flex;align-items:center;justify-content:center;gap:8px;min-height:44px}.tab [data-icon]{display:inline-flex}.capture-dialog{width:min(680px,calc(100% - 24px));max-height:calc(100dvh - 32px);overflow:auto;color:var(--text);background:var(--bg-elev);border:1px solid var(--border);border-radius:16px;padding:24px}.capture-dialog::backdrop{background:var(--lightbox-scrim)}.camera-stage{position:relative;aspect-ratio:4/3;overflow:hidden;border-radius:12px;background:var(--viewer-bg)}.camera-stage video,.camera-stage img{width:100%;height:100%;object-fit:contain}.camera-frame{position:absolute;inset:12%;border:2px dashed var(--camera-guide);border-radius:16px;pointer-events:none}.viewer-fullscreen{position:fixed!important;inset:0!important;z-index:100;width:100vw!important;height:100dvh!important;border-radius:0!important}.viewer-tools{display:flex;gap:8px;margin:8px 0}.viewer-fullscreen .viewer-tools{position:absolute;top:16px;right:16px;z-index:110}@media (max-width: 700px){.app-header{flex-wrap:nowrap}.brand{min-width:0}.tabs{position:fixed;bottom:0;left:0;right:0;border-radius:0;border-width:1px 0 0;background:var(--bg-elev);padding:6px 12px max(8px,env(safe-area-inset-bottom));justify-content:space-around;z-index:30}.tab{flex:1;flex-direction:column;gap:2px;border-radius:12px;font-size:var(--fs-xs)}.main{padding-bottom:88px}.app-footer{padding-bottom:90px}.page-heading h2{font-size:var(--fs-display)}.capture-dialog{padding:16px}}.jobs-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,180px),1fr))}.job-card{padding:8px;border-radius:12px;gap:8px}.job-card .row-between{flex-wrap:wrap;gap:8px}.job-card .tech-details,.job-card .stage{display:none}@media (max-width: 700px){.jobs-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.job-card .hstack{gap:4px}.job-card .chip{font-size:var(--fs-xs)}.settings-value{max-width:42%;overflow-wrap:anywhere}}.photo-scroll{width:min(100%,1100px);height:80vh;overflow:auto;touch-action:none}.lightbox .photo-scroll img{width:100%;max-width:none;max-height:80vh;object-fit:contain;user-select:none;-webkit-user-drag:none}.lightbox-bar{display:flex;align-items:center;flex-wrap:wrap;justify-content:center;gap:8px}@media (max-width: 700px){.views-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.view-card{min-height:170px;min-width:0;padding:8px}.view-body{min-height:100px}.view-empty-hint{display:none}.view-pick{padding:4px!important;font-size:var(--fs-xs)}.view-actions{flex-wrap:wrap}.view-head{flex-wrap:wrap;gap:4px}#captureActions>button{flex:1 1 100%}.view-preview{height:130px;object-fit:contain}}.device-page{max-width:1120px;margin:0 auto;padding:12px 0 24px}.device-heading{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:30px}.device-heading h2{font-size:var(--fs-display);font-weight:650;line-height:1.25;margin:8px 0 12px;letter-spacing:normal}.device-page p{color:var(--text-muted);line-height:1.75;margin:6px 0 0;font-size:var(--fs-base)}.device-heading .device-eyebrow{color:var(--accent);font-size:var(--fs-xs);font-weight:650;letter-spacing:.1em}.device-heading-icon{color:var(--accent);padding:17px;border-radius:20px;background:var(--bg-elev);box-shadow:var(--shadow-1)}.device-heading-icon .ui-icon{width:30px;height:30px}.device-setup-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:20px;align-items:stretch}.device-panel{min-width:0;background:var(--bg-elev);border:1px solid var(--divider);border-radius:18px;padding:26px;box-shadow:var(--shadow-1)}@supports (backdrop-filter: blur(20px)){.device-panel{background:color-mix(in srgb,var(--bg-elev) 88%,transparent);backdrop-filter:blur(20px)}}.device-panel-heading{display:flex;align-items:center;gap:12px;margin-bottom:24px}.device-page h3{font-size:var(--fs-md);line-height:1.5;margin:0;letter-spacing:normal;font-weight:650}.device-panel-heading p{font-size:var(--fs-sm);margin-top:2px}.device-step{display:grid;place-items:center;flex:0 0 34px;height:34px;color:var(--accent);background:var(--bg-elev-2);border:1px solid var(--divider);border-radius:11px;font-size:var(--fs-xs);font-weight:650;font-variant-numeric:tabular-nums}.device-download{display:flex;align-items:center;gap:12px;padding:16px 0 24px;border-bottom:1px solid var(--divider)}.device-package-icon{color:var(--accent)}.device-package-icon .ui-icon{width:28px;height:28px}.device-download>div{min-width:0;flex:1}.device-download strong{display:block;font-size:var(--fs-base)}.device-download>div>span{display:block;font-size:var(--fs-xs);color:var(--text-muted);margin-top:4px}.device-download .device-download-btn{background:var(--text);color:var(--bg-elev);border-color:var(--text);text-decoration:none;white-space:nowrap;gap:12px}.device-page .btn{min-height:42px;border-radius:9px;font-size:var(--fs-sm)}.device-instructions{margin:4px 0 0;padding:0;list-style:none;counter-reset:setup}.device-instructions>li{counter-increment:setup;padding:20px 0 0 28px;position:relative;font-size:var(--fs-base)}.device-instructions>li:before{content:counter(setup);position:absolute;left:0;top:20px;color:var(--text-muted);font-size:var(--fs-xs);line-height:24px;font-variant-numeric:tabular-nums}.device-instructions strong,.device-instructions summary{font-weight:600}.device-page summary{cursor:pointer;border-radius:4px}.device-instructions summary{line-height:24px}.device-detail-hint{color:var(--text-muted);font-size:var(--fs-xs);font-weight:400;margin-left:8px}.device-address{display:flex;align-items:center;margin-top:12px;padding:3px 3px 3px 12px;gap:4px;border:1px solid var(--control-border);background:var(--bg-elev);border-radius:10px}.device-address input{width:0;flex:1;min-width:0;border:0;background:transparent;color:var(--text);padding:8px 0;font-size:var(--fs-sm)}.device-address .btn{flex-shrink:0}.device-network-note{margin-top:10px;color:var(--text-muted)}.device-network-note summary{font-weight:400;font-size:var(--fs-xs)}.device-page kbd{border:1px solid var(--control-border);padding:1px 6px;border-radius:4px;color:var(--text);font-size:var(--fs-xs)}.device-pairing{display:flex;flex-direction:column}.device-pair-stage{flex:1;display:flex;flex-direction:column;align-items:center;text-align:center;padding:6px 0 20px}.device-pair-symbol{color:var(--accent);padding:14px;border:1px solid var(--divider);border-radius:50%;background:var(--bg-elev-2);margin-bottom:10px}.device-pair-symbol .ui-icon{width:28px;height:28px}.device-pair-stage .btn{margin-top:20px;min-width:180px}.device-pair-meta{display:block;font-size:var(--fs-xs);min-height:20px;color:var(--text-muted);margin-top:10px;font-variant-numeric:tabular-nums}.device-page .pair-code{width:100%;box-sizing:border-box;margin:6px 0;font-size:var(--fs-display);letter-spacing:.12em;overflow-wrap:anywhere;user-select:all}.device-pair-stage:has(.pair-code:not(.hidden)) .device-pair-symbol{display:none}.device-next{display:flex;gap:12px;padding-top:20px;border-top:1px solid var(--divider)}.device-next>span{color:var(--accent);padding-top:2px}.device-next strong{font-size:var(--fs-sm);font-weight:600}.device-next p{font-size:var(--fs-sm)}.device-privacy{color:var(--text-muted);font-size:var(--fs-xs);margin:16px 0 0 32px}.device-connected{margin-top:20px}.device-list-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.device-list-heading p{font-size:var(--fs-sm)}.device-page .devices-list{margin-top:18px;gap:0}.device-page .device-row{border:0;border-top:1px solid var(--divider);border-radius:0;background:transparent;padding:20px 0;gap:16px}.device-page .device-main{min-width:0}.device-page .device-name{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.device-page .state-block{padding:24px 12px}.device-help{color:var(--text-muted);margin:22px 4px 0;font-size:var(--fs-sm)}.device-help summary{display:flex;align-items:center;gap:8px;width:fit-content;min-height:40px}.device-help>div{max-width:78ch;padding:4px 0 12px 28px}.device-help a{display:inline-block;margin-top:10px}.device-page :is(button,a,input,summary):focus-visible{outline:3px solid var(--accent);outline-offset:3px}@media (max-width: 800px){.device-setup-grid{grid-template-columns:minmax(0,1fr)}.device-heading{margin-bottom:22px}.device-heading h2{font-size:var(--fs-xl)}.device-heading-icon{display:none}.device-panel{padding:22px 18px}.device-download{flex-wrap:wrap}.device-download .device-download-btn,.device-page .btn{min-height:44px}.device-pair-stage{padding-top:0}}@media (prefers-contrast: more){.device-panel{background:var(--bg-elev);backdrop-filter:none;box-shadow:none;border-color:var(--control-border)}}.device-list-heading>.btn{flex-shrink:0;white-space:nowrap}@media (max-width: 440px){.device-download .device-download-btn{width:100%;justify-content:center}.device-list-heading{align-items:flex-start}}.credit-packages{display:grid;gap:10px;grid-template-columns:repeat(3,minmax(0,1fr))}.credit-package{border:1px solid var(--border);border-radius:14px;background:var(--bg-elev)}.credit-package>span{display:flex;flex-direction:column;align-items:flex-start;gap:3px}.credit-package small{color:var(--text-muted)}@media (max-width:640px){.credit-packages{grid-template-columns:1fr}}
