/* ===== Plataforma Fio do Bigode — base compartilhada (portal, admin, clientes) ===== */
:root{
  --primary:#6d28d9;--primary-dark:#5b21b6;--primary-soft:#ede9fe;--accent:#8b5cf6;
  --bg:#f6f5fa;--surface:#ffffff;--text:#15131c;--muted:#55516a;--border:#e6e3ee;
  --danger:#b91c1c;--danger-bg:#fee2e2;--ok:#15803d;--ok-bg:#dcfce7;--warn:#b45309;--warn-bg:#fef3c7;
  --radius:14px;--radius-btn:10px;--shadow:0 20px 50px rgba(21,19,28,.08);
  --font:"Manrope",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif
}
*{box-sizing:border-box}html,body{margin:0;padding:0}
body{font:15px/1.55 var(--font);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased}
a{color:var(--primary)}
h1,h2,h3{font-weight:800;letter-spacing:-.02em;line-height:1.2;margin:0 0 .6em}
h1{font-size:1.6rem}h2{font-size:1.3rem}h3{font-size:1.1rem}

/* ---- telas de autenticação ---- */
.auth-body{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1.5rem;background:radial-gradient(60% 50% at 50% 0%,color-mix(in srgb,var(--primary) 14%,var(--bg)),var(--bg) 70%)}
.auth-card{width:100%;max-width:420px;background:var(--surface);padding:2.25rem 2rem;border-radius:var(--radius);box-shadow:var(--shadow);border:1px solid var(--border)}
.auth-brand{display:flex;flex-direction:column;align-items:center;gap:.6rem;margin-bottom:1.5rem;text-align:center}
.auth-logo{display:block;max-height:64px;max-width:200px;object-fit:contain}
.auth-logo.tile{width:56px;height:56px;border-radius:14px}
.auth-name{font-weight:800;font-size:1.1rem}
.auth-title{text-align:center;font-size:1.3rem;margin:0 0 .35rem}
.auth-sub{text-align:center;color:var(--muted);margin:0 0 1.5rem;font-size:.95rem}
.auth-foot{text-align:center;color:var(--muted);font-size:.85rem;margin-top:1.5rem}
.auth-foot a{text-decoration:none;font-weight:600}

/* ---- formulários ---- */
.form{display:flex;flex-direction:column;gap:1rem}
.field{display:flex;flex-direction:column;gap:.35rem;font-size:.88rem;color:var(--muted);font-weight:600}
.field input,.field select,.field textarea{padding:.7rem .85rem;border:1px solid var(--border);border-radius:var(--radius-btn);font:inherit;font-size:1rem;font-weight:400;color:var(--text);background:var(--surface);width:100%}
.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid var(--accent);outline-offset:0;border-color:var(--accent)}
.input-suffix{display:flex;align-items:center;border:1px solid var(--border);border-radius:var(--radius-btn);overflow:hidden;background:var(--surface)}
.input-suffix input{flex:1;border:0;min-width:0;padding:.7rem .85rem;font-size:1rem}
.input-suffix input:focus{outline:none}.input-suffix:focus-within{outline:2px solid var(--accent)}
.input-suffix span{padding:0 .85rem;background:var(--bg);color:var(--muted);font-size:.9rem;white-space:nowrap;border-left:1px solid var(--border);align-self:stretch;display:flex;align-items:center}
.hint{font-size:.8rem;color:var(--muted);font-weight:400}
.check{display:flex;gap:.6rem;align-items:flex-start;font-size:.9rem;color:var(--muted)}

/* ---- botões ---- */
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:.65rem 1.1rem;border:2px solid transparent;border-radius:var(--radius-btn);font:inherit;font-size:1rem;font-weight:700;cursor:pointer;text-decoration:none;transition:background .15s,color .15s,border-color .15s}
.btn-primary{background:var(--primary);color:#fff;border-color:var(--primary)}.btn-primary:hover{background:var(--primary-dark);border-color:var(--primary-dark)}
.btn-outline{background:transparent;color:var(--text);border-color:var(--border)}.btn-outline:hover{border-color:var(--accent)}
.btn-ghost{background:transparent;color:var(--muted);border-color:transparent}.btn-ghost:hover{color:var(--text)}
.btn-block{width:100%}

/* ---- alertas ---- */
.alert{padding:.75rem 1rem;border-radius:var(--radius-btn);margin-bottom:1rem;font-size:.92rem}
.alert-error{background:var(--danger-bg);color:var(--danger)}.alert-success{background:var(--ok-bg);color:var(--ok)}.alert-warn{background:var(--warn-bg);color:var(--warn)}

/* ---- app (dashboard) ---- */
.topbar{display:flex;align-items:center;gap:.75rem;padding:.6rem 1rem;background:var(--surface);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:10}
.topbar-logo{height:36px}.topbar-title{font-weight:700;flex:1}.topbar-logout{margin:0}
.shell{display:flex;min-height:calc(100vh - 57px)}
.sidebar{width:240px;background:var(--surface);border-right:1px solid var(--border);padding:1rem}
.content{flex:1;padding:1.5rem;min-width:0}
@media (max-width:860px){.sidebar{display:none}.content{padding:1rem}.auth-card{padding:1.75rem 1.25rem}}
