/* Componentes comuns das páginas com login (relatório, CAF, admin) — sobre estilo.css + portal.css */
.pg-main{max-width:1040px;margin:0 auto;padding:2rem 1.25rem 6rem}
.pg-rot{display:block;font-size:.75rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--azul);margin:0 0 .8rem}
.card{background:var(--card);border:1px solid var(--linha);border-radius:var(--raio);box-shadow:var(--sombra);padding:1.1rem 1.2rem}
.vazio{padding:2rem 1rem;text-align:center;color:var(--fraco);background:var(--card);border:1px dashed var(--linha);border-radius:var(--raio)}
.gpe-usu{display:flex;align-items:center;gap:.5rem}
.gpe-usu .quem{color:#fff;font-weight:600;font-size:.88rem}
.btn .ico{width:17px;height:17px}
.btn-perigo{background:#fff;border-color:#f3b7ab;color:#b42318}
.btn-ok{background:linear-gradient(135deg,#1f9d63,#28b673);color:#fff}
.btn-sec{background:#fff;border-color:var(--linha);color:var(--tinta)}
.abas{display:flex;gap:.4rem;flex-wrap:wrap;margin-bottom:1rem}
.abas button{border:1px solid var(--linha);background:#fff;border-radius:99px;padding:.5em 1.05em;font-weight:600;font-size:.9rem;color:var(--fraco);cursor:pointer;display:inline-flex;gap:.45em;align-items:center}
.abas button span{background:var(--fundo);border-radius:99px;padding:0 .55em;font-size:.78rem}
.abas button[aria-pressed="true"]{background:var(--marinho);border-color:var(--marinho);color:#fff}
.abas button[aria-pressed="true"] span{background:rgba(255,255,255,.2)}
.campo{display:flex;flex-direction:column;gap:.3rem;min-width:0}
.campo>span{font-size:.8rem;font-weight:600;color:#34465d}
.campo input,.campo select,.campo textarea{border:1px solid var(--linha);border-radius:10px;padding:.65rem .8rem;font:inherit;font-size:.95rem;background:#fff;color:var(--tinta);min-width:0;width:100%}
.campo textarea{resize:vertical;min-height:110px}
.campo input:focus,.campo select:focus,.campo textarea:focus{outline:2px solid #9cc3ec;border-color:var(--azul)}
.grade2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem}
.grade3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.9rem}
.larga{grid-column:1/-1}
.msg{font-size:.9rem;margin:.4rem 0 0;min-height:1.2em}
.msg.erro{color:#b42318;font-weight:600}.msg.ok{color:var(--ok);font-weight:600}
.selo{display:inline-flex;align-items:center;gap:.35em;font-size:.72rem;font-weight:700;padding:.2em .7em;border-radius:99px;white-space:nowrap}
.selo.pend{background:#fff3e2;color:#a85d00}.selo.ok{background:#e6f6ee;color:var(--ok)}.selo.rep{background:#fdecec;color:#b42318}.selo.neu{background:var(--fundo);color:var(--fraco)}

.toast{position:fixed;left:50%;bottom:28px;transform:translateX(-50%) translateY(20px);opacity:0;pointer-events:none;background:var(--marinho);color:#fff;padding:.7rem 1.1rem;border-radius:12px;font-size:.9rem;z-index:95;transition:all .25s;max-width:calc(100% - 32px)}
.toast.on{opacity:1;transform:translateX(-50%)}
.modal{position:fixed;inset:0;z-index:90;background:rgba(7,26,60,.55);display:grid;place-items:center;padding:16px;overflow:auto}
.modal[hidden]{display:none}
.caixa{background:#fff;border-radius:18px;padding:1.4rem;width:min(460px,100%);box-shadow:0 30px 60px -20px rgba(7,26,60,.5);max-height:calc(100vh - 32px);overflow:auto}
.caixa.larga-cx{width:min(620px,100%)}
.caixa h2{font-size:1.25rem;letter-spacing:-.02em}
.caixa .sub{color:var(--fraco);font-size:.9rem;margin:.3rem 0 1rem}
.caixa .campo{margin-top:.7rem}
.caixa .mbtns{display:flex;justify-content:flex-end;gap:.5rem;margin-top:1rem;flex-wrap:wrap}
.caixa .alt{background:none;border:0;color:var(--azul);font-weight:600;cursor:pointer;padding:0;margin-top:.8rem;font-size:.86rem}

/* entrar com Google / Microsoft */
.contas{display:flex;flex-direction:column;align-items:stretch;gap:.6rem;margin-top:.4rem}
.g-btn{min-height:44px;display:flex;justify-content:center}
.btn-conta{display:flex;align-items:center;justify-content:center;gap:.6rem;height:44px;border:1px solid #dadce0;border-radius:99px;background:#fff;font:inherit;font-weight:500;font-size:.95rem;color:#3c4043;cursor:pointer}
.btn-conta:hover{background:#f8faff;border-color:#c5d6ec}
.btn-conta svg{width:18px;height:18px}
.ou{display:flex;align-items:center;gap:.6rem;margin:1rem 0 .2rem;color:var(--fraco);font-size:.8rem}
.ou::before,.ou::after{content:"";flex:1;border-top:1px solid var(--linha)}

.criar-login{display:flex;align-items:center;justify-content:space-between;gap:.6rem;flex-wrap:wrap;margin-top:1rem;padding:.75rem .9rem;border:1px dashed #b9cce3;border-radius:12px;background:#f5f9fe}
.criar-login span{font-weight:600;color:#23476e}
.criar-login .btn{border-color:var(--azul);color:var(--azul);font-weight:700}

/* cadastro */
.cad-rot{display:block;font-size:.74rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--azul);margin:1rem 0 .45rem}
.cad-usinas{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:.5rem}
.cad-us{position:relative;display:flex;flex-direction:column;gap:.05rem;border:1.5px solid var(--linha);border-radius:12px;padding:.6rem .7rem;cursor:pointer;background:#fff}
.cad-us input{position:absolute;opacity:0;pointer-events:none}
.cad-us b{font-size:1.05rem;letter-spacing:-.02em}.cad-us small{font-size:.74rem;color:var(--fraco);line-height:1.2}
.cad-us em{font-style:normal;font-size:.66rem;font-weight:700;color:#8a97a8;text-transform:uppercase;letter-spacing:.06em;margin-top:.15rem}
.cad-us:has(input:checked){border-color:var(--azul);background:#eef5fd;box-shadow:0 0 0 3px rgba(19,88,158,.12)}
.cad-us:has(input:checked)::after{content:"✓";position:absolute;top:.4rem;right:.55rem;color:var(--azul);font-weight:800}
.cad-us.off{opacity:.45;cursor:not-allowed;background:var(--fundo);filter:grayscale(1)}
.contas.bloq{opacity:.45}

/* quadro de assinatura */
.assin{border:2px dashed #9aa8b6;border-radius:12px;background:#fbfcfe;position:relative;touch-action:none}
.assin canvas{display:block;width:100%;height:170px;cursor:crosshair;border-radius:10px}
.assin .dica{position:absolute;inset:auto 0 10px;text-align:center;font-size:.8rem;color:#8a97a8;pointer-events:none}
.assin.feita .dica{display:none}
.assin-limpar{position:absolute;top:8px;right:8px;z-index:2;display:inline-flex;align-items:center;gap:.3rem;min-height:38px;padding:.4rem .9rem;border:1px solid #cfd8e3;border-radius:99px;background:#fff;color:#b42318;font:inherit;font-weight:700;font-size:.88rem;cursor:pointer;box-shadow:0 2px 6px rgba(7,26,60,.12);-webkit-tap-highlight-color:transparent}
.assin-limpar:active{transform:scale(.97)}
.assin:not(.feita) .assin-limpar{opacity:.5}
.assin-acoes{display:flex;justify-content:space-between;align-items:center;margin-top:.4rem;font-size:.82rem;color:var(--fraco)}
.assin-acoes button{background:none;border:0;color:var(--azul);font-weight:600;cursor:pointer}

@media (max-width:760px){.grade2,.grade3{grid-template-columns:minmax(0,1fr)}.pg-main{padding-top:1.4rem}}
@media print{.barra,.faixa-usina,.rodape,.nao-imprime,.toast,.modal{display:none!important}body{background:#fff}.pg-main{padding:0;max-width:none}}
