*{box-sizing:border-box;margin:0;padding:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f5f5f5;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}#root,body,html{height:100%}*,:after,:before{box-sizing:border-box}body{background:#f1f5f9;color:#1e293b;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Inter,sans-serif;font-size:14px;margin:0}.app-layout{display:flex;min-height:100vh}.sidebar{background:#1e293b;display:flex;flex-direction:column;height:100vh;min-width:220px;position:sticky;top:0;transition:transform .25s ease;width:220px;z-index:100}.sidebar-logo{align-items:center;border-bottom:1px solid #ffffff14;color:#fff;display:flex;font-size:1.15rem;font-weight:700;gap:10px;letter-spacing:-.02em;padding:24px 20px 20px}.sidebar-nav{display:flex;flex:1 1;flex-direction:column;gap:2px;padding:16px 10px}.sidebar-link{align-items:center;background:#0000;border:none;border-radius:8px;color:#94a3b8;cursor:pointer;display:flex;font-size:.875rem;font-weight:500;gap:10px;padding:10px 12px;text-align:left;transition:all .18s ease;width:100%}.sidebar-link:hover{background:#ffffff12;color:#e2e8f0}.sidebar-link.active{background:#2563eb;box-shadow:0 2px 8px #2563eb66;color:#fff}.sidebar-footer{border-top:1px solid #ffffff0f;color:#475569;font-size:.75rem;padding:16px 20px}.main-area{display:flex;flex:1 1;flex-direction:column;min-width:0;overflow:hidden}.topbar{align-items:center;background:#fff;border-bottom:1px solid #e2e8f0;display:flex;gap:14px;height:56px;padding:0 24px;position:sticky;top:0;z-index:50}.topbar-title{color:#1e293b;flex:1 1;font-size:.95rem;font-weight:600}.topbar-selection{background:#eff6ff;border:1px solid #bfdbfe;border-radius:20px;color:#2563eb;font-size:.8rem;font-weight:600;padding:4px 10px}.hamburger{align-items:center;background:none;border:none;border-radius:6px;color:#64748b;cursor:pointer;display:none;padding:6px;transition:color .2s}.hamburger:hover{color:#1e293b}.page-content{flex:1 1;overflow-y:auto;padding:24px}.db-page{max-width:1200px}.action-bar{flex-wrap:wrap;margin-bottom:16px}.action-bar,.action-bar-left{align-items:center;display:flex;gap:8px}.action-bar-left{flex:1 1;flex-wrap:wrap}.action-bar-right{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.btn{align-items:center;border:none;border-radius:8px;cursor:pointer;display:inline-flex;font-size:.85rem;font-weight:500;gap:6px;line-height:1;padding:8px 14px;transition:all .18s ease;white-space:nowrap}.btn:disabled{box-shadow:none!important;cursor:not-allowed;opacity:.5;transform:none!important}.btn-primary{background:#2563eb;color:#fff}.btn-primary:hover:not(:disabled){background:#1d4ed8;box-shadow:0 3px 10px #2563eb4d;transform:translateY(-1px)}.btn-success{background:#059669;color:#fff}.btn-success:hover:not(:disabled){background:#047857;box-shadow:0 3px 10px #0596694d;transform:translateY(-1px)}.btn-danger{background:#dc2626;color:#fff}.btn-danger:hover:not(:disabled){background:#b91c1c;box-shadow:0 3px 10px #dc26264d;transform:translateY(-1px)}.btn-outline{background:#fff;border:1px solid #d1d5db;color:#374151}.btn-outline:hover:not(:disabled){background:#f9fafb;border-color:#9ca3af}.btn-secondary{background:#f9fafb}.btn-secondary:hover:not(:disabled){background:#f3f4f6}.stats-row{flex-wrap:wrap;gap:10px;margin-bottom:16px}.stat-chip,.stats-row{align-items:center;display:flex}.stat-chip{background:#fff;border:1px solid #e2e8f0;border-radius:8px;font-size:.85rem;gap:8px;padding:6px 14px}.stat-chip.selected{background:#eff6ff;border-color:#bfdbfe;color:#1d4ed8}.stat-chip-label{color:#64748b}.stat-chip-value{color:#1e293b;font-weight:700}.stat-chip.selected .stat-chip-value{color:#1d4ed8}.loading-text{animation:pulse 1.5s ease-in-out infinite;color:#64748b;font-size:.85rem}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.pagination{border-top:1px solid #e2e8f0;gap:12px;justify-content:center;margin-top:20px;padding-top:16px}.page-btn,.pagination{align-items:center;display:flex}.page-btn{background:#fff;border:1px solid #d1d5db;border-radius:8px;color:#374151;cursor:pointer;font-size:.85rem;font-weight:500;gap:6px;padding:7px 14px;transition:all .18s}.page-btn:hover:not(:disabled){background:#f9fafb;border-color:#3b82f6;color:#2563eb}.page-btn:disabled{cursor:not-allowed;opacity:.4}.page-info{color:#64748b;font-size:.85rem;min-width:120px;text-align:center}.toast-container{bottom:24px;display:flex;flex-direction:column;gap:8px;pointer-events:none;position:fixed;right:24px;z-index:9999}.toast{align-items:center;animation:slideIn .25s ease;border:1px solid #0000;border-radius:10px;box-shadow:0 4px 20px #00000026;display:flex;font-size:.875rem;font-weight:500;gap:10px;max-width:380px;min-width:260px;padding:12px 16px;pointer-events:all}@keyframes slideIn{0%{opacity:0;transform:translateX(40px)}to{opacity:1;transform:translateX(0)}}.toast-success{background:#ecfdf5;border-color:#a7f3d0;color:#064e3b}.toast-error{background:#fef2f2;border-color:#fecaca;color:#7f1d1d}.toast-info{background:#eff6ff;border-color:#bfdbfe;color:#1e3a5f}.toast-icon{flex-shrink:0}.toast-msg{flex:1 1;line-height:1.4}.toast-close{background:none;border:none;border-radius:4px;color:inherit;cursor:pointer;display:flex;flex-shrink:0;opacity:.55;padding:2px;transition:opacity .15s}.toast-close:hover{opacity:1}.page-header{margin-bottom:24px}.page-header h1{color:#0f172a;font-size:1.4rem;font-weight:700;margin:0 0 4px}.page-header p{color:#64748b;font-size:.875rem;margin:0}.message-banner{align-items:center;border-radius:8px;display:flex;font-size:.875rem;font-weight:500;gap:10px;margin-bottom:16px;padding:12px 16px}.message-banner.success{background:#ecfdf5;border:1px solid #a7f3d0;color:#065f46}.message-banner.error{background:#fef2f2;border:1px solid #fecaca;color:#991b1b}.message-banner-close{background:none;border:none;border-radius:4px;color:inherit;cursor:pointer;display:flex;margin-left:auto;opacity:.6;padding:2px}.message-banner-close:hover{opacity:1}.sidebar-overlay{background:#0006;display:none;inset:0;position:fixed;z-index:99}@media (max-width:768px){.sidebar{height:100vh;left:0;position:fixed;top:0;transform:translateX(-100%);z-index:200}.sidebar.open{box-shadow:4px 0 24px #00000040;transform:translateX(0)}.sidebar-overlay{display:block}.hamburger{display:flex}.page-content{padding:16px}.action-bar{align-items:stretch;flex-direction:column}.action-bar-left,.action-bar-right{width:100%}.toast-container{bottom:16px;left:16px;right:16px}.toast{max-width:100%;min-width:0;min-width:auto}}.data-table-container{background:#fff;border:1px solid #e2e8f0;border-radius:10px;overflow-x:auto}.data-table{font-size:.875rem}.data-table thead{background:#f8fafc;border-bottom:1px solid #e2e8f0}.data-table th{color:#475569;font-size:.8rem;letter-spacing:.04em;padding:11px 14px;text-transform:uppercase;white-space:nowrap}.data-table th.sortable{cursor:pointer;transition:background .15s;-webkit-user-select:none;user-select:none}.data-table th.sortable.active,.data-table th.sortable:hover{background:#eff6ff;color:#2563eb}.data-table td{border-bottom:1px solid #f1f5f9;color:#334155;padding:10px 14px;vertical-align:middle}.data-table tbody tr:last-child td{border-bottom:none}.data-table tbody tr{transition:background .12s}.data-table tbody tr:hover{background:#f8fafc}.data-table tbody tr.selected{background:#eff6ff}.data-table tbody tr.selected:hover{background:#dbeafe}.data-table input[type=checkbox]{accent-color:#2563eb;cursor:pointer;height:15px;width:15px}.col-email a{color:#2563eb;text-decoration:none}.col-email a:hover{text-decoration:underline}.col-name{color:#0f172a;font-weight:500}.col-employer,.col-location,.col-phone{color:#64748b}.col-phone{font-family:monospace;font-size:.825rem}.data-table.empty,.empty-state{color:#94a3b8;padding:60px 20px;text-align:center}.empty-state{background:#fff;border:1px solid #e2e8f0;border-radius:10px}.empty-state p{font-size:.95rem;margin:0}.filter-bar{align-items:center;display:flex;flex-wrap:wrap;gap:10px;margin-bottom:14px}.filter-group{flex:1 1;min-width:180px;position:relative}.dataset-group{max-width:280px;min-width:220px}.dataset-select{appearance:none;cursor:pointer;padding-right:12px!important}.filter-icon{color:#94a3b8;left:11px;pointer-events:none;position:absolute;top:50%;transform:translateY(-50%)}.filter-input{background:#fff;border:1px solid #d1d5db;border-radius:8px;color:#1e293b;font-size:.875rem;padding:8px 12px 8px 34px;transition:border-color .18s,box-shadow .18s;width:100%}.filter-input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a;outline:none}.filter-input::placeholder{color:#9ca3af}.btn-clear{align-items:center;background:#f9fafb;border:1px solid #d1d5db;border-radius:8px;color:#374151;cursor:pointer;display:flex;font-size:.85rem;gap:6px;padding:8px 12px;transition:all .18s;white-space:nowrap}.btn-clear:hover{background:#f3f4f6;border-color:#9ca3af}@media (max-width:640px){.filter-group{min-width:100%}}.modal{animation:modalIn .22s ease;background:#fff;border-radius:12px;box-shadow:0 20px 60px #0003;max-height:88vh;max-width:480px;overflow-y:auto;width:100%}@keyframes modalIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.modal-header{align-items:center;background:#f8fafc;border-bottom:1px solid #e2e8f0;border-radius:12px 12px 0 0;display:flex;justify-content:space-between;padding:18px 22px;position:sticky;top:0;z-index:1}.modal-header h2{color:#1e293b;font-size:1rem;font-weight:600;margin:0}.modal-close{background:none;border:none;border-radius:6px;color:#94a3b8;cursor:pointer;font-size:1.2rem;line-height:1;padding:4px 6px;transition:color .18s}.modal-close:hover{color:#1e293b}.modal-body{padding:22px}.upload-area{margin-bottom:18px}#file-input{display:none}.upload-label{align-items:center;background:#f0f7ff;border:2px dashed #93c5fd;border-radius:10px;color:#2563eb;cursor:pointer;display:flex;flex-direction:column;font-size:.9rem;font-weight:500;gap:8px;justify-content:center;padding:36px 20px;text-align:center;transition:all .18s}.upload-label:hover{background:#dbeafe;border-color:#3b82f6}#file-input:disabled+.upload-label{cursor:not-allowed;opacity:.6}.file-list{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;margin-bottom:16px;padding:12px 14px}.file-list h4{color:#64748b;font-size:.8rem;font-weight:600;letter-spacing:.04em;margin:0 0 8px;text-transform:uppercase}.file-list ul{display:flex;flex-direction:column;gap:4px;list-style:none;margin:0;padding:0}.file-list li{align-items:center;background:#fff;border-left:3px solid #3b82f6;border-radius:6px;color:#334155;display:flex;font-size:.85rem;justify-content:space-between;padding:7px 10px}.file-list span{flex:1 1;word-break:break-word}.btn-remove{background:none;border:none;border-radius:4px;color:#ef4444;cursor:pointer;font-size:.8rem;margin-left:8px;padding:2px 6px;transition:background .15s}.btn-remove:hover{background:#fef2f2}.progress-container{margin-bottom:16px}.progress-bar{background:#e2e8f0;border-radius:3px;height:6px;margin-bottom:8px;overflow:hidden;width:100%}.progress-fill{background:#2563eb;border-radius:3px;height:100%;transition:width .3s ease}.progress-text{color:#64748b;font-size:.8rem;margin:0;text-align:center}.message{border-radius:8px;font-size:.875rem;font-weight:500;margin-bottom:14px;padding:10px 14px}.message.success{background:#ecfdf5;border:1px solid #a7f3d0;color:#065f46}.message.error{background:#fef2f2;border:1px solid #fecaca;color:#991b1b}.results-summary{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;margin-bottom:16px;padding:14px}.results-summary h4{color:#374151;font-size:.85rem;font-weight:600;margin:0 0 10px}.summary-item{border-bottom:1px solid #e2e8f0;display:flex;font-size:.85rem;justify-content:space-between;padding:6px 0}.summary-item:last-child{border-bottom:none}.summary-item span{color:#64748b}.summary-item strong{color:#1e293b;font-weight:600}.summary-item.success-item strong{color:#059669}.summary-item.error-item strong{color:#dc2626}.modal-footer{background:#f8fafc;border-radius:0 0 12px 12px;border-top:1px solid #e2e8f0;bottom:0;display:flex;gap:8px;justify-content:flex-end;padding:16px 22px;position:sticky}.btn-secondary{background:#fff;border:1px solid #d1d5db;border-radius:8px;color:#374151;cursor:pointer;font-size:.875rem;font-weight:500;padding:8px 16px;transition:all .18s}.btn-secondary:hover:not(:disabled){background:#f9fafb;border-color:#9ca3af}.send-modal{background:#fff;border-radius:12px;box-shadow:0 20px 60px #00000040;display:flex;flex-direction:column;max-height:90vh;max-width:520px;overflow:hidden;width:100%}.send-modal-header{align-items:center;background:#f8fafc;border-bottom:1px solid #e2e8f0;display:flex;justify-content:space-between;padding:20px 24px}.send-modal-title{align-items:center;color:#1e293b;display:flex;font-size:1.05rem;font-weight:600;gap:10px}.modal-close-btn{align-items:center;background:none;border:none;border-radius:6px;color:#94a3b8;cursor:pointer;display:flex;padding:4px;transition:color .2s,background .2s}.modal-close-btn:hover{background:#e2e8f0;color:#1e293b}.send-modal-body{flex:1 1;overflow-y:auto;padding:24px}.recipient-badge{background:#eff6ff;border:1px solid #bfdbfe;border-radius:8px;color:#1d4ed8;font-size:.9rem;margin-bottom:20px}.recipient-badge,.send-warning{align-items:center;display:flex;gap:8px;padding:10px 14px}.send-warning{background:#fef3c7;border:1px solid #fde68a;border-radius:8px;color:#92400e;font-size:.875rem;margin-bottom:16px}.send-form-group{margin-bottom:20px}.send-form-group label{color:#374151;display:block;font-size:.875rem;font-weight:500;margin-bottom:8px}.optional{color:#9ca3af;font-weight:400}.send-input{border:1px solid #d1d5db;border-radius:8px;box-sizing:border-box;color:#1e293b;font-size:.9rem;padding:10px 12px;transition:border-color .2s,box-shadow .2s;width:100%}.send-input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a;outline:none}.loading-templates,.no-templates-msg{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;color:#64748b;font-size:.9rem;padding:16px;text-align:center}.template-select-list{display:flex;flex-direction:column;gap:8px;max-height:220px;overflow-y:auto}.template-option{align-items:flex-start;background:#fff;border:1px solid #e2e8f0;border-radius:8px;cursor:pointer;display:flex;gap:12px;padding:12px 14px;transition:all .15s ease}.template-option:hover{background:#f0f7ff;border-color:#93c5fd}.template-option.selected{background:#eff6ff;border-color:#3b82f6}.template-option-radio{padding-top:2px}.radio-dot{background:#fff;border:2px solid #d1d5db;border-radius:50%;flex-shrink:0;height:16px;transition:all .15s;width:16px}.radio-dot.active{background:#3b82f6;border-color:#3b82f6;box-shadow:inset 0 0 0 3px #fff}.template-option-name{color:#1e293b;font-size:.9rem;font-weight:600}.template-option-subject{color:#64748b;font-size:.8rem;margin-top:2px}.template-option-type{color:#94a3b8;font-size:.75rem;letter-spacing:.05em;margin-top:4px;text-transform:uppercase}.send-error{align-items:center;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;color:#dc2626;display:flex;font-size:.875rem;gap:8px;margin-bottom:16px;padding:10px 14px}.send-modal-footer{border-top:1px solid #f1f5f9;display:flex;gap:10px;justify-content:flex-end;padding-top:16px}.btn-cancel{background:none;border:1px solid #d1d5db;border-radius:8px;color:#374151;cursor:pointer;font-size:.9rem;font-weight:500;padding:9px 18px;transition:all .2s}.btn-cancel:hover:not(:disabled){background:#f9fafb;border-color:#9ca3af}.btn-send{align-items:center;background:#2563eb;border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-size:.9rem;font-weight:600;gap:8px;padding:9px 20px;transition:all .2s}.btn-send:hover:not(:disabled){background:#1d4ed8;box-shadow:0 4px 12px #2563eb59;transform:translateY(-1px)}.btn-send:disabled{box-shadow:none;cursor:not-allowed;opacity:.55;transform:none}.spin{animation:spin 1s linear infinite}.send-result{padding:10px 0;text-align:center}.result-icon{margin-bottom:16px}.result-icon.success{color:#10b981}.result-icon.partial{color:#f59e0b}.result-title{color:#1e293b;font-size:1.1rem;font-weight:700;margin:0 0 4px}.result-campaign-name{color:#64748b;font-size:.85rem;margin:0 0 20px}.result-stats{display:flex;gap:24px;justify-content:center;margin-bottom:20px}.result-stat{align-items:center;display:flex;flex-direction:column;gap:4px}.stat-number{font-size:2rem;font-weight:700;line-height:1}.stat-label{color:#64748b;font-size:.75rem;font-weight:500;letter-spacing:.05em;text-transform:uppercase}.result-stat.sent .stat-number{color:#10b981}.result-stat.failed .stat-number{color:#ef4444}.result-stat.total .stat-number{color:#3b82f6}.result-errors{background:#fef2f2;border:1px solid #fecaca;border-radius:8px;margin-top:16px;padding:12px 14px;text-align:left}.result-errors-title{color:#dc2626;font-size:.8rem;font-weight:600;margin:0 0 8px}.result-errors ul{color:#7f1d1d;font-size:.8rem;list-style:none;margin:0;padding:0}.result-errors li{padding:2px 0}.err-email{font-weight:600}.settings-page{max-width:1000px}.settings-layout{grid-gap:20px;display:grid;gap:20px;grid-template-columns:1fr 1fr}@media (max-width:860px){.settings-layout{grid-template-columns:1fr}}.settings-card{background:#fff;border:1px solid #e2e8f0;border-radius:12px;overflow:hidden}.settings-card-title{background:#f8fafc;border-bottom:1px solid #e2e8f0;color:#374151;font-size:.75rem;font-weight:600;letter-spacing:.05em;padding:16px 20px;text-transform:uppercase}.settings-form{gap:18px;padding:20px}.form-field,.settings-form{display:flex;flex-direction:column}.form-field{gap:6px}.form-field label{color:#374151;font-size:.8rem;font-weight:600}.required{color:#ef4444}.form-field input,.form-field select{background:#fff;border:1px solid #d1d5db;border-radius:8px;box-sizing:border-box;color:#1e293b;font-size:.875rem;padding:9px 12px;transition:border-color .18s,box-shadow .18s;width:100%}.form-field input:focus,.form-field select:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a;outline:none}.form-field input:disabled,.form-field select:disabled{background:#f9fafb;color:#9ca3af;cursor:not-allowed}.form-field small{color:#94a3b8;font-size:.78rem;line-height:1.4}.form-field small a{color:#2563eb;text-decoration:none}.form-field small a:hover{text-decoration:underline}.api-key-wrapper{position:relative}.api-key-wrapper input{padding-right:42px}.toggle-key-btn{align-items:center;background:none;border:none;border-radius:4px;color:#94a3b8;cursor:pointer;display:flex;padding:4px;position:absolute;right:10px;top:50%;transform:translateY(-50%);transition:color .18s}.toggle-key-btn:hover{color:#374151}.setup-steps{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:14px 16px}.setup-steps-title{color:#374151;font-size:.75rem;font-weight:600;letter-spacing:.05em;margin-bottom:8px;text-transform:uppercase}.setup-steps ol{color:#64748b;font-size:.8rem;line-height:1.7;margin:0;padding-left:18px}.setup-steps code{background:#e2e8f0;border-radius:3px;color:#1e293b;font-size:.78rem;padding:1px 5px}.settings-form-actions{padding-top:4px}.btn-form-primary{align-items:center;background:#2563eb;border:none;border-radius:8px;color:#fff;cursor:pointer;display:inline-flex;font-size:.875rem;font-weight:600;gap:7px;padding:9px 18px;transition:all .18s}.btn-form-primary:hover:not(:disabled){background:#1d4ed8;box-shadow:0 3px 10px #2563eb4d}.btn-form-primary:disabled{cursor:not-allowed;opacity:.5}.current-config{padding:20px}.config-row{align-items:center;border-bottom:1px solid #f1f5f9;display:flex;gap:12px;justify-content:space-between;padding:10px 0}.config-label{color:#64748b;flex-shrink:0;font-size:.8rem;font-weight:500}.config-value{color:#1e293b;font-size:.875rem;font-weight:500;text-align:right;word-break:break-all}.status-pill{align-items:center;border-radius:20px;display:inline-flex;font-size:.78rem;font-weight:600;gap:5px;padding:3px 10px}.status-pill.verified{background:#d1fae5;color:#065f46}.status-pill.pending{background:#fef3c7;color:#92400e}.config-alert{margin-top:14px}.alert-success,.alert-warning{align-items:flex-start;border-radius:8px;display:flex;font-size:.8rem;gap:8px;line-height:1.5;padding:10px 13px}.alert-success{background:#ecfdf5;border:1px solid #a7f3d0;color:#064e3b}.alert-warning{background:#fffbeb;border:1px solid #fde68a;color:#78350f}.config-actions{border-top:1px solid #f1f5f9;display:flex;gap:8px;margin-top:16px;padding-top:16px}.btn-form-success{align-items:center;background:#059669;border:none;border-radius:8px;color:#fff;cursor:pointer;display:inline-flex;font-size:.85rem;font-weight:600;gap:7px;padding:8px 14px;transition:all .18s}.btn-form-success:hover:not(:disabled){background:#047857}.btn-form-success:disabled{cursor:not-allowed;opacity:.5}.btn-form-danger{align-items:center;background:#fff;border:1px solid #fecaca;border-radius:8px;color:#dc2626;cursor:pointer;display:inline-flex;font-size:.85rem;font-weight:600;gap:7px;padding:8px 14px;transition:all .18s}.btn-form-danger:hover:not(:disabled){background:#fef2f2}.btn-form-danger:disabled{cursor:not-allowed;opacity:.5}.no-config{color:#94a3b8;font-size:.875rem;line-height:1.6;padding:40px 20px;text-align:center}.no-config p{margin:0 0 4px}.templates-page{max-width:1200px}.templates-toolbar{margin-bottom:20px}.templates-empty,.templates-loading{background:#fff;border:1px solid #e2e8f0;border-radius:12px;color:#94a3b8;font-size:.9rem;line-height:1.7;padding:60px 20px;text-align:center}.templates-empty p{margin:0 0 4px}.templates-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.template-card{background:#fff;border:1px solid #e2e8f0;border-radius:12px;display:flex;flex-direction:column;gap:10px;padding:18px;transition:box-shadow .18s,border-color .18s}.template-card:hover{border-color:#cbd5e1;box-shadow:0 4px 16px #00000012}.template-card-header{align-items:flex-start;display:flex;gap:8px;justify-content:space-between}.template-card-name{color:#0f172a;flex:1 1;font-size:.95rem;font-weight:700;line-height:1.3}.type-badge{border-radius:20px;flex-shrink:0;font-size:.7rem;font-weight:600;letter-spacing:.04em;padding:3px 8px;text-transform:uppercase}.type-badge.type-initial{background:#eff6ff;color:#1d4ed8}.type-badge.type-followup_1,.type-badge.type-followup_2{background:#f5f3ff;color:#5b21b6}.template-card-subject{color:#475569;flex:1 1;font-size:.85rem;line-height:1.4}.template-card-footer{align-items:center;display:flex;justify-content:space-between}.active-pill{border-radius:20px;font-size:.75rem;font-weight:600;padding:2px 8px}.active-pill.active{background:#d1fae5;color:#065f46}.active-pill.inactive{background:#f1f5f9;color:#64748b}.template-date{color:#94a3b8;font-size:.75rem}.template-card-actions{border-top:1px solid #f1f5f9;display:flex;gap:6px;padding-top:10px}.tpl-btn{align-items:center;background:#fff;border:1px solid #e2e8f0;border-radius:6px;color:#374151;cursor:pointer;display:inline-flex;font-size:.78rem;font-weight:500;gap:5px;padding:6px 10px;transition:all .15s}.tpl-btn:hover:not(:disabled){background:#f8fafc;border-color:#cbd5e1}.tpl-btn:disabled{cursor:not-allowed;opacity:.5}.tpl-btn.preview:hover:not(:disabled){background:#eff6ff;border-color:#93c5fd;color:#2563eb}.tpl-btn.edit:hover:not(:disabled){background:#ecfdf5;border-color:#6ee7b7;color:#059669}.tpl-btn.delete:hover:not(:disabled){background:#fef2f2;border-color:#fecaca;color:#dc2626}.modal-overlay{align-items:center;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0f172a8c;display:flex;inset:0;justify-content:center;padding:20px;position:fixed;z-index:1000}.modal-content-lg{background:#fff;border-radius:12px;box-shadow:0 20px 60px #00000040;max-height:90vh;max-width:700px;overflow-y:auto;padding:28px 28px 24px;position:relative;width:100%}.modal-close-x{background:none;border:none;border-radius:4px;color:#94a3b8;cursor:pointer;font-size:1.4rem;line-height:1;padding:2px 6px;position:absolute;right:16px;top:14px;transition:color .18s;z-index:1}.modal-close-x:hover{color:#1e293b}.template-form{width:100%}.template-form h2{color:#0f172a;font-size:1.15rem;font-weight:700;margin-bottom:22px;margin-top:0;padding-right:32px}.form-group{margin-bottom:20px}.form-group label{color:#333;display:block;font-size:.95rem;font-weight:600;margin-bottom:8px}.form-group input[type=text],.form-group select,.form-group textarea{border:1px solid #d1d5db;border-radius:6px;box-sizing:border-box;font-family:inherit;font-size:.95rem;padding:10px 12px;transition:border-color .2s;width:100%}.form-group input[type=text]:focus,.form-group select:focus,.form-group textarea:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.form-group textarea,.html-editor{border-radius:0 0 8px 8px!important;border-top:none!important;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:.85rem;line-height:1.6;min-height:200px;resize:vertical}.form-row{grid-gap:20px;display:grid;gap:20px;grid-template-columns:1fr 1fr}.form-row.full{grid-template-columns:1fr}@media (max-width:768px){.form-row{grid-template-columns:1fr}}.checkbox-group,.checkbox-label{align-items:center;color:#374151;cursor:pointer;display:flex;font-size:.875rem;font-weight:500;gap:8px;margin-top:4px}.checkbox-group input[type=checkbox],.checkbox-label input[type=checkbox]{accent-color:#2563eb;cursor:pointer;height:16px;width:16px}.checkbox-group label{cursor:pointer;font-weight:500;margin:0}.editor-toolbar{background-color:#f8fafc;border:1px solid #e2e8f0;border-radius:8px 8px 0 0;gap:8px;margin-bottom:0;padding:10px 12px}.editor-toolbar,.toolbar-group{align-items:center;display:flex;flex-wrap:wrap}.toolbar-group{gap:6px}.toolbar-group strong{color:#64748b;font-size:.78rem;font-weight:600;white-space:nowrap}.toolbar-section{border-right:1px solid #d1d5db;display:flex;gap:8px;padding-right:8px}.toolbar-section:last-child{border-right:none;padding-right:0}.toolbar-btn,.toolbar-group button:not(.placeholder-btn){align-items:center;background-color:#fff;border:1px solid #d1d5db;border-radius:5px;color:#374151;cursor:pointer;display:inline-flex;font-size:.82rem;font-weight:600;gap:4px;padding:5px 9px;transition:all .15s;white-space:nowrap}.toolbar-btn:hover,.toolbar-group button:not(.placeholder-btn):hover{background-color:#eff6ff;border-color:#93c5fd;color:#2563eb}.toolbar-btn:active,.toolbar-group button:not(.placeholder-btn):active{background-color:#2563eb;border-color:#2563eb;color:#fff}.placeholders-section{background-color:#f0f4ff;border:1px solid #d1d5ef;border-radius:6px;margin-bottom:20px;padding:15px}.placeholders-section h4{color:#667eea;font-size:.95rem;margin-bottom:12px;margin-top:0}.placeholders-grid{grid-gap:8px;display:grid;gap:8px;grid-template-columns:repeat(auto-fit,minmax(120px,1fr))}.placeholder-btn{background-color:#eff6ff;border:1px solid #bfdbfe;border-radius:5px;color:#1d4ed8;cursor:pointer;font-family:monospace;font-size:.78rem;font-weight:600;padding:4px 9px;transition:all .15s;white-space:nowrap}.placeholder-btn:hover{background-color:#2563eb;border-color:#2563eb;color:#fff}.samples-section{border-top:1px solid #e9ecef;margin-top:20px;padding-top:20px}.samples-section details{cursor:pointer}.samples-section summary{color:#667eea;font-weight:600;padding:8px 0;-webkit-user-select:none;user-select:none}.samples-section summary:hover{text-decoration:underline}.sample-code{background-color:#f8f9fa;border:1px solid #e9ecef;border-radius:6px;color:#333;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:.85rem;line-height:1.5;margin-top:12px;overflow-x:auto;padding:12px}.form-actions{border-top:1px solid #e9ecef;display:flex;gap:12px;margin-top:25px;padding-top:20px}.form-actions button{border:none;border-radius:6px;cursor:pointer;flex:1 1;font-size:.95rem;font-weight:600;padding:12px 20px;transition:all .2s}.form-actions .btn-submit{background-color:#667eea;color:#fff}.form-actions .btn-submit:hover:not(:disabled){background-color:#5568d3;box-shadow:0 5px 15px #667eea66;transform:translateY(-2px)}.form-actions .btn-submit:disabled{cursor:not-allowed;opacity:.5}.form-actions .btn-cancel{background-color:#e5e7eb;color:#333}.form-actions .btn-cancel:hover{background-color:#d1d5db}.help-text{color:#666;font-size:.85rem;margin-top:6px}.error-text{color:#ef4444;font-weight:600;margin-top:6px}@media (max-width:600px){.editor-toolbar{flex-direction:column}.toolbar-section{border-bottom:1px solid #d1d5db;border-right:none;padding-bottom:8px;padding-right:0}.toolbar-section:last-child{border-bottom:none;padding-bottom:0}.form-actions{flex-direction:column;gap:10px}.placeholders-grid{grid-template-columns:repeat(2,1fr)}}.template-preview{width:100%}.template-preview h2{color:#333;font-size:1.5rem;margin-bottom:20px;margin-top:0}.preview-controls{background-color:#f8f9fa;border:1px solid #e9ecef;border-radius:6px;margin-bottom:25px;padding:15px}.preview-controls label{color:#333;display:block;font-size:.95rem;font-weight:600;margin-bottom:8px}.preview-controls select{background-color:#fff;border:1px solid #d1d5db;border-radius:6px;cursor:pointer;font-family:inherit;font-size:.95rem;padding:10px 12px;width:100%}.preview-controls select:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.preview-controls .help-text{color:#666;font-size:.85rem;margin-top:6px}.preview-loading{color:#999;padding:40px 20px;text-align:center}.preview-loading .spinner{animation:spin .8s linear infinite;border:3px solid #e9ecef;border-radius:50%;border-top-color:#667eea;height:30px;margin:0 auto 15px;width:30px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.preview-section{background-color:#fff;border:1px solid #e9ecef;border-radius:6px;margin-bottom:25px;padding:20px}.preview-section h3{border-bottom:2px solid #f3f4f6;color:#333;font-size:1.1rem;margin-bottom:15px;margin-top:0;padding-bottom:10px}.subject-preview{background-color:#f0f4ff;border-left:4px solid #667eea;border-radius:6px;color:#333;font-weight:500;padding:15px;word-break:break-word}.email-content-preview{background-color:#fff;border:1px solid #e9ecef;border-radius:6px;color:#333;line-height:1.6;min-height:200px;padding:20px}.email-content-preview p{margin-bottom:12px;margin-top:12px}.email-content-preview h1,.email-content-preview h2,.email-content-preview h3,.email-content-preview h4,.email-content-preview h5,.email-content-preview h6{color:#333;margin-bottom:10px;margin-top:15px}.email-content-preview a{color:#667eea;text-decoration:none}.email-content-preview a:hover{text-decoration:underline}.email-content-preview strong{color:#333;font-weight:600}.email-content-preview em{font-style:italic}.data-table{border-collapse:collapse;margin-top:15px;width:100%}.data-table thead{background-color:#f3f4f6}.data-table th{border-bottom:2px solid #e9ecef;color:#333;font-size:.95rem;font-weight:600;padding:12px 15px;text-align:left}.data-table td{border-bottom:1px solid #e9ecef;color:#555;font-size:.9rem;padding:10px 15px;word-break:break-word}.data-table tbody tr:hover{background-color:#f8f9fa}.data-table .variable-name{color:#667eea;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-weight:600}.data-table .variable-value{color:#333}.source-viewer{margin-top:15px}.source-viewer details{cursor:pointer}.source-viewer summary{align-items:center;color:#667eea;display:flex;font-weight:600;gap:8px;padding:8px 0;-webkit-user-select:none;user-select:none}.source-viewer summary:hover{text-decoration:underline}.source-code{word-wrap:break-word;background-color:#f8f9fa;border:1px solid #e9ecef;border-radius:6px;color:#333;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:.85rem;line-height:1.5;margin-top:12px;overflow-x:auto;padding:15px;white-space:pre-wrap}.preview-empty{color:#999;padding:40px 20px;text-align:center}.preview-error{background-color:#fee2e2;border:1px solid #fecaca;border-radius:6px;color:#991b1b;margin-bottom:15px;padding:15px}.preview-error strong{display:block;margin-bottom:5px}@media (max-width:768px){.preview-section{padding:15px}.data-table td,.data-table th{font-size:.85rem;padding:8px 10px}.source-code{font-size:.8rem;padding:10px}}details>summary:before{content:"▶ ";display:inline-block;transition:transform .2s}details[open]>summary:before{transform:rotate(90deg)}details>summary{outline:none}details>summary:focus{border-radius:4px;outline:2px solid #667eea;outline-offset:2px}.campaigns-page{max-width:1100px;padding:24px}.campaigns-header{align-items:center;display:flex;gap:12px;margin-bottom:24px}.campaigns-header h2{color:#0f172a;font-size:1.25rem;font-weight:600;margin:0}.btn-icon{align-items:center;background:none;border:1px solid #e2e8f0;border-radius:6px;color:#64748b;cursor:pointer;display:flex;padding:6px 8px;transition:background .15s}.btn-icon:hover{background:#f1f5f9;color:#0f172a}.campaigns-empty,.campaigns-loading{align-items:center;color:#94a3b8;display:flex;flex-direction:column;gap:12px;padding:80px 24px;text-align:center}.campaigns-empty h3{color:#475569;font-size:1.1rem;font-weight:600;margin:0}.campaigns-empty p{color:#94a3b8;font-size:.875rem;margin:0}.campaigns-loading{flex-direction:row;font-size:.9rem;padding:40px}.campaigns-list{display:flex;flex-direction:column;gap:8px}.campaign-card{background:#fff;border:1px solid #e2e8f0;border-radius:10px;overflow:hidden;transition:box-shadow .15s}.campaign-card.expanded,.campaign-card:hover{box-shadow:0 2px 8px #00000012}.campaign-card.expanded{border-color:#bfdbfe}.campaign-row{align-items:center;cursor:pointer;display:flex;gap:16px;padding:14px 18px;-webkit-user-select:none;user-select:none}.campaign-row:hover{background:#f8fafc}.campaign-col{display:flex;flex-direction:column;gap:3px}.campaign-name-col{flex:1 1;min-width:0}.campaign-name{color:#0f172a;font-size:.9rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.campaign-template{color:#94a3b8;font-size:.75rem}.campaign-stats-col{align-items:center;flex-direction:row;gap:6px;min-width:160px}.stat-pill{align-items:center;border-radius:999px;display:flex;font-size:.78rem;font-weight:500;gap:4px;padding:3px 8px}.stat-pill.sent{background:#dcfce7;color:#166534}.stat-pill.failed{background:#fee2e2;color:#991b1b}.campaign-progress-col{gap:4px;min-width:140px}.progress-bar-thin{background:#e2e8f0;border-radius:999px;height:5px;overflow:hidden}.progress-bar-fill{background:#2563eb;border-radius:999px;height:100%;transition:width .4s}.progress-label{color:#94a3b8;font-size:.72rem}.campaign-meta-col{align-items:flex-end;min-width:120px}.campaign-date{color:#94a3b8;font-size:.72rem}.campaign-chevron-col{align-items:center;color:#94a3b8;flex-direction:row}.badge{border-radius:999px;display:inline-block;font-size:.72rem;font-weight:600;letter-spacing:.03em;padding:2px 8px;text-transform:uppercase}.badge-success{background:#dcfce7;color:#166534}.badge-info{background:#dbeafe;color:#1d4ed8}.badge-error{background:#fee2e2;color:#991b1b}.badge-default{background:#f1f5f9;color:#64748b}.campaign-detail{border-top:1px solid #e2e8f0;overflow-x:auto;padding:0}.logs-empty,.logs-loading{color:#94a3b8;font-size:.85rem;padding:20px 24px}.logs-table{border-collapse:collapse;font-size:.82rem;width:100%}.logs-table th{background:#f8fafc;border-bottom:1px solid #e2e8f0;color:#64748b;font-size:.72rem;font-weight:600;letter-spacing:.04em;padding:10px 14px;text-align:left;text-transform:uppercase;white-space:nowrap}.logs-table td{border-bottom:1px solid #f1f5f9;color:#334155;padding:10px 14px;vertical-align:middle}.log-row:last-child td{border-bottom:none}.log-row.log-failed td{background:#fffbfb}.log-email{color:#2563eb;font-family:monospace;font-size:.8rem}.log-subject{color:#64748b;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.log-time{color:#94a3b8;white-space:nowrap}.log-reason{color:#ef4444;font-size:.78rem;max-width:180px}.log-badge{align-items:center;border-radius:999px;display:inline-flex;font-size:.75rem;font-weight:600;gap:4px;padding:2px 8px}.log-badge.sent{background:#dcfce7;color:#166534}.log-badge.failed{background:#fee2e2;color:#991b1b}
/*# sourceMappingURL=main.f3d02b47.css.map*/