/* GPR 360 Standalone -- APP/PWA
   Mesma identidade do painel (public/painel/painel.css): azul #1A2B4C,
   fundo #F4F6FA. Sem framework, sem build: o app e' o que esta no disco. */

:root {
    --azul: #1A2B4C;
    --azul-claro: #2E4A7D;
    --fundo: #F4F6FA;
    --branco: #FFFFFF;
    --texto: #1B1F26;
    --borda: #DDE3EC;
    --verde: #1B8A5A;
    --vermelho: #C2333B;
    --amarelo: #B8791B;
    --cinza: #6B7280;
    --raio: 12px;
}

* { box-sizing: border-box; -webkit-tap-highlight-color: transparent; }

/* `hidden` precisa vencer o display das classes abaixo (.topo, .gaveta e
   .badge sao flex/inline-block e sem isso apareciam no login). */
[hidden] { display: none !important; }

body {
    margin: 0;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
    background: var(--fundo);
    color: var(--texto);
    font-size: 15px;
    line-height: 1.45;
    padding-bottom: env(safe-area-inset-bottom);
}

/* ---------------------------------------------------------------- topo */
.topo {
    display: flex; align-items: center; gap: 10px;
    background: var(--azul); color: var(--branco);
    padding: 10px 12px;
    padding-top: calc(10px + env(safe-area-inset-top));
    position: sticky; top: 0; z-index: 20;
}
.topo .marca { flex: 1; font-weight: 700; font-size: 16px; }
.topo .marca span { font-weight: 400; opacity: .75; font-size: 13px; margin-left: 6px; }
.icon-btn {
    background: rgba(255,255,255,.12); color: var(--branco); border: 0;
    border-radius: 8px; padding: 8px 12px; font-size: 16px; cursor: pointer;
}
.notificacoes-topo { position:relative; }
.notificacoes-topo .badge { position:absolute; top:-5px; right:-5px; min-width:18px; padding:1px 5px; text-align:center; }

/* --------------------------------------------------------------- gaveta */
.gaveta {
    position: fixed; inset: 0; z-index: 40;
    background: rgba(0,0,0,.45);
    display: flex; align-items: flex-start;
}
.gaveta nav {
    background: var(--azul); color: var(--branco);
    width: min(78vw, 300px); height: 100%;
    padding: 22px 14px;
    display: flex; flex-direction: column; gap: 2px;
}
.gaveta nav a {
    color: var(--branco); text-decoration: none;
    padding: 12px 14px; border-radius: 8px; font-size: 15px;
}
.gaveta nav a:active, .gaveta nav a:hover { background: var(--azul-claro); }
.gaveta nav a.perigo { color: #F2A6AA; margin-top: auto; }
.badge {
    background: var(--vermelho); color: #fff; border-radius: 10px;
    padding: 1px 7px; font-size: 12px; font-weight: 700;
}

/* ------------------------------------------------------------- conteúdo */
.conteudo { max-width: 780px; margin: 0 auto; padding: 14px 12px 40px; }
.conteudo > .login { max-width: 420px; margin: 0 auto; padding-top: 8vh; }

h1 { font-size: 20px; margin: 4px 0 2px; }
h2 { font-size: 16px; margin: 20px 0 8px; }
.subtitulo { color: var(--cinza); font-size: 13px; margin: 0 0 14px; }
.carregando { color: var(--cinza); text-align: center; padding: 40px 0; }

.cartao {
    background: var(--branco); border: 1px solid var(--borda);
    border-radius: var(--raio); padding: 14px; margin-bottom: 12px;
}
.cartao.clicavel:active { background: #F0F3F9; }

label { display: block; font-size: 13px; font-weight: 600; margin: 12px 0 4px; }
input[type=text], input[type=email], input[type=password], textarea, select {
    width: 100%; padding: 11px 12px; font-size: 16px; /* 16px evita zoom no iOS */
    border: 1px solid var(--borda); border-radius: 9px; background: var(--branco);
    color: var(--texto); font-family: inherit;
}
textarea { min-height: 76px; resize: vertical; }

button.botao, .botao {
    display: inline-flex; align-items: center; justify-content: center; gap: 6px;
    width: 100%; padding: 12px 14px; margin-top: 14px;
    background: var(--azul); color: var(--branco);
    border: 0; border-radius: 9px; font-size: 15px; font-weight: 600;
    cursor: pointer; text-decoration: none;
}
button.botao.secundario, .botao.secundario {
    background: var(--branco); color: var(--azul); border: 1px solid var(--borda);
}
button.botao.perigo, .botao.perigo { background: var(--vermelho); }
button.botao:disabled { opacity: .55; }
.linha-botoes { display: flex; gap: 8px; }
.linha-botoes > * { margin-top: 10px; }

/* ------------------------------------------------------------- etiquetas */
.etiqueta {
    display: inline-block; padding: 2px 9px; border-radius: 20px;
    font-size: 12px; font-weight: 700; letter-spacing: .2px;
    background: #E7EBF3; color: var(--cinza); white-space: nowrap;
}
.etiqueta.prevista            { background: #E7EBF3; color: var(--cinza); }
.etiqueta.em_andamento        { background: #DCE8FA; color: var(--azul-claro); }
.etiqueta.aguardando_confirm { background: #FCEDD5; color: var(--amarelo); }
.etiqueta.rejeitada           { background: #F8DFE1; color: var(--vermelho); }
.etiqueta.atrasada            { background: #F8DFE1; color: var(--vermelho); }
.etiqueta.concluida           { background: #D8EFE3; color: var(--verde); }
.etiqueta.concluida_atraso    { background: #F6E7C9; color: #8A5A10; }

.item-linha { display: flex; align-items: center; gap: 10px; }
.item-linha .nome { flex: 1; font-weight: 600; }
.meta { color: var(--cinza); font-size: 13px; margin-top: 3px; }

/* -------------------------------------------------------------- checklist */
.checklist-item { border-top: 1px solid var(--borda); padding: 12px 0; }
.checklist-item:first-of-type { border-top: 0; }
.checklist-item .titulo { font-weight: 600; }
.checklist-item.critico .titulo::after {
    content: "crítico"; font-size: 11px; font-weight: 700; color: var(--vermelho);
    background: #F8DFE1; border-radius: 4px; padding: 1px 6px; margin-left: 8px;
}
.opcoes { display: flex; gap: 8px; margin-top: 10px; }
.opcoes button {
    flex: 1; padding: 10px; border-radius: 9px; border: 1px solid var(--borda);
    background: var(--branco); font-size: 14px; font-weight: 600; cursor: pointer;
}
.opcoes button.escolhido.sim { background: var(--verde); border-color: var(--verde); color: #fff; }
.opcoes button.escolhido.nao { background: var(--vermelho); border-color: var(--vermelho); color: #fff; }

.evidencias { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 10px; }
.evidencias button {
    display: inline-flex; align-items: center; gap: 5px;
    padding: 7px 11px; border-radius: 8px; background: #E7EBF3;
    color: var(--azul); font-size: 13px; font-weight: 600;
    border: 0; cursor: pointer;
}
textarea.campo-obs { margin-top: 10px; }
input[type=file] {
    display: block; width: 100%; margin-top: 10px; font-size: 13px;
    padding: 9px; background: var(--branco);
    border: 1px dashed var(--borda); border-radius: 9px; color: var(--cinza);
}

/* ----------------------------------------------------------------- aviso */
.aviso {
    position: fixed; left: 50%; transform: translateX(-50%);
    bottom: calc(18px + env(safe-area-inset-bottom));
    background: var(--azul); color: var(--branco);
    padding: 11px 18px; border-radius: 10px; z-index: 60;
    max-width: 90vw; font-size: 14px; box-shadow: 0 6px 20px rgba(0,0,0,.22);
}
.aviso.erro { background: var(--vermelho); }
.aviso.ok { background: var(--verde); }

/* ------------------------------------------------------------ vazio/lista */
.vazio { text-align: center; color: var(--cinza); padding: 26px 12px; }
.vazio strong { display: block; color: var(--texto); margin-bottom: 4px; }
.notificacao { border-left: 3px solid var(--borda); padding-left: 10px; }
.notificacao.nao-lida { border-left-color: var(--azul-claro); }
.notificacao .quando { color: var(--cinza); font-size: 12px; }

@media (min-width: 640px) {
    .conteudo { padding: 20px 16px 48px; }
    .linha-botoes > * { flex: 1; }
}

/* =========================================================================
   IDENTIDADE GPR 360 -- APP/PWA
   Referencia visual: APP beta atual. A navegacao, o roteador e as chamadas
   de API permanecem os mesmos; apenas o cromo e os componentes recebem a
   linguagem dark corporativa.
   ========================================================================= */
:root {
    --azul: var(--gpr-bg-900);
    --azul-claro: var(--gpr-blue-deep);
    --fundo: var(--gpr-bg-950);
    --branco: #f5f8fa;
    --texto: #f5f8fa;
    --borda: #2a536f;
    --verde: var(--gpr-green);
    --vermelho: #ff4d4f;
    --amarelo: #f0a34b;
    --cinza: #a6becf;
    --app-card: linear-gradient(145deg, rgba(5,55,112,.88), rgba(2,29,67,.94));
    --app-input: rgba(1,25,60,.72);
    --app-line: rgba(0,151,255,.32);
}
body {
    color: var(--texto);
    background-color:#071c3a;
    background-image:linear-gradient(rgba(0,174,255,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(0,174,255,.025) 1px,transparent 1px),radial-gradient(circle at 50% 0,#0d3a72 0%,#0c2845 35%,#071c3a 70%,#01142f 100%);
    background-size:80px 80px,80px 80px,auto;
}
.topo {
    background: rgba(2, 29, 67, .82);
    border-bottom: 1px solid var(--app-line);
    -webkit-backdrop-filter: blur(14px);
    backdrop-filter: blur(14px);
}
.topo .marca { color: #fff; letter-spacing: -.03em; }
.topo .marca::first-letter { color: var(--gpr-cyan); }
.icon-btn { background: rgba(1,25,60,.55); border: 1px solid var(--app-line); transition: background var(--gpr-motion), transform var(--gpr-motion); }
.icon-btn:hover { background: rgba(0,191,255,.18); transform: translateY(-1px); }
.gaveta { background: rgba(0, 8, 24, .68); -webkit-backdrop-filter: blur(5px); backdrop-filter: blur(5px); }
.gaveta nav { background: linear-gradient(160deg, #031b3d, #062b5c 62%, #020d1e); border-right: 1px solid var(--app-line); }
.gaveta nav a { color: #c4d5e7; transition: background var(--gpr-motion), color var(--gpr-motion); }
.gaveta nav a:hover, .gaveta nav a:focus, .gaveta nav a.ativo { color: #fff; background: rgba(0,191,255,.14); }
.gaveta nav a.perigo { color: #ff9a9c; }
.conteudo { max-width: 500px; padding: 24px 16px 48px; }
h1 { color: #fff; font-size: 23px; letter-spacing: -.03em; }
h2 { color: #fff; }
.subtitulo, .meta, .carregando { color: var(--cinza); }
.cartao {
    color: var(--texto);
    background: var(--app-card);
    border-color: var(--app-line);
    box-shadow: 0 18px 45px rgba(0,0,0,.16), inset 0 1px 1px rgba(255,255,255,.04);
    -webkit-backdrop-filter: blur(16px);
    backdrop-filter: blur(16px);
}
.cartao.clicavel { transition: transform var(--gpr-motion), border-color var(--gpr-motion), background var(--gpr-motion); }
.cartao.clicavel:hover, .cartao.clicavel:focus-visible { background: linear-gradient(145deg, rgba(8,65,117,.96), rgba(2,35,75,.96)); border-color: rgba(0,224,255,.6); transform: translateY(-1px); }
label { color: var(--cinza); }
input[type=text], input[type=email], input[type=password], textarea, select {
    color: var(--branco);
    background: var(--app-input);
    border-color: #1764a8;
}
input::placeholder, textarea::placeholder { color: #8ea8cb; }
input:focus, textarea:focus, select:focus { outline: 2px solid var(--gpr-cyan); outline-offset: 1px; border-color: var(--gpr-cyan); }
button.botao, .botao { color: #fff; background: linear-gradient(90deg, #00d84f, #00c9a0 45%, #008cff); border-radius: 10px; box-shadow: 0 8px 22px rgba(0,153,255,.18); }
button.botao:hover, .botao:hover { background: linear-gradient(90deg, #00bd47, #00b28f 45%, #0075e6); }
button.botao.secundario, .botao.secundario { color: var(--branco); background: rgba(255,255,255,.07); border-color: var(--app-line); box-shadow: none; }
button.botao.perigo, .botao.perigo { color: #ffb3b4; background: rgba(220,38,38,.20); border: 1px solid rgba(252,165,165,.45); box-shadow: none; }
.etiqueta, .badge { border-radius: 999px; }
.etiqueta.prevista { color: var(--cinza); background: rgba(166,190,207,.15); }
.etiqueta.em_andamento { color: var(--amarelo); background: rgba(240,163,75,.18); }
.etiqueta.aguardando_confirm, .etiqueta.aguardando_confirmacao { color: var(--gpr-cyan); background: rgba(0,191,255,.16); }
.etiqueta.rejeitada, .etiqueta.atrasada { color: #ff4d4f; background: rgba(255,77,79,.16); }
.etiqueta.concluida, .etiqueta.confirmada { color: var(--gpr-green); background: rgba(0,217,90,.16); }
.etiqueta.concluida_atraso { color: #d4b106; background: rgba(212,177,6,.16); }
.checklist-item { border-top-color: var(--app-line); }
.opcoes button { color: var(--cinza); background: rgba(255,255,255,.06); border-color: var(--app-line); }
.opcoes button:hover { background: rgba(0,191,255,.12); }
.opcoes button.escolhido.sim { color: #fff; background: var(--gpr-green-dark); border-color: var(--gpr-green); }
.opcoes button.escolhido.nao { color: #fff; background: #b4232c; border-color: #ff4d4f; }
.evidencias button { color: var(--gpr-cyan); background: rgba(0,191,255,.14); }
input[type=file] { color: var(--cinza); background: rgba(255,255,255,.04); border-color: var(--app-line); }
.vazio { color: var(--cinza); background: var(--app-card); border: 1px dashed var(--app-line); border-radius: 14px; }
.vazio strong { color: #fff; }
.aviso { background: #062b5c; border: 1px solid var(--app-line); box-shadow: 0 10px 30px rgba(0,0,0,.35); }
.aviso.erro { color: #fff; background: #7f1d1d; }
.aviso.ok { background: #08783e; }

/* Splash inicial e login seguem a composicao do APP beta. */
.app-splash { min-height: calc(100svh - 20px); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px; color: #fff; text-align: center; }
.app-splash-mark { display: inline-flex; align-items: center; justify-content: center; width: 72px; height: 72px; margin-bottom: 10px; border: 1px solid rgba(0,224,255,.6); border-radius: 22px; color: #fff; background: linear-gradient(135deg, var(--gpr-blue), var(--gpr-cyan)); font-size: 43px; font-weight: 800; box-shadow: 0 0 28px rgba(0,150,255,.34); }
.app-splash strong { font-size: 30px; letter-spacing: -.05em; }
.app-splash span:not(.app-splash-mark) { color: #b7c9e6; font-size: 12px; letter-spacing: .12em; }
.app-splash small { margin-top: 20px; color: #6e8caf; font-size: 10px; letter-spacing: .16em; }
.conteudo.login-page { max-width: none; min-height: 100svh; margin: 0; padding: 0; }
.conteudo > .login-beta { max-width: none; min-height: 100svh; margin: 0; padding: 0; }
.login-beta { position: relative; display: flex; align-items: center; justify-content: center; width: 100%; overflow: hidden; color: #fff; background: radial-gradient(circle at 50% 20%, #073d83 0%, #032a5e 28%, #021d43 55%, #01142f 100%); }
.login-background { pointer-events: none; position: fixed; z-index: 0; inset: 0; overflow: hidden; }
.login-grid { position: absolute; inset: 0; background-image: linear-gradient(rgba(0,174,255,.035) 1px, transparent 1px), linear-gradient(90deg, rgba(0,174,255,.035) 1px, transparent 1px); background-size: 40px 40px; }
.login-glow { position: absolute; top: -180px; left: 50%; width: 420px; height: 420px; border-radius: 50%; transform: translateX(-50%); background: #008cff; filter: blur(180px); opacity: .12; }
.login-square { position: absolute; border: 1px solid rgba(0,174,255,.15); border-radius: 12px; background: linear-gradient(135deg, rgba(0,110,255,.12), rgba(0,255,190,.03)); }
.login-square-1 { width: 55px; height: 55px; top: 5%; right: 8%; }
.login-square-2 { width: 35px; height: 35px; top: 13%; right: 22%; }
.login-square-3 { width: 45px; height: 45px; bottom: 12%; left: 7%; }
.login-square-4 { width: 25px; height: 25px; bottom: 8%; left: 25%; }
.login-wave { position: absolute; right: -250px; bottom: -190px; width: 700px; height: 300px; border-top: 2px solid rgba(0,177,255,.45); border-radius: 50%; transform: rotate(-20deg); }
.login-wave::after { content: ""; position: absolute; inset: 15px; border-top: 2px solid rgba(0,230,150,.4); border-radius: 50%; }
.login-app { position: relative; z-index: 2; display: flex; flex-direction: column; justify-content: center; box-sizing: border-box; width: 100%; max-width: 430px; min-height: 100svh; padding: 30px 20px; }
.login-brand { margin-bottom: 28px; text-align: center; }
.login-brand-logo { width: 105px; height: auto; margin-bottom: 15px; object-fit: contain; filter: drop-shadow(0 0 18px rgba(0,150,255,.45)); }
.login-brand-name { color: #fff; font-size: 34px; font-weight: 800; line-height: 1; letter-spacing: -1.5px; }
.login-brand-name strong { font: inherit; }
.login-brand-name span { color: #00bfff; }
.login-brand-subtitle { margin-top: 7px; color: #b7c9e6; font-size: 10px; white-space: nowrap; letter-spacing: 2.5px; }
.login-brand-subtitle .dot-green { color: #00e85a; }
.login-brand-subtitle .dot-blue { color: #00bfff; }
.login-card { box-sizing: border-box; width: 100%; padding: 30px 22px; border: 1px solid rgba(0,151,255,.55); border-radius: 25px; background: linear-gradient(145deg, rgba(5,55,112,.88), rgba(2,29,67,.94)); box-shadow: 0 25px 70px rgba(0,0,0,.35), inset 0 1px 1px rgba(255,255,255,.06); backdrop-filter: blur(20px); }
.login-title { margin-bottom: 25px; text-align: center; }
.login-title h1 { margin: 0 0 7px; color: #fff; font-size: 30px; font-weight: 800; }
.login-title p { margin: 0; color: #9eb6d8; font-size: 15px; }
.login-field { position: relative; margin-bottom: 15px; }
.login-field input { box-sizing: border-box; width: 100%; height: 56px; padding: 0 50px; color: #fff; background: rgba(1,25,60,.7); border: 1px solid #1764a8; border-radius: 16px; outline: none; font-size: 16px; transition: all .25s; }
.login-field input::placeholder { color: #8ea8cb; }
.login-field input:focus { border-color: #00bfff; box-shadow: 0 0 0 3px rgba(0,191,255,.1), 0 0 20px rgba(0,191,255,.08); }
.login-field-icon { position: absolute; z-index: 1; top: 50%; left: 18px; width: 13px; height: 14px; transform: translateY(-50%); color: #00e85a; }
.login-user-icon { border: 2px solid currentColor; border-radius: 9px 9px 5px 5px; border-top-color: transparent; }
.login-user-icon::before { content: ""; position: absolute; top: -5px; left: 2px; width: 5px; height: 5px; border: 2px solid currentColor; border-radius: 50%; background: #01193c; }
.login-lock-icon { width: 11px; height: 10px; border: 2px solid currentColor; border-radius: 3px; }
.login-lock-icon::before { content: ""; position: absolute; left: 1px; bottom: 8px; width: 5px; height: 6px; border: 2px solid currentColor; border-bottom: 0; border-radius: 7px 7px 0 0; }
.login-senha-toggle { position: absolute; top: 50%; right: 14px; width: 26px; height: 26px; padding: 4px; border: 0; transform: translateY(-50%); color: #9db8dc; background: transparent; cursor: pointer; }
.login-senha-toggle:hover { color: var(--gpr-cyan); background: transparent; box-shadow: none; transform: translateY(-50%); }
.login-eye { position: absolute; top: 8px; left: 5px; width: 15px; height: 10px; border: 2px solid currentColor; border-radius: 80% 20% 80% 20%; transform: rotate(45deg); }
.login-eye::after { content: ""; position: absolute; top: 2px; left: 3px; width: 3px; height: 3px; border: 1px solid currentColor; border-radius: 50%; }
.login-senha-toggle:not(.visivel)::after { content: ""; position: absolute; top: 12px; left: 3px; width: 20px; height: 1px; transform: rotate(45deg); background: currentColor; }
.login-error { min-height: 0; margin: 0 0 12px; color: #ff6b6b; text-align: center; font-size: 13.5px; }
.login-error:empty { display: none; }
.login-submit { height: 58px; margin-top: 0; border-radius: 16px !important; font-size: 17px; font-weight: 800; }
.login-arrow { margin-left: 2px; font-size: 21px; line-height: 1; }
.login-submit.is-loading { opacity: .68; cursor: wait; }
.login-security { display: flex; align-items: center; justify-content: center; gap: 8px; margin: 22px 0 0; padding-top: 18px; border-top: 1px solid rgba(130,170,210,.18); color: #83a4c9; font-size: 11px; }
.login-shield { color: #00e85a; font-size: 19px; line-height: 1; }
.login-footer { margin: 25px 0 0; color: #6e8caf; text-align: center; font-size: 10px; letter-spacing: 2px; }
@media (max-width: 390px) {
    .login-app { padding: 22px 16px; }
    .login-brand-logo { width: 82px; }
    .login-brand-name { font-size: 29px; }
    .login-brand-subtitle { font-size: 9px; letter-spacing: 1.5px; }
    .login-card { padding: 25px 18px; }
    .login-title h1 { font-size: 27px; }
}
@media (max-height: 700px) {
    .login-app { justify-content: flex-start; padding-top: 20px; }
    .login-brand { margin-bottom: 15px; }
    .login-brand-logo { width: 65px; margin-bottom: 7px; }
    .login-security { margin-top: 15px; }
}
.push-configuracao .item-linha { justify-content:space-between; gap:10px; }
.push-configuracao .meta { margin:8px 0 0; }
.push-configuracao .botao { margin-top:12px; }
.notificacoes-abas { display:flex; gap:8px; margin:8px 0 14px; }
.notificacoes-abas .botao { width:auto; flex:1; margin:0; padding:9px 10px; }
.notificacao .botao { margin-top:10px; }

/* Início do APP: composição equivalente ao painel inicial do BETA. */
body.home-shell { padding-bottom:0; }
body.home-shell .topo { display:none; }
.conteudo.home-page { width:min(100%, 940px); max-width:940px; padding:38px 28px 118px; }
.dashboard-cabecalho { position:relative; min-height:390px; }
.dashboard-empresa { position:relative; z-index:2; width:min(440px, calc(100% - 150px)); }
.dashboard-empresa label { margin:12px 0 10px; color:var(--cinza); font-size:15px; font-weight:800; letter-spacing:.08em; }
.dashboard-empresa select { height:82px; padding:0 30px; border:2px solid #0871bd; border-radius:20px; color:#f5f8fa; background:#042246; font-size:27px; font-weight:750; text-transform:uppercase; }
.dashboard-acoes { position:absolute; top:64px; right:0; display:flex; gap:18px; }
.dashboard-icone { position:relative; display:grid; place-items:center; width:68px; height:68px; border:2px solid rgba(0,151,255,.36); border-radius:50%; color:#fff; background:rgba(1,25,60,.56); font-size:26px; cursor:pointer; }
.dashboard-icone:hover { border-color:var(--gpr-cyan); background:rgba(0,191,255,.15); }
.dashboard-badge { position:absolute; top:-8px; right:-4px; min-width:30px; padding:2px 7px; border-radius:20px; color:#fff; background:#ff3e4d; font-size:16px; font-weight:800; }
.dashboard-marca { margin:0 0 55px 0; padding-left:14px; }
.dashboard-marca-nome { display:flex; align-items:center; gap:8px; }
.dashboard-marca-nome img { display:block; width:48px; height:48px; object-fit:cover; }
.dashboard-marca-nome strong { color:#f5f8fa; font-size:26px; letter-spacing:-.04em; }
.dashboard-marca-nome .tech { color:var(--gpr-cyan); }
.dashboard-marca p { margin:35px 0 0; color:var(--cinza); font-size:24px; letter-spacing:.01em; }
.dashboard-boas-vindas h1 { margin:0; font-size:42px; letter-spacing:-.025em; }
.dashboard-boas-vindas p { margin:12px 0 0; color:var(--cinza); font-size:25px; }
.dashboard-resumo { display:flex; align-items:center; min-height:108px; margin-top:50px; padding:22px 34px; border:2px solid rgba(0,130,220,.55); border-radius:32px; color:var(--cinza); background:rgba(1,31,70,.62); font-size:25px; }
.dashboard-titulo { margin:66px 0 24px; font-size:31px; }
.dashboard-grade { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:26px; }
.dashboard-atalho { position:relative; display:flex; min-height:230px; flex-direction:column; align-items:flex-start; justify-content:flex-start; padding:32px; border:2px solid rgba(0,130,220,.5); border-radius:36px; color:#f5f8fa; text-align:left; background:var(--app-card); cursor:pointer; transition:transform .18s ease,border-color .18s ease; }
.dashboard-atalho:hover { transform:translateY(-2px); border-color:rgba(0,224,255,.65); }
.dashboard-atalho-icone { display:grid; place-items:center; width:68px; height:68px; margin-bottom:25px; border-radius:22px; color:#031c37; font-size:31px; font-weight:800; }
.dashboard-atalho-icone.verde { background:#00d95a; }
.dashboard-atalho-icone.azul { color:#fff; background:#00b9ee; }
.dashboard-atalho strong { font-size:27px; }
.dashboard-atalho-descricao { margin-top:3px; color:var(--cinza); font-size:20px; }
.dashboard-processos { margin-top:54px; scroll-margin-top:18px; }
.dashboard-processos-titulo { display:flex; align-items:baseline; justify-content:space-between; gap:12px; }
.dashboard-processos-titulo h2 { margin:0 0 12px; font-size:30px; }
.dashboard-processos-titulo span { color:var(--cinza); }
.dashboard-periodo { gap:10px; }
.dashboard-periodo .botao { flex:1; margin:0; }
.dashboard-processos h3 { margin:22px 0 10px; color:#d9e6f1; }
.processo-card { display:block; width:100%; text-align:left; font:inherit; cursor:pointer; }
.dashboard-nav { position:fixed; z-index:30; right:0; bottom:0; left:0; display:grid; grid-template-columns:repeat(4,1fr); padding:9px max(10px,env(safe-area-inset-left)) calc(8px + env(safe-area-inset-bottom)); border:1px solid rgba(0,151,255,.35); background:rgba(2,29,67,.97); backdrop-filter:blur(14px); }
.dashboard-nav button { display:flex; flex-direction:column; align-items:center; gap:2px; padding:4px; border:0; color:var(--cinza); background:none; font:inherit; cursor:pointer; }
.dashboard-nav button span { font-size:25px; line-height:1.1; }
.dashboard-nav button strong { font-size:16px; }
.dashboard-nav button.ativo { color:var(--gpr-green); }
@media (max-width:640px) {
    .conteudo.home-page { padding:22px 16px 105px; }
    .dashboard-cabecalho { min-height:315px; }
    .dashboard-empresa { width:calc(100% - 100px); }
    .dashboard-empresa select { height:62px; padding:0 15px; border-radius:15px; font-size:18px; }
    .dashboard-acoes { top:52px; gap:8px; }
    .dashboard-icone { width:46px; height:46px; font-size:20px; }
    .dashboard-marca { margin:0 0 38px; padding-left:5px; }
    .dashboard-marca-nome img { width:38px; height:38px; }
    .dashboard-marca-nome strong { font-size:21px; }
    .dashboard-marca p { margin-top:22px; font-size:16px; }
    .dashboard-boas-vindas h1 { font-size:29px; }
    .dashboard-boas-vindas p { margin-top:7px; font-size:17px; }
    .dashboard-resumo { min-height:76px; margin-top:28px; padding:16px 20px; border-radius:23px; font-size:17px; }
    .dashboard-titulo { margin:42px 0 16px; font-size:23px; }
    .dashboard-grade { gap:14px; }
    .dashboard-atalho { min-height:174px; padding:18px; border-radius:24px; }
    .dashboard-atalho-icone { width:50px; height:50px; margin-bottom:17px; border-radius:16px; font-size:24px; }
    .dashboard-atalho strong { font-size:19px; }
    .dashboard-atalho-descricao { font-size:14px; }
    .dashboard-processos { margin-top:38px; }
    .dashboard-processos-titulo h2 { font-size:23px; }
    .dashboard-nav button strong { font-size:13px; }
}
