/* Dashboard - GD Tecnologia. Mesma família visual do Painel Administrativo
   (produtos próprios seguem a marca única, ver skill frontend-design):
   tema escuro, IBM Plex Sans/Mono, acento azul da marca. */
:root{
  color-scheme: dark;
  --bg:#07293D;
  --panel:#1c1f26;
  --panel-2:#21242c;
  --border:#2a2e37;
  --text:#eceef1;
  --muted:#8b8f98;
  --accent:#0099e0;
  --good:#3ddc84;
  --mid:#ffc857;
  --bad:#ff5b6a;
  --mono:'IBM Plex Mono','SFMono-Regular',Consolas,monospace;
  --sans:'IBM Plex Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',Helvetica,Arial,sans-serif;
  --sidebar-ini:#1a1d24;--sidebar-fim:#1e3040;
  --raio:14px;
  --sombra:0 1px 2px rgba(0,0,0,.16),0 3px 10px rgba(0,0,0,.18);
}
*{box-sizing:border-box;}
html,body{height:100%;margin:0;}
body{
  background:
    radial-gradient(900px 480px at 100% -10%, rgba(0,153,224,.10), transparent 60%),
    var(--bg);
  color:var(--text);font-family:var(--sans);font-weight:300;
}
a{color:var(--accent);text-decoration:none;}
.muted{color:var(--muted);}
h1,h2,h3{font-family:var(--sans);font-weight:800;letter-spacing:-.01em;}
@keyframes entrada{from{opacity:0;transform:translateY(8px);}to{opacity:1;transform:none;}}
.card{animation:entrada .4s cubic-bezier(.16,1,.3,1) both;}

/* ---- Login/MFA ---- */
.auth-body{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:24px;}
.auth-card{width:100%;max-width:380px;background:var(--panel);border:1px solid var(--border);border-radius:var(--raio);padding:28px 26px;text-align:center;}
.auth-card h1{font-size:17px;margin:0 0 4px;}
.auth-card form{margin-top:18px;max-width:320px;margin:18px auto 0;text-align:left;}
.auth-card label{display:block;font-size:13px;color:var(--muted);margin-bottom:14px;}
.auth-card input{width:100%;margin-top:6px;padding:.85rem 1rem;font-size:1rem;background:var(--panel-2);border:1px solid var(--border);border-radius:8px;color:var(--text);font-family:var(--sans);}
.auth-card button{width:100%;padding:.85rem 1rem;background:var(--accent);color:#04161F;border:0;border-radius:8px;font-weight:700;cursor:pointer;font-size:15px;}
.auth-card button:hover{filter:brightness(1.1);}
.erro{background:rgba(255,91,106,.12);border:1px solid rgba(255,91,106,.4);color:#ffb3ba;padding:10px 14px;border-radius:8px;font-size:13.5px;margin-top:14px;text-align:left;}
.ok{background:rgba(61,220,132,.12);border:1px solid rgba(61,220,132,.4);color:#9ff0c2;padding:10px 14px;border-radius:8px;font-size:13.5px;margin-top:14px;text-align:left;}

/* ---- App shell ---- */
.mobile-topbar{display:none;}
.app-shell{display:flex;min-height:100vh;}
.sidebar{width:230px;flex-shrink:0;background:linear-gradient(180deg,var(--sidebar-ini),var(--sidebar-fim));border-right:1px solid var(--border);padding:20px 16px;display:flex;flex-direction:column;}
.sidebar-brand{font-weight:800;color:#fff;font-size:15px;margin-bottom:22px;display:block;}
.sidebar-nav{display:flex;flex-direction:column;gap:2px;flex:1;}
.sidebar-nav a{padding:9px 12px;border-radius:8px;color:var(--muted);font-size:13.5px;font-weight:500;}
.sidebar-nav a:hover{background:rgba(255,255,255,.05);color:var(--text);}
.sidebar-nav a.active{background:rgba(0,153,224,.16);color:#fff;}
.sidebar-footer{border-top:1px solid var(--border);padding-top:14px;margin-top:14px;font-size:12.5px;color:var(--muted);display:flex;flex-direction:column;gap:6px;}
.content-area{flex:1;min-width:0;}
.container{max-width:1100px;margin:0 auto;padding:34px 28px;}

.topbar-title{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:22px;flex-wrap:wrap;gap:10px;}
.btn{display:inline-flex;align-items:center;gap:8px;padding:10px 18px;background:var(--accent);color:#04161F;border:0;border-radius:8px;font-weight:700;font-size:13.5px;cursor:pointer;}
.btn.secondary{background:transparent;border:1px solid var(--border);color:var(--text);}
.btn:hover{filter:brightness(1.1);}

table{width:100%;border-collapse:collapse;background:var(--panel);border:1px solid var(--border);border-radius:var(--raio);overflow:hidden;}
th,td{padding:12px 14px;text-align:left;font-size:13.5px;border-bottom:1px solid var(--border);}
th{color:var(--muted);font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.05em;}
tr:last-child td{border-bottom:0;}
tr:hover td{background:rgba(255,255,255,.02);}

.badge{display:inline-block;padding:3px 10px;border-radius:999px;font-size:11.5px;font-weight:600;}
.badge.pendente{background:rgba(255,200,87,.14);color:var(--mid);}
.badge.enviado{background:rgba(33,150,243,.14);color:#7fc4f7;}
.badge.aprovado,.badge.concluido{background:rgba(61,220,132,.14);color:var(--good);}
.badge.recusado{background:rgba(255,91,106,.14);color:var(--bad);}
.badge.ativo{background:rgba(61,220,132,.14);color:var(--good);}
.badge.pausado{background:rgba(255,200,87,.14);color:var(--mid);}
.badge.encerrado{background:rgba(139,143,152,.14);color:var(--muted);}

.form-box{background:var(--panel);border:1px solid var(--border);border-radius:var(--raio);padding:22px;max-width:560px;}
.form-box label{display:block;font-size:13px;color:var(--muted);margin-bottom:14px;}
.form-box input,.form-box select,.form-box textarea{width:100%;margin-top:6px;padding:.7rem .85rem;background:var(--panel-2);border:1px solid var(--border);border-radius:8px;color:var(--text);font-family:var(--sans);font-size:14px;}

.cadeia{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:13px;}
.cadeia .elo{padding:6px 12px;background:var(--panel-2);border:1px solid var(--border);border-radius:999px;}
.cadeia .elo.atual{border-color:var(--accent);color:#fff;}
.cadeia .seta{color:var(--muted);}
