:root{--bg-base:#0b0e11;--bg-panel:#14181f;--bg-panel-alt:#1b2027;--bg-hover:#20262e;--bg-elevated:#252b34;--bg-glass:#14181fd9;--border:#262b33;--border-subtle:#1e2329;--border-focus:#f0b90b44;--yellow:#f0b90b;--yellow-dim:#8a6e0f;--yellow-glow:#f0b90b26;--yellow-subtle:#f0b90b14;--green:#0ecb81;--green-dim:#0ecb811f;--green-glow:#0ecb8133;--red:#f6465d;--red-dim:#f6465d1f;--red-glow:#f6465d33;--blue:#1e90ff;--blue-dim:#1e90ff1f;--orange:#f0a030;--purple:#a855f7;--text-1:#eaecef;--text-2:#848e9c;--text-3:#5e6673;--text-4:#474d57;--font-ui:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:"JetBrains Mono", "Roboto Mono", ui-monospace, monospace;--space-xs:2px;--space-sm:4px;--space-md:8px;--space-lg:12px;--space-xl:18px;--space-2xl:24px;--radius-sm:4px;--radius-md:6px;--radius-lg:10px;--radius-xl:14px;--radius-full:999px;--shadow-sm:0 1px 3px #0000004d;--shadow-md:0 4px 12px #0006;--shadow-lg:0 8px 32px #00000080;--shadow-glow-yellow:0 0 20px #f0b90b1a;--shadow-glow-green:0 0 20px #0ecb811a;--transition-fast:.12s ease;--transition-normal:.2s ease;--transition-slow:.35s cubic-bezier(.4, 0, .2, 1);--sidebar-width:190px;--topbar-height:40px;--ticker-height:26px}[data-theme=light]{--bg-base:#f5f5f5;--bg-panel:#fff;--bg-panel-alt:#f0f0f0;--bg-hover:#e8e8e8;--bg-elevated:#ebebeb;--bg-glass:#ffffffe6;--border:#e0e0e0;--border-subtle:#eee;--border-focus:#f0b90b66;--yellow:#d4a200;--yellow-dim:#b8930d;--yellow-glow:#d4a20026;--yellow-subtle:#d4a20014;--green:#0ba360;--green-dim:#0ba3601a;--green-glow:#0ba36026;--red:#e53950;--red-dim:#e539501a;--red-glow:#e5395026;--blue:#1a7fe8;--blue-dim:#1a7fe81a;--text-1:#1a1a1a;--text-2:#666;--text-3:#999;--text-4:#ccc;--shadow-sm:0 1px 3px #00000014;--shadow-md:0 4px 12px #0000001a;--shadow-lg:0 8px 32px #0000001f;--shadow-glow-yellow:0 0 20px #d4a20014;--shadow-glow-green:0 0 20px #0ba36014}[data-theme=light] ::-webkit-scrollbar-thumb{background:#ccc}[data-theme=light] ::-webkit-scrollbar-thumb:hover{background:#aaa}[data-theme=light] .card{box-shadow:0 1px 4px #0000000f}[data-theme=light] .sidebar{box-shadow:2px 0 8px #0000000d}[data-theme=light] .stat-card:after{opacity:.06}[data-theme=light] .modal-overlay{background:#0000004d}[data-theme=light] .modal-box{box-shadow:0 32px 64px #00000026}*,: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:12px;transition:background .3s,color .3s}body{background:var(--bg-base);color:var(--text-1);font-family:var(--font-ui);min-height:100vh;line-height:1.4;transition:background .3s,color .3s;overflow-x:hidden}::selection{background:var(--yellow-dim);color:var(--text-1)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--text-4);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-3)}a{color:var(--yellow);text-decoration:none}a:hover{text-decoration:underline}img{max-width:100%;display:block}#app{min-height:100vh;display:flex}.app-shell{width:100%;min-height:100vh;display:flex}.sidebar{width:var(--sidebar-width);background:var(--bg-panel);border-right:1px solid var(--border);z-index:20;height:100vh;transition:transform var(--transition-slow), background .3s ease;flex-direction:column;flex-shrink:0;padding:10px 6px;font-size:11.5px;display:flex;position:fixed;top:0;left:0;overflow-y:auto}.sidebar-overlay{z-index:19;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0009;display:none;position:fixed;inset:0}.logo{border-bottom:1px solid var(--border);align-items:center;gap:6px;margin-bottom:8px;padding:0 4px 8px;display:flex}.logo-mark{background:linear-gradient(135deg, var(--yellow) 0%, #e6a800 100%);width:24px;height:24px;font-family:var(--font-mono);color:#0b0e11;border-radius:6px;justify-content:center;align-items:center;font-size:11px;font-weight:800;display:flex;box-shadow:0 2px 8px #f0b90b4d}.logo-text{letter-spacing:.2px;font-size:12px;font-weight:700}.logo-sub{color:var(--text-3);letter-spacing:1.2px;font-size:10px;font-weight:500}.nav-group-label{color:var(--text-3);text-transform:uppercase;letter-spacing:1.2px;padding:10px 8px 3px;font-size:9px;font-weight:600}.nav-item{border-radius:var(--radius-sm);color:var(--text-2);cursor:pointer;transition:background var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast);-webkit-user-select:none;user-select:none;border:1px solid #0000;align-items:center;gap:6px;padding:5px 8px;font-size:11.5px;font-weight:500;display:flex}.nav-item:hover{background:var(--bg-hover);color:var(--text-1)}.nav-item.active{background:var(--yellow-subtle);color:var(--yellow);border-color:#f0b90b26}.nav-dot{background:var(--text-4);width:6px;height:6px;transition:background var(--transition-fast), box-shadow var(--transition-fast);border-radius:50%;flex-shrink:0}.nav-item.active .nav-dot{background:var(--yellow);box-shadow:0 0 6px #f0b90b66}.nav-item .status-mini{font-size:9px;font-family:var(--font-mono);color:var(--green);letter-spacing:.5px;margin-left:auto;font-weight:700}.nav-item .status-mini.off{color:var(--text-3)}.sidebar-foot{border-top:1px solid var(--border);color:var(--text-3);margin-top:auto;padding:8px;font-size:10px;line-height:1.5}.main{min-width:0;margin-left:var(--sidebar-width);flex-direction:column;flex:1;display:flex}.ticker-bar{height:var(--ticker-height);background:var(--bg-panel);border-bottom:1px solid var(--border-subtle);flex-shrink:0;align-items:center;display:flex;position:relative;overflow:hidden}.ticker-bar:before,.ticker-bar:after{content:"";z-index:2;pointer-events:none;width:40px;position:absolute;top:0;bottom:0}.ticker-bar:before{background:linear-gradient(90deg, var(--bg-panel), transparent);left:0}.ticker-bar:after{background:linear-gradient(-90deg, var(--bg-panel), transparent);right:0}.ticker-track{white-space:nowrap;gap:20px;animation:50s linear infinite tickerScroll;display:flex}.ticker-item{flex-shrink:0;align-items:center;gap:5px;font-size:10.5px;display:flex}.ticker-symbol{color:var(--text-2);font-weight:600}.ticker-price{font-family:var(--font-mono);font-size:10.5px;font-weight:600}.ticker-change{font-family:var(--font-mono);font-size:10px;font-weight:600}@keyframes tickerScroll{0%{transform:translate(0)}to{transform:translate(-50%)}}.topbar{height:var(--topbar-height);border-bottom:1px solid var(--border);background:var(--bg-panel);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:10;flex-shrink:0;align-items:center;gap:8px;padding:0 12px;display:flex;position:sticky;top:0}.mobile-menu-btn{color:var(--text-2);cursor:pointer;background:0 0;border:none;padding:4px;font-size:20px;display:none}.acct-chip{background:var(--bg-panel-alt);border:1px solid var(--border);transition:border-color var(--transition-fast);border-radius:6px;align-items:center;gap:4px;padding:3px 8px;font-size:10.5px;font-weight:500;display:flex}.acct-chip:hover{border-color:var(--text-4)}.acct-chip .dot{background:var(--green);width:7px;height:7px;box-shadow:0 0 0 3px var(--green-dim);border-radius:50%;animation:2s ease-in-out infinite pulse}.acct-chip .dot.off{background:var(--text-3);box-shadow:none;animation:none}@keyframes pulse{0%,to{opacity:1;box-shadow:0 0 0 3px var(--green-dim)}50%{opacity:.5;box-shadow:0 0 0 6px #0000}}.spacer{flex:1}.topbar-metric{text-align:right}.topbar-metric .lbl{color:var(--text-3);text-transform:uppercase;letter-spacing:.7px;font-size:10px;font-weight:600}.topbar-metric .val{font-family:var(--font-mono);font-size:12px;font-weight:700}.btn{font-family:var(--font-ui);border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-panel-alt);color:var(--text-1);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;align-items:center;gap:4px;padding:5px 10px;font-size:11px;font-weight:600;display:inline-flex}.btn:hover{background:var(--bg-hover);border-color:var(--text-4)}.btn:active{transform:scale(.97)}.btn-primary{background:linear-gradient(135deg, var(--yellow), #e6a800);color:#0b0e11;border-color:var(--yellow);font-weight:700;box-shadow:0 2px 8px #f0b90b33}.btn-primary:hover{background:linear-gradient(135deg, #ffc61a, var(--yellow));box-shadow:0 4px 16px #f0b90b4d}.btn-ghost{border-color:var(--border);background:0 0}.btn-ghost:hover{background:var(--bg-hover)}.btn-danger{background:var(--red-dim);color:var(--red);border-color:#0000}.btn-danger:hover{background:var(--red-glow)}.btn-sm{padding:5px 10px;font-size:11px}.content{flex:1;padding:10px 12px 30px}.view{display:none}.view.active{animation:.25s fadeIn;display:block}@keyframes fadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:8px;display:flex}.page-title{letter-spacing:-.3px;font-size:16px;font-weight:800}.page-desc{color:var(--text-2);margin-top:2px;font-size:11px;line-height:1.4}.grid{gap:6px;display:grid}.grid-4{grid-template-columns:repeat(4,1fr)}.grid-3{grid-template-columns:repeat(3,1fr)}.grid-2{grid-template-columns:1.3fr 1fr}.grid-2-eq{grid-template-columns:1fr 1fr}.card{background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius-md);transition:border-color var(--transition-normal), box-shadow var(--transition-normal), background .3s ease;padding:10px 12px}.card:hover{border-color:var(--border-subtle)}.card-glass{background:var(--bg-glass);-webkit-backdrop-filter:blur(16px)}.card-title{color:var(--text-3);text-transform:uppercase;letter-spacing:.8px;margin-bottom:6px;font-size:10px;font-weight:600}.stat-val{font-family:var(--font-mono);letter-spacing:-.5px;font-size:18px;font-weight:800}.stat-sub{font-size:10px;font-family:var(--font-mono);margin-top:2px;font-weight:500}.stat-card{position:relative;overflow:hidden}.stat-card:after{content:"";opacity:.04;pointer-events:none;border-radius:50%;width:80px;height:80px;position:absolute;top:-30px;right:-30px}.stat-card.accent-green:after{background:var(--green)}.stat-card.accent-yellow:after{background:var(--yellow)}.stat-card.accent-red:after{background:var(--red)}.stat-card.accent-blue:after{background:var(--blue)}.up{color:var(--green)}.down{color:var(--red)}.neutral{color:var(--text-2)}.accent{color:var(--yellow)}table{border-collapse:collapse;width:100%;font-size:11px}th{text-align:left;color:var(--text-3);text-transform:uppercase;letter-spacing:.6px;border-bottom:1px solid var(--border);white-space:nowrap;background:var(--bg-panel);padding:5px 8px;font-size:9.5px;font-weight:600;position:sticky;top:0}td{border-bottom:1px solid var(--border-subtle);font-family:var(--font-mono);white-space:nowrap;padding:4px 8px;font-size:11px}tr:last-child td{border-bottom:none}tbody tr{transition:background var(--transition-fast)}tbody tr:hover{background:var(--bg-hover)}.pill{border-radius:var(--radius-full);font-size:9.5px;font-weight:700;font-family:var(--font-ui);letter-spacing:.3px;align-items:center;gap:3px;padding:1px 7px;display:inline-flex}.pill-long{background:var(--green-dim);color:var(--green)}.pill-short{background:var(--red-dim);color:var(--red)}.pill-on{background:var(--green-dim);color:var(--green)}.pill-off{color:var(--text-3);background:#5e66731f}.section-title{align-items:center;gap:6px;margin:14px 0 6px;font-size:11.5px;font-weight:700;display:flex}.section-title:before{content:"";background:linear-gradient(180deg, var(--yellow), #e6a800);border-radius:2px;flex-shrink:0;width:3px;height:14px}.form-row{flex-direction:column;gap:6px;margin-bottom:16px;display:flex}.form-row label{color:var(--text-2);letter-spacing:.3px;font-size:11.5px;font-weight:600}.form-row input,.form-row select{background:var(--bg-base);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-1);font-family:var(--font-mono);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);padding:10px 12px;font-size:13px}.form-row input:focus,.form-row select:focus{border-color:var(--yellow-dim);box-shadow:0 0 0 3px var(--yellow-glow);outline:none}.hint{color:var(--text-3);margin-top:4px;font-size:11px;line-height:1.6}.hint b{color:var(--yellow);font-weight:600}.checkline{color:var(--text-2);align-items:center;gap:8px;padding:4px 0;font-size:12px;display:flex}.checkline .yes{color:var(--green);font-weight:700}.checkline .no{color:var(--red);font-weight:700}.rule-grid{gap:var(--space-md);margin-top:var(--space-md);grid-template-columns:1fr 1fr;display:grid}.rule-box{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-panel-alt);transition:border-color var(--transition-normal);padding:16px 18px}.rule-box:hover{border-color:var(--text-4)}.rule-box.long{border-left:3px solid var(--green)}.rule-box.short{border-left:3px solid var(--red)}.rule-box h4{text-transform:uppercase;letter-spacing:.8px;margin-bottom:10px;font-size:12px;font-weight:700}.rule-box.long h4{color:var(--green)}.rule-box.short h4{color:var(--red)}.rule-line{color:var(--text-2);font-size:12.5px;font-family:var(--font-mono);margin-bottom:6px;line-height:1.6}.rule-line b{color:var(--text-1);font-family:var(--font-ui)}.tp-ladder{gap:4px;margin-top:12px;display:flex}.tp-seg{border-radius:var(--radius-sm);text-align:center;background:var(--bg-base);border:1px solid var(--border);transition:border-color var(--transition-fast);flex:1;padding:8px 4px}.tp-seg:hover{border-color:var(--text-4)}.tp-seg .p{font-family:var(--font-mono);color:var(--text-1);font-size:12px;font-weight:700}.tp-seg .l{color:var(--text-3);text-transform:uppercase;letter-spacing:.3px;margin-top:2px;font-size:9px}.metric-grid{margin-top:var(--space-md);grid-template-columns:repeat(6,1fr);gap:12px;display:grid}.metric-card{background:var(--bg-panel-alt);border:1px solid var(--border);border-radius:var(--radius-md);transition:transform var(--transition-normal), box-shadow var(--transition-normal);padding:14px 16px}.metric-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.metric-card .name{color:var(--text-3);text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px;font-size:10.5px;font-weight:600}.metric-card .num{font-family:var(--font-mono);font-size:20px;font-weight:800}.metric-card .target{color:var(--text-3);margin-top:4px;font-size:10.5px}.metric-card.pass{border-color:#0ecb8140}.metric-card.pass .num{color:var(--green)}.metric-card.fail{border-color:#f6465d33}.metric-card.fail .num{color:var(--red)}.chart-wrap{height:240px;position:relative}.tabbar{margin-bottom:var(--space-lg);border-bottom:1px solid var(--border);gap:4px;padding-bottom:0;display:flex;overflow-x:auto}.tabbar button{color:var(--text-2);font-family:var(--font-ui);cursor:pointer;transition:color var(--transition-fast), border-color var(--transition-fast);white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;margin-right:18px;padding:10px 6px;font-size:13px;font-weight:600}.tabbar button:hover{color:var(--text-1)}.tabbar button.active{color:var(--text-1);border-color:var(--yellow)}.param-inline{flex-wrap:wrap;gap:20px;margin:12px 0 4px;display:flex}.param-inline div{font-family:var(--font-mono);color:var(--text-2);font-size:12.5px}.param-inline b{color:var(--text-1)}.footer-note{color:var(--text-3);border-top:1px solid var(--border);margin-top:32px;padding-top:18px;font-size:11px;line-height:1.7}.auth-page{background:var(--bg-base);justify-content:center;align-items:center;min-height:100vh;display:flex;position:relative;overflow:hidden}.auth-page:before{content:"";pointer-events:none;background:radial-gradient(circle,#f0b90b0f 0%,#0000 70%);border-radius:50%;width:600px;height:600px;position:absolute;top:-200px;right:-200px}.auth-page:after{content:"";pointer-events:none;background:radial-gradient(circle,#0ecb810a 0%,#0000 70%);border-radius:50%;width:700px;height:700px;position:absolute;bottom:-300px;left:-200px}.auth-card{background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius-lg);z-index:1;width:420px;max-width:90vw;box-shadow:var(--shadow-lg);padding:36px 32px;position:relative}.auth-logo{justify-content:center;align-items:center;gap:10px;margin-bottom:28px;display:flex}.auth-title{text-align:center;margin-bottom:6px;font-size:22px;font-weight:800}.auth-subtitle{color:var(--text-2);text-align:center;margin-bottom:28px;font-size:13px}.auth-form .form-row{margin-bottom:18px}.auth-form .btn-primary{justify-content:center;width:100%;margin-top:8px;padding:12px;font-size:14px}.auth-switch{text-align:center;color:var(--text-2);margin-top:20px;font-size:13px}.auth-switch a{color:var(--yellow);cursor:pointer;font-weight:600}@media (width<=1200px){.metric-grid{grid-template-columns:repeat(3,1fr)}}@media (width<=1100px){.grid-4{grid-template-columns:repeat(2,1fr)}.grid-2{grid-template-columns:1fr}}@media (width<=900px){.rule-grid{grid-template-columns:1fr}.metric-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=768px){html,body,#app,.app-shell{height:100vh;overflow:hidden}.sidebar{transform:translate(-100%)}.sidebar.open{transform:translate(0)}.sidebar-overlay.open{display:block}.main{flex-direction:column;height:100vh;margin-left:0;display:flex;overflow:hidden}.mobile-menu-btn{display:block}.topbar{gap:6px;padding:0 8px}.topbar-metric{display:none}.content{flex-direction:column;flex:1;min-height:0;padding:0;display:flex;overflow:hidden}.view.active{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.grid-4{grid-template-columns:1fr}.metrics-strip,.th-fav,.td-fav{display:none}.market-search{width:120px}.market-card{border-bottom:none;border-left:none;border-right:none;border-radius:0;flex-direction:column;flex:1;min-height:0;margin:0;display:flex}.card{border-left:none;border-right:none;border-radius:0}.market-scroll{flex:1;min-height:0;overflow-y:auto;max-height:none!important}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-10px)}to{opacity:1;transform:translate(0)}}@keyframes slideInUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.animate-in{animation:.3s forwards slideInUp}.card{animation:.2s scaleIn}.skeleton{background:linear-gradient(90deg, var(--bg-panel-alt) 25%, var(--bg-hover) 50%, var(--bg-panel-alt) 75%);border-radius:var(--radius-sm);background-size:200% 100%;animation:1.5s infinite shimmer}@keyframes priceFlash{0%{background:#f0b90b26}to{background:0 0}}.flash{animation:.4s priceFlash}.api-status{border-radius:var(--radius-sm);align-items:center;gap:6px;margin-bottom:10px;padding:6px 8px;font-size:11px;display:flex}.api-status.connected{background:var(--green-dim);color:var(--green)}.api-status.disconnected{color:var(--text-3);background:#5e667314}.api-status .dot{background:var(--green);width:7px;height:7px;box-shadow:0 0 0 3px var(--green-dim);border-radius:50%;animation:2s ease-in-out infinite pulse}.api-status .dot.off{background:var(--text-4);box-shadow:none;animation:none}.live-dot .dot{animation:1.5s ease-in-out infinite pulse}[data-live-price]{transition:color .15s}.metrics-strip{background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius-md);align-items:center;gap:0;margin-bottom:6px;padding:0;transition:background .3s;display:flex;overflow:hidden}.inline-metric{border-right:1px solid var(--border);white-space:nowrap;align-items:center;gap:6px;padding:6px 12px;display:flex}.im-name{color:var(--text-3);text-transform:uppercase;letter-spacing:.5px;font-size:10px;font-weight:700}.im-price{font-family:var(--font-mono);color:var(--text-1);font-size:12px;font-weight:700}.im-change{font-family:var(--font-mono);font-size:10px;font-weight:600}.market-toolbar{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:8px;padding:6px 10px;display:flex}.market-search{background:var(--bg-base);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-1);font-family:var(--font-ui);outline:none;width:160px;margin-left:auto;padding:4px 10px;font-size:11px;transition:border-color .15s}.market-search:focus{border-color:var(--yellow)}.market-count{color:var(--text-3);font-size:10px;font-family:var(--font-mono);font-weight:600}.market-scroll{max-height:calc(100vh - 160px);overflow-y:auto}.th-sort{cursor:pointer;-webkit-user-select:none;user-select:none;transition:color .15s}.th-sort:hover{color:var(--yellow)}.th-fav{width:24px;padding:0 4px!important}.td-fav{width:24px;color:var(--text-4);cursor:pointer;text-align:center;font-size:12px;transition:color .15s;padding:0 4px!important}.td-fav:hover,.fav-row .td-fav{color:var(--yellow)}.td-rank{color:var(--text-3);width:28px;font-size:10px}.td-name{font-family:var(--font-ui);font-size:11.5px;font-weight:700}.td-pair{color:var(--text-3);font-size:10px;font-weight:400}.fav-row{background:var(--yellow-subtle)}.ticker-item .ticker-price.flash{animation:.3s priceFlash}.coin-row{transition:background .15s}.coin-row:hover{background:var(--bg-hover)!important}.coin-row:active{background:var(--bg-panel-alt)!important}.modal-overlay{z-index:1000;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);opacity:0;background:#0009;justify-content:center;align-items:flex-start;padding:40px 20px;transition:opacity .2s;display:flex;position:fixed;inset:0;overflow-y:auto}.modal-overlay.open{opacity:1}.modal-box{background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius-lg);width:100%;max-width:1100px;transition:transform .25s;animation:none;transform:translateY(20px)scale(.97);box-shadow:0 32px 64px #00000080,0 0 0 1px #ffffff0a}.modal-overlay.open .modal-box{transform:translateY(0)scale(1)}.modal-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-start;padding:20px 24px;display:flex}.modal-title{font-family:var(--font-ui);color:var(--text-1);margin:0 0 4px;font-size:22px;font-weight:800}.modal-sub{align-items:baseline;gap:4px;display:flex}.modal-close{background:var(--bg-panel-alt);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-2);cursor:pointer;justify-content:center;align-items:center;width:36px;height:36px;font-size:16px;transition:all .15s;display:flex}.modal-close:hover{background:var(--red);color:#fff;border-color:var(--red)}.modal-body{padding:20px 24px}.modal-body .card{animation:none}@media (width<=768px){.modal-overlay{align-items:flex-start;padding:10px}.modal-box{max-width:100%}.modal-head{padding:16px}.modal-body{padding:12px}.modal-body .grid-2{grid-template-columns:1fr}}
