/* ==========================================================================
   KPInet — tema compartilhado
   - Fonte Inter vendorizada localmente (../fonts/inter)
   - Variáveis :root globais (disponíveis para todas as telas)
   - Visual da landing escopado em body.kp-landing (não afeta os dashboards)
   ========================================================================== */

/* ---------- FONTE: Inter (local) ---------- */
/* Pesos 400/500/600/700/800 — subconjuntos latin e latin-ext */

/* 400 */
@font-face{
  font-family:'Inter'; font-style:normal; font-weight:400; font-display:swap;
  src:url('../fonts/inter/inter-latin-400-normal.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:'Inter'; font-style:normal; font-weight:400; font-display:swap;
  src:url('../fonts/inter/inter-latin-ext-400-normal.woff2') format('woff2');
  unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
/* 500 */
@font-face{
  font-family:'Inter'; font-style:normal; font-weight:500; font-display:swap;
  src:url('../fonts/inter/inter-latin-500-normal.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:'Inter'; font-style:normal; font-weight:500; font-display:swap;
  src:url('../fonts/inter/inter-latin-ext-500-normal.woff2') format('woff2');
  unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
/* 600 */
@font-face{
  font-family:'Inter'; font-style:normal; font-weight:600; font-display:swap;
  src:url('../fonts/inter/inter-latin-600-normal.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:'Inter'; font-style:normal; font-weight:600; font-display:swap;
  src:url('../fonts/inter/inter-latin-ext-600-normal.woff2') format('woff2');
  unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
/* 700 */
@font-face{
  font-family:'Inter'; font-style:normal; font-weight:700; font-display:swap;
  src:url('../fonts/inter/inter-latin-700-normal.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:'Inter'; font-style:normal; font-weight:700; font-display:swap;
  src:url('../fonts/inter/inter-latin-ext-700-normal.woff2') format('woff2');
  unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
/* 800 */
@font-face{
  font-family:'Inter'; font-style:normal; font-weight:800; font-display:swap;
  src:url('../fonts/inter/inter-latin-800-normal.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:'Inter'; font-style:normal; font-weight:800; font-display:swap;
  src:url('../fonts/inter/inter-latin-ext-800-normal.woff2') format('woff2');
  unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}

/* ---------- VARIÁVEIS (globais) ---------- */
:root{
  --kp-navy:        #0d2240;
  --kp-navy-2:       #133a6b;
  --kp-accent:       #14b8a6;
  --kp-accent-2:     #0ea5b7;
  --kp-ink:          #1f2d3d;
  --kp-muted:        #6b7c93;
  --kp-bg:           #f5f8fc;
  --kp-card-shadow:  0 18px 45px -20px rgba(13,34,64,.35);
}

/* ==========================================================================
   LANDING — escopado em body.kp-landing
   ========================================================================== */
body.kp-landing{
  font-family:'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
  color:var(--kp-ink);
  background:var(--kp-bg);
  overflow-x:hidden;
  scroll-behavior:smooth;
}

/* ---------- NAVBAR ---------- */
body.kp-landing .kp-navbar{
  background:rgba(13,34,64,.85);
  backdrop-filter:saturate(160%) blur(10px);
  -webkit-backdrop-filter:saturate(160%) blur(10px);
  transition:background .3s ease, box-shadow .3s ease, padding .3s ease;
  padding:.85rem 0;
}
body.kp-landing .kp-navbar.kp-scrolled{
  background:rgba(13,34,64,.97);
  box-shadow:0 10px 30px -12px rgba(0,0,0,.45);
  padding:.55rem 0;
}
body.kp-landing .kp-brand{
  color:#fff!important;
  font-weight:700;
  letter-spacing:.3px;
  display:flex;
  align-items:center;
  gap:.55rem;
}
body.kp-landing .kp-brand .fa-cog{ color:var(--kp-accent); }
body.kp-landing .kp-brand .kp-logo{
  height:60px;
  width:auto;
  display:block;
  border-radius:12px;
  transition:height .3s ease;
}
body.kp-landing .kp-navbar.kp-scrolled .kp-logo{ height:46px; }
body.kp-landing .kp-btn-login{
  border:1px solid rgba(255,255,255,.55);
  color:#fff;
  font-weight:600;
  border-radius:50px;
  padding:.5rem 1.5rem;
  transition:all .25s ease;
}
body.kp-landing .kp-btn-login:hover{
  background:var(--kp-accent);
  border-color:var(--kp-accent);
  color:#06262b;
  transform:translateY(-1px);
}

/* ---------- HERO ---------- */
body.kp-landing .kp-hero{
  position:relative;
  background:linear-gradient(135deg, var(--kp-navy) 0%, var(--kp-navy-2) 60%, #15518f 100%);
  color:#eaf2ff;
  padding:9rem 0 7rem;
  overflow:hidden;
}
body.kp-landing .kp-hero::before,
body.kp-landing .kp-hero::after{
  content:"";
  position:absolute;
  border-radius:50%;
  filter:blur(10px);
  opacity:.25;
}
body.kp-landing .kp-hero::before{
  width:420px;height:420px;
  background:radial-gradient(circle, var(--kp-accent), transparent 60%);
  top:-120px;right:-80px;
}
body.kp-landing .kp-hero::after{
  width:340px;height:340px;
  background:radial-gradient(circle, #3b82f6, transparent 60%);
  bottom:-140px;left:-90px;
}
body.kp-landing .kp-hero .container{ position:relative; z-index:2; }
body.kp-landing .kp-badge{
  display:inline-flex;align-items:center;gap:.5rem;
  background:rgba(20,184,166,.15);
  border:1px solid rgba(20,184,166,.4);
  color:#7ff0e0;
  font-size:.8rem;font-weight:600;letter-spacing:.5px;
  padding:.35rem .9rem;border-radius:50px;
  text-transform:uppercase;
}
body.kp-landing .kp-hero h1{
  font-weight:800;
  font-size:clamp(2.1rem, 4vw, 3.4rem);
  line-height:1.1;
  margin:1.2rem 0 1rem;
}
body.kp-landing .kp-hero h1 .kp-grad{
  background:linear-gradient(90deg, var(--kp-accent), #7dd3fc);
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;
}
body.kp-landing .kp-hero p.lead{ color:#b9c9e0; max-width:540px; font-size:1.12rem; }
body.kp-landing .kp-cta{
  background:linear-gradient(90deg, var(--kp-accent), var(--kp-accent-2));
  border:none;color:#04282c;font-weight:700;
  border-radius:50px;padding:.8rem 2.1rem;font-size:1.05rem;
  box-shadow:0 12px 28px -10px rgba(20,184,166,.7);
  transition:transform .25s ease, box-shadow .25s ease;
}
body.kp-landing .kp-cta:hover{ transform:translateY(-2px); box-shadow:0 16px 34px -10px rgba(20,184,166,.85); color:#04282c; }
/* mesmo botão (CTA verde) em proporção de navbar */
body.kp-landing .kp-cta.kp-cta-sm{ padding:.5rem 1.5rem; font-size:.95rem; }

/* mockup */
body.kp-landing .kp-mockup{
  background:#0b1c33;
  border:1px solid rgba(255,255,255,.12);
  border-radius:14px;
  box-shadow:0 40px 80px -30px rgba(0,0,0,.65);
  overflow:hidden;
  transform:perspective(1400px) rotateY(-9deg) rotateX(3deg);
  transition:transform .5s ease;
}
body.kp-landing .kp-mockup:hover{ transform:perspective(1400px) rotateY(0) rotateX(0); }
body.kp-landing .kp-mockup-bar{
  background:#13294a;display:flex;gap:.4rem;padding:.6rem .8rem;
  border-bottom:1px solid rgba(255,255,255,.08);
}
body.kp-landing .kp-dot{ width:11px;height:11px;border-radius:50%; }
body.kp-landing .kp-mockup img{ width:100%;display:block; }

body.kp-landing .kp-wave{ display:block; line-height:0; margin-top:-1px; }

/* ---------- FEATURES ---------- */
body.kp-landing .kp-section-title{ font-weight:800; color:var(--kp-navy); }
body.kp-landing .kp-section-sub{ color:var(--kp-muted); max-width:620px; margin:0 auto; }

body.kp-landing .kp-card{
  background:#fff;border:1px solid #e7eef7;border-radius:16px;
  padding:2rem 1.6rem;height:100%;
  transition:transform .3s ease, box-shadow .3s ease, border-color .3s ease;
}
body.kp-landing .kp-card:hover{
  transform:translateY(-8px);
  box-shadow:var(--kp-card-shadow);
  border-color:transparent;
}
body.kp-landing .kp-ico{
  width:58px;height:58px;border-radius:14px;
  display:flex;align-items:center;justify-content:center;
  font-size:1.5rem;color:#fff;margin-bottom:1.1rem;
}
body.kp-landing .kp-ico-ctb{ background:linear-gradient(135deg,#6366f1,#8b5cf6); }
body.kp-landing .kp-ico-fin{ background:linear-gradient(135deg,#14b8a6,#0ea5b7); }
body.kp-landing .kp-ico-cir{ background:linear-gradient(135deg,#f59e0b,#ef6c2b); }
body.kp-landing .kp-ico-sec{ background:linear-gradient(135deg,#3b82f6,#1d4ed8); }
body.kp-landing .kp-card h5{ font-weight:700;color:var(--kp-navy); }
body.kp-landing .kp-card p{ color:var(--kp-muted);font-size:.95rem;margin-bottom:0; }
body.kp-landing .kp-soon{
  font-size:.68rem;font-weight:700;letter-spacing:.5px;
  background:#eef2f7;color:#94a3b8;padding:.15rem .5rem;border-radius:6px;
  text-transform:uppercase;margin-left:.4rem;vertical-align:middle;
}

/* ---------- STATS ---------- */
body.kp-landing .kp-stats{ background:var(--kp-navy); color:#fff; }
body.kp-landing .kp-stat-num{
  font-weight:800;font-size:2.2rem;
  background:linear-gradient(90deg,var(--kp-accent),#7dd3fc);
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
}
body.kp-landing .kp-stat-lbl{ color:#9fb3d1;font-size:.9rem; }

/* ---------- FOOTER ---------- */
body.kp-landing .kp-footer{ background:#08182e;color:#8aa0bd;padding:2.2rem 0; }
body.kp-landing .kp-footer a{ color:#cdddf0;text-decoration:none; }
body.kp-landing .kp-footer a:hover{ color:var(--kp-accent); }

body.kp-landing .kp-fade{ opacity:0;transform:translateY(24px);transition:opacity .7s ease, transform .7s ease; }
body.kp-landing .kp-fade.kp-in{ opacity:1;transform:none; }

/* ---------- LANDING: logo do rodapé ---------- */
body.kp-landing .kp-footer-logo{ height:40px; width:auto; display:inline-block; border-radius:8px; }
body.kp-landing .kp-footer-partner{ display:inline-flex; align-items:center; gap:24px; line-height:0; }
body.kp-landing .kp-footer-partner img{ height:120px; width:auto; }
body.kp-landing .kp-footer-partner img[alt="Kinino"]{ height:80px; }

/* ==========================================================================
   SIDEBAR — menu lateral das telas autenticadas
   O include header_menu.php adiciona a classe .kp-has-sidebar ao <body>,
   que desloca o conteúdo para a direita. Some onde a sidebar não existe.
   ========================================================================== */
:root{ --kp-sb-w:252px; --kp-sb-mini:72px; }

body.kp-has-sidebar{ padding-left:var(--kp-sb-w); }

.kp-sidebar{
  position:fixed; top:0; left:0; bottom:0; width:var(--kp-sb-w);
  background:linear-gradient(180deg, var(--kp-navy) 0%, #081627 100%);
  display:flex; flex-direction:column;
  z-index:1031; overflow-y:auto; overflow-x:hidden;
  box-shadow:4px 0 24px -12px rgba(0,0,0,.55);
  transition:width .22s ease;
}
.kp-sidebar-brand{
  padding:1.1rem 1rem; text-align:center;
  border-bottom:1px solid rgba(255,255,255,.08);
}
.kp-sidebar-logo{ height:46px; width:auto; border-radius:8px; }
.kp-brand-mini{
  display:none; width:42px; height:42px; border-radius:11px;
  align-items:center; justify-content:center;
  background:linear-gradient(135deg, var(--kp-accent), var(--kp-accent-2));
  color:#06262b; font-size:1.05rem;
}
.kp-sidebar-nav{ padding:.7rem .55rem; flex:1 1 auto; }

.kp-nav-div{ height:1px; background:rgba(255,255,255,.08); margin:.6rem .8rem; }

.kp-nav-link{
  display:flex; align-items:center; gap:.65rem;
  color:#cdddf0; text-decoration:none;
  padding:.58rem .8rem; border-radius:10px; font-weight:500; font-size:.95rem;
  transition:background .2s ease, color .2s ease;
}
.kp-nav-link i{ width:18px; text-align:center; }
.kp-nav-link:hover{ background:rgba(255,255,255,.08); color:#fff; text-decoration:none; }
.kp-nav-link.kp-sub{ font-weight:400; font-size:.84rem; color:#a9bdd8; padding-left:1.1rem; }
.kp-nav-link.kp-sub:hover{ color:#fff; }
.kp-nav-link.kp-group{ font-weight:600; font-size:.98rem; color:#eaf2ff; cursor:default; margin-top:.5rem; }
.kp-nav-link.kp-group:hover{ background:none; color:#eaf2ff; }
.kp-nav-link.kp-group i{ color:var(--kp-accent); }
.kp-nav-link.is-disabled{ color:#607595; cursor:default; }
.kp-nav-link.is-disabled:hover{ background:none; color:#607595; }
.kp-nav-link.is-active{
  background:rgba(20,184,166,.16);
  color:#fff; font-weight:600;
  box-shadow:inset 3px 0 0 var(--kp-accent);
}
.kp-nav-link.is-active:hover{ background:rgba(20,184,166,.22); color:#fff; }

/* Barra superior + off-canvas (mobile) */
.kp-topbar{
  position:fixed; top:0; left:0; right:0; height:56px; z-index:1029;
  background:var(--kp-navy);
  display:none; align-items:center; gap:.8rem; padding:0 1rem;
  box-shadow:0 4px 16px -8px rgba(0,0,0,.5);
}
.kp-topbar-logo{ height:34px; width:auto; border-radius:6px; }
.kp-burger{
  background:none; border:1px solid rgba(255,255,255,.35);
  color:#fff; border-radius:8px; padding:.25rem .55rem; font-size:1.1rem; line-height:1;
}
.kp-sb-overlay{ display:none; position:fixed; top:0; left:0; right:0; bottom:0; background:rgba(5,12,24,.55); z-index:1030; }

/* Desktop: recolhe automaticamente (só ícones) e expande ao passar o mouse */
@media (min-width:992px){
  body.kp-has-sidebar{ padding-left:var(--kp-sb-mini); }
  .kp-sidebar{ width:var(--kp-sb-mini); }
  .kp-sidebar:hover{ width:var(--kp-sb-w); box-shadow:10px 0 40px -12px rgba(0,0,0,.6); }

  .kp-sidebar:not(:hover) .kp-nav-link{ justify-content:center; padding-left:.6rem; padding-right:.6rem; }
  .kp-sidebar:not(:hover) .kp-nav-link span{ display:none; }
  .kp-sidebar:not(:hover) .kp-nav-link.kp-group{ margin-top:0; }
  .kp-sidebar:not(:hover) .kp-nav-div{ margin-left:.5rem; margin-right:.5rem; }

  .kp-sidebar:not(:hover) .kp-sidebar-brand{ padding-left:.4rem; padding-right:.4rem; }
  .kp-sidebar:not(:hover) .kp-brand-full{ display:none; }
  .kp-sidebar:not(:hover) .kp-brand-mini{ display:flex; margin:0 auto; }
}

@media (max-width:991.98px){
  body.kp-has-sidebar{ padding-left:0; padding-top:56px; }
  .kp-topbar{ display:flex; }
  .kp-sidebar{ transform:translateX(-100%); transition:transform .28s ease; }
  body.kp-sb-open .kp-sidebar{ transform:translateX(0); }
  body.kp-sb-open .kp-sb-overlay{ display:block; }
}

/* ==========================================================================
   LOGIN (body.kp-login)
   ========================================================================== */
body.kp-login{
  font-family:'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
  min-height:100vh;
  display:flex; align-items:center; justify-content:center;
  background:linear-gradient(135deg, var(--kp-navy) 0%, var(--kp-navy-2) 60%, #15518f 100%);
  padding:1.5rem;
}
.kp-login-card{
  width:100%; max-width:390px;
  background:#fff; border-radius:18px; overflow:hidden;
  box-shadow:0 30px 70px -25px rgba(0,0,0,.55);
}
.kp-login-head{
  background:linear-gradient(135deg, var(--kp-navy), var(--kp-navy-2));
  padding:1.7rem 1.5rem; text-align:center;
}
.kp-login-head img{ height:52px; width:auto; border-radius:10px; }
.kp-login-body{ padding:1.8rem 1.7rem 2rem; }
.kp-login-body .form-control{
  border-radius:10px; padding:.72rem .9rem;
  border:1px solid #dbe3ee; background:#f8fafd;
}
.kp-login-body .form-control:focus{
  border-color:var(--kp-accent);
  box-shadow:0 0 0 .2rem rgba(20,184,166,.18);
  background:#fff;
}
.kp-login-submit{
  width:100%;
  background:linear-gradient(90deg, var(--kp-accent), var(--kp-accent-2));
  border:none; color:#04282c; font-weight:700;
  border-radius:10px; padding:.72rem 1rem; font-size:1.02rem;
  box-shadow:0 12px 28px -12px rgba(20,184,166,.7);
  transition:transform .2s ease, box-shadow .2s ease;
}
.kp-login-submit:hover{
  transform:translateY(-2px); color:#04282c;
  box-shadow:0 16px 34px -12px rgba(20,184,166,.85);
}
.kp-login-foot{ color:#b9c9e0; font-size:.8rem; text-align:center; margin-top:1.2rem; }

/* ==========================================================================
   APP / HOME (body.kp-app)
   ========================================================================== */
body.kp-app{
  font-family:'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
  background:#e7edf6;
  color:var(--kp-ink);
  min-height:100vh;
}
.kp-app-main{ padding-top:32px; padding-bottom:48px; }
/* Home: saudação + cards de acesso rápido */
.kp-app-greet{ margin-bottom:2rem; }
.kp-app-greet h2{ color:var(--kp-navy); font-weight:800; margin-bottom:.25rem; }
.kp-app-greet p{ color:var(--kp-muted); margin-bottom:0; }
.kp-home-card{
  display:block; height:100%;
  background:#fff; border:1px solid #dde6f2; border-radius:16px;
  padding:1.8rem 1.5rem; text-decoration:none; color:inherit;
  box-shadow:0 8px 24px -14px rgba(13,34,64,.28);
  transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.kp-home-card:hover{
  transform:translateY(-6px);
  box-shadow:0 18px 45px -20px rgba(13,34,64,.35);
  border-color:transparent; text-decoration:none; color:inherit;
}
.kp-home-card.is-disabled{ opacity:.6; pointer-events:none; }
.kp-home-ico{
  width:54px; height:54px; border-radius:14px;
  display:flex; align-items:center; justify-content:center;
  font-size:1.4rem; color:#fff; margin-bottom:1rem;
}
.kp-home-ico.ctb{ background:linear-gradient(135deg,#6366f1,#8b5cf6); }
.kp-home-ico.fin{ background:linear-gradient(135deg,#14b8a6,#0ea5b7); }
.kp-home-ico.cir{ background:linear-gradient(135deg,#f59e0b,#ef6c2b); }
.kp-home-ico.pub{ background:linear-gradient(135deg,#3b82f6,#1d4ed8); }
.kp-home-ico.pro{ background:linear-gradient(135deg,#64748b,#94a3b8); }
.kp-home-card h5{ color:var(--kp-navy); font-weight:700; margin-bottom:.35rem; }
.kp-home-card p{ color:var(--kp-muted); font-size:.92rem; margin-bottom:0; }
.kp-home-soon{
  font-size:.66rem; font-weight:700; letter-spacing:.5px;
  background:#eef2f7; color:#94a3b8; padding:.12rem .5rem; border-radius:6px;
  text-transform:uppercase; margin-left:.4rem; vertical-align:middle;
}

/* Menu do usuário (canto superior direito da home) */
.kp-app-topbar{ display:flex; justify-content:flex-end; align-items:center; gap:.6rem; margin-bottom:1.2rem; }
.kp-usermenu{ position:relative; }
.kp-usermenu-btn{
  display:inline-flex; align-items:center; gap:.5rem;
  background:linear-gradient(135deg, var(--kp-navy), var(--kp-navy-2));
  border:1px solid transparent; border-radius:50px;
  padding:.45rem 1.1rem; color:#fff; font-weight:600; font-size:.92rem;
  box-shadow:0 10px 24px -12px rgba(13,34,64,.55); cursor:pointer;
  transition:box-shadow .2s ease, transform .2s ease;
}
.kp-usermenu-btn:hover{ transform:translateY(-1px); box-shadow:0 14px 28px -12px rgba(13,34,64,.65); }
.kp-usermenu-btn .fa-user-circle{ color:var(--kp-accent); font-size:1.15rem; }
.kp-um-caret{ font-size:.7rem; color:rgba(255,255,255,.65); transition:transform .2s ease; }
.kp-usermenu.open .kp-um-caret{ transform:rotate(180deg); }
.kp-usermenu-drop{
  position:absolute; right:0; top:calc(100% + .5rem);
  min-width:214px; background:#fff; border:1px solid #e7eef7; border-radius:12px;
  box-shadow:0 18px 45px -18px rgba(13,34,64,.4); padding:.4rem;
  opacity:0; visibility:hidden; transform:translateY(-6px);
  transition:opacity .18s ease, transform .18s ease, visibility .18s;
  z-index:1040;
}
.kp-usermenu.open .kp-usermenu-drop{ opacity:1; visibility:visible; transform:none; }
.kp-usermenu-drop a{
  display:flex; align-items:center; gap:.6rem; width:100%;
  padding:.55rem .7rem; border-radius:8px;
  color:var(--kp-ink); font-size:.9rem; text-decoration:none;
  background:none; border:none; text-align:left; cursor:pointer;
}
.kp-usermenu-drop a:hover{ background:var(--kp-bg); color:var(--kp-navy); text-decoration:none; }
.kp-usermenu-drop a i{ width:16px; text-align:center; color:var(--kp-muted); }

/* Botão Sair (à direita do menu de usuário) */
.kp-logout-btn{
  display:inline-flex; align-items:center; gap:.5rem;
  background:#fbe1e4; border:1px solid #f0b8bf; border-radius:50px;
  padding:.45rem 1.1rem; color:#c82333; font-weight:600; font-size:.92rem;
  box-shadow:0 6px 16px -10px rgba(200,35,51,.35); cursor:pointer;
  transition:all .2s ease;
}
.kp-logout-btn:hover{ background:#dc3545; border-color:#dc3545; color:#fff; }

/* ==========================================================================
   DASHBOARDS — cabeçalho de página, filtros e painel (body.kp-app)
   ========================================================================== */
.kp-page-head{
  background:#fff; border:1px solid #e3ebf5; border-radius:16px;
  box-shadow:0 10px 30px -18px rgba(13,34,64,.25);
  padding:1.1rem 1.4rem; margin-bottom:1.4rem;
  display:flex; align-items:center; justify-content:space-between; gap:1.2rem; flex-wrap:wrap;
}
.kp-page-title{ display:flex; align-items:center; gap:.9rem; margin-right:auto; }
.kp-page-ico{
  width:46px; height:46px; border-radius:12px; flex:none;
  display:flex; align-items:center; justify-content:center;
  background:linear-gradient(135deg, var(--kp-navy), var(--kp-navy-2)); color:#fff; font-size:1.2rem;
}
.kp-page-ico.ctb{ background:linear-gradient(135deg,#6366f1,#8b5cf6); }
.kp-page-ico.fin{ background:linear-gradient(135deg,#14b8a6,#0ea5b7); }
.kp-page-ico.cir{ background:linear-gradient(135deg,#f59e0b,#ef6c2b); }
.kp-page-title h1{ font-size:1.25rem; font-weight:800; color:var(--kp-navy); margin:0; line-height:1.15; }
.kp-page-title p{ margin:.1rem 0 0; color:var(--kp-muted); font-size:.85rem; }
.kp-back-home{
  display:inline-flex; align-items:center; justify-content:center; flex:none;
  width:42px; height:42px; border-radius:11px; font-size:1.05rem;
  background:linear-gradient(135deg, var(--kp-navy), var(--kp-navy-2)); color:#fff;
  border:1px solid transparent; text-decoration:none;
  box-shadow:0 8px 20px -12px rgba(13,34,64,.55);
  transition:transform .2s ease, box-shadow .2s ease;
}
.kp-back-home:hover{ transform:translateY(-1px); box-shadow:0 12px 26px -12px rgba(13,34,64,.7); text-decoration:none; }
.kp-back-home i{ color:#fff; }

.kp-filters{ display:flex; align-items:flex-end; gap:.7rem; flex-wrap:wrap; margin:0; }
.kp-field{ display:flex; flex-direction:column; gap:.22rem; }
.kp-field label{ font-size:.7rem; font-weight:700; color:var(--kp-muted); text-transform:uppercase; letter-spacing:.5px; margin:0; }
.kp-field .form-control{ border-radius:9px; border:1px solid #dbe3ee; }
.kp-field .form-control:focus{ border-color:var(--kp-accent); box-shadow:0 0 0 .2rem rgba(20,184,166,.15); }
.kp-period{ display:flex; align-items:center; gap:.4rem; }
.kp-period .form-control{ width:auto; }
.kp-period span{ color:var(--kp-muted); font-size:.85rem; }

.kp-panel{
  background:#fff; border:1px solid #e3ebf5; border-radius:16px;
  box-shadow:0 10px 30px -18px rgba(13,34,64,.25);
  padding:1rem;
}
.kp-table-wrap{ overflow-x:auto; }
.kp-table-wrap table{ margin-bottom:0; }
/* Tabela sem moldura (largura total) + congela as 2 primeiras linhas do thead
   ao rolar a PÁGINA (cabeçalho da página sobe e some) */
.kp-table-bare{ margin-bottom:1.5rem; }
.kp-table-bare table{ margin-bottom:0; }
.kp-table-bare thead th{ position:sticky; z-index:4; background-color:inherit; }
.kp-table-bare thead tr:first-child th{ top:0; height:40px; padding-top:0; padding-bottom:0; z-index:5; }
.kp-table-bare thead tr:nth-child(2) th{ top:40px; }
/* Linhas com gutter mínimo (tabelas lado a lado ganham largura) */
.kp-row-tight{ margin-left:-3px; margin-right:-3px; }
.kp-row-tight > [class*="col-"]{ padding-left:3px; padding-right:3px; }
/* Coluna de botões (gráfico + analítico) — largura fixa p/ caber os 2 lado a lado */
.kp-btn-col{ width:80px; white-space:nowrap; }
