/* MeuEstudoPro — tokens e componentes compartilhados (cores do kit de identidade visual v2) */
:root{
  --bg:#f4f8fd; --surface:#ffffff; --surface-2:#e9f1fc; --line:#d5e1f2;
  --ink:#1b2b4f; --muted:#56657f; --brand:#3a6fd8; --brand-ink:#ffffff;
  --mark:#ff7a59; --mark-ink:#1b2b4f; --logo-pro:#3a6fd8; --pastel:#a9c8f5;
  --ok:#16a362; --bad:#c8372d; --warn:#b45309;
  --h0:#e9f1fc; --h1:#cddff8; --h2:#a9c8f5; --h3:#6f9be6; --h4:#3a6fd8;
  --f-display:"Inter","Segoe UI",system-ui,sans-serif;
  --f-body:"Inter","Segoe UI",system-ui,sans-serif;
  --f-mono:"JetBrains Mono",ui-monospace,Consolas,monospace;
  --r:10px; color-scheme:light;
}
@media (prefers-color-scheme: dark){ :root:not([data-theme="light"]){
  --bg:#0f1b34; --surface:#1b2b4f; --surface-2:#24385f; --line:#33496f;
  --ink:#eef3fc; --muted:#a7b5cf; --brand:#a9c8f5; --brand-ink:#1b2b4f;
  --mark:#ff7a59; --mark-ink:#1b2b4f; --logo-pro:#ff7a59; --pastel:#a9c8f5;
  --ok:#3ddc8f; --bad:#ff8f80; --warn:#ffb547;
  --h0:#24385f; --h1:#2f4c80; --h2:#3a6fd8; --h3:#6f9be6; --h4:#a9c8f5;
  color-scheme:dark; } }
:root[data-theme="dark"]{
  --bg:#0f1b34; --surface:#1b2b4f; --surface-2:#24385f; --line:#33496f;
  --ink:#eef3fc; --muted:#a7b5cf; --brand:#a9c8f5; --brand-ink:#1b2b4f;
  --mark:#ff7a59; --mark-ink:#1b2b4f; --logo-pro:#ff7a59; --pastel:#a9c8f5;
  --ok:#3ddc8f; --bad:#ff8f80; --warn:#ffb547;
  --h0:#24385f; --h1:#2f4c80; --h2:#3a6fd8; --h3:#6f9be6; --h4:#a9c8f5;
  color-scheme:dark; }

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--f-body);font-size:15px;line-height:1.5}
.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))}
h1,h2,h3{font-family:var(--f-display);font-optical-sizing:auto;font-weight:800;margin:0;text-wrap:balance;letter-spacing:-.02em}
a{color:var(--brand)}
button,input,select{font:inherit;color:inherit}
:focus-visible{outline:3px solid var(--mark);outline-offset:2px}
.num{font-variant-numeric:tabular-nums}
[hidden]{display:none!important}

.logo{display:flex;align-items:center;gap:9px;font-family:var(--f-display);font-weight:800;font-size:21px;letter-spacing:-.03em;color:var(--ink);text-decoration:none}
.logo b{color:var(--logo-pro);font-weight:800}
.logo svg{flex:none}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid transparent;background:var(--brand);color:var(--brand-ink);border-radius:8px;padding:9px 16px;font-weight:600;cursor:pointer;text-decoration:none;line-height:1.3}
.btn.sec{background:transparent;border-color:var(--line);color:var(--ink)}
.btn.mark{background:var(--mark);color:var(--mark-ink)}
.btn.small{padding:5px 10px;font-size:13px}
.btn.big{padding:13px 22px;font-size:16px}
.btn.danger{background:transparent;border-color:var(--bad);color:var(--bad)}
.btn:disabled{opacity:.55;cursor:default}

.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:18px;min-width:0}
.pill{display:inline-block;padding:2px 8px;border-radius:99px;font-size:12px;font-weight:600;white-space:nowrap}
.pill.ok{background:color-mix(in srgb,var(--ok) 15%,transparent);color:var(--ok)}
.pill.bad{background:color-mix(in srgb,var(--bad) 15%,transparent);color:var(--bad)}
.pill.warn{background:color-mix(in srgb,var(--warn) 18%,transparent);color:var(--warn)}
.pill.mut{background:var(--surface-2);color:var(--muted)}
.pill.pro{background:var(--mark);color:var(--mark-ink)}

label{font-size:13px;font-weight:600;color:var(--muted)}
input[type=text],input[type=email],input[type=password],input[type=number],input[type=date],select.in{width:100%;padding:10px 11px;border:1px solid var(--line);border-radius:8px;background:var(--surface)}
.f{display:grid;gap:4px;min-width:0}
.erro{color:var(--bad);font-size:14px;font-weight:500;margin:0}
.mini{font-size:12px;color:var(--muted)}

.toast{position:fixed;left:50%;bottom:calc(20px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);background:var(--ink);color:var(--bg);padding:10px 16px;border-radius:8px;font-size:14px;font-weight:500;z-index:30;box-shadow:0 8px 24px rgba(0,0,0,.2);max-width:calc(100vw - 32px)}

/* páginas de autenticação */
.auth{min-height:calc(100vh - 70px);display:grid;place-items:center;padding-block:40px}
.auth .box{width:min(420px,100%);display:grid;gap:20px}
.auth form{display:grid;gap:14px}
.auth h1{font-size:28px;font-weight:800}
.auth .alt{font-size:14px;color:var(--muted);text-align:center}

/* rodapé */
.rodape{border-top:1px solid var(--line);padding-block:22px;color:var(--muted);font-size:13px}
.rodape .wrap{display:flex;gap:10px 20px;flex-wrap:wrap;justify-content:space-between;align-items:center}
.rodape nav{display:flex;gap:18px;flex-wrap:wrap}
.rodape a{color:var(--muted)}
.rodape a:hover{color:var(--ink)}

/* termos e privacidade */
.top-doc{border-bottom:1px solid var(--line);background:var(--surface);padding-block:14px}
.doc{max-width:760px;padding-block:36px 64px;line-height:1.65}
.doc h1{font-size:clamp(28px,4.5vw,38px);font-weight:800}
.doc h2{font-size:19px;margin:32px 0 8px}
.doc .versao{color:var(--muted);font-size:13px;margin:6px 0 24px}
.doc ul{padding-left:20px}
.doc li{margin-bottom:6px}
.doc table{width:100%;border-collapse:collapse;font-size:14px;margin:8px 0}
.doc th,.doc td{text-align:left;vertical-align:top;padding:8px;border-bottom:1px solid var(--line)}
.doc th{font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.doc td:first-child{font-weight:600;width:38%}
.doc code{background:var(--surface-2);padding:1px 5px;border-radius:4px;font-size:13px}
@media (max-width:560px){.doc td:first-child{width:auto}}
