@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&family=Outfit:wght@400;600;700&family=JetBrains+Mono:wght@400;500&display=swap";:root{--bg-base:#080b12;--bg-surface:#0d1117;--bg-elevated:#161b22;--bg-hover:#1c2332;--border:#21262d;--border-focus:#388bfd;--text-primary:#e6edf3;--text-secondary:#7d8590;--text-muted:#484f58;--accent:#2f81f7;--accent-glow:#2f81f726;--success:#3fb950;--success-glow:#3fb95026;--warning:#d29922;--danger:#f85149;--danger-glow:#f8514926;--purple:#8b5cf6;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--radius-xl:24px;--shadow-sm:0 1px 3px #0006;--shadow-md:0 4px 16px #00000080;--shadow-lg:0 8px 32px #0009}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{background:var(--bg-base);height:100%;color:var(--text-primary);-webkit-font-smoothing:antialiased;font-family:Inter,system-ui,sans-serif;font-size:14px;line-height:1.6}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}a{color:var(--accent);text-decoration:none}button{cursor:pointer;border:none;font-family:inherit}.app-shell{height:100vh;display:flex;overflow:hidden}.sidebar{background:var(--bg-surface);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;width:220px;padding:16px 0;display:flex}.sidebar-logo{border-bottom:1px solid var(--border);align-items:center;gap:10px;margin-bottom:8px;padding:0 16px 20px;display:flex}.sidebar-logo .logo-icon{background:linear-gradient(135deg, var(--accent), var(--purple));border-radius:var(--radius-sm);justify-content:center;align-items:center;width:32px;height:32px;font-size:16px;display:flex}.sidebar-logo .logo-text{letter-spacing:-.3px;font-size:15px;font-weight:700}.sidebar-logo .logo-sub{color:var(--text-secondary);font-size:10px}.nav-section{margin-bottom:4px;padding:4px 8px}.nav-section-label{text-transform:uppercase;letter-spacing:1px;color:var(--text-muted);padding:8px 8px 4px;font-size:10px;font-weight:600}.nav-item{border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;align-items:center;gap:10px;padding:8px 10px;font-size:13px;font-weight:500;transition:all .15s;display:flex}.nav-item:hover{background:var(--bg-hover);color:var(--text-primary)}.nav-item.active{background:var(--accent-glow);color:var(--accent)}.nav-item svg{flex-shrink:0}.main-content{flex-direction:column;flex:1;display:flex;overflow-y:auto}.auth-shell{background:radial-gradient(circle at top, #2f81f71f, transparent 32%), var(--bg-base);flex-direction:column;justify-content:center;align-items:center;gap:18px;min-height:100vh;padding:24px;display:flex}.auth-switch{border:1px solid var(--border);background:#0d1117eb;border-radius:999px;gap:8px;padding:6px;display:inline-flex}.auth-card{width:100%;max-width:480px;box-shadow:var(--shadow-md);padding:28px}.auth-title{font-size:28px;font-weight:800;line-height:1.1}.auth-subtitle{color:var(--text-secondary);margin-top:8px;margin-bottom:20px;font-size:14px}.stack-list{flex-direction:column;gap:12px;display:flex}.info-row{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:16px;padding:10px 0;display:flex}.info-row:last-child{border-bottom:none}.info-row span{color:var(--text-secondary)}.info-row strong{font-size:13px}.plan-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;display:grid}.plan-card{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-elevated);padding:16px}.plan-card.active{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent-glow)}.plan-card-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.plan-card-name{font-size:18px;font-weight:700}.plan-card-code{color:var(--text-secondary);text-transform:uppercase;margin-top:4px;font-size:11px}.plan-card-price{color:var(--text-primary);margin-top:12px;font-size:24px;font-weight:700}.host-option-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;display:grid}.host-option{text-align:left;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-elevated);color:var(--text-primary);padding:14px}.host-option:hover{border-color:var(--border-focus)}.host-option.active{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent-glow)}.host-option:disabled{opacity:.55;cursor:not-allowed}.host-option-top,.host-option-meta{justify-content:space-between;align-items:center;gap:10px;display:flex}.host-option-sub{color:var(--text-secondary);margin-top:8px;font-size:12px}.host-option-meta{color:var(--text-secondary);margin-top:10px;font-size:12px}.top-bar{border-bottom:1px solid var(--border);background:var(--bg-surface);flex-shrink:0;justify-content:space-between;align-items:center;padding:14px 24px;display:flex}.top-bar h1{font-size:16px;font-weight:600}.top-bar-actions{align-items:center;gap:8px;display:flex}.page-content{flex:1;padding:24px}.card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:20px}.card-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.card-title{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;font-size:13px;font-weight:600}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-bottom:24px;display:grid}.stat-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:16px;transition:border-color .2s;position:relative;overflow:hidden}.stat-card:hover{border-color:var(--border-focus)}.stat-card:before{content:"";height:2px;position:absolute;top:0;left:0;right:0}.stat-card.green:before{background:var(--success)}.stat-card.blue:before{background:var(--accent)}.stat-card.red:before{background:var(--danger)}.stat-card.purple:before{background:var(--purple)}.stat-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px;font-size:11px}.stat-value{font-size:28px;font-weight:700;line-height:1}.stat-value.green{color:var(--success)}.stat-value.blue{color:var(--accent)}.stat-value.red{color:var(--danger)}.stat-value.purple{color:var(--purple)}.stat-sub{color:var(--text-secondary);margin-top:6px;font-size:11px}.node-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px;display:grid}.node-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-md);cursor:pointer;padding:0;transition:all .2s;overflow:hidden}.node-card:hover{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent-glow)}.node-card.online{border-color:var(--success)}.node-card.offline{opacity:.65}.node-card-header{border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:16px;display:flex}.node-status-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px}.node-status-dot.online{background:var(--success);box-shadow:0 0 8px var(--success);animation:2s infinite pulse-green}.node-status-dot.offline{background:var(--text-muted)}.node-status-dot.degraded{background:var(--warning);box-shadow:0 0 8px var(--warning)}@keyframes pulse-green{0%,to{box-shadow:0 0 4px var(--success);opacity:1}50%{box-shadow:0 0 14px var(--success), 0 0 28px var(--success-glow);opacity:.85}}.node-id{font-size:13px;font-weight:600}.node-label{color:var(--text-secondary);margin-top:2px;font-size:11px}.node-card-body{padding:14px 16px}.node-meta{grid-template-columns:1fr 1fr;gap:8px 16px;display:grid}.node-meta-key{color:var(--text-muted);text-transform:uppercase;font-size:10px}.node-meta-val{margin-top:2px;font-family:JetBrains Mono,monospace;font-size:13px;font-weight:500}.node-card-footer{border-top:1px solid var(--border);background:var(--bg-elevated);gap:8px;padding:12px 16px;display:flex}.btn{border-radius:var(--radius-sm);cursor:pointer;border:1px solid #0000;align-items:center;gap:6px;padding:7px 14px;font-size:13px;font-weight:500;transition:all .15s;display:inline-flex}.btn:active{transform:scale(.97)}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:#388bfd}.btn-ghost{color:var(--text-secondary);border-color:var(--border);background:0 0}.btn-ghost:hover{background:var(--bg-hover);color:var(--text-primary)}.btn-danger{color:var(--danger);border-color:var(--danger);background:0 0}.btn-danger:hover{background:var(--danger-glow)}.btn-success{background:var(--success);color:#000}.btn-success:hover{opacity:.9}.btn-sm{padding:4px 10px;font-size:12px}.btn-icon{padding:6px}.btn:disabled{opacity:.4;cursor:not-allowed}.badge{border-radius:12px;align-items:center;padding:2px 8px;font-size:11px;font-weight:600;display:inline-flex}.badge-green{background:var(--success-glow);color:var(--success);border:1px solid #3fb9504d}.badge-red{background:var(--danger-glow);color:var(--danger);border:1px solid #f851494d}.badge-blue{background:var(--accent-glow);color:var(--accent);border:1px solid #2f81f74d}.badge-gray{color:var(--text-secondary);border:1px solid var(--border);background:#ffffff0f}.badge-yellow{color:var(--warning);background:#d2992226;border:1px solid #d299224d}.data-table{border-collapse:collapse;width:100%}.data-table th{text-align:left;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);border-bottom:1px solid var(--border);padding:10px 12px;font-size:11px;font-weight:600}.data-table td{border-bottom:1px solid var(--bg-elevated);padding:12px;font-size:13px}.data-table tr:last-child td{border-bottom:none}.data-table tbody tr:nth-child(2n) td{background:#ffffff05}.data-table tr:hover td{transition:background .12s;background:#38bdf80d!important}.mono{font-family:JetBrains Mono,monospace;font-size:12px}.data-table-wrap{-webkit-overflow-scrolling:touch;border-radius:var(--radius-md);overflow-x:auto}.modal-overlay{z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#000000b3;justify-content:center;align-items:center;animation:.15s fadeIn;display:flex;position:fixed;inset:0}.modal{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);width:480px;max-width:95vw;box-shadow:var(--shadow-lg);padding:28px;animation:.2s slideUp}.modal-title{margin-bottom:20px;font-size:16px;font-weight:700}.modal-actions{justify-content:flex-end;gap:8px;margin-top:24px;display:flex}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.form-group{margin-bottom:16px}.form-label{color:var(--text-secondary);margin-bottom:6px;font-size:12px;font-weight:600;display:block}.form-input{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;color:var(--text-primary);padding:9px 12px;font-family:inherit;font-size:13px;transition:border-color .15s}.form-input:focus{border-color:var(--border-focus);outline:none}.form-input::placeholder{color:var(--text-muted)}.toast-container{z-index:9999;flex-direction:column;gap:8px;display:flex;position:fixed;bottom:24px;right:24px}.toast{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);align-items:center;gap:10px;max-width:360px;padding:12px 16px;font-size:13px;animation:.2s slideUp;display:flex}.toast.success{border-color:var(--success)}.toast.error{border-color:var(--danger)}.vnc-container{border:1px solid var(--border);border-radius:var(--radius-md);background:#050816;width:100%;height:min(72vh,880px);min-height:520px;position:relative;overflow:hidden}.vnc-container iframe{background:#050816;border:none;width:100%;height:100%;display:block}.node-detail-overlay{justify-content:flex-end;align-items:flex-end;padding:0}.node-detail-drawer{background:var(--bg-surface);border-left:1px solid var(--border);flex-direction:column;width:min(860px,92vw);height:100vh;animation:.2s slideUp;display:flex}.node-detail-header{border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:12px;padding:16px 24px;display:flex}.node-detail-tabs{border-bottom:1px solid var(--border);flex-shrink:0;padding:0 24px}.node-detail-content{flex:1;padding:24px;overflow:auto}.node-detail-content.vnc-active{flex-direction:column;display:flex}.node-detail-vnc-shell{flex-direction:column;flex:1;min-height:0;display:flex}.node-detail-vnc-toolbar{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px;display:flex}.node-detail-vnc-label{color:var(--text-secondary);font-size:13px}.node-detail-vnc-frame{flex:1}@media (width<=900px){.vnc-container{height:68vh;min-height:420px}.node-detail-overlay.mobile{justify-content:stretch;align-items:stretch}.node-detail-drawer.mobile{border-left:none;border-radius:0;width:100vw;height:100dvh}.node-detail-header{flex-wrap:wrap;gap:10px;padding:14px 16px}.node-detail-tabs{padding:0 16px}.node-detail-content{padding:16px}.node-detail-content.vnc-active{padding:12px}.node-detail-vnc-toolbar{margin-bottom:10px}.node-detail-vnc-label{font-size:12px}.tabs{scrollbar-width:none;margin-bottom:0;overflow:auto hidden}.tabs::-webkit-scrollbar{display:none}.tab{white-space:nowrap;flex:none;padding:12px 14px}}@media (width<=640px){.vnc-container,.node-detail-vnc-frame{border-radius:8px;height:calc(100dvh - 180px);min-height:320px}.node-detail-header .badge{order:3}}.tabs{border-bottom:1px solid var(--border);gap:0;margin-bottom:20px;display:flex}.tab{color:var(--text-secondary);cursor:pointer;border-bottom:2px solid #0000;margin-bottom:-1px;padding:10px 16px;font-size:13px;font-weight:500;transition:all .15s}.tab:hover{color:var(--text-primary)}.tab.active{color:var(--accent);border-bottom-color:var(--accent)}.spinner{border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:20px;height:20px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.empty-state{text-align:center;color:var(--text-secondary);padding:60px 20px}.empty-state svg{color:var(--text-muted);margin:0 auto 16px}.empty-state h3{color:var(--text-primary);margin-bottom:8px;font-size:16px;font-weight:600}.copy-group{align-items:center;gap:6px;display:flex}.copy-val{background:var(--bg-base);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--accent);word-break:break-all;flex:1;padding:8px 10px;font-family:JetBrains Mono,monospace;font-size:12px}.pulse{animation:2s infinite pulse-green}@supports (padding-bottom:env(safe-area-inset-bottom)){.main-content{padding-bottom:calc(64px + env(safe-area-inset-bottom))}}@media (width<=768px){.toast-container{bottom:calc(72px + env(safe-area-inset-bottom,0px));left:12px;right:12px}.toast{max-width:100%;font-size:13px}.stats-grid{grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:16px}.stat-value{font-size:22px}.card{padding:14px}.page-content{padding:16px}.auth-card{padding:20px}.node-grid{grid-template-columns:1fr;gap:12px}.data-table-wrap{-webkit-overflow-scrolling:touch;overflow-x:auto}.plan-grid,.host-option-grid{grid-template-columns:1fr}.modal{width:95vw;padding:20px}}.nav-item,.tab,.btn{-webkit-user-select:none;user-select:none}html{scroll-behavior:smooth}.main-content{-webkit-overflow-scrolling:touch}@media (width<=768px){.app-shell{overflow:unset;height:auto;min-height:100vh}.main-content{flex:1;overflow-y:auto}}.card-glass{-webkit-backdrop-filter:blur(16px);border-radius:var(--radius-md);background:#0d1117b3;border:1px solid #ffffff14;padding:20px}:root{--cyan:#06b6d4;--cyan-glow:#06b6d426;--accent:#38bdf8;--accent-glow:#38bdf826;--teal:#14b8a6;--teal-glow:#14b8a626;--dur-fast:.12s;--dur-normal:.22s;--dur-slow:.4s;--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-spring:cubic-bezier(.34, 1.56, .64, 1)}.stat-card.cyan:before{background:var(--cyan)}.stat-value.cyan{color:var(--cyan)}.stat-card.teal:before{background:var(--teal)}.stat-value.teal{color:var(--teal)}.page-enter{animation:page-in var(--dur-normal) var(--ease-out) both}@keyframes page-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.skeleton{background:linear-gradient(90deg, var(--bg-elevated) 25%, var(--bg-hover) 50%, var(--bg-elevated) 75%);border-radius:var(--radius-sm);background-size:400% 100%;animation:1.6s infinite shimmer}.skeleton-line{height:14px;margin-bottom:8px}.skeleton-line.wide{width:100%}.skeleton-line.med{width:65%}.skeleton-line.short{width:40%}.skeleton-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:20px}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.num-roll{animation:num-pop var(--dur-normal) var(--ease-spring) both;display:inline-block}@keyframes num-pop{0%{opacity:.3;transform:scale(.85)}60%{transform:scale(1.04)}to{opacity:1;transform:scale(1)}}.btn{position:relative;overflow:hidden}.btn:after{content:"";border-radius:inherit;opacity:0;pointer-events:none;background:#ffffff26;position:absolute;inset:0;transform:scale(0)}.btn:active:after{animation:.4s ease-out forwards ripple}@keyframes ripple{0%{opacity:1;transform:scale(0)}to{opacity:0;transform:scale(2.5)}}.btn-primary{background:linear-gradient(135deg, var(--accent), #60a5fa);box-shadow:0 2px 12px #38bdf84d}.btn-primary:hover{transform:translateY(-1px);box-shadow:0 4px 20px #38bdf880}.btn-primary:active{transform:translateY(0)scale(.97)}.btn-danger:hover{background:var(--danger-glow);box-shadow:0 0 16px #f851494d}.form-input{transition:border-color var(--dur-fast), box-shadow var(--dur-fast)}.form-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #38bdf826}.stat-card{transition:transform var(--dur-normal) var(--ease-out), border-color var(--dur-normal), box-shadow var(--dur-normal)}.stat-card:hover{transform:translateY(-2px);box-shadow:0 8px 24px #00000080}.card-hover{transition:transform var(--dur-normal) var(--ease-out), box-shadow var(--dur-normal)}.card-hover:hover{transform:translateY(-3px);box-shadow:0 12px 40px #0009}.node-card{transition:transform var(--dur-normal) var(--ease-out), border-color var(--dur-normal), box-shadow var(--dur-normal)}.node-card:hover{transform:translateY(-2px);box-shadow:0 8px 32px #0009}.node-card.online:hover{border-color:var(--success);box-shadow:0 0 0 1px var(--success-glow), 0 8px 32px #0009}.node-status-dot.online{animation:2s ease-in-out infinite pulse-green}.node-status-dot.degraded{animation:1.5s ease-in-out infinite pulse-yellow}@keyframes pulse-yellow{0%,to{box-shadow:0 0 4px var(--warning)}50%{box-shadow:0 0 14px var(--warning), 0 0 28px #d2992233}}.nav-item{transition:background var(--dur-fast), color var(--dur-fast), transform var(--dur-fast) var(--ease-spring)}.nav-item:hover{transform:translate(3px)}.nav-item:active{transform:translate(1px)scale(.98)}.nav-item.active{background:linear-gradient(90deg, var(--accent-glow), transparent);color:var(--accent);border-left:2px solid var(--accent)}.mobile-tabbar{-webkit-backdrop-filter:saturate(180%)blur(20px);background:#0d1117eb;border-top:1px solid #ffffff0f;transition:background .3s}.mobile-tab-item{transition:transform var(--dur-fast) var(--ease-spring), color var(--dur-fast)}.mobile-tab-item.active{transform:translateY(-2px)}.mobile-tab-item:active{transform:scale(.9)translateY(0)}.toast{animation:toast-in .3s var(--ease-spring) both;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#161b22eb}@keyframes toast-in{0%{opacity:0;transform:translate(110%)scale(.9)}to{opacity:1;transform:translate(0)scale(1)}}.toast.exit{animation:.25s ease-in forwards toast-out}@keyframes toast-out{to{opacity:0;transform:translate(110%)scale(.9)}}.toast.success{border-left:3px solid var(--success);border-color:var(--success)}.toast.error{border-left:3px solid var(--danger);border-color:var(--danger)}.toast.info{border-left:3px solid var(--accent);border-color:var(--accent)}.modal-overlay{animation:overlay-in var(--dur-normal) ease both;-webkit-backdrop-filter:blur(8px)saturate(.8);backdrop-filter:blur(8px)saturate(.8)}@keyframes overlay-in{0%{opacity:0}to{opacity:1}}.modal{animation:modal-in var(--dur-normal) var(--ease-spring) both;background:#0d1117fa;box-shadow:0 24px 80px #000c,0 0 0 1px #ffffff0f}@keyframes modal-in{0%{opacity:0;transform:scale(.92)translateY(20px)}to{opacity:1;transform:scale(1)translateY(0)}}.node-detail-drawer{animation:drawer-in var(--dur-slow) var(--ease-out) both;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0d1117f7}@keyframes drawer-in{0%{transform:translate(100%)}to{transform:translate(0)}}.node-detail-drawer.closing{animation:drawer-out var(--dur-normal) ease-in both}@keyframes drawer-out{to{transform:translate(100%)}}.card-glass{-webkit-backdrop-filter:blur(20px)saturate(180%);border-radius:var(--radius-lg);background:#0d111799;border:1px solid #ffffff12;padding:20px;position:relative;overflow:hidden}.card-glass:before{content:"";background:linear-gradient(90deg,#0000,#ffffff26,#0000);height:1px;position:absolute;top:0;left:0;right:0}.badge{transition:opacity var(--dur-fast), transform var(--dur-fast)}.tab{transition:color var(--dur-fast);position:relative}.tab:after{content:"";background:var(--accent);height:2px;transition:transform var(--dur-normal) var(--ease-spring);position:absolute;bottom:-1px;left:0;right:0;transform:scaleX(0)}.tab:hover:after{opacity:.5;transform:scaleX(.5)}.tab.active:after{transform:scaleX(1)}.tab.active{border-bottom:none}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#ffffff14;border-radius:99px;transition:background .2s}::-webkit-scrollbar-thumb:hover{background:#ffffff2e}.bg-mesh{background:radial-gradient(ellipse 60% 40% at 20% 20%, #38bdf80f, transparent), radial-gradient(ellipse 50% 50% at 80% 80%, #8b5cf60d, transparent), var(--bg-base)}.hero-stat{font-variant-numeric:tabular-nums;letter-spacing:-1px;background:linear-gradient(135deg, var(--text-primary) 40%, var(--accent) 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:clamp(28px,5vw,42px);font-weight:800;line-height:1}.hero-stat.profit-up{background:linear-gradient(135deg, #a7f3d0, var(--success));-webkit-background-clip:text;background-clip:text}.hero-stat.profit-down{background:linear-gradient(135deg, #fca5a5, var(--danger));-webkit-background-clip:text;background-clip:text}.spinner{border-color:#38bdf833;border-top-color:var(--accent);box-shadow:0 0 16px #38bdf833}.danger-zone{border-radius:var(--radius-md);background:#f851490a;border:1px solid #f851494d;padding:14px 16px}.position-row{border-radius:var(--radius-sm);background:var(--bg-elevated);transition:background var(--dur-fast);grid-template-columns:1fr auto auto auto auto;align-items:center;gap:8px 12px;margin-bottom:6px;padding:10px 12px;display:grid}.position-row:hover{background:var(--bg-hover)}.text-profit{color:var(--success);font-weight:600}.text-loss{color:var(--danger);font-weight:600}.text-mono{font-family:JetBrains Mono,monospace}.btn-loading{pointer-events:none;opacity:.7}.btn-loading:before{content:"";vertical-align:-2px;border:2px solid #fff6;border-top-color:#fff;border-radius:50%;width:12px;height:12px;margin-right:6px;animation:.6s linear infinite spin;display:inline-block}.empty-state .empty-icon{opacity:.25;margin:0 auto 12px;font-size:48px;animation:4s ease-in-out infinite float;display:block}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.notif-dot{background:var(--danger);border-radius:50%;width:7px;height:7px;animation:1.5s ease-in-out infinite notif-pulse;position:absolute;top:2px;right:2px}@keyframes notif-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(1.4)}}.fade-up{animation:fade-up var(--dur-slow) var(--ease-out) both}@keyframes fade-up{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.fade-up-1{animation-delay:50ms}.fade-up-2{animation-delay:.1s}.fade-up-3{animation-delay:.15s}.fade-up-4{animation-delay:.2s}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media (width<=768px){.stat-card:hover,.node-card:hover,.card-hover:hover{transform:none}.nav-item,.btn,.tab{min-height:40px}.mobile-tabbar .mobile-tab-item{min-height:44px}}.btn-warning{color:var(--warning);border-color:var(--warning);background:0 0}.btn-warning:hover{background:#d2992226;box-shadow:0 0 12px #d2992233}.data-table th:first-child,.data-table td:first-child{z-index:1;background:var(--bg-surface);position:sticky;left:0}.data-table tbody tr:hover td:first-child{background:#38bdf80d}.pw-strength-bar{background:var(--bg-elevated);border-radius:2px;height:4px;margin-top:6px;overflow:hidden}.pw-strength-bar-fill{height:100%;transition:width .3s var(--ease-out), background .3s;border-radius:2px}.pw-strength-bar-fill.weak{background:var(--danger)}.pw-strength-bar-fill.medium{background:var(--warning)}.pw-strength-bar-fill.strong{background:var(--success)}.pw-strength-label{color:var(--text-muted);margin-top:4px;font-size:11px}.pw-strength-label.weak{color:var(--danger)}.pw-strength-label.medium{color:var(--warning)}.pw-strength-label.strong{color:var(--success)}.copy-flash{animation:.6s both copy-flash}@keyframes copy-flash{0%{background:#38bdf84d}to{background:0 0}}.search-input-wrap{align-items:center;display:flex;position:relative}.search-input-wrap svg{color:var(--text-muted);pointer-events:none;position:absolute;left:10px}.search-input-wrap .form-input{padding-left:34px}
