/* Full Fit · estilos base. Tamanho do texto: html[data-fs] escala tudo (em rem). */
:root{
  --ink:#1B1433; --ink2:#4A4466; --mute:#6B6684; --line:#E6E3EF; --line2:#D9D5E6;
  --bg:#F6F5FA; --card:#FFFFFF; --soft:#F1EFF7; --mag:#C8007D; --mag-dk:#8E0059; --pink:#F25DB5;
  --purple:#4B2A86; --purple-bg:#F6F0FD; --ok:#1E6B43; --ok-bg:#E3F4EA; --ok-solid:#1E7A4C;
  --warn:#7A4F00; --warn-bg:#FFF2D6; --risk:#A61B12; --risk-bg:#FDE8E6;
  --r:16px; --r-sm:12px;
}
html{font-size:16px}
html[data-fs="2"]{font-size:18.4px}
html[data-fs="3"]{font-size:20.8px}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font-family:'Figtree',system-ui,-apple-system,'Segoe UI',sans-serif;font-size:1rem;line-height:1.5;-webkit-font-smoothing:antialiased}
a{color:var(--mag)} a:hover{color:var(--mag-dk)}
:focus-visible{outline:3px solid #8E54B5;outline-offset:2px}
button,input,select,textarea{font:inherit;color:inherit}
img{max-width:100%}
h1,h2,h3{margin:0;line-height:1.2}
p{margin:0}
.disp{font-family:'Archivo',system-ui,sans-serif;font-stretch:118%;letter-spacing:-.01em;font-weight:800}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.muted{color:var(--ink2)} .small{font-size:.875rem} .xs{font-size:.8125rem}
.stack{display:flex;flex-direction:column;gap:16px} .stack-sm{display:flex;flex-direction:column;gap:8px}
.row{display:flex;flex-wrap:wrap;gap:12px;align-items:center} .row-between{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between}
.grow{flex:1 1 auto;min-width:0}
.grid{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.grid-2{display:grid;gap:16px;grid-template-columns:repeat(2,minmax(0,1fr))}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:24px}
.card-dark{background:var(--ink);color:#fff;border-radius:var(--r);padding:24px}
.card-dark .muted{color:#E7E3F3}

/* Botões */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 20px;border-radius:12px;border:1.5px solid transparent;font-weight:700;text-decoration:none;cursor:pointer;background:var(--card);color:var(--ink);border-color:var(--line2);font-size:1rem}
.btn:hover{color:var(--ink);border-color:var(--ink)}
.btn-primary{background:var(--mag);border-color:var(--mag);color:#fff} .btn-primary:hover{background:var(--mag-dk);border-color:var(--mag-dk);color:#fff}
.btn-dark{background:var(--ink);border-color:var(--ink);color:#fff} .btn-dark:hover{color:#fff;opacity:.92}
.btn-ok{background:var(--ok-solid);border-color:var(--ok-solid);color:#fff} .btn-ok:hover{color:#fff;opacity:.92}
.btn-ghost{background:transparent;border-color:transparent;color:var(--ink2);padding:0 10px} .btn-ghost:hover{border-color:transparent;color:var(--ink)}
.btn-lg{min-height:56px;font-size:1.125rem;border-radius:14px}
.btn-sm{min-height:40px;padding:0 14px;font-size:.875rem;border-radius:10px}
.btn-block{width:100%}
.btn-danger{color:var(--risk)}
.icon-btn{width:44px;height:44px;padding:0;border-radius:12px}

/* Formulários */
.field{display:flex;flex-direction:column;gap:6px;font-weight:600;font-size:.875rem}
.input,select.input,textarea.input{min-height:52px;width:100%;padding:0 16px;border:1.5px solid var(--line2);border-radius:12px;background:#fff;font-size:1rem;font-weight:500;color:var(--ink)}
textarea.input{padding:12px 16px;min-height:96px;resize:vertical;line-height:1.5}
.input:focus{border-color:#8E54B5;outline:none;box-shadow:0 0 0 3px rgba(142,84,181,.2)}
.check{display:flex;gap:10px;align-items:flex-start;font-size:.875rem;line-height:1.5;font-weight:500}
.check input{width:22px;height:22px;margin:0;flex:none;accent-color:var(--mag)}
.hint{font-size:.8125rem;color:var(--ink2);font-weight:500}
.error-box{padding:14px 16px;border-radius:12px;background:var(--risk-bg);color:var(--risk);font-weight:600}

/* Escolhas (chips, radios e checkboxes estilizados) */
.choices{display:flex;flex-wrap:wrap;gap:8px}
.choice{position:relative}
.choice input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
.choice span{display:flex;align-items:center;justify-content:center;min-height:48px;padding:0 18px;border:1.5px solid var(--line2);border-radius:999px;background:#fff;font-weight:700;cursor:pointer}
.choice input:checked + span{background:var(--ink);border-color:var(--ink);color:#fff}
.choice input:focus-visible + span{outline:3px solid #8E54B5;outline-offset:2px}
.choice.sq span{border-radius:12px}
.choice.yes input:checked + span{background:var(--warn);border-color:var(--warn)}
.chip{display:inline-flex;align-items:center;min-height:44px;padding:0 16px;border-radius:999px;border:1.5px solid var(--line2);background:#fff;color:var(--ink);font-weight:700;text-decoration:none;font-size:.875rem}
.chip[aria-current="true"]{background:var(--ink);border-color:var(--ink);color:#fff}

/* Selos */
.badge{display:inline-flex;align-items:center;padding:3px 10px;border-radius:999px;font-size:.8125rem;font-weight:700;background:var(--soft);color:var(--ink);white-space:nowrap}
.b-ok{background:var(--ok-bg);color:var(--ok)} .b-warn{background:var(--warn-bg);color:var(--warn)} .b-risk{background:var(--risk-bg);color:var(--risk)}
.b-novo{background:var(--purple-bg);color:var(--purple)} .b-convidado{background:var(--soft);color:var(--ink2)} .b-inativo{background:#EEE;color:#555}
.avatar{width:44px;height:44px;flex:none;border-radius:50%;background:#EFEAF8;color:var(--purple);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:.875rem}
.avatar-lg{width:72px;height:72px;font-size:1.5rem}
.avatar-pink{background:var(--pink);color:var(--ink)}
.flash{padding:14px 18px;border-radius:14px;background:var(--ok-bg);color:#134A2E;font-weight:600}
.flash.info{background:var(--purple-bg);color:var(--purple)}
.notice{padding:14px 16px;border-radius:14px;background:var(--warn-bg);color:#5C3B00;font-size:.875rem;line-height:1.5}
.tip{padding:12px 14px;border-radius:12px;background:var(--purple-bg);color:var(--purple);font-weight:600;font-size:.875rem}

/* Controle de tamanho do texto */
.fs-ctl{display:flex;gap:4px;padding:4px;background:var(--soft);border-radius:12px}
.fs-ctl button{min-width:44px;height:40px;border:0;border-radius:9px;background:transparent;font-weight:800;cursor:pointer;color:var(--ink)}
.fs-ctl button[aria-pressed="true"]{background:var(--ink);color:#fff}
.fs-ctl .a1{font-size:14px}.fs-ctl .a2{font-size:17px}.fs-ctl .a3{font-size:20px}

/* Semana */
.week{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}
.week li{display:flex;flex-direction:column;align-items:center;gap:6px;font-weight:700;color:var(--ink2);font-size:.875rem}
.week .dot{width:40px;height:40px;border-radius:50%;border:2px solid var(--line2);background:#fff;display:flex;align-items:center;justify-content:center}
.week .done .dot{background:var(--ok-solid);border-color:var(--ok-solid);color:#fff}
.week .today .dot{border-color:var(--mag)}

/* ---------- Layout do professor ---------- */
.p-shell{display:flex;flex-wrap:wrap;min-height:100vh}
.p-nav{flex:1 1 240px;background:var(--ink);color:#fff;padding:24px 16px;display:flex;flex-direction:column;gap:28px}
.p-brand{display:flex;align-items:center;gap:12px;padding:0 8px;color:#fff;text-decoration:none}
.p-brand img{width:40px;height:40px;border-radius:11px}
.p-brand b{display:block;font-family:'Archivo',sans-serif;font-stretch:118%;letter-spacing:.05em;font-weight:800}
.p-brand span{font-size:.75rem;color:#CFC9E3}
.p-menu{display:flex;flex-direction:column;gap:4px}
.p-menu a{display:flex;align-items:center;gap:12px;min-height:48px;padding:0 14px;border-radius:12px;color:#D6D0E8;text-decoration:none;font-weight:600}
.p-menu a:hover{color:#fff;background:rgba(255,255,255,.07)}
.p-menu a[aria-current="page"]{background:rgba(255,255,255,.14);color:#fff}
.p-menu svg{flex:none}
.p-plan{margin-top:auto;padding:16px;border-radius:14px;background:rgba(255,255,255,.08);display:flex;flex-direction:column;gap:8px;font-size:.875rem}
.bar{display:block;height:8px;border-radius:99px;background:rgba(255,255,255,.15);overflow:hidden}
.bar>span{display:block;height:100%;border-radius:99px;background:var(--pink)}
.bar.light{background:#EFEDF5}.bar.light>span{background:var(--mag)}
.p-me{display:flex;align-items:center;gap:10px;padding:0 6px;font-size:.875rem}
.p-me small{display:block;color:#CFC9E3;font-size:.75rem}
.p-main{flex:999 1 560px;min-width:0;display:flex;flex-direction:column}
.p-top{display:flex;flex-wrap:wrap;align-items:center;gap:16px;padding:16px 32px;background:#fff;border-bottom:1px solid var(--line)}
.p-top h1{flex:1 1 200px;font-size:1.5rem}
.p-content{width:100%;max-width:1200px;padding:32px;display:flex;flex-direction:column;gap:24px}
.kpi{display:flex;flex-direction:column;gap:6px}
.kpi b{font-family:'Archivo',sans-serif;font-stretch:118%;font-size:2rem;font-weight:800;line-height:1.1}
.list{list-style:none;margin:0;padding:0}
.list>li{border-bottom:1px solid #EFEDF5}
.list>li:last-child{border-bottom:0}
.row-link{display:flex;flex-wrap:wrap;align-items:center;gap:16px;padding:16px 20px;color:var(--ink);text-decoration:none}
.row-link:hover{background:#FBFAFD;color:var(--ink)}
.col-meta{flex:1 1 130px;display:flex;flex-direction:column;gap:2px}
.col-meta small{color:var(--mute);font-weight:600;font-size:.75rem}
.item{display:flex;flex-wrap:wrap;align-items:center;gap:14px;padding:16px;border:1px solid var(--line);border-radius:14px}
.table-wrap{overflow-x:auto}
table{width:100%;border-collapse:collapse;font-size:.875rem}
th,td{padding:12px 8px;border-bottom:1px solid #EFEDF5;text-align:left;vertical-align:middle}
th{color:var(--ink2);font-weight:700}
.ex-row{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px;padding:16px;border:1px solid var(--line);border-radius:14px;background:#fff}
.ex-row .num{width:36px;height:36px;flex:none;border-radius:10px;background:var(--ink);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800}
.ex-row .mini{flex:1 1 72px;display:flex;flex-direction:column;gap:4px;font-size:.75rem;color:var(--ink2);font-weight:600}
.ex-row .mini input{min-height:44px;width:100%;padding:0 10px;border:1.5px solid var(--line2);border-radius:10px;font-weight:700;font-size:1rem;background:#fff}
.lib-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:12px;background:var(--bg)}
.tabs{display:flex;flex-wrap:wrap;gap:8px}
.steps-funnel{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
.steps-funnel div{padding:12px 6px;border-radius:12px;background:var(--bg);text-align:center;display:flex;flex-direction:column;gap:2px}
.steps-funnel b{font-family:'Archivo',sans-serif;font-size:1.5rem}
.progress4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px}
.progress4 span{height:6px;border-radius:99px;background:var(--line)}
.progress4 span.on{background:var(--ok-solid)}
.copybox{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:8px 8px 8px 16px;border:1.5px dashed #CDB6EC;border-radius:14px;background:#FBF8FF}
.copybox code{flex:1 1 220px;font-weight:700;color:var(--purple);word-break:break-all;font-family:inherit}

/* ---------- Layout do aluno (celular primeiro) ---------- */
.a-shell{max-width:520px;margin:0 auto;min-height:100vh;display:flex;flex-direction:column;background:var(--bg)}
.a-top{display:flex;align-items:center;gap:12px;padding:20px 20px 8px}
.a-content{flex:1 1 auto;padding:12px 20px 110px;display:flex;flex-direction:column;gap:16px}
.a-tabs{position:fixed;left:0;right:0;bottom:0;background:#fff;border-top:1px solid var(--line);padding:8px 12px calc(12px + env(safe-area-inset-bottom))}
.a-tabs nav{max-width:520px;margin:0 auto;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px}
.a-tabs a{min-height:56px;border-radius:12px;color:#5A5475;text-decoration:none;font-weight:700;font-size:.8125rem;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px}
.a-tabs a[aria-current="page"]{background:var(--soft);color:var(--ink)}
.hero{background:var(--ink);color:#fff;border-radius:20px;padding:20px;display:flex;flex-direction:column;gap:14px}
.hero .tag{align-self:flex-start;padding:4px 10px;border-radius:999px;background:var(--pink);color:var(--ink);font-weight:800;font-size:.8125rem}
.hero .btn{background:#fff;color:var(--ink);border-color:#fff}
.w-item{display:flex;align-items:center;gap:14px;padding:16px;border-radius:18px;border:1px solid var(--line);background:#fff;color:var(--ink);text-decoration:none}
.w-item:hover{color:var(--ink);border-color:var(--ink)}
.w-letter{width:52px;height:52px;flex:none;border-radius:14px;background:var(--soft);display:flex;align-items:center;justify-content:center;font-family:'Archivo',sans-serif;font-weight:800;font-size:1.5rem}
.w-next{background:var(--ink);color:#fff;border-color:var(--ink)} .w-next:hover{color:#fff} .w-next .w-letter{background:var(--pink);color:var(--ink)} .w-next .muted{color:#E7E3F3}
.set-btn{display:flex;align-items:center;gap:12px;min-height:60px;padding:0 14px;border-radius:14px;border:1.5px solid var(--line2);background:#fff;cursor:pointer;font-weight:700}
.set-btn input{position:absolute;opacity:0;width:1px;height:1px}
.set-btn .tick{width:32px;height:32px;border-radius:50%;border:2px solid #B9B3CC;margin-left:auto;display:flex;align-items:center;justify-content:center;color:transparent}
.set-btn:has(input:checked){background:var(--ok-bg);border-color:var(--ok-solid)}
.set-btn:has(input:checked) .tick{background:var(--ok-solid);border-color:var(--ok-solid);color:#fff}
.set-btn:has(input:focus-visible){outline:3px solid #8E54B5;outline-offset:2px}
.ex-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:16px;display:flex;flex-direction:column;gap:10px}
.rest{position:fixed;left:0;right:0;bottom:96px;display:none;justify-content:center;padding:0 16px;z-index:5}
.rest.show{display:flex}
.rest>div{max-width:488px;width:100%;display:flex;align-items:center;gap:12px;padding:14px 16px;border-radius:16px;background:var(--ink);color:#fff;box-shadow:0 12px 30px rgba(27,20,51,.3)}
.rest b{font-family:'Archivo',sans-serif;font-size:1.75rem;min-width:84px}
.scale{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}
.cal{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.cal span{height:38px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.8125rem;background:var(--bg);border:2px solid transparent}
.cal .done{background:var(--ok-solid);color:#fff} .cal .today{border-color:var(--mag)} .cal .future{color:#9A95B0} .cal .empty{background:transparent}

/* ---------- Telas públicas ---------- */
.pub{min-height:100vh;display:flex;flex-wrap:wrap}
.pub-side{flex:1 1 420px;padding:56px;display:flex;flex-direction:column;justify-content:space-between;gap:40px;color:#fff;background:linear-gradient(160deg,#E4007F 0%,#8E54B5 55%,#2AA3DC 100%)}
.pub-side h1{font-size:2.75rem;line-height:1.05}
.pub-side ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:12px}
.pub-main{flex:1 1 480px;padding:40px 24px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px}
.pub-card{width:100%;max-width:460px;background:#fff;border:1px solid var(--line);border-radius:20px;padding:32px;display:flex;flex-direction:column;gap:20px}
.brand-sm{display:flex;align-items:center;gap:12px;color:inherit;text-decoration:none}
.brand-sm img{width:48px;height:48px;border-radius:13px}
.brand-sm b{font-family:'Archivo',sans-serif;font-stretch:118%;font-weight:800;letter-spacing:.05em;font-size:1.25rem}
.inv-wrap{max-width:760px;margin:0 auto;padding:24px 20px 48px;display:flex;flex-direction:column;gap:20px}
.stepper{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
.stepper span{height:8px;border-radius:99px;background:var(--line)}
.stepper span.on{background:var(--mag)}
.parq{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.parq li{display:flex;flex-wrap:wrap;align-items:center;gap:12px;padding:14px 16px;border:1px solid var(--line);border-radius:14px;background:#fff}
.parq p{flex:1 1 300px}
.legal{max-width:760px;margin:0 auto;padding:40px 20px;display:flex;flex-direction:column;gap:16px;line-height:1.7}

@media (max-width:720px){
  .p-content{padding:20px 16px}
  .p-top{padding:14px 16px}
  .pub-side{padding:32px 24px}
  .pub-side h1{font-size:2rem}
  .grid-2{grid-template-columns:1fr}
  .card{padding:18px}
}

/* ---------- Selos, insígnias e avaliações ---------- */
.badges{display:flex;flex-wrap:wrap;gap:8px}
.seal{display:inline-flex;align-items:center;gap:6px;padding:6px 12px 6px 8px;border-radius:999px;font-weight:800;font-size:.8125rem;line-height:1.2;white-space:nowrap}
.seal svg{flex:none}
.seal-parceiro{background:#1B1433;color:#F6C453;box-shadow:inset 0 0 0 1.5px #F6C453}
.seal-embaixador{background:#C8007D;color:#fff}
.seal-linhagem-referencia{background:#EFEAF8;color:#4B2A86}
.seal-linhagem-mentor{background:#4B2A86;color:#fff}
.seal-linhagem-mestre{background:#2A1A57;color:#F6C453}
.seal-linhagem-headcoach{background:linear-gradient(135deg,#F6C453,#E39B1B);color:#1B1433}
.seal-cref{background:var(--ok-bg);color:var(--ok)}
.p-nav .seal{font-size:.75rem}
.stars{display:inline-flex;gap:2px;color:#E39B1B;vertical-align:middle}
.stars .off{color:#D9D5E6}
.score{font-family:'Archivo',sans-serif;font-weight:800;font-size:2.25rem;line-height:1}
.rate-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid #EFEDF5}
.rate-row:last-child{border-bottom:0}
.rate-pick{display:flex;gap:6px}
.rate-pick .choice span{min-width:48px;padding:0;border-radius:12px;font-size:1.125rem}
.photo{width:96px;height:96px;border-radius:50%;object-fit:cover;flex:none;background:#EFEAF8}
.photo-sm{width:44px;height:44px;border-radius:50%;object-fit:cover;flex:none}
.photo-lg{width:132px;height:132px;border-radius:50%;object-fit:cover;flex:none;border:4px solid #fff;box-shadow:0 8px 24px rgba(27,20,51,.18)}
.pub-hero{background:var(--ink);color:#fff;padding:40px 20px 72px}
.pub-hero .muted{color:#E7E3F3}
.pub-body{max-width:860px;margin:-48px auto 0;padding:0 20px 48px;display:flex;flex-direction:column;gap:20px}
.lineage-track{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
.lineage-track div{padding:12px 8px;border-radius:12px;background:var(--bg);text-align:center;font-size:.8125rem;font-weight:700;color:var(--ink2)}
.lineage-track div.on{background:#4B2A86;color:#fff}
.brand-bar{display:flex;align-items:center;gap:12px;padding:14px 20px}
.brand-bar img{height:40px;max-width:160px;object-fit:contain}
.switch-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 0;border-top:1px solid #EFEDF5}
.switch-row input{width:52px;height:30px;accent-color:var(--ok-solid)}
.upsell{border:2px dashed #CDB6EC;background:#FBF8FF;border-radius:var(--r);padding:20px;display:flex;flex-direction:column;gap:10px}
.color-input{width:64px;height:52px;padding:4px;border:1.5px solid var(--line2);border-radius:12px;background:#fff}
