/* ============================================================
   Campaign Composer Unified Design System
   Based on: /opt/postal-admin/campaign-composer/app.py CSS
   Applied to: ALL Postal Admin services
   ============================================================ */

/* --- Reset & Base --- */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
body{font-family:'Inter',system-ui,-apple-system,sans-serif;background:#f0f2f5;color:#1a1a2e;min-height:100vh}
a{text-decoration:none;color:inherit}

/* --- Topbar --- */
.topbar{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);color:#fff;padding:0 24px;height:56px;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:100;box-shadow:0 2px 8px rgba(0,0,0,.15)}
.topbar h1{font-size:18px;font-weight:600;letter-spacing:-.3px}
.topbar .nav-links{display:flex;gap:16px;align-items:center}
.topbar .nav-links a{color:rgba(255,255,255,.85);font-size:13px;font-weight:500;transition:color .2s;cursor:pointer}
.topbar .nav-links a:hover,.topbar .nav-links a.active{color:#fff}

/* --- Container --- */
.container{max-width:1280px;margin:0 auto;padding:20px}

/* --- Tab Bar --- */
.tab-bar{display:flex;gap:0;margin-bottom:20px;background:#fff;border-radius:12px;box-shadow:0 1px 3px rgba(0,0,0,.08);overflow:hidden}
.tab-btn{padding:12px 24px;font-size:14px;font-weight:600;color:#718096;border:none;background:none;cursor:pointer;transition:all .2s;font-family:inherit;border-bottom:3px solid transparent;flex:1;text-align:center}
.tab-btn:hover{color:#667eea;background:#f7f8fc}
.tab-btn.active{color:#667eea;border-bottom-color:#667eea;background:#f7f8fc}

/* --- Cards --- */
.card{background:#fff;border-radius:12px;box-shadow:0 1px 3px rgba(0,0,0,.08);padding:24px;margin-bottom:20px}
.card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;flex-wrap:wrap;gap:12px}
.card-header h2{font-size:16px;font-weight:600;color:#1a1a2e}

/* --- Buttons --- */
.btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:8px;font-size:13px;font-weight:500;border:none;cursor:pointer;transition:all .2s;font-family:inherit}
.btn-primary{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}
.btn-primary:hover{opacity:.9;transform:translateY(-1px)}
.btn-secondary{background:#f0f2f5;color:#4a5568;border:1px solid #e2e8f0}
.btn-secondary:hover{background:#e2e8f0}
.btn-success{background:#48bb78;color:#fff}
.btn-success:hover{background:#38a169}
.btn-danger{background:#fc5c65;color:#fff}
.btn-danger:hover{background:#eb3b5a}
.btn-warning{background:#f6ad55;color:#fff}
.btn-warning:hover{background:#ed8936}
.btn-sm{padding:5px 10px;font-size:12px}

/* --- Badges --- */
.badge{display:inline-block;padding:3px 10px;border-radius:20px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}
.badge-draft{background:#edf2f7;color:#718096}
.badge-scheduled{background:#ebf8ff;color:#3182ce}
.badge-sending{background:#fefcbf;color:#b7791f;animation:pulse-badge 2s infinite}
.badge-sent{background:#f0fff4;color:#38a169}
.badge-paused{background:#feebc8;color:#c05621}
.badge-failed{background:#fff5f5;color:#e53e3e}
.badge-pending{background:#edf2f7;color:#718096}
.badge-delivered{background:#f0fff4;color:#38a169}
.badge-bounced{background:#fff5f5;color:#e53e3e}
.badge-opened{background:#e6fffa;color:#319795}
.badge-clicked{background:#faf5ff;color:#805ad5}
.badge-skipped{background:#fefcbf;color:#b7791f}
.badge-active{background:#f0fff4;color:#38a169}
.badge-inactive{background:#edf2f7;color:#718096}
.badge-verified{background:#f0fff4;color:#38a169}
.badge-unverified{background:#fff5f5;color:#e53e3e}
.badge-healthy{background:#f0fff4;color:#38a169}
.badge-warning{background:#fefcbf;color:#b7791f}
.badge-critical{background:#fff5f5;color:#e53e3e}
.badge-good{background:#f0fff4;color:#38a169}
.badge-fair{background:#fefcbf;color:#b7791f}
.badge-poor{background:#fff5f5;color:#e53e3e}
.badge-ab_test{background:#faf5ff;color:#805ad5}
.badge-running{background:#fefcbf;color:#b7791f;animation:pulse-badge 2s infinite}
.badge-completed{background:#f0fff4;color:#38a169}
.badge-cancelled{background:#edf2f7;color:#718096}
.badge-clear_winner{background:#f0fff4;color:#38a169}
.badge-moderate_lead{background:#fefcbf;color:#b7791f}
.badge-close_race{background:#fff5f5;color:#e53e3e}
.badge-no_data{background:#edf2f7;color:#718096}
.badge-winner{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}
.badge-info{background:#ebf8ff;color:#3182ce}
.badge-success{background:#f0fff4;color:#38a169}
.badge-danger{background:#fff5f5;color:#e53e3e}
.badge-high{background:#fff5f5;color:#e53e3e}
.badge-medium{background:#fefcbf;color:#b7791f}
.badge-low{background:#f0fff4;color:#38a169}

@keyframes pulse-badge{0%,100%{opacity:1}50%{opacity:.6}}

/* --- Tables --- */
table{width:100%;border-collapse:collapse}
th{text-align:left;font-size:11px;font-weight:600;color:#718096;text-transform:uppercase;letter-spacing:.5px;padding:10px 12px;border-bottom:2px solid #e2e8f0}
td{padding:10px 12px;border-bottom:1px solid #f0f2f5;font-size:13px;vertical-align:middle}
tr:hover td{background:#fafbfc}
tr.clickable{cursor:pointer}
tr.clickable:hover td{background:#f0f4ff}

/* --- Filters & Search --- */
.filters{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:16px}
.filter-btn{padding:6px 14px;border-radius:20px;font-size:12px;font-weight:500;border:1px solid #e2e8f0;background:#fff;color:#4a5568;cursor:pointer;transition:all .2s;font-family:inherit}
.filter-btn.active{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-color:transparent}
.filter-btn:hover:not(.active){background:#f0f2f5}
.search-box{padding:8px 14px;border:1px solid #e2e8f0;border-radius:8px;font-size:13px;font-family:inherit;min-width:200px}
.search-box:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px rgba(102,126,234,.15)}

/* --- Metrics Grid --- */
.metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:20px}
.metric{background:#fff;border-radius:10px;padding:16px;box-shadow:0 1px 3px rgba(0,0,0,.06);text-align:center}
.metric .value{font-size:28px;font-weight:700;color:#1a1a2e;line-height:1.2}
.metric .label{font-size:11px;font-weight:600;color:#a0aec0;text-transform:uppercase;letter-spacing:.5px;margin-top:4px}
.metric .pct{font-size:12px;color:#718096;margin-top:2px}

/* --- Progress Bar --- */
.progress-bar{width:100%;height:8px;background:#e2e8f0;border-radius:4px;overflow:hidden;margin:8px 0}
.progress-bar .fill{height:100%;border-radius:4px;background:linear-gradient(135deg,#667eea,#764ba2);transition:width .5s ease}

/* --- Forms --- */
.form-group{margin-bottom:16px}
.form-group label{display:block;font-size:12px;font-weight:600;color:#4a5568;margin-bottom:6px;text-transform:uppercase;letter-spacing:.3px}
.form-input,.form-select,.form-textarea{width:100%;padding:10px 14px;border:1px solid #e2e8f0;border-radius:8px;font-size:14px;font-family:inherit;transition:border-color .2s}
.form-input:focus,.form-select:focus,.form-textarea:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px rgba(102,126,234,.12)}
.form-textarea{resize:vertical;min-height:100px}
.form-textarea.code{font-family:'JetBrains Mono','Fira Code',monospace;font-size:13px;line-height:1.5;min-height:300px;background:#fafbfc}
input[type="text"],input[type="email"],input[type="password"],input[type="number"],input[type="url"],input[type="search"],input[type="tel"],input[type="date"],input[type="time"],input[type="datetime-local"],select,textarea{padding:10px 14px;border:1px solid #e2e8f0;border-radius:8px;font-size:14px;font-family:'Inter',system-ui,-apple-system,sans-serif;transition:border-color .2s;background:#fff;color:#1a1a2e}
input[type="text"]:focus,input[type="email"]:focus,input[type="password"]:focus,input[type="number"]:focus,input[type="url"]:focus,input[type="search"]:focus,input[type="tel"]:focus,input[type="date"]:focus,input[type="time"]:focus,input[type="datetime-local"]:focus,select:focus,textarea:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px rgba(102,126,234,.12)}

/* --- Split Layout --- */
.split-layout{display:grid;grid-template-columns:1fr 360px;gap:20px}
@media(max-width:900px){.split-layout{grid-template-columns:1fr}}
.side-panel{display:flex;flex-direction:column;gap:16px}

/* --- Action Bar --- */
.bottom-actions{display:flex;gap:8px;flex-wrap:wrap;padding-top:16px;border-top:1px solid #e2e8f0}

/* --- Banners --- */
.warning-banner{background:#fefcbf;border:1px solid #f6e05e;border-radius:8px;padding:10px 14px;font-size:13px;color:#744210;display:flex;align-items:center;gap:8px;margin-bottom:16px}
.info-banner{background:#ebf8ff;border:1px solid #90cdf4;border-radius:8px;padding:10px 14px;font-size:13px;color:#2a4365;display:flex;align-items:center;gap:8px;margin-bottom:16px}
.success-banner{background:#f0fff4;border:1px solid #9ae6b4;border-radius:8px;padding:10px 14px;font-size:13px;color:#22543d;display:flex;align-items:center;gap:8px;margin-bottom:16px}
.error-banner{background:#fff5f5;border:1px solid #feb2b2;border-radius:8px;padding:10px 14px;font-size:13px;color:#742a2a;display:flex;align-items:center;gap:8px;margin-bottom:16px}

/* --- Modals --- */
.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5);z-index:200;display:none;align-items:center;justify-content:center;padding:20px}
.modal-overlay.active{display:flex}
.modal{background:#fff;border-radius:16px;max-width:800px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px rgba(0,0,0,.3)}
.modal-header{padding:20px 24px;border-bottom:1px solid #e2e8f0;display:flex;justify-content:space-between;align-items:center}
.modal-header h3{font-size:16px;font-weight:600}
.modal-body{padding:24px}
.modal-close{background:none;border:none;font-size:20px;cursor:pointer;color:#718096;padding:4px 8px}

/* --- Preview Frame --- */
.preview-frame{width:100%;height:500px;border:1px solid #e2e8f0;border-radius:8px;background:#fff}

/* --- Empty State --- */
.empty-state{text-align:center;padding:60px 20px;color:#a0aec0}
.empty-state .icon{font-size:48px;margin-bottom:12px}
.empty-state h3{font-size:18px;font-weight:600;color:#718096;margin-bottom:8px}
.empty-state p{font-size:14px;max-width:400px;margin:0 auto}

/* --- Recipient Count --- */
.rcpt-count{display:inline-flex;align-items:center;gap:4px;background:#ebf8ff;color:#3182ce;padding:4px 10px;border-radius:12px;font-size:12px;font-weight:600}

/* --- Table Wrapper --- */
.table-wrap{overflow-x:auto}

/* --- Collapsibles --- */
.collapsible-header{cursor:pointer;display:flex;align-items:center;gap:8px;padding:10px 0;font-size:14px;font-weight:600;color:#4a5568}
.collapsible-header:hover{color:#667eea}
.collapsible-body{display:none;padding-top:8px}
.collapsible-body.open{display:block}

/* --- Toasts --- */
.toast-container{position:fixed;top:72px;right:20px;z-index:300;display:flex;flex-direction:column;gap:8px}
.toast{padding:12px 20px;border-radius:8px;font-size:13px;font-weight:500;color:#fff;box-shadow:0 4px 12px rgba(0,0,0,.15);animation:toast-in .3s ease}
.toast-success{background:#48bb78}
.toast-error{background:#fc5c65}
.toast-info{background:#4299e1}
@keyframes toast-in{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}

/* --- Pagination --- */
.pagination{display:flex;gap:4px;align-items:center;justify-content:center;margin-top:16px}
.pagination button{padding:6px 12px;border:1px solid #e2e8f0;border-radius:6px;background:#fff;color:#4a5568;cursor:pointer;font-size:12px;font-family:inherit}
.pagination button:hover{background:#f0f2f5}
.pagination button.active{background:#667eea;color:#fff;border-color:#667eea}
.pagination button:disabled{opacity:.4;cursor:default}
.pagination .page-info{font-size:12px;color:#718096;padding:0 8px}

/* --- AI Panel --- */
.ai-panel{background:linear-gradient(135deg,#f0f4ff 0%,#e8f0fe 100%);border:1px solid #c3d4f7;border-radius:12px;padding:20px;margin-bottom:20px}
.ai-panel-header{display:flex;align-items:center;justify-content:space-between;cursor:pointer;user-select:none}
.ai-panel-header h3{font-size:15px;font-weight:600;color:#1a1a2e;display:flex;align-items:center;gap:8px}
.ai-panel-header .ai-badge{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;font-size:10px;padding:2px 8px;border-radius:10px;font-weight:700;letter-spacing:.5px}
.ai-panel-header .toggle-icon{font-size:12px;color:#718096;transition:transform .2s}
.ai-panel-body{margin-top:16px;display:none}
.ai-panel-body.open{display:block}
.ai-row{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;margin-bottom:12px}
@media(max-width:700px){.ai-row{grid-template-columns:1fr}}
.ai-prompt{width:100%;padding:12px 14px;border:1px solid #c3d4f7;border-radius:8px;font-size:14px;font-family:inherit;resize:vertical;min-height:80px;background:#fff;transition:border-color .2s}
.ai-prompt:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px rgba(102,126,234,.15)}
.ai-prompt::placeholder{color:#a0b4d4}
.ai-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.btn-ai{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;padding:10px 20px;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:6px;transition:all .2s;font-family:inherit}
.btn-ai:hover{opacity:.9;transform:translateY(-1px)}
.btn-ai:disabled{opacity:.5;cursor:not-allowed;transform:none}
.btn-ai-secondary{background:#fff;color:#667eea;border:1px solid #c3d4f7;padding:8px 14px;border-radius:8px;font-size:12px;font-weight:500;cursor:pointer;display:inline-flex;align-items:center;gap:5px;transition:all .2s;font-family:inherit}
.btn-ai-secondary:hover{background:#f0f4ff;border-color:#667eea}
.btn-ai-secondary:disabled{opacity:.5;cursor:not-allowed}
.ai-spinner{display:inline-block;width:14px;height:14px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .6s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.ai-quick-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px;margin-bottom:8px}
.subject-picker{background:#fff;border:1px solid #e2e8f0;border-radius:10px;padding:12px;margin-top:12px}
.subject-option{padding:10px 12px;border:1px solid #e2e8f0;border-radius:8px;margin-bottom:8px;cursor:pointer;transition:all .2s;display:flex;justify-content:space-between;align-items:center}
.subject-option:hover{border-color:#667eea;background:#f0f4ff}
.subject-option .style-tag{font-size:10px;padding:2px 8px;border-radius:10px;background:#edf2f7;color:#718096;font-weight:600;text-transform:uppercase}
.ai-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5);z-index:300;display:none;align-items:center;justify-content:center;padding:20px}
.ai-modal-overlay.active{display:flex}
.ai-modal{background:#fff;border-radius:16px;max-width:500px;width:100%;box-shadow:0 20px 60px rgba(0,0,0,.3);padding:24px}
.ai-modal h3{font-size:16px;font-weight:600;margin-bottom:16px}

/* --- A/B Testing --- */
.ab-section{margin-top:20px}
.ab-create-btn{display:flex;align-items:center;gap:8px;justify-content:center;padding:20px;border:2px dashed #e2e8f0;border-radius:12px;cursor:pointer;color:#667eea;font-weight:600;font-size:14px;transition:all .2s}
.ab-create-btn:hover{border-color:#667eea;background:#f7f8fc}
.ab-variant-card{background:#fff;border:1px solid #e2e8f0;border-radius:10px;padding:16px;margin-bottom:12px;position:relative}
.ab-variant-card.winner{border-color:#48bb78;background:#f0fff4}
.ab-variant-label{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;font-weight:700;font-size:13px;margin-right:10px}
.ab-variant-header{display:flex;align-items:center;margin-bottom:10px}
.ab-variant-subject{font-size:14px;font-weight:600;color:#1a1a2e;flex:1}
.ab-variant-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:8px}
.ab-stat{text-align:center;padding:8px;background:#f7f8fc;border-radius:6px}
.ab-stat .val{font-size:18px;font-weight:700;color:#1a1a2e}
.ab-stat .lbl{font-size:10px;color:#a0aec0;text-transform:uppercase;letter-spacing:.3px}
.ab-bar-container{display:flex;align-items:center;gap:8px;margin-top:8px}
.ab-bar{flex:1;height:24px;background:#e2e8f0;border-radius:4px;overflow:hidden;position:relative}
.ab-bar .fill-open{height:100%;background:#667eea;position:absolute;left:0;top:0;transition:width .5s}
.ab-bar .fill-click{height:100%;background:#48bb78;position:absolute;left:0;top:0;transition:width .5s}
.ab-bar-label{font-size:11px;color:#718096;min-width:40px;text-align:right}
.ab-timeline{display:flex;align-items:center;gap:0;margin:16px 0}
.ab-timeline-step{flex:1;text-align:center;padding:8px;font-size:11px;font-weight:600;color:#a0aec0;border-bottom:3px solid #e2e8f0}
.ab-timeline-step.active{color:#667eea;border-bottom-color:#667eea}
.ab-timeline-step.done{color:#48bb78;border-bottom-color:#48bb78}
.ab-confidence{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border-radius:20px;font-size:12px;font-weight:600}
.ab-settings{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media(max-width:700px){.ab-settings{grid-template-columns:1fr}}
.ab-remove-btn{position:absolute;top:8px;right:8px;background:none;border:none;color:#e53e3e;cursor:pointer;font-size:16px;padding:2px 6px}
.ab-remove-btn:hover{background:#fff5f5;border-radius:4px}

/* --- Stat Cards (used by analytics, dashboard, etc.) --- */
.stat-card,.stats-card{background:#fff;border-radius:12px;box-shadow:0 1px 3px rgba(0,0,0,.08);padding:20px;text-align:center}
.stat-card .stat-value,.stats-card .stat-value{font-size:28px;font-weight:700;color:#1a1a2e;line-height:1.2}
.stat-card .stat-label,.stats-card .stat-label{font-size:11px;font-weight:600;color:#a0aec0;text-transform:uppercase;letter-spacing:.5px;margin-top:4px}
.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:20px}

/* --- Status Indicators --- */
.status-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px}
.status-dot.green{background:#48bb78}
.status-dot.red{background:#fc5c65}
.status-dot.yellow{background:#f6ad55}
.status-dot.blue{background:#4299e1}

/* --- Section Headers --- */
.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;flex-wrap:wrap;gap:12px}
.section-header h2,.section-header h3{font-size:16px;font-weight:600;color:#1a1a2e}

/* --- List Items --- */
.list-item{display:flex;align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid #f0f2f5;transition:background .2s}
.list-item:hover{background:#fafbfc}
.list-item:last-child{border-bottom:none}

/* --- Alert Boxes --- */
.alert{padding:12px 16px;border-radius:8px;font-size:13px;margin-bottom:16px;display:flex;align-items:center;gap:8px}
.alert-success{background:#f0fff4;border:1px solid #9ae6b4;color:#22543d}
.alert-warning{background:#fefcbf;border:1px solid #f6e05e;color:#744210}
.alert-error,.alert-danger{background:#fff5f5;border:1px solid #feb2b2;color:#742a2a}
.alert-info{background:#ebf8ff;border:1px solid #90cdf4;color:#2a4365}

/* --- Score Displays (used by reputation, spam predictor, etc.) --- */
.score-circle{width:120px;height:120px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-direction:column;margin:0 auto 16px;border:4px solid #e2e8f0}
.score-circle.score-good{border-color:#48bb78;color:#38a169}
.score-circle.score-fair{border-color:#f6ad55;color:#c05621}
.score-circle.score-poor{border-color:#fc5c65;color:#e53e3e}
.score-value{font-size:36px;font-weight:700;line-height:1}
.score-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;margin-top:2px}

/* --- Grade Displays (used by AI analyst, deliverability, etc.) --- */
.grade-display{display:flex;align-items:center;justify-content:center;width:64px;height:64px;border-radius:12px;font-size:24px;font-weight:700;color:#fff}
.grade-a{background:linear-gradient(135deg,#48bb78,#38a169)}
.grade-b{background:linear-gradient(135deg,#4299e1,#3182ce)}
.grade-c{background:linear-gradient(135deg,#f6ad55,#ed8936)}
.grade-d{background:linear-gradient(135deg,#fc5c65,#eb3b5a)}
.grade-f{background:linear-gradient(135deg,#e53e3e,#c53030)}

/* --- Chat Interface (AI Coach) --- */
.chat-container{display:flex;flex-direction:column;height:500px;background:#fff;border-radius:12px;box-shadow:0 1px 3px rgba(0,0,0,.08);overflow:hidden}
.chat-messages{flex:1;overflow-y:auto;padding:20px;display:flex;flex-direction:column;gap:12px}
.chat-message{max-width:80%;padding:12px 16px;border-radius:12px;font-size:14px;line-height:1.5}
.chat-message.user{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;align-self:flex-end;border-bottom-right-radius:4px}
.chat-message.assistant{background:#f0f2f5;color:#1a1a2e;align-self:flex-start;border-bottom-left-radius:4px}
.chat-input-area{display:flex;gap:8px;padding:12px 16px;border-top:1px solid #e2e8f0;background:#fafbfc}
.chat-input{flex:1;padding:10px 14px;border:1px solid #e2e8f0;border-radius:8px;font-size:14px;font-family:inherit;resize:none}
.chat-input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px rgba(102,126,234,.12)}

/* --- Timeline (used by engagement, analytics) --- */
.timeline{position:relative;padding-left:24px}
.timeline::before{content:'';position:absolute;left:8px;top:0;bottom:0;width:2px;background:#e2e8f0}
.timeline-item{position:relative;padding-bottom:20px}
.timeline-item::before{content:'';position:absolute;left:-20px;top:4px;width:12px;height:12px;border-radius:50%;background:#667eea;border:2px solid #fff;box-shadow:0 0 0 2px #667eea}

/* --- Toggle Switches --- */
.toggle{position:relative;display:inline-block;width:44px;height:24px}
.toggle input{opacity:0;width:0;height:0}
.toggle .slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background:#e2e8f0;border-radius:24px;transition:.3s}
.toggle .slider::before{content:'';position:absolute;height:18px;width:18px;left:3px;bottom:3px;background:#fff;border-radius:50%;transition:.3s}
.toggle input:checked+.slider{background:linear-gradient(135deg,#667eea,#764ba2)}
.toggle input:checked+.slider::before{transform:translateX(20px)}

/* --- Tags --- */
.tag{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:6px;font-size:11px;font-weight:500;background:#edf2f7;color:#4a5568}
.tag-primary{background:#ebf8ff;color:#3182ce}
.tag-success{background:#f0fff4;color:#38a169}
.tag-warning{background:#fefcbf;color:#b7791f}
.tag-danger{background:#fff5f5;color:#e53e3e}

/* --- Dropdown Menus --- */
.dropdown{position:relative;display:inline-block}
.dropdown-menu{position:absolute;top:100%;right:0;background:#fff;border-radius:8px;box-shadow:0 4px 16px rgba(0,0,0,.12);min-width:180px;z-index:150;display:none;overflow:hidden;margin-top:4px}
.dropdown-menu.open{display:block}
.dropdown-item{padding:8px 14px;font-size:13px;color:#4a5568;cursor:pointer;transition:background .2s;display:flex;align-items:center;gap:8px}
.dropdown-item:hover{background:#f0f4ff;color:#667eea}
.dropdown-divider{height:1px;background:#e2e8f0;margin:4px 0}

/* --- Skeleton Loading --- */
.skeleton{background:linear-gradient(90deg,#e2e8f0 25%,#edf2f7 50%,#e2e8f0 75%);background-size:200% 100%;animation:skeleton-loading 1.5s infinite;border-radius:4px}
@keyframes skeleton-loading{0%{background-position:200% 0}100%{background-position:-200% 0}}

/* --- Scrollbar --- */
::-webkit-scrollbar{width:6px;height:6px}
::-webkit-scrollbar-track{background:#f0f2f5}
::-webkit-scrollbar-thumb{background:#cbd5e0;border-radius:3px}
::-webkit-scrollbar-thumb:hover{background:#a0aec0}

/* --- Print --- */
@media print{
  .topbar,.tab-bar,.filters,.btn,.pagination,.toast-container{display:none!important}
  body{background:#fff}
  .card{box-shadow:none;border:1px solid #e2e8f0}
}

/* --- Mobile Responsive --- */
@media(max-width:768px){
  .container{padding:12px}
  .topbar{padding:0 12px}
  .topbar .nav-links{display:none}
  .card{padding:16px}
  .metrics,.stats-grid{grid-template-columns:repeat(2,1fr)}
  .filters{flex-direction:column;align-items:stretch}
  .search-box{min-width:0}
  .tab-bar{flex-direction:column}
  .tab-btn{border-bottom:none;border-left:3px solid transparent}
  .tab-btn.active{border-left-color:#667eea}
  .modal{max-width:100%;margin:10px}
  .chat-container{height:400px}
  .ab-variant-stats{grid-template-columns:repeat(2,1fr)}
}

@media(max-width:480px){
  .metrics,.stats-grid{grid-template-columns:1fr}
  .topbar h1{font-size:15px}
}

/* ============================================================
   HIGH SPECIFICITY OVERRIDES
   Ensures this CSS wins over inline <style> blocks in apps
   ============================================================ */

/* Override any inline body backgrounds */
html body{font-family:'Inter',system-ui,-apple-system,sans-serif!important;background:#f0f2f5!important;color:#1a1a2e!important}

/* Override any inline topbar styles */
html .topbar,body .topbar{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%)!important;color:#fff!important;height:56px!important}

/* Override inline card styles */
html .card,body .card{background:#fff!important;border-radius:12px!important;box-shadow:0 1px 3px rgba(0,0,0,.08)!important}

/* Override inline tab buttons */
html .tab-btn.active,body .tab-btn.active{color:#667eea!important;border-bottom-color:#667eea!important;background:#f7f8fc!important}

/* Override inline metric values */
html .metric .value,body .metric .value{color:#1a1a2e!important}

/* Override inline btn-primary */
html .btn-primary,body .btn-primary{background:linear-gradient(135deg,#667eea,#764ba2)!important;color:#fff!important}

/* Override dark mode artifacts from old design-system.css */
html body[style*="background"],
body[style*="background"]{background:#f0f2f5!important}

/* --- Tabs (alternate class names used by engagement, deliverability, ai-analyst, spam-predictor, contacts, events) --- */
.tabs{display:flex;gap:0;margin-bottom:20px;background:#fff;border-radius:12px;box-shadow:0 1px 3px rgba(0,0,0,.08);overflow:hidden}
.tabs .tab{padding:12px 24px;font-size:14px;font-weight:600;color:#718096;border:none;background:none;cursor:pointer;transition:all .2s;font-family:inherit;border-bottom:3px solid transparent;flex:1;text-align:center}
.tabs .tab:hover{color:#667eea;background:#f7f8fc}
.tabs .tab.active{color:#667eea;border-bottom-color:#667eea;background:#f7f8fc}
.tab-panel{display:none}
.tab-panel.active{display:block}

/* --- Engagement engine specific --- */
.seg-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-bottom:20px}
.seg-card{background:#fff;border-radius:10px;box-shadow:0 1px 3px rgba(0,0,0,.08);padding:16px;cursor:pointer;transition:all .2s}
.seg-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px rgba(0,0,0,.12)}
.seg-badge{display:inline-block;padding:3px 10px;border-radius:20px;font-size:11px;font-weight:600;color:#fff;text-transform:capitalize}
.seg-card .count{font-size:24px;font-weight:700;margin:8px 0 4px;color:#1a1a2e}
.seg-card .meta{font-size:12px;color:#718096}
.chart-row{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:20px}
.chart-box{background:#fff;border-radius:12px;box-shadow:0 1px 3px rgba(0,0,0,.08);padding:20px}
.chart-box h3{font-size:14px;font-weight:600;margin-bottom:12px}
.score-bar{width:60px;height:6px;background:#e2e8f0;border-radius:3px;display:inline-block;vertical-align:middle;margin-right:6px}
.score-fill{height:100%;border-radius:3px}
.toolbar{display:flex;gap:8px;margin-bottom:16px;align-items:center;flex-wrap:wrap}
.toolbar input,.toolbar select{padding:8px 12px;border:1px solid #e2e8f0;border-radius:8px;font-size:13px;font-family:inherit}
.toolbar input:focus,.toolbar select:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px rgba(102,126,234,.12)}
.breakdown-table .positive{color:#38a169;font-weight:600}
.breakdown-table .negative{color:#e53e3e;font-weight:600}

/* --- Loading & Spinner --- */
.loading{text-align:center;padding:40px;color:#a0aec0;font-size:14px}
.spinner{display:inline-block;width:24px;height:24px;border:3px solid #e2e8f0;border-top-color:#667eea;border-radius:50%;animation:spin .6s linear infinite;margin-bottom:8px}

/* --- Toast (standalone, used by engagement) --- */
.toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%) translateY(100px);background:#1a1a2e;color:#fff;padding:12px 24px;border-radius:8px;font-size:13px;font-weight:500;box-shadow:0 4px 12px rgba(0,0,0,.2);transition:transform .3s ease;z-index:400}
.toast.show{transform:translateX(-50%) translateY(0)}

@media(max-width:768px){
  .tabs{flex-direction:column}
  .tabs .tab{border-bottom:none;border-left:3px solid transparent}
  .tabs .tab.active{border-left-color:#667eea}
  .seg-cards{grid-template-columns:1fr 1fr}
  .chart-row{grid-template-columns:1fr}
}
@media(max-width:480px){
  .seg-cards{grid-template-columns:1fr}
}
