:root{--color-deep-ocean:#091124;--color-deep-ocean-alt:#0c162e;--color-navy:#122345;--color-navy-light:#1a305b;--color-royal-blue:#233d72;--color-ocean-blue:#2a4a88;--color-bright-blue:#32589e;--color-gold-dark:#b8860b;--color-gold:#d4af37;--color-gold-bright:#f1c40f;--color-gold-light:#f9e79f;--color-white:#fff;--color-text-primary:#eaecef;--color-text-secondary:#aab7cc;--color-text-muted:#7a89a3;--color-border:#d4af3726;--color-border-hover:#d4af3759;--color-success:#2ecc71;--color-warning:#f39c12;--color-error:#e74c3c;--glass-bg:#12234599;--glass-bg-light:#1a305b66;--glass-border:#d4af3726;--glass-shadow:0 8px 32px #0006;--glass-blur:blur(20px);--gradient-primary:linear-gradient(135deg, #b8860b, #f1c40f);--gradient-accent:linear-gradient(135deg, #122345, #d4af37, #f1c40f);--gradient-bg:linear-gradient(180deg, #091124 0%, #0c162e 50%, #122345 100%);--gradient-card:linear-gradient(135deg, #1a305b80, #122345cc);--gradient-glow:radial-gradient(ellipse at 50% 0%, #d4af3726 0%, transparent 60%);--font-sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:"JetBrains Mono", "Fira Code", "Cascadia Code", "Consolas", 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:20px;--radius-full:9999px;--transition-fast:.15s cubic-bezier(.4, 0, .2, 1);--transition-base:.25s cubic-bezier(.4, 0, .2, 1);--transition-slow:.4s cubic-bezier(.4, 0, .2, 1);--z-base:1;--z-dropdown:10;--z-sticky:20;--z-modal:100}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px}body{font-family:var(--font-sans);background:var(--gradient-bg);color:var(--color-text-primary);min-height:100vh;line-height:1.6;overflow-x:hidden}body:before{content:"";pointer-events:none;z-index:0;background:radial-gradient(#2196f314 0%,#0000 70%);width:800px;height:500px;position:fixed;top:-200px;left:50%;transform:translate(-50%)}#root{z-index:var(--z-base);position:relative}a{color:var(--color-sky-blue);transition:color var(--transition-fast);text-decoration:none}a:hover{color:var(--color-light-blue)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--color-deep-ocean)}::-webkit-scrollbar-thumb{background:var(--color-navy-light);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--color-ocean-blue)}::selection{color:var(--color-white);background:#2196f34d}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}@keyframes waveFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.animate-fade-in{animation:fadeIn .4s var(--transition-base) forwards}.animate-slide-up{animation:slideUp .5s var(--transition-base) forwards}.header{padding:var(--space-xl) var(--space-lg);position:relative;overflow:hidden}.header-bg-orb{pointer-events:none;background:radial-gradient(#d4af371f 0%,#0000 70%);width:700px;height:400px;position:absolute;top:-100px;left:50%;transform:translate(-50%)}.header-content{justify-content:space-between;align-items:center;gap:var(--space-lg);z-index:1;max-width:1200px;margin:0 auto;display:flex;position:relative}.header-brand{align-items:center;gap:var(--space-lg);display:flex}.header-logo-wrapper{flex-shrink:0;position:relative}.header-logo{border-radius:var(--radius-lg);object-fit:contain;filter:drop-shadow(0 4px 12px #d4af374d);width:64px;height:64px;animation:4s ease-in-out infinite waveFloat}.header-logo-glow{border-radius:var(--radius-xl);pointer-events:none;background:radial-gradient(circle,#d4af3733 0%,#0000 70%);animation:3s ease-in-out infinite pulse;position:absolute;inset:-8px}.header-text{flex-direction:column;gap:2px;display:flex}.header-title{align-items:baseline;gap:var(--space-sm);line-height:1.2;display:flex}.header-title-main{background:var(--gradient-primary);-webkit-text-fill-color:transparent;letter-spacing:-.02em;-webkit-background-clip:text;background-clip:text;font-size:1.4rem;font-weight:800}.header-title-sub{color:var(--color-text-secondary);letter-spacing:-.01em;font-size:1.25rem;font-weight:300}.header-description{color:var(--color-text-muted);letter-spacing:.02em;font-size:.85rem;font-weight:400}.header-info{align-items:flex-end;gap:var(--space-sm);flex-direction:column;display:flex}.header-badge{align-items:center;gap:var(--space-sm);padding:var(--space-xs) var(--space-md);background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);border-radius:var(--radius-full);color:var(--color-gold-light);font-size:.8rem;font-weight:500;display:flex}.badge-dot{background:var(--color-success);border-radius:50%;width:8px;height:8px;animation:2s ease-in-out infinite pulse;box-shadow:0 0 8px #4caf5080}.header-meta{gap:var(--space-md);display:flex}.meta-item{color:var(--color-text-muted);cursor:default;align-items:center;gap:4px;font-size:.75rem;display:flex}.meta-item svg{opacity:.6}@media (width<=768px){.header-content{text-align:center;flex-direction:column}.header-brand{gap:var(--space-md);flex-direction:column}.header-title{flex-direction:column;align-items:center;gap:0}.header-info{align-items:center}.header-logo{width:56px;height:56px}.header-title-main,.header-title-sub{font-size:1.4rem}}.tool-selector{max-width:1200px;padding:0 var(--space-lg);margin:0 auto}.tool-tabs{gap:var(--space-xs);padding:var(--space-xs);background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);border-radius:var(--radius-lg);scrollbar-width:none;display:flex;overflow-x:auto}.tool-tabs::-webkit-scrollbar{display:none}.tool-tab{align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);color:var(--color-text-secondary);font-family:var(--font-sans);cursor:pointer;white-space:nowrap;transition:all var(--transition-fast);background:0 0;border:1px solid #0000;flex:1;justify-content:center;min-width:100px;font-size:.85rem;font-weight:500;display:flex;position:relative}.tool-tab:hover:not(.disabled){color:var(--color-text-primary);border-color:var(--color-border);background:#d4af3714}.tool-tab.active{color:var(--color-white);background:var(--gradient-primary);border-color:#0000;box-shadow:0 4px 16px #d4af3740}.tool-tab.active .tool-icon{filter:brightness(1.2)}.tool-tab.disabled{opacity:.35;cursor:not-allowed}.tool-icon{font-size:1.1rem;line-height:1}.tool-name{font-weight:500}.tool-unavailable{text-transform:uppercase;color:var(--color-error);border-radius:var(--radius-sm);letter-spacing:.05em;background:#ef535026;padding:1px 5px;font-size:.6rem;font-weight:700}@media (width<=768px){.tool-selector{padding:0 var(--space-md)}.tool-tab{padding:var(--space-sm) var(--space-md);flex:none;min-width:auto}.tool-name{display:none}.tool-icon{font-size:1.3rem}.tool-tab.active .tool-name{display:inline}}.input-form{max-width:1200px;padding:var(--space-lg);margin:0 auto}.form-main{gap:var(--space-sm);align-items:stretch;display:flex}.input-wrapper{flex:1;align-items:center;display:flex;position:relative}.input-icon{left:var(--space-md);color:var(--color-text-muted);pointer-events:none;z-index:2;align-items:center;display:flex;position:absolute}.target-input{width:100%;padding:var(--space-md) var(--space-md) var(--space-md) 44px;background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);border-radius:var(--radius-md);color:var(--color-text-primary);font-family:var(--font-mono);transition:all var(--transition-fast);outline:none;font-size:.9rem}.target-input:focus{border-color:var(--color-bright-blue);box-shadow:0 0 0 3px #d4af371f,0 0 20px #d4af3714}.target-input::placeholder{color:var(--color-text-muted);font-family:var(--font-sans);font-size:.85rem}.target-input:disabled{opacity:.6;cursor:not-allowed}.input-clear{right:var(--space-sm);color:var(--color-text-muted);cursor:pointer;padding:var(--space-xs);border-radius:var(--radius-sm);transition:all var(--transition-fast);z-index:2;background:0 0;border:none;align-items:center;display:flex;position:absolute}.input-clear:hover{color:var(--color-text-primary);background:#ffffff0d}.form-options{gap:var(--space-sm);display:flex}.option-group{flex-direction:column;gap:2px;display:flex}.option-label{text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-muted);padding-left:2px;font-size:.65rem;font-weight:600}.option-select{padding:var(--space-sm) var(--space-md);padding-right:var(--space-xl);background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);border-radius:var(--radius-md);color:var(--color-text-primary);font-family:var(--font-sans);cursor:pointer;transition:border-color var(--transition-fast);appearance:none;background-image:url("data:image/svg+xml,%3Csvg width='10' height='6' viewBox='0 0 10 6' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1L5 5L9 1' stroke='%238B9DC3' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:right 10px center;background-repeat:no-repeat;outline:none;min-width:80px;font-size:.85rem}.option-select:focus{border-color:var(--color-bright-blue)}.option-select option{background:var(--color-deep-ocean);color:var(--color-text-primary)}.execute-btn{align-items:center;gap:var(--space-sm);padding:var(--space-md) var(--space-xl);background:var(--gradient-primary);border-radius:var(--radius-md);color:var(--color-white);font-family:var(--font-sans);cursor:pointer;white-space:nowrap;transition:all var(--transition-fast);border:none;font-size:.9rem;font-weight:600;display:flex;box-shadow:0 4px 16px #d4af3740}.execute-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 24px #d4af3759}.execute-btn:active:not(:disabled){transform:translateY(0)}.execute-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.execute-btn.running{background:var(--color-navy-light);box-shadow:none}.spinner{border:2px solid #fff3;border-top-color:#fff;border-radius:50%;width:16px;height:16px;animation:.7s linear infinite spin}.form-hint{margin-top:var(--space-sm);color:var(--color-text-muted);padding-left:2px;font-size:.78rem}.download-test-container{align-items:center;gap:var(--space-md);padding:var(--space-lg);background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);border-radius:var(--radius-md);flex-direction:column;display:flex}.download-buttons{gap:var(--space-md);flex-wrap:wrap;justify-content:center;display:flex}.download-btn{text-decoration:none}@media (width<=768px){.form-main{flex-direction:column}.form-options{flex-wrap:wrap}.execute-btn{justify-content:center}}.terminal-empty{max-width:1200px;padding:var(--space-3xl) var(--space-lg);align-items:center;gap:var(--space-md);flex-direction:column;margin:0 auto;animation:.5s fadeIn;display:flex}.empty-icon{color:var(--color-text-muted);opacity:.3;animation:4s ease-in-out infinite waveFloat}.empty-text{color:var(--color-text-secondary);font-size:1rem;font-weight:500}.empty-hint{color:var(--color-text-muted);font-size:.82rem}.terminal-container{max-width:1200px;padding:0 var(--space-lg);margin:0 auto;animation:.3s slideUp;position:relative}.terminal-header{align-items:center;gap:var(--space-md);padding:var(--space-sm) var(--space-md);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);border-radius:var(--radius-md) var(--radius-md) 0 0;background:#0d1b2ae6;border-bottom:none;display:flex}.terminal-dots{gap:6px;display:flex}.dot{border-radius:50%;width:12px;height:12px}.dot.red{background:#ff5f57}.dot.yellow{background:#ffbd2e}.dot.green{background:#28ca41}.terminal-title{align-items:center;gap:var(--space-md);flex:1;font-size:.8rem;display:flex}.terminal-tool{color:var(--color-text-secondary);font-weight:500}.terminal-status{align-items:center;gap:4px;font-size:.72rem;font-weight:600;display:flex}.terminal-status.running{color:var(--color-warning);animation:1.5s infinite pulse}.terminal-status.done{color:var(--color-success)}.terminal-actions{gap:var(--space-xs);display:flex}.terminal-btn{border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-muted);font-family:var(--font-sans);cursor:pointer;transition:all var(--transition-fast);background:#ffffff0d;align-items:center;gap:4px;padding:4px 10px;font-size:.72rem;font-weight:500;display:flex}.terminal-btn:hover{color:var(--color-text-primary);border-color:var(--color-border-hover);background:#ffffff1a}.terminal-btn.copied{color:var(--color-success);border-color:#4caf504d}.terminal-btn:disabled{opacity:.3;cursor:not-allowed}.terminal-body{border:1px solid var(--glass-border);border-radius:0 0 var(--radius-md) var(--radius-md);padding:var(--space-md) 0;min-height:200px;max-height:500px;font-family:var(--font-mono);background:#050a14f2;border-top:none;font-size:.82rem;line-height:1.7;overflow:auto}.terminal-line{padding:1px var(--space-md);transition:background var(--transition-fast);display:flex}.terminal-line:hover{background:#2196f30a}.terminal-line.error{background:#ef53500f}.terminal-line.error .line-content{color:var(--color-error)}.line-number{text-align:right;width:40px;padding-right:var(--space-md);color:var(--color-text-muted);opacity:.4;-webkit-user-select:none;user-select:none;flex-shrink:0;font-size:.75rem}.line-content{color:var(--color-pale-blue);white-space:pre;word-break:break-all}.cursor-line{opacity:1}.cursor-blink{color:var(--color-bright-blue);animation:1s step-end infinite blink}.scroll-bottom-btn{padding:var(--space-xs) var(--space-md);background:var(--color-ocean-blue);border-radius:var(--radius-full);color:#fff;font-family:var(--font-sans);cursor:pointer;transition:all var(--transition-fast);z-index:5;border:none;font-size:.75rem;font-weight:600;position:absolute;bottom:20px;left:50%;transform:translate(-50%);box-shadow:0 4px 16px #0006}.scroll-bottom-btn:hover{background:var(--color-bright-blue);transform:translate(-50%)translateY(-2px)}@media (width<=768px){.terminal-container{padding:0 var(--space-md)}.terminal-body{max-height:400px;font-size:.75rem}.line-number{width:30px;font-size:.7rem}}.server-info-wrapper{max-width:1200px;padding:0 var(--space-lg);margin:0 auto}.server-info-toggle{align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-muted);font-family:var(--font-sans);cursor:pointer;transition:all var(--transition-fast);background:0 0;width:100%;font-size:.8rem;font-weight:500;display:flex}.server-info-toggle:hover{color:var(--color-text-secondary);border-color:var(--color-border-hover);background:#ffffff05}.chevron{transition:transform var(--transition-base);margin-left:auto}.chevron.open{transform:rotate(180deg)}.server-info-panel{margin-top:var(--space-sm)}.info-grid{gap:var(--space-md);grid-template-columns:repeat(auto-fit,minmax(300px,1fr));display:grid}.info-card{background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);border-radius:var(--radius-md);padding:var(--space-md)}.info-card-header{align-items:center;gap:var(--space-sm);color:var(--color-sky-blue);margin-bottom:var(--space-md);padding-bottom:var(--space-sm);border-bottom:1px solid var(--color-border);font-size:.82rem;font-weight:600;display:flex}.info-rows{gap:var(--space-sm);flex-direction:column;display:flex}.info-row{justify-content:space-between;align-items:flex-start;gap:var(--space-md);display:flex}.info-label{color:var(--color-text-muted);flex-shrink:0;font-size:.78rem}.info-value{color:var(--color-text-primary);text-align:right;word-break:break-all;font-size:.78rem}.info-value.mono{font-family:var(--font-mono);font-size:.75rem}.info-addresses{flex-direction:column;align-items:flex-end;gap:2px;display:flex}.info-tools{gap:var(--space-sm);flex-wrap:wrap;display:flex}.tool-badge{border-radius:var(--radius-full);text-transform:capitalize;align-items:center;gap:5px;padding:3px 10px;font-size:.72rem;font-weight:600;display:flex}.tool-badge.available{color:var(--color-success);background:#4caf501a;border:1px solid #4caf5033}.tool-badge.unavailable{color:var(--color-error);background:#ef53501a;border:1px solid #ef535033}.tool-dot{border-radius:50%;width:6px;height:6px}.tool-dot.on{background:var(--color-success);box-shadow:0 0 6px #4caf5066}.tool-dot.off{background:var(--color-error)}@media (width<=768px){.server-info-wrapper{padding:0 var(--space-md)}.info-grid{grid-template-columns:1fr}}.footer{padding:var(--space-xl) var(--space-lg);border-top:1px solid var(--color-border);margin-top:auto}.footer-content{justify-content:space-between;align-items:center;gap:var(--space-md);max-width:1200px;margin:0 auto;display:flex}.footer-brand{align-items:center;gap:var(--space-sm);display:flex}.footer-logo{object-fit:contain;opacity:.7;border-radius:6px;width:24px;height:24px}.footer-name{color:var(--color-text-muted);font-size:.8rem;font-weight:600}.footer-info{align-items:center;gap:var(--space-sm);display:flex}.footer-text{color:var(--color-text-muted);font-size:.75rem}.footer-text a{color:var(--color-text-secondary);transition:color var(--transition-fast);font-weight:500}.footer-text a:hover{color:var(--color-sky-blue)}.footer-divider{color:var(--color-text-muted);opacity:.4}@media (width<=768px){.footer-content{text-align:center;gap:var(--space-sm);flex-direction:column}}.app{flex-direction:column;min-height:100vh;display:flex}.main-content{flex-direction:column;flex:1;display:flex}.content-sections{gap:var(--space-lg);padding-bottom:var(--space-2xl);flex-direction:column;display:flex}.section-tools{animation:.3s .1s both fadeIn}.section-input{animation:.3s .2s both fadeIn}.section-output{animation:.3s .3s both fadeIn}.section-server{animation:.3s .4s both fadeIn}
