:root{--ink: #1c2418;--muted: #5c6b58;--paper: #f4efe6;--card: #fffaf3;--green: #3f6443;--green-2: #24362a;--green-3: #1a281e;--line: rgba(28, 36, 24, .1);--danger: #8b3a2f;--ok: #2f6b45;--shadow: 0 18px 40px rgba(28, 36, 24, .08);--radius: 22px}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;background:var(--paper);color:var(--ink);font-family:Nunito,system-ui,sans-serif}h1,h2,h3{font-family:Fraunces,Georgia,serif;font-weight:600;margin:0}button,input,textarea,select{font:inherit}button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--green);outline-offset:2px}.login{min-height:100dvh;display:grid;place-items:center;padding:24px;background:radial-gradient(900px 420px at 12% -10%,rgba(63,100,67,.22),transparent 55%),radial-gradient(700px 360px at 90% 110%,rgba(63,100,67,.1),transparent 50%),var(--paper)}.login-card{width:min(420px,100%);background:var(--card);border-radius:28px;padding:32px;box-shadow:var(--shadow);animation:rise .45s ease both}.login-card p{color:var(--muted)}.brand{font-size:32px;margin-bottom:8px}.shell{display:grid;grid-template-columns:248px 1fr;min-height:100dvh}.side{background:linear-gradient(180deg,var(--green-2),var(--green-3));color:#fffaf3;padding:22px 14px;display:flex;flex-direction:column;gap:6px}.brand-block{display:flex;align-items:center;gap:12px;padding:6px 10px 18px}.brand-logo{width:40px;height:40px;border-radius:12px;object-fit:cover;background:#3f6443;flex:0 0 40px;box-shadow:0 0 0 1px #fffaf31f}.brand-logo-lg{width:64px;height:64px;border-radius:16px;margin-bottom:12px}.login-card .brand-logo{display:block}.brand-block h1{font-size:22px;line-height:1}.brand-block small{display:block;opacity:.65;font-size:12px;margin-top:4px;font-family:Nunito,sans-serif}.nav{display:flex;flex-direction:column;gap:4px}.nav-btn,.side button{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:transparent;color:inherit;text-align:left;padding:11px 12px;border-radius:14px;cursor:pointer;display:flex;align-items:center;gap:10px;opacity:.78;transition:background .18s ease,opacity .18s ease,transform .18s ease}.nav-btn .icon{width:18px;height:18px;flex:0 0 18px}.nav-btn.active,.nav-btn:hover{background:#fffaf31f;opacity:1}.nav-btn.active{box-shadow:inset 3px 0 #fffaf3}.side-foot{margin-top:auto;padding-top:16px}.who{display:flex;align-items:center;gap:10px;padding:10px 12px 8px;font-size:12px;opacity:.85;word-break:break-all}.avatar{width:28px;height:28px;border-radius:50%;background:#fffaf329;display:grid;place-items:center;font-weight:700;flex:0 0 28px}.side .out{width:100%;opacity:.75}.workspace{display:flex;flex-direction:column;min-width:0}.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 32px 0;animation:fade .35s ease both}.crumb{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:13px}.crumb strong{color:var(--ink)}.live{display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:700;color:var(--ok);background:#e6f2e8;padding:6px 10px;border-radius:999px}.pulse{width:8px;height:8px;border-radius:50%;background:var(--ok);box-shadow:0 0 #2f6b4599;animation:pulse 1.6s infinite}.main{padding:18px 32px 64px}.page-enter{animation:rise .35s ease both}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:8px}.page-head h2{margin:0}.main h2{margin-bottom:4px}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:14px;margin:22px 0 28px}.stat{background:var(--card);border-radius:var(--radius);padding:18px;border:1px solid var(--line);box-shadow:0 8px 24px #1c24180a;transition:transform .2s ease,box-shadow .2s ease;animation:rise .45s ease both}.stat:nth-child(2){animation-delay:.04s}.stat:nth-child(3){animation-delay:.08s}.stat:nth-child(4){animation-delay:.12s}.stat:nth-child(5){animation-delay:.16s}.stat:nth-child(6){animation-delay:.2s}.stat:hover{transform:translateY(-3px);box-shadow:var(--shadow)}.stat span{display:block;color:var(--muted);font-size:13px}.stat strong{display:block;font-size:28px;margin-top:6px;letter-spacing:-.03em}.card{background:var(--card);border-radius:24px;padding:22px;border:1px solid var(--line);margin-bottom:18px;box-shadow:0 8px 24px #1c24180a;animation:rise .4s ease both}label{display:block;font-size:13px;font-weight:700;margin:12px 0 6px}input,textarea,select{width:100%;border:1px solid var(--line);background:#fff;border-radius:14px;padding:12px 14px;transition:border-color .15s ease,box-shadow .15s ease}input:focus,textarea:focus,select:focus{border-color:var(--green);box-shadow:0 0 0 4px #3f64431f}textarea{min-height:110px;resize:vertical}.row{display:grid;grid-template-columns:1fr 1fr;gap:12px}button.primary,button.ghost,button.danger{margin-top:16px;border:0;border-radius:999px;padding:12px 18px;font-weight:700;cursor:pointer;transition:transform .15s ease,opacity .15s ease,background .15s ease}button.primary{background:var(--green);color:#fffaf3}button.primary:hover:not(:disabled){background:var(--green-2);transform:translateY(-1px)}button.primary:disabled{opacity:.5;cursor:not-allowed}button.ghost{background:#eeeae2;color:var(--ink)}button.ghost:hover{background:#e4e0d6}button.danger{background:var(--danger);color:#fffaf3}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:14px}th,td{text-align:left;padding:11px 8px;border-bottom:1px solid var(--line)}th{color:var(--muted);font-size:12px;letter-spacing:.04em;text-transform:uppercase}tbody tr{transition:background .15s ease}tbody tr:hover{background:#3f64430d}.pill{display:inline-block;padding:4px 10px;border-radius:999px;font-size:12px;font-weight:700}.pill.sent,.pill.active{background:#e4f0e4;color:var(--ok)}.pill.sending{background:#f3ead0;color:#7a5b12}.pill.failed{background:#f6e4df;color:var(--danger)}.pill.draft,.pill.off{background:#eeeae2;color:var(--muted)}.pill.scheduled{background:#e4ebf6;color:#2c4a7a}.actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}.actions button,.toolbar button{margin-top:0}.toolbar{display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin:12px 0 18px}.toolbar h3{margin:0}.funnel{display:flex;flex-direction:column;gap:10px;margin-top:16px}.funnel-row{display:grid;grid-template-columns:110px 1fr 56px;gap:10px;align-items:center;font-size:13px}.funnel-bar{height:10px;background:#eeeae2;border-radius:999px;overflow:hidden}.funnel-bar>i{display:block;height:100%;background:linear-gradient(90deg,var(--green),#6a8f6e);border-radius:999px;transform-origin:left;animation:growX .7s ease both}.triple{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}.err{color:var(--danger);font-size:13px}.ok{color:var(--ok);font-size:13px}.search{max-width:320px;margin:12px 0 18px}.split{display:grid;grid-template-columns:1fr 1fr;gap:18px}.bars{display:flex;align-items:flex-end;gap:8px;height:140px;margin-top:16px;padding-top:18px}.bar{flex:1;background:linear-gradient(180deg,#6a8f6e,var(--green));border-radius:8px 8px 4px 4px;min-height:4px;position:relative;transform-origin:bottom;animation:growY .55s ease both}.bar span{position:absolute;bottom:-22px;left:50%;transform:translate(-50%);font-size:10px;color:var(--muted);white-space:nowrap}.bar b{position:absolute;top:-16px;left:50%;transform:translate(-50%);font-size:10px;color:var(--muted);font-weight:700}.hint{color:var(--muted);font-size:14px;margin-top:8px}.spinner{width:28px;height:28px;border:3px solid var(--line);border-top-color:var(--green);border-radius:50%;animation:spin .8s linear infinite}.login-loading{display:grid;justify-items:center;gap:14px;text-align:center}.login-loading p{margin:0}.skel{background:linear-gradient(90deg,#eeeae2 20%,#f7f3eb,#eeeae2 80%);background-size:200% 100%;animation:skel 1.2s ease-in-out infinite;border-radius:10px}.skel-line{height:12px;margin:6px 0}.skel-title{height:28px;width:180px;margin-bottom:12px}.skel-num{height:28px;width:48%;margin-top:8px;display:block}.skel-block{height:120px}.empty{text-align:center;color:var(--muted);padding:28px 8px}@keyframes rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes fade{0%{opacity:0}to{opacity:1}}@keyframes growY{0%{transform:scaleY(0)}to{transform:scaleY(1)}}@keyframes growX{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes skel{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{70%{box-shadow:0 0 0 8px #2f6b4500}to{box-shadow:0 0 #2f6b4500}}.compose{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:20px;margin-bottom:18px}.compose .card{margin-bottom:0}.with-count{display:flex;justify-content:space-between;align-items:baseline}.with-count em{color:var(--muted);font-style:normal;font-size:12px;font-weight:700}.phone{background:linear-gradient(180deg,var(--green-2),var(--green-3));border-radius:32px;padding:18px 14px 22px;color:#fffaf3;min-height:280px;box-shadow:var(--shadow)}.phone-bar{font-size:12px;font-weight:700;opacity:.7;margin-bottom:14px;letter-spacing:.08em;text-transform:uppercase}.push-card{background:#fffaf31f;border-radius:16px;padding:14px}.push-card strong{display:block;font-family:Fraunces,Georgia,serif;margin-bottom:6px}.push-card p{margin:0;font-size:14px;opacity:.9;line-height:1.4}.search.tight{margin:0;max-width:200px}.toolbar .search{margin:0}.filters{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}.filters label{margin-top:0}.seg{display:flex;gap:6px}.seg button{margin:0;flex:1;border:0;background:#eeeae2;color:var(--ink);border-radius:10px;padding:10px 8px;font-weight:700;cursor:pointer}.seg button.on{background:var(--green);color:#fffaf3}.bars.tall{height:200px}.funnel-row.wide{grid-template-columns:minmax(90px,1.6fr) 1fr 56px}@media(min-width:901px){.side{position:sticky;top:0;height:100dvh}}@media(prefers-reduced-motion:reduce){.skel,.spinner,.pulse,.stat,.card,.page-enter,.bar,.funnel-bar>i{animation:none}}@media(max-width:900px){.shell{grid-template-columns:1fr}.grid{grid-template-columns:1fr 1fr}.side{flex-direction:row;flex-wrap:wrap}.side-foot{margin-top:0;margin-left:auto}.nav{flex-direction:row;flex-wrap:wrap}.triple,.split,.filters,.compose{grid-template-columns:1fr}.phone{display:none}.topbar,.main{padding-left:18px;padding-right:18px}}
