:root{--bg:#f6f5f2;--fg:#1d1d1f;--panel:#fff;--border:#d8d6d0;--accent:#2f6fdb;--accent-fg:#fff;--error:#c0392b;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#151517;--fg:#f2f2f2;--panel:#232326;--border:#3a3a3f;--accent:#5b94f0;--accent-fg:#0b0b0c;--error:#ff6b5e}}*{box-sizing:border-box}body{background:var(--bg);color:var(--fg);margin:0;font:16px/1.4 system-ui,sans-serif}.app{flex-direction:column;max-width:720px;min-height:100dvh;margin:0 auto;display:flex}.app.editing{max-width:900px;height:100dvh;min-height:0;overflow:hidden}.topbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding:8px 16px;display:flex}main{flex:1;padding:0 16px}button,.button{border:1px solid var(--border);background:var(--panel);min-height:44px;color:var(--fg);font:inherit;cursor:pointer;border-radius:10px;justify-content:center;align-items:center;padding:0 14px;display:inline-flex}button.primary{background:var(--accent);color:var(--accent-fg);border-color:var(--accent)}button.on{outline:2px solid var(--accent)}button:disabled{opacity:.45;cursor:default}.big{min-width:140px}.row{align-items:center;gap:8px;display:flex}.row.wrap{flex-wrap:wrap}.camera{flex-direction:column;align-items:center;gap:12px;padding-top:12px;display:flex}.camera video{object-fit:cover;background:#000;border-radius:12px;width:100%;max-height:60dvh}.editor{display:flex;position:absolute;inset:0}.canvas-outer{flex:auto;justify-content:center;align-items:center;min-width:0;display:flex;position:relative}.canvas-outer .canvas-wrap{margin:0}.rail{padding:calc(8px + env(safe-area-inset-top)) 0 8px;background:var(--bg);border-left:1px solid var(--border);z-index:3;flex-direction:column;flex:0 0 56px;justify-content:space-between;align-items:center;display:flex}.rail-group{flex-direction:column;align-items:center;gap:10px;display:flex}.stage{background:#000;flex:auto;min-height:0;position:relative}.fab{background:var(--panel);width:44px;height:44px;min-height:44px;color:var(--fg);border-color:var(--border);border-radius:50%;padding:0;font-size:20px}.fab.primary{background:var(--accent);color:var(--accent-fg);border-color:#0000}.sheet{background:var(--bg);border-top:1px solid var(--border);max-height:44dvh;padding-bottom:env(safe-area-inset-bottom);flex:none;overflow-y:auto}.sheet .tabs{z-index:2;background:var(--bg);padding:6px 8px;position:sticky;top:0}.sheet .tabs button{min-height:40px}.sheet .tabs button.icon{flex:0 0 40px;padding:0;font-size:18px}.sheet-body{flex-direction:column;gap:8px;padding:0 12px 8px;display:flex}button.link{opacity:.8;background:0 0;border:none;min-height:32px;font-size:14px;text-decoration:underline}.canvas-wrap{touch-action:none;background:#000;margin:0 auto;position:relative;overflow:hidden}.canvas-box{position:absolute}.compare-box{pointer-events:none}.canvas-inner{transform-origin:0 0;pointer-events:none;width:100%;height:100%;position:absolute;top:0;left:0}.canvas-inner canvas{width:100%;height:100%;display:block}.canvas-wrap .overlay{touch-action:none;display:block;position:absolute;top:0;left:0}.compare-overlay{pointer-events:none;position:absolute;inset:0}.compare-line{background:#fff;width:2px;margin-left:-1px;position:absolute;top:0;bottom:0;box-shadow:0 0 4px #0009}.compare-handle{pointer-events:auto;touch-action:none;color:#222;cursor:ew-resize;background:#fff;border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;margin:-22px 0 0 -22px;display:flex;position:absolute;top:50%;left:50%;box-shadow:0 1px 6px #00000080}.status{z-index:3;color:#fff;pointer-events:none;background:#0009;border-radius:8px;max-width:calc(100% - 80px);margin:0;padding:4px 10px;font-size:13px;position:absolute;bottom:8px;left:8px}.tabs{gap:6px;display:flex}.tabs button{flex:1;padding:0 6px}.panel{flex-direction:column;gap:8px;display:flex}.panel label{flex-direction:column;gap:4px;font-size:14px;display:flex}.panel label.check,.dialog label.check{flex-direction:row;align-items:center;gap:8px}.swatches{flex-wrap:wrap;gap:8px;display:flex}.swatch{border-radius:50%;width:40px;height:40px;min-height:40px;padding:0}.swatch.small{width:28px;height:28px;min-height:28px}.swatch[aria-pressed=true]{outline:3px solid var(--accent)}input[type=text],input:not([type]),input[type=email],textarea{font:inherit;border:1px solid var(--border);background:var(--panel);color:var(--fg);border-radius:8px;padding:8px}input[aria-invalid=true]{border-color:var(--error)}input[type=color]{background:0 0;border:none;width:48px;height:44px;padding:0}.hint{opacity:.8;margin:0;font-size:13px}.error{color:var(--error);margin:0}.legal{opacity:.8;text-align:center;margin:24px 0 8px;font-size:13px}.legal a{color:inherit}.dialog-backdrop{z-index:10;background:#00000080;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.dialog{background:var(--panel);border-radius:14px;flex-direction:column;gap:12px;width:100%;max-width:440px;max-height:90dvh;padding:16px;display:flex;overflow:auto}.dialog h2{margin:0;font-size:20px}.dialog label{flex-direction:column;gap:4px;font-size:14px;display:flex}.dialog .row{flex-wrap:wrap;justify-content:flex-end}.rating{gap:4px;display:flex}.star{opacity:.5;width:40px;min-height:40px;padding:0;font-size:22px}.star.on{opacity:1;color:#e3b94f}.pill{border-radius:16px;min-height:32px;padding:0 12px;font-size:14px}.pill.include{border-color:#2ecc71}.pill.exclude{border-color:#ff5a5f}.pill.on.include{color:#0b0b0c;background:#2ecc71}.pill.on.exclude{color:#0b0b0c;background:#ff5a5f}.zones-section{border-top:1px solid var(--border);padding:8px 0 0}.zones-head{margin-bottom:8px}.zones-head .spacer{flex:1}.zones-head button{min-height:36px;font-size:14px}.zones{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.zone{border:1px solid var(--border);background:var(--panel);border-radius:10px;align-items:center;gap:6px;padding:4px 6px;display:flex}.zone.selected{outline:2px solid var(--accent)}.zone.dragging{opacity:.5}.zone.drop-target{border-top:3px solid var(--accent)}.zone button{min-width:36px;min-height:36px;padding:0 6px}.zone .grip{touch-action:none;cursor:grab}.zone input[type=checkbox]{width:22px;height:22px}.zone-name{flex:1;min-width:0;padding:6px}.zone-color{border:2px solid var(--border);background:0 0;border-radius:50%;flex:none;width:32px;height:32px;min-height:0;padding:0}.zone-color.inherited{border-style:dashed}
