@import url("https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@300;400;500;600;700&family=JetBrains+Mono:wght@300;400;500;600&display=swap");:root{--color-bg-primary:#0a0e1a;--color-bg-secondary:#0f1629;--color-bg-card:#141b2d;--color-bg-elevated:#1a2342;--color-bg-glass:rgba(20,27,45,.85);--color-surface:#1e293b;--color-border:rgba(148,163,184,.08);--color-border-hover:rgba(148,163,184,.15);--color-divider:rgba(148,163,184,.06);--color-text-primary:#f1f5f9;--color-text-secondary:rgba(241,245,249,.65);--color-text-tertiary:rgba(241,245,249,.4);--color-text-muted:rgba(241,245,249,.25);--color-accent:#14b8a6;--color-accent-light:#2dd4bf;--color-accent-dark:#0d9488;--color-accent-glow:rgba(20,184,166,.15);--color-accent-glow-strong:rgba(20,184,166,.3);--color-success:#22c55e;--color-success-bg:rgba(34,197,94,.1);--color-warning:#f59e0b;--color-warning-bg:rgba(245,158,11,.1);--color-danger:#ef4444;--color-danger-bg:rgba(239,68,68,.1);--color-danger-glow:rgba(239,68,68,.2);--color-info:#3b82f6;--color-info-bg:rgba(59,130,246,.1);--font-display:"Space Grotesk",system-ui,sans-serif;--font-mono:"JetBrains Mono","Fira Code",monospace;--space-xs:4px;--space-sm:8px;--space-md:16px;--space-lg:24px;--space-xl:32px;--space-2xl:48px;--space-3xl:64px;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--radius-xl:24px;--radius-full:9999px;--shadow-sm:0 1px 3px rgba(0,0,0,.3);--shadow-md:0 4px 12px rgba(0,0,0,.4);--shadow-lg:0 8px 32px rgba(0,0,0,.5);--shadow-glow-accent:0 0 20px var(--color-accent-glow);--shadow-glow-danger:0 0 30px var(--color-danger-glow);--ease-out-expo:cubic-bezier(0.16,1,0.3,1);--ease-out-quart:cubic-bezier(0.25,1,0.5,1);--ease-in-out-expo:cubic-bezier(0.87,0,0.13,1);--ease-spring:cubic-bezier(0.34,1.56,0.64,1);--transition-fast:150ms var(--ease-out-expo);--transition-normal:300ms var(--ease-out-expo);--transition-slow:500ms var(--ease-out-expo)}*,:after,:before{margin:0;padding:0;box-sizing:border-box}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}body{font-family:var(--font-display);background:var(--color-bg-primary);color:var(--color-text-primary);line-height:1.6;overflow-x:hidden;min-height:100vh}::selection{background:var(--color-accent);color:var(--color-bg-primary)}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:rgba(148,163,184,.15);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:rgba(148,163,184,.25)}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideInLeft{0%{opacity:0;transform:translateX(-30px)}to{opacity:1;transform:translateX(0)}}@keyframes slideInRight{0%{opacity:0;transform:translateX(30px)}to{opacity:1;transform:translateX(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes pulseGlow{0%,to{box-shadow:0 0 8px var(--color-accent-glow)}50%{box-shadow:0 0 24px var(--color-accent-glow-strong)}}@keyframes pulseRing{0%{transform:scale(.95);box-shadow:0 0 0 0 rgba(239,68,68,.5)}70%{transform:scale(1);box-shadow:0 0 0 10px rgba(239,68,68,0)}to{transform:scale(.95);box-shadow:0 0 0 0 rgba(239,68,68,0)}}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes typewriter{0%{width:0}to{width:100%}}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes countdownPulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes ripple{0%{transform:scale(0);opacity:.5}to{transform:scale(4);opacity:0}}@keyframes gradientShift{0%{background-position:0 50%}50%{background-position:100% 50%}to{background-position:0 50%}}.app-container{display:grid;grid-template-columns:42% 58%;min-height:100vh;grid-gap:0;gap:0;position:relative}.app-container:before{content:"";position:absolute;top:0;left:42%;width:1px;height:100%;background:linear-gradient(to bottom,transparent,var(--color-accent-glow) 20%,var(--color-accent) 50%,var(--color-accent-glow) 80%,transparent);z-index:10}.panel-left{background:var(--color-bg-secondary);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-2xl);position:relative;overflow:hidden}.panel-left:before{content:"";position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:radial-gradient(circle at 60% 40%,var(--color-accent-glow) 0,transparent 50%);opacity:.3;pointer-events:none}.panel-right{background:var(--color-bg-primary);padding:var(--space-lg);overflow-y:auto}.panel-right,.phone-frame{display:flex;flex-direction:column;position:relative}.phone-frame{width:340px;min-height:680px;background:var(--color-bg-card);border-radius:40px;border:2px solid var(--color-border);box-shadow:var(--shadow-lg),0 0 60px rgba(20,184,166,.05);z-index:1;overflow:hidden;animation:fadeInUp .8s var(--ease-out-expo) both}.phone-notch{width:120px;height:28px;background:var(--color-bg-primary);border-radius:0 0 18px 18px;margin:0 auto;position:relative;z-index:2}.phone-content{flex:1 1;padding:var(--space-md) var(--space-lg);display:flex;flex-direction:column;gap:var(--space-md)}.phone-bottom-bar{height:5px;width:120px;background:var(--color-text-tertiary);border-radius:var(--radius-full);margin:var(--space-sm) auto var(--space-md)}.bank-header{justify-content:space-between;padding-bottom:var(--space-md);border-bottom:1px solid var(--color-divider);animation:slideDown .5s var(--ease-out-expo) .2s both}.bank-header,.bank-logo{display:flex;align-items:center}.bank-logo{gap:var(--space-sm)}.bank-logo-icon{width:32px;height:32px;background:linear-gradient(135deg,var(--color-accent),var(--color-accent-dark));border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;color:var(--color-bg-primary)}.bank-logo-text{font-size:14px;font-weight:600;letter-spacing:-.02em}.bank-balance-label{font-size:11px;color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.08em;margin-top:var(--space-md);animation:slideDown .5s var(--ease-out-expo) .3s both}.bank-balance{font-size:32px;font-weight:700;letter-spacing:-.03em;background:linear-gradient(135deg,var(--color-text-primary),var(--color-accent-light));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:slideDown .5s var(--ease-out-expo) .4s both}.bank-balance-currency{font-size:16px;font-weight:400;-webkit-text-fill-color:var(--color-text-secondary)}.transfer-section{margin-top:var(--space-md);animation:fadeInUp .6s var(--ease-out-expo) .5s both}.transfer-title{font-size:14px;font-weight:600;margin-bottom:var(--space-md);display:flex;align-items:center;gap:var(--space-sm)}.transfer-title:before{content:"";display:inline-block;width:3px;height:16px;background:var(--color-accent);border-radius:var(--radius-full)}.form-group{margin-bottom:var(--space-md)}.form-label{display:block;font-size:11px;color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.06em;margin-bottom:var(--space-xs);font-weight:500}.form-input,.form-select{width:100%;padding:12px 14px;background:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-primary);font-family:var(--font-display);font-size:14px;transition:border-color var(--transition-fast),box-shadow var(--transition-fast);outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none}.form-input:focus,.form-select:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-glow)}.form-select{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='%2394a3b8' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;padding-right:36px;cursor:pointer}.form-select option{background:var(--color-bg-card);color:var(--color-text-primary)}.amount-input-wrapper{position:relative}.amount-input-wrapper .currency-symbol{position:absolute;right:14px;top:50%;transform:translateY(-50%);font-size:13px;color:var(--color-text-tertiary);font-weight:500}.form-input.amount-input{font-family:var(--font-mono);font-size:18px;font-weight:600;letter-spacing:.02em;padding-right:50px}.btn-transfer{width:100%;padding:14px;background:linear-gradient(135deg,var(--color-accent),var(--color-accent-dark));color:var(--color-bg-primary);border:none;border-radius:var(--radius-md);font-family:var(--font-display);font-size:14px;font-weight:600;letter-spacing:.02em;cursor:pointer;transition:transform var(--transition-fast),box-shadow var(--transition-fast),opacity var(--transition-fast);position:relative;overflow:hidden;margin-top:var(--space-sm)}.btn-transfer:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 20px var(--color-accent-glow-strong)}.btn-transfer:active:not(:disabled){transform:translateY(0) scale(.98)}.btn-transfer:disabled{opacity:.5;cursor:not-allowed}.btn-transfer.loading{pointer-events:none}.btn-transfer .spinner{display:inline-block;width:18px;height:18px;border:2px solid transparent;border-top:2px solid var(--color-bg-primary);border-radius:50%;animation:spin .6s linear infinite;vertical-align:middle;margin-right:var(--space-sm)}.recent-txns{margin-top:auto;padding-top:var(--space-md);border-top:1px solid var(--color-divider)}.recent-txns-title{font-size:11px;color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.06em;margin-bottom:var(--space-sm)}.txn-item{display:flex;align-items:center;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--color-divider);animation:fadeIn .3s var(--ease-out-expo) both}.txn-item:last-child{border-bottom:none}.txn-info{display:flex;flex-direction:column}.txn-name{font-size:13px;font-weight:500}.txn-time{font-size:10px;color:var(--color-text-tertiary)}.txn-amount,.txn-time{font-family:var(--font-mono)}.txn-amount{font-size:13px;font-weight:600}.txn-amount.outgoing{color:var(--color-danger)}.txn-amount.incoming{color:var(--color-success)}.txn-amount.flagged{color:var(--color-warning)}.visualizer-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-lg);animation:slideInRight .6s var(--ease-out-expo) both}.visualizer-title{font-size:20px;font-weight:700;letter-spacing:-.03em;display:flex;align-items:center;gap:var(--space-sm)}.visualizer-title .dot{width:8px;height:8px;border-radius:50%;background:var(--color-success);animation:pulse 2s infinite}.visualizer-status{font-size:12px;font-family:var(--font-mono);color:var(--color-text-tertiary);display:flex;align-items:center;gap:var(--space-xs)}.ws-indicator{width:6px;height:6px;border-radius:50%;transition:background var(--transition-fast)}.ws-indicator.connected{background:var(--color-success);box-shadow:0 0 8px rgba(34,197,94,.4)}.ws-indicator.disconnected{background:var(--color-danger)}.pipeline-container{gap:0;position:relative}.pipeline-container,.pipeline-empty{flex:1 1;display:flex;flex-direction:column}.pipeline-empty{gap:var(--space-md);color:var(--color-text-tertiary);animation:fadeIn .6s var(--ease-out-expo) both}.pipeline-empty,.pipeline-empty-icon{align-items:center;justify-content:center}.pipeline-empty-icon{width:64px;height:64px;border-radius:var(--radius-lg);background:var(--color-bg-card);border:1px solid var(--color-border);display:flex;font-size:28px}.pipeline-empty-text{font-size:14px;text-align:center;max-width:280px;line-height:1.5}.pipeline-step{display:flex;gap:var(--space-md);position:relative;animation:fadeInUp .5s var(--ease-out-expo) both}.pipeline-step-line{flex-direction:column}.pipeline-step-dot,.pipeline-step-line{display:flex;align-items:center;width:32px;flex-shrink:0}.pipeline-step-dot{height:32px;border-radius:50%;justify-content:center;font-size:14px;font-weight:700;transition:all var(--transition-normal);position:relative;z-index:1}.pipeline-step-dot.pending{background:var(--color-bg-elevated);border:2px solid var(--color-border);color:var(--color-text-tertiary)}.pipeline-step-dot.processing{background:var(--color-accent-glow-strong);border:2px solid var(--color-accent);color:var(--color-accent);animation:pulseGlow 2s infinite}.pipeline-step-dot.success{background:var(--color-success-bg);border:2px solid var(--color-success);color:var(--color-success)}.pipeline-step-dot.alert{background:var(--color-danger-bg);border:2px solid var(--color-danger);color:var(--color-danger);animation:pulseRing 2s infinite}.pipeline-step-dot.complete{background:var(--color-info-bg);border:2px solid var(--color-info);color:var(--color-info)}.pipeline-connector{width:2px;flex:1 1;min-height:20px;background:var(--color-border);transition:background var(--transition-slow)}.pipeline-connector.active{background:linear-gradient(to bottom,var(--color-accent),var(--color-accent-glow))}.pipeline-step-content{flex:1 1;padding-bottom:var(--space-lg)}.pipeline-step-label{font-size:14px;font-weight:600;margin-bottom:var(--space-xs);letter-spacing:-.01em}.pipeline-step-timestamp{font-size:11px;font-family:var(--font-mono);color:var(--color-text-tertiary);margin-bottom:var(--space-sm)}.data-card{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-md);font-family:var(--font-mono);font-size:12px;line-height:1.7;overflow-x:auto;animation:slideDown .4s var(--ease-out-expo) both}.data-card .key{color:var(--color-accent-light)}.data-card .value{color:var(--color-text-primary)}.data-card .value.string{color:#fbbf24}.data-card .value.number{color:#a78bfa}.data-card .value.boolean{color:#f472b6}.data-card .value.danger{color:var(--color-danger);font-weight:600}.data-card .value.success{color:var(--color-success);font-weight:600}.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.7);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .3s var(--ease-out-expo) both}.brake-modal{width:380px;background:var(--color-bg-card);border:1px solid var(--color-danger);border-radius:var(--radius-xl);padding:var(--space-2xl);text-align:center;position:relative;overflow:hidden;animation:fadeInUp .5s var(--ease-spring) both;box-shadow:var(--shadow-glow-danger)}.brake-modal:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--color-danger),var(--color-warning),var(--color-danger));background-size:200% 100%;animation:gradientShift 2s ease infinite}.brake-icon{width:72px;height:72px;background:var(--color-danger-bg);border:2px solid var(--color-danger);border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto var(--space-lg);font-size:32px;animation:pulseRing 2s infinite}.brake-title{font-size:22px;font-weight:700;color:var(--color-danger);letter-spacing:-.02em;margin-bottom:var(--space-sm)}.brake-subtitle{font-size:13px;color:var(--color-text-secondary);margin-bottom:var(--space-lg);line-height:1.6}.brake-reason{background:var(--color-danger-bg);border:1px solid rgba(239,68,68,.2);border-radius:var(--radius-md);padding:var(--space-md);font-size:14px;color:var(--color-warning);font-weight:500;line-height:1.5}.brake-reason,.brake-timer{margin-bottom:var(--space-lg)}.brake-timer-label{font-size:11px;color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.08em;margin-bottom:var(--space-sm)}.brake-timer-value{font-family:var(--font-mono);font-size:42px;font-weight:700;color:var(--color-danger);letter-spacing:.05em;animation:countdownPulse 1s ease-in-out infinite}.brake-timer-bar{width:100%;height:4px;background:var(--color-bg-elevated);border-radius:var(--radius-full);margin-top:var(--space-sm);overflow:hidden}.brake-timer-bar-fill{height:100%;background:linear-gradient(90deg,var(--color-danger),var(--color-warning));border-radius:var(--radius-full);transition:width 1s linear}.brake-risk-badge{display:inline-flex;align-items:center;gap:var(--space-xs);background:var(--color-danger-bg);color:var(--color-danger);font-size:12px;font-weight:600;padding:4px 12px;border-radius:var(--radius-full);margin-bottom:var(--space-lg);font-family:var(--font-mono)}.btn-dismiss{width:100%;padding:12px;background:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-secondary);font-family:var(--font-display);font-size:13px;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.btn-dismiss:hover{background:var(--color-surface);border-color:var(--color-border-hover);color:var(--color-text-primary)}.success-toast{position:fixed;bottom:32px;left:50%;transform:translateX(-50%);background:var(--color-bg-card);border:1px solid var(--color-success);border-radius:var(--radius-lg);padding:var(--space-md) var(--space-xl);display:flex;align-items:center;gap:var(--space-sm);font-size:14px;font-weight:500;color:var(--color-success);box-shadow:0 0 20px rgba(34,197,94,.2);z-index:999;animation:fadeInUp .5s var(--ease-spring) both}.success-toast-icon{width:24px;height:24px;background:var(--color-success-bg);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px}.header-bar{justify-content:space-between;padding:var(--space-md) var(--space-xl);background:var(--color-bg-glass);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--color-border);position:-webkit-sticky;position:sticky;top:0;z-index:50}.header-bar,.header-title{display:flex;align-items:center}.header-title{font-size:15px;font-weight:600;letter-spacing:-.02em;gap:var(--space-sm)}.header-badge{font-size:10px;font-family:var(--font-mono);font-weight:500;background:var(--color-accent-glow);color:var(--color-accent);padding:2px 8px;border-radius:var(--radius-full);border:1px solid rgba(20,184,166,.2)}.skeleton{background:linear-gradient(90deg,var(--color-bg-elevated) 25%,var(--color-surface) 50%,var(--color-bg-elevated) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:var(--radius-sm)}.header-tech-btn{display:flex;align-items:center;gap:6px;padding:6px 14px;background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-full);color:var(--color-text-secondary);font-family:var(--font-display);font-size:12px;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.header-tech-btn:hover{box-shadow:0 0 12px var(--color-accent-glow)}.header-tech-btn.active,.header-tech-btn:hover{border-color:var(--color-accent);color:var(--color-accent)}.header-tech-btn.active{background:var(--color-accent-glow)}.techstack-overlay{background:var(--color-bg-secondary);border-bottom:1px solid var(--color-border);padding:var(--space-lg) var(--space-xl);animation:slideDown .4s var(--ease-out-expo) both;max-height:70vh;overflow-y:auto}.techstack-panel{max-width:1200px;margin:0 auto}.techstack-tabs{display:flex;gap:var(--space-xs);margin-bottom:var(--space-lg);padding:4px;background:var(--color-bg-card);border-radius:var(--radius-lg);border:1px solid var(--color-border)}.techstack-tab{flex:1 1;display:flex;align-items:center;justify-content:center;gap:6px;padding:10px 16px;background:transparent;border:none;border-radius:var(--radius-md);color:var(--color-text-tertiary);font-family:var(--font-display);font-size:13px;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.techstack-tab:hover{color:var(--color-text-secondary);background:var(--color-bg-elevated)}.techstack-tab.active{background:var(--color-accent-glow);color:var(--color-accent);box-shadow:inset 0 0 0 1px rgba(20,184,166,.2)}.techstack-tab-icon{font-size:15px}.techstack-content{animation:fadeIn .3s var(--ease-out-expo) both}.stack-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));grid-gap:var(--space-md);gap:var(--space-md)}.stack-group{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-lg);transition:all var(--transition-normal);position:relative;overflow:hidden;animation:fadeInUp .5s var(--ease-out-expo) both}.stack-group:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:var(--group-color);opacity:.6}.stack-group:hover{border-color:var(--color-border-hover);transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,0,0,.3)}.stack-group-header{display:flex;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-md);padding-bottom:var(--space-sm);border-bottom:1px solid var(--color-divider)}.stack-group-icon{font-size:20px}.stack-group-title{font-size:15px;font-weight:700;letter-spacing:-.02em;color:var(--color-text-primary)}.stack-group-items{gap:var(--space-sm)}.stack-group-items,.stack-item{display:flex;flex-direction:column}.stack-item{gap:2px;padding:var(--space-sm) var(--space-md);background:var(--color-bg-elevated);border-radius:var(--radius-sm);border:1px solid transparent;transition:all var(--transition-fast)}.stack-item:hover{border-color:var(--color-border-hover);background:var(--color-surface)}.stack-item-top{display:flex;align-items:center;justify-content:space-between}.stack-item-name{font-size:13px;font-weight:600;color:var(--color-text-primary)}.stack-item-badge{font-size:10px;font-family:var(--font-mono);font-weight:600;padding:1px 8px;border-radius:var(--radius-full);border:1px solid;opacity:.8}.stack-item-desc{font-size:11px;color:var(--color-text-tertiary)}.db-schema{display:flex;flex-direction:column;gap:var(--space-lg)}.db-er-diagram{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-lg) var(--space-xl);text-align:center;animation:fadeInUp .5s var(--ease-out-expo) both}.db-er-title{font-size:14px;font-weight:600;color:var(--color-text-secondary);margin-bottom:var(--space-md);text-transform:uppercase;letter-spacing:.08em;font-family:var(--font-mono)}.db-er-flow{display:flex;align-items:center;justify-content:center;gap:var(--space-sm);flex-wrap:wrap}.db-er-node{padding:8px 18px;background:var(--color-bg-elevated);border:2px solid var(--node-color);border-radius:var(--radius-md);font-family:var(--font-mono);font-size:13px;font-weight:600;color:var(--node-color);box-shadow:0 0 12px color-mix(in srgb,var(--node-color) 20%,transparent);transition:all var(--transition-fast)}.db-er-node:hover{transform:translateY(-2px);box-shadow:0 0 20px color-mix(in srgb,var(--node-color) 35%,transparent)}.db-er-arrow{font-family:var(--font-mono);font-size:12px;color:var(--color-text-tertiary);letter-spacing:.1em}.db-tables{display:flex;flex-direction:column;gap:var(--space-sm)}.db-table-card{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden;transition:all var(--transition-fast);animation:fadeInUp .4s var(--ease-out-expo) both;position:relative}.db-table-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--table-color)}.db-table-card:hover{border-color:var(--color-border-hover)}.db-table-card.expanded{box-shadow:0 4px 16px rgba(0,0,0,.3)}.db-table-header{width:100%;display:flex;align-items:center;justify-content:space-between;padding:var(--space-md) var(--space-lg);padding-left:20px;background:transparent;border:none;color:var(--color-text-primary);cursor:pointer;font-family:var(--font-display);transition:background var(--transition-fast)}.db-table-header:hover{background:var(--color-bg-elevated)}.db-table-name{display:flex;align-items:center;gap:var(--space-sm);font-weight:600;font-size:14px}.db-table-icon{font-size:16px}.db-table-count{font-size:11px;font-family:var(--font-mono);color:var(--color-text-tertiary);background:var(--color-bg-elevated);padding:2px 8px;border-radius:var(--radius-full)}.db-table-chevron{font-size:14px;color:var(--color-text-tertiary);transition:transform var(--transition-fast)}.db-table-chevron.open{transform:rotate(180deg)}.db-table-body{padding:0 var(--space-lg) var(--space-lg);padding-left:20px;animation:slideDown .3s var(--ease-out-expo) both}.db-columns-table{width:100%;border-collapse:collapse;font-size:12px}.db-columns-table th{text-align:left;color:var(--color-text-tertiary);font-weight:500;font-size:10px;text-transform:uppercase;letter-spacing:.08em;font-family:var(--font-mono)}.db-columns-table td,.db-columns-table th{padding:6px 12px;border-bottom:1px solid var(--color-divider)}.db-columns-table tr:last-child td{border-bottom:none}.db-col-name{font-weight:500;color:var(--color-text-primary)}.db-col-name,.db-col-type{font-family:var(--font-mono)}.db-col-type{color:var(--color-accent-light);font-size:11px}.db-key{font-size:10px;font-family:var(--font-mono);font-weight:600;padding:1px 6px;border-radius:3px}.db-key.pk{background:rgba(245,158,11,.15);color:#f59e0b}.db-key.fk{background:rgba(99,102,241,.15);color:#818cf8;font-size:9px}.db-relations{display:flex;align-items:center;gap:var(--space-xs);margin-top:var(--space-sm);flex-wrap:wrap}.db-relations-label{font-size:11px;color:var(--color-text-tertiary);font-weight:500}.db-relation-tag{font-size:10px;font-family:var(--font-mono);background:var(--color-bg-elevated);border:1px solid var(--color-border);padding:2px 8px;border-radius:var(--radius-sm);color:var(--color-text-secondary)}.pipeline-arch{display:flex;flex-direction:column;gap:var(--space-md)}.pipeline-arch-title{font-size:18px;font-weight:700;letter-spacing:-.02em}.pipeline-arch-desc{font-size:13px;color:var(--color-text-secondary);margin-bottom:var(--space-sm)}.pipeline-arch-steps{display:flex;flex-direction:column;gap:0;position:relative}.pipeline-arch-step{display:flex;align-items:flex-start;gap:var(--space-md);padding:var(--space-md) var(--space-lg);background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-md);margin-bottom:var(--space-sm);position:relative;transition:all var(--transition-fast);animation:fadeInUp .4s var(--ease-out-expo) both}.pipeline-arch-step:hover{border-color:var(--step-color);box-shadow:0 0 16px color-mix(in srgb,var(--step-color) 15%,transparent);transform:translateX(4px)}.pipeline-arch-step-number{width:40px;height:40px;border-radius:var(--radius-md);background:color-mix(in srgb,var(--step-color) 15%,transparent);border:1px solid color-mix(in srgb,var(--step-color) 30%,transparent);display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0}.pipeline-arch-step-info{flex:1 1}.pipeline-arch-step-label{font-size:14px;font-weight:600;display:flex;align-items:center;gap:var(--space-sm)}.pipeline-arch-step-num{font-size:10px;font-family:var(--font-mono);color:var(--step-color);background:color-mix(in srgb,var(--step-color) 10%,transparent);padding:2px 8px;border-radius:var(--radius-full);font-weight:600}.pipeline-arch-step-desc{font-size:12px;color:var(--color-text-tertiary);margin-top:4px;font-family:var(--font-mono)}.pipeline-arch-connector{display:none}.ai-features-card{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-lg);animation:fadeInUp .5s var(--ease-out-expo) .2s both}.ai-features-title{font-size:14px;font-weight:600;margin-bottom:var(--space-md)}.ai-features-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));grid-gap:var(--space-sm);gap:var(--space-sm)}.ai-feature{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:var(--color-bg-elevated);border-radius:var(--radius-sm);border:1px solid var(--color-border)}.ai-feature-name{font-family:var(--font-mono);font-size:11px;font-weight:500;color:var(--color-accent-light)}.ai-feature-type{font-size:10px;font-family:var(--font-mono);color:var(--color-text-tertiary);background:var(--color-bg-card);padding:1px 6px;border-radius:3px}.api-view{display:flex;flex-direction:column;gap:var(--space-md)}.api-view-title{font-size:18px;font-weight:700;letter-spacing:-.02em}.api-view-base{display:flex;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-sm)}.api-base-label{font-size:11px;color:var(--color-text-tertiary);font-weight:500;text-transform:uppercase;letter-spacing:.06em}.api-base-url{font-family:var(--font-mono);font-size:12px;color:var(--color-accent);background:var(--color-accent-glow);padding:4px 12px;border-radius:var(--radius-sm);border:1px solid rgba(20,184,166,.15)}.api-endpoints{display:flex;flex-direction:column;gap:var(--space-xs)}.api-endpoint{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-sm) var(--space-md);background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-sm);transition:all var(--transition-fast);animation:fadeInUp .3s var(--ease-out-expo) both}.api-endpoint:hover{border-color:var(--color-border-hover);transform:translateX(4px)}.api-method{font-family:var(--font-mono);font-size:11px;font-weight:700;padding:3px 10px;border-radius:var(--radius-sm);min-width:46px;text-align:center}.api-endpoint-info{display:flex;align-items:center;gap:var(--space-md);flex:1 1}.api-path{font-family:var(--font-mono);font-size:13px;color:var(--color-text-primary);font-weight:500;min-width:200px}.api-desc{font-size:12px;color:var(--color-text-tertiary)}.api-schema-card{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden;animation:fadeInUp .4s var(--ease-out-expo) .1s both}.api-schema-title{font-weight:600;padding:var(--space-sm) var(--space-md);background:var(--color-bg-elevated);border-bottom:1px solid var(--color-border);color:var(--color-text-secondary)}.api-schema-code,.api-schema-title{font-size:12px;font-family:var(--font-mono)}.api-schema-code{padding:var(--space-md);line-height:1.7;color:var(--color-text-primary);margin:0;overflow-x:auto}@media (max-width:1024px){.app-container{grid-template-columns:1fr;grid-template-rows:auto 1fr}.app-container:before{display:none}.panel-left{padding:var(--space-lg)}.phone-frame{width:100%;max-width:380px;min-height:500px;border-radius:var(--radius-xl)}}