:root{--gold:#ffc400;--gold2:#ffad00;--red:#ef2b2d;--ink:#1f1f22;--muted:#6b7280;--line:#e8edf3;--bg:#f7f9fc;--card:#fff;--shadow:0 12px 35px rgba(25,38,71,.08);--radius:16px}*{box-sizing:border-box}body{margin:0;font-family:Inter,system-ui,sans-serif;color:var(--ink);background:var(--bg);overflow:hidden}.login-screen{height:100vh;width:100vw;position:relative;display:grid;place-items:center;overflow:hidden}.login-bg{position:absolute;inset:0;background:linear-gradient(135deg,#f8fbff 0%,#d9ecff 44%,#fff3ce 100%)}.login-bg:before{content:"";position:absolute;inset:-10%;background:radial-gradient(circle at 18% 20%,rgba(255,196,0,.35),transparent 28%),radial-gradient(circle at 80% 76%,rgba(239,43,45,.14),transparent 32%),linear-gradient(180deg,transparent 52%,rgba(255,255,255,.74));filter:blur(12px)}.login-top-brand{position:absolute;top:54px;display:flex;gap:14px;align-items:center;font-weight:800;font-size:26px}.login-top-brand img{height:38px;max-width:190px;object-fit:contain}.login-panel{position:relative;width:min(760px,92vw);padding-top:60px}.login-card{border:1px solid rgba(255,255,255,.62);background:rgba(255,255,255,.56);backdrop-filter:blur(22px);box-shadow:0 30px 90px rgba(53,82,122,.22);border-radius:18px;padding:46px 64px;text-align:center}.login-logo img{height:76px;object-fit:contain;margin-bottom:22px}.login-card h1{font-size:36px;font-weight:800;margin:0 0 12px}.login-card p{color:#4b5563;margin-bottom:30px}.login-card label{display:block;text-align:left;font-weight:700;margin:15px 0 8px}.input-wrap{height:56px;background:rgba(255,255,255,.75);border:1px solid rgba(216,226,238,.9);border-radius:10px;display:flex;align-items:center;padding:0 18px;gap:12px}.input-wrap input{border:0;outline:0;background:transparent;width:100%;font-size:16px}.input-wrap button{border:0;background:#fff;border-radius:10px;width:40px;height:40px}.login-options{display:flex;justify-content:space-between;align-items:center;margin:18px 0}.login-options a{font-weight:700;color:#df1d22;text-decoration:none}.check{display:flex!important;gap:8px!important;margin:0!important;align-items:center}.btn-login,.btn-gold{border:0;background:linear-gradient(135deg,var(--gold),var(--gold2));font-weight:800;border-radius:12px;min-height:46px;padding:0 24px;box-shadow:0 10px 20px rgba(255,180,0,.2);transition:.25s}.btn-login{width:220px;font-size:18px}.btn-login:hover,.btn-gold:hover{transform:translateY(-2px)}.demo-box{margin:24px auto 0;max-width:380px;background:rgba(255,247,218,.75);border:1px dashed var(--gold2);border-radius:12px;padding:12px}.login-panel footer{display:flex;justify-content:center;gap:28px;margin-top:24px;color:#6b7280;font-size:13px}.app-shell{display:flex;height:100vh;width:100vw}.sidebar{width:286px;background:#fff;border-right:1px solid var(--line);padding:24px 18px;display:flex;flex-direction:column;gap:24px}.brand{display:flex;align-items:center;gap:10px;font-size:22px}.brand img{height:40px;max-width:145px;object-fit:contain}.sidebar nav{display:flex;flex-direction:column;gap:8px}.nav-link{border:0;background:transparent;width:100%;height:50px;border-radius:12px;text-align:left;padding:0 18px;color:#374151;font-weight:650;display:flex;gap:14px;align-items:center}.nav-link i{width:20px;text-align:center}.nav-link.active,.nav-link:hover{background:#fff6d6;color:#ffad00}.user-box{margin-top:auto;border:1px solid var(--line);border-radius:14px;padding:14px;display:flex;gap:12px;align-items:center}.avatar{width:42px;height:42px;border-radius:50%;background:#eef2f7;display:grid;place-items:center;font-weight:800}.user-box small{display:block;color:#16a34a}.user-box button{margin-left:auto;border:0;background:transparent}.main-area{flex:1;min-width:0;display:flex;flex-direction:column}.topbar{height:70px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:20px;padding:0 28px}.search{width:min(470px,42vw);height:46px;border:1px solid var(--line);border-radius:12px;display:flex;align-items:center;gap:12px;padding:0 16px;color:#94a3b8}.search input{border:0;outline:0;width:100%}.top-actions{margin-left:auto;display:flex;align-items:center;gap:10px}.icon-btn{width:42px;height:42px;border:1px solid var(--line);background:#fff;border-radius:10px;display:inline-grid;place-items:center;color:#374151}.badge-dot{position:relative}.badge-dot:after{content:"3";position:absolute;right:5px;top:3px;background:#ef233c;color:#fff;font-size:10px;border-radius:50%;width:16px;height:16px;display:grid;place-items:center}.lang-btn{border:1px solid var(--line);background:#fff;border-radius:10px;height:40px;padding:0 12px;font-weight:700}.content{flex:1;overflow:auto;padding:28px 34px}.page{display:none}.page.active{display:block;animation:fade .25s ease}@keyframes fade{from{opacity:0;transform:translateY(6px)}}.page-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.page-head h2{font-weight:850;margin:0}.page-head p,.muted{color:var(--muted);margin:6px 0 0}.kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:22px}.kpi,.panel{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);transition:.3s}.kpi{padding:20px;display:grid;grid-template-columns:54px 1fr;align-items:center;column-gap:16px}.kpi:hover,.panel:hover{transform:translateY(-2px)}.kpi i{grid-row:1/4;width:50px;height:50px;border-radius:14px;display:grid;place-items:center;font-size:22px}.blue{background:#eaf3ff;color:#1d76ff}.green{background:#e8f8ec;color:#18a642}.purple{background:#f0eaff;color:#7c3aed}.gold{background:#fff5d7;color:#e7a600}.kpi span{font-size:13px;color:#64748b}.kpi b{font-size:22px}.kpi small{font-weight:600;color:#64748b}.ok{color:#16a34a!important}.panel{padding:22px;margin-bottom:22px}.panel-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.panel-title>div{display:grid;grid-template-columns:40px 1fr;column-gap:10px}.panel-title i{grid-row:1/3;color:#e4a900;font-size:28px}.panel-title small{display:block;color:#64748b}.power-frame{width:100%;height:430px;border:0;border-radius:12px;background:#f1f5f9}.empty-state{height:430px;border:1px dashed #cbd5e1;border-radius:12px;background:#f8fafc;display:grid;place-items:center;text-align:center;align-content:center;gap:8px;color:#64748b}.empty-state i{font-size:44px;color:#eab308}.bottom-grid,.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}.quick-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.quick-grid button{border:1px solid var(--line);background:#fff;border-radius:12px;padding:16px;text-align:left;font-weight:700}.quick-grid i{margin-right:10px}.mini-table{width:100%;font-size:14px}.mini-table td{padding:10px;border-bottom:1px solid var(--line)}.full-power .power-frame,.full-power .empty-state{height:calc(100vh - 210px);min-height:520px}.import-layout{display:grid;grid-template-columns:1.35fr .9fr;gap:22px}.stepper{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:22px}.step{height:54px;border-radius:12px;background:#f1f5f9;display:flex;align-items:center;justify-content:center;gap:8px;font-weight:850;color:#64748b}.step span{font-size:12px}.step.active{background:#fff4c6;color:#d59500}.dropzone{border:2px dashed #cbd5e1;border-radius:16px;background:#fbfdff;min-height:170px;display:grid;place-items:center;align-content:center;gap:8px;cursor:pointer}.dropzone i{font-size:40px;color:#eab308}.dropzone input{display:none}.timeline{display:grid;gap:12px}.timeline-item{border-left:3px solid var(--gold);padding:4px 0 4px 14px}.timeline-item b{display:block}.table{margin:0}.badge-soft{background:#e8f8ec;color:#148a39;border-radius:999px;padding:6px 10px;font-weight:800}.setting-row{display:flex;justify-content:space-between;border-bottom:1px solid var(--line);padding:14px 0}.dark{--bg:#0f172a;--card:#111827;--ink:#e5e7eb;--muted:#9ca3af;--line:#263244}.dark .sidebar,.dark .topbar,.dark .icon-btn,.dark .lang-btn,.dark .search,.dark .quick-grid button,.dark .input-wrap{background:#111827}.dark .form-control,.dark .form-select{background:#0f172a;color:#fff;border-color:#263244}.dark .empty-state,.dark .power-frame{background:#0f172a}@media(max-width:1050px){.sidebar{position:fixed;z-index:20;height:100vh;transform:translateX(-105%);transition:.3s}.sidebar.open{transform:none}.kpi-grid{grid-template-columns:repeat(2,1fr)}.bottom-grid,.settings-grid,.import-layout{grid-template-columns:1fr}}@media(max-width:700px){.login-card{padding:34px 24px}.login-top-brand{top:26px;font-size:20px}.search{display:none}.content{padding:20px}.kpi-grid{grid-template-columns:1fr}.topbar{padding:0 14px}.top-actions{gap:4px}.login-options{font-size:13px}.btn-login{width:100%}}
/* Segurança e perfil Gestor - versão final_vfinal */
.viewer-shell{width:100vw;height:100vh;background:#f8fafc;display:grid;grid-template-rows:64px 1fr;overflow:hidden}.viewer-header{height:64px;background:#fff;border-bottom:1px solid #e5e7eb;display:flex;align-items:center;justify-content:space-between;padding:0 18px;box-shadow:0 8px 28px rgba(15,23,42,.05);z-index:2}.viewer-brand{display:flex;align-items:center;gap:12px;font-weight:800;color:#111827}.viewer-brand img{width:112px;height:auto}.viewer-brand span{font-size:12px;color:#64748b;background:#fff6d8;border:1px solid #ffe08a;border-radius:999px;padding:5px 10px}.viewer-actions{display:flex;gap:10px}.viewer-btn{height:38px;border:1px solid #e5e7eb;background:#fff;border-radius:10px;padding:0 13px;font-weight:800;color:#111827;display:inline-flex;align-items:center;gap:8px}.viewer-btn:hover{background:#fff8df;border-color:#ffbe00}.viewer-btn.danger{color:#dc2626}.viewer-main{position:relative;background:#f1f5f9;padding:10px}.manager-power-frame{width:100%;height:calc(100vh - 84px);border:0;border-radius:14px;background:#fff;box-shadow:0 18px 50px rgba(15,23,42,.1)}.manager-empty{width:100%;height:calc(100vh - 84px);border:1px dashed #cbd5e1;border-radius:14px;background:#fff;display:grid;place-items:center;align-content:center;text-align:center;color:#64748b;gap:8px}.manager-empty i{font-size:52px;color:#ffbe00}.manager-empty h2{font-weight:850;color:#111827;margin:0}.manager-empty p{margin:0}.d-none.viewer-shell{display:none!important}@media(max-width:720px){.viewer-header{padding:0 10px}.viewer-brand img{width:96px}.viewer-brand strong{display:none}.viewer-brand span{font-size:11px}.viewer-btn{padding:0 10px;font-size:12px}.viewer-main{padding:6px}.manager-power-frame,.manager-empty{height:calc(100vh - 76px);border-radius:10px}}

/* =========================================================
   Login 100% responsivo - evita sobreposição em qualquer tela
   ========================================================= */
#loginScreen.login-screen{
  min-height:100svh;
  height:100svh;
  width:100vw;
  display:grid;
  grid-template-rows:auto minmax(0,1fr) auto;
  place-items:initial;
  padding:clamp(14px,3vh,36px) clamp(14px,4vw,48px);
  overflow:auto;
  overscroll-behavior:none;
}
#loginScreen .login-bg{position:fixed;inset:0}
#loginScreen .login-top-brand{
  position:relative;
  top:auto;
  z-index:1;
  justify-self:center;
  align-self:start;
  min-height:44px;
  font-size:clamp(17px,2.2vw,26px);
  gap:clamp(8px,1.4vw,14px);
  margin:0 0 clamp(10px,2vh,24px);
  white-space:nowrap;
}
#loginScreen .login-top-brand img{height:clamp(28px,4vw,38px);max-width:min(42vw,190px)}
#loginScreen .login-panel{
  position:relative;
  z-index:1;
  width:min(760px,100%);
  padding:0;
  align-self:center;
  justify-self:center;
  display:grid;
  grid-template-rows:minmax(0,auto) auto;
  gap:clamp(10px,1.6vh,18px);
}
#loginScreen .login-card{
  width:100%;
  max-height:none;
  padding:clamp(22px,4.2vw,46px) clamp(18px,5.5vw,64px);
  border-radius:clamp(14px,2vw,20px);
}
#loginScreen .login-logo img{height:clamp(46px,8vw,76px);margin-bottom:clamp(12px,2.2vh,22px)}
#loginScreen .login-card h1{font-size:clamp(24px,4.2vw,36px);line-height:1.1;margin-bottom:clamp(8px,1.4vh,12px)}
#loginScreen .login-card p{font-size:clamp(13px,1.9vw,16px);margin-bottom:clamp(16px,3vh,30px)}
#loginScreen .login-card label{margin:clamp(10px,1.8vh,15px) 0 7px;font-size:clamp(13px,1.8vw,15px)}
#loginScreen .input-wrap{height:clamp(48px,6.4vh,56px);padding:0 clamp(12px,2.2vw,18px)}
#loginScreen .input-wrap input{font-size:clamp(14px,2vw,16px);min-width:0}
#loginScreen .input-wrap button{flex:0 0 clamp(34px,5.2vh,40px);width:clamp(34px,5.2vh,40px);height:clamp(34px,5.2vh,40px)}
#loginScreen .login-options{gap:12px;flex-wrap:wrap;margin:clamp(12px,2vh,18px) 0;font-size:clamp(12px,1.8vw,14px)}
#loginScreen .btn-login{width:min(220px,100%);height:clamp(46px,6vh,54px);min-height:0;font-size:clamp(15px,2.4vw,18px)}
#loginScreen .demo-box{margin-top:clamp(14px,2.3vh,24px);font-size:clamp(12px,1.8vw,14px);padding:clamp(10px,1.8vh,12px)}
#loginScreen .login-panel footer{
  margin:0;
  padding-bottom:env(safe-area-inset-bottom);
  flex-wrap:wrap;
  row-gap:6px;
  font-size:clamp(11px,1.6vw,13px);
}
@media(max-width:520px){
  #loginScreen.login-screen{padding:14px;grid-template-rows:auto 1fr auto}
  #loginScreen .login-card{text-align:left}
  #loginScreen .login-logo{text-align:center}
  #loginScreen .login-card h1,#loginScreen .login-card p{text-align:center}
  #loginScreen .login-options{align-items:flex-start;justify-content:flex-start;flex-direction:column}
  #loginScreen .btn-login{width:100%}
  #loginScreen .login-panel footer{justify-content:center;gap:14px}
}
@media(max-height:720px){
  #loginScreen.login-screen{padding-top:12px;padding-bottom:10px}
  #loginScreen .login-top-brand{margin-bottom:8px}
  #loginScreen .login-card{padding-top:20px;padding-bottom:20px}
  #loginScreen .login-logo img{height:42px;margin-bottom:10px}
  #loginScreen .login-card p{margin-bottom:12px}
  #loginScreen .demo-box{margin-top:10px}
}
@media(max-height:560px){
  #loginScreen.login-screen{display:block;padding:10px 14px}
  #loginScreen .login-top-brand{justify-content:center;margin-bottom:10px}
  #loginScreen .login-panel{margin:0 auto;display:block}
  #loginScreen .login-panel footer{margin-top:10px;justify-content:center}
}

/* Correção funcional do menu e botões */
button, .nav-link, [data-page-jump], .icon-btn, .btn-gold, .viewer-btn, .lang-btn { cursor: pointer; touch-action: manipulation; }
.nav-link { width: 100%; border: 0; text-align: left; }
.nav-link span, .nav-link i, [data-page-jump] span, [data-page-jump] i, .icon-btn i, .btn-gold i { pointer-events: none; }
.sidebar.open { box-shadow: 0 24px 80px rgba(15,23,42,.22); }
@media(max-width:1050px){
  .main-area { width: 100%; }
  .sidebar.open { transform: translateX(0)!important; }
}

/* VFINAL - Toggle do menu lateral: expandido <-> apenas ícones */
.app-shell.sidebar-collapsed .sidebar{
  width:84px;
  padding:24px 12px;
  align-items:center;
}
.app-shell.sidebar-collapsed .brand{
  justify-content:center;
  width:100%;
}
.app-shell.sidebar-collapsed .brand strong,
.app-shell.sidebar-collapsed .nav-link span,
.app-shell.sidebar-collapsed .user-box > div:not(.avatar),
.app-shell.sidebar-collapsed .user-box button{
  display:none!important;
}
.app-shell.sidebar-collapsed .brand img{
  height:36px;
  max-width:46px;
  object-fit:contain;
}
.app-shell.sidebar-collapsed .sidebar nav{
  width:100%;
  align-items:center;
}
.app-shell.sidebar-collapsed .nav-link{
  width:56px;
  height:52px;
  padding:0;
  justify-content:center;
  border-radius:14px;
}
.app-shell.sidebar-collapsed .nav-link i{
  width:auto;
  margin:0;
  font-size:18px;
}
.app-shell.sidebar-collapsed .user-box{
  width:56px;
  height:56px;
  padding:0;
  justify-content:center;
  border-radius:16px;
}
.app-shell.sidebar-collapsed .user-box .avatar{
  width:40px;
  height:40px;
}
.app-shell.sidebar-collapsed .topbar #mobileMenu{
  background:#fff8dc;
  border-color:#ffd85a;
  color:#d49400;
}
.sidebar, .main-area, .brand strong, .nav-link span, .user-box{
  transition:width .28s ease, padding .28s ease, opacity .2s ease, transform .28s ease, background .2s ease;
}

@media(max-width:1050px){
  .app-shell.sidebar-collapsed .sidebar{
    width:286px;
    padding:24px 18px;
    align-items:stretch;
  }
  .app-shell.sidebar-collapsed .brand{justify-content:flex-start;}
  .app-shell.sidebar-collapsed .brand strong,
  .app-shell.sidebar-collapsed .nav-link span,
  .app-shell.sidebar-collapsed .user-box > div:not(.avatar),
  .app-shell.sidebar-collapsed .user-box button{
    display:block!important;
  }
  .app-shell.sidebar-collapsed .nav-link{
    width:100%;
    height:50px;
    padding:0 18px;
    justify-content:flex-start;
  }
  .app-shell.sidebar-collapsed .user-box{
    width:auto;
    height:auto;
    padding:14px;
    justify-content:flex-start;
  }
  .app-shell.sidebar-collapsed .brand img{height:40px;max-width:145px;}
}

/* Base de dados local / segurança */
.db-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:16px}.btn-line{height:44px;border:1px solid var(--line);background:#fff;border-radius:12px;font-weight:800;color:var(--ink);display:flex;align-items:center;justify-content:center;gap:8px}.btn-line:hover{background:#fff8df;border-color:#ffd761;transform:translateY(-1px)}.btn-line.danger{color:#dc2626}.db-note{margin-top:14px;padding:12px;border:1px dashed #ffd761;background:#fff9df;border-radius:12px;color:#6b5200;font-size:13px}.dark .btn-line{background:#111827}.dark .db-note{background:#1f2937;color:#facc15;border-color:#854d0e}@media(max-width:720px){.db-actions{grid-template-columns:1fr}}
