/* Paleta oficial FRZ: laranja #ff6600 / off white #e3e3e3 / cinza #434343 */
:root { --laranja:#ff6600; --offwhite:#e3e3e3; --cinza:#434343; --fundo:#efefef; }
* { box-sizing: border-box; }
body { margin:0; font:14px/1.4 "Open Sans","Segoe UI",sans-serif; background:var(--fundo); color:#222; }
.topo { height:52px; background:var(--cinza); display:flex; align-items:center; padding:0 16px; position:sticky; top:0; z-index:50; }
.logo-modulo { position:relative; }
.btn-modulo { background:none; border:0; color:var(--offwhite); font-weight:700; font-size:18px; cursor:pointer; display:flex; gap:8px; align-items:center; padding:6px 8px; border-radius:6px; }
.btn-modulo:hover { background:#363636; }
.painel-modulos { display:none; position:absolute; top:46px; left:0; width:240px; background:#fff; border-radius:6px; box-shadow:0 6px 24px rgba(0,0,0,.25); padding:6px 0; }
.painel-modulos.aberto { display:block; }
.painel-modulos a { display:flex; gap:12px; align-items:center; padding:10px 16px; color:#555; text-decoration:none; }
.painel-modulos a:hover { background:#f4f4f4; box-shadow:inset 3px 0 0 var(--laranja); }
.painel-modulos .vazio { display:block; padding:10px 16px; color:#888; }
.ic { width:22px; text-align:center; font-size:17px; }
.direita { margin-left:auto; display:flex; align-items:center; gap:14px; color:var(--offwhite); }
.sair { background:none; border:1px solid #777; color:var(--offwhite); border-radius:6px; padding:5px 12px; cursor:pointer; }
.sair:hover { border-color:var(--laranja); color:#fff; }
main { padding:28px 24px; max-width:1000px; margin:0 auto; }
.card, .login-card { background:#fff; border-radius:8px; padding:22px 26px; box-shadow:0 1px 4px rgba(0,0,0,.08); }
.card h1, .login-card h1 { margin:0 0 4px; font-size:22px; color:var(--laranja); }
.sub { color:#667; margin:0 0 18px; }
.grade { display:grid; grid-template-columns:repeat(auto-fill,minmax(190px,1fr)); gap:14px; }
.modulo { display:flex; flex-direction:column; align-items:center; gap:8px; padding:22px 12px; border:1px solid #ddd; border-radius:8px; text-decoration:none; color:var(--cinza); background:#fafafa; }
.modulo:hover { border-color:var(--laranja); box-shadow:0 2px 10px rgba(255,102,0,.18); }
.modulo .ic { font-size:32px; }
.login-card { max-width:380px; margin:8vh auto 0; }
.login-card label { display:block; font-weight:600; margin-bottom:14px; color:var(--cinza); }
.login-card input { display:block; width:100%; margin-top:5px; padding:10px 12px; border:1px solid #ccc; border-radius:6px; font:inherit; }
.login-card input:focus { outline:2px solid var(--laranja); border-color:var(--laranja); }
.primario { width:100%; padding:11px; background:var(--laranja); color:#fff; border:0; border-radius:6px; font:inherit; font-weight:700; cursor:pointer; }
.primario:hover { background:#e65c00; }
.aviso { padding:10px 14px; border-radius:6px; margin:0 auto 14px; max-width:380px; }
.aviso.erro { background:#fde8e8; color:#8a1f1f; border:1px solid #f3b8b8; }
@media (max-width:600px) { .nome-usuario { display:none; } main { padding:16px; } }

.link-topo { color:var(--offwhite); text-decoration:none; font-size:14px; }
.link-topo:hover { color:#fff; text-decoration:underline; text-decoration-color:var(--laranja); }
.card.larga { max-width:none; }
.cabeca-tabela { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.primario.inline { width:auto; padding:9px 16px; text-decoration:none; display:inline-block; }
.busca-form input { width:100%; max-width:420px; margin:12px 0; padding:9px 12px; border:1px solid #ccc; border-radius:6px; font:inherit; }
.tabela-rolagem { overflow-x:auto; }
.tabela { width:100%; border-collapse:collapse; }
.tabela th, .tabela td { text-align:left; padding:9px 10px; border-bottom:1px solid #e5e5e5; vertical-align:top; }
.tabela th { font-size:12px; text-transform:uppercase; letter-spacing:.04em; color:#666; }
.tabela tr.inativo td { opacity:.55; }
.tabela a { color:var(--cinza); font-weight:600; }
.tabela a:hover { color:var(--laranja); }
.etq { display:inline-block; padding:2px 8px; border-radius:10px; background:#eee; color:#444; font-size:12px; margin:1px 0; }
.etq-ok { background:#e3f5e6; color:#1d6b2b; } .etq-off { background:#eee; color:#888; } .etq-aviso { background:#fff1e0; color:#a4520a; }
.voltar a { color:#667; text-decoration:none; }
.form-usuario label { display:block; font-weight:600; margin-bottom:14px; color:var(--cinza); }
.form-usuario label small { font-weight:400; color:#777; }
.form-usuario input:not([type=checkbox]), .form-usuario select { display:block; width:100%; margin-top:5px; padding:10px 12px; border:1px solid #ccc; border-radius:6px; font:inherit; }
.form-usuario fieldset { border:1px solid #ddd; border-radius:6px; margin:0 0 14px; padding:10px 14px; }
.form-usuario legend { font-weight:600; padding:0 6px; color:var(--cinza); }
.form-usuario .check { font-weight:400; display:block; margin:6px 0; }
.card .primario { width:auto; padding:10px 22px; }
.secundario { background:#fff; border:1px solid #999; color:var(--cinza); border-radius:6px; padding:9px 16px; cursor:pointer; font:inherit; }
.secundario:hover { border-color:var(--laranja); }
.aviso.ok { background:#e8f6ea; color:#1d5e2a; border:1px solid #b9e0bf; }
.senha-box { max-width:none; font-size:15px; }
.senha-box code { font-size:18px; background:#fff; padding:2px 8px; border-radius:4px; user-select:all; }
hr { border:0; border-top:1px solid #e5e5e5; margin:22px 0 16px; }
