:root{--bg-base:#09090b;--bg-surface:#111113;--bg-elevated:#1a1a1f;--bg-overlay:#222228;--border-default:#27272a;--border-subtle:#1e1e22;--border-focus:#6366f1;--text-primary:#fafafa;--text-secondary:#a1a1aa;--text-muted:#71717a;--text-inverse:#09090b;--primary:#6366f1;--primary-hover:#818cf8;--primary-muted:#6366f126;--success:#22c55e;--success-muted:#22c55e26;--warning:#eab308;--warning-muted:#eab30826;--danger:#ef4444;--danger-muted:#ef444426;--info:#3b82f6;--info-muted:#3b82f626;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--radius-sm:4px;--radius-md:6px;--radius-lg:8px;--radius-xl:12px;--radius-full:9999px;--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 2px 8px #0006;--shadow-lg:0 4px 16px #00000080;--font-sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:"SF Mono", "Fira Code", "Cascadia Code", monospace}*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-sans);background:var(--bg-base);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:14px;line-height:1.5}.container{max-width:1280px;padding:var(--space-6);margin:0 auto}.page-header{margin-bottom:var(--space-6);justify-content:space-between;align-items:center;display:flex}.page-header h1{letter-spacing:-.02em;font-size:20px;font-weight:600;line-height:1.2}.header-actions{gap:var(--space-2);display:flex}nav{gap:var(--space-1);margin-bottom:var(--space-6);background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--space-1);flex-wrap:wrap;display:flex}nav button{color:var(--text-muted);padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);cursor:pointer;font-size:13px;font-weight:500;font-family:var(--font-sans);background:0 0;border:none;transition:all .15s}nav button:hover{color:var(--text-secondary);background:var(--bg-overlay)}nav button.active{background:var(--bg-elevated);color:var(--primary)}nav button:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px}.btn{justify-content:center;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);cursor:pointer;font-size:13px;font-weight:500;font-family:var(--font-sans);white-space:nowrap;border:1px solid #0000;line-height:1.4;transition:all .15s;display:inline-flex}.btn:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--primary-hover)}.btn-primary:active:not(:disabled){transform:scale(.98)}.btn-success{background:var(--success);color:var(--text-inverse)}.btn-success:hover:not(:disabled){background:#16a34a}.btn-success:active:not(:disabled){transform:scale(.98)}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover:not(:disabled){background:#dc2626}.btn-danger:active:not(:disabled){transform:scale(.98)}.btn-ghost{color:var(--text-secondary);border-color:var(--border-default);background:0 0}.btn-ghost:hover:not(:disabled){background:var(--bg-overlay);color:var(--text-primary)}.btn-ghost:active:not(:disabled){transform:scale(.98)}.btn-sm{padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);cursor:pointer;font-size:11px;font-weight:500;font-family:var(--font-sans);border:none;transition:all .15s}.btn-sm:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px}.btn-sm-warning{background:var(--warning-muted);color:var(--warning)}.btn-sm-warning:hover{filter:brightness(1.2)}.btn-sm-success{background:var(--success-muted);color:var(--success)}.btn-sm-success:hover{filter:brightness(1.2)}.btn-sm-danger{background:var(--danger-muted);color:var(--danger)}.btn-sm-danger:hover{filter:brightness(1.2)}.btn-sm-info{background:var(--info-muted);color:var(--info)}.btn-sm-info:hover{filter:brightness(1.2)}.card{background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-lg);padding:var(--space-5);box-shadow:var(--shadow-sm);transition:border-color .15s}.card-padded{padding:var(--space-6)}.card .label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:var(--space-1);font-size:12px;font-weight:500}.card .value{letter-spacing:-.02em;font-size:28px;font-weight:600;line-height:1.2}.card .sub{color:var(--text-muted);margin-top:var(--space-1);font-size:12px}.stat-grid{gap:var(--space-3);margin-bottom:var(--space-6);grid-template-columns:repeat(auto-fit,minmax(200px,1fr));display:grid}.table-wrap{-webkit-overflow-scrolling:touch;margin-bottom:var(--space-4);border-radius:var(--radius-lg);border:1px solid var(--border-default);overflow-x:auto}table{border-collapse:collapse;background:var(--bg-surface);width:100%}.table-wrap table{border:none}table:not(.table-wrap table){border:1px solid var(--border-default);border-radius:var(--radius-lg);margin-bottom:var(--space-4);overflow:hidden}th,td{text-align:left;padding:var(--space-3) var(--space-4);font-size:13px}th{background:var(--bg-elevated);color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--border-default);font-size:11px;font-weight:500}td{border-bottom:1px solid var(--border-subtle)}tr:last-child td{border-bottom:none}tr:hover td{background:var(--bg-overlay);transition:background .15s}.badge{padding:2px var(--space-2);border-radius:var(--radius-full);white-space:nowrap;align-items:center;font-size:11px;font-weight:500;line-height:1.5;display:inline-flex}.badge-success{background:var(--success-muted);color:var(--success)}.badge-warning{background:var(--warning-muted);color:var(--warning)}.badge-danger{background:var(--danger-muted);color:var(--danger)}.badge-info{background:var(--info-muted);color:var(--info)}.badge-neutral{background:var(--bg-elevated);color:var(--text-muted)}.input{background:var(--bg-base);border:1px solid var(--border-default);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3);color:var(--text-primary);font-size:13px;font-family:var(--font-sans);height:36px;transition:border-color .15s,box-shadow .15s}.input:focus{border-color:var(--border-focus);box-shadow:0 0 0 3px var(--primary-muted);outline:none}.input::placeholder{color:var(--text-muted)}select.input{cursor:pointer}textarea.input{resize:vertical;height:auto;line-height:1.5}.input-sm{height:28px;padding:var(--space-1) var(--space-2);font-size:12px}.section-title{text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);margin:var(--space-5) 0 var(--space-3);font-size:13px;font-weight:500}.alert{background:var(--danger-muted);border-radius:var(--radius-lg);padding:var(--space-3) var(--space-4);margin-bottom:var(--space-4);color:var(--danger);border:1px solid #ef44444d;font-size:13px;font-weight:500}.success-box{background:var(--success-muted);border-radius:var(--radius-lg);padding:var(--space-3) var(--space-4);margin-bottom:var(--space-4);color:var(--success);border:1px solid #22c55e4d;font-size:13px;font-weight:500}.empty{text-align:center;padding:var(--space-10);color:var(--text-muted);font-size:14px}.health-grid{gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(280px,1fr));display:grid}.health-card{background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-lg);padding:var(--space-4);box-shadow:var(--shadow-sm);transition:border-color .15s}.health-card:hover{border-color:var(--border-focus)}.health-card .name{margin-bottom:var(--space-2);align-items:center;font-size:14px;font-weight:600;display:flex}.health-card .detail{color:var(--text-secondary);margin-top:var(--space-1);font-size:12px}.status-dot{border-radius:var(--radius-full);width:8px;height:8px;margin-right:var(--space-2);flex-shrink:0;display:inline-block}.status-dot.running{background:var(--success);box-shadow:0 0 6px #22c55e66}.status-dot.restarting{background:var(--warning);box-shadow:0 0 6px #eab30866}.status-dot.exited{background:var(--danger);box-shadow:0 0 6px #ef444466}.log-controls{gap:var(--space-2);margin-bottom:var(--space-3);flex-wrap:wrap;align-items:center;display:flex}.log-controls select,.log-controls button{background:var(--bg-surface);border:1px solid var(--border-default);color:var(--text-primary);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);font-size:13px;font-family:var(--font-sans);cursor:pointer;transition:all .15s}.log-controls select:hover,.log-controls button:hover{border-color:var(--text-muted)}.log-controls select:focus-visible,.log-controls button:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px}.log-viewer{background:var(--bg-base);border:1px solid var(--border-default);border-radius:var(--radius-lg);padding:var(--space-4);font-family:var(--font-mono);white-space:pre-wrap;word-break:break-all;max-height:600px;color:var(--text-secondary);font-size:12px;line-height:1.7;overflow-y:auto}.login-container{max-width:380px;padding:var(--space-6);margin:120px auto}.login-container h2{margin-bottom:var(--space-5);text-align:center;letter-spacing:-.02em;font-size:20px;font-weight:600}.login-input{width:100%;padding:var(--space-3) var(--space-4);margin-bottom:var(--space-3);height:44px;font-size:14px}.login-btn{width:100%;padding:var(--space-3);font-size:14px}.login-error{color:var(--danger);margin-top:var(--space-2);text-align:center;font-size:13px}.flex{display:flex}.flex-wrap{flex-wrap:wrap}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-1{gap:var(--space-1)}.gap-2{gap:var(--space-2)}.gap-3{gap:var(--space-3)}.gap-4{gap:var(--space-4)}.mt-0{margin-top:0}.mt-2{margin-top:var(--space-2)}.mt-3{margin-top:var(--space-3)}.mt-4{margin-top:var(--space-4)}.mt-5{margin-top:var(--space-5)}.mb-2{margin-bottom:var(--space-2)}.mb-3{margin-bottom:var(--space-3)}.mb-4{margin-bottom:var(--space-4)}.mb-5{margin-bottom:var(--space-5)}.mb-6{margin-bottom:var(--space-6)}.w-full{width:100%}.text-sm{font-size:12px}.text-xs{font-size:11px}.text-muted{color:var(--text-muted)}.text-secondary{color:var(--text-secondary)}.text-danger{color:var(--danger)}.text-success{color:var(--success)}.text-center{text-align:center}.font-semibold{font-weight:600}.font-mono{font-family:var(--font-mono)}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.max-w-xs{max-width:200px}.max-w-sm{max-width:250px}.cursor-pointer{cursor:pointer}.inline-flex{display:inline-flex}.grid{display:grid}.grid-2col{grid-template-columns:1fr 1fr}.grid-span-full{grid-column:1/-1}a,.link{color:var(--primary);cursor:pointer;text-decoration:none;transition:color .15s}a:hover,.link:hover{color:var(--primary-hover)}a:focus-visible,.link:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px}.form-row{gap:var(--space-2);flex-wrap:wrap;align-items:center;display:flex}.form-grid{gap:var(--space-2);grid-template-columns:1fr 1fr;display:grid}.form-actions{gap:var(--space-2);margin-top:var(--space-3);align-items:center;display:flex}.form-label{color:var(--text-secondary);align-items:center;gap:var(--space-2);font-size:12px;display:flex}.form-msg{margin-left:var(--space-2);font-size:13px}.campaign-header{justify-content:space-between;align-items:center;display:flex}.campaign-header h2{align-items:center;gap:var(--space-2);font-size:18px;font-weight:600;display:flex}.campaign-from{color:var(--text-secondary);font-size:12px}.step-block{border:1px solid var(--border-default);border-radius:var(--radius-md);padding:var(--space-3);margin-bottom:var(--space-2);background:var(--bg-base)}.step-header{margin-bottom:var(--space-2);justify-content:space-between;display:flex}.step-header span{color:var(--text-muted);font-size:12px}.step-remove{color:var(--danger);cursor:pointer;font-size:12px;font-family:var(--font-sans);background:0 0;border:none;transition:color .15s}.step-remove:hover{color:#f87171}.step-fields{gap:var(--space-2);align-items:center;display:flex}.recipient-queue-header{color:var(--text-muted);margin-bottom:var(--space-1);font-size:12px}.recipient-queue-row{gap:var(--space-2);margin-bottom:var(--space-1);grid-template-columns:2fr 1fr 1fr 2fr auto;align-items:center;font-size:12px;display:grid}.recipient-input-row{gap:var(--space-2);margin-bottom:var(--space-2);grid-template-columns:2fr 1fr 1fr 2fr auto;display:grid}.remove-btn{color:var(--danger);cursor:pointer;background:0 0;border:none;font-size:14px;transition:color .15s}.remove-btn:hover{color:#f87171}.warmup-settings{align-items:center;gap:var(--space-4);flex-wrap:wrap;display:flex}.warmup-settings-label{color:var(--text-secondary);font-size:13px}.warmup-settings-hint{color:var(--success);font-size:12px}.mailbox-info-name{font-size:16px;font-weight:600}.mailbox-info-domain{color:var(--text-secondary);font-size:13px}.thread-active-row td{background:var(--primary-muted)}.dns-record{color:var(--text-secondary);margin-top:var(--space-1);font-size:11px}.blacklist-domain{margin-bottom:var(--space-2);font-weight:600}.blacklist-row{margin-bottom:var(--space-1);justify-content:space-between;align-items:center;display:flex}.blacklist-label{color:var(--text-secondary);font-size:12px}.blacklist-listed{color:var(--danger);margin-bottom:var(--space-2);font-size:12px}.filter-bar{gap:var(--space-2);margin-bottom:var(--space-4);flex-wrap:wrap;align-items:center;display:flex}.filter-bar .input{width:200px}.contacts-meta{gap:var(--space-2);margin-bottom:var(--space-3);flex-wrap:wrap;align-items:center;display:flex}.contacts-count{color:var(--text-secondary);font-size:13px}.assign-bar{gap:var(--space-1);align-items:center;display:inline-flex}.pagination{gap:var(--space-2);margin-top:var(--space-3);justify-content:center;align-items:center;display:flex}.pagination-info{color:var(--text-secondary);font-size:13px}.csv-description{color:var(--text-secondary);margin-bottom:var(--space-3);font-size:13px}.csv-description code{background:var(--bg-elevated);border-radius:var(--radius-sm);font-family:var(--font-mono);padding:1px 4px;font-size:12px}.csv-textarea{width:100%;font-family:var(--font-mono);font-size:12px}@media (width<=768px){.container{padding:var(--space-4)}.stat-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.health-grid,.form-grid,.recipient-input-row,.recipient-queue-row{grid-template-columns:1fr}.table-wrap{margin-left:calc(-1 * var(--space-4));margin-right:calc(-1 * var(--space-4));border-left:none;border-right:none;border-radius:0}.filter-bar .input{width:100%}}@media (width<=480px){nav{gap:0}nav button{padding:var(--space-2) var(--space-3);font-size:12px}.page-header{gap:var(--space-3);flex-direction:column;align-items:flex-start}.page-header h1{font-size:18px}}
