:root{--bg:#f5f6f8;--card:#fff;--ink:#1d2433;--mute:#667085;--line:#e4e7ec;--brand:#0b6b5c;--brand-d:#08493f;--warn:#b54708;--bad:#b42318;--ok:#067647}
*{box-sizing:border-box}body{margin:0;font:15px/1.45 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--ink)}
button,input,select,textarea{font:inherit}
.layout{display:grid;grid-template-columns:220px 1fr;min-height:100vh}
nav{background:var(--brand-d);color:#fff;padding:16px 10px;display:flex;flex-direction:column;gap:4px}
nav h1{font-size:16px;margin:0 8px 14px}nav button{background:none;border:0;color:#cfe7e2;text-align:left;padding:9px 10px;border-radius:8px;cursor:pointer}
nav button.on,nav button:hover{background:rgba(255,255,255,.14);color:#fff}nav .sp{flex:1}
main{padding:22px;max-width:1200px;width:100%}
h2{margin:0 0 14px;font-size:20px}h3{margin:18px 0 8px;font-size:15px}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin-bottom:16px}
.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:14px}
.card .k{color:var(--mute);font-size:12px;text-transform:uppercase;letter-spacing:.04em}.card .v{font-size:26px;font-weight:650}
table{width:100%;border-collapse:collapse;background:var(--card);border:1px solid var(--line);border-radius:12px;overflow:hidden}
th,td{padding:8px 10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}th{font-size:12px;color:var(--mute);background:#fafbfc}
tr:last-child td{border-bottom:0}.row{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:8px 0}
input,select,textarea{padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:#fff}textarea{width:100%;min-height:90px}
.btn{background:var(--brand);color:#fff;border:0;border-radius:8px;padding:8px 14px;cursor:pointer}.btn:hover{background:var(--brand-d)}
.btn.ghost{background:#fff;color:var(--ink);border:1px solid var(--line)}.btn.bad{background:var(--bad)}.btn.sm{padding:4px 9px;font-size:13px}
.pill{display:inline-block;padding:2px 8px;border-radius:99px;font-size:12px;background:#eef2f6;color:var(--ink)}
.pill.sent,.pill.interested,.pill.ok{background:#d1fadf;color:var(--ok)}.pill.blocked,.pill.failed,.pill.do_not_contact,.pill.bad{background:#fee4e2;color:var(--bad)}
.pill.pending_validation,.pill.warn,.pill.question{background:#fef0c7;color:var(--warn)}
.banner{padding:10px 14px;border-radius:10px;margin-bottom:14px;font-weight:600}.banner.off{background:#fee4e2;color:var(--bad)}.banner.on{background:#d1fadf;color:var(--ok)}
.feed{list-style:none;margin:0;padding:0;background:var(--card);border:1px solid var(--line);border-radius:12px}
.feed li{padding:9px 12px;border-bottom:1px solid var(--line);display:flex;gap:10px}.feed li:last-child{border-bottom:0}.feed time{color:var(--mute);white-space:nowrap;font-size:13px}
.login{max-width:340px;margin:12vh auto;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:24px}.login input{width:100%;margin:6px 0 12px}
pre{white-space:pre-wrap;background:#fafbfc;border:1px solid var(--line);border-radius:8px;padding:8px;margin:6px 0}
#toast{position:fixed;right:16px;bottom:16px;background:#1d2433;color:#fff;padding:10px 14px;border-radius:10px;opacity:0;transition:opacity .2s;pointer-events:none;max-width:360px}#toast.show{opacity:1}#toast.err{background:var(--bad)}
@media(max-width:760px){.layout{grid-template-columns:1fr}nav{flex-direction:row;flex-wrap:wrap}}
.gap{margin-bottom:10px}.w120{width:120px}
