@font-face{font-family:'Ubuntu';src:url('fonts/Ubuntu-Light.ttf') format('truetype');font-weight:300;font-display:swap}
@font-face{font-family:'Ubuntu';src:url('fonts/Ubuntu-Regular.ttf') format('truetype');font-weight:400;font-display:swap}
@font-face{font-family:'Ubuntu';src:url('fonts/Ubuntu-Medium.ttf') format('truetype');font-weight:500;font-display:swap}
@font-face{font-family:'Ubuntu';src:url('fonts/Ubuntu-Bold.ttf') format('truetype');font-weight:700;font-display:swap}
:root{
  --paper:#F4F7FB; --card:#FFFFFF; --ink:#0E1B2E; --muted:#57677C;
  --navy:#1E3E67; --navy-600:#284F82; --navy-050:#E9F0F8;
  --line:#DEE6F0; --deep:#0D1E36; --danger:#C0392B;
  --shadow:0 1px 2px rgba(14,27,46,.05), 0 16px 44px -20px rgba(14,27,46,.30);
  --ui:'Ubuntu',system-ui,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:var(--ui);color:var(--ink);background:var(--paper);line-height:1.55;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
h1,h2,h3{font-weight:700;letter-spacing:-.02em;line-height:1.1}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;font-family:var(--ui);font-weight:500;font-size:.95rem;padding:.7rem 1.2rem;border-radius:10px;border:1.5px solid transparent;cursor:pointer;transition:transform .12s ease, box-shadow .2s, background .2s;text-decoration:none}
.btn-primary{background:var(--navy);color:#fff}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 12px 26px -12px rgba(30,62,103,.7);background:var(--navy-600)}
.btn-ghost{border-color:var(--line);background:transparent;color:var(--ink)}
.btn-ghost:hover{border-color:var(--navy)}
.btn-block{width:100%}

/* forms */
.field{display:flex;flex-direction:column;gap:.4rem;margin-bottom:1rem}
.field label{font-size:.85rem;font-weight:500;color:var(--muted)}
.field input{font-family:var(--ui);font-size:1rem;padding:.7rem .85rem;border:1.5px solid var(--line);border-radius:10px;background:#fff;color:var(--ink);outline:none;transition:border-color .15s, box-shadow .15s}
.field input:focus{border-color:var(--navy);box-shadow:0 0 0 3px var(--navy-050)}
.form-msg{font-size:.88rem;margin-bottom:.9rem;min-height:1.1em}
.form-msg.err{color:var(--danger)}

/* auth card */
.auth-shell{min-height:100vh;display:flex;flex-direction:column}
.auth-top{display:flex;align-items:center;height:66px;padding:0 24px;border-bottom:1px solid var(--line);background:#fff}
.brand{display:flex;align-items:center;gap:.55rem;font-weight:700;font-size:1.15rem}
.brand img{border-radius:7px}
.auth-body{flex:1;display:flex;align-items:center;justify-content:center;padding:32px 20px}
.auth-card{width:100%;max-width:400px;background:var(--card);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);padding:34px}
.auth-card h1{font-size:1.5rem;margin-bottom:.35rem}
.auth-card .sub{color:var(--muted);font-size:.95rem;font-weight:300;margin-bottom:1.6rem}
.auth-alt{text-align:center;margin-top:1.3rem;font-size:.9rem;color:var(--muted)}
.auth-alt a{color:var(--navy);font-weight:500}
.hint{margin-top:1.2rem;padding:.7rem .85rem;background:var(--navy-050);border:1px solid #D3E0EF;border-radius:10px;font-size:.82rem;color:var(--muted)}
.hint b{color:var(--ink)}

/* avatar + dropdown (header account) */
.acct{position:relative}
.avatar{width:38px;height:38px;border-radius:50%;border:none;cursor:pointer;background:var(--navy);color:#fff;font-weight:500;font-size:.9rem;font-family:var(--ui);display:flex;align-items:center;justify-content:center;transition:transform .12s}
.avatar:hover{transform:scale(1.05)}
.avatar.guest{background:var(--navy-050);color:var(--navy);border:1.5px solid var(--line)}
.menu{position:absolute;right:0;top:48px;width:230px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);padding:.4rem;opacity:0;transform:translateY(-6px);pointer-events:none;transition:opacity .15s, transform .15s;z-index:100}
.menu.open{opacity:1;transform:none;pointer-events:auto}
.menu .who{padding:.6rem .7rem;border-bottom:1px solid var(--line);margin-bottom:.3rem}
.menu .who .n{font-weight:500;font-size:.92rem}
.menu .who .e{font-size:.8rem;color:var(--muted);word-break:break-all}
.menu .who .plan{display:inline-block;margin-top:.35rem;font-size:.72rem;font-weight:500;color:var(--navy);background:var(--navy-050);padding:.1rem .5rem;border-radius:999px}
.menu a,.menu button{display:flex;align-items:center;gap:.6rem;width:100%;text-align:left;padding:.55rem .7rem;border:none;background:none;font-family:var(--ui);font-size:.9rem;color:var(--ink);border-radius:8px;cursor:pointer}
.menu a:hover,.menu button:hover{background:var(--paper)}
.menu .sep{height:1px;background:var(--line);margin:.3rem 0}
.menu .danger{color:var(--danger)}

/* páginas legais */
.legal-top{display:flex;align-items:center;height:66px;padding:0 24px;border-bottom:1px solid var(--line);background:#fff;position:sticky;top:0;z-index:20}
.legal-top .spacer{flex:1}
.legal{max-width:760px;margin:0 auto;padding:44px 24px 90px}
.legal h1{font-size:1.9rem;margin-bottom:.3rem}
.legal .updated{color:var(--muted);font-size:.85rem;margin-bottom:2.2rem}
.legal h2{font-size:1.12rem;margin:2rem 0 .5rem}
.legal p,.legal li{color:#2A3646;font-size:.96rem;font-weight:300;line-height:1.7}
.legal p{margin-bottom:.6rem}
.legal ul{margin:.3rem 0 .8rem 1.2rem}
.legal li{margin-bottom:.3rem}
.legal a{color:var(--navy);font-weight:500}
.legal .note{background:var(--navy-050);border:1px solid #D3E0EF;border-radius:10px;padding:14px 16px;font-size:.86rem;color:var(--muted);margin:1.6rem 0}
.legal .note b{color:var(--ink)}
