@import"https://fonts.googleapis.com/css2?family=DM+Sans:opsz,wght@9..40,300;9..40,400;9..40,500;9..40,600;9..40,700&family=JetBrains+Mono:wght@400;500;600&display=swap";.react-grid-layout{position:relative;transition:height .2s ease}.react-grid-item{transition:all .2s ease;transition-property:left,top,width,height}.react-grid-item img{pointer-events:none;-webkit-user-select:none;user-select:none}.react-grid-item.cssTransforms{transition-property:transform,width,height}.react-grid-item.resizing{transition:none;z-index:1;will-change:width,height}.react-grid-item.react-draggable-dragging{transition:none;z-index:3;will-change:transform}.react-grid-item.dropping{visibility:hidden}.react-grid-item.react-grid-placeholder{background:red;opacity:.2;transition-duration:.1s;z-index:2;-webkit-user-select:none;user-select:none}.react-grid-item.react-grid-placeholder.placeholder-resizing{transition:none}.react-grid-item>.react-resizable-handle{position:absolute;width:20px;height:20px;opacity:0}.react-grid-item:hover>.react-resizable-handle{opacity:1}.react-grid-item>.react-resizable-handle:after{content:"";position:absolute;right:3px;bottom:3px;width:5px;height:5px;border-right:2px solid rgba(0,0,0,.4);border-bottom:2px solid rgba(0,0,0,.4)}.react-resizable-hide>.react-resizable-handle{display:none}.react-grid-item>.react-resizable-handle.react-resizable-handle-sw{bottom:0;left:0;cursor:sw-resize;transform:rotate(90deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-se{bottom:0;right:0;cursor:se-resize}.react-grid-item>.react-resizable-handle.react-resizable-handle-nw{top:0;left:0;cursor:nw-resize;transform:rotate(180deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-ne{top:0;right:0;cursor:ne-resize;transform:rotate(270deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-w,.react-grid-item>.react-resizable-handle.react-resizable-handle-e{top:50%;margin-top:-10px;cursor:ew-resize}.react-grid-item>.react-resizable-handle.react-resizable-handle-w{left:0;transform:rotate(135deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-e{right:0;transform:rotate(315deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-n,.react-grid-item>.react-resizable-handle.react-resizable-handle-s{left:50%;margin-left:-10px;cursor:ns-resize}.react-grid-item>.react-resizable-handle.react-resizable-handle-n{top:0;transform:rotate(225deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-s{bottom:0;transform:rotate(45deg)}.crp-panel{margin:0 var(--sp-3) var(--sp-2);border-top:1px solid var(--border);padding-top:var(--sp-2)}.crp-loading,.crp-error{font-size:12px;color:var(--text-disabled);padding:var(--sp-2) 0}.crp-error{color:var(--danger)}.crp-empty{font-size:12px;color:var(--text-disabled);padding:var(--sp-2) 0}.crp-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:1px}.crp-row{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);padding:5px var(--sp-1);border-radius:var(--radius);transition:background var(--dur-fast)}.crp-row:hover{background:var(--bg-hover)}.crp-name{font-size:var(--text-xs);font-weight:var(--weight-medium);color:var(--text-secondary);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.crp-badge{display:inline-block;padding:1px 7px;border-radius:999px;font-size:10px;font-weight:var(--weight-semibold);letter-spacing:.03em;white-space:nowrap;border:1px solid;background:transparent;opacity:.85}.crp-toggle{position:relative;display:inline-flex;width:32px;height:18px;cursor:pointer;flex-shrink:0}.crp-toggle input[type=checkbox]{position:absolute;width:0;height:0;opacity:0;margin:0}.crp-toggle-track{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:999px;background:var(--bg-tertiary);border:1px solid var(--border-hover);transition:background .18s,border-color .18s}.crp-toggle-track:after{content:"";position:absolute;top:2px;left:2px;width:12px;height:12px;border-radius:50%;background:var(--text-disabled);transition:transform .18s,background .18s}.crp-toggle input[type=checkbox]:checked+.crp-toggle-track{background:#00d4aa26;border-color:#00d4aa66}.crp-toggle input[type=checkbox]:checked+.crp-toggle-track:after{transform:translate(14px);background:var(--accent)}.crp-toggle input[type=checkbox]:disabled+.crp-toggle-track{opacity:.4;cursor:not-allowed}.react-flow{direction:ltr}.react-flow__container{position:absolute;width:100%;height:100%;top:0;left:0}.react-flow__pane{z-index:1;cursor:-webkit-grab;cursor:grab}.react-flow__pane.selection{cursor:pointer}.react-flow__pane.dragging{cursor:-webkit-grabbing;cursor:grabbing}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow .react-flow__edges{pointer-events:none;overflow:visible}.react-flow__edge-path,.react-flow__connection-path{stroke:#b1b1b7;stroke-width:1;fill:none}.react-flow__edge{pointer-events:visibleStroke;cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;-webkit-animation:dashdraw .5s linear infinite;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;-webkit-animation:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge:focus .react-flow__edge-path,.react-flow__edge:focus-visible .react-flow__edge-path{stroke:#555}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge-textbg{fill:#fff}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;-webkit-animation:dashdraw .5s linear infinite;animation:dashdraw .5s linear infinite}.react-flow__connectionline{z-index:1001}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:-webkit-grab;cursor:grab}.react-flow__node.dragging{cursor:-webkit-grabbing;cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.react-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:-webkit-grab;cursor:grab}.react-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px;width:6px;height:6px;background:#1a192b;border:1px solid white;border-radius:100%}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;left:50%;bottom:-4px;transform:translate(-50%)}.react-flow__handle-top{left:50%;top:-4px;transform:translate(-50%)}.react-flow__handle-left{top:50%;left:-4px;transform:translateY(-50%)}.react-flow__handle-right{right:-4px;top:50%;transform:translateY(-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__panel{position:absolute;z-index:5;margin:15px}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.center{left:50%;transform:translate(-50%)}.react-flow__attribution{font-size:10px;background:#ffffff80;padding:2px 3px;margin:0}.react-flow__attribution a{text-decoration:none;color:#999}@-webkit-keyframes dashdraw{0%{stroke-dashoffset:10}}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{position:absolute;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-default,.react-flow__node-input,.react-flow__node-output,.react-flow__node-group{padding:10px;border-radius:3px;width:150px;font-size:12px;color:#222;text-align:center;border-width:1px;border-style:solid;border-color:#1a192b;background-color:#fff}.react-flow__node-default.selectable:hover,.react-flow__node-input.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:0 1px 4px 1px #00000014}.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:0 0 0 .5px #1a192b}.react-flow__node-group{background-color:#f0f0f040}.react-flow__nodesselection-rect,.react-flow__selection{background:#0059dc14;border:1px dotted rgba(0,89,220,.8)}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls{box-shadow:0 0 2px 1px #00000014}.react-flow__controls-button{border:none;background:#fefefe;border-bottom:1px solid #eee;box-sizing:content-box;display:flex;justify-content:center;align-items:center;width:16px;height:16px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;padding:5px}.react-flow__controls-button:hover{background:#f4f4f4}.react-flow__controls-button svg{width:100%;max-width:12px;max-height:12px}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__minimap{background-color:#fff}.react-flow__minimap svg{display:block}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{width:4px;height:4px;border:1px solid #fff;border-radius:1px;background-color:#3367d9;transform:translate(-50%,-50%)}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:#3367d9;border-width:0;border-style:solid}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;transform:translate(-50%);top:0;height:100%}.react-flow__resize-control.line.left{left:0;border-left-width:1px}.react-flow__resize-control.line.right{left:100%;border-right-width:1px}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{height:1px;transform:translateY(-50%);left:0;width:100%}.react-flow__resize-control.line.top{top:0;border-top-width:1px}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.lp-root{--lp-bg: oklch(.16 .008 220);--lp-bg-raise: oklch(.195 .009 220);--lp-bg-elevated: oklch(.23 .01 220);--lp-bg-deep: oklch(.12 .006 220);--lp-text: oklch(.96 .005 220);--lp-text-mid: oklch(.78 .008 220);--lp-text-dim: oklch(.6 .01 220);--lp-text-faint: oklch(.42 .01 220);--lp-line: oklch(.3 .012 220 / .5);--lp-line-strong: oklch(.4 .014 220 / .7);--lp-accent: oklch(.78 .14 175);--lp-accent-hi: oklch(.86 .12 175);--lp-accent-lo: oklch(.55 .1 175);--lp-accent-tint: oklch(.78 .14 175 / .12);--lp-font: "DM Sans", system-ui, -apple-system, sans-serif;--lp-font-mono: "JetBrains Mono", ui-monospace, monospace;--lp-container: 1180px;--lp-radius: 12px;--lp-radius-sm: 8px;--lp-radius-lg: 18px;--lp-bg-card: oklch(.195 .009 220);--lp-ease: cubic-bezier(.22, 1, .36, 1);background:var(--lp-bg);color:var(--lp-text);font-family:var(--lp-font);font-feature-settings:"ss01","cv11";-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;min-height:100vh;position:relative;isolation:isolate;overflow-x:clip}.lp-root *,.lp-root *:before,.lp-root *:after{box-sizing:border-box}.lp-container{width:100%;max-width:var(--lp-container);margin-inline:auto;padding-inline:clamp(20px,4vw,40px)}.lp-h1{font-size:clamp(2.4rem,5.4vw,4.25rem);line-height:1.04;letter-spacing:-.025em;font-weight:500;margin:0 0 1.25rem;color:var(--lp-text);max-width:18ch}.lp-h1__accent{color:var(--lp-accent);font-weight:500}.lp-h2{font-size:clamp(1.7rem,3vw,2.5rem);line-height:1.1;letter-spacing:-.02em;font-weight:500;margin:0 0 .75rem;max-width:22ch}.lp-eyebrow{display:inline-block;font-family:var(--lp-font-mono);font-size:.72rem;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--lp-accent-lo);margin-bottom:.875rem}.lp-section-heading{margin-bottom:clamp(2rem,5vw,3.5rem);max-width:60ch}.lp-section-heading--center{margin-inline:auto;text-align:center}.lp-section-heading__body{font-size:1.0625rem;color:var(--lp-text-mid);max-width:56ch;line-height:1.55;margin:.75rem 0 0}.lp-mono-tag{display:inline-block;font-family:var(--lp-font-mono);font-size:.7rem;letter-spacing:.06em;padding:4px 8px;border:1px solid var(--lp-line);border-radius:999px;color:var(--lp-text-mid);background:transparent;text-transform:none;transition:transform .4s var(--lp-ease),box-shadow .4s var(--lp-ease);transition-delay:calc(var(--item-index, 0) * .12s + .1s)}.lp-capabilities__item--visible .lp-mono-tag{transform:scale(1.02)}.lp-mono-tag--accent{color:var(--lp-accent);border-color:#28d4b259;background:var(--lp-accent-tint)}.lp-mono-tag--muted{color:var(--lp-text-faint)}.lp-btn{display:inline-flex;align-items:center;gap:.5rem;font-family:inherit;font-size:.9375rem;font-weight:500;line-height:1;padding:.75rem 1.125rem;border-radius:var(--lp-radius-sm);border:1px solid transparent;cursor:pointer;text-decoration:none;transition:background-color .18s var(--lp-ease),border-color .18s var(--lp-ease),color .18s var(--lp-ease),transform .22s var(--lp-ease);white-space:nowrap}.lp-btn--sm{padding:.5rem .875rem;font-size:.8125rem}.lp-btn--primary{background:var(--lp-accent);color:#040607}.lp-btn--primary:hover{background:var(--lp-accent-hi);color:#040607;transform:translateY(-1px)}.lp-btn--ghost{background:transparent;color:var(--lp-text);border-color:var(--lp-line-strong)}.lp-btn--ghost:hover{border-color:#697477;background:#161c1e80}.lp-link-quiet{color:var(--lp-text-mid);text-decoration:none;font-size:.9375rem;font-weight:500;transition:color .16s var(--lp-ease)}.lp-link-quiet:hover{color:var(--lp-text)}.lp-nav{position:sticky;top:0;z-index:50;border-bottom:1px solid transparent;background:#0a0e1000;transition:background-color .22s var(--lp-ease),border-color .22s var(--lp-ease)}.lp-nav--scrolled{background:#060a0bc7;backdrop-filter:saturate(140%) blur(10px);-webkit-backdrop-filter:saturate(140%) blur(10px);border-bottom-color:var(--lp-line)}.lp-nav__row{display:flex;align-items:center;gap:1.5rem;height:64px}@media (max-width: 400px){.lp-nav__row{gap:.75rem}.lp-nav__wordmark{display:none}}.lp-nav__brand{display:inline-flex;align-items:center;gap:.625rem;color:var(--lp-text);text-decoration:none}.lp-nav__mark{color:var(--lp-accent);display:inline-flex}.lp-nav__wordmark{font-weight:500;letter-spacing:-.01em;font-size:1rem}.lp-nav__links{display:flex;align-items:center;gap:1.5rem;margin-inline-start:1.5rem}.lp-nav__links a{font-size:.875rem;color:var(--lp-text-mid);text-decoration:none;transition:color .16s var(--lp-ease)}.lp-nav__links a:hover{color:var(--lp-text)}.lp-nav__actions{margin-inline-start:auto;display:flex;align-items:center;gap:1rem}.lp-nav__lang{position:relative}.lp-nav__lang>.dropdown{position:relative!important;top:auto!important;inset-inline-end:auto!important}.lp-nav__burger{display:none;align-items:center;justify-content:center;width:40px;height:40px;padding:0;background:transparent;border:1px solid var(--lp-line);border-radius:var(--lp-radius-sm);cursor:pointer;color:var(--lp-text);flex-shrink:0}.lp-nav__burger-icon{display:flex;flex-direction:column;gap:5px;width:18px}.lp-nav__burger-icon span{display:block;height:1.5px;background:currentColor;border-radius:2px;transform-origin:center;transition:transform .22s var(--lp-ease),opacity .16s var(--lp-ease),width .16s var(--lp-ease)}.lp-nav__burger-icon.is-open span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}.lp-nav__burger-icon.is-open span:nth-child(2){opacity:0;transform:scaleX(0)}.lp-nav__burger-icon.is-open span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}.lp-nav__backdrop{display:none;position:fixed;top:0;right:0;bottom:0;left:0;z-index:48;background:#01020299;opacity:0;transition:opacity .28s var(--lp-ease)}.lp-nav__backdrop.is-visible{opacity:1}.lp-nav__drawer{display:none;position:fixed;inset-block:0;inset-inline-end:0;z-index:49;width:min(320px,88vw);background:#050809;border-inline-start:1px solid var(--lp-line);padding:4rem 1.5rem 2rem;flex-direction:column;gap:2rem;transform:translate(100%);transition:transform .3s var(--lp-ease);overflow-y:auto}[dir=rtl] .lp-nav__drawer{transform:translate(-100%);border-inline-start:none;border-inline-end:1px solid var(--lp-line)}.lp-nav__drawer.is-open,[dir=rtl] .lp-nav__drawer.is-open{transform:translate(0)}.lp-nav__drawer-close{position:absolute;top:1rem;inset-inline-end:1rem;display:flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;background:transparent;border:1px solid var(--lp-line);border-radius:var(--lp-radius-sm);cursor:pointer;color:var(--lp-text-mid);transition:color .16s var(--lp-ease),border-color .16s var(--lp-ease)}.lp-nav__drawer-close:hover{color:var(--lp-text);border-color:var(--lp-line-strong)}.lp-nav__drawer-links{display:flex;flex-direction:column;gap:.25rem}.lp-nav__drawer-links a{display:block;font-size:1.0625rem;font-weight:500;color:var(--lp-text-mid);text-decoration:none;padding:.75rem .5rem;border-radius:var(--lp-radius-sm);transition:color .16s var(--lp-ease),background-color .16s var(--lp-ease)}.lp-nav__drawer-links a:hover{color:var(--lp-text);background:var(--lp-bg-raise)}.lp-nav__drawer-actions{display:flex;flex-direction:column;gap:.75rem;padding-top:1rem;border-top:1px solid var(--lp-line)}.lp-nav__drawer-actions .lp-btn{justify-content:center;width:100%}@media (max-width: 860px){.lp-nav__links,.lp-nav__signin,.lp-nav__cta{display:none}.lp-nav__burger{display:inline-flex}.lp-nav__backdrop{display:block}.lp-nav__drawer{display:flex}}.lp-hero{position:relative;padding-top:clamp(3rem,7vw,5.5rem);padding-bottom:clamp(2.5rem,5vw,4rem);overflow:hidden}.lp-hero:before{content:"";position:absolute;top:-10%;right:-10%;bottom:40%;left:-10%;background:radial-gradient(50% 50% at 30% 20%,oklch(.78 .14 175 / .1),transparent 70%);pointer-events:none;z-index:-1}.lp-hero__grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:clamp(2rem,5vw,4rem);align-items:center}@media (max-width: 960px){.lp-hero__grid{grid-template-columns:1fr}}@media (max-width: 480px){.lp-hero__ctas{flex-direction:column;align-items:stretch}.lp-hero__ctas .lp-btn,.lp-hero__ctas .lp-link-quiet{text-align:center;justify-content:center;width:100%}}.lp-hero__sub{font-size:1.125rem;line-height:1.55;color:var(--lp-text-mid);max-width:52ch;margin:0 0 2rem}.lp-hero__ctas{display:flex;align-items:center;gap:.875rem;flex-wrap:wrap}.lp-camera-tile{margin:0;display:flex;flex-direction:column;gap:.75rem}.lp-camera-tile__frame{position:relative;aspect-ratio:5 / 3;border-radius:var(--lp-radius);overflow:hidden;border:1px solid var(--lp-line);background:var(--lp-bg-deep);box-shadow:0 30px 60px -20px #0009}.lp-camera-tile__scene{width:100%;height:100%;display:block}.lp-camera-tile__chrome{position:absolute;top:12px;inset-inline:12px;display:flex;align-items:center;justify-content:space-between;font-family:var(--lp-font-mono);font-size:.68rem;letter-spacing:.08em;color:#c8cfd1d9}.lp-camera-tile__rec{display:inline-flex;align-items:center;gap:6px;padding:3px 8px;border-radius:999px;background:#121719b3;border:1px solid var(--lp-line)}.lp-camera-tile__rec-dot{width:6px;height:6px;border-radius:50%;background:#f14d4c;box-shadow:0 0 8px #f14d4c99;animation:lp-pulse 1.6s var(--lp-ease) infinite}.lp-camera-tile__timecode{color:#a9afb1d9}.lp-camera-tile__bottom{position:absolute;bottom:12px;inset-inline:12px;display:flex;align-items:center;justify-content:space-between;font-size:.78rem}.lp-camera-tile__label{font-family:var(--lp-font-mono);color:#d9dfe2;letter-spacing:.02em}.lp-camera-tile__status{font-family:var(--lp-font-mono);color:var(--lp-accent);letter-spacing:.04em}.lp-camera-tile__caption{font-family:var(--lp-font-mono);font-size:.78rem;color:var(--lp-text-faint);letter-spacing:.02em;padding-inline-start:2px}@keyframes lp-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.45;transform:scale(.85)}}@media (prefers-reduced-motion: reduce){.lp-camera-tile__rec-dot{animation:none}}.lp-status{border-block:1px solid var(--lp-line);background:var(--lp-bg-deep)}.lp-status__row{display:flex;align-items:center;gap:clamp(1.25rem,4vw,3rem);padding-block:.875rem;font-family:var(--lp-font-mono);font-size:.78rem;letter-spacing:.04em;overflow-x:auto;scrollbar-width:none}.lp-status__row::-webkit-scrollbar{display:none}.lp-status__cell{display:inline-flex;align-items:baseline;gap:.5rem;white-space:nowrap}.lp-status__dot{width:6px;height:6px;border-radius:50%;background:var(--lp-accent);box-shadow:0 0 6px var(--lp-accent-tint);align-self:center}.lp-status__value{color:var(--lp-text);font-weight:500}.lp-status__label{color:var(--lp-text-faint)}.lp-capabilities{padding-block:clamp(5rem,10vw,8rem);background:var(--lp-bg-deep);border-block:1px solid var(--lp-line)}.lp-cap-layout{display:grid;grid-template-columns:220px 1fr;gap:clamp(2rem,5vw,3.5rem);align-items:start}@media (max-width: 900px){.lp-cap-layout{grid-template-columns:1fr}}.lp-cap-nav{position:sticky;top:88px}@media (max-width: 900px){.lp-cap-nav{position:static;margin-bottom:2rem}.lp-cap-nav__list{flex-direction:row;overflow-x:auto;gap:.375rem;padding-bottom:.25rem;scrollbar-width:none;-ms-overflow-style:none}.lp-cap-nav__list::-webkit-scrollbar{display:none}.lp-cap-nav__btn{white-space:nowrap;width:auto;flex-shrink:0;padding:.5rem .875rem}.lp-cap-nav__label{font-size:.8125rem}}.lp-cap-nav__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.lp-cap-nav__btn{display:flex;align-items:center;gap:.75rem;width:100%;padding:.625rem .75rem;background:transparent;border:1px solid transparent;border-radius:var(--lp-radius-sm);cursor:pointer;text-align:start;transition:background-color .25s var(--lp-ease),border-color .25s var(--lp-ease)}.lp-cap-nav__btn:hover{background:var(--lp-bg-raise)}.lp-cap-nav__btn.is-active{background:var(--lp-accent-tint);border-color:#28d4b238}.lp-cap-nav__marker{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:var(--lp-bg-elevated);border:1px solid var(--lp-line);flex-shrink:0;transition:background-color .3s var(--lp-ease),border-color .3s var(--lp-ease),box-shadow .3s var(--lp-ease),transform .3s var(--lp-ease)}.lp-cap-nav__btn.is-active .lp-cap-nav__marker{background:var(--lp-accent);border-color:var(--lp-accent);transform:scale(1.1);box-shadow:0 0 0 4px #28d4b22e}.lp-cap-nav__num{font-family:var(--lp-font-mono);font-size:.625rem;font-weight:600;color:var(--lp-text-faint);letter-spacing:.04em;transition:color .25s var(--lp-ease)}.lp-cap-nav__btn.is-active .lp-cap-nav__num{color:#0a0e10}.lp-cap-nav__label{font-size:.8125rem;font-weight:500;color:var(--lp-text-faint);line-height:1.3;transition:color .25s var(--lp-ease),font-weight .25s var(--lp-ease)}.lp-cap-nav__btn.is-active .lp-cap-nav__label{color:var(--lp-text);font-weight:700;font-size:.875rem}.lp-cap-content{display:flex;flex-direction:column;gap:.5rem}.lp-capability-card{position:relative;padding:1.5rem 1.75rem;background:var(--lp-bg-raise);border:1px solid var(--lp-line);border-radius:var(--lp-radius);opacity:.28;transform:translate(12px);transition:opacity .45s var(--lp-ease),transform .45s var(--lp-ease),background-color .35s var(--lp-ease),border-color .35s var(--lp-ease),box-shadow .35s var(--lp-ease)}.lp-capability-card.is-active{opacity:1;transform:translate(0);background:#28d4b212;border-color:#28d4b259;box-shadow:0 0 0 1px #28d4b21a,0 16px 40px -12px #00000073}.lp-capability-card__head{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem}.lp-capability-card__step{font-family:var(--lp-font-mono);font-size:.7rem;letter-spacing:.06em;padding:4px 8px;border:1px solid var(--lp-line);border-radius:999px;color:var(--lp-text-faint);background:transparent;transition:color .35s var(--lp-ease),border-color .35s var(--lp-ease),background-color .35s var(--lp-ease)}.lp-capability-card.is-active .lp-capability-card__step{color:var(--lp-accent);border-color:#28d4b266;background:#28d4b21a}.lp-capability-card__title{font-size:clamp(1.125rem,1.8vw,1.375rem);font-weight:400;letter-spacing:-.015em;color:var(--lp-text-mid);margin:0 0 .625rem;line-height:1.25;transition:font-size .35s var(--lp-ease),color .35s var(--lp-ease)}.lp-capability-card.is-active .lp-capability-card__title{font-size:clamp(1.375rem,2.2vw,1.75rem);font-weight:600;color:var(--lp-text);letter-spacing:-.025em}.lp-capability-card__body{font-size:1.0625rem;color:var(--lp-text-faint);line-height:1.6;margin:0;max-width:54ch;transition:color .35s var(--lp-ease)}.lp-capability-card.is-active .lp-capability-card__body{color:var(--lp-text-mid)}@media (prefers-reduced-motion: reduce){.lp-capability-card,.lp-cap-nav__btn,.lp-cap-nav__marker{transition:none;opacity:1;transform:none}}@media (max-width: 640px){.lp-capability-card{padding:1.25rem 1.375rem}}.lp-blueprint{padding-block:clamp(4rem,9vw,7rem);background:var(--lp-bg-deep);border-block:1px solid var(--lp-line)}.lp-blueprint__grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(2rem,5vw,4rem);align-items:center}@media (max-width: 960px){.lp-blueprint__grid{grid-template-columns:1fr}}.lp-graph{position:relative;aspect-ratio:600 / 320;border-radius:var(--lp-radius);border:1px solid var(--lp-line);background:var(--lp-bg);overflow:hidden}@media (max-width: 480px){.lp-graph{aspect-ratio:4 / 3}.lp-node{font-size:.62rem;padding:.35rem .5rem;gap:.35rem}.lp-node--source{left:4%;top:10%}.lp-node--filter[data-id=zone]{left:32%;top:10%}.lp-node--logic[data-id=condition]{right:2%;top:45%}.lp-node--logic[data-id=delay]{left:32%;top:72%}.lp-node--sink{right:2%;top:72%}}.lp-graph__grid,.lp-graph__edges{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}[dir=rtl] .lp-graph{transform:scaleX(-1)}[dir=rtl] .lp-graph .lp-node__label{transform:scaleX(-1);display:inline-block}[dir=rtl] .lp-graph .lp-node{direction:ltr}.lp-node{position:absolute;display:inline-flex;align-items:center;gap:.5rem;padding:.5rem .75rem;border-radius:8px;background:var(--lp-bg-elevated);border:1px solid var(--lp-line-strong);font-family:var(--lp-font-mono);font-size:.72rem;color:var(--lp-text);white-space:nowrap;box-shadow:0 6px 16px -10px #0009}.lp-node__dot{width:6px;height:6px;border-radius:50%;background:var(--lp-text-faint)}.lp-node--source{left:4%;top:18%}.lp-node--source .lp-node__dot{background:var(--lp-accent)}.lp-node--filter[data-id=zone]{left:32%;top:18%}.lp-node--logic[data-id=condition]{right:4%;top:44%}.lp-node--logic[data-id=delay]{left:32%;top:70%}.lp-node--sink{right:4%;top:70%}.lp-node--sink{background:var(--lp-accent-tint);border-color:#28d4b266;color:var(--lp-accent-hi)}.lp-node--sink .lp-node__dot{background:var(--lp-accent);box-shadow:0 0 8px var(--lp-accent-tint)}.lp-deployment{padding-block:clamp(5rem,10vw,8rem);background:var(--lp-bg-raise);border-block:1px solid var(--lp-line)}.lp-deployment__tracks{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1rem,3vw,1.5rem);align-items:start}@media (max-width: 860px){.lp-deployment__tracks{grid-template-columns:1fr}}.lp-track{border-radius:var(--lp-radius);border:1px solid var(--lp-line);padding:clamp(1.75rem,3.5vw,2.5rem);display:flex;flex-direction:column;gap:0}.lp-track--cloud{background:#28d4b212;border-color:#28d4b240}.lp-track--os{background:var(--lp-bg-deep);border-color:var(--lp-line)}.lp-track__head{margin-bottom:1.5rem}.lp-track__kicker{display:inline-block;font-family:var(--lp-font-mono);font-size:.75rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--lp-accent);margin-bottom:.75rem}.lp-track__kicker--alt{color:var(--lp-text-dim)}.lp-track__title{margin:0;font-size:clamp(1.25rem,2vw,1.75rem);font-weight:600;letter-spacing:-.02em;line-height:1.25;color:var(--lp-text);max-width:24ch}.lp-track__points{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.75rem;margin-bottom:2rem}.lp-track__points li{display:flex;align-items:flex-start;gap:.75rem;font-size:.9375rem;line-height:1.5;color:var(--lp-text-mid)}.lp-track__check--cloud{display:flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;background:var(--lp-accent);color:#0a0e10;flex-shrink:0;margin-top:2px}.lp-track__check--os{font-family:var(--lp-font-mono);font-size:.75rem;color:var(--lp-text-faint);flex-shrink:0;margin-top:3px;line-height:1;width:18px;text-align:center}.lp-track__plans{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem;margin-top:auto}@media (max-width: 600px){.lp-track__plans{grid-template-columns:1fr}}.lp-plan{border-radius:calc(var(--lp-radius) - 4px);border:1px solid var(--lp-line);background:var(--lp-bg-deep);padding:1.125rem 1rem;display:flex;flex-direction:column;gap:.35rem;transition:border-color .2s}.lp-plan--highlight{border-color:#28d4b280;background:#28d4b214}.lp-plan__name{font-family:var(--lp-font-mono);font-size:.7rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--lp-text-faint)}.lp-plan--highlight .lp-plan__name{color:var(--lp-accent)}.lp-plan__price{font-size:1.375rem;font-weight:700;letter-spacing:-.03em;color:var(--lp-text);line-height:1.1;display:flex;align-items:baseline;gap:.25rem;flex-wrap:wrap}.lp-plan__period{font-size:.75rem;font-weight:400;color:var(--lp-text-faint);letter-spacing:0}.lp-plan__note{font-size:.8rem;color:var(--lp-text-faint);line-height:1.4;margin-bottom:.75rem}.lp-plan__cta{display:block;text-align:center;padding:.5rem .75rem;border-radius:6px;font-size:.8125rem;font-weight:500;text-decoration:none;border:1px solid var(--lp-line-strong);color:var(--lp-text-mid);background:transparent;transition:border-color .15s,color .15s,background .15s;margin-top:auto}.lp-plan__cta:hover{border-color:var(--lp-accent);color:var(--lp-accent)}.lp-plan--highlight .lp-plan__cta{background:var(--lp-accent);border-color:var(--lp-accent);color:#0a0e10}.lp-plan--highlight .lp-plan__cta:hover{background:#3fe1bf;border-color:#3fe1bf;color:#0a0e10}.lp-track__os-cta{margin-top:auto;padding-top:1.5rem;border-top:1px solid var(--lp-line);display:flex;flex-direction:column;gap:.75rem}.lp-os-cta__btn{display:inline-block;align-self:flex-start;padding:.65rem 1.5rem;border-radius:8px;font-size:.9375rem;font-weight:500;text-decoration:none;border:1px solid var(--lp-line-strong);color:var(--lp-text);background:transparent;transition:border-color .15s,color .15s}.lp-os-cta__btn:hover{border-color:var(--lp-text-mid);color:var(--lp-text)}.lp-os-cta__note{margin:0;font-size:.8125rem;color:var(--lp-text-faint);line-height:1.5}.lp-integrations{padding-block:clamp(3.5rem,8vw,6rem);background:var(--lp-bg-deep);border-block:1px solid var(--lp-line)}.lp-integrations__rows{margin:0;display:flex;flex-direction:column}.lp-integrations__row{display:grid;grid-template-columns:200px 1fr;gap:1.5rem;padding-block:1.375rem;border-top:1px solid var(--lp-line);align-items:center}.lp-integrations__row:last-child{border-bottom:1px solid var(--lp-line)}.lp-integrations__meta{display:flex;flex-direction:column;gap:.3rem}.lp-integrations__label{font-family:var(--lp-font-mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--lp-text-faint);line-height:1}.lp-integrations__desc{font-family:var(--lp-font-sans, system-ui, sans-serif);font-size:.8125rem;color:var(--lp-text-mid);line-height:1.4;max-width:28ch}.lp-integrations__items{margin:0;display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .75rem}.lp-integrations__item{font-family:var(--lp-font-mono);font-size:.95rem;letter-spacing:.01em;color:var(--lp-text);display:inline-flex;align-items:center;gap:.75rem}.lp-integrations__sep{color:var(--lp-text-faint)}@media (max-width: 640px){.lp-integrations__row{grid-template-columns:1fr;gap:.75rem}.lp-integrations__desc{max-width:none}}.lp-trust{padding-block:clamp(4rem,9vw,7rem)}.lp-trust__grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:clamp(2rem,5vw,4rem);align-items:flex-start}@media (max-width: 860px){.lp-trust__grid{grid-template-columns:1fr}}.lp-trust__blockquote{margin:0;font-size:clamp(1.4rem,2.4vw,2rem);line-height:1.3;font-weight:400;letter-spacing:-.015em;color:var(--lp-text)}.lp-trust__blockquote p{margin:0 0 1.25rem;text-wrap:balance}.lp-trust__blockquote cite{font-style:normal;font-family:var(--lp-font-mono);font-size:.78rem;letter-spacing:.06em;color:var(--lp-text-faint);text-transform:uppercase}.lp-trust__points{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:1.25rem}.lp-trust__points li{display:grid;grid-template-columns:28px 1fr;gap:.875rem;color:var(--lp-text-mid);font-size:1rem;line-height:1.5;padding-top:1rem;border-top:1px solid var(--lp-line)}.lp-trust__index{font-family:var(--lp-font-mono);font-size:.78rem;color:var(--lp-accent-lo);letter-spacing:.04em}.lp-cta{padding-block:clamp(4rem,9vw,7rem);background:radial-gradient(60% 80% at 50% 0%,oklch(.78 .14 175 / .08),transparent 70%),var(--lp-bg-deep);border-block:1px solid var(--lp-line)}.lp-cta__inner{text-align:center}.lp-cta__title{max-width:none;margin-inline:auto;text-wrap:balance}.lp-cta__sub{font-size:1.0625rem;color:var(--lp-text-mid);margin:.875rem auto 2rem;max-width:48ch}.lp-cta__actions{display:inline-flex;gap:.875rem;flex-wrap:wrap;justify-content:center}@media (max-width: 480px){.lp-cta__actions{display:flex;flex-direction:column;align-items:stretch;width:100%;max-width:320px;margin-inline:auto}.lp-cta__actions .lp-btn,.lp-cta__actions .lp-link-quiet{text-align:center;justify-content:center;width:100%}}[class*=lp-reveal]{opacity:0;transition:opacity .65s var(--lp-ease),transform .65s var(--lp-ease)}@media (prefers-reduced-motion: reduce){[class*=lp-reveal]{opacity:1;transition:none;transform:none}}.lp-reveal-up{transform:translateY(28px)}.lp-reveal-up.is-visible{opacity:1;transform:none}.lp-reveal-scale{transform:scale(.96)}.lp-reveal-scale.is-visible{opacity:1;transform:none}.lp-reveal-left{transform:translate(-24px)}.lp-reveal-left.is-visible{opacity:1;transform:none}.lp-reveal-right{transform:translate(24px)}.lp-reveal-right.is-visible{opacity:1;transform:none}.lp-reveal-delay-1{transition-delay:.12s}.lp-reveal-delay-2{transition-delay:.24s}.lp-reveal-delay-3{transition-delay:.36s}.lp-reveal-delay-4{transition-delay:.48s}.lp-reveal-delay-5{transition-delay:.6s}.lp-hero__eyebrow{opacity:0;transform:translateY(16px);animation:lp-enter .6s var(--lp-ease) .1s forwards}.lp-hero__title{opacity:0;transform:translateY(20px);animation:lp-enter .65s var(--lp-ease) .25s forwards}.lp-hero__sub{opacity:0;transform:translateY(16px);animation:lp-enter .6s var(--lp-ease) .4s forwards}.lp-hero__ctas{opacity:0;transform:translateY(12px);animation:lp-enter .55s var(--lp-ease) .55s forwards}.lp-hero__visual{opacity:0;transform:scale(.95) translateY(16px);animation:lp-enter .7s var(--lp-ease) .2s forwards}@keyframes lp-enter{to{opacity:1;transform:none}}@media (prefers-reduced-motion: reduce){.lp-hero__eyebrow,.lp-hero__title,.lp-hero__sub,.lp-hero__ctas,.lp-hero__visual{opacity:1;transform:none;animation:none}}.lp-status__cell{opacity:0;transform:translateY(8px);transition:opacity .5s var(--lp-ease),transform .5s var(--lp-ease)}.lp-status.is-visible .lp-status__cell{opacity:1;transform:none}.lp-status.is-visible .lp-status__cell:nth-child(1){transition-delay:0ms}.lp-status.is-visible .lp-status__cell:nth-child(2){transition-delay:60ms}.lp-status.is-visible .lp-status__cell:nth-child(3){transition-delay:.12s}.lp-status.is-visible .lp-status__cell:nth-child(4){transition-delay:.18s}.lp-status.is-visible .lp-status__cell:nth-child(5){transition-delay:.24s}@media (prefers-reduced-motion: reduce){.lp-status__cell{opacity:1;transform:none;transition:none}}.lp-blueprint__copy{opacity:0;transform:translate(-20px);transition:opacity .7s var(--lp-ease),transform .7s var(--lp-ease)}.lp-blueprint__visual{opacity:0;transform:scale(.96);transition:opacity .7s var(--lp-ease),transform .7s var(--lp-ease);transition-delay:.15s}.lp-blueprint.is-visible .lp-blueprint__copy,.lp-blueprint.is-visible .lp-blueprint__visual{opacity:1;transform:none}@media (prefers-reduced-motion: reduce){.lp-blueprint__copy,.lp-blueprint__visual{opacity:1;transform:none;transition:none}}.lp-track--cloud{opacity:0;transform:translate(-24px);transition:opacity .65s var(--lp-ease),transform .65s var(--lp-ease)}.lp-track--os{opacity:0;transform:translate(24px);transition:opacity .65s var(--lp-ease),transform .65s var(--lp-ease);transition-delay:.15s}.lp-deployment.is-visible .lp-track--cloud,.lp-deployment.is-visible .lp-track--os{opacity:1;transform:none}@media (prefers-reduced-motion: reduce){.lp-track--cloud,.lp-track--os{opacity:1;transform:none;transition:none}}.lp-integrations__row{opacity:0;transform:translateY(12px);transition:opacity .5s var(--lp-ease),transform .5s var(--lp-ease)}.lp-integrations.is-visible .lp-integrations__row:nth-child(1){opacity:1;transform:none;transition-delay:0ms}.lp-integrations.is-visible .lp-integrations__row:nth-child(2){opacity:1;transform:none;transition-delay:.1s}.lp-integrations.is-visible .lp-integrations__row:nth-child(3){opacity:1;transform:none;transition-delay:.2s}@media (prefers-reduced-motion: reduce){.lp-integrations__row{opacity:1;transform:none;transition:none}}.lp-trust__quote{opacity:0;transform:translateY(20px);transition:opacity .7s var(--lp-ease),transform .7s var(--lp-ease)}.lp-trust__points{opacity:0;transform:translate(20px);transition:opacity .7s var(--lp-ease),transform .7s var(--lp-ease);transition-delay:.2s}.lp-trust.is-visible .lp-trust__quote,.lp-trust.is-visible .lp-trust__points{opacity:1;transform:none}.lp-trust__points li{opacity:0;transform:translateY(10px);transition:opacity .45s var(--lp-ease),transform .45s var(--lp-ease)}.lp-trust.is-visible .lp-trust__points li:nth-child(1){opacity:1;transform:none;transition-delay:.3s}.lp-trust.is-visible .lp-trust__points li:nth-child(2){opacity:1;transform:none;transition-delay:.42s}.lp-trust.is-visible .lp-trust__points li:nth-child(3){opacity:1;transform:none;transition-delay:.54s}@media (prefers-reduced-motion: reduce){.lp-trust__quote,.lp-trust__points,.lp-trust__points li{opacity:1;transform:none;transition:none}}.lp-cta__inner{opacity:0;transform:scale(.97) translateY(16px);transition:opacity .7s var(--lp-ease),transform .7s var(--lp-ease)}.lp-cta.is-visible .lp-cta__inner{opacity:1;transform:none}@media (prefers-reduced-motion: reduce){.lp-cta__inner{opacity:1;transform:none;transition:none}}.lp-footer{padding-block:clamp(3rem,6vw,4.5rem) 1.5rem;border-top:1px solid var(--lp-line)}.lp-footer__grid{display:grid;grid-template-columns:minmax(220px,1fr) minmax(0,2.5fr);gap:clamp(2rem,5vw,4rem);margin-bottom:2.5rem}@media (max-width: 860px){.lp-footer__grid{grid-template-columns:1fr;gap:2rem}}.lp-footer__brand{display:flex;flex-direction:column;gap:.875rem}.lp-footer__mark{color:var(--lp-accent)}.lp-footer__tagline{margin:0;font-size:.9375rem;color:var(--lp-text-mid);line-height:1.5;max-width:28ch}.lp-footer__cols{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem}@media (max-width: 640px){.lp-footer__cols{grid-template-columns:repeat(2,1fr);gap:2rem 1rem}}.lp-footer__col-title{font-size:.78rem;font-family:var(--lp-font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--lp-text-faint);margin:0 0 .875rem;font-weight:500}.lp-footer__col ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.lp-footer__col a{color:var(--lp-text-mid);text-decoration:none;font-size:.9375rem;transition:color .16s var(--lp-ease)}.lp-footer__col a:hover{color:var(--lp-text)}.lp-footer__base{padding-top:1.5rem;border-top:1px solid var(--lp-line);font-family:var(--lp-font-mono);font-size:.78rem;color:var(--lp-text-faint);letter-spacing:.04em;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.75rem}.lp-footer__social{display:flex;gap:.5rem;align-items:center}.lp-footer__social a{display:flex;align-items:center;justify-content:center;width:1.75rem;height:1.75rem;border-radius:50%;background:var(--lp-bg-elevated);color:var(--lp-text-faint);transition:background .15s,color .15s}.lp-footer__social a:hover{background:var(--lp-accent-tint);color:var(--lp-accent)}.lp-pricing-standalone{--lp-bg: oklch(.16 .008 220);--lp-bg-raise: oklch(.195 .009 220);--lp-bg-elevated: oklch(.23 .01 220);--lp-bg-card: oklch(.195 .009 220);--lp-text: oklch(.96 .005 220);--lp-text-mid: oklch(.78 .008 220);--lp-text-dim: oklch(.6 .01 220);--lp-text-faint: oklch(.42 .01 220);--lp-line: oklch(.3 .012 220 / .5);--lp-line-strong: oklch(.4 .014 220 / .7);--lp-accent: oklch(.78 .14 175);--lp-accent-hi: oklch(.86 .12 175);--lp-accent-lo: oklch(.55 .1 175);--lp-accent-tint: oklch(.78 .14 175 / .12);--lp-font: "DM Sans", system-ui, -apple-system, sans-serif;--lp-font-mono: "JetBrains Mono", ui-monospace, monospace;--lp-radius: 12px;--lp-radius-sm: 8px;--lp-radius-lg: 18px;color:var(--lp-text);font-family:var(--lp-font);-webkit-font-smoothing:antialiased}.lp-pricing{padding-block:clamp(3.5rem,8vw,6rem);background:var(--lp-bg)}.lp-pricing__tabs{display:flex;gap:.375rem;margin-top:2.5rem;margin-bottom:2.5rem;background:var(--lp-bg-raise);border:1px solid var(--lp-line);border-radius:10px;padding:.25rem;width:fit-content}.lp-pricing__tab{display:flex;flex-direction:column;align-items:flex-start;gap:.125rem;padding:.55rem 1.25rem;border-radius:7px;border:none;background:transparent;cursor:pointer;text-align:start;transition:background .15s var(--lp-ease),color .15s var(--lp-ease)}.lp-pricing__tab:hover{background:#272f3266}.lp-pricing__tab.is-active{background:var(--lp-bg-elevated);box-shadow:inset 0 0 0 1px var(--lp-line-strong)}.lp-pricing__tab-label{font-family:var(--lp-font);font-size:.9375rem;font-weight:600;color:var(--lp-text-mid);line-height:1.2;transition:color .15s}.lp-pricing__tab.is-active .lp-pricing__tab-label{color:var(--lp-text)}.lp-pricing__tab-sub{font-family:var(--lp-font-mono);font-size:.6875rem;font-weight:500;letter-spacing:.05em;text-transform:uppercase;color:var(--lp-text-faint);transition:color .15s}.lp-pricing__tab.is-active .lp-pricing__tab-sub{color:var(--lp-accent)}.lp-pricing__grid{display:grid;gap:1.25rem;align-items:start}.lp-pricing__grid--4{grid-template-columns:repeat(4,1fr)}.lp-pricing__grid--3{grid-template-columns:repeat(3,1fr)}.lp-pricing__grid--2{grid-template-columns:repeat(2,1fr)}.lp-pricing__grid--1{grid-template-columns:1fr;max-width:420px;margin-inline:auto}@media (max-width: 1100px){.lp-pricing__grid--4{grid-template-columns:repeat(2,1fr)}}@media (max-width: 860px){.lp-pricing__tabs{width:100%}.lp-pricing__tab{flex:1;align-items:center;text-align:center}.lp-pricing__grid--4,.lp-pricing__grid--3{grid-template-columns:1fr;max-width:420px}}.lp-pricing-card{position:relative;background:var(--lp-bg-card);border:1px solid var(--lp-line);border-radius:12px;padding:2rem 1.75rem;display:flex;flex-direction:column;gap:0;transition:border-color .2s}.lp-pricing-card:hover{border-color:var(--lp-line-strong)}.lp-pricing-card--highlight{border-color:#3fe1bf80;background:#3fe1bf0a}.lp-pricing-card--highlight:hover{border-color:#3fe1bfcc}.lp-pricing-card__badge{position:absolute;top:-.65rem;inset-inline-start:50%;transform:translate(-50%);background:#3fe1bf;color:#0a0e10;font-family:var(--lp-font-mono);font-size:.7rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;padding:.2rem .75rem;border-radius:99px;white-space:nowrap}.lp-pricing-card__name{font-family:var(--lp-font-mono);font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:var(--lp-text-mid);margin-bottom:.35rem}.lp-pricing-card__tagline{font-size:.8125rem;color:var(--lp-text-faint);margin-bottom:1.1rem;line-height:1.4}.lp-pricing-card__price{font-size:clamp(2rem,4vw,2.5rem);font-weight:700;letter-spacing:-.03em;color:var(--lp-text);line-height:1;margin-bottom:.375rem}.lp-pricing-card--highlight .lp-pricing-card__price{color:#76f1d3}.lp-pricing-card__period{font-size:.9rem;font-weight:400;letter-spacing:0;color:var(--lp-text-faint);margin-inline-start:.15rem}.lp-pricing-card__note{font-size:.8125rem;color:var(--lp-text-faint);margin-bottom:1.75rem}.lp-pricing-card__note:empty{display:none}.lp-pricing-card__features{list-style:none;margin:0 0 2rem;padding:0;display:flex;flex-direction:column;gap:.6rem;flex:1}.lp-pricing-card__features li{display:flex;align-items:flex-start;gap:.6rem;font-size:.9rem;color:var(--lp-text-mid);line-height:1.4}.lp-pricing-card__check{flex-shrink:0;width:1.1rem;height:1.1rem;display:flex;align-items:center;justify-content:center;border-radius:50%;background:#3fe1bf26;color:#3fe1bf;margin-top:.1rem}.lp-pricing-card__cta{display:block;text-align:center;padding:.7rem 1.25rem;border-radius:8px;font-size:.9375rem;font-weight:500;text-decoration:none;border:1px solid var(--lp-line-strong);color:var(--lp-text);background:transparent;transition:border-color .15s,background .15s,color .15s}.lp-pricing-card__cta:hover{border-color:var(--lp-text-mid)}.lp-pricing-card--highlight .lp-pricing-card__cta{background:#3fe1bf;border-color:#3fe1bf;color:#0a0e10}.lp-pricing-card--highlight .lp-pricing-card__cta:hover{background:#51efcc;border-color:#51efcc}.lp-pricing .lp-section-heading,.lp-pricing__tabs,.lp-pricing-card{opacity:0;transform:translateY(24px);transition:opacity .52s cubic-bezier(.22,1,.36,1),transform .52s cubic-bezier(.22,1,.36,1)}.lp-pricing.is-visible .lp-section-heading{opacity:1;transform:translateY(0);transition-delay:0ms}.lp-pricing.is-visible .lp-pricing__tabs{opacity:1;transform:translateY(0);transition-delay:80ms}.lp-pricing.is-visible .lp-pricing-card{opacity:1;transform:translateY(0);transition-delay:calc(.16s + var(--i, 0) * 70ms)}@media (prefers-reduced-motion: reduce){.lp-pricing .lp-section-heading,.lp-pricing__tabs,.lp-pricing-card{opacity:1;transform:none;transition:none}}.lp-pricing__track-header{display:flex;align-items:baseline;gap:.5rem;margin-block:2rem .75rem}.lp-pricing__track-label{font-size:1rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--lp-text)}.lp-pricing__track-sub{font-size:.8rem;color:var(--lp-text-faint)}.lp-pricing__os-section{margin-block-start:3.5rem;padding-block-start:2.5rem;border-top:1px solid var(--lp-line)}[dir=rtl] .lp-btn svg{transform:scaleX(-1)}[dir=rtl] .lp-nav__links{margin-inline-start:1.5rem}@media (max-width: 360px){.lp-container{padding-inline:1rem}.lp-h1{font-size:2rem}.lp-hero__sub{font-size:1rem}.lp-footer__cols{grid-template-columns:1fr}.lp-status__row{gap:1.25rem}}.lp-vlb__backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;background:#010202e0;display:flex;align-items:center;justify-content:center;padding:1.5rem;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);animation:lp-vlb-in .22s var(--lp-ease) both}@keyframes lp-vlb-in{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion: reduce){.lp-vlb__backdrop{animation:none}}.lp-vlb__frame{position:relative;width:100%;max-width:900px;border-radius:var(--lp-radius-md);overflow:hidden;border:1px solid var(--lp-line-strong);animation:lp-vlb-scale .26s var(--lp-ease) both}@keyframes lp-vlb-scale{0%{transform:scale(.94);opacity:0}to{transform:scale(1);opacity:1}}@media (prefers-reduced-motion: reduce){.lp-vlb__frame{animation:none}}.lp-vlb__ratio{position:relative;width:100%;padding-bottom:56.25%;background:#040607}.lp-vlb__ratio iframe{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;border:none;display:block}.lp-vlb__close{position:absolute;top:.75rem;right:.75rem;z-index:10;width:32px;height:32px;border-radius:50%;background:#0a0e10d9;border:1px solid var(--lp-line-strong);color:var(--lp-text-mid);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .16s var(--lp-ease),color .16s var(--lp-ease)}.lp-vlb__close:hover{background:#181e20;color:var(--lp-text)}[dir=rtl] .lp-vlb__close{right:auto;left:.75rem}.lp-contact{padding:6rem 0 5rem;border-top:1px solid var(--lp-line)}.lp-contact__head{text-align:center;margin-bottom:3.5rem}.lp-contact__layout{display:grid;grid-template-columns:1fr 360px;gap:3rem;align-items:start}@media (max-width: 900px){.lp-contact__layout{grid-template-columns:1fr}}.lp-contact__form-wrap{background:var(--lp-bg-raise);border:1px solid var(--lp-line);border-radius:var(--lp-radius-lg);padding:2.25rem}.lp-contact__row{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1rem}@media (max-width: 600px){.lp-contact__row{grid-template-columns:1fr}}.lp-contact__field{display:flex;flex-direction:column;gap:.375rem;font-size:.875rem;color:var(--lp-text-mid)}.lp-contact__field--full{margin-bottom:1rem}.lp-contact__field span{font-weight:500;color:var(--lp-text)}.lp-contact__field input,.lp-contact__field select,.lp-contact__field textarea{background:var(--lp-bg-elevated);border:1px solid var(--lp-line-strong);border-radius:var(--lp-radius-sm);color:var(--lp-text);font-family:var(--lp-font);font-size:.9375rem;padding:.625rem .875rem;transition:border-color .16s var(--lp-ease),box-shadow .16s var(--lp-ease);width:100%}.lp-contact__field input::placeholder,.lp-contact__field textarea::placeholder{color:var(--lp-text-faint)}.lp-contact__field input:focus,.lp-contact__field select:focus,.lp-contact__field textarea:focus{outline:none;border-color:var(--lp-accent);box-shadow:0 0 0 3px var(--lp-accent-tint)}.lp-contact__field textarea{resize:vertical;min-height:120px}.lp-contact__field select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2378909c' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .75rem center;padding-right:2.25rem;cursor:pointer}.lp-contact__error{color:#ff847d;color:oklch(.75 .18 25);font-size:.875rem;margin:.5rem 0}.lp-contact__actions{margin-top:1.25rem;display:flex;justify-content:flex-end}.lp-contact__success{display:flex;flex-direction:column;align-items:center;text-align:center;gap:1rem;padding:2rem 1rem;color:var(--lp-accent)}.lp-contact__success h3{font-size:1.25rem;font-weight:600;color:var(--lp-text);margin:0}.lp-contact__success p{color:var(--lp-text-mid);margin:0}.lp-contact__aside{display:flex;flex-direction:column;gap:1.5rem}.lp-contact__info-card{background:var(--lp-bg-raise);border:1px solid var(--lp-line);border-radius:var(--lp-radius-lg);padding:1.5rem 1.75rem}.lp-contact__info-card h3{font-size:.875rem;font-weight:600;color:var(--lp-text-dim);text-transform:uppercase;letter-spacing:.06em;margin:0 0 1rem}.lp-contact__info-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.75rem}.lp-contact__info-list li{display:flex;align-items:center;gap:.625rem;font-size:.9375rem;color:var(--lp-text-mid)}.lp-contact__info-list svg{flex-shrink:0;color:var(--lp-accent)}.lp-contact__info-list a{color:var(--lp-text-mid);text-decoration:none}.lp-contact__info-list a:hover{color:var(--lp-accent)}.lp-contact__social{display:flex;flex-wrap:wrap;gap:.625rem;margin-top:1.25rem;padding-top:1.25rem;border-top:1px solid var(--lp-line)}.lp-contact__social a{display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;border-radius:50%;background:var(--lp-bg-elevated);color:var(--lp-text-mid);transition:background .15s,color .15s}.lp-contact__social a:hover{background:var(--lp-accent-tint);color:var(--lp-accent)}.lp-contact__demo-card{background:var(--lp-bg-raise);border:1px solid var(--lp-accent-tint);border-radius:var(--lp-radius-lg);padding:1.75rem}.lp-contact__demo-label{font-size:.75rem;font-weight:600;color:var(--lp-accent);text-transform:uppercase;letter-spacing:.08em;margin:0 0 .5rem}.lp-contact__demo-title{font-size:1.1875rem;font-weight:700;color:var(--lp-text);margin:0 0 .5rem;letter-spacing:-.02em}.lp-contact__demo-sub{font-size:.875rem;color:var(--lp-text-mid);margin:0 0 1.25rem;line-height:1.55}.lp-contact__demo-btn{width:100%;justify-content:center}.lp-demo-modal__overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#010202bf;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;display:flex;align-items:center;justify-content:center;padding:1rem}.lp-demo-modal{position:relative;background:var(--lp-bg-elevated);border:1px solid var(--lp-line-strong);border-radius:var(--lp-radius-lg);width:100%;max-width:980px;height:90vh;max-height:90vh;overflow:hidden;display:flex;flex-direction:column}.lp-demo-modal__close{position:absolute;top:.75rem;right:.75rem;z-index:10;width:32px;height:32px;border-radius:50%;background:#0a0e10d9;border:1px solid var(--lp-line-strong);color:var(--lp-text-mid);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .16s var(--lp-ease),color .16s var(--lp-ease)}.lp-demo-modal__close:hover{background:var(--lp-bg-elevated);color:var(--lp-text)}.lp-demo-modal__calendly{width:100%;flex:1;min-height:0;border:none;display:flex;flex-direction:column;overflow:hidden}.lp-demo-modal__calendly>div,.lp-demo-modal__calendly iframe{width:100%!important;height:100%!important;flex:1;border:none;display:block}.lp-demo-modal__fallback{display:flex;flex-direction:column;align-items:center;text-align:center;gap:1rem;padding:3rem 2rem}.lp-demo-modal__fallback h3{font-size:1.375rem;font-weight:700;color:var(--lp-text);margin:0}.lp-demo-modal__fallback p{color:var(--lp-text-mid);max-width:400px;line-height:1.6;margin:0}.lp-operators{padding-block:clamp(4rem,9vw,7rem);background:var(--lp-bg-deep)}.lp-operators__inner{max-width:680px}.lp-operators__headline{font-size:clamp(1.7rem,3vw,2.5rem);font-weight:500;letter-spacing:-.02em;color:var(--lp-text);margin:.75rem 0 1rem}.lp-operators__body{font-size:1.0625rem;color:var(--lp-text-mid);line-height:1.6;margin:0}.lp-operators__brief{margin-top:3rem;padding-top:2.5rem;border-top:1px solid var(--lp-line)}.lp-operators__brief-eyebrow{font-family:var(--lp-font-mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--lp-text-dim);margin:0 0 1.5rem}.lp-operators__brief-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.lp-operators__brief-item{display:grid;grid-template-columns:28px 1fr;gap:.875rem;padding-block:1rem;border-top:1px solid var(--lp-line)}.lp-operators__brief-item:last-child{border-bottom:1px solid var(--lp-line)}.lp-operators__brief-index{font-family:var(--lp-font-mono);font-size:.78rem;color:var(--lp-accent-lo);letter-spacing:.04em;padding-top:.15rem}.lp-operators__brief-line{font-size:.9375rem;color:var(--lp-text-mid);line-height:1.5}.lp-operators__copy{opacity:0;transform:translateY(20px);transition:opacity .7s var(--lp-ease),transform .7s var(--lp-ease)}.lp-operators__brief{opacity:0;transform:translateY(16px);transition:opacity .6s var(--lp-ease),transform .6s var(--lp-ease);transition-delay:.2s}.lp-operators.is-visible .lp-operators__copy,.lp-operators.is-visible .lp-operators__brief{opacity:1;transform:none}.lp-operators__brief-item{opacity:0;transform:translateY(10px);transition:opacity .45s var(--lp-ease),transform .45s var(--lp-ease)}.lp-operators.is-visible .lp-operators__brief-item:nth-child(1){opacity:1;transform:none;transition-delay:.3s}.lp-operators.is-visible .lp-operators__brief-item:nth-child(2){opacity:1;transform:none;transition-delay:.42s}@media (prefers-reduced-motion: reduce){.lp-operators__copy,.lp-operators__brief,.lp-operators__brief-item{opacity:1;transform:none;transition:none}}.lp-legal{padding-top:7rem;padding-bottom:6rem;min-height:80vh}.lp-legal__inner{max-width:780px;margin:0 auto}.lp-legal__header{margin-bottom:3rem;padding-bottom:2rem;border-bottom:1px solid var(--lp-line)}.lp-legal__title{font-size:clamp(2rem,4vw,2.8rem);font-weight:700;color:var(--lp-text);letter-spacing:-.03em;margin:0 0 .5rem}.lp-legal__meta{color:var(--lp-text-dim);font-size:.875rem;margin:0}.lp-legal__body{color:var(--lp-text-mid);font-size:1rem;line-height:1.75}.lp-legal__body section{margin-bottom:2.5rem}.lp-legal__body h2{font-size:1.25rem;font-weight:600;color:var(--lp-text);margin:0 0 .75rem;letter-spacing:-.02em}.lp-legal__body h3{font-size:1rem;font-weight:600;color:var(--lp-text);margin:1.25rem 0 .5rem}.lp-legal__body p{margin:0 0 1rem}.lp-legal__body ul,.lp-legal__body ol{margin:0 0 1rem;padding-left:1.5rem}.lp-legal__body li{margin-bottom:.4rem}.lp-legal__body a{color:var(--lp-accent);text-decoration:underline;text-underline-offset:3px}.lp-legal__body a:hover{color:var(--lp-accent-hi)}.lp-legal__body strong{color:var(--lp-text);font-weight:600}.lp-faq{padding-top:7rem;padding-bottom:6rem;min-height:80vh}.lp-faq__inner{max-width:780px;margin:0 auto}.lp-faq__header{margin-bottom:3rem;padding-bottom:2rem;border-bottom:1px solid var(--lp-line)}.lp-faq__title{font-size:clamp(2rem,4vw,2.8rem);font-weight:700;color:var(--lp-text);letter-spacing:-.03em;margin:0 0 .5rem}.lp-faq__subtitle{color:var(--lp-text-dim);font-size:1rem;margin:0;line-height:1.6}.lp-faq__loading{height:200px;border-radius:8px;background:linear-gradient(90deg,var(--lp-surface) 25%,var(--lp-surface-raised, rgba(255,255,255,.06)) 50%,var(--lp-surface) 75%);background-size:200% 100%;animation:lp-faq-shimmer 1.5s infinite}@keyframes lp-faq-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.lp-faq__empty{color:var(--lp-text-dim);font-size:1rem;text-align:center;padding:3rem 0;margin:0}.lp-faq__categories{display:flex;flex-direction:column;gap:2.5rem}.lp-faq__category-name{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--lp-accent);margin:0 0 1rem}.lp-faq__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:0;border-top:1px solid var(--lp-line)}.lp-faq__item{border-bottom:1px solid var(--lp-line)}.lp-faq__question{width:100%;display:flex;align-items:center;justify-content:space-between;gap:1rem;background:none;border:none;cursor:pointer;padding:1.25rem 0;color:var(--lp-text);font-size:1rem;font-weight:500;line-height:1.5;text-align:start;transition:color .15s}.lp-faq__question:hover{color:var(--lp-accent-hi, var(--lp-accent))}.lp-faq__chevron{flex-shrink:0;color:var(--lp-text-dim);transition:transform .2s ease}.lp-faq__item--open .lp-faq__chevron{transform:rotate(180deg)}.lp-faq__answer{padding:0 0 1.25rem;color:var(--lp-text-mid);font-size:.9375rem;line-height:1.75}.lp-faq__answer p{margin:0}:root{--bg-base: #0a0a0d;--bg-primary: #0f0f12;--bg-secondary: #16161b;--bg-tertiary: #1e1e26;--bg-card: #1a1a22;--bg-elevated: #22222c;--sidebar-bg: #0d0d10;--accent: #00d4aa;--accent-dim: #00b890;--accent-hover: #00eebb;--accent-glow: rgba(0, 212, 170, .12);--accent-subtle: rgba(0, 212, 170, .08);--primary: #6366f1;--primary-dim: #4f52d4;--primary-hover: #818cf8;--primary-glow: rgba(99, 102, 241, .15);--primary-subtle:rgba(99, 102, 241, .08);--success: #22c55e;--success-glow: rgba(34, 197, 94, .12);--success-subtle:rgba(34, 197, 94, .08);--warning: #f59e0b;--warning-glow: rgba(245, 158, 11, .12);--warning-subtle:rgba(245, 158, 11, .08);--danger: #ef4444;--danger-dim: #dc2626;--danger-hover: #f87171;--danger-glow: rgba(239, 68, 68, .12);--danger-subtle: rgba(239, 68, 68, .08);--info: #38bdf8;--info-subtle: rgba(56, 189, 248, .08);--text-primary: #f0f0f5;--text-secondary: #8b8b9a;--text-muted: #5c5c6d;--text-disabled: #3a3a48;--border: rgba(255, 255, 255, .06);--border-subtle: rgba(255, 255, 255, .04);--border-hover: rgba(255, 255, 255, .12);--border-focus: rgba(0, 212, 170, .4);--border-accent: rgba(0, 212, 170, .2);--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 20px;--sp-6: 24px;--sp-8: 32px;--sp-10: 40px;--sp-12: 48px;--sp-16: 64px;--sp-20: 80px;--radius-sm: 6px;--radius: 8px;--radius-md: 10px;--radius-lg: 14px;--radius-xl: 20px;--radius-full:9999px;--font-sans: "DM Sans", system-ui, -apple-system, sans-serif;--font-mono: "JetBrains Mono", "Fira Code", monospace;--text-xs: 11px;--text-sm: 13px;--text-base: 14px;--text-md: 15px;--text-lg: 16px;--text-xl: 18px;--text-2xl: 22px;--text-3xl: 28px;--text-4xl: 36px;--leading-tight: 1.25;--leading-snug: 1.4;--leading-normal: 1.6;--leading-relaxed:1.75;--weight-normal: 400;--weight-medium: 500;--weight-semibold:600;--weight-bold: 700;--shadow-sm: 0 1px 3px rgba(0,0,0,.4), 0 1px 2px rgba(0,0,0,.3);--shadow: 0 4px 12px rgba(0,0,0,.5), 0 2px 4px rgba(0,0,0,.3);--shadow-md: 0 8px 24px rgba(0,0,0,.6), 0 4px 8px rgba(0,0,0,.3);--shadow-lg: 0 16px 48px rgba(0,0,0,.7), 0 8px 16px rgba(0,0,0,.3);--shadow-xl: 0 24px 64px rgba(0,0,0,.8);--shadow-accent: 0 4px 20px var(--accent-glow);--shadow-primary: 0 4px 20px var(--primary-glow);--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-in: cubic-bezier(.4, 0, 1, 1);--ease-inout: cubic-bezier(.4, 0, .2, 1);--ease-spring:cubic-bezier(.34, 1.56, .64, 1);--dur-fast: .12s;--dur-base: .2s;--dur-slow: .35s;--dur-slower: .5s;--sidebar-w: 260px;--topbar-h: 56px;--content-max: 1280px;--content-pad: var(--sp-6)}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{font-size:14px;scroll-behavior:smooth;text-size-adjust:100%}body{font-family:var(--font-sans);background:var(--bg-primary);color:var(--text-primary);line-height:var(--leading-normal);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh}button,input,textarea,select{font-family:inherit;font-size:inherit}button{cursor:pointer}a{color:var(--accent);text-decoration:none;transition:color var(--dur-fast) var(--ease-out)}a:hover{color:var(--accent-hover)}img,svg{display:block}ul,ol{list-style:none}::selection{background:var(--accent-glow);color:var(--text-primary)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-hover);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--radius-sm)}:focus:not(:focus-visible){outline:none}.app-layout{display:flex;min-height:100vh}.app-sidebar{width:var(--sidebar-w);flex-shrink:0}.app-main{flex:1;min-width:0;margin-left:var(--sidebar-w);display:flex;flex-direction:column;min-height:100vh}.page{flex:1;padding:var(--content-pad);max-width:var(--content-max);width:100%}.page-header{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);margin-bottom:var(--sp-6)}.page-title{font-size:var(--text-2xl);font-weight:var(--weight-semibold);letter-spacing:-.5px;color:var(--text-primary);line-height:var(--leading-tight)}.page-subtitle{font-size:var(--text-sm);color:var(--text-muted);margin-top:var(--sp-1)}.sidebar{width:260px;height:100vh;background:var(--sidebar-bg);border-right:1px solid var(--border);position:fixed;left:0;top:0;display:flex;flex-direction:column;z-index:200;overflow:hidden}.sidebar:after{content:"";position:absolute;top:0;right:0;width:1px;height:55%;background:linear-gradient(180deg,var(--accent) 0%,transparent 100%);opacity:.3;pointer-events:none}.sidebar-header{padding:var(--sp-5) var(--sp-5) var(--sp-4);border-bottom:1px solid var(--border);flex-shrink:0;display:flex;align-items:center;justify-content:space-between}.sidebar-close-btn{display:none!important}.sidebar-logo{display:flex;align-items:center;gap:var(--sp-3);text-decoration:none}.sidebar-logo-mark{width:34px;height:34px;border-radius:var(--radius-md);background:linear-gradient(135deg,var(--accent) 0%,oklch(.62 .14 175) 100%);display:flex;align-items:center;justify-content:center;font-size:17px;flex-shrink:0;box-shadow:0 2px 10px var(--accent-glow)}.sidebar-logo-text{font-size:var(--text-xl);font-weight:var(--weight-bold);letter-spacing:-.5px;color:var(--text-primary);line-height:1}.sidebar-logo-badge{font-size:var(--text-xs);font-weight:var(--weight-medium);color:var(--text-muted);letter-spacing:.5px;margin-top:2px}.sidebar-nav{flex:1;padding:var(--sp-3) var(--sp-3) var(--sp-2);overflow-y:auto;overflow-x:hidden;display:flex;flex-direction:column;gap:0}.sidebar-nav>div+div{margin-top:var(--sp-4)}.sidebar-nav-bottom{margin-top:auto;padding-top:var(--sp-3);border-top:1px solid var(--border)}.sidebar-section-label{font-size:.6875rem;font-weight:var(--weight-semibold);letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);padding:0 var(--sp-3) var(--sp-2);margin-bottom:var(--sp-1);opacity:.7}.nav-item{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-3);border-radius:var(--radius);font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--text-secondary);text-decoration:none;transition:background var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out);position:relative;white-space:nowrap;border:1px solid transparent}.nav-item:hover{background:var(--bg-tertiary);color:var(--text-primary);border-color:transparent}.nav-item.active{background:var(--accent-subtle);color:var(--accent);border-color:var(--border-accent);font-weight:var(--weight-semibold)}.nav-item-icon{width:16px;height:16px;flex-shrink:0;display:flex;align-items:center;justify-content:center;opacity:.5;transition:opacity var(--dur-fast) var(--ease-out)}.nav-item.active .nav-item-icon,.nav-item:hover .nav-item-icon{opacity:1}.nav-item-badge{margin-inline-start:auto;font-size:.6875rem;font-weight:var(--weight-semibold);background:var(--accent-subtle);color:var(--accent);padding:1px 6px;border-radius:var(--radius-full);min-width:18px;text-align:center}.sidebar-footer{padding:var(--sp-3) var(--sp-3) var(--sp-4);border-top:1px solid var(--border);flex-shrink:0}.sidebar-user{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-3);border-radius:var(--radius);cursor:pointer;transition:background var(--dur-fast) var(--ease-out);text-decoration:none}.sidebar-user:hover{background:var(--bg-tertiary)}.sidebar-avatar{width:32px;height:32px;border-radius:var(--radius-full);background:var(--bg-elevated);border:1px solid var(--border-accent);display:flex;align-items:center;justify-content:center;font-size:.6875rem;font-weight:var(--weight-bold);color:var(--accent);flex-shrink:0;letter-spacing:.04em}.sidebar-user-name{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--text-primary);line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-user-role{font-size:.6875rem;color:var(--text-muted);line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:1px}.topbar{height:var(--topbar-h);display:flex;align-items:center;padding:0 var(--content-pad);border-bottom:1px solid var(--border);background:var(--bg-primary);position:sticky;top:0;z-index:100;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.subscription-banner{padding:var(--sp-2) var(--content-pad);background:linear-gradient(90deg,rgba(245,158,11,.08) 0%,transparent 100%);border-bottom:1px solid rgba(245,158,11,.15);display:flex;align-items:center;gap:var(--sp-3);font-size:var(--text-sm);color:var(--warning)}.subscription-banner a{color:var(--warning);font-weight:var(--weight-semibold);text-decoration:underline;text-underline-offset:2px}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--sp-5)}.card-sm{padding:var(--sp-4);border-radius:var(--radius-md)}.card-lg{padding:var(--sp-8);border-radius:var(--radius-xl)}.card-header{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);margin-bottom:var(--sp-4)}.card-title{font-size:var(--text-md);font-weight:var(--weight-semibold);color:var(--text-primary);letter-spacing:-.2px}.card-subtitle{font-size:var(--text-sm);color:var(--text-muted);margin-top:2px}.stat-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--sp-5);display:flex;flex-direction:column;gap:var(--sp-3);transition:border-color var(--dur-base) var(--ease-out),box-shadow var(--dur-base) var(--ease-out)}.stat-card:hover{border-color:var(--border-hover);box-shadow:var(--shadow)}.stat-icon{width:36px;height:36px;border-radius:var(--radius);display:flex;align-items:center;justify-content:center;font-size:17px}.stat-value{font-size:var(--text-3xl);font-weight:var(--weight-bold);letter-spacing:-1px;line-height:1;color:var(--text-primary);font-variant-numeric:tabular-nums}.stat-label{font-size:var(--text-sm);color:var(--text-muted)}.stat-delta{display:inline-flex;align-items:center;gap:3px;font-size:var(--text-xs);font-weight:var(--weight-medium);padding:2px 7px;border-radius:var(--radius-full)}.stat-delta.up{background:var(--success-subtle);color:var(--success)}.stat-delta.down{background:var(--danger-subtle);color:var(--danger)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);padding:0 var(--sp-4);height:36px;font-size:var(--text-sm);font-weight:var(--weight-medium);border-radius:var(--radius);border:1px solid transparent;white-space:nowrap;transition:background var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out);-webkit-user-select:none;user-select:none}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.4;cursor:not-allowed;pointer-events:none}.btn-primary{background:var(--accent);color:#051a14;font-weight:var(--weight-semibold)}.btn-primary:hover{background:var(--accent-hover);box-shadow:var(--shadow-accent)}.btn-secondary{background:var(--bg-tertiary);color:var(--text-primary);border-color:var(--border-hover)}.btn-secondary:hover{background:var(--bg-elevated);border-color:#ffffff2e}.btn-ghost{background:transparent;color:var(--text-secondary);border-color:transparent}.btn-ghost:hover{background:var(--bg-tertiary);color:var(--text-primary)}.btn-danger{background:var(--danger-subtle);color:var(--danger);border-color:#ef444433}.btn-danger:hover{background:var(--danger);color:#fff;border-color:transparent}.btn-xs{height:28px;padding:0 var(--sp-3);font-size:var(--text-xs);border-radius:var(--radius-sm)}.btn-sm{height:32px;padding:0 var(--sp-3);font-size:var(--text-sm)}.btn-lg{height:44px;padding:0 var(--sp-6);font-size:var(--text-md);border-radius:var(--radius-md)}.btn-xl{height:52px;padding:0 var(--sp-8);font-size:var(--text-lg);border-radius:var(--radius-lg);font-weight:var(--weight-semibold)}.btn-icon{width:36px;height:36px;padding:0;border-radius:var(--radius)}.btn-icon.btn-sm{width:32px;height:32px}.btn-icon.btn-xs{width:28px;height:28px;border-radius:var(--radius-sm)}.btn.loading{pointer-events:none}.btn.loading>:not(.btn-spinner){opacity:0}.btn-spinner{position:absolute;width:16px;height:16px;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;animation:spin .6s linear infinite}.form-group{display:flex;flex-direction:column;gap:var(--sp-2)}.form-label{font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--text-secondary);letter-spacing:.01em}.form-label-required:after{content:" *";color:var(--danger)}.form-hint{font-size:var(--text-xs);color:var(--text-muted);line-height:var(--leading-snug)}.form-error{font-size:var(--text-xs);color:var(--danger);display:flex;align-items:center;gap:4px}.input{width:100%;height:38px;padding:0 var(--sp-3);background:var(--bg-secondary);border:1px solid var(--border-hover);border-radius:var(--radius);color:var(--text-primary);font-size:var(--text-sm);transition:border-color var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out),background var(--dur-fast) var(--ease-out)}.input::placeholder{color:var(--text-muted)}.input:hover{border-color:#ffffff2e}.input:focus{outline:none;border-color:var(--border-focus);background:var(--bg-primary);box-shadow:0 0 0 3px var(--accent-glow)}.input.error{border-color:#ef444466;box-shadow:0 0 0 3px var(--danger-glow)}.input:disabled{opacity:.5;cursor:not-allowed}.textarea{width:100%;padding:var(--sp-3);background:var(--bg-secondary);border:1px solid var(--border-hover);border-radius:var(--radius);color:var(--text-primary);font-size:var(--text-sm);resize:vertical;min-height:100px;line-height:var(--leading-relaxed);transition:border-color var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out)}.textarea::placeholder{color:var(--text-muted)}.textarea:focus{outline:none;border-color:var(--border-focus);box-shadow:0 0 0 3px var(--accent-glow)}.select{width:100%;height:38px;padding:0 var(--sp-8) 0 var(--sp-3);background:var(--bg-secondary);border:1px solid var(--border-hover);border-radius:var(--radius);color:var(--text-primary);font-size:var(--text-sm);-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%235c5c6d' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;cursor:pointer;transition:border-color var(--dur-fast) var(--ease-out)}.select:focus{outline:none;border-color:var(--border-focus);box-shadow:0 0 0 3px var(--accent-glow)}.input-wrapper{position:relative;display:flex;align-items:center}.input-wrapper .input{padding-left:36px}.input-wrapper .input-icon{position:absolute;left:11px;color:var(--text-muted);pointer-events:none;display:flex}.input-wrapper .input-suffix{position:absolute;right:10px;color:var(--text-muted);display:flex;align-items:center;gap:var(--sp-1)}.input-wrapper .input{width:100%}.toggle{position:relative;width:36px;height:20px;flex-shrink:0}.toggle input{opacity:0;width:0;height:0;position:absolute}.toggle-track{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--bg-elevated);border:1px solid var(--border-hover);border-radius:var(--radius-full);cursor:pointer;transition:background var(--dur-base) var(--ease-out),border-color var(--dur-base) var(--ease-out)}.toggle-track:after{content:"";position:absolute;top:2px;left:2px;width:14px;height:14px;background:var(--text-muted);border-radius:50%;transition:transform var(--dur-base) var(--ease-spring),background var(--dur-base) var(--ease-out)}.toggle input:checked~.toggle-track{background:var(--accent);border-color:var(--accent)}.toggle input:checked~.toggle-track:after{transform:translate(16px);background:#051a14}.checkbox-wrapper{display:flex;align-items:flex-start;gap:var(--sp-2);cursor:pointer}.checkbox{width:16px;height:16px;border:1.5px solid var(--border-hover);border-radius:var(--radius-sm);background:var(--bg-secondary);display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:1px;transition:background var(--dur-fast),border-color var(--dur-fast)}.checkbox.checked{background:var(--accent);border-color:var(--accent)}.badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:.02em;white-space:nowrap}.badge-dot{width:6px;height:6px;border-radius:50%;background:currentColor;flex-shrink:0}.badge-success{background:var(--success-subtle);color:var(--success)}.badge-warning{background:var(--warning-subtle);color:var(--warning)}.badge-danger{background:var(--danger-subtle);color:var(--danger)}.badge-info{background:var(--info-subtle);color:var(--info)}.badge-accent{background:var(--accent-subtle);color:var(--accent)}.badge-primary{background:var(--primary-subtle);color:var(--primary-hover)}.badge-neutral{background:var(--bg-elevated);color:var(--text-secondary);border:1px solid var(--border)}.table-wrapper{border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}.table{width:100%;border-collapse:collapse}.table th{padding:var(--sp-3) var(--sp-4);background:var(--bg-secondary);font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);text-align:left;border-bottom:1px solid var(--border);white-space:nowrap}.table td{padding:var(--sp-3) var(--sp-4);font-size:var(--text-sm);color:var(--text-secondary);border-bottom:1px solid var(--border-subtle);vertical-align:middle}.table tr:last-child td{border-bottom:none}.table tbody tr{transition:background var(--dur-fast) var(--ease-out)}.table tbody tr:hover{background:var(--bg-secondary)}.table td strong{color:var(--text-primary);font-weight:var(--weight-medium)}.table .mono{font-family:var(--font-mono);font-size:12px;color:var(--text-secondary)}.tabs{display:flex;gap:2px;padding:3px;background:var(--bg-secondary);border-radius:var(--radius-md);border:1px solid var(--border)}.tab{flex:1;display:flex;align-items:center;justify-content:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-4);border-radius:var(--radius-sm);font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--text-muted);cursor:pointer;transition:background var(--dur-base) var(--ease-out),color var(--dur-base) var(--ease-out);border:none;background:transparent;white-space:nowrap}.tab:hover{color:var(--text-secondary)}.tab.active{background:var(--bg-card);color:var(--text-primary);box-shadow:var(--shadow-sm)}.tabs-underline{display:flex;gap:0;background:transparent;padding:0;border-radius:0;border:none;border-bottom:1px solid var(--border)}.tabs-underline .tab{flex:unset;padding:var(--sp-3) var(--sp-4);border-radius:0;background:transparent;position:relative;font-size:var(--text-md)}.tabs-underline .tab.active{color:var(--text-primary);background:transparent;box-shadow:none}.tabs-underline .tab.active:after{content:"";position:absolute;bottom:-1px;left:0;right:0;height:2px;background:var(--accent);border-radius:var(--radius-full) var(--radius-full) 0 0}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:var(--sp-4);animation:fadeIn var(--dur-base) var(--ease-out)}.modal{background:var(--bg-card);border:1px solid var(--border-hover);border-radius:var(--radius-xl);width:100%;max-width:480px;box-shadow:var(--shadow-xl);animation:slideUp var(--dur-slow) var(--ease-out)}.modal-sm{max-width:360px}.modal-lg{max-width:640px}.modal-xl{max-width:800px}.modal-header{padding:var(--sp-5) var(--sp-6) var(--sp-4);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4)}.modal-title{font-size:var(--text-lg);font-weight:var(--weight-semibold);color:var(--text-primary);letter-spacing:-.3px}.modal-body{padding:var(--sp-6)}.modal-body+.modal-body{padding-top:0}.modal-footer{padding:var(--sp-4) var(--sp-6) var(--sp-5);border-top:1px solid var(--border);display:flex;align-items:center;justify-content:flex-end;gap:var(--sp-3)}.dropdown{position:relative;display:inline-flex}.dropdown-menu{position:absolute;top:calc(100% + 6px);right:0;min-width:180px;background:var(--bg-elevated);border:1px solid var(--border-hover);border-radius:var(--radius-md);box-shadow:var(--shadow-md);z-index:500;padding:var(--sp-1);animation:fadeIn var(--dur-fast) var(--ease-out)}.dropdown-item{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);border-radius:var(--radius-sm);font-size:var(--text-sm);color:var(--text-secondary);cursor:pointer;transition:background var(--dur-fast),color var(--dur-fast);border:none;background:none;width:100%;text-align:left}.dropdown-item:hover{background:var(--bg-tertiary);color:var(--text-primary)}.dropdown-item.danger:hover{background:var(--danger-subtle);color:var(--danger)}.dropdown-divider{height:1px;background:var(--border);margin:var(--sp-1)}.toast-container{position:fixed;bottom:var(--sp-6);right:var(--sp-6);z-index:2000;display:flex;flex-direction:column;gap:var(--sp-2);pointer-events:none}.toast{display:flex;align-items:flex-start;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);background:var(--bg-elevated);border:1px solid var(--border-hover);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);pointer-events:all;max-width:360px;animation:slideInRight var(--dur-slow) var(--ease-out)}.toast-icon{font-size:16px;flex-shrink:0;margin-top:1px}.toast-content{flex:1}.toast-title{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--text-primary)}.toast-message{font-size:var(--text-xs);color:var(--text-muted);margin-top:2px}.toast-close{color:var(--text-muted);flex-shrink:0;margin-top:1px}.toast.success{border-left:3px solid var(--success)}.toast.error{border-left:3px solid var(--danger)}.toast.warning{border-left:3px solid var(--warning)}.toast.info{border-left:3px solid var(--info)}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:var(--sp-16) var(--sp-8);gap:var(--sp-4)}.empty-state-icon{font-size:40px;opacity:.3}.empty-state-title{font-size:var(--text-lg);font-weight:var(--weight-semibold);color:var(--text-primary)}.empty-state-text{font-size:var(--text-sm);color:var(--text-muted);max-width:320px;line-height:var(--leading-relaxed)}.skeleton{background:linear-gradient(90deg,var(--bg-tertiary) 25%,var(--bg-elevated) 50%,var(--bg-tertiary) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:var(--radius)}.skeleton-text{height:14px;border-radius:var(--radius-full)}.skeleton-circle{border-radius:50%}.spinner{width:20px;height:20px;border:2px solid var(--border-hover);border-top-color:var(--accent);border-radius:50%;animation:spin .6s linear infinite}.loading-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#0f0f1299;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);border-radius:inherit;z-index:10}.toolbar{display:flex;align-items:center;gap:var(--sp-3);flex-wrap:wrap}.search-input{position:relative;display:flex;align-items:center}.search-input .input{padding-left:36px;min-width:240px}.search-input .input-icon{position:absolute;left:11px;color:var(--text-muted)}.pagination{display:flex;align-items:center;gap:var(--sp-1)}.page-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);font-size:var(--text-sm);color:var(--text-secondary);cursor:pointer;background:transparent;border:1px solid transparent;transition:background var(--dur-fast),color var(--dur-fast),border-color var(--dur-fast)}.page-btn:hover{background:var(--bg-tertiary);color:var(--text-primary)}.page-btn.active{background:var(--accent-subtle);color:var(--accent);border-color:var(--border-accent)}.page-btn:disabled{opacity:.3;cursor:not-allowed}.auth-root{display:flex;min-height:100vh;background:var(--bg-base)}.auth-hero{flex:1;position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end;padding:var(--sp-12);min-height:100vh;background:#040607}.auth-hero-bg{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse 70% 55% at 20% 60%,oklch(.78 .14 175 / .09) 0%,transparent 65%),radial-gradient(ellipse 50% 40% at 75% 25%,oklch(.78 .14 175 / .05) 0%,transparent 60%);pointer-events:none}.auth-hero-grid{position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(oklch(.3 .012 220 / .18) 1px,transparent 1px),linear-gradient(90deg,oklch(.3 .012 220 / .18) 1px,transparent 1px);background-size:40px 40px;-webkit-mask-image:radial-gradient(ellipse 80% 80% at 30% 70%,black 0%,transparent 70%);mask-image:radial-gradient(ellipse 80% 80% at 30% 70%,black 0%,transparent 70%);pointer-events:none}.auth-hero-content{position:relative;z-index:1}.auth-hero-logo{position:absolute;top:var(--sp-10);left:var(--sp-12);display:flex;align-items:center;gap:var(--sp-3);z-index:2}.auth-hero-badge{display:inline-flex;align-items:center;gap:8px;padding:4px 10px;border-radius:8px;background:#28d4b21f;border:1px solid oklch(.78 .14 175 / .28);margin-bottom:28px}.auth-hero-badge-label{font-family:JetBrains Mono,ui-monospace,monospace;font-size:.6875rem;font-weight:500;letter-spacing:.06em;color:#28d4b2;text-transform:uppercase}.auth-hero-tagline{font-family:DM Sans,system-ui,sans-serif;font-size:clamp(2.8rem,4.5vw,4rem);font-weight:600;letter-spacing:-.03em;line-height:1.08;color:#eef3f4;margin-bottom:20px;max-width:14ch}.auth-hero-sub{font-family:DM Sans,system-ui,sans-serif;font-size:1rem;font-weight:400;color:#7a8284;line-height:1.65;max-width:42ch;margin-bottom:0}.auth-hero-features{list-style:none;margin:40px 0 0;padding:0;display:flex;flex-direction:column;gap:0}.auth-hero-feature{display:flex;align-items:baseline;gap:16px;padding:16px 0;border-top:1px solid oklch(.3 .012 220 / .5)}.auth-hero-feature:last-child{border-bottom:1px solid oklch(.3 .012 220 / .5)}.auth-hero-feature-index{font-family:JetBrains Mono,ui-monospace,monospace;font-size:.6875rem;font-weight:500;letter-spacing:.06em;color:#28d4b2;flex-shrink:0;width:20px}.auth-hero-feature-body{display:flex;flex-direction:column;gap:2px}.auth-hero-feature-title{font-family:DM Sans,system-ui,sans-serif;font-size:.9375rem;font-weight:600;letter-spacing:-.01em;color:#eef3f4;line-height:1.35}.auth-hero-feature-desc{font-family:DM Sans,system-ui,sans-serif;font-size:.875rem;font-weight:400;color:#7a8284;line-height:1.5}.auth-form{display:flex;flex-direction:column;gap:16px}.auth-form-header{margin-bottom:24px}.auth-form-divider{height:1px;background:#272f3280;margin:4px 0}.form-hint{font-size:.8125rem;color:#6b7376;line-height:1.5;margin-top:-8px}.form-label-optional{color:#6b7376;font-weight:400}.auth-state-body{margin-top:20px}.auth-otp-input{font-family:JetBrains Mono,ui-monospace,monospace!important;font-size:1.25rem!important;letter-spacing:.3em!important;text-align:center!important;height:52px!important}.auth-forgot-link-row{display:flex;justify-content:flex-end;margin-top:6px}.auth-text-link{color:#28d4b2;font-weight:500;text-decoration:none}.auth-text-link:hover{color:#6febcc}.auth-text-link--dim{color:#7a8284;font-weight:400}.auth-text-link--dim:hover{color:#b2b9bb}.auth-resend-row{display:flex;flex-direction:column;align-items:center;gap:10px;margin-top:24px}.auth-resend-timer{display:flex;align-items:center;gap:6px;font-size:.75rem;color:#7a8284}.auth-resend-actions{display:flex;align-items:center;gap:12px;font-size:.875rem}.auth-resend-btn{background:none;border:none;padding:0;font-size:inherit;font-family:inherit;cursor:pointer;color:#28d4b2;font-weight:500}.auth-resend-btn:disabled{color:#474e51;cursor:default}.auth-resend-sep{display:inline-block;width:1px;height:12px;background:#272f32b3}.auth-closed-state{padding:28px 0 8px}.auth-closed-state-title{font-size:.9375rem;font-weight:600;color:#b2b9bb;margin-bottom:8px;letter-spacing:-.01em}.auth-closed-state-body{font-size:.875rem;color:#6b7376;line-height:1.6;margin-bottom:20px;max-width:34ch}.auth-panel{width:480px;flex-shrink:0;background:var(--bg-primary);border-left:1px solid var(--border);display:flex;align-items:center;justify-content:center;padding:var(--sp-10) var(--sp-10);min-height:100vh}.auth-form-wrap{width:100%;max-width:360px}.auth-form-title{font-size:var(--text-2xl);font-weight:var(--weight-bold);letter-spacing:-.5px;color:var(--text-primary);margin-bottom:var(--sp-1)}.auth-form-sub{font-size:var(--text-sm);color:var(--text-muted);margin-bottom:var(--sp-8);line-height:var(--leading-relaxed)}.auth-divider{display:flex;align-items:center;gap:var(--sp-3);margin:var(--sp-5) 0}.auth-divider:before,.auth-divider:after{content:"";flex:1;height:1px;background:var(--border)}.auth-divider span{font-size:var(--text-xs);color:var(--text-muted);white-space:nowrap}.auth-footer-text{text-align:center;font-size:var(--text-sm);color:var(--text-muted);margin-top:var(--sp-6)}.auth-footer-text a{font-weight:var(--weight-medium)}.dashboard-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--sp-4)}.dashboard-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-4)}.dashboard-grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-4)}.dashboard-grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--sp-4)}.camera-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:var(--sp-4)}.camera-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;transition:border-color var(--dur-base) var(--ease-out),box-shadow var(--dur-base) var(--ease-out)}.camera-card:hover{border-color:var(--border-hover);box-shadow:var(--shadow)}.camera-thumb{aspect-ratio:16/9;background:var(--bg-base);position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;color:var(--text-disabled);font-size:32px}.camera-thumb-img{width:100%;height:100%;object-fit:cover}.camera-status-dot{position:absolute;top:var(--sp-3);left:var(--sp-3);width:8px;height:8px;border-radius:50%;background:var(--success);box-shadow:0 0 6px var(--success-glow)}.camera-status-dot.offline{background:var(--text-disabled);box-shadow:none}.camera-info{padding:var(--sp-4)}.camera-name{font-size:var(--text-md);font-weight:var(--weight-semibold);color:var(--text-primary);margin-bottom:var(--sp-1)}.camera-meta{font-size:var(--text-xs);color:var(--text-muted)}.subs-eyebrow{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin-bottom:var(--sp-1)}.subs-card--active{border-color:var(--border-accent);background:#3fe1bf08}.subs-plan-name{font-size:var(--text-2xl);font-weight:var(--weight-semibold);letter-spacing:-.5px;color:var(--text-primary);line-height:var(--leading-tight);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.subs-card--active .subs-plan-name{color:var(--accent)}.subs-dl{display:grid;grid-template-columns:max-content 1fr;gap:var(--sp-1) var(--sp-6);padding:var(--sp-4) 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border);margin-bottom:var(--sp-5)}.subs-dl dt{font-size:var(--text-sm);color:var(--text-muted);align-self:center;padding:var(--sp-1) 0}.subs-dl dd{font-size:var(--text-sm);color:var(--text-secondary);font-weight:var(--weight-medium);text-align:right;align-self:center;padding:var(--sp-1) 0}.subs-pending-val{font-style:italic;color:var(--text-muted);font-weight:var(--weight-normal)}.subs-days{font-family:var(--font-mono);font-weight:var(--weight-semibold)}.subs-days--warn{color:var(--warning)}.subs-days--critical{color:var(--danger)}.subs-btn-row{display:flex;gap:var(--sp-3);flex-wrap:wrap}.subs-plans{display:flex;flex-direction:column;gap:var(--sp-2)}.subs-track-header{display:flex;align-items:baseline;gap:var(--sp-3);margin-bottom:var(--sp-4)}.subs-track-label{font-size:var(--text-md);font-weight:var(--weight-semibold);color:var(--text-primary)}.subs-track-sub{font-size:var(--text-sm);color:var(--text-muted)}.subs-tab-sub{font-size:var(--text-xs);color:var(--accent);font-weight:var(--weight-medium);margin-inline-start:var(--sp-1)}.subs-plan-grid{display:grid;gap:var(--sp-4)}.subs-plan-grid--1{grid-template-columns:minmax(0,380px)}.subs-plan-grid--2{grid-template-columns:repeat(2,1fr)}.subs-plan-grid--3{grid-template-columns:repeat(3,1fr)}.subs-plan-grid--4{grid-template-columns:repeat(4,1fr)}.subs-plan-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--sp-6);display:flex;flex-direction:column;gap:var(--sp-3);position:relative;transition:border-color var(--dur-base) var(--ease-out),box-shadow var(--dur-base) var(--ease-out)}.subs-plan-card:hover{border-color:var(--border-hover);box-shadow:var(--shadow)}.subs-plan-card--highlight{border-color:var(--border-accent);background:#3fe1bf08}.subs-plan-card--highlight:before{position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--accent) 0%,transparent 100%);border-radius:var(--radius-lg) var(--radius-lg) 0 0}.subs-plan-card__badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:.04em;width:fit-content;margin-bottom:var(--sp-1)}.subs-plan-card__name{font-size:var(--text-lg);font-weight:var(--weight-semibold);color:var(--text-primary);letter-spacing:-.3px}.subs-plan-card--highlight .subs-plan-card__name{color:var(--accent)}.subs-plan-card__tagline{font-size:var(--text-sm);color:var(--text-muted);margin-top:calc(-1 * var(--sp-1))}.subs-plan-card__price{font-size:var(--text-3xl);font-weight:var(--weight-bold);letter-spacing:-1px;color:var(--text-primary);line-height:1;font-variant-numeric:tabular-nums;padding:var(--sp-2) 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.subs-plan-card__period{font-size:var(--text-sm);font-weight:var(--weight-normal);color:var(--text-muted);letter-spacing:0}.subs-plan-card__features{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--sp-2);flex:1}.subs-plan-card__features li{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--text-sm);color:var(--text-secondary)}.subs-plan-card__features svg{color:var(--accent);flex-shrink:0}.subs-os-section{margin-top:var(--sp-2)}.subs-row--current td:first-child{color:var(--accent)}.subs-activated{font-size:var(--text-xs);color:var(--text-muted);margin-top:2px}@media (max-width: 900px){.subs-plan-grid--3,.subs-plan-grid--4{grid-template-columns:repeat(2,1fr)}}@media (max-width: 560px){.subs-plan-grid--2,.subs-plan-grid--3,.subs-plan-grid--4,.subs-dl{grid-template-columns:1fr}.subs-dl dd{text-align:start}}code,.mono{font-family:var(--font-mono);font-size:12px;background:var(--bg-elevated);padding:1px 5px;border-radius:var(--radius-sm);color:var(--accent)}pre{font-family:var(--font-mono);font-size:12px;background:var(--bg-base);border:1px solid var(--border);border-radius:var(--radius);padding:var(--sp-4);overflow-x:auto;color:var(--text-secondary);line-height:var(--leading-relaxed)}.divider{height:1px;background:var(--border);margin:var(--sp-4) 0}.divider-v{width:1px;background:var(--border);align-self:stretch}.flex-col{display:flex;flex-direction:column}.grid{display:grid}.hidden{display:none}.items-end{align-items:flex-end}.flex-shrink-0{flex-shrink:0}.gap-5{gap:var(--sp-5)}.p-2{padding:var(--sp-2)}.p-3{padding:var(--sp-3)}.p-4{padding:var(--sp-4)}.p-5{padding:var(--sp-5)}.p-6{padding:var(--sp-6)}.px-3{padding-left:var(--sp-3);padding-right:var(--sp-3)}.px-4{padding-left:var(--sp-4);padding-right:var(--sp-4)}.py-2{padding-top:var(--sp-2);padding-bottom:var(--sp-2)}.py-3{padding-top:var(--sp-3);padding-bottom:var(--sp-3)}.py-4{padding-top:var(--sp-4);padding-bottom:var(--sp-4)}.mt-1{margin-top:var(--sp-1)}.mt-2{margin-top:var(--sp-2)}.mt-3{margin-top:var(--sp-3)}.mt-4{margin-top:var(--sp-4)}.mt-6{margin-top:var(--sp-6)}.mt-8{margin-top:var(--sp-8)}.mb-1{margin-bottom:var(--sp-1)}.mb-2{margin-bottom:var(--sp-2)}.mb-3{margin-bottom:var(--sp-3)}.mb-4{margin-bottom:var(--sp-4)}.mb-6{margin-bottom:var(--sp-6)}.ml-auto{margin-left:auto}.mr-auto{margin-right:auto}.mx-auto{margin-left:auto;margin-right:auto}.text-base{font-size:var(--text-base)}.text-md{font-size:var(--text-md)}.text-lg{font-size:var(--text-lg)}.text-xl{font-size:var(--text-xl)}.text-2xl{font-size:var(--text-2xl)}.text-3xl{font-size:var(--text-3xl)}.font-normal{font-weight:var(--weight-normal)}.font-medium{font-weight:var(--weight-medium)}.text-primary{color:var(--text-primary)}.text-secondary{color:var(--text-secondary)}.text-muted{color:var(--text-muted)}.text-accent{color:var(--accent)}.text-success{color:var(--success)}.text-warning{color:var(--warning)}.text-danger{color:var(--danger)}.text-left{text-align:left}.leading-tight{line-height:var(--leading-tight)}.leading-snug{line-height:var(--leading-snug)}.leading-normal{line-height:var(--leading-normal)}.leading-relaxed{line-height:var(--leading-relaxed)}.uppercase{text-transform:uppercase}.tracking-wide{letter-spacing:.05em}.tracking-wider{letter-spacing:.1em}.rounded-sm{border-radius:var(--radius-sm)}.rounded{border-radius:var(--radius)}.rounded-md{border-radius:var(--radius-md)}.rounded-lg{border-radius:var(--radius-lg)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-full{border-radius:var(--radius-full)}.bg-base{background:var(--bg-base)}.bg-primary{background:var(--bg-primary)}.bg-secondary{background:var(--bg-secondary)}.bg-card{background:var(--bg-card)}.bg-elevated{background:var(--bg-elevated)}.border{border:1px solid var(--border)}.border-hover{border:1px solid var(--border-hover)}.overflow-auto{overflow:auto}.fixed{position:fixed}.opacity-0{opacity:0}.opacity-50{opacity:.5}.opacity-70{opacity:.7}.opacity-100{opacity:1}.cursor-default{cursor:default}.select-none{-webkit-user-select:none;user-select:none}@keyframes spin{to{transform:rotate(360deg)}}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes slideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInRight{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}.live-dot{width:8px;height:8px;border-radius:50%;background:var(--success);animation:pulse 2s ease-in-out infinite}.mobile-topbar{display:none;align-items:center;gap:var(--sp-3);height:var(--topbar-h);padding:0 var(--content-pad);border-bottom:1px solid var(--border);background:var(--bg-primary)}@media (max-width: 1024px){:root{--sidebar-w: 0px;--content-pad: var(--sp-4)}.mobile-topbar{display:flex}.sidebar{transform:translate(-100%);transition:transform var(--dur-slow) var(--ease-out)}.sidebar.open{transform:translate(0);box-shadow:var(--shadow-xl)}.sidebar-close-btn{display:flex!important}.app-main{margin-left:0}.auth-hero{display:none}.auth-panel{width:100%;padding:var(--sp-8) var(--sp-6)}.dashboard-grid-4,.dashboard-grid-3{grid-template-columns:repeat(2,1fr)}.dashboard-grid-2{grid-template-columns:1fr}}[dir=rtl] .sidebar{left:auto;right:0;border-right:none;border-left:1px solid var(--border)}[dir=rtl] .sidebar:after{right:auto;left:0}[dir=rtl] .app-main{margin-left:0;margin-right:var(--sidebar-w)}[dir=rtl] .nav-item.active:before{left:auto;right:0;border-radius:var(--radius-full) 0 0 var(--radius-full)}@media (max-width: 1024px){[dir=rtl] .sidebar{transform:translate(100%)}[dir=rtl] .sidebar.open{transform:translate(0)}[dir=rtl] .app-main{margin-right:0}}@media (max-width: 640px){.dashboard-grid-4,.dashboard-grid-3,.dashboard-grid-2,.plan-grid,.camera-grid{grid-template-columns:1fr}.modal{max-width:100%;margin:var(--sp-4)}.toast-container{left:var(--sp-4);right:var(--sp-4)}.toast{max-width:100%}}.dashboard-page{display:flex;flex-direction:column;min-height:100%}.dashboard-page__body{flex:1;position:relative;display:flex;flex-direction:row;align-items:flex-start;min-height:0}.db-grid-area{flex:1;min-width:0;padding:var(--sp-2);position:relative}.db-grid-area--edit{padding:var(--sp-2)}.db-grid-area .react-grid-layout{position:relative}.db-grid-area .react-grid-item{transition:none}.db-grid-area .react-grid-item.cssTransforms{transition-property:transform}.db-grid-area .react-grid-item.resizing{z-index:100;will-change:width,height}.db-grid-area .react-grid-item.react-draggable-dragging{z-index:1000;will-change:transform;cursor:grabbing!important}.db-grid-area .react-grid-item.react-draggable-dragging .ws-slot{box-shadow:0 24px 60px #0000008c,0 0 0 2px var(--primary);border-color:var(--primary);opacity:.96;transform:scale(1.015);transition:box-shadow .1s,border-color .1s,transform .1s}.db-grid-area .react-grid-item.react-grid-placeholder{background:#6366f11f;border:2px dashed rgba(99,102,241,.4);border-radius:var(--radius-lg);opacity:1}.dashboard-page--edit .dashboard-page__body{background:repeating-linear-gradient(45deg,transparent,transparent 20px,rgba(99,102,241,.015) 20px,rgba(99,102,241,.015) 40px);border-radius:var(--radius-lg)}.db-empty-state{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--sp-4);text-align:center;pointer-events:none}.db-empty-state__icon{font-size:3rem;line-height:1;color:var(--text-muted);opacity:.35}.db-empty-state__title{font-size:var(--text-xl);font-weight:600;color:var(--text-primary);margin:0}.db-empty-state__desc{font-size:var(--text-sm);color:var(--text-muted);max-width:320px;margin:0;line-height:1.6}.db-empty-state__cta{pointer-events:all}.dashboard-load-error{margin:var(--sp-4) 0;padding:var(--sp-3) var(--sp-4);background:var(--danger-subtle);border:1px solid rgba(239,68,68,.2);border-radius:var(--radius);color:var(--danger);font-size:var(--text-sm)}.widget-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;height:100%;display:flex;flex-direction:column;transition:border-color var(--dur-base) var(--ease-out)}.widget-card:hover{border-color:var(--border-hover)}.widget-card--edit{border-color:var(--primary);box-shadow:0 0 0 1px var(--primary-glow)}.widget-header{display:flex;align-items:center;justify-content:space-between;padding:var(--sp-4) var(--sp-4) var(--sp-3);border-bottom:1px solid var(--border);flex-shrink:0}.widget-title{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--text-primary)}.widget-body{flex:1;padding:var(--sp-4);overflow:hidden}.widget-sidebar{width:240px;flex-shrink:0;background:var(--bg-elevated, #16161e);border-right:1px solid var(--border);border-radius:var(--radius-lg) 0 0 var(--radius-lg);padding:var(--sp-4);overflow-y:auto;display:flex;flex-direction:column;gap:var(--sp-2);align-self:stretch;order:-1}.widget-sidebar-title{font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:.08em;text-transform:uppercase;color:var(--text-disabled);margin-bottom:var(--sp-2)}.widget-type-btn{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);border-radius:var(--radius);font-size:var(--text-sm);color:var(--text-secondary);background:var(--bg-secondary);border:1px solid var(--border);cursor:grab;transition:background var(--dur-fast),color var(--dur-fast),border-color var(--dur-fast);width:100%;text-align:left}.widget-type-btn:hover{background:var(--bg-tertiary);color:var(--text-primary);border-color:var(--border-hover)}.dashboard-header{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);padding:0 0 var(--sp-5)}.dashboard-header-actions{display:flex;align-items:center;gap:var(--sp-2)}.layout{display:flex;min-height:100vh}.main-wrapper{flex:1;display:flex;flex-direction:column;min-height:100vh}.content{flex:1;padding:var(--content-pad)}.btn-block{width:100%;justify-content:center}.btn-link{background:none;border:none;color:var(--accent);cursor:pointer;font-weight:var(--weight-medium);font-size:inherit;padding:0;text-decoration:underline;text-underline-offset:2px}.btn-link:hover{color:var(--accent-hover)}.alert{padding:10px 14px;border-radius:var(--radius);font-size:var(--text-sm);margin-bottom:var(--sp-4)}.alert-error{background:var(--danger-subtle);color:var(--danger);border:1px solid rgba(239,68,68,.2)}.alert-success{background:var(--success-subtle);color:var(--success);border:1px solid rgba(34,197,94,.2)}.alert-warning{background:var(--warning-subtle);color:var(--warning);border:1px solid rgba(245,158,11,.2)}.alert-danger{background:var(--danger-subtle);color:var(--danger);border:1px solid rgba(239,68,68,.2)}.nav-icon{display:flex;align-items:center}.nav-section{font-size:10px;font-weight:var(--weight-semibold);letter-spacing:.08em;text-transform:uppercase;color:var(--text-disabled);padding:var(--sp-3) var(--sp-3) var(--sp-1);margin-top:var(--sp-1)}.oauth-buttons{margin-top:var(--sp-4)}.oauth-divider{display:flex;align-items:center;gap:var(--sp-3);margin:var(--sp-4) 0}.oauth-divider:before,.oauth-divider:after{content:"";flex:1;height:1px;background:var(--border)}.oauth-divider span{font-size:var(--text-xs);color:var(--text-muted);white-space:nowrap}.oauth-buttons-list{display:flex;flex-direction:column;gap:var(--sp-2)}.btn-oauth{display:flex;align-items:center;gap:var(--sp-3);height:40px;padding:0 var(--sp-4);background:var(--bg-secondary);border:1px solid var(--border-hover);border-radius:var(--radius);color:var(--text-primary);font-size:var(--text-sm);font-weight:var(--weight-medium);width:100%;transition:background var(--dur-fast),border-color var(--dur-fast)}.btn-oauth:hover{background:var(--bg-tertiary);border-color:#ffffff2e}.spot-types-page{padding:var(--sp-6) var(--sp-6) var(--sp-8);max-width:var(--content-max);margin:0 auto}.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sp-4);margin-bottom:var(--sp-6)}.page-header .subtitle{font-size:var(--text-sm);color:var(--text-secondary);margin:var(--sp-1) 0 0}.page-header h1,.page-header h2{font-size:var(--text-xl);font-weight:var(--weight-bold);color:var(--text-primary);margin:0;line-height:1.25}.subtitle{font-size:var(--text-sm);color:var(--text-secondary)}.types-table{width:100%;border-collapse:collapse;font-size:var(--text-sm);border-radius:var(--radius);overflow:hidden}.types-table th,.types-table td{padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--border);text-align:left;color:var(--text-primary)}.types-table th{font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:.06em;text-transform:uppercase;color:var(--text-secondary);background:var(--bg-secondary)}.types-table tr:hover td{background:var(--bg-hover)}.st-table-header{display:grid;grid-template-columns:40px 1fr 1fr auto;padding:var(--sp-2) var(--sp-4);font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:.06em;text-transform:uppercase;color:var(--text-secondary);background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius) var(--radius) 0 0}.st-table-row{display:grid;grid-template-columns:40px 1fr 1fr auto;padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--border);align-items:center;background:var(--bg-card);transition:background var(--dur-fast)}.st-table-row:last-child{border-bottom:none;border-radius:0 0 var(--radius) var(--radius)}.st-table-row:hover{background:var(--bg-hover)}.st-col-name{font-weight:var(--weight-medium);color:var(--text-primary)}.st-col-slug{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-secondary)}.st-col-actions{display:flex;gap:var(--sp-2);justify-content:flex-end}.btn-row-action{display:inline-flex;align-items:center;gap:5px;padding:5px 12px;border-radius:8px;font-size:.75rem;font-weight:500;cursor:pointer;border:1px solid oklch(.3 .012 220 / .7);background:transparent;color:#b2b9bb;transition:background var(--dur-fast),color var(--dur-fast),border-color var(--dur-fast);white-space:nowrap}.btn-row-action:hover{background:#272f3280;color:#eef3f4;border-color:#404a4db3}.btn-row-action.danger{border-color:#e858544d;color:#ff716b;color:oklch(.72 .18 25);background:transparent}.btn-row-action.danger:hover{background:#e858541f;border-color:#e8585480}.btn-primary.st-add-btn,.st-add-btn{display:inline-flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-4);border-radius:var(--radius);font-size:var(--text-sm);font-weight:var(--weight-semibold);background:var(--primary);color:#fff;border:none;cursor:pointer;transition:background var(--dur-fast)}.btn-primary.st-add-btn:hover,.st-add-btn:hover{background:var(--primary-hover)}.modal-backdrop,.slide-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000a6;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:200;display:flex;align-items:center;justify-content:center;padding:var(--sp-6)}.st-modal{background:var(--bg-elevated);border:1px solid var(--border-hover);border-radius:var(--radius-lg);width:100%;max-width:520px;max-height:90vh;overflow:hidden;display:flex;flex-direction:column;box-shadow:var(--shadow-xl)}.st-modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--sp-5) var(--sp-6);border-bottom:1px solid var(--border);flex-shrink:0}.st-modal-header-inner{display:flex;align-items:center;gap:var(--sp-3)}.st-modal-icon-badge{width:36px;height:36px;border-radius:var(--radius);background:#6366f126;border:1px solid rgba(99,102,241,.25);display:flex;align-items:center;justify-content:center;color:var(--primary);font-size:1rem;flex-shrink:0}.st-modal-icon-badge--accent{background:var(--accent-subtle, oklch(.78 .14 175 / .12));border-color:#28d4b240;color:var(--accent, oklch(.78 .14 175))}.st-modal-title{font-size:var(--text-base);font-weight:var(--weight-semibold);color:var(--text-primary);margin:0}.st-modal-close{width:28px;height:28px;border-radius:var(--radius);border:1px solid var(--border);background:var(--bg-secondary);color:var(--text-secondary);font-size:1rem;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background var(--dur-fast),color var(--dur-fast)}.st-modal-close:hover{background:var(--bg-tertiary);color:var(--text-primary)}.st-modal-body{flex:1;overflow-y:auto;padding:var(--sp-6);display:flex;flex-direction:column;gap:var(--sp-4)}.st-modal-footer{display:flex;justify-content:flex-end;gap:var(--sp-3);padding:var(--sp-4) var(--sp-6);border-top:1px solid var(--border);flex-shrink:0}.st-btn-cancel{padding:var(--sp-2) var(--sp-4);border-radius:var(--radius);border:1px solid var(--border-hover);background:var(--bg-secondary);color:var(--text-secondary);font-size:var(--text-sm);font-weight:var(--weight-semibold);cursor:pointer;transition:background var(--dur-fast)}.st-btn-cancel:hover{background:var(--bg-tertiary);color:var(--text-primary)}.st-btn-submit{padding:var(--sp-2) var(--sp-5);border-radius:var(--radius);border:none;background:var(--primary);color:#fff;font-size:var(--text-sm);font-weight:var(--weight-semibold);cursor:pointer;transition:background var(--dur-fast)}.st-btn-submit:hover{background:var(--primary-hover)}.st-btn-submit:disabled{opacity:.5;cursor:not-allowed}.ds-tag{display:inline-flex;align-items:center;padding:2px 8px;border-radius:6px;font-size:.6875rem;font-weight:500;line-height:1.6;background:var(--accent-subtle, oklch(.78 .14 175 / .12));color:var(--accent, oklch(.78 .14 175));border:1px solid oklch(.78 .14 175 / .18);white-space:nowrap}.ds-tag--mono{font-family:var(--font-mono, "JetBrains Mono", ui-monospace, monospace);letter-spacing:.04em}.var-filter-bar{display:flex;align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-4);padding:var(--sp-3) var(--sp-4);background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md)}.var-filter-bar .ds-select{width:auto;min-width:160px}.var-meta-chips{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap;padding:var(--sp-3) var(--sp-4);background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:var(--sp-1)}.var-meta-label{font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:.04em;color:var(--text-secondary);white-space:nowrap}.var-meta-sep{width:1px;height:14px;background:var(--border);margin:0 var(--sp-1)}.var-col-dim{font-size:var(--text-xs);color:var(--text-dim, oklch(.6 .01 220))}.var-col-default{font-family:var(--font-mono, ui-monospace, monospace)}.var-col-value{font-weight:600;font-size:var(--text-sm);color:var(--text-primary);transition:opacity .25s ease;font-family:var(--font-mono, ui-monospace, monospace)}.st-field{display:flex;flex-direction:column;gap:var(--sp-1)}.st-field label{font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:.04em;text-transform:uppercase;color:var(--text-secondary)}.st-input{padding:var(--sp-2) var(--sp-3);border-radius:var(--radius);border:1px solid var(--border-hover);background:var(--bg-input);color:var(--text-primary);font-size:var(--text-sm);font-family:var(--font-sans);outline:none;transition:border-color var(--dur-fast);width:100%;box-sizing:border-box}.st-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-glow)}.st-input--error{border-color:#ef444480}.st-input--error:focus{border-color:var(--danger);box-shadow:0 0 0 3px #ef44442e}select.st-input{color-scheme:dark}.ds-select{position:relative;width:100%;box-sizing:border-box;font-family:var(--font-sans);font-size:var(--text-sm)}.ds-select__trigger{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);width:100%;padding:var(--sp-2) var(--sp-3);border-radius:var(--radius);border:1px solid var(--border-hover);background:var(--bg-input);color:var(--text-primary);font-size:inherit;font-family:inherit;text-align:left;cursor:pointer;outline:none;transition:border-color var(--dur-fast),box-shadow var(--dur-fast);box-sizing:border-box}.ds-select__trigger:focus,.ds-select--open .ds-select__trigger{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-glow)}.ds-select--disabled .ds-select__trigger{opacity:.45;cursor:not-allowed}.ds-select--sm .ds-select__trigger{padding:5px var(--sp-3)}.ds-select__value{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ds-select__value--placeholder{color:var(--text-muted)}.ds-select__chevron{flex-shrink:0;color:var(--text-secondary);transition:transform var(--dur-fast)}.ds-select--open .ds-select__chevron{transform:rotate(180deg)}.ds-select__menu{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:200;margin:0;padding:var(--sp-1) 0;list-style:none;background:var(--bg-elevated);border:1px solid var(--border-hover);border-radius:var(--radius);box-shadow:0 8px 24px #0006;max-height:220px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--border-hover) transparent}.ds-select__option{padding:7px var(--sp-3);font-size:var(--text-sm);color:var(--text-primary);cursor:pointer;transition:background var(--dur-fast);-webkit-user-select:none;user-select:none}.ds-select__option:hover{background:var(--bg-tertiary)}.ds-select__option--selected{color:var(--accent);background:var(--accent-subtle)}.ds-select__option--selected:hover{background:#00d4aa24}.slide-panel{position:fixed;top:0;right:0;bottom:0;width:480px;max-width:100vw;background:var(--bg-elevated);border-left:1px solid var(--border);z-index:201;display:flex;flex-direction:column;box-shadow:var(--shadow-xl);animation:slideInRight var(--dur-slow) var(--ease-out)}.slide-panel-header{display:flex;align-items:center;justify-content:space-between;padding:var(--sp-5) var(--sp-6);border-bottom:1px solid var(--border);flex-shrink:0}.slide-panel-title-wrap{display:flex;align-items:center;gap:var(--sp-3)}.slide-panel-icon{width:36px;height:36px;border-radius:var(--radius);background:#6366f11f;border:1px solid rgba(99,102,241,.2);display:flex;align-items:center;justify-content:center;color:var(--primary);font-size:1rem}.slide-panel-title{font-size:var(--text-base);font-weight:var(--weight-semibold);color:var(--text-primary);margin:0}.slide-panel-close{width:28px;height:28px;border-radius:var(--radius);border:1px solid var(--border);background:var(--bg-secondary);color:var(--text-secondary);font-size:1rem;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background var(--dur-fast),color var(--dur-fast)}.slide-panel-close:hover{background:var(--bg-tertiary);color:var(--text-primary)}.slide-panel-body{flex:1;overflow-y:auto;padding:var(--sp-6);display:flex;flex-direction:column;gap:var(--sp-5)}.slide-panel-footer{display:flex;justify-content:flex-end;gap:var(--sp-3);padding:var(--sp-4) var(--sp-6);border-top:1px solid var(--border);flex-shrink:0}.rule-section{display:flex;flex-direction:column;gap:var(--sp-3)}.rule-section-title{font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:.08em;text-transform:uppercase;color:var(--text-secondary);border-bottom:1px solid var(--border);padding-bottom:var(--sp-2);margin-bottom:var(--sp-1)}.rule-field{display:flex;flex-direction:column;gap:var(--sp-1)}.rule-field--full{grid-column:1 / -1}.rule-field label,.rule-hint{font-size:var(--text-xs);color:var(--text-secondary)}.rule-hint{margin-top:2px}.rule-input,.rule-select,.rule-textarea{padding:var(--sp-2) var(--sp-3);border-radius:var(--radius);border:1px solid var(--border-hover);background:var(--bg-input);color:var(--text-primary);font-size:var(--text-sm);font-family:var(--font-sans);outline:none;transition:border-color var(--dur-fast);width:100%;box-sizing:border-box}.rule-input:focus,.rule-select:focus,.rule-textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-glow)}.rule-select{color-scheme:dark}.rule-textarea{min-height:80px;resize:vertical}.rule-params-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-3)}.rule-badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:6px;font-size:.6875rem;font-weight:500;line-height:1.5;font-family:JetBrains Mono,ui-monospace,monospace;letter-spacing:.02em;white-space:nowrap}.rule-badge.event{background:#28d4b21a;color:var(--accent);border:1px solid oklch(.78 .14 175 / .25)}.rule-badge.filter{background:#ff9c3e1a;background:oklch(.78 .18 60 / .1);color:#ff9c3e;color:oklch(.78 .18 60);border:1px solid oklch(.78 .18 60 / .25)}.rule-badge.priority{background:#e858541a;color:#ff716b;color:oklch(.72 .18 25);border:1px solid oklch(.65 .18 25 / .25)}.rule-badge.scope{background:#474e5180;color:#b2b9bb;border:1px solid oklch(.4 .014 220 / .4)}.rule-class-pills{display:flex;flex-wrap:wrap;gap:var(--sp-1)}.rule-class-pills span{padding:2px 8px;border-radius:999px;background:var(--bg-tertiary);border:1px solid var(--border-hover);font-size:var(--text-xs);color:var(--text-secondary)}.rule-color-row{display:flex;align-items:center;gap:var(--sp-3)}.rule-color-swatch{width:28px;height:28px;border-radius:var(--radius);border:2px solid var(--border-hover);cursor:pointer;flex-shrink:0}.rule-row-left{display:flex;align-items:center;gap:var(--sp-3);flex:1;min-width:0}.rule-row-info{display:flex;flex-direction:column;gap:2px;min-width:0}.rule-row-meta{display:flex;flex-wrap:wrap;gap:var(--sp-1)}.rule-row-status{flex-shrink:0}.rule-row-actions-area{display:flex;align-items:center;gap:var(--sp-2);flex-shrink:0}.rule-actions-count{display:inline-flex;align-items:center;gap:4px;font-size:.6875rem;font-family:JetBrains Mono,ui-monospace,monospace;font-weight:500;color:#b2b9bb;background:#272f3280;border:1px solid oklch(.3 .012 220 / .7);border-radius:6px;padding:2px 8px;white-space:nowrap}.rule-action-row{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-secondary);overflow:hidden}.rule-action-header{display:flex;align-items:center;justify-content:space-between;padding:var(--sp-3) var(--sp-4);cursor:pointer;-webkit-user-select:none;user-select:none}.rule-action-label{font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--text-primary)}.rule-action-meta{font-size:var(--text-xs);color:var(--text-secondary)}.rule-action-type-sel{font-size:var(--text-sm);color-scheme:dark}.rule-action-expand{color:var(--text-secondary);transition:transform var(--dur-fast)}.rule-action-remove{color:var(--danger);background:none;border:none;cursor:pointer;font-size:var(--text-xs);padding:2px 6px;border-radius:var(--radius);transition:background var(--dur-fast)}.rule-action-remove:hover{background:var(--danger-subtle)}.rule-action-params{padding:var(--sp-3) var(--sp-4);border-top:1px solid var(--border);background:var(--bg-card)}.rule-add-action-btn{display:flex;align-items:center;justify-content:center;gap:var(--sp-2);width:100%;padding:var(--sp-2) var(--sp-4);border-radius:var(--radius);border:1px dashed var(--border-hover);background:transparent;color:var(--text-secondary);font-size:var(--text-sm);cursor:pointer;transition:background var(--dur-fast),color var(--dur-fast)}.rule-add-action-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.settings-group-header,.st-group-header{display:flex;align-items:center;gap:var(--sp-3);padding:12px var(--sp-4);background:#111618;border:1px solid var(--border);border-radius:var(--radius) var(--radius) 0 0;cursor:default;-webkit-user-select:none;user-select:none;transition:background var(--dur-fast)}.settings-group-header:hover,.st-group-header:hover{background:#14191b}.settings-group-icon{color:var(--accent);opacity:.8;flex-shrink:0}.settings-group-text{flex:1;display:flex;flex-direction:column;gap:1px}.settings-group-title{font-size:.8125rem;font-weight:600;color:var(--text-primary);letter-spacing:-.01em}.settings-group-desc{font-size:.6875rem;color:var(--text-muted)}.settings-group-count{font-size:.6875rem;font-family:JetBrains Mono,ui-monospace,monospace;background:#28d4b21a;color:var(--accent);border:1px solid oklch(.78 .14 175 / .25);border-radius:999px;padding:1px 8px;font-weight:500}.cameras-page{padding:var(--sp-6) var(--sp-6) var(--sp-8)}.cc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:var(--sp-4)}.cc{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);display:flex;flex-direction:column;transition:border-color var(--dur-base),box-shadow var(--dur-base)}.cc:hover{border-color:var(--border-hover);box-shadow:var(--shadow-md)}.cc__head{display:flex;align-items:center;justify-content:space-between;padding:var(--sp-4) var(--sp-4) var(--sp-2);gap:var(--sp-3)}.cc__title-row{display:flex;align-items:center;gap:var(--sp-2);min-width:0}.cc__dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.cc__dot--active{background:var(--success);box-shadow:0 0 0 2px #34d39933}.cc__dot--inactive{background:var(--text-disabled)}.cc__dot--error{background:var(--danger);box-shadow:0 0 0 2px #ef444433}.cc__dot--stream{background:var(--accent);box-shadow:0 0 0 2px #00d4aa33}.cc__name{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cc__badge{font-size:10px;font-weight:var(--weight-semibold);letter-spacing:.05em;text-transform:uppercase;padding:2px 8px;border-radius:999px;border:1px solid transparent;flex-shrink:0}.cc__badge--active{background:#34d3991a;color:var(--success);border-color:#34d39940}.cc__badge--inactive{background:var(--bg-tertiary);color:var(--text-disabled);border-color:var(--border)}.cc__badge--error{background:#ef44441a;color:var(--danger);border-color:#ef444440}.cc__badge--stream{background:#00d4aa1a;color:var(--accent);border-color:#00d4aa40}.cc--restricted{border-color:#f59e0b66}.cc__restricted-badge{display:inline-flex;align-items:center;gap:3px;padding:1px 6px;border-radius:4px;font-size:10px;font-weight:var(--weight-semibold);background:#f59e0b1f;color:#f59e0b;border:1px solid rgba(245,158,11,.3);cursor:help;white-space:nowrap}.cc__meta{display:grid;grid-template-columns:auto 1fr;column-gap:var(--sp-4);row-gap:3px;margin:0;padding:var(--sp-1) var(--sp-4) var(--sp-3);font-size:var(--text-xs)}.cc__meta dt{color:var(--text-disabled);font-weight:var(--weight-medium);white-space:nowrap}.cc__meta dd{margin:0;color:var(--text-secondary);font-weight:var(--weight-medium)}.cc__nil{color:var(--text-disabled)}.cc__stream{font-weight:var(--weight-semibold)}.cc__stream--active{color:var(--success)}.cc__stream--running{color:var(--accent)}.cc__stream--error{color:var(--danger)}.cc__stream--idle{color:var(--text-disabled)}.cc__actions{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);border-top:1px solid var(--border);background:var(--bg-secondary);border-radius:0 0 var(--radius-lg) var(--radius-lg)}.cc__actions-end{display:flex;align-items:center;gap:var(--sp-2);margin-left:auto}.cc__btn{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:var(--radius);font-size:var(--text-xs);font-weight:var(--weight-semibold);font-family:var(--font-sans);cursor:pointer;border:1px solid transparent;transition:background var(--dur-fast),color var(--dur-fast),border-color var(--dur-fast);white-space:nowrap;flex-shrink:0}.cc__btn:disabled{opacity:.5;cursor:not-allowed}.cc__btn--ghost{border-color:var(--border-hover);background:transparent;color:var(--text-secondary)}.cc__btn--ghost:hover:not(:disabled){background:var(--bg-hover);color:var(--text-primary)}.cc__btn--warn{border-color:#f59e0b4d;background:#f59e0b12;color:#f59e0b}.cc__btn--warn:hover:not(:disabled){background:#f59e0b24}.cc__btn--danger{border-color:#ef444440;background:transparent;color:var(--danger)}.cc__btn--danger:hover:not(:disabled){background:#ef44441a;border-color:#ef444466}.cam-modal-close{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:var(--radius);border:none;background:transparent;color:var(--text-secondary);cursor:pointer;transition:background var(--dur-fast),color var(--dur-fast);flex-shrink:0}.cam-modal-close:hover{background:var(--bg-hover);color:var(--text-primary)}.cam-modal-body{display:flex;flex-direction:column;gap:var(--sp-4)}.cam-modal-input{width:100%;box-sizing:border-box;padding:var(--sp-2) var(--sp-3);border-radius:var(--radius);border:1px solid var(--border-hover);background:var(--bg-secondary);color:var(--text-primary);font-size:var(--text-sm);font-family:var(--font-sans);transition:border-color var(--dur-fast),box-shadow var(--dur-fast);outline:none}.cam-modal-input::placeholder{color:var(--text-disabled)}.cam-modal-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-glow)}.cam-modal-input--error{border-color:#ef444480}.cam-modal-input--error:focus{border-color:var(--danger);box-shadow:0 0 0 3px #ef44442e}.form-group{display:flex;flex-direction:column;gap:var(--sp-1)}.form-group label{font-size:var(--text-xs);font-weight:var(--weight-semibold);text-transform:uppercase;letter-spacing:.04em;color:var(--text-secondary)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-3)}.form-actions{display:flex;justify-content:flex-end;gap:var(--sp-3);padding-top:var(--sp-2)}.fps-input-wrap{position:relative;display:flex;align-items:center}.fps-suffix{position:absolute;right:var(--sp-3);font-size:var(--text-xs);color:var(--text-secondary);pointer-events:none}.btn-edit,.btn-save{display:inline-flex;align-items:center;gap:var(--sp-1);padding:var(--sp-1) var(--sp-3);border-radius:var(--radius);font-size:var(--text-xs);font-weight:var(--weight-semibold);cursor:pointer;border:1px solid var(--border-hover);background:var(--bg-secondary);color:var(--text-secondary);transition:background var(--dur-fast),color var(--dur-fast)}.btn-edit:hover,.btn-save:hover{background:var(--bg-tertiary);color:var(--text-primary)}.btn-save{border-color:#00d4aa4d;background:#00d4aa14;color:var(--accent)}.btn-save:hover{background:#00d4aa26}.btn-cancel{display:inline-flex;align-items:center;gap:var(--sp-1);padding:var(--sp-1) var(--sp-3);border-radius:var(--radius);font-size:var(--text-xs);font-weight:var(--weight-semibold);cursor:pointer;border:1px solid var(--border-hover);background:var(--bg-secondary);color:var(--text-secondary);transition:background var(--dur-fast)}.btn-delete{display:inline-flex;align-items:center;gap:var(--sp-1);padding:var(--sp-1) var(--sp-3);border-radius:var(--radius);font-size:var(--text-xs);font-weight:var(--weight-semibold);cursor:pointer;border:1px solid rgba(239,68,68,.25);background:var(--danger-subtle);color:var(--danger);transition:background var(--dur-fast)}.btn-delete:hover{background:#ef44442e}.btn-primary{display:inline-flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-4);border-radius:var(--radius);font-size:var(--text-sm);font-weight:var(--weight-semibold);background:var(--primary);color:#fff;border:none;cursor:pointer;transition:background var(--dur-fast)}.btn-primary:hover{background:var(--primary-hover)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.al-counters{display:flex;flex-direction:column;gap:0;margin-bottom:var(--sp-5);background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden}.al-counters-header{display:flex;align-items:center;justify-content:space-between;padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--border);gap:var(--sp-3)}.al-section-title{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--text-xs);font-weight:var(--weight-semibold);font-family:var(--font-mono);letter-spacing:.07em;text-transform:uppercase;color:var(--text-muted)}.al-header-actions{display:flex;align-items:center;gap:var(--sp-2)}.al-live-badge{display:inline-flex;align-items:center;gap:4px;font-size:10px;font-weight:500;font-family:var(--font-mono);letter-spacing:.05em;padding:2px 8px;border-radius:999px}.al-live-badge--on{color:var(--accent);background:var(--accent-subtle);border:1px solid var(--border-accent)}.al-live-badge--off{color:var(--text-muted);background:var(--border);border:1px solid transparent}.al-filters{display:flex;gap:var(--sp-2);flex-wrap:wrap;padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--border)}.al-filters .ds-select{width:auto;min-width:130px}.al-counters-empty,.al-counters-error{padding:var(--sp-8) var(--sp-4);color:var(--text-muted);font-size:var(--text-sm);text-align:center;font-family:var(--font-mono);letter-spacing:.02em}.al-counters-error{color:var(--danger);background:var(--danger-subtle)}.al-refresh-btn{display:inline-flex;align-items:center;gap:var(--sp-1);padding:5px 8px;border-radius:var(--radius-sm);font-size:var(--text-xs);border:1px solid var(--border-hover);background:transparent;color:var(--text-muted);cursor:pointer;transition:background .12s ease,color .12s ease,border-color .12s ease}.al-refresh-btn:hover:not(:disabled){background:var(--bg-tertiary);color:var(--text-primary);border-color:var(--border-hover)}.al-refresh-btn:disabled{opacity:.35;cursor:not-allowed}.al-spin{animation:spin .8s linear infinite;display:inline-block}.al-filter-select{padding:5px var(--sp-3);border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-secondary);color:var(--text-primary);font-size:var(--text-sm);font-family:var(--font-sans);outline:none;cursor:pointer;transition:border-color .12s ease;min-width:130px}.al-filter-select{color-scheme:dark}.al-filter-select:focus{border-color:var(--accent)}.al-filter-select:disabled{opacity:.4;cursor:not-allowed;color:var(--text-muted)}.al-feed-list{display:flex;flex-direction:column;max-height:520px;overflow-y:auto}.al-event-row{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-4);border-bottom:1px solid var(--border-subtle);transition:background .12s ease;min-height:40px}.al-event-row:last-child{border-bottom:none}.al-event-row:hover{background:var(--bg-secondary)}.al-event-row--live{background:var(--accent-subtle)}.al-event-row--live:hover{background:#11161899}.al-event-type{display:inline-flex;align-items:center;font-size:10px;font-weight:600;font-family:var(--font-mono);letter-spacing:.05em;text-transform:uppercase;padding:2px 7px;border-radius:4px;white-space:nowrap;flex-shrink:0;border:1px solid transparent}.al-event-type--accent{background:var(--accent-subtle);color:var(--accent);border-color:var(--border-accent)}.al-event-type--warning{background:var(--warning-subtle);color:var(--warning);border-color:#f59e0b33}.al-event-type--success{background:var(--success-subtle);color:var(--success);border-color:#22c55e33}.al-event-type--info{background:var(--info-subtle);color:var(--info);border-color:#38bdf833}.al-event-type--purple{background:#8b5cf614;color:#a78bfa;border-color:#8b5cf633}.al-event-type--default{background:var(--border);color:var(--text-secondary)}.al-event-meta{flex:1;font-size:var(--text-xs);color:var(--text-secondary);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.al-event-status{font-size:10px;font-weight:500;font-family:var(--font-mono);letter-spacing:.04em;flex-shrink:0}.al-status--success{color:var(--success)}.al-status--failed{color:var(--danger)}.al-status--neutral{color:var(--text-muted)}.al-event-thumb{border-radius:var(--radius-sm);vertical-align:middle;flex-shrink:0;opacity:.9}.al-event-result{font-size:10px;font-family:var(--font-mono);color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:220px;flex-shrink:0}.al-event-ts{font-size:10px;font-family:var(--font-mono);color:var(--text-muted);white-space:nowrap;flex-shrink:0;min-width:72px;text-align:right}.loading{display:flex;align-items:center;justify-content:center;padding:var(--sp-12) var(--sp-6);color:var(--text-secondary);font-size:var(--text-sm)}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--sp-12) var(--sp-6);text-align:center;color:var(--text-secondary);font-size:var(--text-sm);gap:var(--sp-3)}.error-text{color:var(--danger);font-size:var(--text-sm)}.required{color:var(--danger);margin-left:2px}.st-spin{animation:spin .8s linear infinite;display:inline-block}@media (max-width: 768px){.spot-types-page,.cameras-page{padding:var(--sp-4)}.cc-grid{grid-template-columns:1fr}.slide-panel{width:100%}.form-row,.rule-params-grid{grid-template-columns:1fr}.al-filters{flex-direction:column}.al-filter-select{width:100%;min-width:unset}}.flex{display:flex}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.inline-flex{display:inline-flex}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-1{gap:var(--sp-1)}.gap-2{gap:var(--sp-2)}.gap-3{gap:var(--sp-3)}.gap-4{gap:var(--sp-4)}.gap-6{gap:var(--sp-6)}.gap-8{gap:var(--sp-8)}.flex-1{flex:1}.flex-none{flex:none}.min-w-0{min-width:0}.w-full{width:100%}.h-full{height:100%}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-center{text-align:center}.text-right{text-align:right}.font-semibold{font-weight:var(--weight-semibold)}.font-bold{font-weight:var(--weight-bold)}.font-mono{font-family:var(--font-mono)}.text-sm{font-size:var(--text-sm)}.text-xs{font-size:var(--text-xs)}.disabled,[disabled]{opacity:.5;cursor:not-allowed;pointer-events:none}.relative{position:relative}.absolute{position:absolute}.inset-0{top:0;right:0;bottom:0;left:0}.overflow-hidden{overflow:hidden}.cursor-pointer{cursor:pointer}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-4);border-radius:var(--radius);font-size:var(--text-sm);font-weight:var(--weight-semibold);font-family:var(--font-sans);cursor:pointer;border:1px solid transparent;transition:background var(--dur-fast),border-color var(--dur-fast),color var(--dur-fast),opacity var(--dur-fast);white-space:nowrap;flex-shrink:0}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-xs{padding:2px var(--sp-2);font-size:var(--text-xs);border-radius:var(--radius)}.btn-sm{padding:var(--sp-1) var(--sp-3);font-size:var(--text-xs)}.btn-lg{padding:var(--sp-3) var(--sp-6);font-size:var(--text-base)}.btn-icon{padding:var(--sp-1);width:32px;height:32px;justify-content:center}.btn-icon.btn-xs{width:24px;height:24px;padding:2px}.btn-icon.btn-sm{width:28px;height:28px;padding:var(--sp-1)}.btn-primary,.btn.btn-primary{background:var(--primary);color:#fff;border-color:transparent}.btn-primary:hover,.btn.btn-primary:hover{background:var(--primary-hover)}.btn-secondary,.btn.btn-secondary{background:var(--bg-secondary);color:var(--text-primary);border-color:var(--border-hover)}.btn-secondary:hover,.btn.btn-secondary:hover{background:var(--bg-tertiary)}.btn-ghost,.btn.btn-ghost{background:transparent;color:var(--text-secondary);border-color:transparent}.btn-ghost:hover,.btn.btn-ghost:hover{background:var(--bg-hover);color:var(--text-primary)}.btn-accent,.btn.btn-accent{background:var(--accent);color:var(--bg-base);border-color:transparent;font-weight:var(--weight-bold)}.btn-accent:hover,.btn.btn-accent:hover{background:var(--accent-hover)}.btn-danger,.btn.btn-danger{background:var(--danger-subtle);color:var(--danger);border-color:#ef444440}.btn-danger:hover,.btn.btn-danger:hover{background:#ef44442e;border-color:#ef444466}.btn-danger-outline{background:transparent;color:var(--danger);border-color:#ef444459}.btn-danger-outline:hover{background:var(--danger-subtle)}.db-header{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);padding:var(--sp-4) var(--sp-5);border-bottom:1px solid var(--border);background:var(--bg-primary);flex-shrink:0}.db-header--edit{background:#6366f10a;border-bottom-color:#6366f133}.db-header__left{display:flex;align-items:center;gap:var(--sp-3)}.db-header__icon{width:34px;height:34px;border-radius:var(--radius);background:#6366f11f;border:1px solid rgba(99,102,241,.2);display:flex;align-items:center;justify-content:center;color:var(--primary);flex-shrink:0}.db-header__title{font-size:var(--text-xl);font-weight:var(--weight-bold);color:var(--text-primary);margin:0;letter-spacing:-.3px}.db-header__hint{font-size:var(--text-xs);color:var(--text-secondary);margin:2px 0 0}.db-header__actions{display:flex;align-items:center;gap:var(--sp-2)}.db-btn{display:inline-flex;align-items:center;gap:var(--sp-1);padding:var(--sp-1) var(--sp-3);border-radius:var(--radius);font-size:var(--text-xs);font-weight:var(--weight-semibold);font-family:var(--font-sans);cursor:pointer;border:1px solid var(--border-hover);background:var(--bg-secondary);color:var(--text-secondary);transition:background var(--dur-fast),color var(--dur-fast),border-color var(--dur-fast)}.db-btn:hover{background:var(--bg-tertiary);color:var(--text-primary)}.db-btn:disabled{opacity:.5;cursor:not-allowed}.db-btn--edit{border-color:#6366f14d;background:#6366f114;color:var(--primary)}.db-btn--edit:hover{background:#6366f126}.db-btn--save{border-color:transparent;background:var(--primary);color:#fff}.db-btn--save:hover{background:var(--primary-hover)}.db-btn--ghost{background:transparent;border-color:transparent;color:var(--text-secondary)}.db-btn--ghost:hover{background:var(--bg-hover);color:var(--text-primary)}.ws-slot{width:100%;height:100%;display:flex;flex-direction:column;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;position:relative;transition:border-color var(--dur-base)}.ws-slot--edit{border-color:#6366f18c;box-shadow:0 0 0 1px #6366f12e}.react-resizable-handle{position:absolute;width:20px;height:20px;bottom:0;right:0;cursor:se-resize;background:none;padding:0;z-index:10}.react-resizable-handle:after{display:none}.react-resizable-handle:before{content:"";position:absolute;bottom:4px;right:4px;width:10px;height:10px;border-right:2px solid rgba(99,102,241,.8);border-bottom:2px solid rgba(99,102,241,.8);border-radius:0 0 3px;transition:border-color var(--dur-base)}.react-resizable-handle:hover:before{border-color:var(--primary)}.ws-slot__toolbar,.widget-slot__toolbar{display:flex;align-items:center;justify-content:space-between;padding:var(--sp-1) var(--sp-2);background:#6366f10f;border-bottom:1px solid rgba(99,102,241,.15);flex-shrink:0;cursor:grab}.ws-slot__drag-handle{display:flex;align-items:center;gap:var(--sp-1);color:var(--text-secondary);font-size:var(--text-xs)}.ws-slot__type-label{font-size:var(--text-xs);color:var(--text-secondary)}.ws-slot__actions{display:flex;align-items:center;gap:2px}.ws-slot__btn{display:flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:var(--radius);border:none;background:transparent;color:var(--text-secondary);cursor:pointer;transition:background var(--dur-fast),color var(--dur-fast)}.ws-slot__btn:hover{background:var(--bg-hover);color:var(--text-primary)}.ws-slot__btn--danger:hover{background:var(--danger-subtle);color:var(--danger)}.ws-slot__btn--active{background:#6366f126;color:var(--primary)}.ws-slot__content{flex:1;overflow-y:auto;overflow-x:hidden;display:flex;flex-direction:column;min-height:0;scrollbar-width:thin;scrollbar-color:var(--border-hover) transparent}.ws-slot__content::-webkit-scrollbar{width:4px}.ws-slot__content::-webkit-scrollbar-track{background:transparent}.ws-slot__content::-webkit-scrollbar-thumb{background:var(--border-hover);border-radius:99px}.ws-loading,.ws-error,.ws-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;padding:var(--sp-6);text-align:center;font-size:var(--text-sm);color:var(--text-secondary);gap:var(--sp-2)}.ws-error{color:var(--danger)}.ws-sidebar{width:220px;flex-shrink:0;background:var(--sidebar-bg);border-top:1px solid var(--border);display:flex;flex-direction:column;overflow:hidden}.ws-sidebar__header{display:flex;flex-direction:column;padding:var(--sp-3) var(--sp-4) var(--sp-2);border-bottom:1px solid var(--border);flex-shrink:0}.ws-sidebar__label{font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:.07em;text-transform:uppercase;color:var(--text-secondary)}.ws-sidebar__sub{font-size:var(--text-xs);color:var(--text-disabled);margin-top:2px}.ws-sidebar__list{overflow-y:auto;display:flex;flex-direction:column;gap:0;padding:var(--sp-2)}.ws-sidebar__item{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);border-radius:var(--radius);border:none;background:transparent;color:var(--text-secondary);cursor:pointer;text-align:left;width:100%;transition:background var(--dur-fast),color var(--dur-fast)}.ws-sidebar__item:hover{background:var(--bg-hover);color:var(--text-primary)}.ws-sidebar__item-icon{width:28px;height:28px;border-radius:var(--radius);background:rgba(var(--ws-color, 0,212,170),.12);color:var(--ws-color, var(--accent));display:flex;align-items:center;justify-content:center;flex-shrink:0}.ws-sidebar__item-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.ws-sidebar__item-name{font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ws-sidebar__item-desc{font-size:10px;color:var(--text-disabled);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ws-sidebar__item-add{color:var(--text-disabled);opacity:0;transition:opacity var(--dur-fast)}.ws-sidebar__item:hover .ws-sidebar__item-add{opacity:1}.w-stat{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--sp-2);padding:var(--sp-4);height:100%;text-align:center}.w-stat__icon{width:36px;height:36px;border-radius:var(--radius);display:flex;align-items:center;justify-content:center;flex-shrink:0}.w-stat__icon--indigo{background:#6366f126;color:var(--primary)}.w-stat__icon--pink{background:#ec48991f;color:#ec4899}.w-stat__label,.w-stat__label--rule{font-size:var(--text-xs);color:var(--text-secondary);font-weight:var(--weight-medium)}.w-stat__value{font-size:var(--text-3xl, 1.875rem);font-weight:var(--weight-bold);color:var(--text-primary);line-height:1}.w-stat__value--mono{font-family:var(--font-mono)}.w-stat__badge{display:inline-flex;align-items:center;gap:3px;padding:2px 7px;border-radius:999px;font-size:var(--text-xs);font-weight:var(--weight-semibold);background:var(--success-subtle);color:var(--success);border:1px solid rgba(34,197,94,.2)}.w-stat__badge--warn{background:var(--warning-subtle);color:var(--warning);border-color:#f59e0b33}.w-stat__tags{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--sp-1);margin-top:var(--sp-1)}.w-stat__tag{padding:2px 7px;border-radius:999px;font-size:10px;font-weight:var(--weight-semibold);border:1px solid var(--border-hover);color:var(--text-secondary);background:var(--bg-secondary)}.w-stat__progress{width:100%;height:4px;background:var(--bg-tertiary);border-radius:999px;overflow:hidden}.w-stat__progress-bar{height:100%;background:linear-gradient(90deg,var(--primary),var(--accent));border-radius:999px;transition:width var(--dur-slow)}.w-cam-status{padding:var(--sp-3);display:flex;flex-direction:column;align-items:center;gap:var(--sp-1);height:100%;overflow-y:auto}.w-cam-status__list{display:flex;flex-direction:column;gap:1px;width:100%}.w-cam-status__row{display:flex;align-items:center;justify-content:space-between;padding:var(--sp-2) var(--sp-2);border-radius:var(--radius);transition:background var(--dur-fast)}.w-cam-status__row:hover{background:var(--bg-hover)}.w-cam-status__name{font-size:var(--text-xs);font-weight:var(--weight-medium);color:var(--text-primary);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.w-cam-status__pills{display:flex;gap:3px;flex-shrink:0;flex-wrap:wrap;justify-content:center}.w-cam-status__pill{padding:1px 6px;border-radius:999px;font-size:10px;font-weight:var(--weight-semibold);border:1px solid transparent}.w-cam-status__pill--green{background:#22c55e1f;color:var(--success);border-color:#22c55e33}.w-cam-status__pill--red{background:var(--danger-subtle);color:var(--danger);border-color:#ef444433}.w-cam-status__pill--gray{background:var(--bg-tertiary);color:var(--text-disabled);border-color:var(--border)}.w-chart{display:flex;flex-direction:column;height:100%}.w-chart__title{font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--text-secondary);padding:var(--sp-3) var(--sp-4) 0;flex-shrink:0;text-align:center}.w-chart__body{flex:1;min-height:0;padding:var(--sp-2) var(--sp-4) var(--sp-3)}.spin,.ws-spinner,.save-spinner{animation:spin .8s linear infinite;display:inline-flex;align-items:center;justify-content:center}.spinner{width:20px;height:20px;border:2px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin .7s linear infinite;display:inline-block}.stream-error{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--sp-2);padding:var(--sp-6);text-align:center;height:100%;color:var(--text-secondary)}.stream-error-icon{color:var(--text-disabled);opacity:.5}.stream-error-title{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--text-primary)}.stream-error-message{font-size:var(--text-xs);color:var(--text-secondary);max-width:240px}.stream-image{width:100%;height:100%;object-fit:contain;display:block}.video-canvas{display:block;width:100%;height:100%}.cam-picker-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:300;display:flex;align-items:center;justify-content:center;padding:var(--sp-6)}.cam-picker-modal{background:var(--bg-elevated);border:1px solid var(--border-hover);border-radius:var(--radius-lg);width:100%;max-width:560px;max-height:80vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:var(--shadow-xl)}.cam-picker-header{display:flex;align-items:center;justify-content:space-between;padding:var(--sp-4) var(--sp-5);border-bottom:1px solid var(--border);flex-shrink:0}.cam-picker-title-row{display:flex;align-items:center;gap:var(--sp-3)}.cam-picker-subtitle{font-size:var(--text-xs);color:var(--text-secondary)}.cam-picker-close{width:28px;height:28px;border-radius:var(--radius);border:1px solid var(--border);background:var(--bg-secondary);color:var(--text-secondary);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background var(--dur-fast)}.cam-picker-close:hover{background:var(--bg-tertiary);color:var(--text-primary)}.cam-picker-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:var(--sp-3);padding:var(--sp-4);overflow-y:auto}.cam-picker-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-card);overflow:hidden;cursor:pointer;transition:border-color var(--dur-fast),box-shadow var(--dur-fast)}.cam-picker-card:hover{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-glow)}.cam-picker-thumb{width:100%;aspect-ratio:16/9;background:var(--bg-secondary);display:flex;align-items:center;justify-content:center;color:var(--text-disabled);font-size:1.5rem;overflow:hidden}.cam-picker-thumb img{width:100%;height:100%;object-fit:cover}.cam-picker-thumb-fallback{opacity:.3}.cam-picker-info{padding:var(--sp-2) var(--sp-3)}.cam-picker-name{font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--text-primary)}.cam-picker-location{font-size:10px;color:var(--text-disabled)}.cam-picker-live-badge{display:inline-flex;align-items:center;gap:3px;padding:1px 6px;border-radius:999px;background:#00d4aa1f;color:var(--accent);border:1px solid rgba(0,212,170,.25);font-size:10px;font-weight:var(--weight-semibold)}.cam-picker-arrow{color:var(--text-disabled);opacity:.5}.wcp-panel{width:100%;flex:1;min-height:0;background:var(--bg-elevated);display:flex;flex-direction:column;animation:fadeIn var(--dur-base) var(--ease-out);overflow:hidden}.wcp-header{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);padding:var(--sp-2) var(--sp-4);border-bottom:1px solid var(--border);flex-shrink:0}.wcp-header__icon{width:24px;height:24px;border-radius:var(--radius);background:#6366f11f;display:flex;align-items:center;justify-content:center;color:var(--primary);flex-shrink:0}.wcp-header__title{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--text-primary)}.wcp-close{width:28px;height:28px;border-radius:var(--radius);border:1px solid var(--border);background:var(--bg-secondary);color:var(--text-secondary);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background var(--dur-fast)}.wcp-close:hover{background:var(--bg-tertiary);color:var(--text-primary)}.wcp-nav{display:flex;align-items:center;gap:var(--sp-1);padding:var(--sp-2) var(--sp-3);border-bottom:1px solid var(--border);flex-shrink:0;overflow-x:auto;scrollbar-width:none}.wcp-nav::-webkit-scrollbar{display:none}.wcp-nav__pill{flex-shrink:0;padding:3px var(--sp-3);border-radius:99px;border:1px solid transparent;background:transparent;color:var(--text-secondary);font-size:var(--text-xs);font-weight:var(--weight-medium);cursor:pointer;transition:background var(--dur-fast),color var(--dur-fast),border-color var(--dur-fast);white-space:nowrap}.wcp-nav__pill:hover{background:var(--bg-hover);color:var(--text-primary)}.wcp-nav__pill--active{background:#6366f11f;border-color:#6366f14d;color:var(--primary)}.wcp-section{display:flex;flex-direction:column;gap:var(--sp-3)}.wcp-section__heading{display:flex;align-items:center;gap:var(--sp-1);font-size:var(--text-xs);font-weight:var(--weight-semibold);text-transform:uppercase;letter-spacing:.07em;color:var(--text-muted);padding-bottom:var(--sp-1);border-bottom:1px solid var(--border)}.wcp-section__hash{color:var(--primary);font-family:var(--font-mono);font-size:var(--text-xs);opacity:.7}.wcp-section__fields{display:flex;flex-direction:column;gap:var(--sp-3)}.wcp-body{flex:1;overflow-y:auto;min-height:0;padding:var(--sp-3) var(--sp-4);display:flex;flex-direction:column;gap:var(--sp-3);scrollbar-width:thin;scrollbar-color:var(--border-hover) transparent}.wcp-body::-webkit-scrollbar{width:4px}.wcp-body::-webkit-scrollbar-track{background:transparent}.wcp-body::-webkit-scrollbar-thumb{background:var(--border-hover);border-radius:99px}.wcp-field{display:flex;flex-direction:column;gap:var(--sp-1)}.wcp-field--inline{flex-direction:row;align-items:center;justify-content:space-between}.wcp-field__label{font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:.04em;text-transform:uppercase;color:var(--text-secondary)}.wcp-field-hint{font-size:var(--text-xs);color:var(--text-disabled)}.wcp-field-error,.wcp-field-error--full{font-size:var(--text-xs);color:var(--danger);background:var(--danger-subtle);border:1px solid rgba(239,68,68,.2);border-radius:var(--radius);padding:var(--sp-2) var(--sp-3)}.wcp-field-error--full{grid-column:1 / -1}.wcp-input,.wcp-range,.wcp-textarea{padding:var(--sp-2) var(--sp-3);border-radius:var(--radius);border:1px solid var(--border-hover);background:var(--bg-input);color:var(--text-primary);font-size:var(--text-sm);font-family:var(--font-sans);outline:none;width:100%;box-sizing:border-box;transition:border-color var(--dur-fast)}.wcp-input:focus,.wcp-textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-glow)}.wcp-input--number{font-family:var(--font-mono);padding-right:var(--sp-1);-moz-appearance:textfield}.wcp-input--number::-webkit-inner-spin-button,.wcp-input--number::-webkit-outer-spin-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;margin:0}.wcp-range{padding:0}.wcp-toggle{display:inline-flex;align-items:center;cursor:pointer;position:relative;flex-shrink:0}.wcp-toggle input[type=checkbox]{position:absolute;opacity:0;width:0;height:0;pointer-events:none}.wcp-toggle__track{display:inline-block;width:36px;height:20px;border-radius:999px;background:var(--bg-tertiary);border:1px solid var(--border-hover);position:relative;transition:background var(--dur-base),border-color var(--dur-base);flex-shrink:0}.wcp-toggle__track:before{content:"";position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;background:#fff;transition:transform var(--dur-base)}.wcp-toggle input[type=checkbox]:checked~.wcp-toggle__track{background:var(--primary);border-color:var(--primary)}.wcp-toggle input[type=checkbox]:checked~.wcp-toggle__track:before{transform:translate(16px)}.wcp-chips{display:flex;flex-wrap:wrap;gap:var(--sp-1)}.wcp-add-btn{display:inline-flex;align-items:center;gap:var(--sp-1);padding:var(--sp-1) var(--sp-3);border-radius:var(--radius);border:1px dashed var(--border-hover);background:transparent;color:var(--text-secondary);font-size:var(--text-xs);cursor:pointer;transition:background var(--dur-fast),color var(--dur-fast)}.wcp-add-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.wcp-add-btn-wrap{display:flex}.wcp-add-row{display:flex;align-items:center;gap:var(--sp-2)}.wcp-inputs-table{display:flex;flex-direction:column;gap:var(--sp-2)}.wcp-input-row{display:flex;align-items:center;gap:var(--sp-2)}.wcp-input-remove{display:flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:var(--radius);border:none;background:transparent;color:var(--text-disabled);cursor:pointer;flex-shrink:0;transition:color var(--dur-fast),background var(--dur-fast)}.wcp-input-remove:hover{color:var(--danger);background:var(--danger-subtle)}.wcp-input-source{font-size:var(--text-xs);color:var(--text-secondary)}.wcp-seg-legacy{display:flex;border-radius:var(--radius);border:1px solid var(--border-hover);overflow:hidden}.wcp-seg-legacy button{flex:1;padding:var(--sp-1) var(--sp-3);border:none;background:transparent;color:var(--text-secondary);font-size:var(--text-xs);font-weight:var(--weight-medium);cursor:pointer;transition:background var(--dur-fast),color var(--dur-fast)}.wcp-seg-legacy button.active{background:var(--primary);color:#fff}.wcp-hint{font-size:var(--text-xs);color:var(--text-disabled)}.wcp-no-config{padding:var(--sp-6);text-align:center;color:var(--text-secondary);font-size:var(--text-sm)}.wcp-size-row,.wcp-color-row{display:flex;align-items:center;gap:var(--sp-3)}.wcp-picker-dropdown{position:absolute;top:100%;left:0;z-index:100;background:var(--bg-elevated);border:1px solid var(--border-hover);border-radius:var(--radius);box-shadow:var(--shadow-lg);max-height:240px;overflow-y:auto;min-width:200px}.wcp-picker-item{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);cursor:pointer;transition:background var(--dur-fast)}.wcp-picker-item:hover{background:var(--bg-hover)}.wcp-picker-item__name{font-size:var(--text-sm);color:var(--text-primary)}.wcp-picker-item__type{font-size:var(--text-xs);color:var(--text-secondary)}.wcp-picker-empty,.wcp-picker-loading{padding:var(--sp-4);text-align:center;color:var(--text-secondary);font-size:var(--text-sm)}.wcp-icon-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(36px,1fr));gap:var(--sp-1)}.wcp-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:var(--radius);border:1px solid var(--border-hover);background:var(--bg-secondary);color:var(--text-secondary);cursor:pointer;transition:background var(--dur-fast),color var(--dur-fast),border-color var(--dur-fast)}.wcp-icon-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.wcp-icon-btn--active{background:#6366f11f;color:var(--primary);border-color:#6366f14d}.wcp-color-swatch{width:22px;height:22px;border-radius:50%;border:2px solid transparent;cursor:pointer;flex-shrink:0;padding:0;transition:transform var(--dur-fast),border-color var(--dur-fast)}.wcp-color-swatch:hover{transform:scale(1.15)}.wcp-color-swatch--active{border-color:#fff;box-shadow:0 0 0 2px #ffffff4d}.wcp-seg{display:flex;gap:2px;background:var(--bg-tertiary);border-radius:var(--radius);padding:3px;width:fit-content}.wcp-seg__btn{display:inline-flex;align-items:center;justify-content:center;padding:var(--sp-1) var(--sp-3);border-radius:calc(var(--radius) - 2px);border:none;background:transparent;color:var(--text-secondary);font-size:var(--text-xs);font-weight:var(--weight-medium);cursor:pointer;transition:background var(--dur-fast),color var(--dur-fast);white-space:nowrap}.wcp-seg__btn:hover{background:var(--bg-hover);color:var(--text-primary)}.wcp-seg__btn--active{background:var(--bg-card);color:var(--text-primary);box-shadow:0 1px 3px #00000040}.wcp-chip{display:inline-flex;align-items:center;padding:2px 10px;border-radius:999px;border:1px solid var(--border-hover);background:var(--bg-secondary);color:var(--text-secondary);font-size:var(--text-xs);font-weight:var(--weight-medium);cursor:pointer;transition:background var(--dur-fast),color var(--dur-fast),border-color var(--dur-fast)}.wcp-chip:hover{background:var(--bg-hover);color:var(--text-primary)}.wcp-chip--on{background:#6366f11f;color:var(--primary);border-color:#6366f14d}.wcp-input--name{font-family:var(--font-mono);flex:1;min-width:0}.wcp-input--error{border-color:#ef444480!important}.wcp-input--error:focus{border-color:var(--danger)!important;box-shadow:0 0 0 3px #ef44442e!important}.wcp-input-kind{display:inline-flex;align-items:center;justify-content:center;padding:1px 6px;border-radius:4px;font-size:9px;font-weight:var(--weight-bold);letter-spacing:.04em;flex-shrink:0;border:1px solid var(--border);background:var(--bg-tertiary);color:var(--text-secondary)}.wcp-input-kind--variable{background:#6366f11a;color:var(--primary);border-color:#6366f140}.wcp-input-kind--metric{background:#00d4aa1a;color:var(--accent);border-color:#00d4aa40}.w-stat--warn .w-stat__value{color:#f59e0b}.w-stat--warn .w-stat__progress-bar{background:#f59e0b}.w-stat--critical .w-stat__value{color:var(--danger)}.w-stat--critical .w-stat__progress-bar{background:var(--danger)}.w-cam-status__dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;background:var(--text-disabled)}.w-cam-status__dot--active{background:var(--success);box-shadow:0 0 0 2px #34d39940}.w-cam-status__dot--inactive{background:var(--text-disabled)}.w-cam-status__dot--error{background:var(--danger);box-shadow:0 0 0 2px #ef444440}.w-cam-status__state{font-size:10px;font-weight:var(--weight-medium);text-transform:capitalize;flex-shrink:0;color:var(--text-disabled)}.w-cam-status__state--active{color:var(--success)}.w-cam-status__state--inactive{color:var(--text-disabled)}.w-cam-status__state--error{color:var(--danger)}.nodrag{user-drag:none;-webkit-user-drag:none}.input-icon{position:relative;display:flex;align-items:center}.input-suffix{position:absolute;right:var(--sp-3);color:var(--text-secondary);font-size:var(--text-sm)}.input-otp{display:flex;gap:var(--sp-2);justify-content:center}.input-otp input{width:48px;height:56px;text-align:center;font-size:var(--text-xl);font-family:var(--font-mono);font-weight:var(--weight-bold);border:2px solid var(--border-hover);border-radius:var(--radius);background:var(--bg-input);color:var(--text-primary);outline:none;transition:border-color var(--dur-fast),box-shadow var(--dur-fast)}.input-otp input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-glow)}.pf-field{display:flex;flex-direction:column;gap:var(--sp-1)}.pf-field label{font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--text-secondary)}.pf-field .input-wrapper,.pf-field .input{width:100%}.spots-page{padding:var(--sp-6);display:flex;flex-direction:column;gap:var(--sp-5)}.spots-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--sp-4)}.spots-list{display:flex;flex-direction:column;gap:var(--sp-3)}.spots-scroll{overflow-y:auto;flex:1}.csc{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);display:flex;flex-direction:column;overflow:hidden;transition:border-color var(--dur-base),box-shadow var(--dur-base)}.csc:hover{border-color:var(--border-hover);box-shadow:var(--shadow-md)}.csc__head{display:flex;align-items:center;justify-content:space-between;padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--border);background:var(--bg-secondary);gap:var(--sp-3)}.csc__cam-name{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--text-primary);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.csc__edit-btn{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:var(--radius);font-size:var(--text-xs);font-weight:var(--weight-semibold);font-family:var(--font-sans);border:1px solid var(--border-hover);background:transparent;color:var(--text-secondary);cursor:pointer;white-space:nowrap;flex-shrink:0;transition:background var(--dur-fast),color var(--dur-fast)}.csc__edit-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.csc__list{list-style:none;margin:0;padding:var(--sp-2) 0;display:flex;flex-direction:column;gap:1px}.csc__row{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-4);transition:background var(--dur-fast)}.csc__row:hover{background:var(--bg-hover)}.csc__row:hover .csc__del-btn{opacity:1}.csc__swatch{width:10px;height:10px;border-radius:3px;flex-shrink:0}.csc__spot-name{flex:1;font-size:var(--text-xs);font-weight:var(--weight-medium);color:var(--text-secondary);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.csc__del-btn{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:var(--radius);border:1px solid transparent;background:transparent;color:var(--text-disabled);cursor:pointer;flex-shrink:0;opacity:0;transition:background var(--dur-fast),color var(--dur-fast),border-color var(--dur-fast),opacity var(--dur-fast)}.csc__del-btn:hover{background:#ef44441a;border-color:#ef444440;color:var(--danger)}.spot-item{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--sp-4);display:flex;flex-direction:column;gap:var(--sp-3);transition:border-color var(--dur-fast)}.spot-item:hover{border-color:var(--border-hover)}.spot-row{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3)}.spot-name{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--text-primary)}.spot-name-input{padding:var(--sp-1) var(--sp-2);border-radius:var(--radius);border:1px solid var(--border-hover);background:var(--bg-input);color:var(--text-primary);font-size:var(--text-sm);font-family:var(--font-sans);outline:none}.spot-list{display:flex;flex-direction:column;gap:1px}.spot-color{width:14px;height:14px;border-radius:3px;flex-shrink:0;border:1px solid rgba(255,255,255,.15)}.spot-color-bar{height:3px;border-radius:0 0 var(--radius) var(--radius)}.spot-color-picker{display:flex;flex-wrap:wrap;gap:var(--sp-1)}.spot-controls{display:flex;gap:var(--sp-2);align-items:center}.spot-properties{display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-3) 0}.property-group{display:flex;flex-direction:column;gap:var(--sp-1)}.property-actions{display:flex;gap:var(--sp-2);align-items:center;justify-content:flex-end;margin-top:var(--sp-2)}.spot-editor-page{display:flex;flex-direction:column;height:100vh;overflow:hidden;background:#040607}.editor-header{display:flex;align-items:center;gap:12px;padding:0 20px;height:52px;flex-shrink:0;background:#0a0e10;border-bottom:1px solid oklch(.3 .012 220 / .5)}.editor-header h1{margin:0;font-size:.9375rem;font-weight:600;color:#eef3f4;letter-spacing:-.01em;white-space:nowrap}.camera-select-header{display:flex;align-items:center;padding:5px 28px 5px 12px;border-radius:8px;border:1px solid oklch(.3 .012 220 / .6);background:#111618;color:#b2b9bb;font-size:.8125rem;font-family:var(--font-sans);outline:none;cursor:pointer;max-width:200px;transition:border-color .12s,color .12s;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2360757f' stroke-width='2.5'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 8px center;color-scheme:dark}.camera-select-header:focus,.camera-select-header:hover{border-color:#28d4b280;color:#eef3f4}.header-actions{display:flex;align-items:center;gap:8px;margin-left:auto}.btn-clear{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border-radius:7px;border:1px solid oklch(.4 .012 220 / .6);background:transparent;color:#899193;font-size:.8125rem;font-weight:500;font-family:var(--font-sans);cursor:pointer;transition:border-color .12s,color .12s,background .12s}.btn-clear:hover:not(:disabled){border-color:#de3b3db3;color:#fa6863;background:#de3b3d14}.btn-clear:disabled{opacity:.4;cursor:not-allowed}.spot-editor-layout,.editor-layout{display:flex;flex:1;min-height:0}.editor-main{flex:1;position:relative;overflow:hidden;background:#020404;display:flex;align-items:center;justify-content:center}.editor-sidebar{width:308px;flex-shrink:0;border-left:1px solid oklch(.3 .012 220 / .5);background:#0a0e10;display:flex;flex-direction:column;overflow:hidden}.editor-toolbar{display:flex;flex-direction:column;gap:10px;padding:14px 16px 12px;border-bottom:1px solid oklch(.3 .012 220 / .5);background:#0a0e10;flex-shrink:0}.tool-buttons{display:flex;gap:6px}.tool-btn{display:inline-flex;flex-direction:column;align-items:center;gap:5px;padding:8px 10px 7px;border-radius:8px;border:1px solid oklch(.3 .012 220 / .5);background:#111618;color:#7a8284;font-size:.625rem;font-weight:500;letter-spacing:.04em;text-transform:uppercase;font-family:var(--font-sans);cursor:pointer;transition:background .12s,border-color .12s,color .12s;flex:1}.tool-btn:hover:not(:disabled){background:#181e20;color:#eef3f4;border-color:#404a4db3}.tool-btn.active{background:#28d4b224;border-color:#28d4b2;color:#28d4b2}.tool-btn:disabled{opacity:.35;cursor:not-allowed}.tool-hint{font-size:.6875rem;color:#7a8284;min-height:16px;line-height:1.4}.hint{font-size:.6875rem;color:#7a8284}.hint-finish{font-size:.6875rem;color:#28d4b2;font-weight:600}.editor-error{padding:12px 16px;background:#ef444414;color:var(--danger);font-size:var(--text-sm);border-radius:8px;margin:12px}.spot-list{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden}.spot-list>h4{margin:0;padding:10px 16px 9px;font-size:.6875rem;font-weight:500;color:#474e51;text-transform:uppercase;letter-spacing:.06em;font-family:var(--font-mono);border-bottom:1px solid oklch(.3 .012 220 / .5);flex-shrink:0}.spots-scroll{flex:1;overflow-y:auto;padding:8px;display:flex;flex-direction:column;gap:4px}.spot-item{display:flex;flex-direction:column;gap:6px;padding:10px 12px;border-radius:8px;border:1px solid oklch(.3 .012 220 / .4);background:#111618;cursor:pointer;transition:border-color .12s,background .12s}.spot-item:hover{border-color:#404a4db3;background:#14191b}.spot-item.selected{border-color:#28d4b2;background:#28d4b212}.spot-item.selected .spot-name-input{color:#6febcc}.spot-item.disabled{opacity:.45;pointer-events:none}.spot-name-input{width:100%;padding:0;margin:0;background:transparent;border:none;outline:none;color:#eef3f4;font-size:.8125rem;font-weight:500;font-family:var(--font-sans)}.spot-name-input:focus{color:#eef3f4}.spot-name-input::placeholder{color:#474e51}.spot-color-picker{display:flex;flex-wrap:wrap;gap:5px}.color-dot{width:16px;height:16px;border-radius:50%;border:1.5px solid transparent;cursor:pointer;padding:0;transition:transform .1s,border-color .1s;flex-shrink:0}.color-dot:hover{transform:scale(1.2)}.color-dot.active{border-color:#eef3f4;outline:2px solid oklch(.78 .14 175 / .6);outline-offset:1px}.empty-list{padding:32px 16px;text-align:center;color:#474e51;font-size:.8125rem;line-height:1.6}.empty-list .hint{margin-top:4px;color:#474e51b3;font-size:.75rem}.spot-properties{display:flex;flex-direction:column;gap:14px;padding:14px 16px 16px;border-top:1px solid oklch(.3 .012 220 / .5);flex-shrink:0}.spot-inline-properties{display:flex;flex-direction:column;gap:12px;padding:12px 14px 14px;margin:0 8px 6px;background:#070a0b;border:1px solid oklch(.3 .012 220 / .4);border-top:none;border-radius:0 0 8px 8px}.spot-properties>h4{margin:0;font-size:.6875rem;font-weight:500;color:#474e51;text-transform:uppercase;letter-spacing:.06em;font-family:var(--font-mono)}.property-group{display:flex;flex-direction:column;gap:6px}.property-group label{font-size:.6875rem;color:#7a8284;font-weight:500;letter-spacing:.02em}.rotation-control{display:flex;align-items:center;gap:10px}.rotation-control input[type=range]{flex:1;min-width:0;accent-color:oklch(.78 .14 175);height:4px}.rotation-value{font-family:var(--font-mono);font-size:.6875rem;color:#b2b9bb;min-width:34px;text-align:right;flex-shrink:0}.vertex-count{font-family:var(--font-mono);font-size:.75rem;color:#b2b9bb;font-weight:500}.property-actions{margin-top:2px}.PropertyDeleteButton{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border-radius:8px;border:1px solid oklch(.55 .18 25 / .3);background:#c5363714;color:#fa6863;font-size:.8125rem;font-weight:500;font-family:var(--font-sans);cursor:pointer;transition:background .12s,border-color .12s,color .12s;width:100%;justify-content:center}.PropertyDeleteButton:hover{background:#c5363729;border-color:#c5363780;color:#ffa098;color:oklch(.8 .18 25)}.btn-reset{display:inline-flex;align-self:flex-start;padding:2px 8px;border-radius:6px;border:1px solid oklch(.3 .012 220 / .5);background:transparent;color:#7a8284;font-size:.6875rem;cursor:pointer;transition:background .12s,color .12s}.btn-reset:hover{background:#181e20;color:#eef3f4}.btn-draft-restore{padding:4px 12px;border-radius:6px;border:1px solid oklch(.75 .15 75 / .35);background:#e49e221a;color:#f3b94c;font-size:.75rem;font-weight:600;cursor:pointer;transition:background .12s;white-space:nowrap}.btn-draft-restore:hover{background:#e49e222e}.btn-draft-discard{padding:4px 12px;border-radius:6px;border:1px solid oklch(.3 .012 220 / .5);background:transparent;color:#7a8284;font-size:.75rem;cursor:pointer;transition:background .12s,color .12s;white-space:nowrap}.btn-draft-discard:hover{background:#181e20;color:#eef3f4}.sp-type-trigger{display:flex;align-items:center;gap:var(--sp-2);width:100%;padding:var(--sp-2) var(--sp-3);border-radius:var(--radius);border:1px solid var(--border-hover);background:var(--bg-secondary);color:var(--text-primary);cursor:pointer;transition:border-color var(--dur-fast),background var(--dur-fast)}.sp-type-trigger:hover{border-color:var(--accent);background:var(--bg-hover)}.sp-type-trigger.open{border-color:var(--accent)}.sp-type-chevron{margin-left:auto;color:var(--text-secondary);transition:transform var(--dur-fast)}.sp-type-chevron.rotated{transform:rotate(180deg)}.sp-type-option{display:flex;align-items:center;gap:var(--sp-2);width:100%;padding:var(--sp-2) var(--sp-3);background:transparent;border:none;color:var(--text-secondary);cursor:pointer;font-size:var(--text-sm);font-family:var(--font-sans);transition:background var(--dur-fast),color var(--dur-fast);text-align:left;border-radius:6px}.sp-type-option:hover{background:var(--bg-hover);color:var(--text-primary)}.sp-type-option.selected{color:var(--accent);background:#00d4aa12}.video-draw-area{position:relative;width:100%;height:100%;overflow:hidden}.video-with-spots-container{position:relative;display:inline-block}.video-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:300;background:#000000d9;display:flex;align-items:center;justify-content:center}.current-points{font-size:var(--text-xs);font-family:var(--font-mono);color:var(--text-secondary)}.color-picker{display:flex;flex-wrap:wrap;gap:var(--sp-1)}.icon-picker{position:relative}.icon-picker-dropdown{background:var(--bg-elevated);border:1px solid var(--border-hover);border-radius:var(--radius);box-shadow:var(--shadow-lg);min-width:280px;overflow:hidden;padding:0}.select-camera-prompt{padding:var(--sp-6);text-align:center;color:var(--text-secondary);font-size:var(--text-sm)}.spot-editor-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;background:#000000b3;display:flex;align-items:center;justify-content:center}.camera-select{display:flex;flex-direction:column;gap:var(--sp-3)}.camera-select-header{display:flex;align-items:center;justify-content:space-between}.camera-spots-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.camera-spots-header{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);border-bottom:1px solid var(--border);background:var(--bg-secondary)}.btn-close,.wcp-close,.st-modal-close{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:var(--radius);border:1px solid var(--border);background:var(--bg-secondary);color:var(--text-secondary);cursor:pointer;transition:background var(--dur-fast),color var(--dur-fast)}.btn-close:hover{background:var(--bg-tertiary);color:var(--text-primary)}.btn-add-shape,.btn-edit-camera{display:inline-flex;align-items:center;gap:var(--sp-1)}.btn-remove-spot,.btn-delete-spot{color:var(--danger)}.btn-finish{background:var(--accent);color:var(--bg-base);font-weight:var(--weight-bold)}.draft-restore-banner{padding:8px 20px;flex-shrink:0;background:#e49e2214;border-bottom:1px solid oklch(.75 .15 75 / .2);color:#f3b94c;font-size:.8125rem;display:flex;align-items:center;gap:10px}.sp-type-selector{position:relative}.sp-type-dropdown{background:#0e1214;border:1px solid oklch(.32 .012 220 / .7);border-radius:8px;box-shadow:0 8px 24px #00000080,0 2px 6px #0000004d;min-width:200px;overflow:hidden;padding:4px}.sp-type-grid-dropdown{background:#0c1012;border:1px solid oklch(.32 .012 220 / .7);border-radius:10px;box-shadow:0 10px 30px #0000008c,0 2px 8px #00000059;padding:6px;min-width:220px}.sp-type-grid-clear{display:flex;align-items:center;gap:6px;width:100%;padding:6px 8px;border-radius:6px;border:none;background:transparent;color:#6b7376;font-size:.75rem;font-family:var(--font-sans);cursor:pointer;transition:background .1s,color .1s;margin-bottom:4px}.sp-type-grid-clear:hover{background:#171c1d;color:#a7b0b2}.sp-type-grid-clear.selected{color:#28d4b2}.sp-type-grid-clear .sp-type-check{margin-left:auto;color:#28d4b2}.sp-type-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(64px,1fr));gap:4px}.sp-type-grid-item{display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 4px 6px;border-radius:8px;border:1px solid transparent;background:transparent;cursor:pointer;position:relative;transition:background .1s,border-color .1s}.sp-type-grid-item:hover{background:#171c1d;border-color:#272f3280}.sp-type-grid-item.selected{background:#28d4b21f;border-color:#28d4b259}.sp-type-grid-icon{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:8px;color:#a7b0b2}.sp-type-grid-item.selected .sp-type-grid-icon{color:#28d4b2}.sp-type-grid-label{font-size:.625rem;font-weight:500;color:#6b7376;text-align:center;line-height:1.2;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sp-type-grid-item.selected .sp-type-grid-label{color:#28d4b2}.sp-type-grid-check{position:absolute;top:4px;right:4px;color:#28d4b2}.sp-type-grid-item.unavailable{opacity:.28;cursor:not-allowed}.sp-type-grid-item.unavailable:hover{background:transparent;border-color:transparent}.sp-type-grid-empty{padding:12px 8px;text-align:center;font-size:.75rem;color:#4f5759}.sp-type-trigger-label,.sp-type-option-name{font-size:var(--text-sm);color:var(--text-primary);font-weight:var(--weight-medium)}.sp-type-trigger-label--none,.sp-type-option-name{color:var(--text-secondary)}.sp-type-trigger-icon,.sp-type-option-icon{display:flex;align-items:center;justify-content:center;width:24px;height:24px}.sp-type-trigger-icon--none,.sp-type-option-icon--none{color:var(--text-disabled)}.sp-type-check{color:var(--accent)}.ipd-search{display:flex;align-items:center;gap:8px;padding:8px 10px;border-bottom:1px solid var(--border)}.ipd-search svg{flex-shrink:0;color:var(--text-secondary)}.ipd-search input{flex:1;min-width:0;background:transparent;border:none;outline:none;color:var(--text-primary);font-size:.8125rem;font-family:var(--font-sans)}.ipd-search input::placeholder{color:var(--text-disabled)}.ipd-section-label{padding:6px 12px 4px;font-size:10px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted)}.ipd-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;padding:8px;max-height:260px;overflow-y:auto}.ipd-item-icon{width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius);color:var(--text-primary)}.ipd-item-label{font-size:10px;color:var(--text-secondary);text-align:center;line-height:1.2;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ipd-empty{padding:var(--sp-4);text-align:center;color:var(--text-secondary);font-size:var(--text-xs)}.ipt-label{font-size:var(--text-xs);color:var(--text-secondary)}.ipt-preview{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:var(--radius);border:1px solid var(--border-hover);background:var(--bg-secondary);cursor:pointer}.crp-panel{display:flex;flex-direction:column;gap:var(--sp-3);padding:var(--sp-4)}.crp-row{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-2) 0;border-bottom:1px solid var(--border)}.crp-name{flex:1;font-size:var(--text-sm);color:var(--text-primary);min-width:0;overflow:hidden;text-overflow:ellipsis}.crp-badge{padding:2px 8px;border-radius:999px;font-size:var(--text-xs);font-weight:var(--weight-semibold);background:#6366f11f;color:var(--primary);border:1px solid rgba(99,102,241,.2)}.crp-right{display:flex;align-items:center;gap:var(--sp-2);flex-shrink:0}.crp-toggle-track{width:36px;height:20px;border-radius:999px;background:var(--bg-tertiary);border:1px solid var(--border-hover);position:relative;cursor:pointer;transition:background var(--dur-base)}.crp-loading,.crp-empty{padding:var(--sp-4);text-align:center;color:var(--text-secondary);font-size:var(--text-sm)}.crp-error{padding:var(--sp-4);text-align:center;color:var(--danger);font-size:var(--text-sm)}.crp-list{display:flex;flex-direction:column}.st-col-icon{display:flex;align-items:center}.st-type-name{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--text-primary)}.st-input-icon{position:absolute;left:var(--sp-3);color:var(--text-secondary)}.st-input-prefix{display:flex;align-items:center;padding:0 var(--sp-3);background:var(--bg-secondary);border-right:1px solid var(--border-hover);border-radius:var(--radius) 0 0 var(--radius);color:var(--text-secondary);font-size:var(--text-sm);flex-shrink:0}.st-input-slug{font-family:var(--font-mono);font-size:var(--text-sm)}.st-input-with-icon{padding-left:calc(var(--sp-3) * 2 + 16px)!important}.st-input-wrap{position:relative;display:flex;align-items:center}.st-field-hint{font-size:var(--text-xs);color:var(--text-disabled);margin-top:2px}.tpl-textarea-wrap{display:flex;flex-direction:column;gap:var(--sp-2)}.template-help{display:flex;flex-direction:column;gap:0}.template-help-toggle{display:inline-flex;align-items:center;gap:var(--sp-1);background:#0084791a;background:oklch(55% .18 185 / .1);border:1px solid oklch(55% .18 185 / .25);color:var(--accent);font-size:var(--text-xs);font-weight:var(--weight-semibold);cursor:pointer;padding:var(--sp-1) var(--sp-2);border-radius:var(--radius);text-decoration:none;transition:background var(--dur-fast),border-color var(--dur-fast);align-self:flex-start}.template-help-toggle:hover{background:#0084792e;background:oklch(55% .18 185 / .18);border-color:var(--accent)}.template-help-content{margin-top:var(--sp-2);background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}.template-help-intro{font-size:var(--text-xs);color:var(--text-secondary);padding:var(--sp-2) var(--sp-3);border-bottom:1px solid var(--border)}.template-help-variables{display:flex;flex-direction:column}.template-help-variable{display:grid;grid-template-columns:auto 1fr;column-gap:var(--sp-2);row-gap:1px;padding:var(--sp-2) var(--sp-3);border-bottom:1px solid var(--border);transition:background var(--dur-fast)}.template-help-variable:last-child{border-bottom:none}.template-help-variable--clickable{cursor:pointer}.template-help-variable--clickable:hover{background:#00847914;background:oklch(55% .18 185 / .08)}.template-help-var-name{font-family:var(--font-mono);font-size:11px;font-weight:var(--weight-semibold);color:var(--accent);white-space:nowrap;grid-row:1;grid-column:1;background:#0084791a;background:oklch(55% .18 185 / .1);border-radius:4px;padding:1px 5px;border:1px solid oklch(55% .18 185 / .2);align-self:center}.template-help-var-desc{font-size:var(--text-xs);color:var(--text-primary);grid-row:1;grid-column:2;align-self:center}.template-help-var-example{font-family:var(--font-mono);font-size:10px;color:var(--text-disabled);grid-row:2;grid-column:2}.tpl-preview{display:flex;flex-direction:column;gap:var(--sp-1);background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}.tpl-preview-label{font-size:var(--text-xs);font-weight:var(--weight-semibold);text-transform:uppercase;letter-spacing:.06em;color:var(--text-secondary);padding:var(--sp-2) var(--sp-3);border-bottom:1px solid var(--border);background:var(--bg-elevated)}.tpl-preview-body{font-size:var(--text-xs);font-family:var(--font-mono);color:var(--accent);padding:var(--sp-2) var(--sp-3);white-space:pre-wrap;word-break:break-all;min-height:32px}.tpl-preview-body--plain{color:var(--text-primary)}.media-filter-bar{display:flex;align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-4);flex-wrap:wrap;padding:var(--sp-3) var(--sp-4);background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md)}.media-filter-bar-right{display:flex;align-items:center;gap:var(--sp-2);margin-left:auto}.media-filter-bar-right .ds-select{width:auto;min-width:160px}.media-type-tabs{display:flex;gap:var(--sp-1)}.media-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:var(--sp-3)}.media-cam-select{min-width:160px;padding:5px var(--sp-3);border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-secondary);color:var(--text-primary);font-size:var(--text-sm);font-family:var(--font-sans);outline:none;cursor:pointer;transition:border-color .12s ease}.media-cam-select:focus{border-color:var(--accent)}.media-cam-select{color-scheme:dark}.media-delete-all-btn{color:var(--danger)}.media-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden;cursor:pointer;display:flex;flex-direction:column;transition:border-color .12s ease,background .12s ease}.media-card:hover{border-color:var(--border-hover);background:var(--bg-elevated)}.media-card--selected{border-color:var(--accent);background:var(--accent-subtle)}.media-card-thumb{width:100%;aspect-ratio:16/9;background:var(--bg-secondary);overflow:hidden;position:relative}.media-card-img{width:100%;height:100%;object-fit:cover}.media-card-video-placeholder{display:flex;align-items:center;justify-content:center;height:100%;color:var(--text-disabled)}.media-card-checkbox{position:absolute;top:var(--sp-2);left:var(--sp-2);z-index:1}.media-card-info{padding:var(--sp-2) var(--sp-3);display:flex;flex-direction:column;gap:2px;border-top:1px solid var(--border-subtle)}.media-card-camera{font-size:var(--text-xs);color:var(--accent);font-weight:var(--weight-medium)}.media-card-type{display:flex;align-items:center;gap:4px;font-size:var(--text-xs);color:var(--text-secondary)}.media-card-ts{font-size:10px;color:var(--text-muted);font-family:var(--font-mono)}.media-error{margin-bottom:var(--sp-4)}.media-empty-state{margin-top:var(--sp-12)}.media-load-more{text-align:center;margin-top:var(--sp-6)}.media-selection-bar{position:sticky;bottom:0;display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);background:var(--bg-elevated);border-top:1px solid var(--border);flex-wrap:wrap}.media-selection-bar-left{display:flex;align-items:center;gap:var(--sp-3);flex:1}.media-selection-bar-right{display:flex;align-items:center;gap:var(--sp-2)}.media-selection-bar-count{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--text-primary)}.media-selection-bar-select-all,.media-selection-bar-deselect{font-size:var(--text-xs);color:var(--accent);cursor:pointer;background:none;border:none}.media-selection-bar-delete{color:var(--danger)}.media-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:300;background:#000c;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:var(--sp-6)}.media-modal{background:var(--bg-elevated);border:1px solid var(--border-hover);border-radius:var(--radius-lg);max-width:680px;width:100%;max-height:90vh;display:flex;flex-direction:column;box-shadow:var(--shadow-xl);overflow:hidden}.media-modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--sp-4) var(--sp-5);border-bottom:1px solid var(--border);flex-shrink:0}.media-modal-title{font-size:var(--text-base);font-weight:var(--weight-semibold);color:var(--text-primary)}.media-modal-close{@extend .btn-close;}.media-modal-body{flex:1;overflow-y:auto;padding:var(--sp-5)}.media-modal-footer{display:flex;justify-content:flex-end;gap:var(--sp-3);padding:var(--sp-4) var(--sp-5);border-top:1px solid var(--border);flex-shrink:0}.type-icon-wrap{width:32px;height:32px;border-radius:var(--radius);background:var(--bg-secondary);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;color:var(--text-secondary);flex-shrink:0}.danger{color:var(--danger)}.form-label{font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:.04em;text-transform:uppercase;color:var(--text-secondary)}.ws-spinner{animation:spin .8s linear infinite;display:inline-flex}.ws-empty{flex-direction:column;gap:var(--sp-3)}.ws-empty svg{opacity:.35}.wcps{position:relative;width:100%}.wcps__trigger{width:100%;display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);border-radius:var(--radius);border:1px solid var(--border-hover);background:var(--bg-input);color:var(--text-primary);font-size:var(--text-sm);font-family:var(--font-sans);cursor:pointer;text-align:left;transition:border-color var(--dur-fast),box-shadow var(--dur-fast)}.wcps__trigger:hover{border-color:var(--primary)}.wcps--open .wcps__trigger{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-glow)}.wcps__value{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wcps__value--placeholder{color:var(--text-disabled)}.wcps__chevron{flex-shrink:0;color:var(--text-muted);transition:transform var(--dur-fast)}.wcps--open .wcps__chevron{transform:rotate(180deg);color:var(--primary)}.wcps__dropdown{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:100;background:var(--bg-elevated);border:1px solid var(--border-hover);border-radius:var(--radius);box-shadow:0 8px 24px #0006;max-height:220px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--border-hover) transparent;animation:fadeIn .1s var(--ease-out)}.wcps__dropdown::-webkit-scrollbar{width:4px}.wcps__dropdown::-webkit-scrollbar-thumb{background:var(--border-hover);border-radius:99px}.wcps__option{width:100%;display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);background:transparent;border:none;color:var(--text-secondary);font-size:var(--text-sm);font-family:var(--font-sans);cursor:pointer;text-align:left;transition:background var(--dur-fast),color var(--dur-fast)}.wcps__option:hover{background:var(--bg-hover);color:var(--text-primary)}.wcps__option--active{color:var(--primary);background:#6366f114}.wcps__option-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wcps__check{flex-shrink:0;color:var(--primary)}.wcps__empty{padding:var(--sp-4);text-align:center;color:var(--text-disabled);font-size:var(--text-xs)}.auth-container{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;padding:var(--sp-6)}.auth-page{min-height:100vh;display:flex}.auth-form{display:flex;flex-direction:column;gap:var(--sp-4)}.auth-form-section{display:flex;flex-direction:column;gap:var(--sp-3)}.auth-form-wrapper{width:100%;max-width:420px;margin:0 auto}.auth-header{margin-bottom:var(--sp-6)}.auth-logo{display:flex;align-items:center;gap:var(--sp-3)}.auth-logo-icon{width:40px;height:40px;border-radius:var(--radius-lg);background:var(--accent);display:flex;align-items:center;justify-content:center;color:var(--bg-base)}.auth-link{color:var(--accent);text-decoration:underline;text-underline-offset:2px}.auth-footer{margin-top:var(--sp-6);text-align:center}.auth-loading-icon{animation:spin .8s linear infinite;display:inline-flex}.auth-success-icon{color:var(--success)}.auth-error-icon{color:var(--danger)}.rb-page{display:flex;flex-direction:column;overflow:hidden;background:var(--bg-base);margin:calc(-1 * var(--content-pad));height:100vh}@media (max-width: 1024px){.rb-page{height:calc(100vh - var(--topbar-h))}}.rb-topbar{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-4);border-bottom:1px solid var(--border);background:var(--bg-primary);flex-shrink:0;overflow:hidden}.rb-topbar-right{display:flex;align-items:center;gap:var(--sp-3);margin-left:auto;flex-shrink:0}.rb-body{display:flex;flex:1;min-height:0;position:relative}.rb-sidebar{width:260px;flex-shrink:0;background:var(--bg-elevated);border-right:1px solid var(--border);display:flex;flex-direction:column;overflow:hidden}.rb-canvas-wrap{flex:1;position:relative;background:var(--bg-base)}.rb-canvas-wrap .react-flow,.rb-canvas-wrap .react-flow__pane,.rb-canvas-wrap .react-flow__renderer,.rb-canvas-wrap .react-flow__background{background:var(--bg-base)}.rb-canvas-wrap .react-flow__controls{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden}.rb-canvas-wrap .react-flow__controls-button{background:var(--bg-elevated);border:none;border-bottom:1px solid var(--border);color:var(--text-secondary);fill:var(--text-secondary)}.rb-canvas-wrap .react-flow__controls-button:last-child{border-bottom:none}.rb-canvas-wrap .react-flow__controls-button:hover{background:var(--bg-hover);color:var(--text-primary);fill:var(--text-primary)}.rb-canvas-wrap .react-flow__controls-button svg{fill:inherit}.rb-canvas-wrap .react-flow__minimap{background:var(--bg-elevated)!important;border:1px solid var(--border);border-radius:var(--radius-md)}.rb-canvas-wrap .react-flow__minimap-svg{background:var(--bg-elevated)}.rb-canvas-hint{position:absolute;bottom:var(--sp-4);left:50%;transform:translate(-50%);background:#0009;color:var(--text-secondary);font-size:var(--text-xs);padding:var(--sp-2) var(--sp-4);border-radius:999px;pointer-events:none;white-space:nowrap}.rb-sidebar-cat-header{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-4);border-bottom:1px solid var(--border);background:var(--bg-secondary);flex-shrink:0}.rb-sidebar-cat-label{font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:.06em;text-transform:uppercase;color:var(--text-secondary)}.rb-name-input{padding:var(--sp-1) var(--sp-2);border:1px solid var(--border-hover);border-radius:var(--radius);background:var(--bg-input);color:var(--text-primary);font-size:var(--text-sm);outline:none;font-family:var(--font-sans);min-width:160px;max-width:280px;width:100%}.rb-name-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-glow)}.rb-save-btn{display:inline-flex;align-items:center;gap:var(--sp-1);padding:var(--sp-1) var(--sp-3);border:none;border-radius:var(--radius);background:var(--primary);color:#fff;font-size:var(--text-sm);font-weight:var(--weight-semibold);cursor:pointer;white-space:nowrap;transition:background var(--dur-fast);flex-shrink:0}.rb-save-btn:hover:not(:disabled){background:var(--primary-hover)}.rb-save-btn:disabled{opacity:.5;cursor:not-allowed}.rb-node{min-width:160px;padding:var(--sp-3) var(--sp-3) var(--sp-4);border-radius:var(--radius-lg);border:1.5px solid var(--border);background:var(--bg-elevated);display:flex;flex-direction:column;gap:var(--sp-2);position:relative;box-shadow:var(--shadow-md);transition:border-color var(--dur-fast),box-shadow var(--dur-fast);cursor:pointer}.rb-node--camera{border-color:#00d4aa59}.rb-node--ai-model{border-color:#a855f759}.rb-node--trigger{border-color:#f59e0b59}.rb-node--condition{border-color:#6366f159}.rb-node--logic{border-color:#a78bfa59}.rb-node--action-notify{border-color:#f59e0b59}.rb-node--action-integration{border-color:#3b82f659}.rb-node--action-media{border-color:#f43f5e59}.rb-node--action-zone{border-color:#00d4aa59}.rb-node--selected{border-color:var(--primary)!important;box-shadow:0 0 0 3px var(--primary-glow),var(--shadow-md)}.rb-node--exec-fired{border-color:var(--success)!important;box-shadow:0 0 0 2px #39c42d4d,var(--shadow-md)}.rb-node--exec-passed{border-color:var(--success)!important}.rb-node--exec-failed{border-color:var(--danger)!important;box-shadow:0 0 0 2px #ff343440,var(--shadow-md);box-shadow:0 0 0 2px oklch(65% .27 27 / .25),var(--shadow-md)}.rb-node--exec-skipped{opacity:.45}.rb-node-title{font-size:var(--text-xs);font-weight:var(--weight-bold);color:var(--text-primary)}.rb-node-subtitle{font-size:10px;color:var(--text-secondary);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:140px}.rb-node-subtitle,.rb-node-sub{font-size:10px;color:var(--text-secondary)}.rb-ai-model-mini-config{display:flex;gap:var(--sp-2);font-size:10px;font-family:var(--font-mono);color:var(--text-disabled)}.rb-node-badge,.rb-node-badge--camera,.rb-node-badge--trigger,.rb-node-badge--condition{display:inline-flex;align-items:center;gap:3px;padding:1px 6px;border-radius:999px;font-size:10px;font-weight:var(--weight-semibold);background:#6366f11f;color:var(--primary);border:1px solid rgba(99,102,241,.2)}.rb-node-badge--camera{background:#00d4aa1a;color:var(--accent);border-color:#00d4aa33}.rb-node-badge--trigger{background:#f59e0b1a;color:var(--warning);border-color:#f59e0b33}.rb-node-badge--action-notify{background:#f59e0b1a;color:#f59e0b;border-color:#f59e0b33}.rb-node-badge--action-integration{background:#3b82f61a;color:#3b82f6;border-color:#3b82f633}.rb-node-badge--action-media{background:#f43f5e1a;color:#f43f5e;border-color:#f43f5e33}.rb-node-badge--action-zone{background:#00d4aa1a;color:var(--accent);border-color:#00d4aa33}.rb-handle{width:10px;height:10px;border-radius:50%;border:2px solid var(--primary);background:var(--bg-base)}.rb-handle--camera{border-color:var(--accent)}.rb-handle--trigger{border-color:var(--warning)}.rb-handle--true{border-color:var(--success)}.rb-handle--false{border-color:var(--danger)}.rb-handle--ai-model{border-color:#a78bfa}.rb-handle-label,.rb-handle-label--true,.rb-handle-label--false{font-size:9px;color:var(--text-secondary);white-space:nowrap}.rb-handle-label--true{color:var(--success)}.rb-handle-label--false{color:var(--danger)}.rb-edge-label{font-size:var(--text-xs);background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);padding:2px 6px;color:var(--text-secondary)}.rb-edge-delete-btn{width:18px;height:18px;border-radius:50%;background:var(--danger);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:10px;border:none}.rb-actions-fab{position:absolute;bottom:var(--sp-5);right:var(--sp-5);z-index:10;display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-4);border-radius:999px;background:var(--bg-elevated);border:1px solid var(--border-hover);color:var(--text-secondary);font-size:var(--text-xs);font-weight:var(--weight-semibold);cursor:pointer;box-shadow:var(--shadow-lg);transition:color var(--dur-fast),border-color var(--dur-fast),box-shadow var(--dur-fast)}.rb-actions-fab:hover{color:var(--text-primary);border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-glow),var(--shadow-lg)}.rb-config-panel{position:absolute;right:0;top:0;bottom:0;width:340px;background:var(--bg-elevated);border-left:1px solid var(--border);display:flex;flex-direction:column;z-index:10;animation:slideInRight var(--dur-slow) var(--ease-out)}[dir=rtl] .rb-config-panel{right:auto;left:0;border-left:none;border-right:1px solid var(--border);animation:slideInLeft var(--dur-slow) var(--ease-out)}.rb-config-header{display:flex;align-items:center;justify-content:space-between;padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--border);flex-shrink:0;gap:var(--sp-2);min-height:56px}.rb-config-header-info{display:flex;flex-direction:column;gap:5px;flex:1;min-width:0}.rb-config-cat{display:inline-flex;align-items:center;align-self:flex-start;font-family:var(--font-mono, "JetBrains Mono", ui-monospace, monospace);font-size:9.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;padding:2px 7px;border-radius:5px;background:#272f3266;color:#7a8284;border:1px solid oklch(.3 .012 220 / .5)}.rb-config-cat--trigger{background:#ac73001f;background:oklch(.6 .18 75 / .12);color:#e49e22;border-color:#ac73004d;border-color:oklch(.6 .18 75 / .3)}.rb-config-cat--camera{background:#28d4b21a;color:#28d4b2;border-color:#28d4b24d}.rb-config-cat--condition{background:#6e69f31a;color:#8d90ff;color:oklch(.7 .18 280);border-color:#6e69f34d}.rb-config-cat--ai_model,.rb-config-cat--logic_gate{background:#9d5bf41a;color:#b688ff;color:oklch(.72 .18 300);border-color:#9d5bf44d}.rb-config-cat--action{background:#28d4b21a;color:#28d4b2;border-color:#28d4b24d}.rb-config-cat--action-notify{background:#ac73001f;background:oklch(.6 .18 75 / .12);color:#e49e22;border-color:#ac73004d;border-color:oklch(.6 .18 75 / .3)}.rb-config-cat--action-integration{background:#0082c01a;background:oklch(.58 .18 240 / .1);color:#02a9f7;border-color:#0082c04d;border-color:oklch(.58 .18 240 / .3)}.rb-config-cat--action-media{background:#de1c4e1a;color:#ff6077;color:oklch(.7 .2 15);border-color:#de1c4e4d}.rb-config-cat--action-zone{background:#28d4b21a;color:#28d4b2;border-color:#28d4b24d}.rb-config-cat--if_else{background:#6e69f31a;color:#8d90ff;color:oklch(.7 .18 280);border-color:#6e69f34d}.rb-config-title{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rb-config-close{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:var(--radius);flex-shrink:0;border:1px solid var(--border);background:var(--bg-secondary);color:var(--text-secondary);cursor:pointer;transition:color var(--dur-fast),border-color var(--dur-fast),background var(--dur-fast)}.rb-config-close:hover{color:var(--text-primary);border-color:var(--border-hover);background:var(--bg-hover)}.rb-config-tabs{display:flex;border-bottom:1px solid var(--border);flex-shrink:0}.rb-config-tab{flex:1;padding:var(--sp-2) var(--sp-3);font-size:var(--text-xs);font-weight:var(--weight-medium);color:var(--text-secondary);border:none;background:none;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;transition:color var(--dur-fast),border-color var(--dur-fast)}.rb-config-tab:hover{color:var(--text-primary)}.rb-config-tab--active{color:var(--text-primary);border-bottom-color:var(--accent)}.rb-config-body{flex:1;overflow-y:auto;padding:var(--sp-4) var(--sp-4) var(--sp-5);display:flex;flex-direction:column;gap:var(--sp-4)}.rb-config-footer{padding:var(--sp-3) var(--sp-4);border-top:1px solid var(--border);flex-shrink:0;background:#11161866}.rb-config-desc{font-family:var(--font-mono, "JetBrains Mono", ui-monospace, monospace);font-size:10px;line-height:1.55;letter-spacing:.01em;color:#7a8284}.rb-config-static-field{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);border-radius:var(--radius);background:#11161880;border:1px solid oklch(.3 .012 220 / .4);font-size:var(--text-sm);color:#7a8284;min-height:36px;cursor:default;-webkit-user-select:text;user-select:text}.rb-select{-moz-appearance:none;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%236b7280' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right var(--sp-3) center;padding-right:calc(var(--sp-3) * 2 + 12px);color-scheme:dark}.rb-select option{background:var(--bg-elevated);color:var(--text-primary)}.rb-config--zone,.rb-config--media,.rb-config--notify,.rb-config--webhook{display:flex;flex-direction:column;gap:var(--sp-3)}.rb-field{display:flex;flex-direction:column;gap:5px}.rb-field-label{font-family:var(--font-mono, "JetBrains Mono", ui-monospace, monospace);font-size:10px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:#7a8284}.rb-field-hint{font-size:var(--text-xs);line-height:1.5;color:#636a6d}.rb-field-clear-link{font-size:var(--text-xs);color:var(--accent);cursor:pointer;background:none;border:none}.rb-input,.rb-select,.rb-textarea,.rb-range{padding:var(--sp-2) var(--sp-3);border-radius:var(--radius);border:1px solid var(--border-hover);background:var(--bg-input);color:var(--text-primary);font-size:var(--text-sm);font-family:var(--font-sans);outline:none;width:100%;box-sizing:border-box;transition:border-color var(--dur-fast)}.rb-input:focus,.rb-select:focus,.rb-textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-glow)}.rb-input[readonly],.rb-input:read-only{color:var(--text-secondary);background:var(--bg-secondary);border-color:var(--border);cursor:default}.rb-textarea{min-height:70px;resize:vertical}.rb-range{padding:0;border:none;background:transparent;cursor:pointer;accent-color:oklch(.78 .14 175)}.rb-range::-webkit-slider-runnable-track{height:4px;border-radius:999px;background:linear-gradient(to right,oklch(.78 .14 175) var(--range-pct, 25%),var(--border-hover) var(--range-pct, 25%))}.rb-range::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:14px;height:14px;border-radius:50%;background:#28d4b2;border:2px solid var(--bg-base);box-shadow:0 0 0 2px #28d4b259;margin-top:-5px;cursor:pointer}.rb-range::-moz-range-track{height:4px;border-radius:999px;background:var(--border-hover)}.rb-range::-moz-range-progress{height:4px;border-radius:999px;background:#28d4b2}.rb-range::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:#28d4b2;border:2px solid var(--bg-base);cursor:pointer}.rb-range-wrap{display:flex;align-items:center;gap:var(--sp-2)}[dir=rtl] .rb-range-wrap{flex-direction:row-reverse}.rb-range-val{font-family:var(--font-mono);font-size:var(--text-xs);font-weight:var(--weight-semibold);color:#28d4b2;min-width:36px;text-align:right}[dir=rtl] .rb-range-val{text-align:left}[dir=rtl] .rb-range::-webkit-slider-runnable-track{background:linear-gradient(to left,oklch(.78 .14 175) var(--range-pct, 25%),var(--border-hover) var(--range-pct, 25%))}.rb-setting-group{display:flex;flex-direction:row;align-items:center;gap:var(--sp-2)}.rb-setting-label{font-size:var(--text-xs);color:var(--text-secondary);white-space:nowrap}.rb-setting-input{width:56px;padding:var(--sp-1) var(--sp-2);border-radius:var(--radius);border:1px solid var(--border-hover);background:var(--bg-input);color:var(--text-primary);font-size:var(--text-sm);font-family:var(--font-sans);outline:none;text-align:center}.rb-setting-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-glow)}.rb-section-divider{height:1px;background:#272f3280;margin:var(--sp-2) 0}.rb-tab-bar{display:flex;border-bottom:1px solid var(--border);flex-shrink:0;background:var(--bg-primary)}.rb-tab,.rb-tab-bar button{display:inline-flex;align-items:center;gap:var(--sp-1);padding:var(--sp-2) var(--sp-3);font-size:var(--text-xs);font-weight:var(--weight-medium);color:var(--text-secondary);border:none;background:none;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;transition:color var(--dur-fast),border-color var(--dur-fast);white-space:nowrap}.rb-tab:hover,.rb-tab-bar button:hover{color:var(--text-primary)}.rb-tab--active,.rb-tab-bar button.active{color:var(--text-primary);border-bottom-color:var(--tab-color, var(--accent))}.rb-pill,.rb-pill--condition{display:inline-flex;align-items:center;gap:3px;padding:2px 8px;border-radius:999px;font-size:10px;font-weight:var(--weight-semibold);background:var(--bg-tertiary);color:var(--text-secondary);border:1px solid var(--border);cursor:pointer;transition:background var(--dur-fast),color var(--dur-fast),border-color var(--dur-fast)}.rb-pill--condition{background:#6366f11a;color:var(--primary);border-color:#6366f133}.rb-pill--condition.active,.rb-pill--condition:where([class*=active]){background:#6366f140;color:#fff;border-color:#6366f199}.rb-pills{display:flex;flex-wrap:wrap;gap:3px}.rb-checkbox-wrap{display:flex;align-items:center;gap:var(--sp-2);cursor:pointer;-webkit-user-select:none;user-select:none}.rb-checkbox-wrap input[type=checkbox]{display:none}.rb-checkbox{width:16px;height:16px;border-radius:4px;flex-shrink:0;border:1.5px solid var(--border-hover);background:var(--bg-input);display:flex;align-items:center;justify-content:center;transition:background var(--dur-fast),border-color var(--dur-fast)}.rb-checkbox-wrap input[type=checkbox]:checked+.rb-checkbox{background:var(--primary);border-color:var(--primary)}.rb-checkbox-wrap input[type=checkbox]:checked+.rb-checkbox:after{content:"";display:block;width:9px;height:5px;border-left:2px solid #fff;border-bottom:2px solid #fff;transform:rotate(-45deg) translateY(-1px)}.rb-checkbox-label{font-size:var(--text-sm);color:var(--text-primary)}.rb-toggle-wrap{display:flex;align-items:center;gap:var(--sp-2);cursor:pointer;-webkit-user-select:none;user-select:none}.rb-toggle-wrap input[type=checkbox]{display:none}.rb-toggle-track{width:36px;height:20px;border-radius:999px;flex-shrink:0;background:var(--bg-hover);border:1.5px solid var(--border-hover);position:relative;transition:background var(--dur-fast),border-color var(--dur-fast)}.rb-toggle-track:after{content:"";position:absolute;left:2px;top:2px;width:14px;height:14px;border-radius:50%;background:var(--text-disabled);transition:transform var(--dur-fast),background var(--dur-fast)}.rb-toggle-wrap input[type=checkbox]:checked+.rb-toggle-track{background:#0084794d;background:oklch(55% .18 185 / .3);border-color:var(--accent)}.rb-toggle-wrap input[type=checkbox]:checked+.rb-toggle-track:after{transform:translate(16px);background:var(--accent)}.rb-toggle-label{font-size:var(--text-sm);color:var(--text-primary)}.ifelse-config{display:flex;flex-direction:column;gap:var(--sp-3)}.ifelse-branch{border-radius:var(--radius-lg);border:1px solid var(--border);background:var(--bg-secondary);overflow:hidden}.ifelse-branch--else{border-color:#ff34344d;border-color:oklch(65% .27 27 / .3);background:#ff34340a;background:oklch(65% .27 27 / .04)}.ifelse-branch-header{display:flex;align-items:center;justify-content:space-between;padding:var(--sp-2) var(--sp-3);border-bottom:1px solid var(--border);background:var(--bg-elevated)}.ifelse-branch--else .ifelse-branch-header{border-bottom-color:#ff343433;border-bottom-color:oklch(65% .27 27 / .2);background:#ff34340f;background:oklch(65% .27 27 / .06)}.ifelse-branch-label-wrap{display:flex;align-items:center;gap:var(--sp-1)}.ifelse-branch-icon{color:var(--accent);opacity:.7}.ifelse-branch--else .ifelse-branch-icon{color:#f87171}.ifelse-branch-label{font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}.ifelse-branch-label--else{color:#f87171}.ifelse-remove-btn{display:flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:var(--radius);border:1px solid var(--border);background:var(--bg-secondary);color:var(--text-secondary);cursor:pointer;transition:background var(--dur-fast),color var(--dur-fast),border-color var(--dur-fast)}.ifelse-remove-btn:hover{background:#ff343426;background:oklch(65% .27 27 / .15);color:#f87171;border-color:#ff343466;border-color:oklch(65% .27 27 / .4)}.ifelse-branch-body{display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-3)}.ifelse-type-toggle{display:flex;border-radius:var(--radius);border:1px solid var(--border);overflow:hidden;background:var(--bg-secondary)}.ifelse-type-btn{flex:1;padding:var(--sp-1) var(--sp-2);font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--text-secondary);border:none;background:none;cursor:pointer;transition:background var(--dur-fast),color var(--dur-fast)}.ifelse-type-btn+.ifelse-type-btn{border-left:1px solid var(--border)}.ifelse-type-btn--active{background:#6366f133;color:#a5b4fc}.ifelse-required{color:#f87171;font-size:10px}.ifelse-else-body{padding:var(--sp-3)}.ifelse-else-desc{font-size:var(--text-xs);color:var(--text-secondary);line-height:1.5;margin:0}.ifelse-add-btn{display:inline-flex;align-items:center;gap:var(--sp-1);align-self:flex-start;padding:var(--sp-1) var(--sp-3);border-radius:999px;border:1px dashed rgba(99,102,241,.4);background:#6366f112;color:var(--primary);font-size:var(--text-xs);font-weight:var(--weight-semibold);cursor:pointer;transition:background var(--dur-fast),border-color var(--dur-fast)}.ifelse-add-btn:hover{background:#6366f124;border-color:#6366f1b3}.ifelse-node-branches{display:flex;flex-direction:column;gap:2px;margin-top:var(--sp-1)}.ifelse-node-row{display:flex;align-items:baseline;gap:4px;font-size:10px;overflow:hidden}.ifelse-node-row--else .ifelse-node-kw{color:#f87171}.ifelse-node-kw{font-family:var(--font-mono);font-weight:700;font-size:10px;color:var(--accent);flex-shrink:0}.ifelse-node-expr{color:var(--text-secondary);font-size:10px;font-family:var(--font-mono);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rb-class-groups{display:flex;flex-direction:column;gap:var(--sp-2);margin-top:var(--sp-1)}.rb-class-group{display:flex;flex-direction:column;gap:4px}.rb-class-group-label{font-size:10px;font-weight:var(--weight-semibold);text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);padding-inline-start:2px}.rb-class-chips{display:flex;flex-wrap:wrap;gap:var(--sp-1)}.rb-class-chip{padding:3px 10px;border-radius:999px;font-size:var(--text-xs);font-weight:var(--weight-medium);background:var(--bg-secondary);color:var(--text-secondary);border:1px solid var(--border);cursor:pointer;transition:background var(--dur-fast),color var(--dur-fast),border-color var(--dur-fast);white-space:nowrap}.rb-class-chip:hover{background:var(--bg-hover);color:var(--text-primary);border-color:var(--border-hover)}.rb-class-chip.active{background:#6054ec2e;color:#a78bfa;border-color:#6054ec80}.rb-items-strip{background:var(--bg-secondary);border-bottom:1px solid var(--border);flex-shrink:0;overflow-x:auto}.rb-items-strip-inner{display:flex;flex-direction:row;gap:0}.rb-items-strip-empty{padding:var(--sp-2) var(--sp-4);color:var(--text-secondary);font-size:var(--text-xs)}.rb-strip-card{display:inline-flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);border-right:1px solid var(--border);font-size:var(--text-xs);color:var(--text-primary);cursor:grab;-webkit-user-select:none;user-select:none;transition:background var(--dur-fast);white-space:nowrap;flex-shrink:0}.rb-strip-card:hover{background:var(--bg-hover)}.rb-strip-card--placed{opacity:.4;cursor:not-allowed}.rb-strip-card-label{font-size:var(--text-xs);color:var(--text-primary)}.rb-strip-card-badge{font-size:10px;color:var(--text-disabled)}.rb-actions-panel{border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.rb-actions-panel-badge{display:inline-flex;align-items:center;padding:1px 6px;border-radius:999px;font-size:10px;background:#6366f11f;color:var(--primary)}.rb-actions-panel-count{font-size:var(--text-xs);color:var(--text-secondary)}.rb-actions-list{display:flex;flex-direction:column}.rb-actions-empty{padding:var(--sp-4);text-align:center;color:var(--text-secondary);font-size:var(--text-sm)}.rb-actions-empty-sub{font-size:var(--text-xs);color:var(--text-disabled);margin-top:var(--sp-1)}.rb-actions-hint{font-size:var(--text-xs);color:var(--text-disabled)}.rb-actions-add-btn{display:flex;align-items:center;justify-content:center;gap:var(--sp-2);width:100%;padding:var(--sp-2) var(--sp-3);border:1px dashed var(--border-hover);border-radius:var(--radius);background:transparent;color:var(--text-secondary);font-size:var(--text-xs);cursor:pointer;transition:background var(--dur-fast),color var(--dur-fast)}.rb-actions-add-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.rb-action-row{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);border-bottom:1px solid var(--border);transition:background var(--dur-fast)}.rb-action-row:last-child{border-bottom:none}.rb-action-row:hover{background:var(--bg-hover)}.rb-action-row-index{font-size:10px;color:var(--text-disabled);min-width:16px;text-align:right}.rb-action-row-info{flex:1;min-width:0}.rb-action-row-label{font-size:var(--text-xs);font-weight:var(--weight-medium);color:var(--text-primary)}.rb-action-row-summary,.rb-action-row-summary--unconfigured{font-size:10px;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rb-action-row-summary--unconfigured{color:var(--warning)}.rb-action-dot{width:6px;height:6px;border-radius:50%;background:var(--success);flex-shrink:0}.rb-action-jump-btn{font-size:10px;color:var(--accent);background:none;border:none;cursor:pointer}.rb-ai-model-mini-config{display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-2) 0}.rb-exec-log{display:flex;flex-direction:column;gap:1px}.rb-exec-log__empty{padding:var(--sp-4);text-align:center;color:var(--text-secondary);font-size:var(--text-xs)}.rb-exec-log__entry{display:flex;align-items:flex-start;gap:var(--sp-2);padding:var(--sp-2) 0;border-bottom:1px solid var(--border)}.rb-exec-log__ts{font-size:10px;font-family:var(--font-mono);color:var(--text-disabled);white-space:nowrap;flex-shrink:0;min-width:64px}.rb-exec-log__trigger{font-size:var(--text-xs);color:var(--text-primary)}.rb-exec-log__dots{color:var(--text-disabled);letter-spacing:2px}.rb-error-hint{font-size:var(--text-xs);color:var(--danger);padding:var(--sp-2) var(--sp-3);background:var(--danger-subtle);border-radius:var(--radius)}.save-spinner{animation:spin .8s linear infinite;display:inline-flex;align-items:center;justify-content:center}.media-tab{display:inline-flex;align-items:center;gap:var(--sp-2);padding:5px var(--sp-3);font-size:var(--text-sm);font-weight:var(--weight-medium);border-radius:var(--radius-sm);border:1px solid transparent;background:none;color:var(--text-secondary);cursor:pointer;transition:background .12s ease,color .12s ease,border-color .12s ease}.media-tab:hover{background:var(--bg-secondary);color:var(--text-primary)}.media-tab--active{background:var(--accent-subtle);color:var(--accent);border-color:var(--border-accent)}.ipd-item{display:flex;flex-direction:column;align-items:center;gap:4px;cursor:pointer;border-radius:8px;padding:8px 4px 6px;border:1px solid transparent;background:var(--bg-secondary);transition:background var(--dur-fast),border-color var(--dur-fast)}.ipd-item:hover{background:var(--bg-hover);border-color:var(--border)}.ipd-item.selected{background:#6366f126;border-color:var(--primary);outline:none}.icon-picker-trigger{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-secondary);color:var(--text-primary);font-size:var(--text-sm);cursor:pointer;transition:border-color var(--dur-fast),box-shadow var(--dur-fast)}.icon-picker-trigger:hover{border-color:var(--border-hover)}.icon-picker-trigger.open{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-glow)}.ipt-chevron{color:var(--text-secondary);transition:transform var(--dur-fast);margin-left:auto}.ipt-chevron.rotated{transform:rotate(180deg)}.btn-toggle{display:inline-flex;align-items:center;gap:var(--sp-1);padding:var(--sp-1) var(--sp-2);font-size:var(--text-xs);font-weight:var(--weight-medium);border-radius:var(--radius);border:1px solid var(--border);background:var(--bg-secondary);color:var(--text-secondary);cursor:pointer;transition:background var(--dur-fast),color var(--dur-fast),border-color var(--dur-fast)}.btn-toggle:hover{background:var(--bg-hover);color:var(--text-primary)}.btn-toggle--active{background:#00d4aa1a;color:var(--accent);border-color:#00d4aa40}.btn-toggle--active:hover{background:#00d4aa2e}.rule-row{display:flex;align-items:center;gap:var(--sp-3);padding:14px var(--sp-4);background:var(--bg-elevated);border:1px solid var(--border);border-top:none;transition:background var(--dur-fast),border-color var(--dur-fast)}.rule-row:first-of-type{border-top:1px solid var(--border)}.rule-row:hover{background:#1f2527;border-color:var(--border-hover)}.rule-row--disabled{opacity:.45}.rule-row:last-child{border-radius:0 0 var(--radius) var(--radius)}.rule-dot{width:6px;height:6px;border-radius:50%;background:#474e51;flex-shrink:0;transition:background var(--dur-fast),box-shadow var(--dur-fast)}.rule-dot.on{background:var(--accent);box-shadow:0 0 0 3px #28d4b22e}.rule-row-name{font-size:.875rem;font-weight:600;color:var(--text-primary);letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rule-class-pill{display:inline-flex;align-items:center;padding:2px 10px;font-size:var(--text-xs);border-radius:9999px;background:var(--bg-secondary);border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;transition:background var(--dur-fast),color var(--dur-fast),border-color var(--dur-fast)}.rule-class-pill:hover{background:var(--bg-hover);color:var(--text-primary)}.rule-class-pill.active{background:#28d4b21f;color:var(--accent);border-color:#28d4b259}.rule-toggle-btn{display:inline-flex;align-items:center;gap:var(--sp-1);padding:var(--sp-1) var(--sp-3);font-size:var(--text-xs);font-weight:var(--weight-medium);border-radius:var(--radius);border:1px solid var(--border);background:var(--bg-secondary);color:var(--text-secondary);cursor:pointer;transition:background var(--dur-fast),color var(--dur-fast),border-color var(--dur-fast)}.rule-toggle-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.rule-toggle-btn.on{background:#28d4b21a;color:var(--accent);border-color:#28d4b24d}.rule-toggle-icon{display:inline-flex;align-items:center;justify-content:center;width:44px;height:24px;border-radius:999px;border:none;cursor:pointer;background:#272f32;transition:background var(--dur-fast);flex-shrink:0;position:relative;padding:0}.rule-toggle-icon:after{content:"";position:absolute;left:3px;width:18px;height:18px;border-radius:50%;background:#7a8284;transition:left var(--dur-fast),background var(--dur-fast)}.rule-row:not(.rule-row--disabled) .rule-toggle-icon{background:#28d4b238}.rule-row:not(.rule-row--disabled) .rule-toggle-icon:after{left:calc(100% - 21px);background:var(--accent)}.rule-toggle-icon:hover{filter:brightness(1.1)}.status-badge{display:inline-flex;align-items:center;gap:5px;padding:2px 8px;border-radius:999px;font-size:var(--text-xs);font-weight:var(--weight-semibold);text-transform:capitalize;letter-spacing:.02em;background:var(--bg-tertiary);color:var(--text-secondary);border:1px solid var(--border);white-space:nowrap;flex-shrink:0}.status-badge.active{background:#34d3991f;color:var(--success);border-color:#34d3994d}.status-badge.inactive{background:var(--bg-tertiary);color:var(--text-disabled);border-color:var(--border)}.status-badge.error{background:#ef44441f;color:var(--danger);border-color:#ef44444d}.status-badge.stream{background:#00d4aa1f;color:var(--accent);border-color:#00d4aa4d}.stream-status{font-size:var(--text-xs);font-weight:var(--weight-medium);color:var(--text-disabled);text-transform:capitalize}.stream-status.active{color:var(--success)}.stream-status.running{color:var(--accent)}.stream-status.error{color:var(--danger)}.stream-status.idle{color:var(--text-disabled)}.camera-header h3{margin:0;font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--text-primary);line-height:1.3;word-break:break-word}.rc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--sp-5);margin-block-start:var(--sp-2)}.rc-error{display:flex;align-items:center;gap:var(--sp-4);padding:var(--sp-4) var(--sp-5);background:#1e131180;border:1px solid oklch(.35 .04 25 / .5);border-radius:var(--radius-md);color:var(--danger);font-size:var(--text-sm)}.rc-empty{padding:var(--sp-12) var(--sp-6);text-align:center}.rc-empty__text{color:var(--text-muted);font-size:var(--text-sm)}.rc-case{display:flex;flex-direction:column;gap:var(--sp-3);padding:var(--sp-5);background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);transition:border-color var(--dur-fast) var(--ease-out);min-width:0}.rc-case:hover{border-color:var(--border-hover)}.rc-case--active{border-color:#28d4b259;background:#111618}.rc-case--active:hover{border-color:#28d4b28c}.rc-case__head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3)}.rc-case__icon{display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:#28d4b21a;border-radius:var(--radius);color:var(--accent);flex-shrink:0}.rc-case__badge{font-family:var(--font-mono);font-size:.6rem;font-weight:500;letter-spacing:.07em;text-transform:uppercase;padding:2px 8px;border-radius:var(--radius-sm);background:#272f3299;color:var(--text-dim);border:1px solid oklch(.35 .014 220 / .5);white-space:nowrap}.rc-case__badge--active{background:#28d4b224;color:var(--accent);border-color:#28d4b24d}.rc-case__name{margin:0;font-size:var(--text-md);font-weight:var(--weight-semibold);color:var(--text-primary);letter-spacing:-.01em;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rc-case__description{margin:0;font-size:var(--text-sm);color:var(--text-secondary);line-height:1.55;max-width:60ch;flex:1}.rc-case__action{align-self:flex-start;margin-block-start:var(--sp-1)}.rc-wizard{display:flex;flex-direction:column;max-height:90dvh}.rc-wizard__steps{display:flex;align-items:center;gap:0;padding-inline:var(--sp-6);padding-block:var(--sp-4);border-block-end:1px solid var(--border);background:#060a0b}.rc-wizard__step{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--text-xs);color:var(--text-disabled);flex:1;position:relative}.rc-wizard__step+.rc-wizard__step:before{content:"";position:absolute;inset-inline-end:calc(100% - var(--sp-2));inset-block-start:50%;transform:translateY(-50%);width:100%;height:1px;background:#272f3299;pointer-events:none}.rc-wizard__step--done,.rc-wizard__step--active{color:var(--text-secondary)}.rc-wizard__step--active{color:var(--text-primary);font-weight:var(--weight-semibold)}.rc-wizard__step-num{display:flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;font-family:var(--font-mono);font-size:.65rem;font-weight:600;border:1px solid oklch(.35 .012 220 / .7);background:#121719;color:var(--text-dim);flex-shrink:0;transition:background var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}.rc-wizard__step--done .rc-wizard__step-num{background:#28d4b226;border-color:#28d4b266;color:var(--accent)}.rc-wizard__step--active .rc-wizard__step-num{background:var(--accent);border-color:var(--accent);color:#040607}.rc-wizard__step-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rc-wizard__body{flex:1;overflow-y:auto;overscroll-behavior:contain}.rc-wizard__nav{display:flex;align-items:center;gap:var(--sp-3);margin-inline-start:auto}.rc-step{display:flex;flex-direction:column;gap:var(--sp-5)}.rc-step__field{display:flex;flex-direction:column;gap:var(--sp-2)}.rc-step__label{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--text-primary);letter-spacing:-.01em}.rc-step__hint{font-size:var(--text-sm);color:var(--text-secondary);line-height:1.5;margin:0;max-width:55ch}.rc-step__select{width:100%}.rc-step__loading{display:flex;align-items:center;gap:var(--sp-3);color:var(--text-secondary);font-size:var(--text-sm);padding:var(--sp-4) 0}.rc-step__create{display:flex;flex-direction:column;gap:var(--sp-4)}.rc-step__create-hint{font-size:var(--text-sm);color:var(--text-secondary);line-height:1.5;margin:0;padding:var(--sp-3) var(--sp-4);background:#121719;border:1px solid var(--border);border-radius:var(--radius)}.rc-step__error{font-size:var(--text-xs);color:var(--danger);margin:0}.rc-step__channels{display:flex;flex-direction:column;gap:var(--sp-2);margin-block-start:var(--sp-1)}.rc-channel{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);background:#121719;border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;-webkit-user-select:none;user-select:none;transition:border-color var(--dur-fast) var(--ease-out),background var(--dur-fast) var(--ease-out);min-height:44px}.rc-channel:hover:not(.rc-channel--disabled){border-color:var(--border-hover);background:#181e20}.rc-channel--checked{border-color:#28d4b273;background:#28d4b212}.rc-channel--checked:hover{border-color:#28d4b2a6}.rc-channel--disabled{opacity:.45;cursor:not-allowed}.rc-channel__input{-moz-appearance:none;appearance:none;-webkit-appearance:none;position:absolute;opacity:0;width:0;height:0;pointer-events:none}.rc-channel__mark{display:flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:4px;border:1.5px solid oklch(.4 .014 220 / .8);background:transparent;flex-shrink:0;transition:background var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out)}.rc-channel--checked .rc-channel__mark{background:var(--accent);border-color:var(--accent)}.rc-channel--checked .rc-channel__mark:after{content:"";display:block;width:9px;height:5px;border-inline-start:2px solid oklch(.12 .006 220);border-block-end:2px solid oklch(.12 .006 220);transform:rotate(-45deg) translateY(-1px)}.rc-channel__label{font-size:var(--text-sm);color:var(--text-primary);font-weight:var(--weight-medium);flex:1}.rc-channel-wrap{display:flex;flex-direction:column;gap:0}.rc-channel-wrap .rc-channel{border-radius:var(--radius)}.rc-channel-wrap--open .rc-channel{border-bottom-left-radius:0;border-bottom-right-radius:0;border-bottom-color:transparent}.rc-channel__detail{padding:var(--sp-3) var(--sp-4);background:#28d4b212;border:1px solid oklch(.78 .14 175 / .45);border-top:none;border-bottom-left-radius:var(--radius);border-bottom-right-radius:var(--radius);display:flex;flex-direction:column;gap:var(--sp-3)}.rc-channel__detail-row{display:flex;flex-direction:column;gap:var(--sp-1)}.rc-channel__detail-label{font-size:11px;font-weight:var(--weight-medium);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em}.rc-channel__detail-input{width:100%;font-size:var(--text-sm)}.rc-channel__detail-textarea{resize:vertical;min-height:60px}.rc-channel__detail-row--checks{flex-direction:row;flex-wrap:wrap;gap:var(--sp-4)}.rc-channel__check-label{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--text-sm);color:var(--text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none}.rc-channel__upgrade{font-family:var(--font-mono);font-size:.6rem;font-weight:500;letter-spacing:.06em;text-transform:uppercase;padding:2px 7px;border-radius:var(--radius-sm);background:#9c622f26;color:#dd9f6b;border:1px solid oklch(.55 .1 60 / .3);white-space:nowrap;margin-inline-start:auto}.rc-confirm{display:flex;flex-direction:column;gap:0;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;margin:0}.rc-confirm__row{display:flex;align-items:baseline;gap:var(--sp-4);padding:var(--sp-3) var(--sp-4);background:#121719}.rc-confirm__row+.rc-confirm__row{border-block-start:1px solid var(--border)}.rc-confirm__label{font-family:var(--font-mono);font-size:.6875rem;font-weight:500;letter-spacing:.05em;text-transform:uppercase;color:var(--text-dim);flex-shrink:0;min-width:120px}.rc-confirm__value{font-size:var(--text-sm);color:var(--text-primary);font-weight:var(--weight-medium);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;margin:0}@media (max-width: 600px){.rc-grid{grid-template-columns:1fr}.rc-wizard__steps{padding-inline:var(--sp-4)}.rc-wizard__step-label{display:none}.rc-wizard__step+.rc-wizard__step:before{display:none}.rc-confirm__label{min-width:90px}}@media (prefers-reduced-motion: reduce){.rc-case,.rc-channel,.rc-wizard__step-num{transition:none}}.rb-action-test-wrap{display:flex;align-items:center;gap:4px;margin-right:4px}.rb-action-test-counter{font-size:10px;font-variant-numeric:tabular-nums;min-width:22px;text-align:right}.rb-action-test-btn{display:flex;align-items:center;gap:4px;padding:3px 7px;font-size:11px;border-radius:4px;border:1px solid var(--border, #333);background:transparent;color:var(--text-muted, #aaa);cursor:pointer;transition:background .15s,color .15s}.rb-action-test-btn:hover:not(:disabled){background:#ffffff12;color:var(--text, #fff)}.rb-action-test-btn:disabled{opacity:.4;cursor:not-allowed}.rb-action-test-spinner{display:inline-block;width:11px;height:11px;border:2px solid rgba(255,255,255,.2);border-top-color:#fff;border-radius:50%;animation:rb-spin .6s linear infinite}@keyframes rb-spin{to{transform:rotate(360deg)}}.rb-test-toast{position:absolute;top:8px;left:8px;right:8px;z-index:100;padding:10px 12px;border-radius:6px;font-size:12px;line-height:1.5;box-shadow:0 4px 16px #0006}.rb-test-toast strong{display:block;margin-bottom:4px;font-size:13px}.rb-test-toast p{margin:0;opacity:.85}.rb-test-toast--success{background:#14532d;border:1px solid #16a34a;color:#bbf7d0}.rb-test-toast--warning{background:#451a03;border:1px solid #d97706;color:#fde68a}.rb-test-toast--error{background:#450a0a;border:1px solid #dc2626;color:#fecaca}.rb-test-toast-close{position:absolute;top:6px;right:8px;background:none;border:none;color:inherit;cursor:pointer;opacity:.7;font-size:12px}.rb-test-toast-close:hover{opacity:1}.rb-config-test-bar{display:flex;align-items:center;gap:8px;padding:10px 16px;border-top:1px solid rgba(255,255,255,.07)}.rb-config-test-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border-radius:6px;border:1px solid rgba(245,158,11,.5);background:#f59e0b1a;color:#f59e0b;font-size:12px;font-weight:600;cursor:pointer;transition:background .15s,opacity .15s}.rb-config-test-btn:hover:not(:disabled){background:#f59e0b33}.rb-config-test-btn:disabled{opacity:.35;cursor:not-allowed}.rb-config-test-counter{font-size:11px;color:#fff6;font-variant-numeric:tabular-nums}.rb-config-test-toast{margin:0 16px 12px;padding:10px 12px;border-radius:8px;font-size:12px;line-height:1.5}.rb-config-test-toast strong{display:block;margin-bottom:2px;font-size:13px}.rb-config-test-toast p{margin:0;opacity:.85}.rb-config-test-toast--success{background:#10b9811f;border:1px solid rgba(16,185,129,.35);color:#6ee7b7}.rb-config-test-toast--warning{background:#f59e0b1f;border:1px solid rgba(245,158,11,.35);color:#fcd34d}.rb-config-test-toast--error{background:#ef44441f;border:1px solid rgba(239,68,68,.35);color:#fca5a5}.cm-page{display:flex;flex-direction:column;height:100%;background:var(--bg-primary, #0f0f12);padding:16px;gap:12px;overflow:hidden}.cm-header{display:flex;align-items:baseline;gap:12px;flex-shrink:0}.cm-title{font-size:16px;font-weight:600;color:var(--text-primary, #f1f5f9);margin:0}.cm-subtitle{font-size:12px;color:var(--text-muted, #64748b)}.cm-grid{flex:1;display:grid;grid-template-columns:repeat(8,1fr);grid-template-rows:repeat(3,1fr);gap:6px;min-height:0}.cm-cell{position:relative;background:var(--bg-secondary, #1a1a24);border:1px solid var(--border-subtle, #2a2a35);border-radius:6px;overflow:hidden;display:flex;flex-direction:column}.cm-cell-feed{flex:1;min-height:0;position:relative}.cm-cell-loading{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#000;color:var(--accent, #00d4aa)}.cm-cell-bar{flex-shrink:0;display:flex;align-items:center;gap:6px;padding:3px 6px;background:#0000008c;border-top:1px solid rgba(255,255,255,.05)}.cm-cell-name{font-size:10px;font-weight:500;color:var(--text-primary, #f1f5f9);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cm-cell-rules{font-size:9px;color:var(--accent, #00d4aa);white-space:nowrap}.cm-cell-remove{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:3px;border:none;background:transparent;color:var(--text-muted, #64748b);cursor:pointer;padding:0;transition:color .15s,background .15s}.cm-cell-remove:hover{background:#ef444426;color:#ef4444}.cm-cell-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;border:none;background:transparent;color:var(--text-disabled, #475569);cursor:pointer;font-size:11px;transition:color .15s,background .15s}.cm-cell-empty:hover{background:#00d4aa0f;color:var(--accent, #00d4aa)}.cm-picker-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:#0009;display:flex;align-items:center;justify-content:center}.cm-picker-modal{background:var(--bg-overlay, #1e1e2a);border:1px solid var(--border-subtle, #2a2a35);border-radius:10px;width:340px;max-height:480px;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 20px 60px #00000080}.cm-picker-header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px 10px;font-size:14px;font-weight:600;color:var(--text-primary, #f1f5f9);border-bottom:1px solid var(--border-subtle, #2a2a35)}.cm-picker-close{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border:none;background:transparent;color:var(--text-muted, #64748b);cursor:pointer;border-radius:4px}.cm-picker-close:hover{background:var(--bg-hover, #2a2a35);color:var(--text-primary)}.cm-picker-search{margin:10px 12px 6px;padding:7px 10px;background:var(--bg-input, #12121a);border:1px solid var(--border-subtle, #2a2a35);border-radius:6px;color:var(--text-primary, #f1f5f9);font-size:13px;outline:none}.cm-picker-search:focus{border-color:var(--accent, #00d4aa)}.cm-picker-list{flex:1;overflow-y:auto;padding:4px 8px 10px}.cm-picker-empty{text-align:center;color:var(--text-muted, #64748b);font-size:13px;padding:24px 0}.cm-picker-item{display:flex;align-items:center;gap:10px;width:100%;padding:9px 10px;border:none;background:transparent;border-radius:6px;cursor:pointer;color:var(--text-primary, #f1f5f9);text-align:left;transition:background .12s}.cm-picker-item:hover{background:#00d4aa14}.cm-picker-item svg{flex-shrink:0;color:var(--accent, #00d4aa)}.cm-picker-item-info{flex:1;display:flex;flex-direction:column;min-width:0}.cm-picker-item-name{font-size:13px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cm-picker-item-loc{font-size:11px;color:var(--text-muted, #64748b);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cm-picker-item-id{font-size:10px;color:var(--text-disabled, #475569);flex-shrink:0}
