:root{--bg: #0f172a;--surface: #1e293b;--border: #334155;--text: #f8fafc;--muted: #94a3b8;--accent: #0ea5e9;--accent-hover: #0284c7;--success: #10b981;--danger: #ef4444;--warning: #f59e0b;--hover-bg: rgba(255, 255, 255, .05);--toolbar-bg: rgba(255, 255, 255, .03);font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;color-scheme:dark}html[data-theme=light]{--bg: #e9edf3;--surface: #fcfdfe;--border: #cdd5e0;--text: #1e293b;--muted: #64748b;--hover-bg: rgba(15, 23, 42, .05);--toolbar-bg: rgba(15, 23, 42, .025);color-scheme:light}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--text);font-size:14px;line-height:1.5}a{color:var(--accent)}.app{max-width:1100px;margin:0 auto;padding:24px 32px 64px}.brand{display:flex;align-items:center;justify-content:space-between;padding-bottom:16px;border-bottom:1px solid var(--border);margin-bottom:24px}.brand h1{margin:0;font-size:20px;letter-spacing:.5px}.brand .meta{color:var(--muted);font-size:12px}.theme-toggle{background:transparent;border:1px solid var(--border);color:var(--text);width:32px;height:32px;border-radius:8px;cursor:pointer;font-size:16px;display:inline-flex;align-items:center;justify-content:center}.theme-toggle:hover{background:var(--hover-bg)}.tabs{display:flex;gap:4px;margin-bottom:24px;border-bottom:1px solid var(--border)}.tab{background:transparent;border:0;color:var(--muted);padding:10px 16px;font:inherit;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px}.tab.active{color:var(--text);border-bottom-color:var(--accent)}.card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:24px}.muted{color:var(--muted)}table{width:100%;border-collapse:collapse;font-size:13px}th,td{padding:10px 12px;text-align:left;border-bottom:1px solid var(--border)}th{color:var(--muted);font-weight:600;text-transform:uppercase;font-size:11px;letter-spacing:.5px}tr:last-child td{border-bottom:0}.badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600}.badge.subscribed{background:#10b98126;color:var(--success)}.badge.unsubscribed{background:#ef444426;color:var(--danger)}button.primary,button.secondary{font:inherit;font-weight:600;border-radius:10px;padding:10px 20px;cursor:pointer;border:0}button.primary{background:var(--accent);color:#fff}button.primary:hover{background:var(--accent-hover)}button.primary:disabled{opacity:.5;cursor:not-allowed}button.secondary{background:transparent;color:var(--text);border:1px solid var(--border)}input[type=text],input[type=email],textarea{width:100%;background:var(--bg);border:1px solid var(--border);color:var(--text);border-radius:8px;padding:10px 12px;font:inherit}textarea{font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:13px;min-height:320px;resize:vertical}label{display:block;margin-bottom:6px;font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.5px;font-weight:600}.field{margin-bottom:16px}.row{display:flex;gap:12px;align-items:center}.blocks{display:flex;flex-direction:column;gap:12px;margin-top:8px}.block-editor{background:var(--bg);border:1px solid var(--border);border-radius:10px;overflow:hidden;transition:border-color .15s}.block-editor:hover{border-color:#475569}.block-toolbar{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:var(--toolbar-bg);border-bottom:1px solid var(--border)}.block-type{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--muted)}.block-actions{display:flex;gap:2px}.icon-btn{background:transparent;border:0;color:var(--muted);font-size:14px;width:26px;height:26px;border-radius:6px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.icon-btn:hover:not(:disabled){background:var(--hover-bg);color:var(--text)}.icon-btn:disabled{opacity:.3;cursor:not-allowed}.block-body{padding:12px}.block-body input,.block-body textarea{font-size:14px}.add-block-menu{display:flex;align-items:center;flex-wrap:wrap;gap:6px;padding:12px;border:1px dashed var(--border);border-radius:10px;margin-top:8px}.add-block-btn{background:transparent;border:1px solid var(--border);color:var(--text);font:inherit;font-size:12px;padding:6px 12px;border-radius:6px;cursor:pointer}.add-block-btn:hover:not(:disabled){background:var(--accent);border-color:var(--accent)}.add-block-btn:disabled{opacity:.5;cursor:not-allowed}.template-list{list-style:none;margin:16px 0 0;padding:0;display:flex;flex-direction:column;gap:8px}.template-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;background:var(--bg);border:1px solid var(--border);border-radius:10px}.template-row em{color:var(--text);font-style:normal}.template-meta{flex:1;min-width:0}.sources-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px;margin-top:8px}.source-checkbox{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--bg);border:1px solid var(--border);border-radius:8px;cursor:pointer;font-size:13px;-webkit-user-select:none;user-select:none}.source-checkbox:hover{background:var(--hover-bg)}.source-checkbox input[type=checkbox]{accent-color:var(--accent);cursor:pointer;margin:0}.source-checkbox .source-count{margin-left:auto;font-size:11px;font-weight:600}.recipient-summary{margin-top:12px;padding:10px 12px;background:#0ea5e914;border:1px solid rgba(14,165,233,.2);border-radius:8px;font-size:13px}.recipient-list{list-style:none;margin:12px 0 0;padding:12px;background:var(--bg);border:1px solid var(--border);border-radius:8px;max-height:240px;overflow-y:auto;font-size:13px}.recipient-list li{padding:4px 0;border-bottom:1px solid var(--border)}.recipient-list li:last-child{border-bottom:0}.link-btn{background:transparent;border:0;color:var(--accent);font:inherit;font-size:13px;cursor:pointer;padding:0 4px;text-decoration:underline}.link-btn:hover:not(:disabled){color:var(--accent-hover)}.link-btn:disabled{opacity:.5;cursor:not-allowed}.error{color:var(--danger);background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:8px;padding:12px;margin-bottom:16px;font-size:13px}.success{color:var(--success);background:#10b9811a;border:1px solid rgba(16,185,129,.3);border-radius:8px;padding:12px;margin-bottom:16px;font-size:13px}
