/* PageMorph Design System (3.4.0) — shared by the Área do Cliente and the PM License Manager admin.
   Tokens --ca-* (light default, dark via prefers-color-scheme or [data-theme]). Root class: body.ca */
:root{--ca-bg:#f4f5fb;--ca-surface:#ffffff;--ca-surface-2:#f8f9fd;--ca-border:#e4e7f2;--ca-border-strong:#d3d8ea;--ca-text:#111528;--ca-muted:#626b88;--ca-primary:#6d28d9;--ca-primary-2:#4f46e5;--ca-primary-soft:#efe9ff;--ca-on-primary:#ffffff;--ca-ok:#047857;--ca-ok-soft:#e5f7f0;--ca-warn:#a15c00;--ca-warn-soft:#fff5e1;--ca-danger:#c4243c;--ca-danger-soft:#fdecef;--ca-info:#2948b8;--ca-info-soft:#ebf0ff;--ca-ring:rgba(109,40,217,.22);--ca-shadow:0 1px 2px rgba(16,24,40,.05),0 8px 24px rgba(16,24,40,.06);--ca-input:#ffffff;--ca-bar:#e9ebf5;--ca-radius:14px;color-scheme:light}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--ca-bg:#0a0c19;--ca-surface:#12152b;--ca-surface-2:#171a36;--ca-border:#262a4d;--ca-border-strong:#323766;--ca-text:#eef0ff;--ca-muted:#a0a8cc;--ca-primary:#8b5cf6;--ca-primary-2:#6366f1;--ca-primary-soft:#241d4a;--ca-ok:#43d9ad;--ca-ok-soft:#0f2b26;--ca-warn:#f5c26b;--ca-warn-soft:#2c2412;--ca-danger:#ff8fa3;--ca-danger-soft:#33141f;--ca-info:#9db4ff;--ca-info-soft:#16204a;--ca-ring:rgba(139,92,246,.35);--ca-shadow:0 1px 2px rgba(0,0,0,.4),0 10px 30px rgba(0,0,0,.35);--ca-input:#0d1024;--ca-bar:#232750;color-scheme:dark}}
:root[data-theme="dark"]{--ca-bg:#0a0c19;--ca-surface:#12152b;--ca-surface-2:#171a36;--ca-border:#262a4d;--ca-border-strong:#323766;--ca-text:#eef0ff;--ca-muted:#a0a8cc;--ca-primary:#8b5cf6;--ca-primary-2:#6366f1;--ca-primary-soft:#241d4a;--ca-ok:#43d9ad;--ca-ok-soft:#0f2b26;--ca-warn:#f5c26b;--ca-warn-soft:#2c2412;--ca-danger:#ff8fa3;--ca-danger-soft:#33141f;--ca-info:#9db4ff;--ca-info-soft:#16204a;--ca-ring:rgba(139,92,246,.35);--ca-shadow:0 1px 2px rgba(0,0,0,.4),0 10px 30px rgba(0,0,0,.35);--ca-input:#0d1024;--ca-bar:#232750;color-scheme:dark}

body.ca{background:var(--ca-bg);color:var(--ca-text);font:15px/1.55 Inter,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;min-height:100vh;margin:0}
body.ca a{color:var(--ca-primary)}body.ca a:hover{color:var(--ca-primary-2)}
body.ca h1,body.ca h2,body.ca h3{color:var(--ca-text);letter-spacing:-.01em}
body.ca label{color:var(--ca-text);font-weight:600}
body.ca input,body.ca select,body.ca textarea{background:var(--ca-input);color:var(--ca-text);border:1px solid var(--ca-border-strong);border-radius:10px;padding:10px 12px;font:inherit;width:100%;box-sizing:border-box}
body.ca input:focus,body.ca select:focus,body.ca textarea:focus{outline:none;border-color:var(--ca-primary);box-shadow:0 0 0 3px var(--ca-ring)}
body.ca input[type=checkbox],body.ca input[type=radio]{width:auto;accent-color:var(--ca-primary)}
body.ca :focus-visible{outline:2px solid var(--ca-primary);outline-offset:2px}
.ca-muted{color:var(--ca-muted)}.small,.ca-muted.small{font-size:12.5px}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}
.inline{display:inline}

/* buttons */
.ca-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid transparent;border-radius:10px;padding:10px 16px;font-family:inherit;font-weight:600;font-size:14.5px;line-height:1.2;cursor:pointer;text-decoration:none;white-space:nowrap;transition:filter .15s,background .15s}
.ca-btn.primary{background:linear-gradient(135deg,var(--ca-primary),var(--ca-primary-2));color:var(--ca-on-primary)!important}.ca-btn.primary:hover{filter:brightness(1.07)}
.ca-btn.ghost{background:var(--ca-surface);border-color:var(--ca-border-strong);color:var(--ca-text)!important}.ca-btn.ghost:hover{background:var(--ca-surface-2)}
.ca-btn.danger{background:var(--ca-danger);color:#fff!important}
.ca-btn.small{padding:7px 11px;font-size:13px}.ca-btn.block{width:100%;margin-top:6px}
.ca-btn[disabled]{opacity:.55;cursor:not-allowed}
.ca-icon-btn{display:inline-flex;align-items:center;gap:6px;background:transparent;border:1px solid var(--ca-border);color:var(--ca-text);border-radius:10px;padding:7px 10px;cursor:pointer;font:inherit;font-size:13px}
.ca-icon-btn:hover{background:var(--ca-surface-2)}
.ca-theme-ico{width:14px;height:14px;border-radius:50%;background:linear-gradient(90deg,var(--ca-text) 50%,transparent 50%);border:1.5px solid var(--ca-text);display:inline-block}

/* alerts / pills */
.ca-alert{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;border:1px solid var(--ca-border);border-radius:12px;padding:12px 14px;margin:0 0 16px;background:var(--ca-info-soft);color:var(--ca-text)}
.ca-alert.success{background:var(--ca-ok-soft);border-color:color-mix(in srgb,var(--ca-ok) 35%,transparent)}
.ca-alert.warn{background:var(--ca-warn-soft);border-color:color-mix(in srgb,var(--ca-warn) 35%,transparent)}
.ca-alert.error{background:var(--ca-danger-soft);border-color:color-mix(in srgb,var(--ca-danger) 35%,transparent)}
.ca-alert.info{background:var(--ca-info-soft);border-color:color-mix(in srgb,var(--ca-info) 30%,transparent)}
.ca-pill{display:inline-block;font-style:normal;font-size:12px;font-weight:600;padding:2px 9px;border-radius:999px;background:var(--ca-surface-2);border:1px solid var(--ca-border);color:var(--ca-muted)}
.ca-pill.ok{background:var(--ca-ok-soft);color:var(--ca-ok);border-color:transparent}.ca-pill.warn{background:var(--ca-warn-soft);color:var(--ca-warn);border-color:transparent}
.ca-plan{display:inline-block;font-family:inherit;font-weight:800;font-size:11.5px;line-height:1;letter-spacing:.08em;padding:6px 10px;border-radius:999px}
.ca-plan.free{background:var(--ca-surface-2);color:var(--ca-muted);border:1px solid var(--ca-border-strong)}
.ca-plan.premium{background:linear-gradient(135deg,#f59e0b,#d946ef);color:#fff}
.ca-tag{font-style:normal;font-size:10.5px;font-weight:700;letter-spacing:.04em;margin-left:auto;padding:2px 7px;border-radius:999px;background:linear-gradient(135deg,#f59e0b,#d946ef);color:#fff}

/* auth pages */
.ca-auth-wrap{max-width:460px;margin:0 auto;padding:28px 16px 40px}
.ca-auth-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}
.ca-brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ca-text)!important;font-weight:800;font-size:17px}
.ca-brand img{width:38px;height:38px;border-radius:11px}.ca-brand small{display:block;font-weight:500;font-size:12px;color:var(--ca-muted)}
.ca-auth-card{background:var(--ca-surface);border:1px solid var(--ca-border);border-radius:18px;box-shadow:var(--ca-shadow);padding:28px}
.ca-auth-card h1{font-size:25px;margin:0 0 6px}.ca-sub{color:var(--ca-muted);margin:0 0 20px}
.ca-auth-foot{text-align:center;margin:18px 0 0;color:var(--ca-muted)}.ca-auth-legal{text-align:center;color:var(--ca-muted);font-size:12px;margin-top:26px}
.ca-form{display:flex;flex-direction:column;gap:14px}
.ca-field{display:flex;flex-direction:column;gap:6px}.ca-field label{font-size:13.5px}
.ca-hint{margin:-6px 0 0;font-size:12.5px;color:var(--ca-muted)}
.ca-row-between{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;font-size:14px}
.ca-check{display:flex;align-items:flex-start;gap:8px;font-weight:500!important;font-size:14px;cursor:pointer}.ca-check input{margin-top:3px}
.ca-check.terms{padding:12px;border:1px solid var(--ca-border);border-radius:12px;background:var(--ca-surface-2)}
.ca-pass{position:relative}.ca-pass input{padding-right:84px}
.ca-pass-toggle{position:absolute;right:6px;top:50%;transform:translateY(-50%);border:0;background:transparent;color:var(--ca-primary);font-family:inherit;font-weight:600;font-size:12.5px;cursor:pointer;padding:6px 8px;border-radius:8px}
.ca-strength{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;align-items:center}.ca-strength i{height:5px;border-radius:4px;background:var(--ca-bar)}
.ca-strength span{grid-column:1/-1;font-size:12px;color:var(--ca-muted)}
.ca-strength[data-score="1"] i:nth-child(-n+1){background:var(--ca-danger)}.ca-strength[data-score="2"] i:nth-child(-n+2){background:var(--ca-warn)}
.ca-strength[data-score="3"] i:nth-child(-n+3){background:#3b82f6}.ca-strength[data-score="4"] i{background:var(--ca-ok)}
.ca-more{border:1px solid var(--ca-border);border-radius:12px;padding:10px 14px;background:var(--ca-surface-2)}
.ca-more summary{cursor:pointer;font-weight:600}.ca-more[open] summary{margin-bottom:12px}
.ca-grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 14px;margin-bottom:6px}
.ca-done{text-align:center}.ca-done p{margin:0 0 12px}.ca-done-ico{width:56px;height:56px;border-radius:50%;margin:4px auto 14px;display:grid;place-items:center;font-size:26px;background:var(--ca-ok-soft);color:var(--ca-ok)}

/* app shell */
.ca-app{display:grid;grid-template-columns:256px minmax(0,1fr);min-height:100vh}
.ca-side{position:sticky;top:0;height:100vh;overflow:auto;background:var(--ca-surface);border-right:1px solid var(--ca-border);display:flex;flex-direction:column;padding:18px 12px}
.ca-side-top{padding:2px 8px 18px}
.ca-nav{display:flex;flex-direction:column;gap:2px;flex:1}
.ca-nav a,.ca-nav-out{display:flex;align-items:center;gap:11px;padding:9px 11px;border-radius:10px;color:var(--ca-muted)!important;text-decoration:none;font-weight:600;font-size:14px;border:0;background:transparent;width:100%;cursor:pointer;font-family:inherit;text-align:left}
.ca-nav a:hover,.ca-nav-out:hover{background:var(--ca-surface-2);color:var(--ca-text)!important}
.ca-nav a.active{background:var(--ca-primary-soft);color:var(--ca-primary)!important}
.ca-nav form{margin-top:8px;padding-top:8px;border-top:1px solid var(--ca-border)}
.ca-side-plan{display:flex;align-items:center;gap:10px;padding:12px;margin-top:12px;border:1px solid var(--ca-border);border-radius:12px;font-size:13px;color:var(--ca-muted)}
.ca-main{min-width:0;display:flex;flex-direction:column}
.ca-top{position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:12px;padding:12px 28px;background:color-mix(in srgb,var(--ca-bg) 88%,transparent);backdrop-filter:blur(8px);border-bottom:1px solid var(--ca-border)}
.ca-top-title h1{font-size:19px;margin:0}
.ca-top-right{margin-left:auto;display:flex;align-items:center;gap:10px}
.ca-user{display:flex;align-items:center;gap:8px;font-weight:600;font-size:14px}
.ca-avatar{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,var(--ca-primary),var(--ca-primary-2));color:#fff;font-weight:800}
.ca-menu{display:none;flex-direction:column;gap:3px;padding:9px}.ca-menu span{display:block;width:16px;height:2px;background:var(--ca-text);border-radius:2px}
.ca-content{padding:24px 28px 48px;max-width:1180px;width:100%;box-sizing:border-box}
.ca-scrim{display:none}

/* cards */
.ca-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;margin-bottom:16px}
.ca-card{background:var(--ca-surface);border:1px solid var(--ca-border);border-radius:var(--ca-radius);box-shadow:var(--ca-shadow);padding:20px;margin-bottom:16px}
.ca-cards .ca-card{margin-bottom:0}
.ca-card h3{margin:0 0 12px;font-size:16.5px;display:flex;align-items:center;gap:10px}
.ca-card-head{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:14px}.ca-card-head h3{margin:0}
.ca-eyebrow{display:block;font-size:12px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--ca-muted);margin-bottom:6px}
.ca-big{font-size:30px;font-weight:800;letter-spacing:-.02em;margin-bottom:4px}.ca-mid{font-size:18px;font-weight:700;margin-bottom:4px}
.ca-card p{margin:0 0 14px}
.ca-kv{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;margin:12px 0}
.ca-kv>div{padding:10px 12px;border:1px solid var(--ca-border);border-radius:10px;background:var(--ca-surface-2)}.ca-kv span{display:block;font-size:12px;color:var(--ca-muted)}.ca-kv strong{font-size:14.5px}
.ca-meters{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px 22px}
.ca-meter-head{color:var(--ca-text);display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:7px;font-size:14px}.ca-meter-head small{color:var(--ca-muted);font-weight:500}
.ca-bar{height:9px;border-radius:999px;background:var(--ca-bar);overflow:hidden}.ca-bar i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--ca-primary),var(--ca-primary-2));transition:width .4s}
.ca-meter.m-high .ca-bar i{background:var(--ca-warn)}.ca-meter.m-full .ca-bar i{background:var(--ca-danger)}
.ca-inline-form{flex-direction:row;align-items:flex-end;flex-wrap:wrap}.ca-inline-form .ca-field{flex:1;min-width:220px}
.ca-actions{display:flex;gap:6px;flex-wrap:wrap}

/* tables (client pages + legacy automation screens inside the shell) */
body.ca table{width:100%;border-collapse:collapse}
body.ca th,body.ca td{border-bottom:1px solid var(--ca-border);padding:11px 10px;text-align:left;vertical-align:top;color:var(--ca-text)}
body.ca th{font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--ca-muted);font-weight:700}
.ca-table{overflow:auto}

/* legacy screens (automação, histórico) rendered inside the client shell */
body.ca .panel{background:var(--ca-surface);border:1px solid var(--ca-border);border-radius:var(--ca-radius);box-shadow:var(--ca-shadow);padding:20px;margin-bottom:16px}
body.ca .muted{color:var(--ca-muted)}
body.ca .btn{white-space:nowrap;background:linear-gradient(135deg,var(--ca-primary),var(--ca-primary-2));color:#fff;border-radius:10px;font-weight:600}
body.ca .btn.secondary{background:var(--ca-surface);color:var(--ca-text);border:1px solid var(--ca-border-strong)}
body.ca .btn.danger{background:var(--ca-danger);color:#fff}
body.ca .nav a{background:var(--ca-surface);border:1px solid var(--ca-border);color:var(--ca-muted)}
body.ca .nav a.active{background:var(--ca-primary-soft);border-color:transparent;color:var(--ca-primary)}
body.ca .alert{background:var(--ca-info-soft);border:1px solid var(--ca-border);color:var(--ca-text)}
body.ca .alert.error{background:var(--ca-danger-soft);color:var(--ca-text)}body.ca .alert.success{background:var(--ca-ok-soft);color:var(--ca-text)}body.ca .alert.warn-box{background:var(--ca-warn-soft);color:var(--ca-text)}
body.ca .badge{background:var(--ca-surface-2);color:var(--ca-muted);border:1px solid var(--ca-border)}
body.ca .badge.active{background:var(--ca-ok-soft);color:var(--ca-ok)}body.ca .badge.suspended{background:var(--ca-warn-soft);color:var(--ca-warn)}body.ca .badge.revoked,body.ca .badge.expired{background:var(--ca-danger-soft);color:var(--ca-danger)}
body.ca .automation-form details,body.ca .caption-card,body.ca .article-preview,body.ca .keybox{background:var(--ca-surface-2);border-color:var(--ca-border);color:var(--ca-text)}
body.ca .automation-form h3{color:var(--ca-text)}body.ca .caption-cta{color:var(--ca-primary)}body.ca .error-cell{color:var(--ca-danger)}
body.ca .kv{border-color:var(--ca-border)}

/* responsive */
@media (max-width:960px){
  .ca-app{grid-template-columns:1fr}
  .ca-side{position:fixed;left:0;top:0;bottom:0;width:272px;z-index:30;transform:translateX(-100%);transition:transform .22s ease;box-shadow:var(--ca-shadow)}
  body.ca-menu-open .ca-side{transform:none}
  body.ca-menu-open .ca-scrim{display:block;position:fixed;inset:0;background:rgba(5,8,20,.45);z-index:20}
  .ca-menu{display:inline-flex}
  .ca-top{padding:10px 16px}.ca-content{padding:18px 16px 40px}
  .ca-user-name,.ca-theme-label{display:none}
}
@media (max-width:640px){
  .ca-grid2,.ca-compare{grid-template-columns:1fr}
  .ca-auth-card{padding:22px 18px}.ca-big{font-size:26px}
  .ca-top-right .ca-plan{display:none}
  .ca-inline-form{flex-direction:column;align-items:stretch}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}

/* ---- legacy admin/publisher markup (app.css class names) rendered with the design system ---- */
body.ca .stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:14px;margin-bottom:18px}
body.ca .stat{background:var(--ca-surface);border:1px solid var(--ca-border);border-radius:var(--ca-radius);box-shadow:var(--ca-shadow);padding:16px}
body.ca .stat b{color:var(--ca-text)}body.ca .stat span{color:var(--ca-muted)}
body.ca .topbar{color:var(--ca-text)}body.ca .topbar h2{color:var(--ca-text)}
body.ca .kv{border-bottom:1px solid var(--ca-border)}body.ca .kv span{color:var(--ca-muted)}
body.ca .keybox,body.ca .code-list code,body.ca .batch-key,body.ca .check{background:var(--ca-surface-2);border:1px solid var(--ca-border);color:var(--ca-text)}
body.ca .edit-row td{background:var(--ca-surface-2)}
body.ca .publisher-topbar{background:var(--ca-surface);border:1px solid var(--ca-border);border-radius:var(--ca-radius)}
body.ca .ok{color:var(--ca-ok)}body.ca .bad{color:var(--ca-danger)}
body.ca .btn.warn{background:var(--ca-warn);color:#1b1300}
body.ca .btn.small{padding:7px 11px;font-size:13px}
body.ca .compact-input{width:auto;min-width:150px;padding:7px 9px}
body.ca .badge.available{background:var(--ca-info-soft);color:var(--ca-info)}
body.ca .alert{border-radius:12px}
body.ca .footer{color:var(--ca-muted)}
body.ca .checkline label,body.ca .history-filters label{color:var(--ca-text)}
body.ca .preview-panel{border-color:var(--ca-primary)}
body.ca .nav{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:18px}
body.ca .nav a{border-radius:999px;padding:8px 14px;font-weight:600;font-size:14px}
body.ca details summary{cursor:pointer}
/* tabs inside the content (subnav) */
body.ca .nav.subnav,body.ca .ds-tabs{display:flex;gap:2px;flex-wrap:nowrap;overflow-x:auto;border-bottom:1px solid var(--ca-border);margin:0 0 18px;padding:0}
body.ca .nav.subnav a,body.ca .ds-tabs a{background:transparent;border:0;border-bottom:2px solid transparent;border-radius:0;padding:10px 14px;color:var(--ca-muted);white-space:nowrap}
body.ca .nav.subnav a:hover,body.ca .ds-tabs a:hover{color:var(--ca-text)}
body.ca .nav.subnav a.active,body.ca .ds-tabs a.active{background:transparent;color:var(--ca-primary);border-bottom-color:var(--ca-primary)}
/* plain pages (setup, errors, publisher portal) */
body.ca-plain .shell{width:min(1180px,calc(100% - 32px));margin:0 auto;padding:28px 0 56px}
body.ca-plain .brand h1{color:var(--ca-text)}body.ca-plain .brand p{color:var(--ca-muted)}
/* dialog + loading */
.ds-dialog{border:1px solid var(--ca-border);border-radius:16px;background:var(--ca-surface);color:var(--ca-text);box-shadow:var(--ca-shadow);padding:22px;max-width:440px;width:calc(100% - 32px)}
.ds-dialog::backdrop{background:rgba(5,8,20,.5)}
.ds-dialog-text{margin:0 0 18px;font-size:15px}.ds-dialog-actions{display:flex;justify-content:flex-end;gap:8px}
body.ca .is-loading{position:relative;color:transparent!important;pointer-events:none}
body.ca .is-loading::after{content:"";position:absolute;inset:0;margin:auto;width:16px;height:16px;border-radius:50%;border:2px solid rgba(255,255,255,.6);border-top-color:transparent;animation:ds-spin .7s linear infinite}
body.ca .btn.secondary.is-loading::after,body.ca .ca-btn.ghost.is-loading::after{border-color:var(--ca-muted);border-top-color:transparent}
@keyframes ds-spin{to{transform:rotate(360deg)}}
.ds-skeleton{display:block;height:12px;border-radius:6px;background:linear-gradient(90deg,var(--ca-surface-2),var(--ca-border),var(--ca-surface-2));background-size:200% 100%;animation:ds-shimmer 1.2s infinite}
@keyframes ds-shimmer{to{background-position:-200% 0}}
/* 3.5.1 — WhatsApp support bubble (same design as the PageMorph plugin) */
.pm-whats-float{position:fixed;right:20px;bottom:20px;z-index:60;display:flex;align-items:center;gap:9px;padding:10px 16px 10px 13px;border-radius:999px;background:#25d366;color:#0b2e17;font-weight:700;font-size:14px;text-decoration:none;box-shadow:0 10px 24px rgba(0,0,0,.18)}
.pm-whats-float:hover,.pm-whats-float:focus-visible{background:#1fbd5a;color:#0b2e17}
.pm-whats-pulse{position:absolute;top:-2px;right:-2px;width:11px;height:11px;border-radius:50%;background:#4ade80;border:2px solid var(--ca-bg,#fff);animation:pmWhatsPing 2s infinite}
@keyframes pmWhatsPing{0%{transform:scale(1);opacity:1}70%{transform:scale(1.8);opacity:0}100%{opacity:0}}
@media (max-width:640px){.pm-whats-float span{display:none}.pm-whats-float{padding:12px}}
@media (prefers-reduced-motion:reduce){.pm-whats-pulse{animation:none}}
.ca-btn.ca-danger-text{color:var(--ca-danger)}
