html.fpv-page-root,html.fpv-page-root body,body.fpv-page-body{background:var(--bg);height:auto;min-height:100svh;overflow:hidden auto}.fpv-root{--fpv-draw:#18d9b5;--fpv-draw-accent:#ffcf5a;min-height:100svh;color:var(--ink);background:var(--bg)}.fpv-body{width:min(1480px,100% - 48px);margin:0 auto;padding:80px 0 64px}.fpv-hero{border-bottom:1px solid var(--line);margin-bottom:22px;padding:8px 0 22px}.fpv-hero p,.fpv-hero span{color:var(--ink-3);margin:0;font-size:14px;line-height:1.6;display:block}.fpv-hero p{color:var(--brand-ink);text-transform:uppercase;letter-spacing:.06em;margin-bottom:8px;font-size:11px;font-weight:700}.fpv-hero h1{color:var(--ink);letter-spacing:-.025em;margin:0 0 6px;font-size:clamp(28px,4vw,46px);font-weight:800;line-height:1.05}.fpv-workspace{grid-template-columns:minmax(0,1.1fr) minmax(400px,1fr);align-items:start;gap:16px;display:grid}.fpv-col{flex-direction:column;gap:16px;min-width:0;display:flex}.fpv-col-right{position:sticky;top:72px}.fpv-panel,.fpv-stage-panel{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--panel);box-shadow:var(--shadow-sm)}.fpv-panel{flex-direction:column;gap:16px;padding:18px;display:flex}.fpv-stage-panel{min-width:0;overflow:hidden}.fpv-panel-head h2,.fpv-stage-head h2{margin:0;font-size:16px;font-weight:700;line-height:1.25}.fpv-panel-head p,.fpv-stage-head p{color:var(--ink-3);margin:6px 0 0;font-size:12.5px;line-height:1.6}.fpv-stage-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;gap:14px;padding:14px 16px;display:flex}.fpv-stage-title{min-width:0}.fpv-stage-title p{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.fpv-card-tools{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:6px;display:flex}.fpv-path-count{border:1px solid var(--line-2);border-radius:var(--r-pill);color:var(--ink-3);background:var(--panel-2);font-variant-numeric:tabular-nums;padding:5px 11px;font-size:12px;font-weight:600}.fpv-chip{border:1px solid var(--line-2);border-radius:var(--r-sm);background:var(--panel);height:28px;color:var(--ink-2);font:inherit;cursor:pointer;transition:background var(--t-fast) var(--ease-out), border-color var(--t-fast) var(--ease-out);padding:0 11px;font-size:11.5px;font-weight:500}.fpv-chip:not(:disabled):hover{background:var(--panel-2);border-color:var(--line-3)}.fpv-chip:disabled{cursor:not-allowed;opacity:.45}.fpv-chip[hidden]{display:none}.fpv-canvas-shell{background:linear-gradient(45deg, #0f101509 25%, transparent 25%) 0 0 / 20px 20px, linear-gradient(45deg, transparent 75%, #0f101509 75%) 0 0 / 20px 20px, var(--panel-3);min-height:320px;padding:12px;position:relative}.fpv-canvas-shell canvas{border-radius:var(--r-md);background:var(--panel-2);cursor:crosshair;touch-action:none;width:100%;min-height:260px;display:block}.fpv-canvas-shell canvas.is-adding-annotation{cursor:copy}.fpv-canvas-shell canvas.is-dragging-route{cursor:grabbing}.fpv-dropzone{border:1px dashed var(--brand);border-radius:var(--r-md);background:var(--brand-soft);color:var(--ink-4);text-align:center;font:inherit;cursor:pointer;transition:border-color var(--t-fast) var(--ease-out), background var(--t-fast) var(--ease-out);place-content:center;gap:8px;display:grid;position:absolute;inset:12px}.fpv-dropzone:hover{border-color:var(--brand-ink)}.fpv-dropzone strong{color:var(--ink);font-size:16px}.fpv-dropzone span{color:var(--ink-4);font-size:12px}.fpv-dropzone[hidden]{display:none}.fpv-upload-icon{border-radius:var(--r-md);background:linear-gradient(var(--brand), var(--brand)) center / 16px 3px no-repeat, linear-gradient(var(--brand), var(--brand)) center / 3px 16px no-repeat, var(--panel);border:1px solid var(--line-2);width:38px;height:38px;margin:0 auto}.fpv-canvas-shell.is-dragging{outline:2px dashed var(--brand);outline-offset:-8px}.fpv-canvas-shell.is-dragging .fpv-dropzone{border-color:var(--brand-ink);background:var(--brand-soft)}.fpv-control-panel{gap:18px}.fpv-group{gap:10px;display:grid}.fpv-group-label{color:var(--ink-4);text-transform:uppercase;letter-spacing:.06em;font-size:11px;font-weight:600}.fpv-control-grid{grid-template-columns:1fr 1fr;gap:10px 12px;display:grid}.fpv-span-2{grid-column:1/-1}.fpv-control-grid label,.fpv-brief-field,.fpv-prompt-field{gap:6px;display:grid}.fpv-control-grid span,.fpv-brief-field span,.fpv-prompt-field span{color:var(--ink-3);font-size:11.5px;font-weight:600}.fpv-control-grid select,.fpv-brief-field input,.fpv-brief-field textarea,.fpv-prompt-field textarea{border:1px solid var(--line-2);border-radius:var(--r-md);width:100%;color:var(--ink);background:var(--panel);font:inherit;transition:border-color var(--t-fast) var(--ease-out), box-shadow var(--t-fast) var(--ease-out)}.fpv-control-grid select{min-height:38px;padding:0 10px}.fpv-brief-grid{grid-template-columns:1fr 1fr;gap:10px 12px;display:grid}.fpv-brief-field input{min-height:38px;padding:0 10px}.fpv-brief-field textarea{resize:vertical;min-height:168px;padding:9px 10px;font-size:12px;line-height:1.55}.fpv-prompt-field textarea.fpv-imagebrief{min-height:84px;font-family:inherit;font-size:16px;line-height:1.5}.fpv-control-grid select:focus,.fpv-brief-field input:focus,.fpv-brief-field textarea:focus,.fpv-prompt-field textarea:focus{border-color:var(--brand);box-shadow:var(--ring);outline:none}.fpv-segment-panel{gap:10px;display:grid}.fpv-segment-empty,.fpv-segment-head,.fpv-segment-row{border:1px solid var(--line);border-radius:var(--r-md);background:var(--panel-2)}.fpv-segment-empty{gap:4px;padding:12px;display:grid}.fpv-segment-empty strong,.fpv-segment-head strong,.fpv-segment-title strong{color:var(--ink);font-size:12.5px}.fpv-segment-empty span,.fpv-segment-head span,.fpv-segment-title span,.fpv-segment-row label span{color:var(--ink-4);font-size:11.5px;font-weight:600}.fpv-segment-head{justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;display:flex}.fpv-segment-list{gap:8px;max-height:260px;padding-right:2px;display:grid;overflow:auto}.fpv-segment-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px 10px;padding:10px;display:grid}.fpv-segment-title{grid-column:1/-1;align-items:baseline;gap:8px;display:flex}.fpv-segment-title strong{flex-shrink:0}.fpv-segment-row label{gap:5px;display:grid}.fpv-segment-row select{border:1px solid var(--line-2);border-radius:var(--r-sm);width:100%;min-height:34px;color:var(--ink);background:var(--panel);font:inherit;padding:0 9px}.fpv-annotation-panel{gap:10px;display:grid}.fpv-annotation-actions{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;display:grid}.fpv-annotation-empty,.fpv-annotation-item{border:1px solid var(--line);border-radius:var(--r-md);background:var(--panel-2)}.fpv-annotation-empty{gap:4px;padding:12px;display:grid}.fpv-annotation-empty strong,.fpv-annotation-title strong{color:var(--ink);font-size:12.5px}.fpv-annotation-empty span,.fpv-annotation-title span,.fpv-annotation-grid label span,.fpv-annotation-note span{color:var(--ink-4);font-size:11.5px;font-weight:600}.fpv-annotation-list{gap:8px;max-height:360px;padding-right:2px;display:grid;overflow:auto}.fpv-annotation-item{gap:9px;padding:10px;display:grid}.fpv-annotation-title{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;display:grid}.fpv-annotation-title span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.fpv-annotation-remove{color:var(--danger);font:inherit;cursor:pointer;background:0 0;border:0;padding:0;font-size:11.5px;font-weight:600}.fpv-annotation-action{border:1px solid var(--line-2);border-radius:var(--r-sm);width:100%;min-height:38px;color:var(--ink);background:var(--panel);font:inherit;padding:7px 10px;font-size:16px}.fpv-annotation-action::placeholder{color:var(--ink-3,var(--ink-2));font-size:13px}.fpv-annotation-action:focus{border-color:var(--accent,#18d9b5);outline:none}.fpv-annotation-grid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.fpv-annotation-grid label,.fpv-annotation-note{gap:5px;display:grid}.fpv-annotation-grid select,.fpv-annotation-note textarea{border:1px solid var(--line-2);border-radius:var(--r-sm);width:100%;color:var(--ink);background:var(--panel);font:inherit}.fpv-annotation-grid select{min-height:34px;padding:0 9px}.fpv-annotation-note textarea{resize:vertical;min-height:58px;padding:8px 9px;font-size:12px;line-height:1.55}.fpv-prompt-field textarea{resize:vertical;min-height:200px;font-family:var(--font-mono);padding:12px;font-size:12px;line-height:1.6}.fpv-actions{flex-wrap:wrap;gap:10px;display:flex}.fpv-primary,.fpv-secondary{border-radius:var(--r-md);min-height:38px;font:inherit;cursor:pointer;transition:transform var(--t-fast) var(--ease-out), box-shadow var(--t-fast) var(--ease-out), background var(--t-fast) var(--ease-out);padding:0 16px;font-weight:600}.fpv-primary{border:1px solid var(--accent);color:var(--accent-on);background:var(--accent);box-shadow:var(--shadow-sm);flex:1}.fpv-primary:not(:disabled):hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.fpv-secondary{border:1px solid var(--line-2);color:var(--ink-2);background:var(--panel)}.fpv-secondary:not(:disabled):hover{background:var(--panel-2);border-color:var(--line-3)}.fpv-primary:disabled,.fpv-secondary:disabled{cursor:not-allowed;opacity:.48}.fpv-wide{width:100%}.fpv-image-box{border:1px solid var(--line);border-radius:var(--r-md);background:var(--panel-3);min-height:140px;margin-top:10px;overflow:hidden}.fpv-image-box:empty:before{content:attr(data-empty);min-height:140px;color:var(--ink-4);place-items:center;font-size:12.5px;display:grid}.fpv-firstframe-img{width:100%;height:auto;display:block}.fpv-video-box{border:1px solid var(--line);border-radius:var(--r-md);background:var(--panel-3);min-height:220px;overflow:hidden}.fpv-video-box:empty:before{content:attr(data-empty);min-height:220px;color:var(--ink-4);place-items:center;font-size:12.5px;display:grid}.fpv-video-player{background:#000;width:100%;max-height:520px;display:block}.fpv-status{min-height:220px;color:var(--ink-3);text-align:center;place-content:center;gap:8px;padding:20px;line-height:1.6;display:grid}.fpv-status small{color:var(--ink-4);overflow-wrap:anywhere}.fpv-status-error{color:var(--danger)}.fpv-spinner{border:3px solid var(--brand-soft);border-top-color:var(--brand);border-radius:50%;width:26px;height:26px;margin:0 auto;animation:.8s linear infinite fpv-spin}@keyframes fpv-spin{to{transform:rotate(360deg)}}@media (max-width:1080px){.fpv-workspace{grid-template-columns:1fr}.fpv-col-right{position:static}}@media (max-width:720px){.fpv-body{width:min(100% - 24px,100%);padding-top:76px}.fpv-control-grid,.fpv-brief-grid{grid-template-columns:1fr}.fpv-stage-head{flex-direction:column}.fpv-card-tools{justify-content:flex-start}}:root[data-theme=dark] .fpv-root{--panel:#0f172a;--panel-2:#1e293b;--panel-3:#0b1220;--line-2:#334155;--line-3:#475569;--ink-3:#94a3b8;--ink-4:#64748b;--brand-soft:#60a5fa1f}:root[data-theme=dark] .fpv-prompt-field textarea::placeholder,:root[data-theme=dark] .fpv-control-grid select::placeholder{color:var(--ink-4)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .fpv-root{--panel:#0f172a;--panel-2:#1e293b;--panel-3:#0b1220;--line-2:#334155;--line-3:#475569;--ink-3:#94a3b8;--ink-4:#64748b;--brand-soft:#60a5fa1f}:root:not([data-theme=light]) .fpv-prompt-field textarea::placeholder{color:var(--ink-4)}}
