@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap";
:root{--bg-primary:#0a0e1a;--bg-secondary:#111827;--bg-surface:#1a1f35;--bg-surface-hover:#232942;--bg-elevated:#1e2641d9;--accent-primary:#3b82f6;--accent-primary-hover:#60a5fa;--accent-glow:#3b82f64d;--accent-secondary:#8b5cf6;--accent-tertiary:#06d6a0;--text-primary:#f1f5f9;--text-secondary:#94a3b8;--text-muted:#64748b;--text-inverse:#0a0e1a;--border-subtle:#94a3b81f;--border-default:#94a3b833;--border-focus:var(--accent-primary);--azure-compute:#0078d4;--azure-database:#e8590c;--azure-storage:#0ea5e9;--azure-network:#16a34a;--azure-messaging:#8b5cf6;--azure-api:#f59e0b;--azure-security:#ef4444;--azure-monitoring:#06b6d4;--azure-cache:#ec4899;--azure-cdn:#14b8a6;--shadow-sm:0 1px 3px #0006;--shadow-md:0 4px 14px #00000080;--shadow-lg:0 10px 30px #0009;--shadow-glow:0 0 20px var(--accent-glow);--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-xl:20px;--transition-fast:.15s ease;--transition-normal:.25s ease;--transition-slow:.4s cubic-bezier(.4,0,.2,1);--glass-bg:#1a1f35bf;--glass-border:#94a3b81a;--glass-blur:16px;--sidebar-width:280px;--sidebar-width-collapsed:64px;--toolbar-height:48px}[data-theme=light]{--bg-primary:#f0f2f5;--bg-secondary:#e5e7eb;--bg-surface:#fff;--bg-surface-hover:#f3f4f6;--bg-elevated:#ffffffe6;--text-primary:#1e293b;--text-secondary:#475569;--text-muted:#94a3b8;--text-inverse:#f1f5f9;--border-subtle:#0000000f;--border-default:#0000001f;--shadow-sm:0 1px 3px #00000014;--shadow-md:0 4px 14px #0000001a;--shadow-lg:0 10px 30px #0000001f;--shadow-glow:0 0 20px #3b82f626;--glass-bg:#fffc;--glass-border:#00000014}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{width:100%;min-height:100%;overflow-x:hidden}body{background:var(--bg-primary);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif}.app-layout{width:100vw;height:100vh;display:flex;overflow:hidden}.canvas-container{flex:1;height:100vh;position:relative}.sidebar{width:var(--sidebar-width);background:var(--glass-bg);height:100vh;-webkit-backdrop-filter:blur(var(--glass-blur));border-right:1px solid var(--glass-border);z-index:10;transition:width var(--transition-slow);flex-direction:column;display:flex;overflow:hidden}.sidebar.collapsed{width:var(--sidebar-width-collapsed)}.sidebar-header{border-bottom:1px solid var(--border-subtle);flex-direction:column;gap:16px;padding:16px;display:flex;position:relative}.sidebar-logo{transition:padding var(--transition-normal);align-items:center;gap:12px;display:flex}.sidebar.collapsed .sidebar-logo{justify-content:center;gap:0;padding:0}.sidebar-logo h1{background:linear-gradient(135deg,var(--accent-primary),var(--accent-secondary));-webkit-text-fill-color:transparent;letter-spacing:-.5px;transition:opacity var(--transition-fast),width var(--transition-fast);white-space:nowrap;-webkit-background-clip:text;background-clip:text;font-size:18px;font-weight:700}.sidebar.collapsed .sidebar-logo h1,.sidebar.collapsed .search-input,.sidebar.collapsed .category-title span:not(.category-dot),.sidebar.collapsed .category-chevron,.sidebar.collapsed .draggable-item-label{opacity:0;pointer-events:none;width:0;margin:0;padding:0;display:none}.sidebar-logo-icon{border-radius:var(--radius-sm);background:linear-gradient(135deg,var(--accent-primary),var(--accent-secondary));width:32px;height:32px;box-shadow:var(--shadow-glow);justify-content:center;align-items:center;font-size:16px;display:flex}.sidebar-toggle{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);width:28px;height:28px;color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);z-index:5;justify-content:center;align-items:center;display:flex;position:absolute;top:16px;right:12px}.sidebar-toggle:hover{background:var(--accent-primary);color:#fff;border-color:var(--accent-primary)}.sidebar.collapsed .sidebar-toggle{top:16px;right:50%;transform:translate(50%)}.search-container{width:100%;position:relative}.search-icon{color:var(--text-muted);pointer-events:none;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.search-input{background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-md);width:100%;color:var(--text-primary);transition:border-color var(--transition-fast),box-shadow var(--transition-fast);outline:none;padding:10px 14px 10px 34px;font-family:inherit;font-size:13px}.search-input::placeholder{color:var(--text-muted)}.search-input:focus{border-color:var(--accent-primary);box-shadow:0 0 0 3px var(--accent-glow)}.sidebar-content{scrollbar-width:thin;scrollbar-color:var(--bg-surface-hover)transparent;flex:1;padding:12px 0;overflow-y:auto}.sidebar-content::-webkit-scrollbar{width:4px}.modal-overlay{-webkit-backdrop-filter:blur(8px);z-index:1000;animation:fadeIn var(--transition-fast);background:#0006;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-content.glassmorphic{border:1px solid var(--glass-border);box-shadow:var(--shadow-2xl),0 0 40px #00000080;border-radius:var(--radius-lg);width:100%;max-width:500px;animation:modalSlideUp var(--transition-normal);background:#0f172afa;overflow:hidden}.node-details-modal{padding:0}.modal-header{border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.modal-title{align-items:center;gap:12px;display:flex}.modal-title h2{color:var(--text-primary);margin:0;font-size:16px;font-weight:700}.modal-title .text-accent{color:var(--accent-primary);margin-left:4px}.modal-close{color:var(--text-muted);cursor:pointer;transition:color var(--transition-fast);background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;padding:4px;display:flex}.modal-close:hover{color:var(--accent-primary);background:#ffffff0d}.modal-body{flex-direction:column;gap:16px;padding:24px;display:flex}.modal-description{color:var(--text-secondary);font-size:13px;line-height:1.5}.modal-textarea{border:1px solid var(--border-subtle);border-radius:var(--radius-md);width:100%;min-height:150px;color:var(--text-primary);resize:vertical;transition:border-color var(--transition-fast),box-shadow var(--transition-fast);background:#0003;outline:none;padding:14px;font-family:inherit;font-size:13px;line-height:1.6}.modal-textarea:focus{border-color:var(--accent-primary);box-shadow:0 0 0 3px var(--accent-glow)}.modal-footer{border-top:1px solid var(--border-subtle);background:#0000001a;justify-content:flex-end;gap:12px;padding:20px 24px;display:flex}.modal-btn{border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);border:none;align-items:center;gap:8px;padding:10px 18px;font-size:13px;font-weight:600;display:flex}.modal-btn.primary{background:var(--accent-primary);color:#fff;box-shadow:var(--shadow-glow)}.modal-btn.primary:hover{background:var(--accent-secondary);transform:translateY(-1px)}.modal-btn.secondary{border:1px solid var(--border-subtle);color:var(--text-secondary);background:0 0}.modal-btn.secondary:hover{color:var(--text-primary);background:#ffffff0d}@keyframes modalSlideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#ffffff1a padding-box content-box;border:2px solid #0000;border-radius:10px}::-webkit-scrollbar-thumb:hover{background:#fff3 padding-box content-box}*{scrollbar-width:thin;scrollbar-color:#ffffff1a transparent}.sidebar-content::-webkit-scrollbar-track{background:0 0}.sidebar-content::-webkit-scrollbar-thumb{background:var(--bg-surface-hover);border-radius:4px}.component-category{margin-bottom:4px}.category-header{cursor:pointer;-webkit-user-select:none;user-select:none;transition:background var(--transition-fast),padding var(--transition-fast);justify-content:space-between;align-items:center;padding:10px 16px;display:flex}.sidebar.collapsed .category-header{justify-content:center;padding:10px 0}.category-header:hover{background:var(--bg-surface)}.category-title{text-transform:uppercase;letter-spacing:.8px;color:var(--text-secondary);align-items:center;gap:8px;font-size:11px;font-weight:600;display:flex}.category-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.category-chevron{color:var(--text-muted);transition:transform var(--transition-fast);font-size:10px}.category-chevron.open{transform:rotate(90deg)}.category-items{padding:2px 8px 6px}.draggable-item{border-radius:var(--radius-sm);cursor:grab;transition:background var(--transition-fast),transform var(--transition-fast),box-shadow var(--transition-fast),padding var(--transition-fast);-webkit-user-select:none;user-select:none;align-items:center;gap:10px;padding:8px 12px;display:flex}.sidebar.collapsed .draggable-item{justify-content:center;padding:8px 0}.draggable-item:hover{background:var(--bg-surface-hover);transform:translate(2px)}.draggable-item:active{cursor:grabbing;transform:scale(.97)}.draggable-item-icon{border-radius:var(--radius-sm);width:32px;height:32px;transition:box-shadow var(--transition-fast);flex-shrink:0;justify-content:center;align-items:center;font-size:15px;display:flex}.draggable-item:hover .draggable-item-icon{box-shadow:var(--shadow-sm)}.draggable-item-label{color:var(--text-primary);font-size:13px;font-weight:500}.toolbar{background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);z-index:5;align-items:center;gap:2px;padding:6px;display:flex;position:absolute;top:16px;left:50%;transform:translate(-50%)}.toolbar-btn{width:36px;height:36px;color:var(--text-secondary);border-radius:var(--radius-sm);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast),transform var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;font-size:16px;display:flex}.toolbar-btn:hover,.toolbar-btn.active{background:var(--bg-surface-hover);color:var(--text-primary);transform:scale(1.05)}.toolbar-btn.active{background:var(--accent-primary);color:#fff}.toolbar-btn:active{transform:scale(.95)}.toolbar-btn.danger:hover{color:#ef4444;background:#ef444426}.toolbar-divider{background:var(--border-subtle);width:1px;height:24px;margin:0 4px}.react-flow__background{background-color:var(--bg-primary)!important}.react-flow__minimap{overflow:hidden;background:var(--bg-secondary)!important;border:1px solid var(--glass-border)!important;border-radius:var(--radius-md)!important}.react-flow__controls{display:none!important}.react-flow__edge-path,.react-flow__connection-line{stroke:var(--accent-primary)!important;stroke-width:1.2px!important}.react-flow__handle{background:var(--accent-primary)!important;border:2px solid var(--bg-surface)!important;width:8px!important;height:8px!important;transition:transform var(--transition-fast),box-shadow var(--transition-fast),opacity var(--transition-fast)!important;z-index:5!important;opacity:0!important}.react-flow__node:hover .react-flow__handle,.react-flow__node.selected .react-flow__handle{opacity:1!important}.react-flow__node:hover .react-flow__handle:not([id=top]):not([id=bottom]):not([id=left]):not([id=right]),.react-flow__node.selected .react-flow__handle:not([id=top]):not([id=bottom]):not([id=left]):not([id=right]){opacity:0!important}.react-flow__handle:after{content:"";position:absolute;inset:-4px}.react-flow__node-resizer .react-flow__handle{z-index:20!important}.react-flow__handle:hover{box-shadow:0 0 8px var(--accent-glow)!important;transform:scale(1.5)!important}.edge-delete-btn{opacity:0;transition:opacity var(--transition-fast)}.edge-delete-btn:hover,.edge-delete-btn.visible{opacity:1}.edge-delete-icon{background:var(--bg-surface);border:1.5px solid var(--border-default);width:20px;height:20px;color:var(--text-secondary);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast);border-radius:50%;justify-content:center;align-items:center;font-size:10px;display:flex}.edge-delete-icon:hover{color:#ef4444;background:#ef444426;border-color:#ef4444}.react-flow__edge{cursor:pointer}.arch-node{background:var(--bg-surface);border:1.5px solid var(--border-default);min-width:60px;min-height:60px;box-shadow:var(--shadow-md);transition:border-color var(--transition-fast),box-shadow var(--transition-fast),transform var(--transition-fast);text-align:center;border-radius:4px;flex-direction:column;justify-content:center;align-items:center;padding:6px;position:relative;overflow:visible;display:flex!important}.arch-node:hover{border-color:var(--border-focus);box-shadow:var(--shadow-glow);transform:translateY(-2px)}.arch-node.selected{border-color:var(--accent-primary);box-shadow:0 0 0 2px var(--accent-glow),var(--shadow-glow)}.arch-node-icon{border-radius:4px;justify-content:center;align-items:center;width:24px;height:24px;margin-bottom:3px;font-size:14px;transition:transform .2s;display:flex}.arch-node:hover .arch-node-icon{transform:scale(1.1)}.arch-node-label{color:var(--text-primary);text-align:center;white-space:normal;width:100%;font-size:8px;font-weight:600;line-height:1.05}.arch-node-badge{text-transform:uppercase;letter-spacing:.8px;color:#fff;z-index:5;border-radius:100px;padding:1px 5px;font-size:6px;font-weight:700;position:absolute;bottom:-6px;left:50%;transform:translate(-50%);box-shadow:0 2px 4px #0003}.arch-node-chat-trigger{color:#fff;cursor:pointer;z-index:10;border:1px solid #fff3;border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;transition:transform .2s cubic-bezier(.175,.885,.32,1.275),filter .2s;display:flex;position:absolute;top:-12px;right:-12px;box-shadow:0 4px 12px #0000004d}.arch-node-chat-trigger:hover{filter:brightness(1.2);transform:scale(1.2)}.arch-node.feedback-error{animation:2s ease-in-out infinite pulse-error;border-color:#ef4444!important;box-shadow:0 0 0 2px #ef44444d,0 0 20px #ef444426!important}.arch-node.feedback-warning{animation:2s ease-in-out infinite pulse-warning;border-color:#f59e0b!important;box-shadow:0 0 0 2px #f59e0b4d,0 0 20px #f59e0b26!important}.arch-node.feedback-info{border-color:#3b82f6!important;box-shadow:0 0 0 2px #3b82f64d,0 0 15px #3b82f61a!important}.arch-node.minimal{min-height:auto;padding:4px;box-shadow:none!important;background:0 0!important;border:none!important}.arch-node.minimal:hover{border-radius:8px;transform:translateY(-2px);background:#ffffff08!important}.arch-node.minimal.selected{border-radius:8px;background:rgba(var(--accent-primary-rgb),.1)!important}.arch-node.minimal .arch-node-badge{display:none!important}.arch-node.minimal .arch-node-icon{width:32px;height:32px;margin-bottom:4px}.arch-node.minimal .arch-node-label{opacity:.9;font-size:9px}.container-actions{z-index:100;gap:8px;display:flex;position:absolute;top:-12px;right:-12px}.container-actions .arch-node-chat-trigger.mini{transition:all .2s cubic-bezier(.175,.885,.32,1.275);position:static}.container-actions .arch-node-chat-trigger.mini.active{box-shadow:0 0 15px var(--accent-glow);filter:brightness(1.3);transform:scale(1.1)}@keyframes pulse-error{0%,to{box-shadow:0 0 0 2px #ef44444d,0 0 20px #ef444426}50%{box-shadow:0 0 0 4px #ef444433,0 0 30px #ef444440}}@keyframes pulse-warning{0%,to{box-shadow:0 0 0 2px #f59e0b4d,0 0 20px #f59e0b26}50%{box-shadow:0 0 0 4px #f59e0b33,0 0 30px #f59e0b40}}.feedback-badge-wrapper{z-index:10;position:absolute;top:-8px;right:-8px}.feedback-badge{cursor:pointer;width:22px;height:22px;transition:transform var(--transition-fast);border-radius:50%;justify-content:center;align-items:center;display:flex}.feedback-badge:hover{transform:scale(1.2)}.feedback-badge-error{color:#fff;background:#ef4444;box-shadow:0 0 8px #ef444480}.feedback-badge-warning{color:#fff;background:#f59e0b;box-shadow:0 0 8px #f59e0b80}.feedback-badge-info{color:#fff;background:#3b82f6;box-shadow:0 0 8px #3b82f680}.feedback-tooltip{background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-md);width:180px;box-shadow:var(--shadow-lg);z-index:100;padding:8px 10px;animation:.15s cubic-bezier(.16,1,.3,1) context-menu-in;position:absolute;top:26px;right:0}.feedback-tooltip-error{border-color:#ef444466}.feedback-tooltip-warning{border-color:#f59e0b66}.feedback-tooltip-info{border-color:#3b82f666}.feedback-tooltip-header{text-transform:uppercase;letter-spacing:.5px;align-items:center;gap:4px;margin-bottom:4px;font-size:9px;font-weight:700;display:flex}.feedback-tooltip-error .feedback-tooltip-header{color:#ef4444}.feedback-tooltip-warning .feedback-tooltip-header{color:#f59e0b}.feedback-tooltip-info .feedback-tooltip-header{color:#3b82f6}.feedback-tooltip p{color:var(--text-secondary);margin:0;font-size:9px;line-height:1.4}.toolbar-btn.analyze{color:var(--accent-secondary)}.toolbar-btn.analyze:hover{color:#a78bfa;background:#8b5cf626}.toolbar-btn.cost{color:#10b981}.toolbar-btn.cost:hover{color:#34d399;background:#10b98126}.cost-panel-overlay{z-index:100;pointer-events:all;width:400px;animation:.25s slideInRight;position:absolute;top:0;bottom:0;right:0}.panel-tab-btn{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;flex:1;padding:10px 0;font-family:inherit;font-size:13px;font-weight:500;transition:all .2s}.panel-tab-btn:hover{color:var(--text-primary);background:var(--bg-surface-hover)}.panel-tab-btn.active{color:#10b981;border-bottom-color:#10b981;font-weight:600}.panel-tab-btn:first-child.active{color:#a78bfa;border-bottom-color:#a78bfa}.cost-panel{background:var(--bg-secondary);border-left:1px solid var(--border-default);flex-direction:column;height:100%;display:flex;box-shadow:-8px 0 32px #00000059}.cost-panel-header{border-bottom:1px solid var(--border-default);background:var(--bg-surface);flex-shrink:0;justify-content:space-between;align-items:center;padding:14px 16px;display:flex}.cost-panel-title{color:var(--text-primary);letter-spacing:.3px;align-items:center;gap:8px;font-size:13px;font-weight:700;display:flex}.cost-panel-icon{color:#10b981}.cost-panel-close{cursor:pointer;color:var(--text-muted);width:28px;height:28px;transition:background var(--transition-fast),color var(--transition-fast);background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;display:flex}.cost-panel-close:hover{background:var(--bg-surface-hover);color:var(--text-primary)}.cost-panel-body{flex:1;padding:16px;overflow-y:auto}.cost-panel-loading{height:200px;color:var(--text-secondary);flex-direction:column;justify-content:center;align-items:center;gap:14px;font-size:13px;display:flex}.cost-panel-spinner{color:#10b981;animation:1.2s linear infinite spin}.cost-panel-content{color:var(--text-primary);font-family:Inter,sans-serif;font-size:12.5px;line-height:1.7}.cost-panel-heading-lg{color:var(--text-primary);border-bottom:1px solid var(--border-default);margin:16px 0 8px;padding-bottom:6px;font-size:15px;font-weight:700}.cost-panel-heading{color:#10b981;text-transform:uppercase;letter-spacing:.5px;margin:14px 0 6px;font-size:13px;font-weight:700}.cost-panel-p{color:var(--text-secondary);margin:2px 0}.cost-panel-ul{margin:4px 0 8px;padding-left:0;list-style:none}.cost-panel-li{color:var(--text-secondary);padding:3px 0 3px 14px;font-size:12.5px;position:relative}.cost-panel-li:before{content:"▸";color:#10b981;font-size:10px;position:absolute;top:5px;left:0}.cost-panel-spacer{height:6px}.cost-cursor{color:#10b981;margin-left:2px;font-weight:400;animation:.8s step-end infinite blink;display:inline-block}@keyframes blink{50%{opacity:0}}.in-canvas-chat-container{z-index:10000;-webkit-backdrop-filter:blur(16px);pointer-events:all;background:#0f172afa;border:1px solid #ffffff26;border-radius:16px;flex-direction:column;width:750px;max-width:95vw;animation:.3s cubic-bezier(.16,1,.3,1) chat-popup;display:flex;position:fixed;top:50%;left:50%;overflow:hidden;transform:translate(-50%,-50%);box-shadow:0 24px 64px #0009}@keyframes chat-popup{0%{opacity:0;transform:translate(-50%,-45%)scale(.95)}to{opacity:1;transform:translate(-50%,-50%)scale(1)}}.chat-header{border-bottom:1px solid var(--border-subtle);background:#ffffff08;justify-content:space-between;align-items:center;padding:10px 12px;display:flex}.chat-close-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:4px;transition:background .2s}.chat-messages{scrollbar-width:thin;scrollbar-color:var(--border-subtle)transparent;flex-direction:column;flex:1;gap:12px;min-height:300px;max-height:700px;padding:12px;display:flex;overflow-y:auto}.chat-message{word-wrap:break-word;border-radius:8px;max-width:85%;padding:8px 12px;font-size:12px;line-height:1.5}.chat-message.user{background:var(--accent-primary);color:#fff;border-bottom-right-radius:2px;align-self:flex-end}.chat-input-container{border-top:1px solid var(--border-subtle);background:#ffffff05;gap:8px;padding:10px;display:flex}.chat-input{border:1px solid var(--border-subtle);color:#fff;background:#0003;border-radius:6px;outline:none;flex:1;padding:6px 10px;font-family:inherit;font-size:12px;transition:border-color .2s}.chat-send-btn:hover:not(:disabled){filter:brightness(1.1);transform:translateY(-1px)}.chat-loading{align-items:center;gap:4px;height:20px;padding:4px 8px;display:flex}@keyframes dot-pulse{0%,to{opacity:.5;transform:scale(1)}50%{opacity:1;transform:scale(1.4)}}.desktop-only-warning{background:var(--bg-primary);z-index:10000;text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:40px;display:none;position:fixed;inset:0}@media (max-width:1024px){.desktop-only-warning{display:flex!important}}.warning-icon-wrapper{color:#fbbf24;background:#f59e0b1a;border:1px solid #f59e0b33;border-radius:24px;margin-bottom:24px;padding:24px}.warning-title{background:linear-gradient(135deg,#fff,#ffffffb3);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin-bottom:16px;font-size:24px;font-weight:700}.warning-text{color:var(--text-secondary);max-width:400px;margin-bottom:32px;font-size:16px;line-height:1.6}.toast-container{z-index:10001;pointer-events:none;flex-direction:column;gap:12px;display:flex;position:fixed;top:24px;right:24px}.toast{pointer-events:auto;cursor:pointer;border:1px solid #ffffff1a;border-radius:12px;align-items:center;gap:12px;min-width:300px;max-width:450px;padding:16px;transition:transform .2s,opacity .2s;animation:.3s cubic-bezier(.16,1,.3,1) toast-slide-in;display:flex;position:relative;overflow:hidden;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d}.toast:hover{transform:translateY(-2px)}.toast-message{color:#fff;flex:1;font-size:14px;font-weight:500;line-height:1.4}.toast-icon{flex-shrink:0;font-size:20px}.toast-close{color:#fff9;cursor:pointer;background:0 0;border:none;flex-shrink:0;padding:4px;font-size:20px;line-height:1;transition:color .2s}.toast-close:hover{color:#fff}.glass-effect{-webkit-backdrop-filter:blur(12px);background:#1e293bd9}.toast-success{border-left:4px solid #10b981}.toast-error{border-left:4px solid #ef4444}.toast-warning{border-left:4px solid #f59e0b}.toast-info{border-left:4px solid #3b82f6}@keyframes toast-slide-in{0%{opacity:0;transform:translate(100%)scale(.9)}to{opacity:1;transform:translate(0)scale(1)}}@keyframes toast-slide-out{0%{opacity:1;transform:translate(0)scale(1)}to{opacity:0;transform:translate(100%)scale(.9)}}.chat-auto-config-btn{color:#e879f9;cursor:pointer;background:linear-gradient(135deg,#a855f733,#ec489933);border:1px solid #a855f766;border-radius:8px;justify-content:center;align-items:center;gap:6px;margin:0 10px 10px;padding:8px 12px;font-size:11px;font-weight:600;transition:all .2s;display:flex;box-shadow:0 4px 12px #a855f71a}.chat-auto-config-btn:hover:not(:disabled){color:#e879f9;background:#a855f740;border-color:#a855f780}.chat-auto-config-btn:disabled{opacity:.5;cursor:not-allowed}.ai-help-trigger:hover{border-radius:4px;color:var(--accent-primary)!important;background:#a855f71a!important}.feedback-panel-overlay{z-index:20;width:480px;animation:.3s cubic-bezier(.16,1,.3,1) panel-slide-in;position:absolute;top:0;bottom:0;right:0}@keyframes panel-slide-in{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}.feedback-panel{-webkit-backdrop-filter:blur(20px);border-left:1px solid var(--glass-border);background:#0f172afa;flex-direction:column;height:100%;display:flex;overflow:hidden}.feedback-panel-header{border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;padding:16px 16px 12px;display:flex}.feedback-panel-title{color:var(--accent-secondary);align-items:center;gap:8px;display:flex}.feedback-panel-title h2{background:linear-gradient(135deg,var(--accent-secondary),var(--accent-primary));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:18px;font-weight:700}.feedback-panel-close{width:28px;height:28px;color:var(--text-muted);border-radius:var(--radius-sm);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;display:flex}.feedback-panel-close:hover{background:var(--bg-surface-hover);color:var(--text-primary)}.feedback-panel-summary{border-bottom:1px solid var(--border-subtle);gap:8px;padding:12px 16px;display:flex}.feedback-count{border-radius:12px;padding:3px 8px;font-size:11px;font-weight:600}.feedback-count-error{color:#ef4444;background:#ef444426}.feedback-count-warning{color:#f59e0b;background:#f59e0b26}.feedback-count-info{color:#3b82f6;background:#3b82f626}.feedback-panel-items{scrollbar-width:thin;scrollbar-color:var(--bg-surface-hover)transparent;flex:1;padding:8px 12px;overflow-y:auto}.feedback-group{margin-bottom:20px}.feedback-group-header{border-bottom:1.5px solid var(--border-default);justify-content:space-between;align-items:center;margin-bottom:6px;padding:8px 4px;display:flex}.feedback-group-header span:first-child{text-transform:uppercase;letter-spacing:.8px;color:var(--accent-primary);font-size:12px;font-weight:700}.feedback-group-count{background:var(--bg-secondary);color:var(--text-muted);text-align:center;border-radius:10px;min-width:20px;padding:2px 6px;font-size:10px;font-weight:600}.feedback-item{border-radius:var(--radius-sm);cursor:pointer;transition:background var(--transition-fast);gap:10px;margin-bottom:4px;padding:10px 12px;display:flex}.feedback-item:hover{background:var(--bg-surface-hover)}.feedback-item-icon{flex-shrink:0;margin-top:2px}.feedback-item-error .feedback-item-icon{color:#ef4444}.feedback-item-warning .feedback-item-icon{color:#f59e0b}.feedback-item-info .feedback-item-icon{color:#3b82f6}.feedback-item-content{flex:1;min-width:0}.feedback-item-node{color:var(--text-primary);margin-bottom:3px;font-size:14px;font-weight:600;display:block}.feedback-item-message{color:var(--text-secondary);gap:6px;margin:0;font-size:13px;line-height:1.5;display:flex}.message-bullet{color:var(--accent-primary);opacity:.7;flex-shrink:0;font-weight:700}.feedback-item-messages{flex-direction:column;gap:6px;display:flex}.feedback-panel-actions{border-top:1px solid var(--border-subtle);padding:12px 16px}.feedback-clear-btn{border:1px solid var(--border-default);width:100%;color:var(--text-secondary);border-radius:var(--radius-sm);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast);background:0 0;padding:8px;font-family:inherit;font-size:12px;font-weight:500}.feedback-clear-btn:hover{background:var(--bg-surface-hover);color:var(--text-primary)}.feedback-panel-loading{color:var(--text-muted);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:16px;display:flex}.feedback-panel-loading p{font-size:13px}.feedback-spinner{border:3px solid var(--border-subtle);border-top-color:var(--accent-secondary);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite spin}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.feedback-panel-empty{color:var(--text-muted);text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;padding:20px;display:flex}.feedback-panel-empty p{font-size:12px;line-height:1.6}.container-node{width:100%;min-width:200px;height:100%;min-height:150px;transition:border-color var(--transition-fast),box-shadow var(--transition-fast);pointer-events:none;z-index:-1;background:#6366f10a;border:2px dashed #6366f14d;border-radius:3px}.container-node:hover{background:#6366f10f;border-color:#6366f180}.container-node.selected{pointer-events:all;box-shadow:0 0 0 2px #6366f133}.container-node-header{pointer-events:all;border-bottom:1px solid #6366f11a;align-items:center;gap:8px;padding:8px 12px;display:flex}.container-node-icon{border-radius:5px;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;font-size:12px;display:flex}.container-node-label{color:var(--text-secondary);white-space:nowrap;flex:1;font-size:11px;font-weight:600}.container-node-badge{text-transform:uppercase;letter-spacing:.5px;border-radius:4px;padding:2px 6px;font-size:8px;font-weight:700}.container-node-input{color:var(--text-primary);background:var(--bg-secondary);border:1px solid var(--accent-primary);box-shadow:0 0 0 2px var(--accent-glow);border-radius:4px;outline:none;flex:1;padding:2px 6px;font-family:inherit;font-size:11px;font-weight:600}.canvas-container.drag-over:after{content:"";border:2px dashed var(--accent-primary);pointer-events:none;z-index:1;background:#3b82f608;border-radius:0;animation:1.5s ease-in-out infinite drop-pulse;position:absolute;inset:0}@keyframes drop-pulse{0%,to{opacity:.5}50%{opacity:1}}.empty-state{text-align:center;pointer-events:none;z-index:1;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.empty-state-icon{opacity:.3;margin-bottom:16px;font-size:48px}.empty-state h2{color:var(--text-secondary);margin-bottom:8px;font-size:18px;font-weight:600}.empty-state p{color:var(--text-muted);max-width:280px;font-size:13px}.context-menu-overlay{z-index:99;position:fixed;inset:0}.context-menu{z-index:100;background:var(--glass-bg);min-width:180px;-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);padding:6px;animation:.15s cubic-bezier(.16,1,.3,1) context-menu-in;position:fixed}.edge-label{-webkit-backdrop-filter:blur(4px);color:#f8fafcb3;white-space:nowrap;pointer-events:all;cursor:text;transition:transform var(--transition-fast),background var(--transition-fast),color var(--transition-fast);text-align:center;background:#0f172a80;border:1px solid #0000;border-radius:4px;margin-bottom:6px;padding:4px 8px;font-size:9px;font-weight:400;box-shadow:0 2px 8px #0000001a}.edge-label:hover{color:#f8fafc;background:#0f172acc;transform:scale(1.05)}.edge-label.selected{color:#f8fafc;background:#0f172acc;border-color:#3b82f680}.edge-label-input{color:#fff;text-align:center;background:#0f172af2;border:1px solid #3b82f6;border-radius:4px;outline:none;width:80px;margin-bottom:6px;padding:4px 8px;font-family:inherit;font-size:10px;box-shadow:0 0 0 2px #3b82f633}.edge-controls{opacity:0;transition:opacity var(--transition-fast);pointer-events:none;z-index:1001}.edge-controls.visible,.edge-controls:hover{opacity:1;pointer-events:all}.edge-control-group{-webkit-backdrop-filter:blur(8px);background:#0f172ae6;border:1px solid #ffffff1a;border-radius:20px;align-items:center;gap:4px;padding:4px;display:flex;box-shadow:0 4px 12px #0000004d}.edge-control-btn{width:24px;height:24px;color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;display:flex}.edge-control-btn:hover{color:var(--text-primary);background:#ffffff1a}.edge-control-btn.danger:hover{color:#ef4444;background:#ef444433}.edge-control-btn svg{transition:transform var(--transition-fast)}.edge-control-btn:active svg{transform:scale(.9)}.edge-control-btn.active{background:var(--accent-primary);color:#fff}.edge-control-btn.active:hover{background:var(--accent-primary-hover)}@keyframes context-menu-in{0%{opacity:0;transform:scale(.95)translateY(-4px)}to{opacity:1;transform:scale(1)translateY(0)}}.context-menu-item{width:100%;color:var(--text-primary);border-radius:var(--radius-sm);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast);background:0 0;border:none;align-items:center;gap:10px;padding:8px 12px;font-family:inherit;font-size:13px;display:flex}.context-menu-item:hover{background:var(--bg-surface-hover)}.context-menu-item.danger:hover{color:#ef4444;background:#ef444426}.context-menu-icon{text-align:center;width:20px}.context-menu-divider{background:var(--border-subtle);height:1px;margin:4px 0}.theme-toggle{color:var(--text-secondary)!important}.theme-toggle:hover{color:#f59e0b!important;background:#f59e0b1a!important}[data-theme=light] .react-flow__handle{border-color:var(--bg-surface)!important}[data-theme=light] .react-flow__minimap{background:var(--bg-surface)}[data-theme=light] .arch-node-badge{color:#fffffff2}[data-theme=light] .sidebar{border-right-color:var(--border-default)}[data-theme=light] .edge-delete-icon{background:var(--bg-surface);border-color:var(--border-default)}[data-theme=light] .container-node{background:#6366f10a}[data-theme=light] .feedback-panel{background:var(--glass-bg)}.ai-prompt-container{background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-md);min-width:300px;transition:all var(--transition-fast);align-items:center;gap:8px;margin-right:8px;padding:4px 12px;display:flex}.ai-prompt-container:focus-within{border-color:var(--accent-primary);box-shadow:0 0 0 2px var(--accent-glow);background:var(--bg-primary)}.ai-prompt-icon{color:var(--accent-primary);justify-content:center;align-items:center;display:flex}.ai-prompt-input{color:var(--text-primary);background:0 0;border:none;outline:none;flex:1;font-family:inherit;font-size:13px}.ai-prompt-input::placeholder{color:var(--text-muted)}.ai-prompt-input:disabled{opacity:.5;cursor:not-allowed}.ai-prompt-loading{animation:2s linear infinite spin}.landing-page{background-color:var(--bg-primary);min-height:100vh;color:var(--text-primary);font-family:Inter,sans-serif;overflow-y:auto}.landing-nav{justify-content:space-between;align-items:center;max-width:1280px;margin:0 auto;padding:1.5rem 2rem;display:flex}.nav-actions{align-items:center;gap:1.5rem;display:flex}.hero-section{text-align:center;max-width:1280px;margin:0 auto;padding:5rem 1.5rem 8rem}.hero-badge{color:#60a5fa;background:#3b82f61a;border:1px solid #3b82f64d;border-radius:100px;margin-bottom:2rem;padding:.4rem 1rem;font-size:.875rem;font-weight:500;animation:2s infinite pulse-glow;display:inline-block}@keyframes pulse-glow{0%,to{opacity:.8}50%{opacity:1;box-shadow:0 0 10px #3b82f633}}.hero-title{letter-spacing:-.02em;margin-bottom:2rem;font-size:4rem;font-weight:800;line-height:1.1}.text-gradient{background:linear-gradient(90deg,#22d3ee,#a855f7);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.hero-subtitle{color:var(--text-secondary);max-width:42rem;margin:0 auto 3rem;font-size:1.25rem;line-height:1.6}.hero-actions{flex-direction:column;justify-content:center;align-items:center;gap:1.5rem;margin-bottom:5rem;display:flex}@media (min-width:640px){.hero-actions{flex-direction:row}}.btn-primary{color:#fff;cursor:pointer;background:linear-gradient(90deg,#0891b2,#2563eb);border:none;border-radius:.75rem;padding:1rem 2.5rem;font-size:1.125rem;font-weight:700;text-decoration:none;transition:transform .2s,box-shadow .2s;display:inline-block;box-shadow:0 10px 15px -3px #0891b233}.btn-primary:hover{transform:scale(1.05);box-shadow:0 20px 25px -5px #0891b24d}.btn-secondary{color:#fff;cursor:pointer;background:#ffffff0d;border:1px solid #ffffff1a;border-radius:.75rem;padding:1rem 2.5rem;font-size:1.125rem;font-weight:700;text-decoration:none;transition:background .2s;display:inline-block}.btn-secondary:hover{background:#ffffff1a}.btn-ghost{color:#fff;cursor:pointer;background:0 0;border:none;font-size:.875rem;font-weight:500;text-decoration:none;transition:color .2s}.btn-ghost:hover{color:#22d3ee}.feature-grid{text-align:left;border-top:1px solid #ffffff0d;grid-template-columns:1fr;gap:2rem;padding-top:5rem;display:grid}@media (min-width:768px){.feature-grid{grid-template-columns:repeat(3,1fr)}}.feature-card{background:#ffffff08;border:1px solid #ffffff14;border-radius:1.5rem;padding:2.5rem;transition:border-color .2s,background .2s}.feature-card:hover{background:#ffffff0d;border-color:#22d3ee4d}.feature-icon{color:#22d3ee;background:#22d3ee1a;border-radius:1rem;justify-content:center;align-items:center;width:3.5rem;height:3.5rem;margin-bottom:2rem;font-size:1.75rem;display:flex}.feature-title{margin-bottom:1rem;font-size:1.5rem;font-weight:700}.feature-desc{color:#94a3b8;font-size:1rem;line-height:1.7}.auth-page{background-color:var(--bg-primary);justify-content:center;align-items:center;min-height:100vh;padding:2rem;display:flex}.footer{text-align:center;color:#475569;border-top:1px solid #ffffff0d;padding:4rem 2rem;font-size:.875rem}@media (max-width:768px){.hero-title{font-size:3rem}}.session-name-container{border:1px solid var(--border-subtle);background:#ffffff08;border-radius:8px;align-items:center;margin-right:12px;padding:0 12px;display:flex!important}.session-name-input{color:#fff;background:0 0;border:none;outline:none;width:180px;padding:6px 0;font-size:.9rem;font-weight:600}.session-name-input::placeholder{color:#ffffff4d}.session-name-input:focus{color:#22d3ee}.dashboard-container{max-width:1280px;margin:0 auto;padding:3rem 1.5rem 8rem}.dashboard-header{justify-content:space-between;align-items:center;margin-bottom:3rem;display:flex}.dashboard-title{margin-bottom:.5rem;font-size:2.5rem;font-weight:800}.dashboard-subtitle{color:var(--text-secondary);font-size:1.1rem}.session-grid{grid-template-columns:1fr;gap:1.5rem;display:grid}@media (min-width:768px){.session-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width:1024px){.session-grid{grid-template-columns:repeat(3,1fr)}}.session-card{background:#ffffff08;border:1px solid #ffffff14;border-radius:1rem;flex-direction:column;transition:border-color .2s,background .2s;display:flex;position:relative;overflow:hidden}.session-card:hover{background:#ffffff0d;border-color:#22d3ee4d}.session-card-link{color:inherit;flex:1;padding:2rem;text-decoration:none;display:block}.session-card-title{margin-bottom:.5rem;font-size:1.25rem;font-weight:700;transition:color .2s}.session-card:hover .session-card-title{color:#22d3ee}.session-card-info{color:var(--text-secondary);margin-bottom:1.5rem;font-size:.875rem}.session-card-action{color:#22d3ee;align-items:center;font-size:.875rem;font-weight:600;display:flex}.delete-btn{cursor:pointer;color:var(--text-secondary);z-index:10;background:#ffffff0d;border:none;border-radius:.5rem;justify-content:center;align-items:center;padding:.5rem;transition:color .2s,background .2s;display:flex;position:absolute;top:1rem;right:1rem}.delete-btn:hover{color:#ef4444;background:#ef44441a}.empty-state{text-align:center;background:#ffffff05;border:1px dashed #ffffff1a;border-radius:1.5rem;padding:5rem 2rem}.empty-state-icon{margin-bottom:1.5rem;font-size:3rem}.iacContainer{background:var(--bg-primary);border:1px solid var(--border-default);border-radius:var(--radius-md);color:#a5d6ff;text-align:left;margin:10px 0;padding:16px;font-family:JetBrains Mono,Fira Code,monospace;font-size:13px;line-height:1.6;position:relative;overflow-x:auto}.iacHeader{border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;margin-bottom:12px;padding-bottom:8px;display:flex}.iacBadge{background:var(--accent-primary);color:#fff;text-transform:uppercase;border-radius:4px;padding:2px 6px;font-size:10px;font-weight:700}.iac-copy-btn{background:var(--bg-surface);border:1px solid var(--border-default);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);border-radius:4px;align-items:center;gap:6px;padding:4px 8px;font-size:11px;font-weight:600;display:flex}.iac-copy-btn:hover{background:var(--bg-surface-hover);color:var(--text-primary);border-color:var(--accent-primary)}.iac-copy-btn.copied{color:var(--accent-tertiary);border-color:var(--accent-tertiary)}.iac-copy-btn span{font-family:Inter,sans-serif}.arch-node-chat-trigger{color:#fff;cursor:pointer;z-index:100;border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;transition:transform .2s cubic-bezier(.175,.885,.32,1.275);display:flex;position:absolute;top:-10px;right:-10px;box-shadow:0 4px 12px #0000004d}.arch-node-chat-trigger:hover{transform:scale(1.15)rotate(5deg)}.arch-node-chat-trigger.mini{width:18px;height:18px;top:-8px;right:-8px}@keyframes chat-slide-up{0%{opacity:0;transform:translate(-50%,-100%)scale(.95)}to{opacity:1;transform:translate(-50%,-100%)scale(1)}}.chat-header{background:#ffffff0d;border-bottom:1px solid #ffffff1a;justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.chat-header-title{color:#fff;align-items:center;gap:8px;font-size:13px;font-weight:600;display:flex}.chat-close-btn{color:#fff9;cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:4px;transition:all .2s;display:flex}.chat-close-btn:hover{color:#fff;background:#ffffff1a}.chat-messages{flex-direction:column;flex:1;gap:12px;padding:16px;display:flex;overflow-y:auto}.chat-message{word-break:break-word;border-radius:12px;max-width:85%;padding:10px 14px;font-size:13px;line-height:1.5}.chat-message.ai{color:#dbeafe;background:#3b82f61a;border:1px solid #3b82f633;border-bottom-left-radius:2px;align-self:flex-start}.chat-message.user{color:#fff;background:#3b82f6;border-bottom-right-radius:2px;align-self:flex-end}.chat-input-container{background:#ffffff0d;border-top:1px solid #ffffff1a;align-items:center;gap:10px;padding:12px 16px;display:flex}.chat-input{color:#fff;background:#0000004d;border:1px solid #ffffff1a;border-radius:8px;outline:none;flex:1;padding:8px 12px;font-size:13px;transition:border-color .2s}.chat-input:focus{border-color:#3b82f6}.cost-cursor{background:var(--accent-primary);width:8px;animation:1s step-end infinite blink;display:inline-block}.chat-send-btn{background:var(--accent-primary);color:#fff;cursor:pointer;border:none;border-radius:6px;justify-content:center;align-items:center;width:30px;height:30px;transition:transform .2s;display:flex}.chat-send-btn:hover{transform:translateY(-1px)}.chat-send-btn:disabled{opacity:.5;cursor:not-allowed}.chat-loading{gap:4px;padding:4px 8px;display:flex}.dot{background:var(--text-muted);border-radius:50%;width:4px;height:4px;animation:1.4s infinite dot-pulse}.dot:nth-child(2){animation-delay:.2s}.dot:nth-child(3){animation-delay:.4s}
