@import url('https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&display=swap');

/* Tokens: tema claro (padrão) e escuro. */
:root{--bg:#f3f5f9;--surface:#fff;--surface-2:#f7f9fc;--surface-3:#eef2f7;--ink:#0f1d2e;--muted:#5b6a7d;--line:#e2e8f0;--line-strong:#cbd5e1;--accent:#1f4fd1;--accent-hover:#1a43b3;--accent-soft:#e9effd;--accent-ink:#fff;--green:#127a3d;--green-soft:#e6f6ec;--amber:#8a5a00;--amber-soft:#fff3d6;--danger:#b42335;--danger-soft:#fdecee;--shadow:0 1px 2px rgba(15,29,46,.05),0 8px 24px rgba(15,29,46,.06);--shadow-lg:0 24px 80px rgba(15,29,46,.22);--radius:14px;--focus:#1f4fd1;color-scheme:light}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--bg:#0a111e;--surface:#101a2b;--surface-2:#142035;--surface-3:#1a2841;--ink:#e7eef8;--muted:#97a6bb;--line:#21304b;--line-strong:#2f4266;--accent:#7aa2ff;--accent-hover:#97b6ff;--accent-soft:#1a2c55;--accent-ink:#081022;--green:#5ee08f;--green-soft:#11301e;--amber:#fbc54d;--amber-soft:#382808;--danger:#ff8a8a;--danger-soft:#3a1519;--shadow:0 1px 2px rgba(0,0,0,.3),0 8px 24px rgba(0,0,0,.25);--shadow-lg:0 24px 80px rgba(0,0,0,.55);--focus:#7aa2ff;color-scheme:dark}}
:root[data-theme="dark"]{--bg:#0a111e;--surface:#101a2b;--surface-2:#142035;--surface-3:#1a2841;--ink:#e7eef8;--muted:#97a6bb;--line:#21304b;--line-strong:#2f4266;--accent:#7aa2ff;--accent-hover:#97b6ff;--accent-soft:#1a2c55;--accent-ink:#081022;--green:#5ee08f;--green-soft:#11301e;--amber:#fbc54d;--amber-soft:#382808;--danger:#ff8a8a;--danger-soft:#3a1519;--shadow:0 1px 2px rgba(0,0,0,.3),0 8px 24px rgba(0,0,0,.25);--shadow-lg:0 24px 80px rgba(0,0,0,.55);--focus:#7aa2ff;color-scheme:dark}

*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.55 'Plus Jakarta Sans',system-ui,sans-serif;font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased;transition:background .2s,color .2s}
button,input,select,textarea{font:inherit;color:inherit}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
button,.button{border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink);padding:9px 15px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;text-decoration:none;font-weight:600;font-size:13px;min-height:38px;transition:background .15s,border-color .15s,transform .05s}
button:hover,.button:hover{background:var(--surface-3)}
button:active{transform:translateY(1px)}
button:disabled{opacity:.55;cursor:wait}
button svg,.button svg{width:17px;height:17px;flex:none}
.cnpj-row{display:flex;gap:8px;align-items:end}
.cnpj-row .field{flex:1}
.cnpj-result{grid-column:1/-1;background:var(--surface-2);border:1px solid var(--line);border-radius:12px;padding:14px 16px;font-size:13px}
.cnpj-result dl{display:grid;grid-template-columns:auto 1fr;gap:4px 14px;margin:8px 0 0}
.cnpj-result dt{color:var(--muted)}
.cnpj-result dd{margin:0;font-weight:600;overflow-wrap:anywhere}
.cnpj-result ul{margin:6px 0 0;padding-left:18px}
.cnpj-result .pill{margin-left:6px}
.primary,.button.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.primary:hover,.button.primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}
.quiet{background:transparent;border-color:transparent}
.danger{color:var(--danger)}
a{color:var(--accent)}
h1{font-size:28px;letter-spacing:-.8px;line-height:1.2;margin:0;font-weight:800}
h2{font-size:17px;line-height:1.35;margin:0 0 8px;font-weight:700;letter-spacing:-.2px}
h3{font-size:14px;margin:0 0 6px;font-weight:700}
p{margin:8px 0 16px}
.muted,small{color:var(--muted)}
small{font-size:12px}
.help{font-size:13px;color:var(--muted)}
.hidden{display:none!important}
.error{color:var(--danger)}
.loading{margin:70px;text-align:center;color:var(--muted)}

/* Estrutura com menu lateral. */
.layout{display:grid;grid-template-columns:260px minmax(0,1fr);min-height:100vh;transition:grid-template-columns .2s}
.layout.side-collapsed{grid-template-columns:76px minmax(0,1fr)}
.layout>div,.sidebar{min-width:0}
/* Menu lateral: marca, grupos de navegação e bloco do perfil. */
.sidebar{padding:18px 12px 14px;display:flex;flex-direction:column;gap:14px;position:sticky;top:0;height:100vh;overflow-y:auto;overflow-x:hidden}
.side-top{display:flex;align-items:center;gap:8px;padding:0 4px 4px}
.brand{display:flex;align-items:center;gap:10px;min-width:0;flex:1}
.brand img{width:40px;height:40px;object-fit:contain;flex:none;background:#fff;border-radius:11px;padding:3px;box-shadow:var(--shadow)}
.brand-text{min-width:0}
.brand-text strong{display:block;font-size:15px;font-weight:800;letter-spacing:-.3px;line-height:1.2;white-space:nowrap}
.brand-text small{display:block;font-size:11px;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.side-collapse{color:var(--muted)}
.mobile-menu{display:none}
.sidebar nav{display:flex;flex-direction:column;gap:14px;flex:1}
.nav-group{display:grid;gap:2px}
.sidebar .nav-label{font-size:10.5px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);padding:0 12px 4px;margin:0;opacity:.85}
.sidebar nav button,.nav-ext{display:flex;align-items:center;gap:11px;width:100%;text-align:left;justify-content:flex-start;background:transparent;border:1px solid transparent;color:var(--muted);padding:8px 12px;min-height:40px;font-weight:500;font-size:14px;border-radius:10px;position:relative;text-decoration:none}
.sidebar nav button:hover,.nav-ext:hover{background:var(--surface-3);color:var(--ink)}
.sidebar nav button.active{background:var(--surface);border-color:var(--line);color:var(--accent);font-weight:700;box-shadow:var(--shadow)}
.sidebar nav button.active:before{content:'';position:absolute;left:-12px;top:9px;bottom:9px;width:3px;border-radius:0 3px 3px 0;background:var(--accent)}
.sidebar nav svg,.nav-ext svg{width:19px;height:19px;flex:none}
.nav-text{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sidebar .badge{margin-left:auto;font-size:11px;font-weight:700;background:var(--surface-3);color:var(--muted);border-radius:20px;padding:1px 8px;min-width:22px;text-align:center}
.sidebar .badge.hot{background:var(--accent);color:var(--accent-ink)}
.sidebar .badge.new{background:var(--green-soft);color:var(--green)}
.nav-ext{font-size:13px;margin-top:2px}
.side-bottom{display:grid;grid-template-columns:minmax(0,1fr);gap:8px;margin-top:auto}
.nav-group{min-width:0}.me{min-width:0}
.side-alert{display:flex;align-items:center;gap:10px;justify-content:flex-start;text-align:left;background:var(--amber-soft);border-color:transparent;color:var(--amber);font-size:12.5px;font-weight:600;padding:9px 12px;border-radius:10px}
.side-alert svg{width:18px;height:18px}
.me{display:flex;align-items:center;gap:4px;padding:6px;border:1px solid var(--line);border-radius:14px;background:var(--surface);box-shadow:var(--shadow)}
.me-main{display:flex;align-items:center;gap:10px;flex:1;min-width:0;border:0;background:transparent;padding:4px;justify-content:flex-start;text-align:left;border-radius:10px}
.me-main:hover{background:var(--surface-3)}
.me-main .portrait{width:38px;height:38px}
.me-main strong{display:block;font-size:13.5px;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.me-main small{display:block;font-size:11.5px;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.me-actions{display:flex;gap:2px}
.side-backdrop{display:none}
/* Menu recolhido: só ícones, com o nome no "title". */
.sidebar.collapsed{padding-inline:10px}
.sidebar.collapsed .brand-text,.sidebar.collapsed .nav-text,.sidebar.collapsed .badge,.sidebar.collapsed .nav-label{display:none}
.sidebar.collapsed .side-top{flex-direction:column;padding:0}
.sidebar.collapsed nav button,.sidebar.collapsed .nav-ext,.sidebar.collapsed .side-alert{justify-content:center;padding:8px 0}
.sidebar.collapsed .nav-group{padding-top:8px;border-top:1px solid var(--line)}
.sidebar.collapsed .nav-group:first-child{border-top:0;padding-top:0}
.sidebar.collapsed nav button.active:before{left:-10px}
.sidebar.collapsed .me{flex-direction:column;padding:6px 4px}
.sidebar.collapsed .me-main{justify-content:center;padding:2px}
.sidebar.collapsed .me-actions{flex-direction:column}
/* Celular e tablet: barra no topo e menu em gaveta. */
@media(max-width:1100px){
 .sidebar,.sidebar.collapsed{height:auto;position:sticky;top:0;z-index:15;flex-direction:row;align-items:center;padding:10px 14px;background:var(--bg);border-bottom:1px solid var(--line);overflow:visible}
 .sidebar.collapsed .brand-text{display:block}.sidebar.collapsed .side-top{flex-direction:row}
 .side-top{flex:1;padding:0}.side-collapse{display:none}.mobile-menu{display:inline-flex}
 .sidebar nav,.side-bottom{display:none}
 .sidebar.open{position:fixed;inset:0 auto 0 0;width:min(300px,86vw);height:100vh;flex-direction:column;align-items:stretch;padding:16px 12px;background:var(--surface);border-right:1px solid var(--line);box-shadow:var(--shadow-lg);overflow-y:auto;z-index:30}
 .sidebar.open .side-top{flex:none}
 .sidebar.open nav{display:flex}.sidebar.open .side-bottom{display:grid}
 .sidebar.open .nav-text,.sidebar.open .badge,.sidebar.open .nav-label{display:revert}
 .sidebar.open nav button,.sidebar.open .nav-ext{justify-content:flex-start;padding:8px 12px}
 .side-backdrop.show{display:block;position:fixed;inset:0;background:rgba(8,15,28,.5);z-index:25}
}
.logo{display:flex;align-items:center;gap:11px;font-size:22px;font-weight:800;letter-spacing:-.8px}
.logo img{width:42px;height:42px;object-fit:contain;flex:none;background:#fff;border-radius:11px;padding:3px}
.logo small{display:block;font-size:11px;letter-spacing:0;font-weight:500;line-height:1.3}
.portrait{width:44px;height:44px;border-radius:50%;object-fit:cover;object-position:50% 20%;flex:none;border:2px solid var(--surface);box-shadow:0 0 0 2px var(--accent-soft)}
.icon-btn{min-height:34px;width:34px;padding:0;border-radius:9px;flex:none}
.icon-btn svg{width:17px;height:17px}
.theme-toggle{display:flex;border:1px solid var(--line);border-radius:10px;padding:3px;background:var(--surface);gap:2px}
.theme-toggle button{flex:1;border:0;min-height:30px;padding:4px 6px;font-size:12px;font-weight:600;color:var(--muted);background:transparent;border-radius:7px}
.theme-toggle button[aria-pressed="true"]{background:var(--surface-3);color:var(--ink)}
.theme-toggle svg{width:15px;height:15px}
.top{height:58px;display:flex;align-items:center;justify-content:space-between;padding:0 30px;color:var(--muted);font-size:13px}
.top .live{display:flex;gap:7px;align-items:center}
.live:before{content:'';width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 0 3px var(--green-soft)}
main.sheet{background:var(--surface);border:1px solid var(--line);border-radius:20px;margin:0 10px 10px 0;min-height:calc(100vh - 68px);padding:32px;box-shadow:var(--shadow)}
.page-head{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:28px}
.page-head p{color:var(--muted);margin:7px 0 0}
.actions{display:flex;gap:8px;flex-wrap:wrap}
.note-line{font-size:12px;color:var(--muted);margin-top:28px}

/* Painéis, indicadores e listas. */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:24px}
.stat{padding:18px 20px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-2)}
.stat span{font-size:13px;color:var(--muted);display:block;font-weight:500}
.stat b{font-size:32px;font-weight:800;display:block;margin:6px 0 2px;letter-spacing:-1px}
.stat small{font-size:12px}
.two{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:22px;align-items:start}
.panel{border:1px solid var(--line);border-radius:var(--radius);padding:22px;margin-bottom:20px;background:var(--surface)}
.panel-head{display:flex;justify-content:space-between;align-items:start;gap:15px;margin-bottom:14px}
.panel-head p{margin:0;color:var(--muted);font-size:13px}
.person-row{display:flex;align-items:center;gap:12px;padding:14px 0;border-top:1px solid var(--line)}
.person-row .grow{flex:1;min-width:0}
.person-row strong{font-weight:600;display:block;overflow-wrap:anywhere}
.person-row small{display:block}
.avatar{height:36px;width:36px;border-radius:50%;background:var(--accent-soft);color:var(--accent);display:grid;place-items:center;font-size:12px;font-weight:700;flex:none}
.pill{display:inline-flex;border-radius:20px;background:var(--surface-3);color:var(--muted);padding:3px 9px;font-size:11px;font-weight:600;white-space:nowrap}
.pill.green{background:var(--green-soft);color:var(--green)}
.pill.amber{background:var(--amber-soft);color:var(--amber)}
.bars{display:grid;gap:17px}
.bar-row{display:grid;grid-template-columns:150px 1fr 38px;gap:12px;align-items:center;font-size:13px}
.track{height:8px;border-radius:8px;background:var(--surface-3);overflow:hidden}
.track i{height:100%;display:block;background:linear-gradient(90deg,var(--accent),#38bdf8);border-radius:8px}
.bar-row b{text-align:right;font-weight:700}
.notice{padding:12px 14px;border-radius:10px;background:var(--accent-soft);color:var(--ink);font-size:13px;margin:12px 0 20px;border:1px solid var(--line)}
.notice.warn{background:var(--amber-soft)}
.score-list{display:grid;gap:14px;margin-top:18px}
.score-list div{display:flex;justify-content:space-between;gap:20px;font-size:13px}
.resource-link{display:block;padding:14px 0;border-top:1px solid var(--line);text-decoration:none;font-weight:600}
.resource-link small{display:block;margin-top:3px;font-weight:400}
.inline-img{width:100%;max-width:280px;border-radius:12px}
.empty{padding:28px;color:var(--muted);border:1px dashed var(--line-strong);border-radius:12px;text-align:center}
.toolbar{display:flex;gap:10px;align-items:center;justify-content:space-between;margin-bottom:18px}
.toolbar input{width:320px}
.filters{display:flex;gap:22px;border-bottom:1px solid var(--line);margin-bottom:20px;overflow:auto}
.filters button{border:0;border-radius:0;background:none;color:var(--muted);padding:8px 0 12px;white-space:nowrap;font-weight:600}
.filters button.selected{box-shadow:inset 0 -2px 0 var(--accent);color:var(--ink)}
.filters small{background:var(--surface-3);border-radius:20px;padding:0 7px;margin-left:4px}

table{width:100%;border-collapse:collapse}
th{text-align:left;color:var(--muted);font-size:12px;font-weight:600;padding:0 10px 12px;text-transform:uppercase;letter-spacing:.04em}
td{padding:15px 10px;border-top:1px solid var(--line);font-size:13px;vertical-align:middle}
td:first-child,th:first-child{padding-left:0}
td:last-child{text-align:right;padding-right:0}
td strong{display:block;font-weight:600}
td small{display:block;margin-top:3px}
.table-actions{display:flex;gap:6px;justify-content:end}
td button{padding:6px 11px;min-height:32px;font-size:12px}
.company-name{font-size:15px;font-weight:700;line-height:1.35}
.company-table td{min-width:0;overflow-wrap:anywhere}
.company-table td:first-child{width:32%;padding-right:20px}
.company-table td:nth-child(2){width:28%}
.cnpj-line{display:block;font-size:13px;margin:7px 0 3px}
.email-link{display:block;font-size:13px;margin-top:5px;text-decoration:none;overflow-wrap:anywhere}
.email-link:hover{text-decoration:underline}
.overview-company-data{overflow-wrap:anywhere}
.registration-source{margin-top:20px}
.company-summary{background:var(--surface-2);border:1px solid var(--line);border-radius:12px;padding:18px;display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:24px}
.company-summary small{display:block;margin-bottom:4px}
.company-summary strong{display:block;font-size:15px;font-weight:700}
.company-title{grid-column:1/-1}
.company-title strong{font-size:21px;line-height:1.3}
.company-title span{display:block;margin-top:5px;font-size:13px}
.company-summary .email-link{font-size:15px;font-weight:600}
.company-summary .pill{margin-top:7px}

/* Formulários. */
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.field{display:grid;gap:6px;text-align:left;font-size:13px;font-weight:600}
.field.wide{grid-column:1/-1}
.field small{font-weight:400}
input,select,textarea{width:100%;border:1px solid var(--line-strong);border-radius:10px;background:var(--surface);color:var(--ink);padding:10px 12px;min-height:44px;transition:border-color .15s,box-shadow .15s}
input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}
textarea{min-height:95px;resize:vertical}
label{font-weight:600}
input[type=checkbox],input[type=radio]{width:17px;min-height:17px;accent-color:var(--accent);flex:none;box-shadow:none}
input[type=file]{padding:8px}
.check{display:flex;gap:9px;align-items:start;font-weight:400;margin:9px 0}
.check input{margin-top:3px}
.form-footer{display:flex;gap:10px;justify-content:end;margin-top:24px;border-top:1px solid var(--line);padding-top:20px;flex-wrap:wrap}
.pw-wrap{position:relative;display:block}
.pw-wrap input{padding-right:48px}
.pw-toggle{position:absolute;right:5px;top:50%;transform:translateY(-50%);min-height:34px;width:38px;padding:0;border:0;background:transparent;color:var(--muted)}
.pw-toggle:hover{background:var(--surface-3);color:var(--ink)}
.pw-toggle svg{width:19px;height:19px}

dialog{width:min(820px,calc(100% - 28px));max-height:92vh;overflow:auto;padding:28px;border:1px solid var(--line);border-radius:18px;color:var(--ink);background:var(--surface);box-shadow:var(--shadow-lg)}
dialog::backdrop{background:rgba(8,15,28,.55);backdrop-filter:blur(3px)}
dialog.narrow{width:min(520px,calc(100% - 28px))}
.modal-head{display:flex;justify-content:space-between;align-items:start;margin-bottom:22px;gap:12px}
.modal-head p{margin:5px 0 0;color:var(--muted)}
.close{padding:3px 10px;font-size:22px;min-height:34px;line-height:1}
.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.detail-grid small{display:block}
.report-title{font-size:24px}
.maturity{display:flex;gap:8px;margin:16px 0}
.maturity span{flex:1;border-top:5px solid var(--line);padding-top:8px;font-size:11px}
.maturity span.on{border-color:var(--accent);color:var(--accent);font-weight:700}
.report-block{padding:18px 0;border-top:1px solid var(--line)}
.report-block p{white-space:pre-wrap;margin:5px 0 12px}
.report-block small{display:block}
.photo-edit{display:flex;gap:18px;align-items:center;margin-bottom:20px}
.photo-edit img{width:96px;height:96px;border-radius:50%;object-fit:cover;object-position:50% 20%;box-shadow:0 0 0 4px var(--accent-soft)}
.photo-edit .actions{flex-direction:column;align-items:start}
#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:var(--ink);color:var(--bg);padding:12px 20px;border-radius:12px;z-index:9;display:none;max-width:90vw;box-shadow:var(--shadow-lg);font-weight:600}
#toast.visible{display:block}

/* Agente do grupo. */
.code-box{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.code-box code{font:700 18px/1 ui-monospace,Consolas,monospace;background:var(--surface-3);border-radius:8px;padding:10px 14px;letter-spacing:.06em}
.link-box{display:flex;gap:8px}
.link-box input{font-size:13px}
.status-dot{display:inline-flex;align-items:center;gap:7px;font-weight:600;font-size:13px}
.status-dot:before{content:'';width:8px;height:8px;border-radius:50%;background:var(--amber)}
.status-dot.ok:before{background:var(--green)}
.lesson-row{display:flex;gap:12px;align-items:center;padding:13px 0;border-top:1px solid var(--line)}
.lesson-row .grow{flex:1;min-width:0}
.lesson-row strong{display:block;font-weight:600;overflow-wrap:anywhere}
.lesson-icon{width:36px;height:36px;border-radius:10px;background:var(--accent-soft);color:var(--accent);display:grid;place-items:center;flex:none}
.lesson-icon svg{width:18px;height:18px}
.q-item{padding:14px 0;border-top:1px solid var(--line)}
.q-item p{margin:6px 0;white-space:pre-wrap}
.q-item details{font-size:13px;color:var(--muted)}
.q-item summary{cursor:pointer;color:var(--accent);font-weight:600}

/* Login. */
.login-page{min-height:100vh;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr)}
.login-art{position:relative;overflow:hidden;background:#0b1d3a;display:flex;align-items:flex-start;padding:44px;color:#fff}
.login-art img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 25%}
.login-art:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,rgba(9,22,48,0) 55%,rgba(9,22,48,.9))}
.login-art blockquote{position:relative;z-index:1;margin:0;max-width:440px}
.login-art blockquote p{font-size:22px;line-height:1.4;font-weight:700;letter-spacing:-.4px;margin:0 0 14px}
.login-art blockquote small{color:#c9d6ee;font-size:13px}
.login-side{display:flex;flex-direction:column;padding:28px clamp(20px,5vw,72px);background:var(--surface)}
.login-top{display:flex;justify-content:space-between;align-items:center;gap:12px}
.login-form{width:100%;max-width:400px;margin:auto 0;padding:40px 0;align-self:center}
.login-form h1{font-size:32px;margin-bottom:8px}
.login-form form{display:grid;gap:16px;margin-top:28px}
.login-form .primary{width:100%;min-height:48px;font-size:15px}
.login-form .error{background:var(--danger-soft);padding:10px 12px;border-radius:10px;margin:0;font-size:13px}
.login-foot{font-size:12px;color:var(--muted)}
.login-top .theme-toggle{width:auto}

/* Páginas públicas: diagnóstico e grupo. */
.public-wrap{max-width:820px;margin:28px auto;padding:0 18px}
.public-header{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:24px}
.public-header small{max-width:200px;text-align:right}
.public-main{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:32px;box-shadow:var(--shadow)}
.public-main h1{margin-bottom:10px}
.progress{display:flex;gap:8px;margin:24px 0}
.progress i{height:6px;border-radius:6px;background:var(--surface-3);flex:1}
.progress i.done{background:var(--accent)}
.public-main fieldset{border:0;padding:0;margin:0}
.public-main legend{font-size:18px;font-weight:700;margin:12px 0 18px}
.public-footer{text-align:center;margin:24px auto;color:var(--muted);font-size:12px}
.mentor-hero{display:flex;gap:14px;align-items:center;margin-bottom:6px}
.mentor-hero img{width:56px;height:56px;border-radius:50%;object-fit:cover;object-position:50% 20%;box-shadow:0 0 0 3px var(--accent-soft)}
.chat{display:flex;flex-direction:column;gap:12px;margin:22px 0;max-height:min(58vh,560px);overflow-y:auto;padding:4px 2px}
.msg{max-width:86%;padding:12px 15px;border-radius:16px;white-space:pre-wrap;line-height:1.6;font-size:14px;overflow-wrap:anywhere}
.msg.user{align-self:flex-end;background:var(--accent);color:var(--accent-ink);border-bottom-right-radius:5px}
.msg.bot{align-self:flex-start;background:var(--surface-3);border-bottom-left-radius:5px}
.msg.typing{color:var(--muted);font-style:italic}
.chat-form{display:flex;gap:8px;align-items:end}
.chat-form textarea{min-height:48px;max-height:180px;resize:none}
.chat-form .primary{min-height:48px}
.suggestions{display:flex;gap:8px;flex-wrap:wrap;margin-top:6px}
.suggestions button{font-size:12px;font-weight:500;border-radius:20px;min-height:32px}
.mobile-menu{display:none}

@media(min-width:1500px){main.sheet{padding:38px 44px}.two{grid-template-columns:minmax(0,1fr) 360px}}
@media(max-width:1100px){.layout,.layout.side-collapsed{grid-template-columns:1fr}.top{display:none}main.sheet{margin:10px;min-height:calc(100vh - 80px)}.two{grid-template-columns:minmax(0,1fr) 290px}.login-page{grid-template-columns:1fr 1fr}}
@media(max-width:760px){h1{font-size:24px}main.sheet{padding:20px 16px;border-radius:14px;margin:8px}.page-head{align-items:start;flex-direction:column}.page-head p{font-size:13px}.stats{grid-template-columns:1fr 1fr;gap:10px}.stat{padding:14px}.stat b{font-size:26px}.two{grid-template-columns:1fr;gap:0}.panel{padding:16px}.person-row{gap:9px;align-items:start}.person-row strong{font-size:13px}.person-row button{flex:none;align-self:center}.bar-row{grid-template-columns:120px 1fr 32px;gap:8px}.toolbar{align-items:start;flex-wrap:wrap}.toolbar input{width:100%}
 table,tbody,tr,td{display:block}thead{display:none}tr{border-top:1px solid var(--line);padding:14px 0;display:grid;grid-template-columns:1fr auto;gap:7px}td{border:0;padding:0;font-size:12px}td:first-child{grid-column:1}.mentee-table td:nth-child(2){grid-column:1}.mentee-table td:nth-child(3){grid-column:2;grid-row:1}.mentee-table td:nth-child(4){grid-column:2;grid-row:2;text-align:right}.mentee-table td:last-child{grid-column:1/-1}
 .company-table td:first-child,.company-table td:nth-child(2){width:auto}.company-table tr{grid-template-columns:minmax(0,1fr) 106px}.company-table td:nth-child(2){grid-column:1/-1;grid-row:2;margin:8px 0}.company-table td:nth-child(3){grid-column:2;grid-row:1;text-align:right}.company-table td:nth-child(3) .pill{white-space:normal;text-align:center}.company-table td:nth-child(4){grid-column:2;grid-row:3}.company-table td:last-child{grid-column:1;grid-row:3}.company-table td:first-child{padding-right:8px}.table-actions{justify-content:start}
 .form-grid,.detail-grid,.company-summary{grid-template-columns:1fr}.field.wide,.company-title{grid-column:auto}button,.button{min-height:44px}.form-footer{justify-content:space-between}.maturity{gap:5px}.maturity span{font-size:10px}.report-title{font-size:22px}.panel-head button{white-space:nowrap}
 .login-page{grid-template-columns:1fr}.login-art{display:none}.login-side{padding:20px}.login-form{padding:24px 0}
 .public-wrap{margin-top:16px;padding:0 12px}.public-main{padding:22px 18px}.public-header .logo{font-size:20px}.public-header .logo small{display:none}.public-header .logo img{width:38px;height:38px}.public-header small{font-size:11px;max-width:160px}.msg{max-width:94%}.photo-edit{flex-direction:column;align-items:start}.link-box{flex-direction:column}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
@media print{:root{--ink:#000;--muted:#444;--line:#ccc;--surface:#fff;--surface-2:#fff;--surface-3:#eee;--accent:#1f4fd1}body{background:white;color:#000}body>*:not(dialog){display:none!important}dialog{position:static;display:block!important;width:100%;max-height:none;overflow:visible;border:0;padding:0;box-shadow:none;background:#fff;color:#000}dialog::backdrop{display:none}.no-print,dialog .form-footer,dialog .close{display:none!important}.report-block{break-inside:avoid}h2,h3{break-after:avoid}.report-logo{max-width:70px}a{color:inherit;text-decoration:none}@page{size:A4;margin:18mm}}
.detail-grid strong{white-space:pre-line}

/* Ficha do mentorado e nomes clicáveis. */
.link-btn{background:none;border:0;padding:0;min-height:0;font:inherit;font-weight:700;color:var(--ink);cursor:pointer;text-align:left;display:block;border-radius:4px}
.link-btn:hover{background:none;color:var(--accent);text-decoration:underline;text-underline-offset:3px}
.link-btn.company-name{font-size:15px}
.profile-head{display:flex;gap:14px;align-items:flex-start;margin-bottom:16px}
.profile-head h2{font-size:22px;margin:0;letter-spacing:-.4px}
.avatar.lg{width:58px;height:58px;font-size:19px;border-radius:16px}
.pills{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}
.quick-actions{display:flex;gap:8px;margin-bottom:18px;flex-wrap:wrap}
.info-card{border:1px solid var(--line);border-radius:14px;padding:16px 18px;margin-bottom:12px;background:var(--surface-2)}
.info-card h3{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:12px}
.info-card .detail-grid{gap:14px 18px}
.info-card .detail-grid a{font-weight:600;overflow-wrap:anywhere}
.web-result{display:grid;gap:10px}
.web-result label{display:flex;gap:10px;align-items:center;font-weight:500;padding:10px 12px;border:1px solid var(--line);border-radius:10px}
.web-result label span{flex:1;overflow-wrap:anywhere}
.web-result small{display:block}

/* Jornada da consultoria, relatórios e gráficos. */
.journey{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px}
.journey-item{display:flex;gap:10px;align-items:center;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--surface-2)}
.journey-item.on{border-color:var(--accent);background:var(--accent-soft)}
.journey-item strong{display:block;font-size:14px;line-height:1.3}
.journey-item small{display:block}
.journey-item button{min-height:34px;font-size:12px;white-space:nowrap}
.phase-tag{display:inline-block;font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--accent);margin-bottom:2px}
.dots{display:flex;gap:4px;margin-top:8px;flex-wrap:wrap}
.dots i{width:16px;height:6px;border-radius:6px;background:var(--surface-3)}
.dots i.open{background:var(--line-strong)}
.dots i.done{background:var(--green)}
.report-row .actions button{min-height:32px;font-size:12px;padding:6px 10px}
.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin:-6px 0 18px;overflow:auto}
.tabs button{border:0;border-radius:0;background:none;color:var(--muted);padding:8px 12px 11px;white-space:nowrap}
.tabs button.selected{box-shadow:inset 0 -2px 0 var(--accent);color:var(--ink)}
.chart{margin:14px 0;text-align:center}
.chart svg{width:100%;max-width:520px;height:auto;overflow:visible}
.chart text{font-size:11px;fill:var(--muted);font-family:inherit}
.chart .pt-label{fill:var(--ink);font-weight:700}
.chart .grid{fill:none;stroke:var(--line);stroke-width:1}
.chart .axis{stroke:var(--line);stroke-width:1}
.chart .shape{stroke-width:2;fill-opacity:.18}
.chart .shape.s0,.chart .dot.s0{stroke:#94a3b8;fill:#94a3b8}
.chart .shape.s1,.chart .dot.s1{stroke:var(--accent);fill:var(--accent)}
.chart .dot{stroke:var(--surface);stroke-width:1.5;fill-opacity:1}
.chart .line{fill:none;stroke:var(--accent);stroke-width:2.5;stroke-linejoin:round}
.chart figcaption{display:flex;gap:16px;justify-content:center;flex-wrap:wrap;font-size:12px;color:var(--muted);margin-top:6px}
.legend-item{display:inline-flex;align-items:center;gap:6px}
.legend-item i{width:12px;height:12px;border-radius:3px;display:inline-block}
.legend-item i.s0{background:#94a3b8}.legend-item i.s1{background:var(--accent)}
.rating-table{margin:10px 0 4px}
.rating-table td,.rating-table th{padding:8px 10px;font-size:13px;text-align:center}
.rating-table td:first-child,.rating-table th:first-child{text-align:left}
.up{color:var(--green);font-weight:700}.down{color:var(--danger);font-weight:700}
.stats.mini{grid-template-columns:repeat(4,1fr);gap:10px;margin:12px 0}
.stats.mini .stat{padding:12px 14px}.stats.mini .stat b{font-size:24px}
.report-block small.sub{display:block;margin:14px 0 4px;font-weight:700;color:var(--ink);text-transform:uppercase;font-size:11px;letter-spacing:.06em}
.nps strong{font-size:18px}
.q-section{border-top:1px solid var(--line);padding-top:18px;margin-top:18px}
.q-section h3{font-size:16px}
.scale-q{border:0;padding:0;margin:0;grid-column:1/-1}
.scale-q legend{font-size:13px;font-weight:600;margin-bottom:8px;padding:0}
.scale{display:flex;gap:6px;flex-wrap:wrap}
.scale label{flex:1;min-width:44px;position:relative}
.scale input{position:absolute;opacity:0;width:100%;height:100%;margin:0;cursor:pointer}
.scale span{display:grid;place-items:center;min-height:42px;border:1px solid var(--line-strong);border-radius:10px;font-weight:700;background:var(--surface);transition:background .15s,border-color .15s}
.scale input:checked+span{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.scale input:focus-visible+span{outline:2px solid var(--focus);outline-offset:2px}
.scale.nps label{min-width:34px}
@media(max-width:760px){.stats.mini{grid-template-columns:1fr 1fr}.report-row{flex-wrap:wrap}.report-row .actions{width:100%}.journey{grid-template-columns:1fr}}
@media print{.chart .shape.s1,.chart .dot.s1,.legend-item i.s1{stroke:#1f4fd1;fill:#1f4fd1;background:#1f4fd1}.chart .line{stroke:#1f4fd1}.tabs{display:none}}
.me-actions .icon-btn{width:30px;min-height:30px}
.nav-ext{border-top:1px solid var(--line);border-radius:0 0 10px 10px;padding-top:12px;margin-top:4px}
.nav-ext:hover{border-radius:10px}
.sidebar.collapsed .nav-ext{border-radius:10px}
@media(max-width:1100px){.sidebar .mobile-menu{display:inline-flex}}

/* Metodologia oficial: diagnóstico, plano e acompanhamento. */
.kpis{display:flex;flex-wrap:wrap;gap:6px 16px;margin-top:6px;font-size:12.5px;color:var(--muted)}
.kpis b{color:var(--ink)}
.kpis .pill{margin-left:4px}
.axis-block{border:1px solid var(--line);border-radius:14px;padding:14px 16px;margin:12px 0;background:var(--surface)}
.axis-block>summary{cursor:pointer;display:flex;flex-wrap:wrap;gap:4px 12px;align-items:baseline;list-style:none}
.axis-block>summary::-webkit-details-marker{display:none}
.axis-block>summary:before{content:'▸';color:var(--muted);transition:transform .15s}
.axis-block[open]>summary:before{transform:rotate(90deg)}
.axis-block>summary strong{font-size:15px}
.axis-block>summary small{color:var(--muted)}
.decision{border-top:1px solid var(--line);padding:14px 0}
.decision.done .decision-head strong{color:var(--green)}
.decision-head{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.decision-head strong{font-size:14px}
.decision p small{display:block;font-weight:700;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.05em}
.track{font-size:10.5px;font-weight:700;border-radius:20px;padding:2px 8px;background:var(--surface-3);color:var(--muted)}
.track.min{background:var(--accent-soft);color:var(--accent)}
.done-check{margin:0 0 0 auto;font-size:13px;font-weight:600}
.guide{font-size:13px;color:var(--muted);background:var(--surface-2);border-left:3px solid var(--accent);padding:8px 12px;border-radius:0 8px 8px 0;margin:8px 0 12px}
.opt{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--line-strong);border-radius:12px;padding:11px 14px;margin:6px 0;cursor:pointer;font-weight:500;background:var(--surface);transition:border-color .15s,background .15s}
.opt:hover{border-color:var(--accent)}
.opt input{margin-top:3px}
.opt:has(input:checked){border-color:var(--accent);background:var(--accent-soft)}
.seg-pick{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:8px;margin-top:6px}
.opt-btn{min-height:64px;font-size:15px}
.diag-q{padding:14px 0;border-top:1px solid var(--line)}
.diag-q:first-of-type{border-top:0}
.q-title{font-weight:600;margin:0 0 8px;display:flex;gap:10px}
.q-num{flex:none;width:26px;height:26px;border-radius:50%;background:var(--accent-soft);color:var(--accent);display:grid;place-items:center;font-size:12px;font-weight:800}
.score-hero{display:flex;align-items:center;gap:14px;margin:16px 0}
.score-hero b{font-size:44px;font-weight:800;letter-spacing:-1px}
.score-dot{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:50%;font-size:11px;font-weight:800;margin-right:8px;background:var(--surface-3)}
.score-dot.s2{background:var(--green-soft);color:var(--green)}.score-dot.s1{background:var(--amber-soft);color:var(--amber)}.score-dot.s0{background:var(--danger-soft);color:var(--danger)}
.prio{margin:6px 0;padding-left:18px}.prio li{margin:6px 0}
.rating-table tr.total td{font-weight:800;border-top:2px solid var(--line-strong)}
.action-plan h3{font-size:15px}
.action-row{display:grid;grid-template-columns:2fr 1.2fr 150px 150px 40px;gap:6px;margin:6px 0}
.action-row button{min-height:44px;font-size:18px}
.sticky-save{position:sticky;bottom:10px;display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:16px;padding:10px 12px;border:1px solid var(--line);border-radius:14px;background:var(--surface);box-shadow:var(--shadow-lg);z-index:5}
@media(max-width:760px){.action-row{grid-template-columns:1fr 1fr}.action-row input:first-child{grid-column:1/-1}.kpis{flex-direction:column;gap:2px}}
@media print{.done-check,.sticky-save{display:none!important}.axis-block{break-inside:avoid}}
.answer{white-space:pre-wrap;line-height:1.6;margin-top:6px;color:var(--ink)}
/* Situação do cadastro na ficha. */
.completeness{background:var(--surface)}
.completeness-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;flex-wrap:wrap}
.completeness-head h3{margin-bottom:4px}
.completeness .track{height:10px;margin-bottom:10px}
.completeness.full .track i{background:var(--green)}
.checklist{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:6px}
.checklist li{display:flex;gap:10px;align-items:flex-start;font-size:13px}
.checklist .ck{flex:none;width:20px;height:20px;border-radius:50%;display:grid;place-items:center;font-size:11px;font-weight:800;background:var(--surface-3);color:var(--muted)}
.checklist li.warn .ck{background:var(--amber-soft);color:var(--amber)}
.location{border-color:var(--accent);background:var(--accent-soft)}
.interest{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.interest span{font-weight:600;margin-right:6px}
.interest button{min-height:34px;padding:6px 14px;border-radius:20px}
.interest button.selected{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
/* Empresas sem CNPJ: destaque para o mentor ligar. */
tr.no-cnpj td{background:var(--danger-soft)}
tr.no-cnpj td:first-child{box-shadow:inset 4px 0 0 var(--danger);padding-left:12px}
.cnpj-alert{display:block;margin-top:6px;font-size:12.5px;font-weight:700;color:var(--danger)}
.cnpj-alert a{color:var(--danger);text-decoration:underline}
@media(max-width:760px){tr.no-cnpj{background:var(--danger-soft);box-shadow:inset 4px 0 0 var(--danger);padding-left:10px}tr.no-cnpj td{background:transparent}}
.web-result label.rejected{opacity:.55;text-decoration:line-through}
.web-result label button{min-height:30px;font-size:12px;white-space:nowrap}
/* Portal do empresário. */
.portal-progress{margin:18px 0 6px}
.portal-progress .track{height:10px;margin-bottom:6px}
.portal-steps{display:grid;gap:10px;margin:18px 0}
.portal-step{display:flex;align-items:center;gap:14px;text-align:left;justify-content:flex-start;padding:14px 16px;border-radius:14px;min-height:72px;font-weight:500}
.portal-step:hover{border-color:var(--accent)}
.portal-step strong{display:block;font-size:15px}
.portal-step small{display:block;margin-top:2px}
.portal-step .n{flex:none;width:32px;height:32px;border-radius:50%;display:grid;place-items:center;font-weight:800;background:var(--accent-soft);color:var(--accent)}
.portal-step.done .n{background:var(--green-soft);color:var(--green)}
.portal-step.alert{border-color:var(--danger);background:var(--danger-soft)}
.portal-step.alert .n{background:var(--danger);color:#fff}
.portal-step:disabled{opacity:.55;cursor:not-allowed}
.steps-list{padding-left:20px;line-height:1.65}
.steps-list li{margin:6px 0}
.field.missing input,.field.missing textarea,.field.missing select,.missing-wrap input{border-color:var(--danger);box-shadow:0 0 0 3px var(--danger-soft)}
.field.missing{color:var(--danger)}
.missing-wrap label{color:var(--danger)}
.public-main fieldset{margin-bottom:10px}
.portal-step .grow{flex:1;min-width:0}
.portal-step>span:last-child{font-size:22px;color:var(--muted)}
/* Relatório mensal. */
.monthly-cta{border-color:var(--accent);background:var(--accent-soft)}
.monthly-cta .panel-head{margin:0}
.act-row{display:grid;grid-template-columns:140px 2.4fr 1.4fr 80px 90px 1.4fr 36px;gap:6px;margin:6px 0}
.act-row input,.act-row select{min-height:40px;font-size:13px;padding:8px}
.evid-grid{display:grid;grid-template-columns:1fr 1fr;gap:2px 16px}
.evid-grid .check{align-items:center}
.evid-grid .qty{width:70px;min-height:32px;margin-left:auto;padding:4px 8px;font-size:12px}
@media(max-width:760px){.act-row{grid-template-columns:1fr 1fr}.act-row input[data-k=activity]{grid-column:1/-1}.evid-grid{grid-template-columns:1fr}}
/* Agenda oficial e agenda da ABIPI. */
.agenda-panel{border-color:var(--accent)}
.slot-chips{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0 14px}
.chip{display:inline-flex;align-items:center;gap:6px;border-radius:20px;padding:5px 12px;background:var(--accent-soft);color:var(--accent);font-size:12.5px;font-weight:600}
.cal-row{display:flex;gap:12px;align-items:center;padding:12px 0;border-top:1px solid var(--line)}
.cal-row.past{opacity:.8}
.cal-row .grow{flex:1;min-width:0}.cal-row strong{display:block}.cal-row small{display:block}
.cal-date{flex:none;width:54px;height:54px;border-radius:12px;background:var(--surface-3);display:grid;place-items:center;text-align:center;line-height:1.1}
.cal-date b{font-size:15px}.cal-date small{font-size:10px}
.cal-row .actions .button,.cal-row .actions button{min-height:34px;font-size:12px;padding:6px 10px}
.agenda-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px;margin:10px 0 18px}
.agenda-card{border:1px solid var(--line);border-radius:12px;padding:12px 14px;background:var(--surface-2)}
.agenda-card.mine{border-color:var(--accent);background:var(--accent-soft)}
.agenda-card strong{display:block}.agenda-card ul{margin:6px 0;padding-left:16px;font-size:12.5px}
@media(max-width:760px){.cal-row{flex-wrap:wrap}.cal-row .actions{width:100%}}

/* Visual Law: resumo, fichas, passos, regras e linha do tempo. */
.vl-ic{display:inline-grid;place-items:center;flex:none;width:38px;height:38px;border-radius:12px;background:var(--accent-soft);color:var(--accent)}
.vl-ic svg{width:20px;height:20px}
.vl-summary{display:flex;gap:14px;align-items:flex-start;padding:16px 18px;margin:14px 0;border-radius:16px;background:linear-gradient(135deg,var(--accent-soft),var(--surface));border:1px solid var(--accent);border-left-width:5px}
.vl-summary strong{display:block;font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--accent);margin-bottom:2px}
.vl-summary p strong{display:inline;font-size:inherit;text-transform:none;letter-spacing:0;color:var(--ink);font-weight:700;margin:0}
.vl-summary p{margin:0;font-size:15px;line-height:1.55;color:var(--ink)}
.vl-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;margin:14px 0}
.vl-fact{display:grid;gap:4px;padding:14px;border:1px solid var(--line);border-radius:14px;background:var(--surface-2);transition:transform .15s,box-shadow .15s}
.vl-fact:hover{transform:translateY(-2px);box-shadow:var(--shadow)}
.vl-fact small{font-size:11px;text-transform:uppercase;letter-spacing:.06em;font-weight:700}
.vl-fact strong{font-size:14px;line-height:1.35}
.vl-steps{list-style:none;margin:16px 0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;counter-reset:none}
.vl-steps li{position:relative;display:grid;gap:6px;justify-items:start;padding:14px;border:1px solid var(--line);border-radius:14px;background:var(--surface);transition:border-color .15s,transform .15s}
.vl-steps li:hover{border-color:var(--accent);transform:translateY(-2px)}
.vl-steps li:not(:last-child):after{content:'→';position:absolute;right:-9px;top:50%;transform:translateY(-50%);z-index:1;width:18px;height:18px;border-radius:50%;background:var(--accent);color:var(--accent-ink);font-size:11px;display:grid;place-items:center}
.vl-num{position:absolute;top:10px;right:12px;font-weight:800;font-size:12px;color:var(--muted)}
.vl-steps strong{font-size:14px}.vl-steps small{font-size:12.5px;line-height:1.4}
.vl-rules{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px;margin:10px 0}
.vl-rule{display:flex;gap:12px;align-items:flex-start;padding:14px;border-radius:14px;border:1px solid var(--line)}
.vl-rule small{display:block;font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}
.vl-rule strong{display:block;font-size:14.5px;line-height:1.3}
.vl-rule p{margin:4px 0 0;font-size:12.5px;color:var(--muted)}
.vl-rule.ok{background:var(--green-soft);border-color:var(--green)}.vl-rule.ok .vl-ic{background:var(--green);color:#fff}.vl-rule.ok small{color:var(--green)}
.vl-rule.warn{background:var(--amber-soft);border-color:var(--amber)}.vl-rule.warn .vl-ic{background:var(--amber);color:#fff}.vl-rule.warn small{color:var(--amber)}
.vl-rule.no{background:var(--danger-soft);border-color:var(--danger)}.vl-rule.no .vl-ic{background:var(--danger);color:#fff}.vl-rule.no small{color:var(--danger)}
.vl-timeline{margin:12px 0}
.vl-months{display:grid;grid-template-columns:repeat(6,1fr);gap:6px;margin-bottom:10px}
.vl-months span{display:grid;place-items:center;height:30px;border-radius:8px;background:var(--surface-3);color:var(--muted);font-weight:800;font-size:12px;position:relative}
.vl-months span.done{background:var(--accent);color:var(--accent-ink)}
.vl-months span.now{background:var(--accent);color:var(--accent-ink);box-shadow:0 0 0 3px var(--accent-soft);animation:vlpulse 2s infinite}
@keyframes vlpulse{50%{box-shadow:0 0 0 6px var(--accent-soft)}}
.vl-phases{display:grid;grid-template-columns:1fr 2fr 1fr;gap:8px}
.vl-phase{display:grid;gap:4px;padding:12px;border-radius:12px;border:1px dashed var(--line-strong);opacity:.7}
.vl-phase.active{opacity:1;border-style:solid;border-color:var(--accent);background:var(--accent-soft)}
.vl-phase strong{font-size:13.5px}.vl-phase small{font-size:12px;line-height:1.4}
@media(max-width:760px){.vl-phases{grid-template-columns:1fr}.vl-steps li:after{display:none}}
@media(prefers-reduced-motion:reduce){.vl-months span.now{animation:none}}
/* Calendário. */
.cal-legend{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:4px 0 14px}
.cal-days{display:grid;gap:12px}
.cal-day{border:1px solid var(--line);border-radius:14px;padding:12px 14px;background:var(--surface)}
.cal-day.today{border-color:var(--accent);box-shadow:var(--shadow)}
.cal-day-head{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;margin-bottom:8px}
.cal-day-head small{flex-basis:100%}
.cal-event{display:flex;gap:12px;align-items:center;padding:10px 12px;border-radius:12px;margin:6px 0;border:1px solid var(--line)}
.cal-event b{flex:none;font-variant-numeric:tabular-nums;min-width:96px}
.cal-event .grow{flex:1;min-width:0}.cal-event strong{display:block}.cal-event small{display:block}
.cal-event.mine{background:var(--green-soft);border-color:var(--green)}.cal-event.mine small{color:var(--green);font-weight:700}
.cal-event.mine-out{background:var(--amber-soft);border-color:var(--amber)}.cal-event.mine-out small{color:var(--amber);font-weight:700}
.cal-event.other,.cal-event.none{background:var(--surface-2);opacity:.85}
.cal-event .button,.cal-event button{min-height:32px;font-size:12px;padding:6px 10px}
@media(max-width:760px){.cal-event{flex-wrap:wrap}.cal-event b{min-width:0}}

.vl-cert{margin:14px 0;padding:16px 18px;border-radius:16px;border:1px solid color-mix(in srgb,#d4a017 45%,var(--line));background:linear-gradient(135deg,color-mix(in srgb,#f5c542 16%,var(--surface)),var(--surface))}
.vl-cert-head{display:flex;gap:12px;align-items:flex-start}.vl-cert-head strong{font-size:16px}.vl-cert-head p{margin:2px 0 0;color:var(--muted)}
.vl-cert .vl-ic{color:#b8860b;flex:none}.vl-cert .vl-ic svg{width:26px;height:26px}
.vl-cert.compact{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:10px 14px}.vl-cert.compact p{margin:0;flex:1;min-width:200px;font-size:14px}.vl-cert.compact .vl-ic svg{width:20px;height:20px}

.chat .msg.bot{position:relative;margin-left:44px;white-space:normal}
.chat .msg.bot::before{content:"";position:absolute;left:-44px;top:0;width:34px;height:34px;border-radius:50%;background:var(--ai-photo,url(/ana-julia.svg)) center/cover;box-shadow:0 0 0 2px var(--accent-soft)}
.msg.bot .ans{display:grid;gap:10px}
.ans-p{margin:0;white-space:pre-wrap}
.ans-card{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border-radius:12px;border:1px solid var(--line);background:var(--surface)}
.ans-card small{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.07em;font-weight:700;color:var(--muted)}
.ans-card p{margin:2px 0 0}
.ans-card .vl-ic svg{width:20px;height:20px}
.ans-card.sum{border-color:color-mix(in srgb,var(--accent) 40%,var(--line));background:linear-gradient(135deg,var(--accent-soft),var(--surface))}.ans-card.sum small,.ans-card.sum .vl-ic{color:var(--accent)}
.ans-card.tip{border-color:color-mix(in srgb,#16a34a 40%,var(--line));background:color-mix(in srgb,#16a34a 8%,var(--surface))}.ans-card.tip small,.ans-card.tip .vl-ic{color:#15803d}
.ans-card.warn{border-color:color-mix(in srgb,#d97706 45%,var(--line));background:color-mix(in srgb,#f59e0b 9%,var(--surface))}.ans-card.warn small,.ans-card.warn .vl-ic{color:#b45309}
.ans-steps{list-style:none;margin:0;padding:0;display:grid;gap:8px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}
.ans-steps li{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border-radius:12px;background:var(--surface);border:1px solid var(--line);transition:transform .15s,box-shadow .15s}
.ans-steps li:hover{transform:translateY(-2px);box-shadow:0 6px 18px rgba(15,23,42,.08)}
.ans-steps li strong{display:block;font-size:14px}.ans-steps li small{display:block;color:var(--muted);font-size:13px;line-height:1.45}
.ans-steps .vl-num{flex:none;width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:var(--accent);color:#fff;font-size:12px;font-weight:700}
.ans-src{display:flex;gap:6px;align-items:center;margin:0;font-size:12px;color:var(--muted)}.ans-src svg{width:15px;height:15px;flex:none}
.ans-follow{display:flex;flex-wrap:wrap;gap:6px}
.ans-q{min-height:auto;padding:6px 12px;border-radius:999px;font-size:13px;background:var(--surface);border:1px solid color-mix(in srgb,var(--accent) 35%,var(--line));color:var(--accent)}
.ans-q:hover{background:var(--accent-soft)}
.company-pill{display:inline-flex;gap:6px;align-items:center;padding:4px 10px;border-radius:999px;background:color-mix(in srgb,#16a34a 10%,var(--surface));color:#15803d;font-size:12px;font-weight:600;margin-top:4px}
.agent-photo-edit{display:flex;gap:14px;align-items:center;margin:4px 0 14px}.agent-photo-edit img{width:72px;height:72px;border-radius:50%;object-fit:cover;box-shadow:0 0 0 3px var(--accent-soft)}

.ans-video{display:flex;gap:12px;align-items:center;padding:8px;border-radius:14px;border:1px solid var(--line);background:var(--surface);flex-wrap:wrap}
.ans-video-thumb{position:relative;width:168px;aspect-ratio:16/9;padding:0;border:0;border-radius:10px;overflow:hidden;background:#000;flex:none;cursor:pointer;min-height:auto}
.ans-video-thumb img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .25s}.ans-video-thumb:hover img{transform:scale(1.06)}
.ans-play{position:absolute;inset:0;margin:auto;width:42px;height:30px;border-radius:9px;background:#e11d48;color:#fff;display:grid;place-items:center;font-size:14px;box-shadow:0 4px 14px rgba(0,0,0,.35)}
.ans-time{position:absolute;right:6px;bottom:6px;background:rgba(0,0,0,.78);color:#fff;font-size:11px;font-weight:700;padding:2px 6px;border-radius:5px}
.ans-video-info{display:grid;gap:2px;min-width:160px;flex:1}.ans-video-info small{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:#e11d48;font-weight:700}.ans-video-info strong{font-size:14px;line-height:1.35}.ans-video-info span{font-size:13px;color:var(--muted)}.ans-video-info a{font-size:12px}
.ans-video.playing{display:block}.ans-video iframe{width:100%;aspect-ratio:16/9;border:0;border-radius:10px;display:block;margin-bottom:6px}
.agent-card{position:relative;overflow:hidden;padding-top:0}
.agent-cover{height:96px;margin:0 -22px;background:radial-gradient(circle at 20% 30%,rgba(255,255,255,.25),transparent 40%),linear-gradient(120deg,#4f6bff,#9b5cff 55%,#ff7ab6)}
.agent-id{position:relative;width:104px;margin:-52px auto 0}
.agent-avatar{display:block;width:104px;height:104px;border-radius:50%;overflow:hidden;cursor:pointer;box-shadow:0 0 0 5px var(--surface),0 10px 26px rgba(79,107,255,.35);position:relative}
.agent-avatar img{width:100%;height:100%;object-fit:cover;transition:transform .25s}.agent-avatar:hover img{transform:scale(1.05)}
.agent-cam{position:absolute;inset:auto 0 0 0;height:34px;background:rgba(15,23,42,.6);color:#fff;display:grid;place-items:center;opacity:0;transition:opacity .2s}.agent-cam svg{width:18px;height:18px}.agent-avatar:hover .agent-cam,.agent-avatar:focus-within .agent-cam{opacity:1}
.agent-online{position:absolute;right:6px;bottom:8px;width:18px;height:18px;border-radius:50%;background:#94a3b8;box-shadow:0 0 0 3px var(--surface)}.agent-online.on{background:#22c55e;animation:pulseOn 2s infinite}
@keyframes pulseOn{0%{box-shadow:0 0 0 3px var(--surface),0 0 0 3px rgba(34,197,94,.5)}70%{box-shadow:0 0 0 3px var(--surface),0 0 0 10px rgba(34,197,94,0)}100%{box-shadow:0 0 0 3px var(--surface),0 0 0 3px rgba(34,197,94,0)}}
.agent-head{text-align:center;margin-top:10px}.agent-head h2{margin:0;font-size:22px}.agent-head p{margin:4px 0 0;color:var(--muted);font-size:13px}.agent-head button{margin-top:6px;min-height:auto;font-size:12px}
.agent-chips{display:flex;flex-wrap:wrap;justify-content:center;gap:6px;margin:14px 0}.agent-chips .chip.ok{background:color-mix(in srgb,#16a34a 12%,var(--surface));color:#15803d}.agent-chips .chip.bad{background:color-mix(in srgb,#dc2626 10%,var(--surface));color:#b91c1c}
.agent-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:6px 0 16px}.agent-stats div{text-align:center;padding:12px 6px;border-radius:12px;background:var(--surface-2,var(--surface-3));border:1px solid var(--line)}.agent-stats strong{display:block;font-size:22px;color:var(--accent)}.agent-stats small{font-size:11.5px;color:var(--muted);line-height:1.3;display:block}
.agent-name .inline-input{display:flex;gap:8px;margin-top:6px}.agent-name .inline-input input{flex:1;min-width:0}
.gcal-one{display:inline-flex;gap:6px;align-items:center}.gcal-one img{display:block}
.ans-steps li{position:relative}.ans-steps .vl-num{position:static;inset:auto;transform:none}
.msg.bot.streaming .ans>:last-child::after{content:"▍";display:inline-block;margin-left:2px;color:var(--accent);animation:blink 1s steps(2) infinite}@keyframes blink{50%{opacity:0}}

/* ===== Botões modernos ===== */
button,.button{transition:background .18s,border-color .18s,box-shadow .18s,transform .12s,color .18s;box-shadow:0 1px 2px rgba(15,23,42,.06)}
button:hover:not(:disabled),.button:hover{transform:translateY(-1px);box-shadow:0 6px 16px rgba(15,23,42,.10);border-color:color-mix(in srgb,var(--accent) 35%,var(--line))}
button:active:not(:disabled),.button:active{transform:translateY(0) scale(.98);box-shadow:0 1px 2px rgba(15,23,42,.08)}
button:focus-visible,.button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid color-mix(in srgb,var(--accent) 45%,transparent);outline-offset:2px}
button:disabled{opacity:.6;cursor:progress}
button.primary,.button.primary{background:linear-gradient(135deg,var(--accent),color-mix(in srgb,var(--accent) 70%,#8b5cf6));border-color:transparent;color:#fff;box-shadow:0 4px 14px color-mix(in srgb,var(--accent) 35%,transparent)}
button.primary:hover:not(:disabled),.button.primary:hover{background:linear-gradient(135deg,var(--accent-hover),color-mix(in srgb,var(--accent-hover) 65%,#8b5cf6));box-shadow:0 8px 22px color-mix(in srgb,var(--accent) 45%,transparent)}
button.quiet{box-shadow:none;background:transparent;border-color:transparent}button.quiet:hover:not(:disabled){box-shadow:none;background:var(--surface-3)}
button.glow{position:relative;overflow:hidden}
button.glow::after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.35) 50%,transparent 70%);transform:translateX(-100%);animation:shine 3.2s ease-in-out infinite}
@keyframes shine{60%,100%{transform:translateX(100%)}}
@media (prefers-reduced-motion:reduce){button,.button{transition:none}button.glow::after,.agent-online.on{animation:none}}
/* ===== Ideias ===== */
.ideas-panel{background:radial-gradient(circle at 100% 0,color-mix(in srgb,#8b5cf6 10%,transparent),transparent 45%),var(--surface)}
.ideas-panel .spark{display:inline-block;animation:spark 2.4s ease-in-out infinite}@keyframes spark{50%{transform:scale(1.2) rotate(12deg)}}
.ideas-empty{display:flex;gap:12px;align-items:center;padding:14px;border-radius:14px;border:1px dashed var(--line);color:var(--muted)}.ideas-empty p{margin:0}
.seg-tabs{display:inline-flex;gap:4px;padding:4px;border-radius:12px;background:var(--surface-3);margin:4px 0 14px;flex-wrap:wrap}
.seg-tabs button{box-shadow:none;border:0;background:transparent;min-height:34px}.seg-tabs button span{font-size:11px;background:var(--surface);border-radius:999px;padding:1px 7px;color:var(--muted)}
.seg-tabs button.on{background:var(--surface);box-shadow:0 2px 8px rgba(15,23,42,.10);color:var(--accent)}.seg-tabs button:hover:not(.on){transform:none;box-shadow:none;background:color-mix(in srgb,var(--surface) 60%,transparent)}
.ideas-grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
.idea-card{display:flex;flex-direction:column;gap:6px;padding:16px;border-radius:16px;border:1px solid var(--line);background:var(--surface);transition:transform .18s,box-shadow .18s}
.idea-card:hover{transform:translateY(-3px);box-shadow:0 12px 28px rgba(15,23,42,.10)}
.idea-card small{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--accent);font-weight:700}.idea-card h3{margin:0;font-size:16px}.idea-card p{margin:0;color:var(--ink);font-size:14px;line-height:1.55;flex:1;white-space:pre-wrap}.idea-card ul{margin:0;padding-left:18px;color:var(--muted);font-size:14px}
.idea-actions{display:flex;gap:8px;margin-top:6px}
.ideas-list{display:grid;gap:8px}.idea-row{display:flex;gap:12px;align-items:flex-start;padding:12px 14px;border-radius:14px;border:1px solid var(--line);background:var(--surface)}
.idea-row p{margin:2px 0;font-size:14px}.idea-row small{color:var(--muted);font-size:12px}
.idea-av{flex:none;width:36px;height:36px;border-radius:12px;display:grid;place-items:center;font-weight:800;color:#fff;background:linear-gradient(135deg,var(--accent),#8b5cf6)}
.seo-intro{max-width:640px;margin:12vh auto;padding:0 20px;text-align:center;color:var(--muted)}.seo-intro h1{color:var(--ink)}

/* ===== Siga a ABIPI ===== */
.social-gate{margin:16px 0;padding:20px;border-radius:20px;border:1px solid color-mix(in srgb,var(--accent) 30%,var(--line));background:radial-gradient(circle at 0 0,color-mix(in srgb,#ff0033 8%,transparent),transparent 40%),radial-gradient(circle at 100% 100%,color-mix(in srgb,#0a66c2 9%,transparent),transparent 45%),var(--surface);box-shadow:0 12px 34px rgba(15,23,42,.08)}
.sg-head h2{margin:6px 0 4px;font-size:22px}.sg-head p{margin:0 0 10px;color:var(--muted)}
.sg-badge{display:inline-block;padding:3px 10px;border-radius:999px;background:color-mix(in srgb,#dc2626 12%,var(--surface));color:#b91c1c;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.06em}
.sg-progress{height:8px;border-radius:999px;background:var(--surface-3);overflow:hidden}.sg-progress span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#ff0033,#e1306c,#0a66c2,#1877f2);transition:width .4s}
.sg-head small{color:var(--muted);font-size:12px}
.sg-grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));margin:14px 0}
.sg-card{display:flex;flex-direction:column;gap:10px;padding:14px;border-radius:16px;border:1px solid var(--line);background:var(--surface);transition:transform .18s,box-shadow .18s,border-color .18s}
.sg-card:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(15,23,42,.08)}
.sg-card.done{border-color:color-mix(in srgb,#16a34a 50%,var(--line));background:color-mix(in srgb,#16a34a 6%,var(--surface))}
.sg-top{display:flex;align-items:center;gap:10px}.sg-top strong{flex:1;font-size:15px}
.sg-ic{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:var(--sc);color:#fff;box-shadow:0 4px 12px color-mix(in srgb,var(--sc) 40%,transparent)}.sg-ic svg{width:22px;height:22px}
.sg-ok{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:#16a34a;color:#fff;font-size:13px;font-weight:800}
.sg-btn{background:var(--sc);border-color:transparent;color:#fff;font-weight:700}.sg-btn:hover{background:color-mix(in srgb,var(--sc) 85%,#000);border-color:transparent;color:#fff}
.sg-card.done .sg-btn{background:var(--surface);color:var(--ink);border-color:var(--line)}
.sg-bell{display:flex;gap:8px;align-items:flex-start;font-size:13px;padding:8px 10px;border-radius:10px;background:color-mix(in srgb,#f59e0b 12%,var(--surface));cursor:pointer}.sg-bell.off{opacity:.55;cursor:not-allowed}.sg-bell input{margin-top:2px}
.sg-none{font-size:12px;min-height:auto;padding:4px;color:var(--muted)}.sg-note{margin:0;font-size:12px;color:var(--muted)}
.sg-foot{display:flex;justify-content:flex-end}.sg-foot button{min-height:46px;padding:0 22px;font-size:15px}
.locked-steps{opacity:.45;filter:grayscale(.4)}

.idea-q{padding:10px 12px;border-radius:12px;background:color-mix(in srgb,var(--accent) 9%,var(--surface));border-left:3px solid var(--accent)}.idea-q small{display:block;font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--accent);font-weight:700}.idea-q strong{font-size:14px;line-height:1.45}
.idea-video{display:grid;grid-template-columns:auto 1fr;column-gap:10px;align-items:center;padding:8px 10px;border-radius:12px;border:1px solid var(--line);text-decoration:none;color:var(--ink);font-weight:600;font-size:13px}.idea-video:hover{border-color:#e11d48}
.idea-video span{grid-row:span 2;width:30px;height:22px;border-radius:7px;background:#e11d48;color:#fff;display:grid;place-items:center;font-size:11px}.idea-video small{color:var(--muted);font-weight:500;font-size:11.5px}

.eng-week{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-bottom:14px}
.eng-week div{display:grid;gap:2px;padding:10px;border-radius:14px;background:var(--surface);border:1px solid var(--line);text-align:center}
.eng-week b{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--accent)}.eng-week span{font-size:22px}.eng-week strong{font-size:13px}.eng-week small{font-size:11.5px;color:var(--muted);line-height:1.35}
@media (max-width:720px){.eng-week{grid-template-columns:repeat(2,minmax(0,1fr))}}
.eng-opts{margin:0;padding:0;list-style:none;display:grid;gap:6px;counter-reset:o}
.eng-opts li{counter-increment:o;display:flex;gap:8px;align-items:center;padding:7px 10px;border-radius:10px;border:1px solid var(--line);font-size:13.5px}
.eng-opts li::before{content:counter(o,upper-alpha);width:22px;height:22px;border-radius:50%;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent);font-weight:800;font-size:12px;flex:none}
.eng-ans summary{cursor:pointer;font-size:13px;color:var(--accent);font-weight:600}.eng-ans p{margin:6px 0 0;font-size:13px;color:var(--muted)}

/* ===== Plano por módulo ===== */
.mod-nav{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;margin:14px 0}
.mod-chip{display:grid;grid-template-columns:auto 1fr;gap:4px 8px;align-items:center;text-align:left;padding:10px;border-radius:14px;min-height:auto;white-space:normal}
.mod-chip .mod-n{grid-row:span 2;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:var(--surface-3);font-size:12px;font-weight:800}
.mod-chip .mod-t{font-size:12.5px;line-height:1.25}
.mod-chip .mod-bar{height:5px;border-radius:9px;background:var(--surface-3);overflow:hidden}.mod-chip .mod-bar i{display:block;height:100%;background:var(--accent);border-radius:inherit}
.mod-chip.on{border-color:var(--accent);background:var(--accent-soft);box-shadow:0 4px 14px color-mix(in srgb,var(--accent) 25%,transparent)}.mod-chip.on .mod-n{background:var(--accent);color:#fff}
.mod-chip.full .mod-n{background:#16a34a;color:#fff}.mod-chip.locked{opacity:.55}
.mod-head{display:flex;gap:16px;align-items:center;justify-content:space-between;padding:18px;border-radius:18px;background:linear-gradient(135deg,var(--accent-soft),var(--surface));border:1px solid color-mix(in srgb,var(--accent) 25%,var(--line));margin:6px 0 12px}
.mod-head small{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--accent);font-weight:800}.mod-head h2{margin:2px 0 6px;font-size:22px}.mod-head p{margin:0;color:var(--muted);font-size:14px;line-height:1.55}
.donut{flex:none;color:var(--ink)}
.mod-lessons{display:grid;gap:8px;margin:0 0 14px}.mod-lessons>small{font-weight:700;color:var(--muted);font-size:12px}
.dec-list{display:grid;gap:14px}
.dec-card{padding:16px;border-radius:18px;border:1px solid var(--line);background:var(--surface);display:grid;gap:12px;transition:border-color .2s,box-shadow .2s}
.dec-card:focus-within{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-soft)}
.dec-card.filled{border-left:4px solid var(--accent)}.dec-card.done{border-left:4px solid #16a34a}
.dec-top{display:flex;flex-wrap:wrap;gap:8px 10px;align-items:center}.dec-top h3{margin:0;font-size:16px;flex:1;min-width:180px}
.dec-num{min-width:38px;height:28px;padding:0 8px;border-radius:9px;display:grid;place-items:center;background:var(--accent);color:#fff;font-weight:800;font-size:13px}
.track-chip{font-size:11px;font-weight:700;border-radius:999px;padding:3px 10px;background:var(--surface-3);color:var(--muted);white-space:nowrap;line-height:1.4}.track-chip.min{background:var(--accent-soft);color:var(--accent)}
.dec-status{font-size:12px;color:var(--muted);width:100%}.dec-card.filled .dec-status{color:var(--accent);font-weight:600}.dec-card.done .dec-status{color:#16a34a;font-weight:700}
.dec-vl{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
.dec-what,.dec-ask{padding:12px;border-radius:12px;background:var(--surface-2,var(--surface-3))}.dec-vl small{display:block;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:4px}
.dec-what p{margin:0;font-size:14px;line-height:1.55}.dec-ask{background:color-mix(in srgb,#8b5cf6 9%,var(--surface))}.dec-ask ol{margin:0;padding-left:18px;font-size:14px;line-height:1.5;display:grid;gap:4px}
.dec-extra{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-start}.dec-extra details{flex:1;min-width:220px;padding:8px 12px;border-radius:12px;border:1px dashed var(--line)}.dec-extra summary{cursor:pointer;font-weight:600;font-size:13px}.dec-extra details p{margin:6px 0 0;font-size:13.5px;color:var(--muted)}
.dec-lesson{display:grid;grid-template-columns:auto 1fr;column-gap:10px;align-items:center;padding:8px 12px;border-radius:12px;border:1px solid var(--line);text-decoration:none;color:var(--ink);font-size:13px;max-width:100%}.dec-lesson span{grid-row:span 2;width:30px;height:22px;border-radius:7px;background:#e11d48;color:#fff;display:grid;place-items:center;font-size:11px}.dec-lesson small{color:var(--muted)}.dec-lesson:hover{border-color:#e11d48}
.dec-field>span{font-weight:700;font-size:13px}.dec-field textarea{width:100%;min-height:84px;resize:vertical}
.mod-report{margin-top:18px;padding:18px;border-radius:18px;border:1px solid var(--line);background:var(--surface)}.mod-report h3{margin:0 0 12px}
.mod-report-grid{display:grid;gap:16px;grid-template-columns:minmax(220px,auto) 1fr;align-items:center}
.mod-donuts{display:flex;gap:14px;align-items:center}.mod-donuts b{display:block;font-size:18px}.mod-donuts small{display:block;color:var(--muted);font-size:12px;margin-bottom:6px}
.mod-bars{display:grid;gap:8px}.mb-row{display:grid;grid-template-columns:minmax(110px,180px) 1fr 44px;gap:10px;align-items:center;font-size:13px}.mb-row span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mb{height:10px;border-radius:9px;background:var(--surface-3);overflow:hidden}.mb i{display:block;height:100%;background:linear-gradient(90deg,var(--accent),#8b5cf6);border-radius:inherit;transition:width .5s}.mb-row.on{font-weight:700}.mb-row b{text-align:right}
.mod-answers{display:grid;gap:6px;margin:14px 0 8px}.ma-row{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;padding:8px 10px;border-radius:12px;border:1px solid var(--line)}.ma-row.ok{border-color:color-mix(in srgb,#16a34a 35%,var(--line))}.ma-row p{margin:2px 0 0;font-size:13px;color:var(--muted)}.ma-row strong{font-size:13.5px}.ma-id{font-weight:800;color:var(--accent);font-size:12px}
.mod-pager{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-top:10px}
@media (max-width:640px){.mod-head{flex-direction:column;align-items:flex-start}.mod-report-grid{grid-template-columns:1fr}.mb-row{grid-template-columns:96px 1fr 40px}.mod-nav{grid-template-columns:repeat(2,minmax(0,1fr))}.mod-pager button{width:100%}}
/* Passo a passo (vl-steps): sem setas sobrepostas, links longos quebram, responsivo */
.vl-steps{grid-template-columns:repeat(auto-fit,minmax(min(100%,170px),1fr))!important}
.vl-steps li::after,.vl-steps li::before{display:none!important}
.vl-steps li{overflow-wrap:anywhere;min-width:0}.vl-steps li a{word-break:break-all}
.vl-rules{grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr))!important}

.tts-btn{justify-self:start;min-height:auto;padding:5px 12px;border-radius:999px;font-size:12.5px}.tts-btn.on{background:var(--accent);color:#fff;border-color:transparent}
.mic-btn{min-width:46px;font-size:18px;border-radius:12px}.mic-btn.on{background:#dc2626;color:#fff;border-color:transparent;animation:micPulse 1.2s infinite}
@keyframes micPulse{50%{box-shadow:0 0 0 8px rgba(220,38,38,.18)}}
.chat-form{display:flex;gap:8px;align-items:flex-end}.chat-form textarea{flex:1;min-width:0}
.sched-link{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:10px 12px;border-radius:12px;background:var(--surface-3);margin-bottom:12px}.sched-link code{flex:1;min-width:0;overflow-wrap:anywhere}
.help-fab{position:fixed;right:16px;bottom:calc(16px + env(safe-area-inset-bottom));z-index:50}
.help-fab summary{list-style:none;display:flex;gap:8px;align-items:center;padding:12px 16px;border-radius:999px;background:linear-gradient(135deg,#16a34a,#22c55e);color:#fff;font-weight:700;cursor:pointer;box-shadow:0 10px 26px rgba(22,163,74,.4)}.help-fab summary::-webkit-details-marker{display:none}.help-fab summary span{font-size:18px}
.help-fab-menu{position:absolute;right:0;bottom:calc(100% + 10px);width:250px;display:grid;gap:4px;padding:10px;border-radius:16px;background:var(--surface);border:1px solid var(--line);box-shadow:0 18px 40px rgba(15,23,42,.2)}
.help-fab-menu small{color:var(--muted);font-size:11.5px;padding:2px 6px}.help-fab-menu a{padding:10px;border-radius:10px;text-decoration:none;color:var(--ink);font-weight:600;font-size:14px}.help-fab-menu a:hover{background:var(--surface-3)}
@media (max-width:560px){.help-fab summary b{display:none}.help-fab summary{padding:14px}}
.err-page,.legal-page{max-width:760px;margin:0 auto;padding:48px 20px 64px}.err-page{text-align:center}.err-page img{border-radius:50%;box-shadow:0 10px 30px rgba(79,107,255,.3)}.err-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-top:18px}
.legal-page h2{font-size:18px;margin:26px 0 8px}.legal-page li,.legal-page p{line-height:1.65}.crumbs{font-size:13px;color:var(--muted);margin-bottom:14px}.crumbs a{color:var(--accent)}
.public-footer a{color:inherit}
.faq{margin-top:28px;max-width:640px}.faq h2{font-size:18px}.faq details{border:1px solid var(--line);border-radius:12px;padding:10px 14px;margin:8px 0;background:var(--surface)}.faq summary{cursor:pointer;font-weight:700;font-size:14px}.faq p{margin:8px 0 0;color:var(--muted);font-size:14px;line-height:1.6}
@media (max-width:760px){.help-fab{bottom:calc(84px + env(safe-area-inset-bottom))}}
