*{box-sizing:border-box}body{margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:#f3f4f6;color:#111827}#root{min-height:100vh}.muted{color:#5f6b7a;margin-bottom:12px;font-size:14px;line-height:1.45}.card{background:#fff;border:1px solid #d8dee7;border-radius:12px;padding:18px;margin-bottom:16px;box-shadow:0 2px 6px #0f172a0a}.card h2{margin:0 0 10px;font-size:17px}h1{margin:0 0 8px;font-size:26px;letter-spacing:-.02em}.uploadForm{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.filterBar{display:flex;gap:10px;margin-bottom:14px;flex-wrap:wrap;align-items:center}.filterBar input{min-width:320px;flex:1;border:1px solid #d1d5db;border-radius:8px;padding:10px}.campaignCreateForm{display:grid;gap:10px}.campaignCreateForm input,.campaignCreateForm select,.campaignCreateForm textarea{border:1px solid #d1d5db;border-radius:8px;padding:10px;font:inherit;background:#fff}input:focus,select:focus,textarea:focus{outline:2px solid #bfdbfe;border-color:#2563eb}.assignGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;margin-bottom:16px}.assignGrid select[multiple]{width:100%;border:1px solid #d1d5db;border-radius:8px;padding:8px}.statsGrid{margin-top:12px;display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px}.statCard{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:10px;font-size:14px}.statCard strong{display:block;color:#334155;margin-bottom:6px}.statCard div{font-size:20px;font-weight:700;color:#0f172a}.rowActions{display:flex;gap:8px;flex-wrap:wrap}.inlineControl{display:inline-flex;align-items:center;gap:6px;font-size:14px}.inlineControl select{border:1px solid #d1d5db;border-radius:6px;padding:6px}.checkboxControl{-webkit-user-select:none;user-select:none}button{border:1px solid transparent;border-radius:8px;padding:9px 13px;background:#2563eb;color:#fff;cursor:pointer;font-weight:600;font-size:13px;line-height:1.2;transition:background-color .15s ease,border-color .15s ease,color .15s ease}button:hover:not(:disabled){background:#1d4ed8}button:disabled{opacity:.65;cursor:not-allowed}.secondaryButton{background:#fff;color:#334155;border-color:#cbd5e1;margin-bottom:0}.secondaryButton:hover:not(:disabled){background:#f8fafc;color:#0f172a}.mappingPanel{margin-top:14px;border-top:1px solid #e5e7eb;padding-top:14px}.mappingPanel h3{margin:0;font-size:16px}.mappingGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px 14px}.mappingRow{display:flex;flex-direction:column;gap:4px}.mappingRow span{font-size:13px}.mappingRow select{border:1px solid #d1d5db;border-radius:6px;padding:8px}.error{color:#b91c1c}.tableWrap{overflow-x:auto}.statusBadge{display:inline-flex;align-items:center;justify-content:center;min-width:82px;border-radius:999px;padding:4px 10px;font-size:12px;font-weight:700;letter-spacing:.01em;border:1px solid transparent}.statusPending{color:#1d4ed8;background:#dbeafe;border-color:#bfdbfe}.statusSuccess{color:#166534;background:#dcfce7;border-color:#bbf7d0}.statusFailed{color:#991b1b;background:#fee2e2;border-color:#fecaca}.statusSkipped{color:#6b7280;background:#f3f4f6;border-color:#e5e7eb}.paginationBar{display:flex;justify-content:space-between;align-items:center;margin-top:10px;gap:12px;flex-wrap:wrap;color:#475569;font-size:13px}.paginationBar label{display:inline-flex;align-items:center;gap:6px}.paginationBar select{border:1px solid #d1d5db;border-radius:6px;padding:6px}.pageButtons{display:flex;gap:8px;flex-wrap:wrap}.importErrorsPanel{margin-top:14px;border-top:1px solid #e5e7eb;padding-top:12px}.importErrorsHeader{display:flex;align-items:center;justify-content:space-between;gap:12px}.modalOverlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a8c;display:flex;align-items:center;justify-content:center;z-index:1200;padding:20px}.modalCard{background:#fff;border-radius:10px;border:1px solid #d8dee7;box-shadow:0 14px 38px #0f172a33;width:100%;max-height:90vh;overflow:auto;padding:16px}.modalCardSmall{max-width:520px}.modalCardWide{max-width:1120px}.modalHeader{display:flex;align-items:center;justify-content:space-between;gap:12px}.modalHeader h3{margin:0}.iconButton{padding:6px 10px;background:#e5e7eb;color:#111827}.editorTopRow{display:grid;grid-template-columns:2fr 1fr;gap:10px;margin-bottom:10px}.editorMetaRow{display:grid;grid-template-columns:repeat(4,minmax(180px,1fr));gap:10px;margin-bottom:10px}.editorMetaRow label{display:flex;flex-direction:column;gap:6px;font-size:12px;color:#475569}.editorTopRow input,.editorTopRow select,.editorMetaRow input,.editorMetaRow select{border:1px solid #d1d5db;border-radius:8px;padding:10px;font:inherit}.editorPane{display:grid;grid-template-columns:1.1fr .9fr;gap:12px}.editorColumn textarea{width:100%;border:1px solid #d1d5db;border-radius:8px;padding:10px;font:inherit;resize:vertical}.richToolbar{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:8px}.richToolbar button{padding:6px 10px;background:#f3f4f6;color:#111827;border:1px solid #d1d5db}.richToolbarSecondary button{background:#eef2ff}.previewColumn{border:1px solid #d1d5db;border-radius:8px;padding:10px;background:#fafafa}.previewColumn h4{margin-top:0;margin-bottom:8px}.previewHeader{display:flex;justify-content:space-between;align-items:center;gap:8px}.previewHeader .secondaryButton{margin-bottom:0;padding:6px 10px;font-size:12px}.previewSubject{margin:0 0 10px;font-weight:600}.previewBody{font-size:14px;line-height:1.5}.modalActions{margin-top:12px;display:flex;justify-content:flex-end;gap:8px}.modalActions .secondaryButton{margin-bottom:0}@media (max-width: 980px){.editorMetaRow{grid-template-columns:1fr 1fr}.editorPane{grid-template-columns:1fr}}.appShell{min-height:100vh;display:flex;background:linear-gradient(180deg,#f6f8fc,#f1f5f9)}.sidebar{width:320px;background:#0f172a;color:#f9fafb;padding:20px 14px;display:flex;flex-direction:column;gap:12px;border-right:1px solid #1e293b}.brand{display:flex;align-items:center;justify-content:center;padding:26px 6px 30px;border-bottom:1px solid #1e293b;margin-bottom:6px;overflow:hidden}.brandLogo{width:300px;height:78px;border-radius:8px;object-fit:contain;background:transparent;transform:scale(2);transform-origin:center;pointer-events:none}.sidebar nav{display:flex;flex-direction:column;gap:4px}.navItem{color:#cbd5e1;text-decoration:none;padding:9px 10px;border-radius:8px;display:flex;align-items:center;font-size:14px;border:1px solid transparent}.navItem:hover{background:#16233a;color:#fff;border-color:#23324a}.navItem.active{background:#1d4ed8;color:#fff;border-color:#2563eb}.mainArea{flex:1;display:flex;flex-direction:column;min-width:0}.topbar{height:60px;border-bottom:1px solid #e5e7eb;display:flex;align-items:center;justify-content:space-between;padding:0 20px;background:#fff}.topbar h1{font-size:16px;font-weight:700;color:#0f172a;margin:0}.topbarIcon{width:28px;height:28px;border-radius:8px}.menuToggle{display:none;margin-right:10px;background:#111827}.mobileOverlay{display:none}.contentArea{padding:18px}.container{max-width:1100px;margin:0 auto}.loginCard{max-width:500px;margin:52px auto}.loginLogoWrap{display:flex;justify-content:center;margin-bottom:12px}.loginLogo{width:270px;max-width:100%;height:auto;object-fit:contain}@media (max-width: 1100px){.container{max-width:100%}}@media (max-width: 900px){.sidebar{position:fixed;top:0;left:0;height:100vh;transform:translate(-100%);transition:transform .2s ease-in-out;z-index:1001}.sidebar.open{transform:translate(0)}.menuToggle{display:inline-flex;align-items:center;justify-content:center;padding:8px 10px}.mobileOverlay{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#11182773;border:0;z-index:1000}.contentArea{padding:14px}.loginCard{margin:28px auto}.card{padding:14px;margin-bottom:12px}h1{font-size:22px}.topbar{height:56px;padding:0 12px}.topbar h1{font-size:14px}.brand{justify-content:flex-start;padding:20px 6px 24px}.brandLogo{width:220px;height:58px;transform:scale(1.7)}.topbarIcon{width:24px;height:24px;border-radius:6px}.filterBar input{min-width:0;width:100%}.paginationBar{align-items:flex-start;flex-direction:column;gap:8px}.pageButtons{width:100%}.pageButtons button{flex:1}.rowActions{gap:6px}.rowActions button{flex:1 1 120px}}table{width:100%;border-collapse:collapse;font-size:14px;background:#fff}th,td{text-align:left;border-bottom:1px solid #e5e7eb;padding:9px 8px}th{background:#f8fafc;font-weight:600;color:#334155}@media (max-width: 640px){.muted{font-size:13px}.campaignCreateForm{gap:8px}.campaignCreateForm input,.campaignCreateForm select,.campaignCreateForm textarea{padding:9px;font-size:14px}button{padding:8px 10px;font-size:12px}.tableWrap{border:1px solid #e2e8f0;border-radius:8px}table{font-size:12px}th,td{padding:8px 6px;white-space:nowrap}.modalOverlay{padding:8px}.modalCard{padding:12px;max-height:94vh}.modalActions{width:100%;justify-content:stretch}.modalActions button{flex:1}.editorMetaRow{grid-template-columns:1fr;gap:8px}.editorTopRow{grid-template-columns:1fr}.previewHeader{flex-direction:column;align-items:flex-start}.loginLogo{width:210px}}@media (max-width: 760px){.mobileStackTable table,.mobileStackTable thead,.mobileStackTable tbody,.mobileStackTable th,.mobileStackTable td,.mobileStackTable tr{display:block}.mobileStackTable thead{display:none}.mobileStackTable tr{border-bottom:1px solid #e2e8f0;padding:8px 0}.mobileStackTable td{border:0;display:grid;grid-template-columns:112px 1fr;align-items:start;gap:8px;padding:6px 8px;white-space:normal}.mobileStackTable td:before{content:attr(data-label);font-weight:700;color:#475569;font-size:12px}.mobileStackTable .rowActions{justify-content:flex-start}}
