/* SIGEF-IPH v3 · css/main.css */
@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@300;400;500;600;700&family=DM+Mono:wght@400;500&display=swap');
:root{
  --navy:#0A1628;--navy3:#1C3058;
  --ac:#2E7CF6;--ac2:#1A5FD4;--acl:#EBF2FF;
  --gn:#10B981;--gnl:#D1FAE5;--gn2:#065F46;
  --rd:#EF4444;--rdl:#FEE2E2;--rd2:#991B1B;
  --gd:#F59E0B;--gdl:#FEF3C7;--gd2:#92400E;
  --pu:#7C3AED;--pul:#EDE9FE;--pu2:#4C1D95;
  --cy:#0891B2;--cyl:#CFFAFE;--cy2:#164E63;
  --border:#E5E7EB;--border2:#D1D5DB;--gray-l:#F9FAFB;
  --text:#111827;--tc2:#6B7280;--tc3:#9CA3AF;
  --bg:#EFF4FF;--white:#fff;
  --r:10px;--rl:14px;
  --sh:0 1px 3px rgba(0,0,0,.07),0 1px 2px rgba(0,0,0,.04);
  --shm:0 4px 20px rgba(0,0,0,.10);--shl:0 20px 60px rgba(0,0,0,.2);
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%;font-family:'DM Sans',sans-serif;background:var(--bg);color:var(--text);font-size:14px;line-height:1.5}
@keyframes slideIn{from{transform:translateX(120%)}to{transform:translateX(0)}}
@keyframes fadeUp{from{transform:translateY(14px);opacity:0}to{transform:translateY(0);opacity:1}}

/* ── LOGIN ── */
#login{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--navy) 0%,var(--navy3) 100%);padding:20px}
.lbox{background:#fff;border-radius:var(--rl);padding:38px;width:420px;max-width:100%;box-shadow:var(--shl)}
.l-ico{width:56px;height:56px;background:var(--ac);border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:26px;margin:0 auto 12px}
.l-t{font-size:22px;font-weight:700;text-align:center;color:var(--navy)}
.l-s{font-size:13px;color:var(--tc2);text-align:center;margin-top:4px}
.l-tabs{display:flex;gap:0;margin:22px 0 18px;background:var(--gray-l);border-radius:var(--r);padding:4px}
.lt{flex:1;padding:8px;text-align:center;cursor:pointer;font-size:13px;font-weight:500;color:var(--tc2);border-radius:calc(var(--r) - 4px);transition:all .15s}
.lt.on{background:#fff;color:var(--ac);box-shadow:var(--sh)}
.fg{margin-bottom:14px}
.fg label{display:block;font-size:11px;font-weight:700;color:var(--tc2);text-transform:uppercase;letter-spacing:.05em;margin-bottom:5px}
.fg input{width:100%;border:1px solid var(--border2);border-radius:var(--r);padding:10px 13px;font-size:14px;font-family:'DM Sans',sans-serif;outline:none;transition:border .15s,box-shadow .15s;color:var(--text)}
.fg input:focus{border-color:var(--ac);box-shadow:0 0 0 3px rgba(46,124,246,.1)}
.fg-hint{font-size:11px;color:var(--tc3);margin-top:3px}
.btn-login{width:100%;padding:11px;background:var(--ac);color:#fff;border:none;border-radius:var(--r);font-size:14px;font-weight:600;font-family:'DM Sans',sans-serif;cursor:pointer;margin-top:4px}
.btn-login:hover{background:var(--ac2)}
#lerr{background:var(--rdl);color:var(--rd2);border:1px solid #FCA5A5;border-radius:var(--r);padding:9px 13px;font-size:13px;margin-bottom:14px;display:none}
.l-ft{text-align:center;margin-top:18px;font-size:11px;color:var(--tc3)}
.l-copy{text-align:center;margin-top:14px;padding-top:12px;border-top:1px solid var(--border);font-size:11px;color:var(--tc3)}
.l-copy strong{color:var(--tc2)}
/* Botão matrícula na topbar: oculto em mobile */
@media(max-width:768px){#tb-btn-mat{display:none!important}}

/* ── APP ── */
#app{display:none;height:100vh;flex-direction:column}
.app-wr{display:flex;flex:1;overflow:hidden}
.sidebar{width:256px;flex-shrink:0;background:var(--navy);display:flex;flex-direction:column;overflow:hidden;transition:width .18s}
.sidebar.col{width:0}
.sb-logo{padding:16px 17px 13px;display:flex;align-items:center;gap:10px;border-bottom:1px solid rgba(255,255,255,.08);flex-shrink:0}
.sb-ic{width:34px;height:34px;background:var(--ac);border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:17px;flex-shrink:0}
.sb-nm2{font-size:13px;font-weight:700;color:#fff}.sb-ss{font-size:10px;color:rgba(255,255,255,.45)}.sb-inst{font-size:9px;color:rgba(255,255,255,.3)}
.sb-user{padding:10px 17px;border-bottom:1px solid rgba(255,255,255,.08);display:flex;align-items:center;gap:9px;flex-shrink:0}
.sb-av{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;flex-shrink:0}
.sb-nm{font-size:13px;color:#fff;font-weight:600}.sb-rl{font-size:10px;color:rgba(255,255,255,.45);text-transform:capitalize}
#nav{flex:1;overflow-y:auto;padding:5px 0;min-width:248px}
#nav::-webkit-scrollbar{width:2px}#nav::-webkit-scrollbar-thumb{background:rgba(255,255,255,.1);border-radius:2px}
.ns{padding:12px 17px 4px;font-size:9px;font-weight:700;color:rgba(255,255,255,.3);letter-spacing:.09em;text-transform:uppercase;white-space:nowrap}
.ni{display:flex;align-items:center;gap:9px;padding:9px 17px;cursor:pointer;font-size:13px;color:rgba(255,255,255,.6);border-left:2px solid transparent;transition:all .1s;white-space:nowrap}
.ni:hover{background:rgba(255,255,255,.07);color:rgba(255,255,255,.95)}
.ni.on{background:rgba(46,124,246,.2);color:#fff;border-left-color:var(--ac);font-weight:600}
.ni-ic{font-size:15px;width:17px;text-align:center;flex-shrink:0}
.sb-ft{padding:10px 17px;border-top:1px solid rgba(255,255,255,.08);text-align:center;font-size:9px;color:rgba(255,255,255,.3);flex-shrink:0}
/* avatar por papel */
.av-gestor{background:#7C3AED;color:#fff}.av-funcionario{background:#2E7CF6;color:#fff}.av-formando{background:#10B981;color:#fff}

/* ── TOPBAR ── */
.topbar{background:#fff;border-bottom:1px solid var(--border);padding:0 22px;height:58px;display:flex;align-items:center;justify-content:space-between;flex-shrink:0;box-shadow:var(--sh)}
.tb-l{display:flex;align-items:center;gap:12px}
.tb-menu{background:transparent;border:none;cursor:pointer;font-size:19px;color:var(--tc2);padding:5px 7px;border-radius:6px}
.tb-menu:hover{background:var(--gray-l)}
#pg-title{font-size:17px;font-weight:700;letter-spacing:-.4px}
#pg-sub{font-size:11px;color:var(--tc2);margin-top:1px}
.tb-r{display:flex;gap:8px;align-items:center}
.tb-srch{position:relative}.tb-srch input{padding-left:32px;width:180px;font-size:13px}.tb-srch-ic{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--tc3);font-size:14px;pointer-events:none}
.tb-usr{display:flex;align-items:center;gap:8px;padding:6px 10px;border-radius:var(--r);cursor:pointer;transition:background .12s}
.tb-usr:hover{background:var(--gray-l)}
.tb-av{width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700}
#tb-nm{font-size:13px;font-weight:600}#tb-rl{font-size:11px;color:var(--tc2);text-transform:capitalize}
/* Sino de notificações na topbar */
.tb-bell{position:relative;cursor:pointer;width:36px;height:36px;border-radius:var(--r);display:flex;align-items:center;justify-content:center;font-size:18px;transition:background .12s;border:1px solid var(--border)}
.tb-bell:hover{background:var(--gray-l)}
.tb-bell-badge{position:absolute;top:-4px;right:-4px;background:var(--rd);color:#fff;font-size:9px;font-weight:700;padding:1px 5px;border-radius:10px;min-width:16px;text-align:center;display:none}
/* Dropdown de notificações */
.notif-dropdown{position:absolute;top:58px;right:16px;width:380px;background:#fff;border:1px solid var(--border);border-radius:var(--rl);box-shadow:var(--shm);z-index:500;display:none;animation:fadeUp .18s ease}
.notif-dropdown.open{display:block}
.notif-drop-hdr{padding:12px 16px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}
.notif-drop-title{font-size:13px;font-weight:700}
.notif-drop-body{max-height:340px;overflow-y:auto;padding:8px}
.notif-drop-ft{padding:10px 16px;border-top:1px solid var(--border);text-align:center}
.notif-item{display:flex;gap:10px;padding:10px;border-radius:var(--r);margin-bottom:4px;cursor:pointer;transition:background .1s;border-left:3px solid transparent}
.notif-item:hover{background:var(--gray-l)}
.notif-item.unread{background:#FAFBFF}
.notif-item.danger{border-left-color:var(--rd)}
.notif-item.warning{border-left-color:var(--gd)}
.notif-item.info{border-left-color:var(--ac)}
.notif-item.success{border-left-color:var(--gn)}

/* ── MAIN ── */
.main-a{flex:1;display:flex;flex-direction:column;overflow:hidden}
.content{flex:1;overflow-y:auto;padding:20px 22px}

/* ── CONTROLS ── */
input,select,textarea{border:1px solid var(--border2);border-radius:var(--r);padding:7px 11px;font-size:13px;font-family:'DM Sans',sans-serif;background:#fff;color:var(--text);outline:none;transition:border .15s,box-shadow .15s;width:100%}
input:focus,select:focus,textarea:focus{border-color:var(--ac);box-shadow:0 0 0 3px rgba(46,124,246,.1)}
input[type=checkbox],input[type=radio]{width:auto;cursor:pointer}
.btn{border:1px solid var(--border2);border-radius:var(--r);padding:7px 15px;font-size:13px;font-family:'DM Sans',sans-serif;font-weight:500;background:#fff;color:var(--text);cursor:pointer;transition:all .13s;display:inline-flex;align-items:center;gap:5px;white-space:nowrap}
.btn:hover{background:var(--gray-l)}
.bp{background:var(--ac);color:#fff;border-color:var(--ac)}.bp:hover{background:var(--ac2)}
.bs{background:var(--gn);color:#fff;border-color:var(--gn)}.bs:hover{background:#0d9e6e}
.brd{background:var(--rd);color:#fff;border-color:var(--rd)}.brd:hover{background:#d93030}
.bw{background:var(--gd);color:#000;border-color:var(--gd)}
.bo{background:transparent;border-color:var(--ac);color:var(--ac)}.bo:hover{background:var(--acl)}
.btn-xs{border:1px solid var(--border2);border-radius:7px;padding:4px 9px;font-size:11px;font-family:'DM Sans',sans-serif;font-weight:500;background:#fff;color:var(--text);cursor:pointer;transition:all .1s;display:inline-flex;align-items:center;gap:4px;white-space:nowrap}
.btn-xs:hover{background:var(--gray-l)}
.btn-xs.bp{background:var(--ac);color:#fff;border-color:var(--ac)}
.btn-xs.bs{background:var(--gn);color:#fff;border-color:var(--gn)}
.btn-xs.brd{background:var(--rd);color:#fff;border-color:var(--rd)}
.btn-xs.bo{background:transparent;border-color:var(--ac);color:var(--ac)}
.btn-xs.bw{background:var(--gd);color:#000;border-color:var(--gd)}
.srch-w{position:relative}.srch-w input{padding-left:30px}.srch-ic{position:absolute;left:9px;top:50%;transform:translateY(-50%);color:var(--tc3);font-size:13px;pointer-events:none}

/* ── CARDS ── */
.card{background:#fff;border:1px solid var(--border);border-radius:var(--rl);padding:16px;box-shadow:var(--sh);margin-bottom:14px}
.ch{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;flex-wrap:wrap;gap:6px}
.ct{font-size:10px;font-weight:700;color:var(--tc2);text-transform:uppercase;letter-spacing:.06em}
.g5{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-bottom:14px}
.g4{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:14px}
.g3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:14px}
.g2{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:14px}
.fg2{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:10px}
.fg3{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:10px}
.fgrp{display:flex;flex-direction:column;gap:4px}
.flbl{font-size:10px;font-weight:700;color:var(--tc2);text-transform:uppercase;letter-spacing:.05em}
.fsec{font-size:10px;font-weight:700;color:var(--tc2);text-transform:uppercase;letter-spacing:.05em;padding-bottom:7px;border-bottom:1px solid var(--border);margin:8px 0 10px}

/* ── METRICS ── */
.met{background:#fff;border:1px solid var(--border);border-radius:var(--rl);padding:16px 18px;box-shadow:var(--sh);position:relative;overflow:hidden}
.met::before{content:'';position:absolute;top:0;left:0;width:4px;height:100%}
.met.bl::before{background:var(--ac)}.met.gn::before{background:var(--gn)}.met.gd::before{background:var(--gd)}.met.rd::before{background:var(--rd)}.met.pu::before{background:var(--pu)}
.ml{font-size:11px;font-weight:700;color:var(--tc2);text-transform:uppercase;letter-spacing:.05em;margin-bottom:6px}
.mv{font-size:28px;font-weight:700;letter-spacing:-1px;line-height:1}
.ms{font-size:11px;color:var(--tc2);margin-top:5px}

/* ── TABLES ── */
.tw{overflow-x:auto}
table{width:100%;border-collapse:collapse;font-size:14px}
thead th{text-align:left;padding:10px 12px;font-size:11px;font-weight:700;color:var(--tc2);background:var(--gray-l);border-bottom:1px solid var(--border);text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}
tbody td{padding:11px 12px;border-bottom:1px solid var(--border);font-size:13px}
tbody tr:last-child td{border-bottom:none}
tbody tr:hover td{background:#F5F8FF}
.tr-tot td{font-weight:700;background:var(--gray-l)}

/* ── BADGES ── */
.badge{display:inline-flex;align-items:center;gap:3px;padding:2px 8px;border-radius:20px;font-size:11px;font-weight:700;white-space:nowrap}
.badge::before{content:'';width:4px;height:4px;border-radius:50%;flex-shrink:0}
.badge-g{background:var(--gnl);color:var(--gn2)}.badge-g::before{background:var(--gn)}
.badge-r{background:var(--rdl);color:var(--rd2)}.badge-r::before{background:var(--rd)}
.badge-y{background:var(--gdl);color:var(--gd2)}.badge-y::before{background:var(--gd)}
.badge-b{background:var(--acl);color:#1E40AF}.badge-b::before{background:var(--ac)}
.badge-k{background:#F3F4F6;color:#374151}.badge-k::before{background:#9CA3AF}
.badge-p{background:var(--pul);color:var(--pu2)}.badge-p::before{background:var(--pu)}
.badge-c{background:var(--cyl);color:var(--cy2)}.badge-c::before{background:var(--cy)}

/* ── TABS ── */
.tabs{display:flex;border-bottom:1px solid var(--border);margin-bottom:16px;overflow-x:auto}
.tab{padding:9px 16px;font-size:13px;font-weight:500;cursor:pointer;color:var(--tc2);border-bottom:2px solid transparent;margin-bottom:-1px;transition:all .13s;white-space:nowrap}
.tab.on{color:var(--ac);border-bottom-color:var(--ac)}

/* ── MODAL ── */
.mo{display:none;position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:1000;align-items:center;justify-content:center;backdrop-filter:blur(2px);padding:18px}
.mo.open{display:flex}
.modal{background:#fff;border-radius:var(--rl);padding:26px;width:640px;max-width:100%;max-height:90vh;overflow-y:auto;box-shadow:var(--shl);animation:fadeUp .2s ease;position:relative}
.modal.sm{width:460px}.modal.lg{width:780px}
.mh{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px;padding-bottom:13px;border-bottom:1px solid var(--border)}
.mt2{font-size:16px;font-weight:700;letter-spacing:-.3px}
.mc{width:28px;height:28px;border-radius:50%;border:1px solid var(--border);background:transparent;cursor:pointer;font-size:15px;display:flex;align-items:center;justify-content:center;color:var(--tc2)}
.mc:hover{background:var(--gray-l)}

/* ── ALERTS ── */
.al{border-radius:var(--r);padding:9px 13px;font-size:13px;display:flex;align-items:flex-start;gap:9px;margin-bottom:12px;line-height:1.5}
.al-w{background:var(--gdl);color:var(--gd2);border:1px solid #FCD34D}
.al-i{background:var(--acl);color:#1E40AF;border:1px solid #93C5FD}
.al-e{background:var(--rdl);color:var(--rd2);border:1px solid #FCA5A5}
.al-s{background:var(--gnl);color:var(--gn2);border:1px solid #6EE7B7}

/* ── AVATAR SIZES ── */
.av-s{width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;flex-shrink:0}
.av-m{width:38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;flex-shrink:0}
.av-l{width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:700;flex-shrink:0}
.av-b{background:var(--acl);color:#1E40AF}
.av-g{background:var(--gnl);color:var(--gn2)}
.av-p{background:var(--pul);color:var(--pu2)}

/* ── REFERÊNCIAS ── */
.ref-card{background:var(--navy);border-radius:var(--rl);padding:20px;color:#fff;position:relative;overflow:hidden}
.ref-card::after{content:'';position:absolute;top:-30px;right:-30px;width:110px;height:110px;border-radius:50%;background:rgba(255,255,255,.04)}
.ref-num{font-family:'DM Mono',monospace;font-size:24px;font-weight:500;letter-spacing:4px;margin:10px 0 7px;position:relative;z-index:1}
.ref-lbl{font-size:9px;color:rgba(255,255,255,.45);text-transform:uppercase;letter-spacing:.07em;position:relative;z-index:1}
.ref-amt{font-size:18px;font-weight:700;color:var(--gd)}
.ref-exp{font-size:10px;color:rgba(255,255,255,.4);margin-top:7px;position:relative;z-index:1}
.ref-item{padding:8px 12px;cursor:pointer;display:flex;align-items:center;gap:8px;border-bottom:1px solid var(--border);font-size:12px;transition:background .1s}
.ref-item:hover{background:#EBF2FF}

/* ── STEPS ── */
.steps{display:flex;align-items:center;margin-bottom:18px}
.step{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:500;color:var(--tc3)}
.step.on{color:var(--ac)}.step.dn{color:var(--gn)}
.sn{width:22px;height:22px;border-radius:50%;border:2px solid currentColor;display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:700;flex-shrink:0}
.sl{flex:1;height:1px;background:var(--border);margin:0 6px}

/* ── FATURA PRINT ── */
.fat-hdr{background:var(--navy);color:#fff;padding:18px 22px;border-radius:var(--rl) var(--rl) 0 0}
.fat-bdy{border:1px solid var(--border);border-top:none;border-radius:0 0 var(--rl) var(--rl);padding:18px 22px}

/* ── UTIL ── */
.hidden{display:none!important}
.page.hidden{display:none!important}
.mono{font-family:'DM Mono',monospace}
.s10{font-size:10px!important}.s11{font-size:11px!important}.s12{font-size:12px!important}.s13{font-size:13px!important}
.fw{font-weight:600}.fw7{font-weight:700}
.ac{color:var(--ac)}.gn{color:var(--gn)}.rd{color:var(--rd)}.gd{color:var(--gd)}
.tc2{color:var(--tc2)}.tc3{color:var(--tc3)}
.flex-r{display:flex;align-items:center;gap:8px}
.chip{display:inline-block;padding:2px 7px;border-radius:6px;font-size:11px;font-weight:600;background:var(--acl);color:var(--ac)}
.nowrap{white-space:nowrap}
.divider{height:1px;background:var(--border);margin:12px 0}
.empty{text-align:center;color:var(--tc3);padding:18px!important;font-size:13px}
/* ═══════════════════════════════════
   IMPRESSÃO — cabeçalho em todos
   os relatórios, ocultar formulários
═══════════════════════════════════ */
@media print{
  /* Ocultar UI */
  .sidebar,.topbar,.no-print,button,.btn,.btn-xs,.mo,
  .ch button,.srch-w,.tb-bell,.notif-dropdown,#tb-btn-mat,
  .al,.steps,.sl,.controlo,#fin-resumo-ctrl{display:none!important}

  /* Layout */
  *{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}
  html,body{margin:0!important;padding:0!important;background:#fff!important}
  .app-wr{display:block!important;margin:0!important;padding:0!important}
  .sidebar{display:none!important}
  .main-a{overflow:visible!important;display:block!important;padding:0!important;margin:0!important}
  .content{padding:0!important;overflow:visible!important;margin:0!important}
  .page.hidden{display:none!important}
  .page:not(.hidden){display:block!important;margin:0!important;padding:0!important}
  .print-header{display:block!important;margin-bottom:12px!important}

  /* Cards */
  .card{box-shadow:none!important;border:1px solid #ddd!important;border-radius:4px!important;margin-bottom:8px!important;break-inside:avoid;page-break-inside:avoid}
  .g2,.g3,.g4,.g5{display:block!important}
  .g2>.card,.g3>.card,.g4>.card,.g5>.card{width:100%!important;margin-bottom:8px!important}

  /* Tabelas */
  table{font-size:9px!important;width:100%!important}
  thead th{font-size:8px!important;padding:4px 3px!important;white-space:nowrap}
  tbody td{padding:3px!important;font-size:9px!important}
  .tw{overflow:visible!important;max-height:none!important}

  /* Métricas */
  .met{padding:8px!important;margin-bottom:6px!important}
  .mv{font-size:18px!important}

  /* Inputs nas tabelas (folha de salários) */
  input[type=number]{border:none!important;background:transparent!important;font-size:9px!important;width:auto!important;padding:0!important;text-align:right!important}

  @page{size:A4;margin:1cm}
}

/* Dashboard por papel */
body.papel-pedagogico .dash-fin-only,
body.papel-cadastro   .dash-fin-only { display:none!important }
body.papel-pedagogico #dash-cards-financeiro .met:not(.dash-fin-only) { /* só formandos activos */ }
