@import url("https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap");:root{--bg-tertiary:#1e1f22;--bg-secondary:#2b2d31;--bg-primary:#313338;--bg-modifier-hover:#35373c;--bg-modifier-active:#3f4147;--bg-modifier-selected:#404249;--bg-accent:#404249;--text-normal:#dbdee1;--text-muted:#949ba4;--text-faint:#6d6f78;--text-link:#00a8fc;--header-primary:#f2f3f5;--header-secondary:#b5bac1;--brand-500:#5865f2;--brand-560:#4752c4;--brand-600:#3c45a5;--brand-hover:#4752c4;--status-online:#23a559;--status-offline:#80848e;--status-error:#f23f43;--status-warning:#f0b232;--status-connecting:#f0b232;--input-bg:#1e1f22;--input-border:#3f4147;--input-focus:#5865f2;--scrollbar-thin-thumb:#1a1b1e;--scrollbar-thin-track:transparent;--channel-icon:#80848e;--interactive-normal:#b5bac1;--interactive-hover:#dbdee1;--interactive-active:#fff;--elevation-low:0 1px 0 rgba(4,4,5,.2),0 1.5px 0 rgba(6,6,7,.05),0 2px 0 rgba(4,4,5,.05);--elevation-high:0 8px 16px rgba(0,0,0,.24);--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--radius-full:50%;--sidebar-width:72px;--channel-sidebar-width:240px}*,:after,:before{box-sizing:border-box;margin:0;padding:0}body,html{height:100%;font-family:Inter,gg sans,Noto Sans,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:16px;line-height:1.375;color:var(--text-normal);background-color:var(--bg-tertiary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:var(--text-link);text-decoration:none}a:hover{text-decoration:underline}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--scrollbar-thin-track)}::-webkit-scrollbar-thumb{background:var(--scrollbar-thin-thumb);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#232428}.auth-page{display:flex;align-items:center;justify-content:center;min-height:100vh;background:linear-gradient(135deg,#1e1f22,#2b2d31 50%,#1e1f22);padding:20px}.auth-card{background:var(--bg-primary);border-radius:var(--radius-lg);padding:32px;width:100%;max-width:480px;box-shadow:var(--elevation-high);animation:fadeInUp .4s ease}.auth-card h1{color:var(--header-primary);font-size:24px;font-weight:600;text-align:center;margin-bottom:8px}.auth-card .subtitle{color:var(--text-muted);font-size:14px;text-align:center;margin-bottom:24px}.auth-card .logo-icon{display:flex;align-items:center;justify-content:center;margin-bottom:20px}.auth-card .logo-icon svg{width:48px;height:48px;color:var(--brand-500)}.form-group{margin-bottom:20px}.form-group label{display:block;color:var(--header-secondary);font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.02em;margin-bottom:8px}.form-group label .required{color:var(--status-error);margin-left:2px}.form-input{width:100%;padding:10px 12px;background:var(--input-bg);border:1px solid var(--input-border);border-radius:var(--radius-sm);color:var(--text-normal);font-size:16px;font-family:inherit;transition:border-color .15s ease;outline:none}.form-input:focus{border-color:var(--input-focus)}.form-input::placeholder{color:var(--text-faint)}textarea.form-input{resize:vertical;min-height:80px;font-family:Consolas,Monaco,monospace;font-size:14px;line-height:1.5}.form-error{color:var(--status-error);font-size:13px;margin-top:6px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 16px;border:none;border-radius:var(--radius-sm);font-size:14px;font-weight:500;font-family:inherit;cursor:pointer;transition:all .17s ease;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;user-select:none}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--brand-500);color:#fff}.btn-primary:hover:not(:disabled){background:var(--brand-hover)}.btn-primary:active:not(:disabled){background:var(--brand-600)}.btn-secondary{background:var(--bg-modifier-active);color:var(--text-normal)}.btn-secondary:hover:not(:disabled){background:var(--bg-modifier-selected)}.btn-success{background:var(--status-online);color:#fff}.btn-success:hover:not(:disabled){background:#1f9150}.btn-danger{background:var(--status-error);color:#fff}.btn-danger:hover:not(:disabled){background:#d83c3e}.btn-outline{background:transparent;color:var(--text-normal);border:1px solid var(--input-border)}.btn-outline:hover:not(:disabled){background:var(--bg-modifier-hover)}.btn-full{width:100%}.btn-sm{padding:6px 12px;font-size:13px}.btn-lg{padding:12px 24px;font-size:16px}.app-layout{display:flex;height:100vh;overflow:hidden}.server-sidebar{width:var(--sidebar-width);background:var(--bg-tertiary);flex-direction:column;padding:12px 0;gap:8px;overflow-y:auto;flex-shrink:0}.server-icon,.server-sidebar{display:flex;align-items:center}.server-icon{width:48px;height:48px;border-radius:var(--radius-full);background:var(--bg-primary);justify-content:center;cursor:pointer;transition:all .15s ease;overflow:hidden;position:relative}.server-icon.active,.server-icon:hover{border-radius:var(--radius-lg);background:var(--brand-500)}.server-icon img{width:100%;height:100%;object-fit:cover}.server-icon .initials{font-size:16px;font-weight:600;color:var(--text-normal)}.server-icon:hover .initials{color:#fff}.server-separator{width:32px;height:2px;background:var(--bg-modifier-active);border-radius:1px}.server-icon-pill{position:absolute;left:-4px;width:4px;border-radius:0 4px 4px 0;background:var(--header-primary);transition:height .15s ease;height:0}.server-icon:hover .server-icon-pill{height:20px}.server-icon.active .server-icon-pill{height:36px}.channel-sidebar{width:var(--channel-sidebar-width);background:var(--bg-secondary);display:flex;flex-direction:column;flex-shrink:0}.channel-sidebar-header{padding:12px 16px;height:48px;display:flex;align-items:center;font-size:15px;font-weight:600;color:var(--header-primary);box-shadow:var(--elevation-low);flex-shrink:0}.channel-list{flex:1 1;overflow-y:auto;padding:8px 0}.channel-category{padding:16px 8px 4px 16px;display:flex;align-items:center;gap:4px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.channel-category svg{transition:transform .15s ease;color:var(--channel-icon);flex-shrink:0}.channel-category span{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.02em;color:var(--channel-icon)}.channel-category:hover span,.channel-category:hover svg{color:var(--interactive-hover)}.channel-item{display:flex;align-items:center;gap:6px;padding:6px 8px 6px 16px;margin:1px 8px;border-radius:var(--radius-sm);cursor:pointer;color:var(--channel-icon);font-size:15px;font-weight:500;transition:all .1s ease}.channel-item:hover{background:var(--bg-modifier-hover);color:var(--interactive-hover)}.channel-item.active{background:var(--bg-modifier-selected);color:var(--interactive-active)}.channel-item .hash{font-size:20px;font-weight:400;opacity:.7;flex-shrink:0;width:20px}.channel-item .name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-panel{height:52px;background:#232428;padding:0 8px;gap:8px}.user-avatar,.user-panel{display:flex;align-items:center;flex-shrink:0}.user-avatar{width:32px;height:32px;border-radius:var(--radius-full);background:var(--brand-500);justify-content:center;overflow:hidden}.user-avatar img{width:100%;height:100%;object-fit:cover}.user-avatar .avatar-text{color:#fff;font-size:14px;font-weight:600}.user-info{flex:1 1;min-width:0}.user-info .user-name{font-size:14px;font-weight:600;color:var(--header-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-info .user-status{font-size:12px;color:var(--text-muted)}.main-content{flex:1 1;display:flex;flex-direction:column;background:var(--bg-primary);min-width:0}.main-header{height:48px;padding:0 16px;display:flex;align-items:center;gap:8px;box-shadow:var(--elevation-low);flex-shrink:0}.main-header h2{font-size:16px;font-weight:600;color:var(--header-primary)}.main-header .header-hash{color:var(--channel-icon);font-size:22px;font-weight:400}.main-body{flex:1 1;overflow-y:auto;padding:24px}.card{background:var(--bg-secondary);border-radius:var(--radius-md);padding:20px;margin-bottom:16px;transition:background .1s ease}.card:hover{background:var(--bg-modifier-hover)}.card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.card-title{font-size:16px;font-weight:600;color:var(--header-primary)}.card-subtitle{font-size:13px;color:var(--text-muted);margin-top:2px}.status-dot{width:10px;height:10px;border-radius:var(--radius-full);display:inline-block;flex-shrink:0}.status-dot.online{background:var(--status-online)}.status-dot.offline{background:var(--status-offline)}.status-dot.error{background:var(--status-error)}.status-dot.connecting{background:var(--status-connecting);animation:pulse 1.5s ease infinite}.status-dot.banned{background:var(--status-error)}.status-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:var(--radius-sm);font-size:12px;font-weight:600;text-transform:uppercase}.status-badge.online{background:rgba(35,165,89,.15);color:var(--status-online)}.status-badge.offline{background:hsla(223,6%,53%,.15);color:var(--status-offline)}.status-badge.error{background:rgba(242,63,67,.15);color:var(--status-error)}.status-badge.connecting{background:rgba(240,178,50,.15);color:var(--status-connecting)}.toggle{position:relative;width:40px;height:24px;flex-shrink:0}.toggle input{opacity:0;width:0;height:0;position:absolute}.toggle-slider{cursor:pointer;top:0;left:0;right:0;bottom:0;background:var(--bg-modifier-active);border-radius:12px}.toggle-slider,.toggle-slider:before{position:absolute;transition:all .2s ease}.toggle-slider:before{content:"";width:18px;height:18px;left:3px;bottom:3px;background:#fff;border-radius:var(--radius-full)}.toggle input:checked+.toggle-slider{background:var(--status-online)}.toggle input:checked+.toggle-slider:before{transform:translateX(16px)}.data-table{width:100%;border-collapse:collapse}.data-table th{text-align:left;padding:8px 12px;font-size:12px;font-weight:700;text-transform:uppercase;color:var(--text-muted);border-bottom:1px solid var(--bg-modifier-active)}.data-table td{padding:10px 12px;font-size:14px;color:var(--text-normal);border-bottom:1px solid hsla(0,0%,100%,.04)}.data-table tr:hover td{background:var(--bg-modifier-hover)}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));grid-gap:16px;gap:16px;margin-bottom:24px}.stat-card{background:var(--bg-secondary);border-radius:var(--radius-md);padding:20px;display:flex;flex-direction:column;gap:4px}.stat-card .stat-value{font-size:28px;font-weight:700;color:var(--header-primary)}.stat-card .stat-label{font-size:12px;font-weight:600;text-transform:uppercase;color:var(--text-muted)}.channel-config-card{background:var(--bg-secondary);border-radius:var(--radius-md);padding:16px;margin-bottom:4px;border-left:3px solid var(--bg-modifier-active);transition:all .15s ease}.channel-config-card:hover{border-left-color:var(--brand-500)}.channel-config-card.enabled{border-left-color:var(--status-online)}.channel-config-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.channel-config-name{display:flex;align-items:center;gap:6px;font-size:15px;font-weight:600;color:var(--header-primary)}.channel-config-name .hash{color:var(--channel-icon);font-size:20px}.template-editor{margin-top:12px}.template-editor label{display:block;font-size:12px;font-weight:700;text-transform:uppercase;color:var(--header-secondary);margin-bottom:6px}.template-preview{background:var(--input-bg);border-radius:var(--radius-sm);padding:12px;font-family:Consolas,Monaco,monospace;font-size:13px;color:var(--text-muted);margin-top:8px}.template-preview .captcha-placeholder{background:rgba(88,101,242,.2);color:var(--brand-500);padding:1px 4px;border-radius:3px;font-weight:600}.delay-config{display:flex;align-items:center;gap:12px;margin-top:12px}.delay-config label{font-size:12px;font-weight:600;color:var(--text-muted);white-space:nowrap}.delay-config input{width:80px;padding:6px 8px;background:var(--input-bg);border:1px solid var(--input-border);border-radius:var(--radius-sm);color:var(--text-normal);font-size:14px;font-family:inherit;outline:none}.delay-config input:focus{border-color:var(--input-focus)}.validation-errors{background:rgba(242,63,67,.1);border:1px solid rgba(242,63,67,.3);border-radius:var(--radius-md);padding:12px 16px;margin-bottom:16px}.validation-errors h4{color:var(--status-error);font-size:14px;font-weight:600;margin-bottom:8px;display:flex;align-items:center;gap:6px}.validation-errors ul{list-style:none;padding:0}.validation-errors li{color:var(--text-normal);font-size:13px;padding:2px 0 2px 16px;position:relative}.validation-errors li:before{content:"•";color:var(--status-error);position:absolute;left:0}.log-entry{display:flex;align-items:flex-start;gap:12px;padding:8px 12px;border-radius:var(--radius-sm);font-size:14px;transition:background .1s ease;animation:slideIn .2s ease}.log-entry:hover{background:var(--bg-modifier-hover)}.log-time{color:var(--text-faint);font-size:12px;flex-shrink:0;min-width:75px}.log-channel{color:var(--text-muted);font-size:13px}.log-result{font-family:Consolas,Monaco,monospace;font-weight:600}.log-result.solved{color:var(--status-online)}.log-result.failed{color:var(--status-error)}.log-result.sent{color:var(--brand-500)}.log-time-ms{color:var(--text-faint);font-size:12px}.loader{display:flex;align-items:center;justify-content:center;padding:40px}.spinner{width:32px;height:32px;border-radius:var(--radius-full)}.empty-state{flex-direction:column;padding:60px 20px;text-align:center}.empty-state,.empty-state .empty-icon{display:flex;align-items:center;justify-content:center}.empty-state .empty-icon{margin-bottom:16px;opacity:.5;color:var(--text-muted)}.empty-state h3{color:var(--header-primary);font-size:18px;font-weight:600;margin-bottom:8px}.empty-state p{color:var(--text-muted);font-size:14px;max-width:400px}.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.7);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .15s ease}.modal{background:var(--bg-primary);border-radius:var(--radius-lg);padding:24px;width:90%;max-width:500px;max-height:90vh;overflow-y:auto;box-shadow:var(--elevation-high);animation:scaleIn .2s ease}.modal h2{color:var(--header-primary);font-size:20px;font-weight:600;margin-bottom:16px}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:24px}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes slideIn{0%{opacity:0;transform:translateX(-10px)}to{opacity:1;transform:translateX(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.nav-section{margin-bottom:8px}.nav-item{display:flex;align-items:center;gap:8px;padding:8px 12px;margin:1px 8px;border-radius:var(--radius-sm);cursor:pointer;color:var(--channel-icon);font-size:15px;font-weight:500;transition:all .1s ease;text-decoration:none}.nav-item:hover{background:var(--bg-modifier-hover);color:var(--interactive-hover);text-decoration:none}.nav-item.active{background:var(--bg-modifier-selected);color:var(--interactive-active)}.nav-item .nav-icon{width:20px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-2{gap:8px}.gap-3{gap:12px}.gap-4{gap:16px}.mt-2{margin-top:8px}.mt-4{margin-top:16px}.mb-2{margin-bottom:8px}.mb-4{margin-bottom:16px}.text-sm{font-size:13px}.text-muted{color:var(--text-muted)}.admin-badge{background:var(--status-error);color:#fff;font-size:10px;font-weight:700;padding:2px 6px;text-transform:uppercase}.admin-badge,.license-key{border-radius:var(--radius-sm)}.license-key{font-family:Consolas,Monaco,monospace;font-size:14px;color:var(--brand-500);background:rgba(88,101,242,.1);padding:4px 8px;-webkit-user-select:all;-moz-user-select:all;user-select:all}.tab-bar{display:flex;gap:0;border-bottom:1px solid var(--bg-modifier-active);margin-bottom:20px}.tab-item{padding:10px 16px;font-size:14px;font-weight:500;color:var(--text-muted);cursor:pointer;border-bottom:2px solid transparent;transition:all .15s ease;-webkit-user-select:none;-moz-user-select:none;user-select:none}.tab-item:hover{color:var(--interactive-hover);border-bottom-color:var(--bg-modifier-active)}.tab-item.active{color:var(--interactive-active);border-bottom-color:var(--brand-500)}.spinner{width:40px;height:40px;border:3px solid var(--bg-modifier-active);border-top-color:var(--brand-500);border-radius:50%;animation:spin .8s linear infinite;margin:0 auto}@keyframes spin{to{transform:rotate(1turn)}}