/* Fontes hospedadas no próprio site (SIL Open Font License, ver assets/fonts/LICENSE-OFL.txt) */
@font-face{font-family:"DM Sans";font-style:normal;font-display:swap;font-weight:100 1000;src:url(/assets/fonts/dm-sans-ext.woff2) format("woff2-variations");unicode-range: U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:"DM Sans";font-style:normal;font-display:swap;font-weight:100 1000;src:url(/assets/fonts/dm-sans.woff2) format("woff2-variations");unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:"DM Mono";font-style:normal;font-display:swap;font-weight:400;src:url(/assets/fonts/dm-mono-400.woff2) format("woff2");}
@font-face{font-family:"DM Mono";font-style:normal;font-display:swap;font-weight:500;src:url(/assets/fonts/dm-mono-500.woff2) format("woff2");}
/* Maré · portal e landing. Paleta pôr do sol, tinta ameixa, coral. */
:root{
  --sky-1:#ffe2cf; --sky-2:#fff7f1; --bg:#fff7f1; --surface:#ffffff; --tile:#fff0e6; --line:#f2ddd0; --line-2:#e9c9b6;
  --ink:#3a2540; --muted:#7a5f6e; --soft:#a48b97; --coral:#e8784e; --coral-deep:#c8502e; --gold:#f2b860; --gold-soft:#fdf0d6;
  --ok:#2f8a5f; --ok-soft:#e3f4ea; --warn:#b06a0c; --warn-soft:#fdf0d6; --err:#c0392b; --err-soft:#fde4df;
  --plum:#3a2540; --on-plum:#fff3ec;
  --f:"DM Sans",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif; --mono:"DM Mono",ui-monospace,Menlo,Consolas,monospace;
  --r:18px; --r-sm:12px; color-scheme:light;
}
@media (prefers-color-scheme:dark){:root{
  --sky-1:#3a2540; --sky-2:#22152a; --bg:#22152a; --surface:#2e1d35; --tile:#3d2747; --line:#45304e; --line-2:#5a4064;
  --ink:#fbeee6; --muted:#cdb3bf; --soft:#a48b97; --coral:#f08a62; --coral-deep:#e8784e; --gold:#f5c46b; --gold-soft:#3d2c1c;
  --ok:#6fcf9b; --ok-soft:#1c3328; --warn:#f2b860; --warn-soft:#3d2c1c; --err:#f4907f; --err-soft:#43201f; --plum:#1a0f20; color-scheme:dark}}
*{box-sizing:border-box}
html,body{margin:0}
body{background:var(--bg);color:var(--ink);font:15px/1.55 var(--f);-webkit-font-smoothing:antialiased;min-height:100vh}
a{color:var(--coral-deep)}
img,svg{max-width:100%}
h1,h2,h3{margin:0;letter-spacing:-.025em;text-wrap:balance;line-height:1.15}
p{margin:0}
button,input,select{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--coral);outline-offset:2px;border-radius:8px}
[hidden]{display:none!important}
.wrap{max-width:1180px;margin:0 auto;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
.eyebrow{font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--coral-deep)}
.muted{color:var(--muted)} .sub{font-size:13px;color:var(--muted)} .num{font-family:var(--mono);font-variant-numeric:tabular-nums}
.brand{display:inline-flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink)}
.brand svg{width:38px;height:32px;flex:none}
.word{font-size:28px;font-weight:800;letter-spacing:-.045em;line-height:1}
.word em{font-style:normal;color:var(--coral)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--line-2);background:var(--surface);color:var(--ink);border-radius:12px;padding:10px 16px;font-weight:600;cursor:pointer;text-decoration:none;line-height:1.2}
.btn:hover{border-color:var(--coral)}
.btn.primary{background:var(--coral-deep);border-color:var(--coral-deep);color:#fff}
.btn.primary:hover{background:var(--coral)}
.btn.ghost{background:none;border-color:transparent}
.btn.small{padding:6px 11px;font-size:13px;border-radius:10px}
.btn.danger{color:var(--err);border-color:var(--err-soft)}
.btn[disabled]{opacity:.55;cursor:not-allowed}
.btn.block{width:100%}
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:22px}
.pill{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:3px 10px;font-size:12px;font-weight:600;white-space:nowrap}
.pill.ok{background:var(--ok-soft);color:var(--ok)} .pill.warn{background:var(--warn-soft);color:var(--warn)} .pill.err{background:var(--err-soft);color:var(--err)} .pill.info{background:var(--tile);color:var(--muted)}
.field{display:grid;gap:6px;font-size:13px;font-weight:600;color:var(--muted)}
.field input,.field select{width:100%;min-width:0;background:var(--surface);border:1px solid var(--line-2);border-radius:12px;padding:12px 14px;font-weight:500;color:var(--ink);font-size:15px}
.field input:focus{border-color:var(--coral);outline:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--coral) 22%,transparent)}
.field .hint{font-weight:500;font-size:12px;color:var(--soft)}
.check{display:flex;gap:10px;align-items:flex-start;font-size:14px}
.check input{margin-top:3px;accent-color:var(--coral-deep);width:16px;height:16px}
.alerta{border-radius:var(--r-sm);padding:11px 14px;font-size:14px;background:var(--gold-soft);color:var(--warn)}
.alerta.err{background:var(--err-soft);color:var(--err)} .alerta.ok{background:var(--ok-soft);color:var(--ok)}
.stack{display:grid;gap:14px}
.row{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.spread{justify-content:space-between}
.pwd{position:relative} .pwd input{padding-right:84px}
.pwd button{position:absolute;right:6px;top:50%;transform:translateY(-50%);border:0;background:none;color:var(--muted);font-size:13px;font-weight:600;padding:6px 10px;border-radius:8px;cursor:pointer}
.forca{height:6px;border-radius:99px;background:var(--line);overflow:hidden} .forca i{display:block;height:100%;width:0;background:var(--err);transition:width .2s}
.spin{width:16px;height:16px;border-radius:50%;border:2px solid currentColor;border-right-color:transparent;animation:sp .8s linear infinite;display:inline-block}
@keyframes sp{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* ---------- Tela de acesso (estilo portal: marca à esquerda, formulário à direita) ---------- */
.acesso{min-height:100vh;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr)}
.acesso .lado{background:linear-gradient(165deg,var(--sky-1) 0%,#ffc9a8 45%,#f19a72 100%);padding:40px clamp(24px,5vw,64px);display:flex;flex-direction:column;justify-content:space-between;gap:32px;position:relative;overflow:hidden;color:#3a2540}
.acesso .lado .word{color:#3a2540}
.acesso .lado h2{font-size:clamp(28px,3.4vw,44px);font-weight:800;max-width:16ch;color:#3a2540}
.acesso .lado p{max-width:42ch;color:#5b3d55}
.acesso .sol{position:absolute;right:-60px;bottom:-60px;width:320px;height:320px;border-radius:50%;background:radial-gradient(circle,#ffd48a 0%,#f2b860 55%,transparent 70%);opacity:.9}
.acesso .ondas{position:absolute;left:0;right:0;bottom:0;height:90px}
.acesso .form{display:flex;align-items:center;justify-content:center;padding:40px max(16px,env(safe-area-inset-right,0px)) 40px max(16px,env(safe-area-inset-left,0px));background:var(--bg)}
.acesso .caixa{width:min(420px,100%);display:grid;gap:22px}
.acesso .caixa h1{font-size:28px;font-weight:800}
.semana-mini{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;max-width:380px;position:relative;z-index:1}
.semana-mini span{border-radius:10px;padding:8px 0;text-align:center;font-size:12px;font-weight:700;background:rgba(255,255,255,.72);color:#3a2540}
.semana-mini span.f{background:#3a2540;color:#fff3ec}
.semana-mini small{display:block;font-weight:500;font-size:10px;opacity:.8}
.rodape-acesso{font-size:12px;color:var(--soft);text-align:center}
@media (max-width:860px){.acesso{grid-template-columns:1fr}.acesso .lado{padding:28px 20px 40px;min-height:auto}.acesso .lado h2{font-size:26px}.acesso .sol{width:200px;height:200px}}

/* ---------- Portal (logado) ---------- */
.topo{position:sticky;top:0;z-index:20;background:color-mix(in srgb,var(--bg) 92%,transparent);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.topo .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-block:12px}
.topo nav{display:flex;gap:4px;flex-wrap:wrap;align-items:center}
.topo nav a{padding:8px 12px;border-radius:10px;text-decoration:none;color:var(--muted);font-weight:600;font-size:14px}
.topo nav a[aria-current="page"],.topo nav a:hover{color:var(--ink);background:var(--tile)}
.topo .quem{font-size:13px;color:var(--muted);max-width:28ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
main.portal{padding-block:28px 64px}
main.portal .wrap{display:grid;gap:20px}
.titulo h1{font-size:30px;font-weight:800}
.lista-emp{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:12px}
.emp{display:grid;gap:8px;padding:18px;border:1px solid var(--line);border-radius:16px;background:var(--surface);text-decoration:none;color:var(--ink);transition:border-color .15s,transform .15s}
.emp:hover{border-color:var(--coral);transform:translateY(-1px)}
.emp.bloq{opacity:.7}
.emp b{font-size:16px}
.grupo{display:grid;gap:10px}
.grupo h2{font-size:15px;color:var(--muted);font-weight:700;letter-spacing:.01em}
.tabela{width:100%;border-collapse:collapse;font-size:14px}
.tabela th,.tabela td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--line)}
.tabela th{font-size:12px;color:var(--muted);font-weight:600}
.scroll{overflow-x:auto}
.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px;align-items:start}
.planos{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px}
.plano{display:grid;gap:10px;padding:20px;border:1px solid var(--line);border-radius:16px;background:var(--surface)}
.plano .preco{font-size:30px;font-weight:800;letter-spacing:-.03em}
.plano ul{margin:0;padding-left:18px;color:var(--muted);font-size:14px;display:grid;gap:4px}
.qr{background:#fff;border-radius:12px;padding:10px;width:200px;height:200px}
.qr img{width:100%;height:100%}
.toast{position:fixed;left:50%;bottom:calc(20px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);background:var(--plum);color:var(--on-plum);padding:11px 18px;border-radius:12px;font-weight:600;z-index:90;max-width:calc(100% - 32px)}
.carregando{display:flex;gap:10px;align-items:center;color:var(--muted);padding:30px 0}

/* ---------- Landing ---------- */
.l-topo{position:sticky;top:0;z-index:30;background:color-mix(in srgb,var(--sky-1) 88%,transparent);backdrop-filter:blur(8px)}
.l-topo .wrap{display:flex;align-items:center;justify-content:space-between;padding-block:14px;gap:12px}
.l-topo nav{display:flex;gap:18px;align-items:center}
.l-topo nav a.link{color:var(--ink);text-decoration:none;font-weight:600;font-size:14px}
.hero{background:linear-gradient(180deg,var(--sky-1),var(--sky-2));overflow:hidden}
.hero .wrap{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:40px;align-items:center;padding-block:56px 72px}
.hero h1{font-size:clamp(36px,5.2vw,64px);font-weight:800;letter-spacing:-.045em;line-height:1.02}
.hero h1 em{font-style:normal;color:var(--coral-deep)}
.hero p.lead{font-size:18px;color:var(--muted);max-width:52ch;margin-top:18px}
.hero .cta{display:flex;gap:12px;flex-wrap:wrap;margin-top:26px}
.contagem{display:flex;gap:14px;align-items:center;margin-top:28px;padding:14px 18px;border-radius:16px;background:var(--surface);border:1px solid var(--line);width:fit-content;max-width:100%}
.contagem b{font-size:40px;font-weight:800;letter-spacing:-.04em;color:var(--coral-deep);line-height:1}
.contagem span{font-size:14px;color:var(--muted);line-height:1.35}
.quadro{background:var(--surface);border:1px solid var(--line);border-radius:22px;padding:20px;box-shadow:0 30px 60px -30px rgba(58,37,64,.35);display:grid;gap:12px;min-width:0}
.quadro .linha{display:grid;grid-template-columns:110px repeat(7,minmax(0,1fr));gap:5px;align-items:center;font-size:12px}
.quadro .linha > b{font-weight:600;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.quadro .d{border-radius:8px;padding:7px 0;text-align:center;font-family:var(--mono);font-size:11px;border:1px dashed var(--line-2)}
.quadro .d.f{background:var(--tile);border-color:transparent;color:var(--coral-deep);font-family:var(--f);font-weight:700}
.quadro .d.fe{background:var(--gold-soft);border-color:transparent;color:var(--warn);font-family:var(--f);font-weight:700}
.quadro .d.x{background:var(--err-soft);border:2px solid var(--err);color:var(--err)}
.quadro .cab{color:var(--muted);font-weight:600;text-align:center}
.secao{padding-block:72px}
.secao h2{font-size:clamp(28px,3.4vw,40px);font-weight:800}
.secao .intro{max-width:62ch;color:var(--muted);font-size:17px;margin-top:12px}
.linha-tempo{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:32px;position:relative}
.marco{padding:18px;border-radius:16px;background:var(--surface);border:1px solid var(--line);display:grid;gap:6px}
.marco .data{font-family:var(--mono);font-size:13px;color:var(--coral-deep)}
.marco b{font-size:17px}
.marco.ativo{border-color:var(--coral);box-shadow:0 0 0 3px color-mix(in srgb,var(--coral) 18%,transparent)}
.passos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:32px}
.passo{display:grid;gap:10px;align-content:start}
.passo .n{width:40px;height:40px;border-radius:12px;background:var(--plum);color:var(--on-plum);display:grid;place-items:center;font-weight:800}
.passo h3{font-size:19px}
.passo p{color:var(--muted)}
.dois{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:32px}
.publico{padding:26px;border-radius:20px;display:grid;gap:12px;align-content:start}
.publico.a{background:var(--plum);color:var(--on-plum)} .publico.a p,.publico.a li{color:#e8d3dc}
.publico.b{background:var(--surface);border:1px solid var(--line)}
.publico ul{margin:0;padding-left:18px;display:grid;gap:6px}
.faixa-seg{background:var(--plum);color:var(--on-plum)}
.faixa-seg .wrap{padding-block:56px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:32px;align-items:start}
.faixa-seg h2{color:var(--on-plum)}
.faixa-seg ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.faixa-seg li{padding:14px 16px;border-radius:14px;background:rgba(255,255,255,.06);font-size:14px;color:#ecd9e1}
.faixa-seg li b{display:block;color:var(--on-plum);font-size:15px;margin-bottom:2px}
.faq{display:grid;gap:10px;margin-top:28px;max-width:820px}
.faq details{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:16px 18px}
.faq summary{font-weight:700;cursor:pointer}
.faq p{color:var(--muted);margin-top:10px}
.rodape{border-top:1px solid var(--line);padding-block:28px;font-size:13px;color:var(--muted)}
.rodape .wrap{display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;align-items:center}
.rodape a{color:var(--muted)}
.texto-legal{max-width:760px;display:grid;gap:14px}
.texto-legal h2{font-size:20px;margin-top:10px}
@media (max-width:900px){
  .hero .wrap{grid-template-columns:1fr;padding-block:36px 48px}
  .linha-tempo{grid-template-columns:repeat(2,minmax(0,1fr))}
  .passos,.dois{grid-template-columns:1fr}
  .faixa-seg .wrap{grid-template-columns:1fr}
  .faixa-seg ul{grid-template-columns:1fr}
  .l-topo nav a.link{display:none}
  .quadro .linha{grid-template-columns:76px repeat(7,minmax(0,1fr))}
}
