*,*:before,*:after{margin:0;padding:0;box-sizing:border-box;border-radius:0!important}:root{--bg-main: #1B2023;--bg-card: #323C46;--bg-card-hover: #323C46;--bg-input: #1B2023;--text-white: #ffffff;--text-light: #BBBBBB;--text-muted: #BBBBBB;--text-dim: #BBBBBB;--green: #0FE59D;--lime: #7CE20B;--blue-dark: #1E5CE3;--blue: #30ADFF;--orange: #FE6907;--yellow: #FEE003;--red: #FF002C;--border: rgba(255, 255, 255, .07);--border-hover: rgba(255, 255, 255, .15);--bar-bg: rgba(0, 0, 0, .7);--bar-bg-solid: rgba(0, 0, 0, .8);--topbar-h: 48px;--bottombar-h: 32px}body{font-family:IBM Plex Sans,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:var(--bg-main);color:var(--text-white);overflow-x:hidden;min-height:100vh;-webkit-font-smoothing:antialiased}code,pre,.mono{font-family:IBM Plex Mono,SF Mono,monospace}body:before{content:"";position:fixed;inset:0;z-index:0;pointer-events:none;background:radial-gradient(ellipse 600px 400px at 20% 30%,rgba(15,229,157,.03),transparent),radial-gradient(ellipse 500px 500px at 70% 60%,rgba(30,92,227,.04),transparent),radial-gradient(ellipse 400px 300px at 50% 80%,rgba(254,105,7,.02),transparent);filter:blur(80px);animation:cloudDrift 120s linear infinite}@keyframes cloudDrift{0%{background-position:0% 0%,100% 100%,50% 50%}50%{background-position:100% 50%,0% 50%,100% 0%}to{background-position:0% 0%,100% 100%,50% 50%}}::-webkit-scrollbar{width:14px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#ffffff26;border:4px solid transparent;background-clip:padding-box}::-webkit-scrollbar-thumb:hover{background:#ffffff40;background-clip:padding-box}.label{text-transform:uppercase;letter-spacing:1.5px;font-size:10px;opacity:.45;font-weight:600}.react-grid-layout{position:relative;z-index:1}.react-grid-item{transition:all .2s ease}.react-grid-item.react-draggable-dragging{opacity:.7;z-index:100}.react-grid-placeholder{background:var(--blue)!important;opacity:.15!important}.react-resizable-handle{position:absolute;width:20px;height:20px;bottom:0;right:0;cursor:se-resize;z-index:10}.react-resizable-handle:after{content:"";position:absolute;right:4px;bottom:4px;width:8px;height:8px;border-right:2px solid var(--text-dim);border-bottom:2px solid var(--text-dim)}.topbar{position:sticky;top:0;z-index:900;height:var(--topbar-h);background:var(--bar-bg);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);display:flex;align-items:center;padding:0 16px;border-bottom:1px solid var(--border)}.topbar-logo{font-size:16px;font-weight:700;color:var(--blue);margin-right:8px}.topbar-version{font-size:11px;color:var(--text-dim);margin-right:24px}.topbar-tabs{display:flex;gap:0;flex:1;height:100%}.topbar-tab{padding:0 16px;height:100%;display:flex;align-items:center;font-size:11px;text-transform:uppercase;letter-spacing:1.5px;font-weight:600;color:var(--text-dim);cursor:pointer;border:none;background:none;border-bottom:2px solid transparent;transition:all .15s ease}.topbar-tab:hover{color:var(--text-light)}.topbar-tab.active{color:var(--text-white);border-bottom-color:var(--blue)}.topbar-add{padding:4px 12px;font-size:11px;color:var(--text-dim);background:none;border:1px solid var(--border);cursor:pointer;text-transform:uppercase;letter-spacing:1px;font-weight:600;transition:all .15s ease}.topbar-add:hover{color:var(--text-white);border-color:var(--border-hover)}.bottombar{position:fixed;bottom:0;left:0;right:0;z-index:900;height:var(--bottombar-h);background:var(--bar-bg-solid);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);display:flex;align-items:center;justify-content:space-between;padding:0 16px;border-top:1px solid var(--border);font-size:11px;color:var(--text-dim)}.bottombar-left,.bottombar-right{display:flex;align-items:center;gap:12px}.bottombar-dot{width:6px;height:6px;display:inline-block}.bottombar-dot.ok{background:var(--green)}.bottombar-dot.err{background:var(--red)}.bottombar-sep{width:1px;height:16px;background:var(--border)}.agent-chip{display:flex;align-items:center;gap:4px;padding:2px 8px;background:#ffffff0d;cursor:pointer;font-size:10px;color:var(--text-muted);border:none;transition:background .15s}.agent-chip:hover{background:#ffffff1a}.agent-chip .dot{width:5px;height:5px;flex-shrink:0}.panel{background:#0000000a;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--border);display:flex;flex-direction:column;height:100%;transition:border-color .15s ease;overflow:hidden}.panel:hover{border-color:var(--border-hover)}.panel-header{height:32px;min-height:32px;background:#0000004d;border-bottom:1px solid var(--border);display:flex;align-items:center;padding:0 8px;gap:6px;-webkit-user-select:none;user-select:none;cursor:grab}.panel-header:active{cursor:grabbing}.panel-accent-line{position:absolute;top:0;left:0;right:0;height:2px}.panel-grip{color:var(--text-dim);opacity:.3;cursor:grab;font-size:10px}.panel-grip:active{cursor:grabbing}.panel-dot{width:8px;height:8px;flex-shrink:0}.panel-title{flex:1;font-size:11px;text-transform:uppercase;letter-spacing:1.5px;font-weight:600;color:var(--text-light);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.panel-btn{width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:none;border:none;color:var(--text-dim);opacity:.4;cursor:pointer;font-size:11px;transition:opacity .15s}.panel-btn:hover{opacity:.8}.panel-content{flex:1;overflow-y:auto;padding:12px;position:relative}.panel-iframe{width:100%;height:100%;border:none;background:transparent}.panel-flip-container{perspective:1000px;flex:1;min-height:0;cursor:default}.panel-flip-inner{width:100%;height:100%;transition:transform .5s ease;transform-style:preserve-3d;position:relative}.panel-flip-inner.flipped{transform:rotateY(180deg)}.panel-flip-front,.panel-flip-back{position:absolute;inset:0;backface-visibility:hidden;display:flex;flex-direction:column;overflow:auto}.panel-flip-back{transform:rotateY(180deg)}.widget-color-picker{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:16px;padding:20px}.wcp-title{font-size:14px;font-weight:700;opacity:.9;display:flex;align-items:center;gap:8px}.wcp-colors{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}.wcp-dot{width:44px;height:44px;cursor:pointer;border:3px solid transparent;transition:transform .15s,border-color .2s}.wcp-dot:hover{transform:scale(1.15)}.wcp-dot.active{border-color:#fff;transform:scale(1.1)}.wcp-back-btn{background:#ffffff1a;border:none;color:var(--text-muted);padding:6px 16px;cursor:pointer;font-size:14px;font-weight:600;display:flex;align-items:center;gap:6px;transition:background .15s,color .15s}.wcp-back-btn:hover{background:#fff3;color:#fff}.panel-stopped{display:flex;align-items:center;justify-content:center;color:var(--text-dim);font-size:12px;height:100%;opacity:.5}.dock{position:fixed;bottom:var(--bottombar-h);left:0;right:0;z-index:800;display:flex;gap:4px;padding:4px 16px;pointer-events:none}.dock:empty{display:none}.dock-item{pointer-events:auto;height:28px;padding:0 12px;background:#0009;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;gap:6px;cursor:pointer;border:none;color:var(--text-muted);font-size:11px;transition:background .15s}.dock-item:hover{background:#ffffff1a}.toast-container{position:fixed;bottom:calc(var(--bottombar-h) + 16px);right:16px;z-index:1000;display:flex;flex-direction:column-reverse;gap:8px}.toast{padding:10px 16px;background:var(--bg-card);border:1px solid var(--border);border-left:3px solid var(--blue);font-size:12px;color:var(--text-light);animation:toastIn .2s ease;max-width:360px}.toast.success{border-left-color:var(--green)}.toast.warning{border-left-color:var(--orange)}.toast.error{border-left-color:var(--red)}@keyframes toastIn{0%{transform:translate(100%);opacity:0}to{transform:none;opacity:1}}.login-page{display:flex;align-items:center;justify-content:center;min-height:100vh;position:relative;z-index:1}.login-box{background:var(--bg-card);border:1px solid var(--border);padding:40px;width:360px}.login-box h1{font-size:20px;font-weight:300;color:var(--blue);margin-bottom:24px}.login-box input{display:block;width:100%;padding:10px 12px;background:var(--bg-input);border:1px solid var(--border);color:var(--text-white);font-size:14px;font-family:inherit;margin-bottom:12px;outline:none}.login-box input:focus{border-color:var(--blue)}.login-box button{width:100%;padding:10px;background:var(--blue);border:none;color:#000;font-size:13px;font-weight:600;cursor:pointer;text-transform:uppercase;letter-spacing:1px}.login-box button:hover{opacity:.9}.login-error{color:var(--red);font-size:12px;margin-bottom:12px}.chat-drawer{position:fixed;top:var(--topbar-h);right:0;bottom:var(--bottombar-h);width:420px;max-width:100vw;z-index:850;background:var(--bg-card);border-left:1px solid var(--border);display:flex;flex-direction:column;animation:chatSlideIn .15s ease}@keyframes chatSlideIn{0%{transform:translate(100%)}to{transform:none}}.chat-header{height:40px;min-height:40px;background:#0000004d;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:8px;padding:0 12px}.chat-dot{width:8px;height:8px;flex-shrink:0}.chat-agent-name{flex:1;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:1px;color:var(--text-light)}.chat-close{background:none;border:none;color:var(--text-dim);font-size:18px;cursor:pointer;padding:0 4px;line-height:1}.chat-close:hover{color:var(--text-white)}.chat-messages{flex:1;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:12px}.chat-empty{color:var(--text-dim);font-size:12px;text-align:center;margin-top:40px}.chat-msg{max-width:90%}.chat-msg-user{align-self:flex-end}.chat-msg-assistant{align-self:flex-start}.chat-msg-label{font-size:9px;text-transform:uppercase;letter-spacing:1px;color:var(--text-dim);margin-bottom:3px}.chat-msg-content{font-size:13px;line-height:1.5;padding:8px 12px;color:var(--text-light);word-break:break-word}.chat-msg-content p{margin:0 0 8px}.chat-msg-content p:last-child{margin-bottom:0}.chat-msg-content ul,.chat-msg-content ol{margin:4px 0;padding-left:20px}.chat-msg-content li{margin:2px 0}.chat-msg-content code{font-family:var(--font-mono);font-size:12px;background:#ffffff0f;padding:1px 4px;border-radius:3px}.chat-msg-content pre{background:#0000004d;padding:8px 10px;border-radius:4px;overflow-x:auto;margin:6px 0}.chat-msg-content pre code{background:none;padding:0}.chat-msg-content strong{color:#fff}.chat-msg-content h1,.chat-msg-content h2,.chat-msg-content h3{font-size:14px;color:#fff;margin:8px 0 4px}.chat-msg-content table{border-collapse:collapse;width:100%;margin:6px 0;font-size:12px}.chat-msg-content th,.chat-msg-content td{border:1px solid var(--border);padding:4px 8px;text-align:left}.chat-msg-content th{background:#ffffff0d;color:#fff}.chat-msg-user .chat-msg-content{background:#1e5ce326;border:1px solid rgba(30,92,227,.2)}.chat-msg-assistant .chat-msg-content{background:#ffffff0a;border:1px solid var(--border)}.chat-tools{display:flex;flex-direction:column;gap:2px;padding:4px 8px;background:#0003;border:1px solid var(--border);font-size:11px;color:var(--text-dim)}.chat-tool-event{padding:2px 0}.chat-typing{font-size:12px;color:var(--text-dim);font-style:italic}.chat-input-bar{display:flex;gap:0;border-top:1px solid var(--border);background:#0003}.chat-input-bar input{flex:1;padding:10px 12px;background:transparent;border:none;color:var(--text-white);font-size:13px;font-family:inherit;outline:none}.chat-input-bar input::placeholder{color:var(--text-dim)}.chat-input-bar button{padding:0 16px;background:var(--blue);border:none;color:#000;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:1px;cursor:pointer}.chat-input-bar button:disabled{opacity:.3;cursor:default}.dashboard-grid{padding:16px;padding-bottom:calc(var(--bottombar-h) + 16px);min-height:calc(100vh - var(--topbar-h));position:relative;z-index:1}#watermark{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:400px;height:400px;background:url(/assets/watermark.svg) center/contain no-repeat;opacity:.06;pointer-events:none;z-index:0}.devstudio{display:flex;flex-direction:column;height:100%;min-height:0}.devstudio-messages{flex:1;overflow-y:auto;padding:8px 0;display:flex;flex-direction:column;gap:8px}.devstudio-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:var(--text-dim);font-size:13px;gap:4px}.devstudio-bubble{padding:8px 12px;font-size:14px;line-height:1.5;max-width:90%;white-space:pre-wrap;word-break:break-word;color:#fff}.devstudio-bubble-user{background:var(--bg-input);color:var(--text-light);align-self:flex-end;margin-left:auto}.devstudio-bubble-assistant{background:transparent;color:var(--text-light);border-left:2px solid #30ADFF;padding-left:12px}.devstudio-bubble-assistant p{margin:0 0 8px}.devstudio-bubble-assistant p:last-child{margin-bottom:0}.devstudio-bubble-assistant ul,.devstudio-bubble-assistant ol{margin:4px 0;padding-left:20px}.devstudio-bubble-assistant li{margin:2px 0}.devstudio-bubble-assistant code{font-family:var(--font-mono);font-size:12px;background:#ffffff0f;padding:1px 4px;border-radius:3px}.devstudio-bubble-assistant pre{background:#0000004d;padding:8px 10px;border-radius:4px;overflow-x:auto;margin:6px 0}.devstudio-bubble-assistant pre code{background:none;padding:0}.devstudio-bubble-assistant strong{color:#fff}.devstudio-bubble-assistant table{border-collapse:collapse;width:100%;margin:6px 0;font-size:12px}.devstudio-bubble-assistant th,.devstudio-bubble-assistant td{border:1px solid var(--border);padding:4px 8px;text-align:left}.devstudio-bubble-assistant th{background:#ffffff0d;color:#fff}.devstudio-status{font-size:11px;color:var(--text-dim);padding:4px 0;display:flex;align-items:center}.devstudio-deploy-bar{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;margin:4px 0;border:1px solid #0FE59D40;background:#0fe59d10;font-size:13px;color:#fff}.devstudio-deploy-btn{background:#0fe59d;color:#000;border:none;padding:6px 16px;font-size:11px;font-weight:600;cursor:pointer;text-transform:uppercase;letter-spacing:.5px}.devstudio-deploy-btn:hover{background:#0fe59d}.devstudio-deploy-btn:disabled{opacity:.5;cursor:not-allowed}.devstudio-input{display:flex;gap:8px;padding-top:8px;border-top:1px solid var(--border)}.devstudio-input input{flex:1;background:var(--bg-input);border:1px solid var(--border);color:var(--text-light);padding:8px 12px;font-size:12px;font-family:inherit;outline:none}.devstudio-input input:focus{border-color:#30adff}.devstudio-input button{background:#30adff;color:#fff;border:none;padding:8px 14px;cursor:pointer;font-size:13px}.devstudio-input button:hover{background:#1e5ce3}.devstudio-input button:disabled{opacity:.3;cursor:not-allowed}.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)}
