:root{--bg:#f7f8fb;--surface:#fff;--surface2:#fbfcfe;--line:#e6e9f1;--soft:#f1f3f8;--text:#222936;--muted:#747d8d;--red:#d91f3c;--red2:#bd1731;--teal:#62c9cd;--teal2:#239ea7;--green:#58d98b;--yellow:#ffc629;--orange:#ff6b3d;--shadow:0 20px 55px rgba(30,42,70,.08)}*{box-sizing:border-box}html,body{min-height:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,Segoe UI,Roboto,Arial,sans-serif;font-size:14px}.dx-sidebar{position:fixed;inset:0 auto 0 0;width:256px;background:#fff;border-right:1px solid #dde2ed;display:flex;flex-direction:column;z-index:10}.dx-logo{height:74px;display:flex;align-items:center;gap:10px;padding:14px 18px;border-bottom:1px solid var(--line);position:relative}.diamond-mark{width:42px;height:34px;position:relative;transform:skew(-18deg);background:linear-gradient(135deg,#eef2f7,#8a95a6);border:1px solid #cfd5df;box-shadow:inset 8px 0 0 rgba(255,255,255,.4)}.diamond-mark span{position:absolute;right:-16px;top:2px;width:18px;height:30px;background:var(--red);clip-path:polygon(0 0,100% 45%,0 100%,35% 50%)}.dx-logo strong{display:block;font-size:15px;line-height:1;color:#222936}.dx-logo strong b{color:var(--red)}.dx-logo small{display:block;color:#8a93a3;font-size:9px;margin-top:3px}.collapse-btn{margin-left:auto;border:1px solid var(--line);background:#fff;border-radius:999px;width:28px;height:28px;color:#6b7280;cursor:pointer}.profile-card{margin:14px 20px 0;border:1px solid var(--line);border-radius:8px;min-height:68px;display:flex;align-items:center;gap:12px;padding:12px;background:#fff}.avatar{width:38px;height:38px;border-radius:12px;background:#f0eaff;color:#4e37b8;font-weight:800;display:grid;place-items:center}.avatar.blue{background:#e9f3ff;color:#1169d6}.profile-card strong{display:block;font-size:12px}.profile-card small{display:block;font-size:10px;color:#667085;margin-top:3px}.profile-card em{display:inline-block;font-style:normal;background:#14b85f;color:white;padding:3px 7px;border-radius:4px;font-size:9px;font-weight:800;margin-top:4px}.chevron{margin-left:auto;color:#667085}.dx-nav{padding:26px 18px 12px;display:grid;gap:4px;overflow:auto}.dx-nav a{height:42px;display:flex;align-items:center;gap:12px;text-decoration:none;color:#4b5563;border-radius:9px;padding:0 10px;font-weight:600}.dx-nav a span{font-size:20px;width:20px;text-align:center;color:#313843;font-weight:400}.dx-nav a b{font-size:13px;font-weight:600;flex:1}.dx-nav a i{font-style:normal;color:#8a93a3}.dx-nav a:hover,.dx-nav a.active{background:#f5f7fb;color:var(--red)}.dx-nav a:hover span,.dx-nav a.active span{color:var(--red)}.sidebar-footer{margin-top:auto;border-top:1px solid var(--line);padding:16px 20px 22px}.locale{height:36px;display:flex;align-items:center;gap:8px;font-weight:800;border-bottom:1px solid var(--line);margin-bottom:20px}.logout{text-decoration:none;color:#4b5563;display:inline-flex;gap:10px;align-items:center;font-weight:600}.dx-main{margin-left:256px;min-height:100vh;padding:34px 34px 60px}.dx-topbar{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;background:#fff;border:1px solid var(--line);border-radius:14px 14px 0 0;border-bottom:0;padding:24px 24px 0}.dx-topbar h1{font-size:25px;margin:0 0 4px}.dx-topbar p{margin:0;color:#6b7280}.balance-strip{display:flex;align-items:center;gap:10px;font-size:13px;color:#5f6878;margin-top:4px}.balance-strip .wallet{font-size:18px;color:#111827}.balance-strip i{width:4px;height:18px;background:var(--red);display:inline-block;border-radius:2px}.balance-strip b{color:var(--red);font-weight:800}.module-tabs,.sub-tabs{background:#fff;border-left:1px solid var(--line);border-right:1px solid var(--line);padding-left:24px;display:flex;align-items:center;gap:52px}.module-tabs{height:54px}.module-tabs a,.sub-tabs a{text-decoration:none;color:#4b5563;font-weight:700;padding:18px 6px 16px;border-bottom:2px solid transparent;min-width:82px;text-align:center}.module-tabs a.active,.sub-tabs a.active{color:var(--red);border-color:var(--red)}.sub-tabs{height:72px;border-bottom:1px solid var(--line);border-radius:0 0 14px 14px;margin-bottom:32px}.range-tabs{margin-left:auto;margin-right:0;display:flex;border:1px solid var(--line);border-radius:8px;overflow:hidden}.range-tabs button{height:36px;border:0;background:#fff;padding:0 16px;cursor:pointer;color:#6b7280;font-weight:700}.range-tabs button.active{background:var(--red);color:#fff}.dashboard-grid{display:grid;grid-template-columns:1fr 1.05fr;gap:32px}.left-panel{min-width:0}.mini-grid{display:grid;grid-template-columns:1fr 1fr;gap:32px;margin-bottom:32px}.metric-card,.card,.ops-card{background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 1px 0 rgba(0,0,0,.01)}.metric-card{height:110px;padding:24px}.metric-card strong{display:block;font-size:28px;font-weight:800;margin-bottom:12px}.metric-card span,.card small,.ops-card span,.ops-card em{color:#687285}.card{padding:24px}.card header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.chart-card{min-height:520px;overflow:hidden}.chart-card header strong{display:block;font-size:26px}.chart-card header span{display:block;margin-top:8px;color:#687285}.pie-wrap{display:grid;place-items:center;margin:24px auto 4px;max-height:375px;overflow:hidden}.legend-row{display:flex;justify-content:center;gap:20px;flex-wrap:wrap;color:#687285;font-size:12px}.legend-row i{width:10px;height:10px;display:inline-block;border-radius:99px;margin-right:6px}.legend-row .ok{background:var(--green)}.legend-row .bad{background:#ff3131}.legend-row .warn{background:var(--yellow)}.map-card{min-height:662px}.map-card header strong{font-size:15px}.brazil-map{height:580px;display:grid;place-items:center;overflow:hidden}.brazil-map svg{width:100%;max-width:650px;height:auto}.br-base{fill:#91dce0}.state{fill:var(--teal);stroke:#fff;stroke-width:2.2}.state.active{fill:var(--teal2)}.brazil-map text{font-size:18px;font-weight:700;fill:#45636b;text-anchor:middle}.brazil-map text.white{fill:#fff}.ops-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin-top:28px}.ops-card{padding:20px}.ops-card strong{display:block;font-size:30px;margin:8px 0}.ops-card em{font-style:normal;font-size:12px}.ops-card.danger strong{color:var(--red)}.flash{border:1px solid #f5cbd2;background:#fff5f7;color:var(--red);padding:14px 18px;border-radius:12px;margin-bottom:18px}.grid{display:grid;gap:22px}.grid.two{grid-template-columns:1fr 1fr}.grid.kpis{grid-template-columns:repeat(4,minmax(0,1fr))}.form label{display:grid;gap:7px;margin:12px 0;color:#4b5563;font-weight:700}input,select,textarea{width:100%;border:1px solid #dfe3ec;background:#fff;color:#111827;border-radius:8px;padding:12px;outline:none}textarea{min-height:92px;font-family:Consolas,monospace}button,.button{border:0;background:var(--red);color:#fff;border-radius:8px;padding:12px 16px;font-weight:800;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center}.button.muted{background:#f3f5f9;color:#4b5563}.card h2{margin:0 0 16px;font-size:18px}.terminal{background:#101827;color:#d2e8ff;border-radius:12px;padding:18px;font-family:Consolas,monospace;line-height:1.7}.radar{height:260px;border-radius:14px;background:radial-gradient(circle at center,rgba(98,201,205,.28),transparent 56%),linear-gradient(135deg,#f7fbfc,#fff);border:1px solid var(--line);display:grid;place-items:center}.radar span{width:18px;height:18px;border-radius:99px;background:var(--teal2);box-shadow:0 0 0 16px rgba(98,201,205,.18),0 0 0 34px rgba(98,201,205,.08)}table{width:100%;border-collapse:collapse;background:#fff}th,td{padding:14px;border-bottom:1px solid var(--line);text-align:left;color:#333b49;vertical-align:middle}th{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:#758094;background:#fbfcfe}.status{display:inline-flex;align-items:center;border-radius:99px;padding:5px 10px;font-size:12px;font-weight:800;background:#f5f7fb}.online,.active,.delivered{color:#169455;background:#eafaef}.offline,.failed,.inactive,.revoked{color:var(--red);background:#fff0f2}.degraded,.pending,.processing{color:#9a6a00;background:#fff7da}.inline{display:flex;justify-content:space-between;align-items:center;gap:16px}.actions{display:flex;gap:12px;margin-top:20px}code{display:block;overflow:auto;background:#101827;color:#d2e8ff;padding:15px;border-radius:10px}.success{border-color:#bcefcf;background:#f5fff8}@media(max-width:1150px){.dashboard-grid{grid-template-columns:1fr}.map-card{min-height:auto}.brazil-map{height:auto}.ops-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:850px){.dx-sidebar{position:relative;width:auto}.dx-main{margin-left:0;padding:18px}.dx-topbar{display:block}.balance-strip{flex-wrap:wrap;margin-top:16px}.module-tabs,.sub-tabs{overflow:auto;gap:22px}.sub-tabs{height:auto;padding-top:10px;padding-bottom:10px}.range-tabs{margin-left:0}.mini-grid,.grid.two,.grid.kpis,.ops-grid{grid-template-columns:1fr}.chart-card{min-height:auto}.pie-wrap canvas{max-width:100%;height:auto}table{display:block;overflow:auto}.profile-card{margin-left:14px;margin-right:14px}}
.logout-form{margin:0}.logout{border:0;background:transparent;color:#4b5563;padding:0;font:inherit;display:inline-flex;gap:10px;align-items:center;font-weight:600;cursor:pointer}.auth-page{background:linear-gradient(135deg,#f7f8fb,#eef2f7)}.auth-shell{min-height:100vh;display:grid;place-items:center;padding:24px}.login-card{width:min(460px,100%);background:#fff;border:1px solid var(--line);border-radius:18px;padding:34px;box-shadow:var(--shadow)}.login-logo{height:auto;border:0;padding:0;margin-bottom:28px}.login-card h1{margin:0 0 8px;font-size:26px}.login-card p{margin:0 0 22px;color:#687285;line-height:1.6}.login-hint{display:block;margin-top:16px;color:#8a93a3}.auth-flash{width:min(460px,100%);margin-bottom:14px}.login-card button{width:100%;margin-top:8px}.login-card input{height:48px}
.grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.compact{gap:12px}.form small{color:#8a93a3;font-weight:500}.skill-builder textarea{min-height:126px}.template-list{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:18px 0}.template-pill{background:#fff;border:1px solid var(--line);color:var(--text);justify-content:flex-start;display:grid;text-align:left;gap:4px;padding:14px}.template-pill:hover{border-color:var(--red);box-shadow:var(--shadow)}.template-pill strong{font-size:14px}.template-pill span{font-size:12px;color:var(--muted)}.test-box{border-top:1px solid var(--line);margin-top:20px;padding-top:20px}.wrap{flex-wrap:wrap}.danger-btn{background:#fff0f2;color:var(--red);border:1px solid #ffd1d9}.mini{padding:8px 10px;font-size:12px}.badge{border:1px solid var(--line);background:#f8fafc;border-radius:999px;padding:7px 12px;color:#667085;font-weight:800}.failed{color:var(--red);background:#fff0f2}.form .actions form{margin:0}@media(max-width:850px){.grid.three,.template-list{grid-template-columns:1fr}}
.muted-text{color:var(--muted);margin:6px 0 0;line-height:1.5}.filters-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:20px;align-items:end}.filters-grid label{display:grid;gap:7px;color:#4b5563;font-weight:800}.filter-actions{display:flex;gap:10px;align-items:end}.table-card{overflow:auto}.inline-code{display:inline-block;padding:5px 7px;border-radius:7px;font-size:11px;max-width:170px;white-space:nowrap;text-overflow:ellipsis;background:#f5f7fb;color:#3a4352}.error-cell{max-width:260px;color:#687285}.inline-action{display:inline}.pagination{display:flex;align-items:center;justify-content:space-between;gap:18px;padding-top:18px;color:var(--muted);font-weight:700}.queue-tools{margin-top:22px}@media(max-width:1050px){.filters-grid{grid-template-columns:1fr 1fr}}@media(max-width:700px){.filters-grid{grid-template-columns:1fr}.pagination{display:block}.pagination div{margin-top:12px}}
/* Etapa 6 - rotas inteligentes e healthcheck */
.form-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.form-row.compact{grid-template-columns:1.1fr .7fr .7fr .7fr;align-items:end}.route-provider-grid{display:grid;gap:12px;margin:12px 0}.route-provider-item{border:1px solid rgba(24,35,64,.12);background:rgba(248,250,255,.85);border-radius:16px;padding:12px}.checkline{display:flex!important;align-items:center;gap:8px;margin:0 0 8px!important}.checkline input{width:auto!important}.mini-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:16px 0}.mini-kpis span{border:1px solid rgba(24,35,64,.12);border-radius:16px;padding:14px;background:linear-gradient(180deg,#fff,#f7f9fe);display:flex;flex-direction:column;gap:4px}.mini-kpis b{font-size:22px;color:#111827}.mini-kpis small,.muted{color:#6b7280}.compact-table th,.compact-table td{font-size:12px;padding:9px}.small-text{font-size:12px;max-width:230px}code{background:#eef2ff;border:1px solid #dbe4ff;border-radius:8px;padding:2px 6px;color:#3443a0}@media(max-width:900px){.form-row,.form-row.compact{grid-template-columns:1fr}.mini-kpis{grid-template-columns:1fr}}
.check-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;grid-column:1/-1;margin:6px 0 10px}.check{display:flex;align-items:center;gap:8px;border:1px solid rgba(15,23,42,.1);border-radius:12px;padding:10px 12px;background:rgba(248,250,252,.7)}.codebox{white-space:pre-wrap;background:#0f172a;color:#dbeafe;border-radius:14px;padding:14px;border:1px solid rgba(37,99,235,.22)}.pill.danger,.status.offline{background:#fee2e2;color:#991b1b}.small-text{max-width:240px}.dx-table code, table code{font-size:12px;color:#1d4ed8}
/* Etapa 8 - analytics, relatórios e exportações */
.analytics-filter{margin-bottom:18px}.analytics-grid{grid-template-columns:1.1fr repeat(5,minmax(0,1fr)) auto}.analytics-dashboard{margin-top:0}.chart-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:28px}.analytics-chart{width:100%;display:block}.report-kpis{margin-bottom:18px}.uf-grid{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0}.uf-chip{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line);background:#f8fafc;border-radius:999px;padding:7px 11px}.uf-chip b{font-size:12px}.uf-chip em{font-style:normal;color:var(--muted);font-weight:800}.uf-chip.active{background:#e7f9fa;border-color:#9ee3e6;color:#116e76}.table-card .actions{margin-top:0}.report-kpis .metric-card{height:auto;min-height:106px}@media(max-width:1200px){.analytics-grid{grid-template-columns:repeat(3,1fr)}.chart-grid{grid-template-columns:1fr}}@media(max-width:760px){.analytics-grid{grid-template-columns:1fr}.chart-grid{grid-template-columns:1fr}.table-card .inline{display:block}.table-card .actions{margin-top:12px}}
/* Etapa 10 - Campanhas SMS/RCS */
.campaign-kpis .metric-card strong{font-size:25px}.campaign-main-grid{grid-template-columns:1.35fr .95fr}.campaign-filters{grid-template-columns:repeat(3,minmax(0,1fr)) auto}.campaign-detail-head{display:flex;align-items:center;justify-content:space-between;gap:16px;border:1px solid var(--line);background:#fbfcfe;border-radius:16px;padding:16px;margin-bottom:16px}.campaign-detail-head strong{font-size:20px}.campaign-builder .wide{grid-column:1/-1}.actions-cell{display:flex;gap:7px;flex-wrap:wrap}.actions-cell .button{padding:7px 9px}.card table small{display:block;color:var(--muted);font-size:11px;margin-top:4px}.scheduled{color:#7c3aed;background:#f3e8ff}.running{color:#047857;background:#d1fae5}.paused{color:#92400e;background:#fef3c7}.completed{color:#166534;background:#dcfce7}.canceled{color:#991b1b;background:#fee2e2}.queued{color:#1d4ed8;background:#dbeafe}.suppressed{color:#6b7280;background:#f3f4f6}.compact-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.compact-form label{display:grid;gap:7px;font-weight:800;color:#4b5563}.compact-form .actions,.compact-form button:not(.mini){align-self:end}.form-grid .wide{grid-column:1/-1}.actions .muted{background:#eef2f7;color:#3b4657}@media(max-width:1180px){.campaign-main-grid{grid-template-columns:1fr}.campaign-filters,.compact-form{grid-template-columns:1fr 1fr}}@media(max-width:720px){.campaign-filters,.compact-form{grid-template-columns:1fr}.actions-cell{display:block}.actions-cell form{margin:4px 0}.campaign-detail-head{display:block}.campaign-detail-head .status{margin-top:10px}}

/* Etapa 11 - Auditoria & LGPD */
.policy-card .policy-content{margin-top:18px;line-height:1.75;color:#d7e3f5}.policy-content h1,.policy-content h2,.policy-content h3{color:#fff;margin:20px 0 10px}.policy-content a{color:#31a8ff}.warning{border-color:rgba(245,158,11,.35);background:linear-gradient(145deg,rgba(245,158,11,.12),rgba(15,23,42,.96))}.check{display:flex!important;gap:10px;align-items:center;margin:14px 0}.check input{width:auto}.pagination{display:flex;justify-content:space-between;align-items:center;margin-top:18px;color:#8ea3bd}.pagination a{border:1px solid rgba(148,163,184,.22);padding:10px 14px;border-radius:12px;background:rgba(15,23,42,.72);text-decoration:none}.badge{display:inline-flex;padding:5px 9px;border-radius:999px;background:rgba(49,168,255,.12);border:1px solid rgba(49,168,255,.25);color:#bfe4ff;font-size:12px}.card details summary{cursor:pointer;color:#31a8ff}.card pre{max-width:520px;max-height:260px;overflow:auto;background:#06111f;border:1px solid rgba(148,163,184,.18);border-radius:12px;padding:12px;color:#cbd5e1;white-space:pre-wrap}
