*{box-sizing:border-box}:root{--bg:#f5f7fb;--surface:#fff;--surface2:#f9fafc;--text:#172033;--muted:#7a8497;--border:#e1e6ef;--input:#fff;--blue:#315efb;--shadow:#17203308;--sidebar:#101827;--side-text:#cbd3e1;--hover:#ffffff10}html.dark{--bg:#0d1320;--surface:#151e2d;--surface2:#111927;--text:#edf2fa;--muted:#9aa7bb;--border:#283548;--input:#101827;--blue:#5d7cff;--shadow:#00000035;--sidebar:#080d16;--side-text:#aeb9cb;--hover:#ffffff0d}body{margin:0;font-family:Inter,Arial,sans-serif;background:var(--bg);color:var(--text);transition:background .2s,color .2s}a{text-decoration:none;color:#315efb}input,select,textarea{width:100%;padding:12px 13px;border:1px solid var(--border);border-radius:10px;background:var(--input);font:inherit;outline:none}input:focus,select:focus,textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px #315efb18}label{display:flex;flex-direction:column;gap:7px;font-size:13px;font-weight:700;margin-bottom:16px}.btn{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border);background:var(--surface);color:var(--text);padding:11px 16px;border-radius:10px;font-weight:700;cursor:pointer}.btn.primary{background:#315efb;color:#fff;border-color:var(--blue)}.btn.full{width:100%;margin-top:8px}.login-page{min-height:100vh;display:grid;place-items:center;background:linear-gradient(135deg,#f4f7ff,#eef2f7)}.login-card{width:min(420px,92vw);background:var(--surface);border:1px solid var(--border);border-radius:20px;padding:32px;box-shadow:0 20px 60px #17203314}.brand,.side-brand{display:flex;align-items:center;gap:10px}.brand span,.side-brand span{color:#315efb;font-size:28px}.brand small{display:block;color:var(--muted);margin-top:3px}.login-card h1{margin:30px 0 20px}.layout{display:flex;min-height:100vh}.sidebar{width:240px;background:var(--sidebar);color:#fff;position:fixed;inset:0 auto 0 0;padding:22px 14px;display:flex;flex-direction:column}.side-brand{padding:4px 10px 25px}.sidebar nav{display:flex;flex-direction:column;gap:5px}.sidebar nav a,.side-bottom a{color:var(--side-text);padding:12px 13px;border-radius:10px}.sidebar nav a:hover,.side-bottom a:hover{background:var(--surface)fff10;color:#fff}.side-bottom{margin-top:auto}.content{margin-left:240px;width:calc(100% - 240px);padding:0 32px 40px}.topbar{height:72px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--border);margin-bottom:28px}.muted{color:var(--muted)}.logout{font-size:14px}.page-head{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:22px}.page-head h1{margin:0 0 6px;font-size:28px}.page-head p{margin:0;color:var(--muted)}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:22px}.stat,.panel{background:var(--surface);border:1px solid var(--border);border-radius:15px;box-shadow:0 5px 18px var(--shadow)}.stat{padding:20px}.stat span{display:block;color:var(--muted);font-size:13px}.stat b{font-size:28px;display:block;margin-top:10px}.stat.warning b{color:#c07a00}.stat.danger b{color:#c23939}.panel{padding:22px}.panel-title{display:flex;justify-content:space-between;align-items:center}.panel h2,.panel-title h2{font-size:18px;margin:0 0 18px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;min-width:720px}th,td{text-align:left;padding:13px 10px;border-bottom:1px solid var(--border);font-size:14px}th{color:var(--muted);font-size:12px;text-transform:uppercase}td small{display:block;color:#8a93a4;margin-top:3px}.badge{display:inline-flex;padding:5px 9px;border-radius:999px;font-size:12px;font-weight:700;background:#eef1f5;color:#5d6676}.badge.ativo{background:#e8f8ee;color:#21834a}.badge.vencendo{background:var(--surface)3dc;color:#9a6400}.badge.vencido{background:#ffe9e9;color:#bd3838}.badge.bloqueado{background:#eceef2;color:#555}.actions{white-space:nowrap}.actions a{margin-left:10px}.danger-link{color:#c33}.empty{text-align:center;color:#8a93a4;padding:30px}.alert{padding:12px 14px;border-radius:10px;margin-bottom:18px;font-size:14px}.alert.error{background:#ffe9e9;color:#a82f2f}.alert.success{background:#e8f8ee;color:#1e7544}.search{display:flex;gap:10px;margin-bottom:18px}.search input{max-width:500px}.form-panel{max-width:900px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}.full-field{grid-column:1/-1}.split{display:grid;grid-template-columns:minmax(280px,400px) 1fr;gap:18px}.list-row{display:flex;justify-content:space-between;align-items:center;padding:14px 0;border-bottom:1px solid var(--border)}.list-row small{display:block;color:#8a93a4;margin-top:3px}.check{flex-direction:row;align-items:center;font-size:15px}.check input{width:auto}.notice{background:#eef4ff;color:#31518e;padding:14px;border-radius:10px;margin:15px 0 20px;font-size:14px}.message-cell{max-width:450px}.side-brand b{font-size:14px}@media(max-width:800px){.sidebar{width:68px;padding:15px 8px}.side-brand b,.sidebar nav a:not(:first-child),.side-bottom a{font-size:0}.sidebar nav a,.side-bottom a{text-align:center}.content{margin-left:68px;width:calc(100% - 68px);padding:0 15px 30px}.stats{grid-template-columns:1fr 1fr}.form-grid,.split{grid-template-columns:1fr}.page-head{align-items:flex-start;flex-direction:column}.topbar{margin-bottom:20px}.search{flex-direction:column}.search .btn{width:100%}}@media(max-width:500px){.stats{grid-template-columns:1fr}.stat b{font-size:24px}.content{padding:0 10px 25px}.panel{padding:15px}}

html.dark .login-card,html.dark .stat,html.dark .panel{box-shadow:0 15px 45px #00000025}
html.dark .topbar{border-color:var(--border)}
html.dark .notice{background:#18243a;color:#b9c9ef}
html.dark .badge{background:#252e3c;color:#c4cede}
html.dark .badge.ativo{background:#153625;color:#75d99b}
html.dark .badge.vencendo{background:#3a2d12;color:#f2c46d}
html.dark .badge.vencido{background:#3a1e22;color:#f08b92}
html.dark .badge.bloqueado{background:#292d35;color:#bbc2cd}
html.dark .alert.success{background:#153625;color:#75d99b}
html.dark .alert.error{background:#3a1e22;color:#f08b92}
html.dark .search input,html.dark input,html.dark select,html.dark textarea{color:var(--text)}
.theme-btn{border:1px solid var(--border);background:var(--surface);color:var(--text);padding:8px 11px;border-radius:9px;cursor:pointer;font-weight:700;margin-left:12px}

.top-actions{display:flex;align-items:center;gap:10px}.top-actions .logout{white-space:nowrap}@media(max-width:500px){.theme-btn{font-size:0;padding:8px}.theme-btn::first-letter{font-size:16px}}

.steps{margin:0;padding-left:22px;color:var(--text)}.steps li{margin:9px 0}.error-text{color:#d64545;white-space:normal;display:block;max-width:360px}.check{display:flex;gap:10px;align-items:center}.check input{width:auto}.full{grid-column:1/-1}

.login-theme-btn{position:fixed;top:18px;right:20px;border:1px solid var(--border);background:var(--surface);color:var(--text);padding:9px 13px;border-radius:10px;cursor:pointer;font-weight:700;z-index:10}
html.dark .login-page{background:radial-gradient(circle at top,#172338 0,#0b111c 55%,#080d16 100%)}
html.dark .login-card{box-shadow:0 24px 70px #00000055}
html.dark .login-card input{color:var(--text)}
html.dark .login-card .brand span{color:#5d7cff}

.section-title-row{display:flex;justify-content:space-between;align-items:end;gap:18px;margin:26px 0 14px}
.section-title-row h2{margin:0 0 5px}.section-title-row p{margin:0;color:var(--muted)}
.charge-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:22px}
.charge-card{display:flex;align-items:center;gap:13px;padding:18px;border:1px solid var(--border);background:var(--surface);border-radius:14px;text-decoration:none;color:var(--text);box-shadow:0 8px 25px var(--shadow);transition:.15s}
.charge-card:hover{transform:translateY(-2px);border-color:var(--blue)}
.charge-card .charge-icon{width:42px;height:42px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:22px;font-weight:800}
.charge-card span{display:block;font-weight:700}.charge-card strong{display:block;font-size:27px;line-height:1.1;margin:3px 0}.charge-card small{display:block;color:var(--muted)}
.charge-sent .charge-icon{background:#123b28;color:#55dc8b}.charge-pending .charge-icon{background:#3a3215;color:#f2c94c}.charge-failed .charge-icon{background:#431e23;color:#ff747d}.charge-sending .charge-icon{background:#192e4a;color:#70a9ff}
.charge-status{display:inline-flex;align-items:center;padding:6px 10px;border-radius:999px;font-size:12px;font-weight:800;white-space:nowrap}
.charge-status.sent{background:#dff7e9;color:#167344}.charge-status.pending{background:#fff4cf;color:#8a6500}.charge-status.failed{background:#ffe1e4;color:#a32632}.charge-status.sending{background:#dceaff;color:#235caa}
html.dark .charge-status.sent{background:#123b28;color:#67e39a}html.dark .charge-status.pending{background:#403615;color:#f4d66b}html.dark .charge-status.failed{background:#451f24;color:#ff8990}html.dark .charge-status.sending{background:#1a3150;color:#80b5ff}
.message-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:14px}
.mini-status{display:flex;align-items:center;gap:12px;border:1px solid var(--border);background:var(--surface);padding:12px 15px;border-radius:12px;text-decoration:none;color:var(--text)}
.mini-status strong{font-size:22px}.mini-status span{color:var(--muted);font-weight:700}.mini-status.selected,.mini-status:hover{border-color:var(--blue)}
.mini-status.sent strong{color:#22a65a}.mini-status.pending strong{color:#bd8a00}.mini-status.failed strong{color:#d13b47}.mini-status.sending strong{color:#3674c9}
.message-filter{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 14px;color:var(--muted);font-size:13px}
.message-filter a{border:1px solid var(--border);background:var(--surface);color:var(--text);padding:7px 10px;border-radius:8px;text-decoration:none}.message-filter a:hover,.message-filter a.active{background:var(--blue);border-color:var(--blue);color:#fff}
@media(max-width:900px){.charge-stats,.message-summary{grid-template-columns:repeat(2,1fr)}.section-title-row{align-items:flex-start;flex-direction:column}}
@media(max-width:560px){.charge-stats,.message-summary{grid-template-columns:1fr}}

.automation-timeline{display:flex;align-items:stretch;gap:0;margin:0 0 20px;padding:18px;border:1px solid var(--border);background:var(--surface);border-radius:14px;overflow:auto}
.automation-step{display:flex;align-items:center;gap:10px;min-width:205px}.automation-dot{width:42px;height:42px;border-radius:50%;background:var(--blue);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;flex:0 0 42px}.automation-step strong{display:block}.automation-step span{display:block;color:var(--muted);font-size:12px;margin-top:3px}.automation-line{height:2px;background:var(--border);flex:1;min-width:20px;align-self:center;margin:0 8px}
.automation-options{display:grid;gap:10px;margin-bottom:20px}.automation-option{display:flex;align-items:flex-start;gap:12px;padding:15px;border:1px solid var(--border);border-radius:12px;background:var(--surface2);cursor:pointer}.automation-option:hover{border-color:var(--blue)}.automation-check{padding-top:2px}.automation-check input{width:18px;height:18px;accent-color:var(--blue)}.automation-option-text strong{display:block}.automation-option-text small{display:block;color:var(--muted);margin-top:3px}.automation-time{display:grid;grid-template-columns:220px 160px 1fr;align-items:center;gap:12px;margin-bottom:18px}.automation-time>span{font-weight:700}.automation-time input{width:100%}.automation-time small{color:var(--muted)}.automation-info{margin-top:18px}.automation-info h2{margin-top:0}.automation-info li{margin:8px 0}
@media(max-width:800px){.automation-timeline{display:block}.automation-step{min-width:0;margin:4px 0 12px}.automation-line{width:2px;height:18px;margin:0 0 0 20px}.automation-time{grid-template-columns:1fr}}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:6px}.stat-card{padding:18px;border:1px solid var(--border);border-radius:12px;background:var(--surface2)}.stat-card strong{display:block;margin-bottom:7px}.stat-card span{display:block;color:var(--muted);font-size:13px;line-height:1.5}@media(max-width:900px){.grid-3{grid-template-columns:1fr}} 
