/* PINNA 5109 · Relatório Mensal navegável — Precisa Engenharia
   Visual institucional derivado do painel.css (Painel 0489) */
@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@500;600;700;800&family=Inter:wght@400;500;600;700&display=swap');
:root{
  --marinho:#002B5C; --grafite:#1F2A33; --navy:#222835; --petroleo:#166B8C; --verde:#8CC63F; --verde-d:#5E8A2B; --musgo:#7C9961;
  --bg:#EEF2F4; --surf:#FFFFFF; --surf2:#F4F7F8; --surf3:#E7EDF0; --line:#D6E0E6; --line-f:#C2D0D8;
  --t1:#1F2A33; --t2:#4A5A68; --t3:#6F808E; --t4:#A9B7C2;
  --ok:#3F6E1C; --ok-bg:#EDF5DF; --warn:#9A6A10; --warn-bg:#FBF2E0; --bad:#B03A2E; --bad-bg:#FAEAE7; --info:#166B8C; --info-bg:#E3EFF5;
  /* séries (validadas: faixa de luminosidade, croma, CVD) */
  --s-base:#4058B0; --s-prev:#1C9BC2; --s-real:#5F8F2A;
  --sombra:0 1px 2px rgba(31,42,51,.05),0 4px 14px rgba(31,42,51,.06);
  --sombra-f:0 2px 6px rgba(31,42,51,.08),0 12px 32px rgba(31,42,51,.10);
  --r:12px;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:'Inter',-apple-system,'Segoe UI',sans-serif;background:var(--bg);color:var(--t1);font-size:14px;-webkit-font-smoothing:antialiased;min-height:100vh}
h1,h2,h3,h4,.mont{font-family:'Montserrat',Arial,sans-serif}
a{color:var(--petroleo)}
button{font-family:inherit}
img{max-width:100%;display:block}
.wrap{max-width:1480px;margin:0 auto;padding:0 22px}
.n{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.mute{color:var(--t3)}
.hide{display:none!important}

/* ---------- topo institucional ---------- */
.top{background:var(--surf);border-bottom:1px solid var(--line);position:relative;overflow:hidden}
.top::before{content:'';position:absolute;right:0;top:0;bottom:0;width:38%;background:url(../img/render-pinna.jpg) center 30%/cover;opacity:.18;mask-image:linear-gradient(90deg,transparent,#000 60%);-webkit-mask-image:linear-gradient(90deg,transparent,#000 60%)}
.topin{position:relative;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:20px;padding:12px 22px}
.mrc{display:flex;align-items:center;gap:14px}
.mrc img{height:46px;width:auto}
.mrc img.sdi{height:34px;border-radius:3px}
.mrc .xx{color:var(--t4);font-weight:300;font-size:18px}
.pinna{height:62px;width:auto;border-radius:4px;box-shadow:var(--sombra)}
.relg{text-align:right;justify-self:end}
.relg .hh{font-family:'Montserrat';font-weight:800;font-size:22px;line-height:1.05;color:var(--grafite)}
.relg .dd{font-family:'Montserrat';font-weight:700;font-size:11px;color:var(--petroleo);text-transform:uppercase;letter-spacing:1.2px;margin-top:5px}
@media(max-width:980px){.topin{grid-template-columns:1fr;justify-items:center;text-align:center}.relg{justify-self:center;text-align:center}.mrc img{height:36px}.pinna{height:52px}}

.faixa{color:#CFE0EC;background:linear-gradient(100deg,var(--marinho) 0%,#0B3A45 58%,#012E29 100%)}
.faixain{display:flex;gap:10px 16px;align-items:center;flex-wrap:wrap;padding:8px 22px;font-size:12px}
.faixa b{color:#fff;font-family:'Montserrat';font-weight:700;letter-spacing:.3px}
.faixa .pill{background:rgba(255,255,255,.12);border-radius:20px;padding:3px 11px;color:#fff}
.faixa .r{margin-left:auto;color:#AECE6A;font-family:'Montserrat';font-weight:800;letter-spacing:1.6px;text-transform:uppercase;font-size:10.5px}

/* ---------- barra de navegação (uma aba = uma visualização) ---------- */
.navp{position:sticky;top:0;z-index:80;background:rgba(255,255,255,.95);backdrop-filter:saturate(1.6) blur(9px);border-bottom:1px solid var(--line);box-shadow:0 2px 10px rgba(31,42,51,.04)}
.navin{display:flex;gap:8px;align-items:stretch;padding:9px 22px;overflow-x:auto;scrollbar-width:thin}
.npl{font-family:'Montserrat';font-weight:800;font-size:10px;letter-spacing:1.4px;text-transform:uppercase;color:var(--marinho);border-left:3px solid var(--verde);padding-left:9px;line-height:1.25;display:flex;align-items:center;min-width:78px}
.npb{display:flex;align-items:center;gap:8px;background:var(--surf);border:1px solid var(--line-f);border-radius:11px;padding:6px 12px 6px 8px;cursor:pointer;transition:.15s;text-decoration:none;color:inherit;position:relative;overflow:hidden;flex:none}
.npb::before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--c,var(--petroleo))}
.npb:hover{border-color:var(--c,var(--petroleo));transform:translateY(-1px);box-shadow:var(--sombra-f)}
.npb.on{border-color:var(--c,var(--petroleo));background:color-mix(in srgb,var(--c,var(--petroleo)) 8%,#fff);box-shadow:0 0 0 2px color-mix(in srgb,var(--c,var(--petroleo)) 28%,#fff)}
.npb .ic{width:28px;height:28px;border-radius:8px;background:var(--c,var(--petroleo));color:#fff;display:flex;align-items:center;justify-content:center;font-family:'Montserrat';font-weight:800;font-size:10.5px;flex:none}
.npb .tx b{display:block;font-family:'Montserrat';font-weight:800;font-size:11.5px;color:var(--grafite);white-space:nowrap}
.npb .tx span{font-size:10px;color:var(--t3);font-weight:600;white-space:nowrap}

/* ---------- conteúdo ---------- */
main{padding:20px 0 30px}
.phead{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:16px}
.phead h2{font-size:24px;font-weight:800;color:var(--navy);letter-spacing:-.2px}
.phead .kick{font-family:'Montserrat';font-weight:800;font-size:10.5px;letter-spacing:2.4px;text-transform:uppercase;color:var(--petroleo);margin-bottom:4px}
.phead .src{font-size:11.5px;color:var(--t3)}
.phead .src code{background:var(--surf3);padding:1px 6px;border-radius:5px;font-size:11px;color:var(--t2)}
.view{animation:fade .25s ease}
@keyframes fade{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}

.grid{display:grid;gap:14px}
.g2{grid-template-columns:repeat(2,minmax(0,1fr))}
.g3{grid-template-columns:repeat(3,minmax(0,1fr))}
.g4{grid-template-columns:repeat(4,minmax(0,1fr))}
.g5{grid-template-columns:repeat(5,minmax(0,1fr))}
.g-7-5{grid-template-columns:minmax(0,7fr) minmax(0,5fr)}
.g-8-4{grid-template-columns:minmax(0,8fr) minmax(0,4fr)}
@media(max-width:1100px){.g5{grid-template-columns:repeat(3,minmax(0,1fr))}.g4{grid-template-columns:repeat(2,minmax(0,1fr))}.g-7-5,.g-8-4{grid-template-columns:1fr}}
@media(max-width:720px){.g2,.g3,.g4,.g5{grid-template-columns:1fr 1fr}.wrap{padding:0 14px}}
@media(max-width:460px){.g2,.g3{grid-template-columns:1fr}}

.card{background:var(--surf);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sombra);overflow:hidden;min-width:0}
.card>.ch{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 16px;background:var(--navy);color:#fff}
.card>.ch h3{font-size:12px;font-weight:800;letter-spacing:1.4px;text-transform:uppercase}
.card>.ch .ex{font-size:11px;color:#C9D4DE}
.card>.cb{padding:14px 16px}
.card>.cb.np{padding:0}
.chartbox{position:relative;height:340px}
.chartbox.sm{height:260px}
.chartbox.lg{height:400px}
.legend{display:flex;gap:14px;flex-wrap:wrap;font-size:12px;color:var(--t2);margin-bottom:8px}
.legend i{display:inline-block;width:12px;height:12px;border-radius:3px;margin-right:6px;vertical-align:-2px}
.legend i.ln{height:3px;border-radius:2px;vertical-align:3px;width:16px}
.note{font-size:11.5px;color:var(--t3);margin-top:10px;line-height:1.5}

/* KPI */
.kpi{background:var(--surf);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sombra);padding:12px 16px 14px;position:relative;overflow:hidden;min-width:0}
.kpi::before{content:'';position:absolute;left:0;top:0;right:0;height:4px;background:var(--c,var(--navy))}
.kpi .kl{font-family:'Montserrat';font-weight:800;font-size:10.5px;letter-spacing:1.3px;text-transform:uppercase;color:var(--t2)}
.kpi .kv{font-family:'Montserrat';font-weight:800;font-size:30px;line-height:1.1;margin-top:6px;color:var(--grafite);font-variant-numeric:tabular-nums;letter-spacing:-.5px}
.kpi .kv.md{font-size:22px}
.kpi .ks{font-size:11.5px;color:var(--t3);margin-top:4px}
.kpi .sw{display:inline-block;width:9px;height:9px;border-radius:2px;background:var(--c);margin-right:6px}
.chip{display:inline-flex;align-items:center;gap:5px;border-radius:20px;padding:2px 9px;font-size:11px;font-weight:700;white-space:nowrap}
.chip.ok{background:var(--ok-bg);color:var(--ok)} .chip.warn{background:var(--warn-bg);color:var(--warn)} .chip.bad{background:var(--bad-bg);color:var(--bad)} .chip.info{background:var(--info-bg);color:var(--info)}

/* tabelas */
.tw{overflow:auto;max-height:560px}
table.t{width:100%;border-collapse:collapse;font-size:12.5px}
table.t th{position:sticky;top:0;z-index:2;background:var(--navy);color:#fff;font-family:'Montserrat';font-weight:700;font-size:11px;letter-spacing:.6px;text-transform:uppercase;text-align:left;padding:9px 12px;white-space:nowrap}
table.t th.n{text-align:right}
table.t td{padding:7px 12px;border-bottom:1px solid var(--surf3);vertical-align:middle}
table.t tbody tr:hover td{background:var(--surf2)}
table.t tr.grp td{background:#E9EFF3;font-weight:700;font-family:'Montserrat';font-size:12px;cursor:pointer}
table.t tr.grp td:first-child::before{content:'▸';display:inline-block;width:14px;color:var(--petroleo);transition:.15s}
table.t tr.grp.open td:first-child::before{transform:rotate(90deg)}
table.t tr.sub td{font-size:12px;color:var(--t2)}
table.t tr.sub td:first-child{padding-left:30px}
table.t tfoot td{position:sticky;bottom:0;background:var(--navy);color:#fff;font-weight:800;font-family:'Montserrat';padding:9px 12px}
table.t td.neg{color:var(--bad)} table.t td.pos{color:var(--ok)}
table.t.kv td:first-child{background:var(--navy);color:#fff;font-family:'Montserrat';font-weight:700;font-size:12px;letter-spacing:.4px;width:42%;border-bottom:2px solid #fff}
table.t.kv td{font-size:14px;padding:10px 14px}

.bar{height:8px;background:var(--surf3);border-radius:6px;overflow:hidden;min-width:80px}
.bar>i{display:block;height:100%;background:var(--c,var(--s-real));border-radius:6px}

/* ferramentas */
.tools{display:flex;gap:10px;flex-wrap:wrap;align-items:center;padding:10px 16px;border-bottom:1px solid var(--line);background:var(--surf2)}
.tools input,.tools select{font:inherit;font-size:12.5px;border:1.5px solid var(--line-f);border-radius:20px;padding:6px 14px;background:#fff;color:var(--t1)}
.tools input{min-width:240px}
.tools input:focus,.tools select:focus{outline:none;border-color:var(--petroleo)}
.tools .cnt{margin-left:auto;font-size:12px;color:var(--t3)}
.btn{font-family:'Montserrat';font-weight:800;font-size:10.5px;letter-spacing:1.1px;text-transform:uppercase;background:var(--surf);color:var(--grafite);border:1.5px solid var(--line-f);border-radius:20px;padding:6px 14px;cursor:pointer}
.btn:hover{border-color:var(--petroleo);color:var(--petroleo)}
.btn.pri{background:var(--verde-d);border-color:var(--verde-d);color:#fff}
.seg{display:inline-flex;border:1.5px solid var(--navy);border-radius:9px;overflow:hidden}
.seg button{font-family:'Montserrat';font-weight:800;font-size:10.5px;letter-spacing:.8px;text-transform:uppercase;border:none;background:#fff;color:var(--navy);padding:6px 12px;cursor:pointer}
.seg button.on{background:var(--navy);color:#fff}

/* home */
.hero{border-radius:16px;overflow:hidden;position:relative;color:#fff;background:linear-gradient(115deg,#0F1A2E 0%,#1B2E4A 50%,#16465A 100%);box-shadow:var(--sombra-f);margin-bottom:16px}
.hero .bgi{position:absolute;right:0;top:0;bottom:0;width:46%;background:url(../img/render-pinna.jpg) center 22%/cover;mask-image:linear-gradient(90deg,transparent 0%,#000 45%);-webkit-mask-image:linear-gradient(90deg,transparent 0%,#000 45%);opacity:.85}
.hero .in{position:relative;padding:28px 30px;max-width:780px}
.hero .kick{font-family:'Montserrat';font-weight:800;font-size:10.5px;letter-spacing:3px;text-transform:uppercase;color:#AECE6A}
.hero h1{font-size:34px;font-weight:800;margin:8px 0 6px;letter-spacing:-.3px}
.hero p{color:#D5E0E8;font-size:14px;line-height:1.55;max-width:620px}
.hero .st{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}
.hero .st span{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.2);border-radius:20px;padding:4px 12px;font-size:12px}
.hero .st b{color:#fff}
.gauge{display:flex;gap:18px;align-items:center;margin-top:18px;flex-wrap:wrap}
.gauge .gv{font-family:'Montserrat';font-weight:800;font-size:46px;line-height:1}
.gauge .gl{font-size:12px;color:#C9D6E0;line-height:1.5}
.pbar{height:10px;background:rgba(255,255,255,.14);border-radius:8px;position:relative;width:min(420px,80vw);margin-top:8px}
.pbar i{position:absolute;left:0;top:0;bottom:0;border-radius:8px;background:linear-gradient(90deg,#5F8F2A,#8CC63F)}
.pbar u{position:absolute;top:-4px;bottom:-4px;width:3px;background:#5CC8EC;border-radius:2px}
.pbar s{position:absolute;top:-4px;bottom:-4px;width:3px;background:#B8C6FF;border-radius:2px}

.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px}
.tile{display:flex;gap:12px;align-items:flex-start;background:var(--surf);border:1px solid var(--line);border-radius:var(--r);padding:14px;text-decoration:none;color:inherit;box-shadow:var(--sombra);transition:.15s;position:relative;overflow:hidden}
.tile::before{content:'';position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--c)}
.tile:hover{transform:translateY(-2px);box-shadow:var(--sombra-f);border-color:var(--c)}
.tile .ic{width:38px;height:38px;border-radius:10px;background:var(--c);color:#fff;display:flex;align-items:center;justify-content:center;font-family:'Montserrat';font-weight:800;font-size:12px;flex:none}
.tile b{font-family:'Montserrat';font-weight:800;font-size:13px;display:block;color:var(--grafite)}
.tile small{display:block;font-size:11px;color:var(--t3);margin-top:2px}
.tile .v{font-family:'Montserrat';font-weight:800;font-size:15px;color:var(--petroleo);margin-top:6px}
.sect{font-family:'Montserrat';font-weight:800;font-size:11px;letter-spacing:2px;text-transform:uppercase;color:var(--t2);margin:20px 0 10px;display:flex;align-items:center;gap:10px}
.sect::after{content:'';flex:1;height:1px;background:var(--line)}

/* gantt */
.gantt{font-size:12px}
.gantt .row{display:grid;grid-template-columns:150px 1fr;align-items:center;border-bottom:1px solid var(--surf3);min-height:54px}
.gantt .lbl{font-family:'Montserrat';font-weight:700;font-size:12px;color:var(--grafite);padding-right:10px}
.gantt .trk{position:relative;height:40px}
.gantt .b{position:absolute;height:13px;border-radius:4px}
.gantt .b.pl{top:6px;background:var(--s-base)}
.gantt .b.rl{top:22px;background:var(--s-real)}
.gantt .b.rl.open{background:repeating-linear-gradient(135deg,var(--s-real) 0 6px,#9CBF6E 6px 10px)}
.gantt .hd{display:grid;grid-template-columns:150px 1fr;font-size:10.5px;color:var(--t3);font-weight:700;text-transform:uppercase;letter-spacing:.6px}
.gantt .months{position:relative;height:22px}
.gantt .months span{position:absolute;top:4px;transform:translateX(-50%)}
.gantt .vl{position:absolute;top:0;bottom:0;width:1px;background:var(--surf3)}
.gantt .today{position:absolute;top:-4px;bottom:-4px;width:2px;background:var(--bad);z-index:2}
.gantt .today::after{content:attr(data-l);position:absolute;top:-16px;left:4px;font-size:10px;color:var(--bad);font-weight:800;white-space:nowrap}
.gwrap{overflow-x:auto}.gwrap .gantt{min-width:760px}

/* lamelas / estacas */
.cells{display:grid;grid-template-columns:repeat(auto-fill,minmax(52px,1fr));gap:6px}
.cell{border-radius:8px;padding:8px 4px;text-align:center;font-family:'Montserrat';font-weight:800;font-size:12px;color:#fff;background:var(--s-real);position:relative;cursor:default}
.cell small{display:block;font-size:8.5px;font-weight:700;opacity:.9;letter-spacing:.4px}
.cell.no{background:var(--surf3);color:var(--t2)}
.cell.est{border-radius:50%;aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:0}

/* galeria */
.gal{display:grid;grid-template-columns:1fr 230px;gap:14px}
@media(max-width:860px){.gal{grid-template-columns:1fr}}
.gal .main{background:#0F1A2E;border-radius:var(--r);overflow:hidden;position:relative;min-height:300px;display:flex;align-items:center;justify-content:center}
.gal .main img{width:100%;max-height:640px;object-fit:contain}
.gal .cap{position:absolute;left:0;right:0;bottom:0;padding:12px 16px;background:linear-gradient(0deg,rgba(15,26,46,.92),transparent);color:#fff;display:flex;justify-content:space-between;align-items:flex-end;gap:10px}
.gal .cap b{font-family:'Montserrat';font-size:15px}
.gal .thumbs{display:flex;flex-direction:column;gap:8px}
@media(max-width:860px){.gal .thumbs{flex-direction:row;overflow-x:auto}}
.gal .th{display:flex;gap:10px;align-items:center;background:var(--surf);border:1.5px solid var(--line);border-radius:10px;padding:6px;cursor:pointer;text-align:left;min-width:200px}
.gal .th.on{border-color:var(--petroleo);box-shadow:0 0 0 2px #CFE4EE}
.gal .th img{width:64px;height:44px;object-fit:cover;border-radius:6px;background:var(--surf3)}
.gal .th b{font-family:'Montserrat';font-size:11.5px;display:block}
.gal .th small{font-size:10.5px;color:var(--t3)}
.gal .err{color:#C9D6E0;text-align:center;padding:40px;font-size:13px;line-height:1.6}

details.anexo{margin-top:14px}
details.anexo summary{cursor:pointer;font-family:'Montserrat';font-weight:700;font-size:12px;color:var(--petroleo)}
details.anexo img{margin-top:10px;border:1px solid var(--line);border-radius:8px}

footer{border-top:1px solid var(--line);background:var(--surf);padding:16px 0;font-size:11.5px;color:var(--t3)}
footer .wrap{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;align-items:center}
footer img{height:28px}

@media print{.navp,.faixa .r,.tools{display:none}body{background:#fff}.card,.kpi{box-shadow:none}}

@media(max-width:720px){.hero .bgi{width:100%;opacity:.22;mask-image:none;-webkit-mask-image:none}.hero .in{padding:22px 18px}.hero h1{font-size:28px}.gauge .gv{font-size:38px}.top::before{display:none}.relg .hh{font-size:18px}.faixa .r{margin-left:0}}
