:root{
  /* identidade GRAN PERFIL (vermelho siderúrgico + grafite/preto) — amostrado do logo */
  --orange:#D90104; --orange-d:#A80003; --orange-l:#fdeaea;
  --navy:#23262b; --navy-d:#0d0d0f;
  --ink:#1f2430; --ink-soft:#5b6472; --line:#e7eaf0; --bg:#f4f6fa;
  --card:#ffffff; --green:#1ea672; --green-bg:#e7f7f0;
  --red:#e0492f; --red-bg:#fdece8; --blue:#2b6cb0; --amber:#b7791f;
  --shadow:0 1px 3px rgba(16,24,40,.06),0 1px 2px rgba(16,24,40,.04);
  --shadow-md:0 6px 22px rgba(16,24,40,.10);
  --radius:14px; --r-sm:10px;
  font-family:'Segoe UI',Roboto,system-ui,Arial,sans-serif;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0;background:var(--bg);color:var(--ink)}
a{color:inherit}
button{font-family:inherit;cursor:pointer}

/* ---------------- LOGIN ---------------- */
.login-wrap{min-height:100vh;display:grid;place-items:center;
  background:radial-gradient(900px 600px at 75% -5%,#3a0608 0,transparent 55%),
             linear-gradient(160deg,#2a2d33 0%,var(--navy-d) 100%);}
.login-card{width:380px;max-width:92vw;background:var(--card);border-radius:18px;
  box-shadow:0 18px 50px rgba(0,0,0,.35);overflow:hidden;border:1px solid #ffffff22}
.login-head{background:linear-gradient(160deg,#1a1c20 0%,#000 100%);padding:34px 20px 30px;text-align:center}
.login-card .logo{display:block;margin:0 auto;height:104px;max-width:92%;object-fit:contain}
.login-card form{padding:30px 34px 34px}
.login-card .sub{text-align:center;color:#c9ccd4;font-size:11.5px;margin-top:10px;letter-spacing:1.5px}
.field{margin-bottom:16px}
.field label{display:block;font-size:12.5px;font-weight:600;color:var(--ink-soft);margin-bottom:6px;text-transform:uppercase;letter-spacing:.4px}
.field input{width:100%;padding:12px 14px;border:1px solid var(--line);border-radius:var(--r-sm);
  font-size:15px;outline:none;transition:.15s;background:#fbfcfe}
.field input:focus{border-color:var(--orange);box-shadow:0 0 0 3px var(--orange-l)}
.btn-primary{width:100%;padding:12px;border:none;border-radius:var(--r-sm);background:var(--orange);
  color:#fff;font-size:15px;font-weight:700;letter-spacing:.3px;transition:.15s}
.btn-primary:hover{background:var(--orange-d)}
.btn-primary:disabled{opacity:.6;cursor:default}
.login-err{background:var(--red-bg);color:var(--red);border:1px solid #f3c6bd;border-radius:var(--r-sm);
  padding:10px 12px;font-size:13.5px;margin-bottom:16px;display:none}
.login-foot{text-align:center;margin-top:20px;font-size:11.5px;color:#9aa3b2}
.remember{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--ink-soft);margin:-4px 0 16px;cursor:pointer;user-select:none}
.remember input{width:16px;height:16px;accent-color:var(--orange);cursor:pointer}

/* ---------------- SHELL ---------------- */
.shell{display:grid;grid-template-columns:264px 1fr;min-height:100vh}
.side{background:#fff;border-right:1px solid var(--line);display:flex;flex-direction:column;position:sticky;top:0;height:100vh}
.side .brand{padding:22px 16px;background:linear-gradient(160deg,#1a1c20 0%,#000 100%);text-align:center}
.side .brand img{height:64px;max-width:94%;object-fit:contain;display:inline-block}
.nav{flex:1;overflow-y:auto;padding:10px 10px 24px}
.nav-sec{font-size:10px;font-weight:800;color:#aab2c0;letter-spacing:1px;text-transform:uppercase;padding:14px 12px 6px}
.panels{display:flex;flex-direction:column;gap:2px}
.panel-btn{display:flex;align-items:center;gap:10px;width:100%;text-align:left;background:none;border:none;
  padding:10px 12px;border-radius:8px;font-size:13.5px;font-weight:600;color:var(--ink)}
.panel-btn .ico{font-size:15px;width:20px;text-align:center}
.panel-btn:hover{background:var(--orange-l);color:var(--orange-d)}
.panel-btn.active{background:var(--orange);color:#fff}

/* topbar */
.main{display:flex;flex-direction:column;min-width:0}
.topbar{height:62px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;
  gap:14px;padding:0 24px;position:sticky;top:0;z-index:5}
.topbar h1{font-size:16px;margin:0;font-weight:700}
.topbar .spacer{flex:1}
.userbox{display:flex;align-items:center;gap:10px;padding-left:14px;border-left:1px solid var(--line)}
.avatar{width:34px;height:34px;border-radius:50%;background:var(--orange);color:#fff;display:grid;place-items:center;font-weight:700;font-size:14px}
.userbox .un{font-size:13px;font-weight:600;line-height:1.1}
.userbox .ut{font-size:11px;color:var(--ink-soft)}
.logout{background:none;border:1px solid var(--line);border-radius:8px;padding:7px 10px;color:var(--ink-soft);font-size:12px}
.logout:hover{border-color:var(--red);color:var(--red)}

/* content */
.content{padding:22px 24px 40px;overflow-y:auto}
.page-title{font-size:13px;color:var(--ink-soft);margin:0 0 14px;font-weight:600;letter-spacing:.3px}
.muted{color:var(--ink-soft)}
.loading{padding:60px;text-align:center;color:var(--ink-soft)}

/* toolbar + grid (cadastros) */
.toolbar{display:flex;align-items:center;gap:10px;margin-bottom:14px}
.tb-input{flex:0 1 360px;padding:10px 14px;border:1px solid var(--line);border-radius:var(--r-sm);font-size:14px;background:#fff;outline:none}
.tb-input:focus{border-color:var(--orange);box-shadow:0 0 0 3px var(--orange-l)}
.tb-sel{padding:10px 12px;border:1px solid var(--line);border-radius:var(--r-sm);font-size:13.5px;background:#fff;outline:none}
.toolbar .spacer{flex:1}
.block{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:0;overflow:hidden}
table.grid{width:100%;border-collapse:collapse;font-size:13px}
table.grid thead th{position:sticky;top:0;background:#f8fafc;text-align:left;color:var(--ink-soft);font-weight:700;
  font-size:11px;text-transform:uppercase;letter-spacing:.4px;padding:10px 12px;border-bottom:1px solid var(--line)}
table.grid th.r,table.grid td.r{text-align:right}
table.grid th.c,table.grid td.c{text-align:center}
table.grid tbody tr{cursor:pointer;border-bottom:1px solid #f1f3f8}
table.grid tbody tr:hover{background:var(--orange-l)}
table.grid td{padding:9px 12px;white-space:nowrap;max-width:280px;overflow:hidden;text-overflow:ellipsis;text-align:left}
/* REGRA: texto à esquerda, número à direita */
.grid td.cod,.grid th.cod{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.chip{font-size:10.5px;font-weight:700;padding:2px 8px;border-radius:20px;white-space:nowrap}
.st{font-size:10.5px;font-weight:700;padding:2px 8px;border-radius:20px}
.st-on{background:var(--green-bg);color:var(--green)} .st-off{background:var(--red-bg);color:var(--red)}
.st-mid{background:#fef5e7;color:var(--amber)}
.tot-bar{display:flex;gap:22px;justify-content:flex-end;padding:12px 4px;font-size:13px}
.tot-bar b{font-variant-numeric:tabular-nums}
.itens-tb{margin-top:8px}
.pager{display:flex;align-items:center;gap:14px;justify-content:center;padding:14px;font-size:13px}
.pg-btn{padding:7px 14px;border:1px solid var(--line);border-radius:8px;background:#fff;font-size:13px}
.pg-btn:hover:not(:disabled){border-color:var(--orange);color:var(--orange-d)}
.pg-btn:disabled{opacity:.5}
.empty{padding:50px;text-align:center;color:var(--ink-soft)}

/* modal detalhe */
.modal-ov{position:fixed;inset:0;background:rgba(20,26,38,.45);display:grid;place-items:center;z-index:50;padding:20px}
.modal{background:#fff;border-radius:16px;box-shadow:var(--shadow-md);width:760px;max-width:96vw;max-height:90vh;display:flex;flex-direction:column}
.modal-h{display:flex;align-items:flex-start;justify-content:space-between;padding:18px 22px;border-bottom:1px solid var(--line)}
.modal-h h2{font-size:16px;margin:0}
.modal-h .msub{font-size:12px;color:var(--ink-soft);margin-top:3px}
.modal-x{background:none;border:none;font-size:18px;color:var(--ink-soft);width:32px;height:32px;border-radius:8px}
.modal-x:hover{background:var(--bg);color:var(--red)}
.modal-b{padding:18px 22px;overflow-y:auto}
.det-sec{font-size:11px;font-weight:800;color:var(--orange-d);letter-spacing:.6px;text-transform:uppercase;margin:18px 0 8px}
.det-sec:first-child{margin-top:0}
.det-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px 22px}
/* PADRÃO rótulo/valor: rótulo em cima, valor embaixo, tudo à ESQUERDA */
.det{display:flex;flex-direction:column;gap:2px;font-size:13px;padding:5px 0;border-bottom:1px dashed #eef1f6;text-align:left}
.det span{color:var(--ink-soft);font-size:11.5px} .det b{font-weight:600;text-align:left;word-break:break-word}
.det.full{grid-column:1/-1}
.flags{display:flex;flex-wrap:wrap;gap:8px}
.flag{font-size:12px;padding:5px 11px;border-radius:8px;background:#eef0f4;color:var(--ink-soft);font-weight:600}
.flag.on{background:var(--green-bg);color:var(--green)}

/* PADRÃO de formulário: grid de 12 colunas; largura via .spN (default 6 = meia) */
.fform{display:grid;grid-template-columns:repeat(12,1fr);gap:12px 18px}
.ffield{display:flex;flex-direction:column;gap:4px;grid-column:span 6}
.ffield.sp2{grid-column:span 2}.ffield.sp3{grid-column:span 3}.ffield.sp4{grid-column:span 4}
.ffield.sp5{grid-column:span 5}.ffield.sp6{grid-column:span 6}.ffield.sp7{grid-column:span 7}
.ffield.sp8{grid-column:span 8}.ffield.sp9{grid-column:span 9}.ffield.sp10{grid-column:span 10}
.ffield.full,.ffield.sp12{grid-column:1/-1}
@media(max-width:1000px){.fform{grid-template-columns:repeat(2,1fr)}.ffield,.ffield[class*=sp]{grid-column:auto}.ffield.full,.ffield.sp12{grid-column:1/-1}}
.ffield label{font-size:11.5px;font-weight:600;color:var(--ink-soft)}
.ffield input,.ffield select,.ffield textarea{padding:9px 11px;border:1px solid var(--line);border-radius:8px;font-size:13.5px;background:#fff;outline:none;font-family:inherit}
.ffield input:focus,.ffield select:focus,.ffield textarea:focus{border-color:var(--orange);box-shadow:0 0 0 3px var(--orange-l)}
.ffield input:disabled{background:#f1f3f8;color:var(--ink-soft)}

/* abas (participante: dados/endereço/fiscal/financeiro) */
.ptabs{display:flex;gap:4px;border-bottom:2px solid var(--line);margin:6px 0 14px}
.ptab{appearance:none;border:none;background:transparent;padding:9px 16px;font-size:13px;font-weight:600;color:var(--ink-soft);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-2px;border-radius:6px 6px 0 0}
.ptab:hover{color:var(--navy);background:#f4f6fb}
.ptab.active{color:var(--orange-d);border-bottom-color:var(--orange)}
.ptab-pane{display:none}
.ptab-pane.active{display:block;animation:fadeIn .15s ease}
@keyframes fadeIn{from{opacity:.4}to{opacity:1}}

/* barra de ações (botões que DESABILITAM em cinza — fiel ao POW-ENABLE OFF) */
.act-bar{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px;border-top:1px solid var(--line);padding-top:14px}
.act-btn{padding:9px 16px;border:1px solid var(--line);border-radius:9px;background:#fff;font-size:13px;font-weight:600;color:var(--ink);cursor:pointer}
.act-btn:hover{border-color:var(--navy);color:var(--navy)}
.act-btn:disabled{opacity:.45;cursor:not-allowed;background:#f4f6fa;color:var(--ink-soft);border-color:var(--line)}
.act-btn.primary{background:var(--orange);border-color:var(--orange);color:#fff}
.act-btn.primary:hover{background:var(--orange-d)}
.act-btn.danger:hover{border-color:var(--red);color:var(--red)}

/* autocomplete type-ahead reutilizável */
.ac-box{position:absolute;z-index:60;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 10px 30px rgba(20,42,102,.18);max-height:300px;overflow:auto;font-size:13px}
.ac-it{padding:8px 11px;cursor:pointer;display:flex;justify-content:space-between;gap:10px;align-items:center;border-bottom:1px solid #f3f5f9}
.ac-it:last-child{border-bottom:none}
.ac-it:hover,.ac-it.sel{background:var(--orange-l)}
.ac-it .ac-nm{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ac-it .ac-meta{color:var(--ink-soft);font-size:11px;white-space:nowrap;font-variant-numeric:tabular-nums}
.ac-empty{padding:10px 12px;color:var(--ink-soft)}

/* toast flutuante */
.toast-wrap{position:fixed;right:20px;bottom:20px;display:flex;flex-direction:column;gap:8px;z-index:100}
.toast{background:#1f2430;color:#fff;padding:11px 16px;border-radius:10px;font-size:13.5px;box-shadow:var(--shadow-md);animation:tin .2s ease}
.toast.ok{background:var(--green)} .toast.err{background:var(--red)}
@keyframes tin{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
