:root{
  --ink:#161119; --ink-soft:#4a4058; --paper:#f4f1f8; --paper-card:#ffffff;
  --orange:#f2843c; --orange-deep:#d9661a; --purple:#6c3fa5; --purple-deep:#4e2a80;
  --alert:#c1502e; --line: rgba(22,17,28,0.10); --radius: 18px;
  --shadow: 0 10px 30px -14px rgba(22,17,28,0.35);
}
*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{
  font-family:'Manrope',-apple-system,BlinkMacSystemFont,sans-serif;
  color:var(--ink); background:var(--paper); min-height:100vh; line-height:1.5;
}
a{ color:var(--purple-deep); }
::selection{ background:var(--orange); color:var(--ink); }

.eyebrow{
  font-family:'IBM Plex Mono',monospace; font-size:12px; letter-spacing:.12em; text-transform:uppercase;
  color:var(--purple); margin:0 0 10px;
}
h1{ font-family:'Fraunces',serif; font-weight:600; font-size:clamp(26px,5vw,36px); line-height:1.12; margin:0 0 14px; }
h2{ font-family:'Fraunces',serif; font-weight:600; font-size:22px; margin:0 0 10px; }
.lede{ font-size:15.5px; color:var(--ink-soft); line-height:1.6; max-width:56ch; }

button, input, select, textarea{ font-family:inherit; }
.btn{
  appearance:none; border:none; border-radius:999px; padding:14px 26px; font-weight:700; font-size:15px;
  display:inline-flex; align-items:center; justify-content:center; gap:8px; background:var(--ink); color:#fff;
  cursor:pointer; text-decoration:none; transition:.15s ease;
}
.btn:hover{ transform:translateY(-1px); box-shadow:0 8px 20px -8px rgba(22,17,28,.5); }
.btn.accent{ background:var(--orange); color:#2a1204; }
.btn.ghost{ background:transparent; color:var(--ink); border:1.5px solid var(--line); }
.btn.block{ width:100%; }

.card{ background:var(--paper-card); border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow); padding:26px; }

input[type=text], input[type=email], input[type=tel], input[type=password], select, textarea{
  width:100%; border:1.5px solid var(--line); border-radius:12px; padding:12px 14px;
  font-size:14.5px; background:var(--paper); color:var(--ink);
}
input:focus, select:focus, textarea:focus{ outline:none; border-color:var(--purple); background:#fff; }
label{ font-family:'IBM Plex Mono',monospace; font-size:11px; text-transform:uppercase; letter-spacing:.06em; color:var(--ink-soft); display:block; margin:0 0 6px; }
.field{ margin-bottom:16px; }
.field .hint{ font-size:12px; color:var(--ink-soft); margin-top:5px; }

.alert{ padding:12px 14px; border-radius:12px; font-size:13.5px; margin-bottom:16px; }
.alert.error{ background:#fbeae4; color:var(--alert); border:1px solid rgba(193,80,46,.25); }
.alert.success{ background:#f0e9f8; color:var(--purple-deep); border:1px solid rgba(108,63,165,.25); }

/* ---------- Barra de topo ---------- */
.topnav{
  display:flex; align-items:center; justify-content:space-between; padding:18px 24px;
  max-width:1000px; margin:0 auto;
}
.topnav .brand{ font-family:'IBM Plex Mono',monospace; font-size:13px; letter-spacing:.1em; text-transform:uppercase; color:var(--ink); text-decoration:none; }
.topnav nav a{ margin-left:16px; font-size:13.5px; color:var(--ink-soft); text-decoration:none; font-weight:600; }
.topnav nav a:hover{ color:var(--ink); }

/* ---------- Tela de portão (código de módulo) ---------- */
.gate-body{ display:flex; align-items:center; justify-content:center; min-height:100vh; padding:24px; }
.gate-card{ background:var(--paper-card); border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow); padding:30px; max-width:420px; width:100%; text-align:left; }
.gate-error{ background:#fbeae4; color:var(--alert); padding:10px 12px; border-radius:10px; font-size:13.5px; margin-bottom:14px; }
.gate-form input{ margin-bottom:12px; text-align:center; font-family:'IBM Plex Mono',monospace; font-size:16px; letter-spacing:.08em; }
.gate-back{ display:block; text-align:center; margin-top:16px; font-size:13px; color:var(--ink-soft); }

/* ---------- Painel do aluno ---------- */
.modulos-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(230px,1fr)); gap:14px; margin-top:20px; }
.modulo-card{ background:var(--paper-card); border:1.5px solid var(--line); border-radius:16px; padding:18px; position:relative; }
.selo-conquista{ position:absolute; top:-10px; right:-10px; font-size:22px; background:#fff; border-radius:50%; width:34px; height:34px; display:flex; align-items:center; justify-content:center; box-shadow:0 4px 10px -3px rgba(22,17,28,.3); }
.certificado-cta{ background:linear-gradient(135deg,var(--purple-deep),var(--orange-deep)); border-radius:16px; padding:24px; margin-top:24px; text-align:center; }
.certificado-cta .eyebrow{ color:rgba(255,255,255,.75); }
.certificado-cta h3{ font-family:'Fraunces',serif; color:#fff; font-size:20px; margin:6px 0; }
.certificado-cta p{ color:rgba(255,255,255,.85); margin:0 0 14px; }
.certificado-cta .btn{ background:#fff; color:var(--purple-deep); }
.modulo-card.locked{ opacity:.75; }
.modulo-card .num{ font-family:'IBM Plex Mono',monospace; font-size:11px; color:var(--ink-soft); text-transform:uppercase; }
.modulo-card h3{ font-family:'Fraunces',serif; font-size:17px; margin:6px 0 12px; }
.modulo-card .status{ font-size:12px; font-weight:700; margin-bottom:10px; display:inline-flex; align-items:center; gap:6px; }
.modulo-card .status.ok{ color:var(--purple-deep); }
.modulo-card .status.no{ color:var(--ink-soft); }
.modulo-card form{ display:flex; gap:6px; }
.modulo-card form input{ padding:9px 10px; font-size:13px; }
.modulo-card form button{ padding:0 12px; border-radius:10px; font-size:12.5px; }

/* ---------- Landing ---------- */
.hero{ max-width:900px; margin:0 auto; padding:20px 24px 60px; }
.hero-badge{ display:inline-flex; align-items:center; gap:7px; background:var(--paper-card); border:1px solid var(--line); border-radius:999px; padding:7px 14px; font-size:12.5px; color:var(--ink-soft); margin-bottom:18px; box-shadow:var(--shadow); }
.hero h1 em{ font-style:italic; color:var(--orange-deep); }
.hero-actions{ display:flex; gap:12px; margin:26px 0 10px; flex-wrap:wrap; }
.author-card{ display:flex; align-items:center; gap:14px; background:var(--paper-card); border:1px solid var(--line); border-radius:16px; padding:16px 18px; margin-top:34px; max-width:520px; }
.author-avatar{ width:52px; height:52px; border-radius:50%; background:linear-gradient(135deg,var(--purple),var(--orange)); flex:none; }
.author-card .who{ font-size:11px; text-transform:uppercase; letter-spacing:.08em; font-family:'IBM Plex Mono',monospace; color:var(--ink-soft); }
.author-card .name{ font-family:'Fraunces',serif; font-weight:600; font-size:17px; }
.purchase-slot{ margin-top:34px; border:1.5px dashed var(--line); border-radius:16px; padding:20px; background:var(--paper-card); }
.purchase-slot .tag{ font-family:'IBM Plex Mono',monospace; font-size:11px; color:var(--ink-soft); text-transform:uppercase; letter-spacing:.06em; }
.steps-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:12px; margin:26px 0; }
.step-mini{ background:var(--paper-card); border:1px solid var(--line); border-radius:14px; padding:14px; font-size:13px; color:var(--ink-soft); }
.step-mini b{ display:block; color:var(--ink); font-family:'Fraunces',serif; font-size:15px; margin-bottom:4px; }

/* ---------- Admin ---------- */
table.admin-table{ width:100%; border-collapse:collapse; margin-top:16px; font-size:13.5px; }
table.admin-table th, table.admin-table td{ text-align:left; padding:10px 12px; border-bottom:1px solid var(--line); }
table.admin-table th{ font-family:'IBM Plex Mono',monospace; font-size:11px; text-transform:uppercase; letter-spacing:.05em; color:var(--ink-soft); }
.pill{ display:inline-block; padding:3px 10px; border-radius:999px; font-size:11.5px; font-weight:700; }
.pill.purple{ background:#f0e6fa; color:var(--purple-deep); }
.pill.orange{ background:#fdece0; color:var(--orange-deep); }
.inline-form{ display:flex; gap:6px; }
.inline-form input{ padding:7px 9px; font-size:12.5px; }
.inline-form button{ padding:0 12px; font-size:12px; border-radius:8px; }

@media (max-width:560px){
  .topnav{ flex-direction:column; gap:8px; align-items:flex-start; }
}

/* ======================================================================
   Componentes da v2 — Kanban, lista de etapas, check-in, GUT, prioridades
   ====================================================================== */

.shell{ position:relative; z-index:2; max-width:900px; margin:0 auto; padding:28px 20px 90px; }
.pill{display:inline-block; font-family:'IBM Plex Mono',monospace; font-size:10px; letter-spacing:.08em; text-transform:uppercase; background:var(--purple); color:#fff; padding:4px 10px; border-radius:20px; margin-bottom:10px;}
.card{background:var(--paper-card); border-radius:var(--radius); padding:20px; box-shadow:var(--shadow);}
.btn.ghost{background:transparent; color:var(--ink); border:1px solid var(--line); box-shadow:none;}
.btn.small{padding:8px 14px; font-size:13px;}
.btn:disabled{opacity:.35; cursor:not-allowed; transform:none; box-shadow:none;}
.footer-actions{margin-top:20px; display:flex; justify-content:flex-end; align-items:center; gap:12px; flex-wrap:wrap;}
.helper-msg{font-size:12px; color:var(--ink-soft); margin:0;}
.toast{position:fixed; bottom:24px; left:50%; transform:translateX(-50%); background:var(--ink); color:#fff; padding:11px 18px; border-radius:10px; font-size:13px; opacity:0; pointer-events:none; transition:opacity .25s; z-index:50; max-width:80vw; text-align:center;}
.toast.show{opacity:1;}

/* ---- Importação ---- */
.import-box{background:#efe9f7; border-radius:14px; padding:16px; margin-bottom:20px;}
.import-box .imp-head{font-family:'IBM Plex Mono',monospace; font-size:11px; text-transform:uppercase; letter-spacing:.05em; color:var(--purple-deep); margin-bottom:10px;}
.import-box textarea{width:100%; min-height:64px; border-radius:10px; border:1px solid var(--line); padding:10px; font-family:'IBM Plex Mono',monospace; font-size:12px; resize:vertical;}
.import-box .imp-actions{display:flex; justify-content:space-between; align-items:center; margin-top:10px; gap:10px; flex-wrap:wrap;}
.import-box .imp-hint{font-size:12px; color:var(--ink-soft); margin:0;}

/* ---- Kanban (Módulo 1) ---- */
.kanban-toolbar{display:flex; gap:10px; margin-bottom:18px; flex-wrap:wrap; align-items:center;}
.kanban-toolbar input{flex:1; min-width:220px; padding:11px 14px; border-radius:10px; border:1px solid var(--line); font-family:inherit; font-size:14px;}
.kanban-limite{font-family:'IBM Plex Mono',monospace; font-size:11px; color:var(--ink-soft); margin:0 0 10px;}
.board{display:flex; gap:14px; overflow-x:auto; padding-bottom:14px; scroll-snap-type:x proximity; -webkit-overflow-scrolling:touch;}
.col{background:#efe9f7; border-radius:14px; padding:12px; min-width:270px; flex:0 0 270px; scroll-snap-align:start;}
.col-fixa{ position:sticky; left:0; z-index:3; border:2px solid var(--purple); box-shadow:6px 0 12px -8px rgba(22,17,28,.35); }
.col-head{display:flex; justify-content:space-between; align-items:center; margin-bottom:10px;}
.col-head span{font-family:'IBM Plex Mono',monospace; font-size:11px; text-transform:uppercase; letter-spacing:.05em; color:var(--purple-deep);}
.kanban-item{background:var(--paper-card); border-radius:12px; padding:12px; margin-bottom:10px; cursor:grab; box-shadow:0 4px 12px -6px rgba(22,17,28,.2);}
.kanban-item.dragging{opacity:.4;}
.kanban-item p.q{margin:0 0 8px; font-size:13.5px; line-height:1.4; color:var(--ink);}
.kanban-item .locked{font-family:'IBM Plex Mono',monospace; font-size:9px; text-transform:uppercase; color:var(--ink-soft); letter-spacing:.06em; display:flex; align-items:center; gap:4px; margin-bottom:6px;}
.kanban-item textarea{width:100%; border:1px solid var(--line); border-radius:8px; padding:8px; font-family:inherit; font-size:12.5px; resize:vertical; min-height:40px;}
.col.dragover{outline:2px dashed var(--purple); outline-offset:-4px;}
.escreva-linha, .linhas-escrita{ display:none; } /* só aparecem na impressão (post-it) */

/* Em telas estreitas, os quadros viram largura total, um abaixo do outro — mais fácil de
   ler no celular do que rolar uma faixa horizontal apertada. */
@media (max-width:640px){
  .board{flex-direction:column; overflow-x:visible;}
  .col{min-width:0; flex:1 1 auto; width:100%;}
  .col-fixa{ position:static; box-shadow:none; }
  .kanban-toolbar{flex-direction:column; align-items:stretch;}
  .kanban-toolbar input{width:100%;}
}

/* ---- Impressão (Módulo 1) — hoje só esconde ruído se alguém der Ctrl+P na tela normal;
   o layout de post-it de verdade vive em modulo1-imprimir.php (janela separada). ---- */
@media print{
  .demo-nav, .topnav, .kanban-toolbar, .import-box, .footer-actions,
  #checkinWrap, .toast, button, .pill, .lede, .frase-destaque{ display:none !important; }
}

/* ---- Página dedicada de impressão do Módulo 1 (post-its) ---- */
.postit-header{ display:flex; justify-content:space-between; align-items:center; gap:10px; padding:14px 20px; background:var(--ink); flex-wrap:wrap; }
.postit-header span{ color:#fff; font-family:'IBM Plex Mono',monospace; font-size:12px; }
.postit-page{ max-width:880px; margin:0 auto; padding:30px 20px 60px; }
.postit-intro{ text-align:center; margin-bottom:26px; }
.postit-intro h2{ font-family:'Fraunces',serif; font-size:18px; margin:6px 0 4px; }
.postit-intro p{ font-family:'IBM Plex Mono',monospace; font-size:11px; color:#666; margin:0; }
.postit-grid{ display:grid; grid-template-columns:1fr 1fr; gap:22px; }
.postit-col-label{ grid-column:1 / -1; font-family:'IBM Plex Mono',monospace; font-size:10px; text-transform:uppercase; letter-spacing:.05em; color:#999; border-bottom:1px dashed #ccc; padding-bottom:5px; margin:12px 0 2px; }
.postit-card{ border:2px dashed #b8a8d8; border-radius:0; background:#fdfaf3; padding:26px 16px 16px; position:relative; page-break-inside:avoid; }
.postit-card::before{ content:""; position:absolute; top:-9px; left:50%; transform:translateX(-50%); width:16px; height:16px; border:2px dashed #b8a8d8; border-radius:50%; background:#fff; }
.postit-card p{ font-family:'Fraunces',serif; font-size:14px; line-height:1.4; margin:0 0 12px; color:#161119; }
.postit-card .escreva-wrap{ display:flex; align-items:flex-end; gap:8px; }
.postit-card .linhas-escrita{ display:block; flex:1; height:82px; background-image:repeating-linear-gradient(#fdfaf3 0 24px, #ddd0ee 24px 25px); }
.postit-card .lapis{ flex:0 0 auto; font-size:19px; opacity:.6; padding-bottom:4px; }
@media print{
  @page{ margin:14mm; }
  .postit-header{ display:none; }
}

/* ---- Lista (Módulos 2-5) ---- */
.list-item{background:var(--paper-card); border-radius:12px; padding:14px 16px; margin-bottom:10px; box-shadow:0 4px 12px -6px rgba(22,17,28,.15); display:flex; gap:14px; align-items:flex-start;}
.list-item .badges{display:flex; flex-direction:column; gap:6px; flex-shrink:0; width:150px;}
.list-item .relcol{display:flex; flex-direction:column; gap:3px;}
.list-item .rellabel{font-family:'IBM Plex Mono',monospace; font-size:8.5px; text-transform:uppercase; letter-spacing:.05em; color:var(--ink-soft);}
.list-item .tagbadge{font-family:'IBM Plex Mono',monospace; font-size:9px; text-transform:uppercase; letter-spacing:.05em; background:#efe9f7; color:var(--purple-deep); padding:4px 9px; border-radius:10px; line-height:1.4;}
.list-item .content{flex:1;}
.list-item p.q{margin:0 0 8px; font-size:13.5px; line-height:1.4;}
.list-item textarea{width:100%; border:1px solid var(--line); border-radius:8px; padding:8px; font-family:inherit; font-size:12.5px; resize:vertical; min-height:38px;}

/* ---- Visualização de relações (Etapa 2 — tabela com setas / mapa mental) ---- */
.relacoes-topo{display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:10px; margin-bottom:16px;}
.relacoes-toggle{display:flex; gap:8px; flex-wrap:wrap;}
.mapa-legenda{display:flex; gap:16px; flex-wrap:wrap; margin-bottom:10px; font-family:'IBM Plex Mono',monospace; font-size:11px; color:var(--ink-soft);}
.mapa-legenda i{display:inline-block; width:16px; height:0; border-top:2px solid; margin-right:5px; vertical-align:middle;}
@media print{
  .relacoes-topo .relacoes-toggle button{ display:none !important; }
  #relacoesCard{ box-shadow:none; border:1px solid #ccc; }
}

/* ---- Check-in emocional ---- */
.checkin-wrap{max-width:520px; margin:0 auto; text-align:center;}
.scale{display:flex; justify-content:center; gap:18px; margin:32px 0 14px; flex-wrap:wrap;}
.dot-wrap{display:flex; flex-direction:column; align-items:center; gap:8px; cursor:pointer; background:none; border:none; padding:10px; border-radius:16px; transition:background .15s;}
.dot-wrap .emoji{font-size:34px; line-height:1; filter:grayscale(60%); opacity:.75; transition:transform .15s, filter .15s, opacity .15s;}
.dot-wrap span:last-child{font-family:'IBM Plex Mono',monospace; font-size:10px; color:var(--ink-soft); text-transform:uppercase;}
.dot-wrap:hover .emoji, .dot-wrap.selected .emoji{transform:scale(1.25); filter:grayscale(0%); opacity:1;}
.dot-wrap.selected{background:#efe9f7;}
.dot-wrap.selected span:last-child{color:var(--purple-deep); font-weight:700;}
.motiv{display:none; margin-top:24px; padding:18px; background:#efe9f7; border-radius:14px;}
.motiv.show{display:block;}
.motiv p{color:var(--ink); font-family:'Fraunces',serif; font-size:16px; margin:0;}

/* ---- Frase motivacional em destaque (topo dos módulos) ---- */
.frase-destaque{
  background:linear-gradient(135deg,var(--purple-deep),var(--purple));
  border-radius:16px; padding:20px 24px; margin:18px 0 26px; position:relative; overflow:hidden;
}
.frase-destaque::before{
  content:"“"; position:absolute; top:-18px; left:12px; font-family:'Fraunces',serif;
  font-size:90px; color:rgba(255,255,255,.15); line-height:1;
}
.frase-destaque p{
  position:relative; color:#fff; font-family:'Fraunces',serif; font-style:italic;
  font-size:16.5px; line-height:1.5; margin:0; max-width:56ch;
}

/* ---- Módulo 6: GUT ---- */
.bars{display:flex; flex-direction:column; gap:10px; margin-bottom:24px;}
.bar-row{display:grid; grid-template-columns:180px 1fr 44px; align-items:center; gap:10px;}
.bar-row .lbl{font-size:12.5px; color:var(--ink-soft);}
.bar-track{background:#efe9f7; border-radius:8px; height:22px; overflow:hidden;}
.bar-fill{height:100%; border-radius:8px; background:linear-gradient(90deg,var(--purple),var(--orange));}
.bar-row .val{font-family:'IBM Plex Mono',monospace; font-size:12px; text-align:right;}
table.gut-table{width:100%; border-collapse:collapse; font-size:13px;}
table.gut-table th{font-family:'IBM Plex Mono',monospace; font-size:10px; text-transform:uppercase; letter-spacing:.05em; color:var(--ink-soft); text-align:left; padding:8px; border-bottom:1px solid var(--line);}
table.gut-table td{padding:9px 8px; border-bottom:1px solid var(--line);}
tr.priority td{background:#fdf0e3;}
tr.priority td:first-child{border-left:3px solid var(--orange-deep);}

/* ---- Módulo 7: prioridades / rotina ---- */
.resumo-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(140px,1fr)); gap:12px; margin-bottom:22px;}
.resumo-item{background:#efe9f7; border-radius:12px; padding:14px; text-align:center;}
.resumo-item .num{font-family:'Fraunces',serif; font-size:26px; color:var(--purple-deep);}
.resumo-item .lbl{font-family:'IBM Plex Mono',monospace; font-size:9px; text-transform:uppercase; color:var(--ink-soft); margin-top:2px;}
.prio-card{border:1px solid var(--line); border-radius:14px; padding:16px; margin-bottom:14px;}
.prio-card .ph{display:flex; justify-content:space-between; align-items:flex-start; gap:10px; margin-bottom:10px;}
.prio-card .qtitle{font-family:'Fraunces',serif; font-size:16px; margin:0;}
.prio-card .gutbadge{font-family:'IBM Plex Mono',monospace; font-size:10px; background:var(--orange-deep); color:#fff; padding:4px 9px; border-radius:20px; white-space:nowrap;}
.prio-card label{font-size:12px; color:var(--ink-soft); display:block; margin-bottom:4px;}
.sugestoes-lista{display:flex; flex-direction:column; gap:10px; margin-bottom:12px;}
.sugestao-ia{background:#efe9f7; border-radius:10px; padding:12px 14px;}
.sugestao-ia.aceita{background:#eefaf0; border:1.5px solid #4caf7d;}
.sugestao-ia .rellabel{font-family:'IBM Plex Mono',monospace; font-size:9px; text-transform:uppercase; letter-spacing:.05em; color:var(--purple-deep); display:block; margin-bottom:6px;}
.sugestao-ia p{margin:0; font-size:13.5px; line-height:1.4; color:var(--ink);}
.prio-card input{width:100%; padding:10px 12px; border-radius:8px; border:1px solid var(--line); font-family:inherit; font-size:13px; margin-bottom:8px;}
.prazo-row{display:grid; grid-template-columns:1fr 140px; gap:8px;}
.tarefas-list{margin-top:10px; border-top:1px dashed var(--line); padding-top:10px;}
.tarefa-row{display:grid; grid-template-columns:18px 1fr 120px 30px; gap:6px; margin-bottom:6px; align-items:center;}
.tarefa-ia-badge{font-size:13px; text-align:center;}
.tarefa-row input{margin:0; padding:8px 10px; font-size:12.5px;}
.tarefa-row button{background:none; border:none; color:var(--alert); cursor:pointer; font-size:16px;}
.prio-card .prio-actions{display:flex; gap:8px; flex-wrap:wrap;}
.mini-card{display:none; margin-top:10px; background:linear-gradient(135deg,var(--purple-deep),var(--purple)); color:#fff; border-radius:14px; padding:18px;}
.mini-card.show{display:block;}
.mini-card h3{font-family:'Fraunces',serif; font-size:17px; margin:6px 0;}
.mini-card p{color:rgba(255,255,255,.85); margin:0;}
.rotina-table{width:100%; border-collapse:collapse; font-size:12.5px; margin-top:12px;}
.rotina-table th{font-family:'IBM Plex Mono',monospace; font-size:9.5px; text-transform:uppercase; color:var(--ink-soft); text-align:left; padding:7px; border-bottom:1px solid var(--line);}
.rotina-table td{padding:7px; border-bottom:1px solid var(--line);}
.rotina-table input{width:100%; border:1px solid var(--line); border-radius:6px; padding:5px 7px; font-family:inherit; font-size:12px;}
.orgulho-box{background:#fdf0e3; border-radius:14px; padding:20px; margin:22px 0;}
.orgulho-box h2{color:var(--orange-deep);}
.stars{display:flex; gap:6px; margin:10px 0;}
.stars span{font-size:24px; cursor:pointer; color:var(--line);}
.stars span.on{color:var(--orange-deep);}

/* ---- Régua de evolução (meu-painel.php) ---- */
.regua-wrap{margin:20px 0 30px;}
.regua-track{background:#efe9f7; border-radius:20px; height:14px; overflow:hidden;}
.regua-fill{height:100%; background:linear-gradient(90deg,var(--purple-deep),var(--orange)); border-radius:20px; transition:width .4s ease;}
.regua-label{font-family:'IBM Plex Mono',monospace; font-size:11px; color:var(--ink-soft); margin-top:6px;}

/* ---- Módulo 7: dossiê da jornada ---- */
.jornada-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(140px,1fr)); gap:14px; margin:20px 0;}
.jornada-card{background:linear-gradient(135deg,var(--purple-deep),var(--purple)); border-radius:14px; padding:18px; text-align:center;}
.jornada-card .num{font-family:'Fraunces',serif; font-size:30px; color:#fff;}
.jornada-card .lbl{font-family:'IBM Plex Mono',monospace; font-size:10px; text-transform:uppercase; color:rgba(255,255,255,.8); margin-top:4px;}
.sentimento-trilha{display:flex; gap:10px; flex-wrap:wrap;}
.sentimento-item{background:#efe9f7; border-radius:10px; padding:8px 12px; text-align:center; min-width:64px;}
.sentimento-modulo{display:block; font-family:'IBM Plex Mono',monospace; font-size:9px; color:var(--ink-soft); text-transform:uppercase;}
.sentimento-label{display:block; font-size:12.5px; font-weight:700; color:var(--purple-deep); margin-top:2px;}
.relacoes-lista{margin:0; padding-left:20px; font-size:13.5px; line-height:1.8; color:var(--ink);}
.confete{position:fixed; top:-10px; width:8px; height:14px; border-radius:2px; z-index:999; pointer-events:none; animation:cair linear forwards;}
@keyframes cair{ to{ transform:translateY(100vh) rotate(360deg); opacity:0; } }

/* ---- Gráfico de pizza (Módulo 6) ---- */
.pizza-wrap{display:flex; align-items:center; gap:20px; flex-wrap:wrap; margin:20px 0; padding:16px; background:#faf8fc; border-radius:14px;}
.pizza-legenda{display:flex; flex-direction:column; gap:8px; font-size:13px; color:var(--ink);}
.pizza-legenda span{display:flex; align-items:center; gap:8px;}
.pizza-legenda i{display:inline-block; width:14px; height:14px; border-radius:4px; border:1px solid var(--line); flex-shrink:0;}

/* ---- Barra de navegação fixa (Fale Conosco + Painel), em todas as telas de módulo ---- */
.mini-nav-topo{position:fixed; top:12px; right:12px; z-index:80; display:flex; gap:8px;}
.mini-nav-topo a{background:#fff; color:var(--purple-deep); font-family:'IBM Plex Mono',monospace; font-size:11px; text-decoration:none; padding:7px 12px; border-radius:20px; box-shadow:0 4px 10px -3px rgba(22,17,28,.25); border:1px solid var(--line);}
.mini-nav-topo a:hover{background:var(--purple-deep); color:#fff;}
@media print{ .mini-nav-topo{display:none;} }
@media (max-width:480px){ .mini-nav-topo{position:static; justify-content:center; margin-bottom:14px;} }
