:root{
  --bg:#f4f6fb; --card:#fff; --text:#0f172a; --muted:#64748b; --line:#e2e8f0;
  --brand:#0a2a6b; --accent:#1c75bc; --accent-soft:#e8f2fb; --ok:#16a34a; --warn:#d97706; --bad:#dc2626;
  --radius:14px; --shadow:0 1px 2px rgba(15,23,42,.05),0 8px 24px rgba(15,23,42,.06);
}
@media (prefers-color-scheme:dark){
  :root{ --bg:#0b1020; --card:#131a2e; --text:#e6e9f2; --muted:#93a0b8; --line:#243050; --accent:#4da3ea; --accent-soft:#16263f; --brand:#9cc3ff; --shadow:0 1px 2px rgba(0,0,0,.4),0 8px 24px rgba(0,0,0,.3);}
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--text);font:14px/1.5 Inter,system-ui,-apple-system,"Segoe UI",sans-serif;-webkit-font-smoothing:antialiased}
a{color:var(--accent);text-decoration:none} a:hover{text-decoration:underline}
.nav{position:sticky;top:0;z-index:20;background:color-mix(in srgb,var(--card) 85%,transparent);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.nav-in{max-width:1080px;margin:0 auto;padding:0 20px;height:64px;display:flex;align-items:center;gap:28px}
.logo{font-weight:800;font-size:26px;letter-spacing:-1.5px;color:var(--brand)!important;text-decoration:none!important;display:flex;align-items:center;gap:8px}
.logo img{height:36px}
.logo i{width:10px;height:22px;background:var(--accent);border-radius:6px;transform:skewX(-14deg);display:inline-block}
.nav a.link{color:var(--muted);font-weight:500;padding:6px 12px;border-radius:8px;text-decoration:none}
.nav a.link:hover,.nav a.link.on{background:var(--accent-soft);color:var(--accent)}
.nav .sp{flex:1}
.nav .who{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:13px}
.avatar{width:32px;height:32px;border-radius:50%;background:var(--accent);color:#fff;display:grid;place-items:center;font-weight:600}
.wrap{max-width:1080px;margin:0 auto;padding:28px 20px 120px}
h1{font-size:24px;margin:0 0 4px;letter-spacing:-.4px} .sub{color:var(--muted);margin:0 0 24px}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:22px;margin-bottom:18px}
.card h2{font-size:13px;text-transform:uppercase;letter-spacing:.6px;color:var(--muted);margin:0 0 14px;font-weight:600}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:18px} @media(max-width:760px){.grid2{grid-template-columns:1fr}}
label.l{display:block;font-weight:600;margin-bottom:6px}
input[type=text],input[type=email],input[type=password]{width:100%;padding:11px 14px;border:1px solid var(--line);border-radius:10px;background:var(--card);color:var(--text);font:inherit;transition:.15s}
input[type=datetime-local],select{width:100%;padding:11px 14px;border:1px solid var(--line);border-radius:10px;background:var(--card);color:var(--text);font:inherit}
.switch{display:flex;gap:10px;align-items:center;font-weight:500;cursor:pointer}.switch input{width:18px;height:18px;accent-color:var(--accent)}
input:focus,select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-soft)}
.btn{display:inline-flex;align-items:center;gap:8px;border:0;border-radius:10px;padding:11px 20px;font:inherit;font-weight:600;cursor:pointer;background:var(--accent);color:#fff;transition:.15s}
.btn:hover{filter:brightness(1.08);text-decoration:none} .btn.sm{padding:6px 12px;font-size:13px} .btn.ghost{background:var(--accent-soft);color:var(--accent)}
.btn.link{background:none;color:var(--muted);padding:6px 10px}
.drop{border:2px dashed var(--line);border-radius:12px;padding:26px;text-align:center;color:var(--muted);cursor:pointer;transition:.15s}
.drop:hover,.drop.over{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}
.drop b{display:block;color:var(--text);font-size:15px;margin-top:4px} .drop.has{border-style:solid;border-color:var(--ok)}
.hint{font-size:12.5px;color:var(--muted);margin-top:8px} .hint.err{color:var(--bad)}
.chips{display:flex;flex-wrap:wrap;gap:8px;min-height:38px;align-items:center}
.chip{padding:6px 12px;border-radius:999px;border:1px solid var(--line);background:var(--card);cursor:pointer;font-weight:500;user-select:none;transition:.15s;display:inline-flex;gap:6px;align-items:center}
.chip::before{content:"+";color:var(--accent);font-weight:700}
.chip.on{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}
.chip:not(.on){opacity:.55;text-decoration:line-through}
.senders{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:10px}
.sender input{display:none}
.sender span{display:flex;align-items:center;gap:10px;padding:12px 14px;border:1px solid var(--line);border-radius:10px;cursor:pointer;transition:.15s;overflow-wrap:anywhere;height:100%}
.sender span::before{content:"";flex:none;width:16px;height:16px;border-radius:50%;border:2px solid var(--line)}
.sender input:checked+span{border-color:var(--accent);background:var(--accent-soft)}
.sender input:checked+span::before{border-color:var(--accent);background:radial-gradient(var(--accent) 45%,transparent 50%)}
.bar{position:fixed;left:0;right:0;bottom:0;background:color-mix(in srgb,var(--card) 90%,transparent);backdrop-filter:blur(10px);border-top:1px solid var(--line);padding:14px 20px;z-index:15}
.bar-in{max-width:1080px;margin:0 auto;display:flex;justify-content:space-between;align-items:center;gap:16px}
.alert{padding:12px 16px;border-radius:10px;margin-bottom:18px}
.alert.ok{background:#dcfce7;color:#166534} .alert.bad{background:#fee2e2;color:#991b1b}
@media(prefers-color-scheme:dark){.alert.ok{background:#14351f;color:#86efac}.alert.bad{background:#3b1717;color:#fca5a5}}
.alert ul{margin:0;padding-left:18px}
table.t{width:100%;border-collapse:collapse} .t th{text-align:left;font-size:12px;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);padding:10px 12px;border-bottom:1px solid var(--line)}
.t td{padding:12px;border-bottom:1px solid var(--line)} .t tr:last-child td{border:0} .t tbody tr:hover{background:var(--accent-soft)}
.badge{display:inline-block;padding:2px 10px;border-radius:999px;font-size:12px;font-weight:600;background:var(--accent-soft);color:var(--accent)}
.badge.sent,.badge.completed{background:#dcfce7;color:#166534}.badge.failed{background:#fee2e2;color:#991b1b}.badge.invalid{background:#fef3c7;color:#92400e}.badge.pending,.badge.queued,.badge.processing{background:var(--accent-soft);color:var(--accent)}
.stats{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-bottom:18px} @media(max-width:760px){.stats{grid-template-columns:repeat(2,1fr)}}
.stat{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:14px 16px}.stat b{display:block;font-size:24px;letter-spacing:-.5px}.stat span{color:var(--muted);font-size:12px}
.progress{height:10px;background:var(--line);border-radius:99px;overflow:hidden;margin-bottom:18px}.progress div{height:100%;background:linear-gradient(90deg,var(--accent),var(--ok));transition:width .4s}
.login{min-height:100vh;display:grid;place-items:center;padding:20px;background:radial-gradient(900px 500px at 80% -10%,var(--accent-soft),transparent),var(--bg)}
.login .card{width:100%;max-width:400px;padding:32px}.login .logo{justify-content:center;font-size:44px;margin-bottom:6px}
.pager nav svg{width:18px;display:inline}.pager{margin-top:14px}
/* summernote lite */
.note-editor.note-frame{border:1px solid var(--line)!important;border-radius:10px;overflow:hidden;background:var(--card)}
.note-editor .note-toolbar{background:var(--bg)!important;border-bottom:1px solid var(--line)!important}
.note-editor .note-editing-area,.note-editor .note-editable{background:var(--card)!important;color:var(--text)!important}

.pg{display:flex;gap:6px;align-items:center;color:var(--muted)}.pg a,.pg span.b{padding:6px 12px;border:1px solid var(--line);border-radius:8px;background:var(--card)}.pg span.b{opacity:.4}

.modal{position:fixed;inset:0;background:rgba(15,23,42,.55);z-index:50;display:none;align-items:center;justify-content:center;padding:20px}
.modal.open{display:flex}
.pv{background:var(--card);border-radius:16px;width:100%;max-width:900px;height:min(88vh,820px);display:flex;flex-direction:column;box-shadow:0 20px 60px rgba(0,0,0,.35);overflow:hidden}
.pv-head{padding:14px 18px;border-bottom:1px solid var(--line);display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.pv-head .sp{flex:1}.pv-head select{width:auto;padding:6px 10px}
.pv-meta{padding:12px 18px;border-bottom:1px solid var(--line);font-size:13px;color:var(--muted)}.pv-meta b{color:var(--text)}
.pv-body{flex:1;background:#e5e9f2;overflow:auto;display:flex;justify-content:center;padding:18px}
.pv-body iframe{background:#fff;border:0;border-radius:8px;width:100%;height:100%;min-height:400px;box-shadow:var(--shadow);transition:max-width .2s;max-width:640px}
.pv-body.mobile iframe{max-width:375px}
.btn.outline{background:transparent;border:1px solid var(--line);color:var(--text)}
.badge{white-space:nowrap}
.login .logo img{height:auto;width:200px;max-width:70%;margin-bottom:6px}
