:root{
  --bg:#f6f8fc;
  --card:#ffffff;
  --text:#101828;
  --muted:#667085;
  --line:#e6eaf2;
  --primary:#6366f1;
  --primary-dark:#4f46e5;
  --green:#16a34a;
  --blue:#2563eb;
  --orange:#f59e0b;
  --red:#ef4444;
  --pink:#ec4899;
  --purple:#8b5cf6;
  --shadow:0 16px 40px rgba(16,24,40,.08);
  --soft-shadow:0 8px 24px rgba(16,24,40,.06);
  --radius:20px;
}
*{box-sizing:border-box}
body{margin:0;background:radial-gradient(circle at top left,#eef2ff 0,#f8fafc 34%,#f6f8fc 100%);font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--text)}
button,input,select{font:inherit}
button{cursor:pointer;border:0;background:none}
.app-shell{max-width:1560px;margin:0 auto;padding:20px}
.top-header{position:sticky;top:0;z-index:50;display:grid;grid-template-columns:260px 1fr auto;gap:18px;align-items:center;padding:16px 18px;background:rgba(255,255,255,.88);backdrop-filter:blur(18px);border:1px solid rgba(230,234,242,.9);border-radius:24px;box-shadow:var(--soft-shadow)}
.brand{display:flex;align-items:center;gap:12px}.brand-icon{display:grid;place-items:center;width:46px;height:46px;border-radius:15px;background:linear-gradient(135deg,#fff7ed,#eef2ff);font-size:24px}.brand h1{margin:0;color:var(--primary-dark);font-size:25px}.brand p{margin:3px 0 0;color:var(--muted);font-size:13px}.kpi-strip{display:grid;grid-template-columns:repeat(5,minmax(120px,1fr));gap:12px}.kpi-card{min-height:78px;padding:14px 16px;background:linear-gradient(180deg,#fff,#fbfdff);border:1px solid var(--line);border-radius:18px;box-shadow:0 6px 18px rgba(16,24,40,.04)}.kpi-card span{display:block;color:var(--muted);font-size:12px}.kpi-card strong{display:block;margin-top:7px;font-size:22px}.kpi-card em{display:block;margin-top:4px;color:var(--green);font-size:12px;font-style:normal;font-weight:700}.score-card{display:flex;align-items:center;gap:12px}.score-ring{display:grid;place-items:center;width:48px;height:48px;border-radius:50%;border:5px solid #22c55e;color:#15803d;font-weight:800;background:#f0fdf4}.user-menu{display:flex;align-items:center;gap:10px}.user-menu img{width:40px;height:40px;border-radius:50%;object-fit:cover}.user-menu strong{display:block;font-size:13px}.user-menu span{color:var(--muted);font-size:12px}.icon-btn{display:inline-grid;place-items:center;width:36px;height:36px;border-radius:12px;background:#f8fafc;border:1px solid var(--line);color:#344054}.chevron{color:var(--muted)}
.tabs{position:sticky;top:116px;z-index:40;display:flex;gap:10px;margin:14px 0 20px;padding:10px;background:rgba(255,255,255,.82);backdrop-filter:blur(16px);border:1px solid var(--line);border-radius:20px;box-shadow:0 8px 18px rgba(16,24,40,.04);overflow:auto}.tab-btn{white-space:nowrap;padding:12px 18px;border-radius:14px;color:#475467;font-weight:700}.tab-btn:hover{background:#f2f4f7}.tab-btn.active{background:linear-gradient(135deg,var(--primary),var(--purple));color:white;box-shadow:0 10px 22px rgba(99,102,241,.28)}
.content{min-height:70vh}.page{display:none;animation:fadeIn .22s ease}.page.active{display:block}@keyframes fadeIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:18px}.eyebrow{margin:0 0 6px;color:var(--primary-dark);font-weight:800}.page-head h2{margin:0;font-size:24px}.actions,.end-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:38px;padding:0 15px;border-radius:12px;border:1px solid var(--line);font-weight:800;font-size:13px;transition:.18s ease}.btn:hover{transform:translateY(-1px);box-shadow:0 8px 16px rgba(16,24,40,.08)}.btn.primary{background:var(--primary);border-color:var(--primary);color:white}.btn.gradient{background:linear-gradient(135deg,var(--primary),var(--purple));border-color:transparent;color:#fff}.btn.ghost{background:white}.btn.soft{background:#f8fafc;color:#475467}.btn.success{background:#ecfdf3;color:#067647;border-color:#abefc6}.btn.warning{background:#fff7ed;color:#b54708;border-color:#fed7aa}.btn.danger{background:#fee2e2;color:#b91c1c;border-color:#fecaca}.btn.tag{background:#eef2ff;color:#4338ca}.btn.wide{width:100%;margin-top:18px}.dropdown-wrap{position:relative}.dropdown-menu{display:none;position:absolute;right:0;top:46px;width:230px;padding:8px;background:white;border:1px solid var(--line);box-shadow:var(--shadow);border-radius:16px;z-index:20}.dropdown-menu.show{display:block}.dropdown-menu button{width:100%;text-align:left;padding:12px;border-radius:10px;color:#344054}.dropdown-menu button:hover{background:#f8fafc}
.filter-card{display:grid;grid-template-columns:minmax(240px,1.8fr) repeat(5,minmax(140px,1fr)) auto auto;gap:10px;margin-bottom:14px;padding:14px;background:white;border:1px solid var(--line);border-radius:18px;box-shadow:var(--soft-shadow)}.filter-card.small-filter{grid-template-columns:minmax(260px,420px) 190px}.search-input{display:flex;align-items:center;gap:8px;padding:0 12px;background:#f9fafb;border:1px solid var(--line);border-radius:12px}.search-input input{width:100%;height:40px;border:0;outline:0;background:transparent}select,input{height:42px;border:1px solid var(--line);border-radius:12px;background:#fff;color:#344054;padding:0 12px}.bulk-bar{display:flex;align-items:center;gap:10px;margin-bottom:14px;padding:12px 14px;background:white;border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow);animation:slideDown .25s ease}.ml-auto{margin-left:auto}@keyframes slideDown{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:none}}
.main-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;transition:grid-template-columns 0.3s ease}.main-grid.has-detail{grid-template-columns:minmax(0,1fr) 330px}.card,.table-card,.detail-panel{background:white;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--soft-shadow)}.table-card{overflow:hidden}.table-scroll{overflow:auto}.table-scroll.compact{max-height:260px}.data-table{width:100%;border-collapse:separate;border-spacing:0;min-width:1200px}.data-table th,.data-table td{padding:14px 16px;border-bottom:1px solid #eef2f6;text-align:left;font-size:13px;vertical-align:middle;white-space:nowrap}.data-table th:nth-child(3),.data-table td:nth-child(3){min-width:240px;white-space:normal}.data-table th{position:sticky;top:0;background:#f9fafb;color:#667085;font-size:12px;letter-spacing:.02em;font-weight:700}.data-table tbody tr:hover{background:#f8faff}.data-table tbody tr.selected{background:#eef4ff}.company-link{font-weight:800;color:#1d2939;text-align:left}.company-link:hover{color:var(--primary-dark);text-decoration:underline}.status,.source,.grade,.mini-tag{display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:800;border-radius:999px}.status{padding:5px 9px}.status.valid{background:#dcfce7;color:#15803d}.status.typo{background:#fef3c7;color:#b45309}.status.invalid{background:#fee2e2;color:#b91c1c}.status.disposable{background:#fce7f3;color:#be185d}.source{padding:4px 8px}.source.gmap{background:#dbeafe;color:#1d4ed8}.source.hsct{background:#ede9fe;color:#6d28d9}.source.tv{background:#ffedd5;color:#c2410c}.source.mst{background:#dcfce7;color:#15803d}.grade{width:28px;height:28px;color:white}.grade.a{background:#16a34a}.grade.b{background:#3b82f6}.grade.c{background:#f59e0b}.grade.d{background:#f97316}.grade.f{background:#ec4899}.pagination{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;color:var(--muted);font-size:13px}.pages{display:flex;gap:5px;align-items:center}.pages button{min-width:34px;height:34px;border-radius:10px;border:1px solid var(--line);background:#fff}.pages button.active{background:var(--primary);color:#fff;border-color:var(--primary)}
.detail-panel{padding:18px;align-self:start;position:sticky;top:190px}.detail-head{display:flex;justify-content:space-between;align-items:start;gap:12px}.detail-head h3{margin:0;font-size:17px}.detail-list{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:18px}.detail-list div{padding-bottom:12px;border-bottom:1px dashed #e4e7ec}.detail-list .full{grid-column:1/-1}.detail-list span{display:block;color:var(--muted);font-size:12px;margin-bottom:6px}.detail-list strong{font-size:13px}.link{color:var(--primary-dark)}.green{color:var(--green)}.mini-tag{padding:5px 9px;margin:3px;background:#eef2ff;color:#4338ca}
.import-layout{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:16px}.card{padding:18px}.chip-row{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}.chip{height:38px;padding:0 14px;border-radius:999px;background:#fff;border:1px solid var(--line);font-weight:700;color:#475467}.chip.active{background:#eef2ff;color:var(--primary-dark);border-color:#c7d2fe}.upload-zone{display:grid;place-items:center;text-align:center;gap:8px;min-height:240px;margin-bottom:18px;border:2px dashed #a5b4fc;border-radius:22px;background:linear-gradient(135deg,#f8faff,#fff);color:#475467;cursor:pointer}.upload-zone:hover{background:#eef2ff;border-style:solid}.upload-icon{font-size:48px}.upload-zone strong{font-size:18px;color:#344054}.file-badges{display:flex;gap:7px}.file-badges b{padding:5px 9px;border-radius:999px;background:#eef2ff;color:#4338ca;font-size:11px}.side-card h3,.card h3{margin:0 0 14px}.mapping-list,.batch-list{display:grid;gap:10px}.mapping-item,.batch-item{padding:12px;border:1px solid var(--line);border-radius:14px;background:#fbfcff;overflow:hidden}.mapping-item{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center}.mapping-item small,.batch-item small{color:var(--muted)}.confidence{padding:4px 8px;border-radius:999px;font-size:12px;font-weight:800}.confidence.high{background:#dcfce7;color:#15803d}.confidence.mid{background:#fef3c7;color:#b45309}.mt{margin-top:24px!important}.batch-item{display:flex;gap:10px;justify-content:space-between;align-items:start}.batch-item strong{display:block;word-wrap:break-word;overflow-wrap:anywhere}.batch-meta{display:grid;gap:3px;overflow:hidden;width:100%}
.segments-layout{display:grid;grid-template-columns:340px 1fr;gap:16px}.segment-form{align-self:start}.segment-form label{display:grid;gap:7px;margin-bottom:12px;color:#344054;font-size:13px;font-weight:700}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.check-row{display:flex;gap:16px;margin:14px 0}.segment-grid{display:grid;grid-template-columns:repeat(3,minmax(180px,1fr));gap:14px}.segment-card{padding:18px;background:white;border:1px solid var(--line);border-radius:20px;box-shadow:var(--soft-shadow)}.segment-top{display:flex;gap:10px;align-items:center}.segment-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:14px;background:#eef2ff;font-size:20px}.segment-card h3{font-size:15px}.segment-card p{color:var(--muted);font-size:13px;min-height:42px}.segment-number{display:block;margin:14px 0 2px;color:var(--primary-dark);font-size:28px;font-weight:900}.segment-actions{display:flex;gap:8px;margin-top:12px}.segment-actions button{height:34px;padding:0 10px;border:1px solid var(--line);border-radius:10px;background:#fff;font-weight:800;color:#475467}.segment-actions button:last-child{color:var(--red)}
.dedup-control{display:grid;grid-template-columns:160px 1fr 60px auto 170px;align-items:center;gap:14px;margin-bottom:14px}.dedup-control input{width:100%}.warning-banner{margin-bottom:14px;padding:16px 18px;border:1px solid #fed7aa;border-radius:18px;background:#fff7ed;color:#9a3412}.dedup-list{display:grid;gap:14px}.dedup-group{overflow:hidden;background:white;border:1px solid var(--line);border-radius:20px;box-shadow:var(--soft-shadow)}.dedup-group-head{display:flex;justify-content:space-between;gap:12px;padding:14px 16px;background:#fff7ed;border-bottom:1px solid #fed7aa}.dedup-group-head strong{color:#9a3412}.dedup-group .data-table{min-width:820px}
.stats-kpis{display:grid;grid-template-columns:repeat(7,minmax(130px,1fr));gap:12px;margin-bottom:16px}.stat-mini{position:relative;padding:16px;background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:var(--soft-shadow);overflow:hidden}.stat-mini:before{content:"";position:absolute;inset:0 0 auto;height:4px;background:var(--primary)}.stat-mini.green:before{background:var(--green)}.stat-mini.blue:before{background:var(--blue)}.stat-mini.orange:before{background:var(--orange)}.stat-mini.red:before{background:var(--red)}.stat-mini.purple:before{background:var(--purple)}.stat-mini.pink:before{background:var(--pink)}.stat-mini span{color:var(--muted);font-size:12px}.stat-mini strong{display:block;margin-top:8px;font-size:22px}.chart-grid{display:grid;grid-template-columns:repeat(2,minmax(280px,1fr));gap:16px}.chart-card{padding:18px;background:white;border:1px solid var(--line);border-radius:20px;box-shadow:var(--soft-shadow)}.chart-card h3{margin:0 0 14px}.bar-row{display:grid;grid-template-columns:130px 1fr 90px;align-items:center;gap:10px;margin:12px 0;font-size:13px}.bar-track{height:12px;background:#eef2f7;border-radius:999px;overflow:hidden}.bar-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,var(--primary),#a78bfa)}.bar-fill.green{background:linear-gradient(90deg,#22c55e,#86efac)}.bar-fill.orange{background:linear-gradient(90deg,#f59e0b,#fdba74)}.bar-fill.red{background:linear-gradient(90deg,#ef4444,#fda4af)}.bar-fill.blue{background:linear-gradient(90deg,#3b82f6,#93c5fd)}.toast-container{position:fixed;right:22px;bottom:22px;z-index:999;display:flex;flex-direction:column;gap:8px}.toast{padding:14px 18px;background:#101828;color:white;border-radius:16px;box-shadow:var(--shadow);animation:toastIn .35s ease;transition:opacity .3s;font-size:13px;font-weight:600;max-width:380px}@keyframes toastIn{from{opacity:0;transform:translateX(20px)}to{opacity:1;transform:none}}
@media (max-width:1200px){.top-header{grid-template-columns:1fr}.kpi-strip{grid-template-columns:repeat(3,1fr)}.main-grid,.import-layout,.segments-layout{grid-template-columns:1fr}.detail-panel{position:static}.stats-kpis{grid-template-columns:repeat(3,1fr)}.segment-grid{grid-template-columns:repeat(2,1fr)}.filter-card{grid-template-columns:1fr 1fr}.actions{justify-content:flex-start}}
@media (max-width:768px){.app-shell{padding:12px}.top-header{border-radius:18px}.kpi-strip{grid-template-columns:1fr 1fr}.page-head{display:grid}.filter-card,.filter-card.small-filter,.dedup-control{grid-template-columns:1fr}.segment-grid,.chart-grid,.stats-kpis{grid-template-columns:1fr}.detail-list{grid-template-columns:1fr}.pagination{align-items:flex-start;flex-direction:column}.tabs{top:0}.user-menu{justify-content:space-between}.brand h1{font-size:22px}}

/* Email Sender Specific Component Styles */
.kpi-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 16px; margin-bottom: 24px; }
.event-row { display: flex; align-items: center; gap: 12px; padding: 12px; border-bottom: 1px solid var(--line); }
.event-row:last-child { border-bottom: none; }
.event-icon { font-size: 20px; width: 32px; text-align: center; }
.event-info { flex: 1; }
.ev-email { font-weight: 600; color: var(--text); }
.ev-detail { font-size: 12px; color: var(--muted); }
.event-time { font-size: 12px; color: var(--muted); }
.campaign-card, .template-card { display: flex !important; flex-direction: row !important; align-items: center !important; gap: 14px; padding: 16px; border: 1px solid var(--line); border-radius: 14px; background: white; margin-bottom: 12px; box-shadow: var(--soft-shadow); transition: 0.2s ease; flex-wrap: nowrap; }
.camp-icon { font-size: 24px; width: 44px; height: 44px; display: grid; place-items: center; background: linear-gradient(135deg, #fff7ed, #eef2ff); border-radius: 12px; flex-shrink: 0; }
.tpl-name { font-weight: 700; font-size: 14px; color: var(--text); }
.tpl-type { font-size: 12px; color: var(--muted); margin-top: 2px; }
.campaign-card:hover, .template-card:hover { transform: translateY(-2px); box-shadow: var(--shadow); }
.campaign-header, .template-header { display: flex; justify-content: space-between; align-items: center; }
.card-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 16px; border-bottom: 1px dashed var(--line); padding-bottom: 12px; }
.card-header h3 { margin: 0; font-size: 18px; color: var(--primary-dark); }
.form-section { background: #f9fafb; padding: 16px; border-radius: 12px; margin-bottom: 20px; border: 1px solid var(--line); }
.form-row { display: flex; gap: 12px; margin-bottom: 12px; }
.campaign-limit { display:flex; flex:1; min-width:145px; flex-direction:column; gap:6px; color:var(--muted); font-size:12px; font-weight:600; }
.campaign-limit .input { width:100%; }
.campaign-list-field { display:flex; min-width:0; flex:2; flex-direction:column; gap:6px; color:var(--muted); font-size:12px; font-weight:600; }
.campaign-list-field .input { width:100%; height:auto; min-height:96px; font-family:ui-monospace,monospace; font-size:13px; }
.campaign-recipient-field { width:100%; margin:0 0 12px; }
.distribution-row { margin-top: 4px; }
.distribution-row .campaign-list-field { max-width: 420px; }
.distribution-row select.input { min-height: 42px; font-family: inherit; }
.fanout-options { display: grid; gap: 10px; margin: 0 0 14px; padding: 12px; border: 1px solid #f0d38a; border-radius: 8px; background: #fff9e8; color: #57410b; }
.fanout-options[hidden] { display: none; }
.fanout-confirm { display: flex; align-items: flex-start; gap: 8px; font-size: 13px; line-height: 1.45; }
.fanout-confirm input { width: 16px; height: 16px; margin: 2px 0 0; flex: 0 0 auto; }
.input, textarea { height: 42px; border: 1px solid var(--line); border-radius: 12px; background: #fff; color: #344054; padding: 10px 12px; font: inherit; outline: none; }
textarea { height: auto; resize: vertical; }
.btn-sm { min-height: 32px; padding: 0 12px; font-size: 12px; border-radius: 8px; }
.action-bar { display: flex; justify-content: flex-end; gap: 12px; margin-top: 16px; }
.settings-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-bottom: 24px; }
.range-number-pair { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.range-number-field { display:flex; min-width:0; flex-direction:column; gap:8px; }
.setting-item { display: flex; flex-direction: column; gap: 8px; }
.sender-picker{flex:2;min-width:260px;margin:0;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:#fff}
.sender-picker legend{padding:0 5px;color:var(--muted);font-size:12px;font-weight:700}
.sender-options{display:flex;flex-wrap:wrap;gap:8px}
.sender-option{display:flex;align-items:center;gap:7px;min-height:36px;padding:5px 9px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--text);font-size:13px}
.sender-option input[type=checkbox]{width:16px;height:16px;margin:0;accent-color:var(--primary)}
.muted{color:var(--muted);font-size:13px}

/* ── Login Overlay ── */
.login-overlay{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at top left,#eef2ff 0,#f8fafc 34%,#f6f8fc 100%)}
.login-overlay.hidden{display:none}
.login-card{width:100%;max-width:380px;padding:40px 32px;background:#fff;border:1px solid var(--line);border-radius:24px;box-shadow:0 20px 60px rgba(16,24,40,.12);text-align:center}
.login-card h2{margin:12px 0 4px;font-size:22px;color:var(--primary-dark)}
.login-logo{font-size:48px;margin-bottom:8px}
.login-card .input{width:100%;margin-bottom:0}
.login-card .btn{font-size:15px;height:44px}

/* ── Role-based visibility ── */
.tab-btn.admin-only.hidden-role{display:none}


/* ── sipi.to brand layer ── */
:root {
  --bg: #F4F5F7;
  --card: #FFFFFF;
  --text: #1F2937;
  --muted: #687280;
  --line: #E4E8EF;
  --primary: #1F5FD6;
  --primary-dark: #0B2E83;
  --blue: #1F5FD6;
  --orange: #E7AA15;
  --purple: #0B2E83;
  --shadow: 0 12px 34px rgba(11, 46, 131, .08);
  --soft-shadow: 0 8px 24px rgba(11, 46, 131, .06);
  --radius: 16px;
}

body {
  color: #1F2937;
  background: radial-gradient(circle at 92% 3%, rgba(242, 194, 71, .13), transparent 23rem), #F4F5F7;
  font-family: 'Montserrat', 'Inter', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}

h1, h2, h3, h4 { color: #0B2E83; letter-spacing: -.02em; }
.app-shell { max-width: 1600px; }
.top-header {
  border-color: #E4E8EF;
  border-radius: 16px;
  box-shadow: 0 12px 34px rgba(11, 46, 131, .08);
}
.brand-icon { background: linear-gradient(135deg, rgba(242,194,71,.28), rgba(31,95,214,.12)); }
.kpi-card, .card, .table-card, .detail-panel, .campaign-card, .template-card, .segment-card, .chart-card, .stat-mini, .dedup-group, .login-card, .modal-content {
  border-color: #E4E8EF;
  border-radius: 16px;
  box-shadow: 0 8px 24px rgba(11, 46, 131, .06);
}
.kpi-card { background: #fff; }
.tabs { border-color: #E4E8EF; border-radius: 16px; }
.tab-btn.active { background: linear-gradient(135deg, #1F5FD6, #0B2E83); box-shadow: 0 8px 20px rgba(31,95,214,.22); }
.btn.primary, .btn.gradient { background: linear-gradient(135deg, #1F5FD6, #0B2E83); border-color: #1F5FD6; color: #fff; box-shadow: 0 7px 18px rgba(31,95,214,.20); }
.btn.primary:hover, .btn.gradient:hover { box-shadow: 0 10px 24px rgba(31,95,214,.28); }
.btn.warning { background: #FFF4D4; color: #8B5A00; border-color: #F2D27A; }
input, select, textarea, .input { border-color: #E4E8EF; border-radius: 10px; color: #1F2937; }
input:focus, select:focus, textarea:focus, .input:focus { outline: 3px solid rgba(31,95,214,.14); border-color: #1F5FD6; }
.form-section { background: #FAFBFC; border-color: #E4E8EF; border-radius: 14px; }
.card-header { border-color: #E4E8EF; }
.card-header h3 { color: #0B2E83; }
.camp-icon { background: linear-gradient(135deg, rgba(242,194,71,.26), rgba(31,95,214,.12)); }
.data-table th { background: #F4F5F7; color: #687280; }
.data-table tbody tr:hover { background: rgba(31,95,214,.035); }
::selection { color: #0B2E83; background: rgba(242,194,71,.34); }

@media (max-width: 768px) {
  .top-header { border-radius: 14px; }
  .card { padding: 16px; }
}

.campaign-card {
  display: grid !important;
  grid-template-columns: 44px minmax(180px, 1fr) auto minmax(150px, auto);
  align-items: center !important;
  flex-wrap: initial;
  cursor: pointer;
}
.camp-info { min-width: 0; }
.camp-name { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; font-weight: 700; }
.camp-meta { margin-top: 4px; color: var(--muted); font-size: 13px; overflow-wrap: anywhere; }
.camp-progress { display: flex; align-items: center; gap: 8px; max-width: 360px; margin-top: 10px; color: var(--muted); font-size: 12px; }
.camp-progress-track { height: 8px; min-width: 90px; flex: 1; overflow: hidden; border-radius: 999px; background: #e9edf2; }
.camp-progress-track span { display: block; height: 100%; border-radius: inherit; background: #16845b; transition: width .2s ease; }
.camp-stats { display: grid; grid-template-columns: repeat(3, minmax(58px, auto)); gap: 10px; }
.stat { min-width: 58px; text-align: center; }
.stat-value { color: var(--text); font-size: 17px; font-weight: 700; }
.stat-label { margin-top: 3px; color: var(--muted); font-size: 11px; }
.stat.failed .stat-value { color: #b42318; }
.camp-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 6px; }
.detail-progress { display: grid; gap: 10px; margin-bottom: 18px; padding: 14px; border: 1px solid var(--line); border-radius: 8px; }
.detail-progress > div:first-child { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 8px; }
.detail-progress small { color: var(--muted); }
.recipient-progress-header { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 18px 0 8px; }
.recipient-progress-header h4 { margin: 0; }
.campaign-recipient-table { max-height: 300px; margin-bottom: 18px; overflow: auto; border: 1px solid var(--line); border-radius: 8px; }
.campaign-recipient-table table { width: 100%; border-collapse: collapse; font-size: 13px; }
.campaign-recipient-table th, .campaign-recipient-table td { padding: 9px 10px; border-bottom: 1px solid var(--line); text-align: left; overflow-wrap: anywhere; }
.campaign-recipient-table th { position: sticky; top: 0; background: #f4f5f7; }
.campaign-recipient-table small { display: block; padding: 8px 10px; color: var(--muted); }
@media (max-width: 980px) {
  .campaign-card { grid-template-columns: 44px minmax(0, 1fr); }
  .camp-stats, .camp-actions { grid-column: 2; justify-content: flex-start; }
}
@media (max-width: 560px) {
  .camp-stats { grid-template-columns: repeat(3, minmax(48px, 1fr)); }
  .camp-actions .btn { flex: 1; }
}
