body{background:#f4f6f9;font-family:Arial,sans-serif;color:#1f2937}
.app-shell{display:flex;min-height:100vh}
.sidebar{width:270px;position:sticky;top:0;height:100vh;overflow:auto;box-shadow:8px 0 24px rgba(0,0,0,.12)}
.sidebar .nav-link{border-radius:12px;padding:.7rem .85rem;transition:.2s ease;font-weight:600}
.sidebar .nav-link:hover{background:rgba(255,255,255,.12);transform:translateX(2px)}
.sidebar .nav-link.active{background:rgba(255,255,255,.18);box-shadow:inset 0 0 0 1px rgba(255,255,255,.18)}
.content{flex:1}
.card-soft{border:0;border-radius:20px;box-shadow:0 8px 24px rgba(15,23,42,.08);background:#fff}
.card-soft.theme-card{border-top:4px solid var(--empresa-cor)}
.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#f8fafc,#e2e8f0)}
.login-card{max-width:420px;width:100%;border-radius:20px}
.table thead th{background:var(--empresa-cor-soft);color:#0f172a}
.status-badge{padding:.3rem .55rem;border-radius:999px;font-size:.8rem}
.status-ok{background:#d1fae5;color:#065f46}.status-warn{background:#fef3c7;color:#92400e}.status-danger{background:#fee2e2;color:#991b1b}
.btn-primary{background:var(--empresa-cor)!important;border-color:var(--empresa-cor)!important}
.btn-outline-primary{color:var(--empresa-cor)!important;border-color:var(--empresa-cor)!important}
.btn-outline-primary:hover{background:var(--empresa-cor)!important;color:#fff!important}
.text-primary{color:var(--empresa-cor)!important}
.bg-primary{background:var(--empresa-cor)!important}
@media (max-width: 900px){.app-shell{display:block}.sidebar{width:100%;height:auto;position:relative}.content{padding:1rem!important}}
.sidebar-logo{width:54px;height:54px;object-fit:cover;border-radius:14px;border:1px solid rgba(255,255,255,.2);background:#fff}.sidebar-logo-placeholder{display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.12);font-size:1.3rem}.sidebar .form-select{background:#fff}
.sidebar-banner{height:76px;border-radius:16px;background-size:cover;background-position:center;border:1px solid rgba(255,255,255,.15)}
.company-mini-panel{background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.14);padding:.85rem;border-radius:16px;backdrop-filter:blur(4px)}
.company-color-dot{display:inline-block;width:18px;height:18px;border-radius:999px;border:2px solid rgba(255,255,255,.4)}
.user-panel{padding:.7rem .8rem;border-radius:14px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.1)}
.dashboard-hero{background:linear-gradient(120deg,var(--empresa-cor) 0%, color-mix(in srgb,var(--empresa-cor) 60%, #111827) 100%);border-radius:24px;color:#fff;padding:1.4rem 1.6rem;box-shadow:0 10px 26px rgba(0,0,0,.12)}
.stat-card{border-radius:18px;padding:18px;background:#fff;border:1px solid #e5e7eb;box-shadow:0 6px 18px rgba(0,0,0,.04);height:100%;position:relative;overflow:hidden}
.stat-card::after{content:'';position:absolute;right:-20px;top:-20px;width:80px;height:80px;border-radius:999px;background:color-mix(in srgb,var(--empresa-cor) 14%, transparent)}
.stat-title{font-size:14px;color:#6b7280;margin-bottom:6px;position:relative;z-index:1}.stat-value{font-size:28px;font-weight:bold;color:#111827;position:relative;z-index:1}
.page-accent{height:4px;width:72px;border-radius:999px;background:var(--empresa-cor);margin:.35rem 0 1rem}


/* v6.2.1 shell fixes */
.content-wrapper,
.main-content,
.page-content,
.app-content{
  overflow:visible !important;
  position:relative;
}
.sidebar-toggle,
.menu-toggle,
.toggle-menu,
.btn-menu-toggle,
.app-menu-toggle,
[data-sidebar-toggle],
[data-menu-toggle]{
  z-index:3005 !important;
}


/* v6.2.2 sidebar/toggle fixes */
body.ui-sidebar-collapsed .content-wrapper,
body.ui-sidebar-collapsed .main-content,
body.ui-sidebar-collapsed .page-content,
body.ui-sidebar-collapsed .app-content{
  margin-left:0 !important;
}
.global-sidebar-toggle{z-index:4005 !important;}

/* v6.2.3 brand toggle UX */
.system-brand-toggle{cursor:pointer;}
body.ui-sidebar-collapsed .content-wrapper,
body.ui-sidebar-collapsed .main-content,
body.ui-sidebar-collapsed .page-content,
body.ui-sidebar-collapsed .app-content{margin-left:0 !important;}


/* v7 sidebar spacing fix */
body.ui-sidebar-collapsed .content-wrapper,
body.ui-sidebar-collapsed .main-content,
body.ui-sidebar-collapsed .page-content,
body.ui-sidebar-collapsed .app-content,
body.ui-sidebar-collapsed main{
  margin-left:0 !important;
  padding-left:0 !important;
}

body.ui-sidebar-collapsed .sidebar,
body.ui-sidebar-collapsed .menu-lateral,
body.ui-sidebar-collapsed aside{
  padding-left:0 !important;
  padding-right:0 !important;
}

/* v7.1 maximize sidebar full hide */
body.ui-sidebar-hidden .content-wrapper,
body.ui-sidebar-hidden .main-content,
body.ui-sidebar-hidden .page-content,
body.ui-sidebar-hidden .app-content,
body.ui-sidebar-hidden main{
  margin-left:0 !important;
  padding-left:0 !important;
  width:100% !important;
}

/* v7.2 menu organizer */
.menu-draggable-item{cursor:grab !important;user-select:none;}
.menu-draggable-item:active{cursor:grabbing !important;}
.menu-dragging{opacity:.65 !important;transform:scale(.98);}

/* v7.3 menu organizer db */
.menu-draggable-item{cursor:grab !important;}.menu-draggable-item:active{cursor:grabbing !important;}.menu-dragging{opacity:.65 !important;transform:scale(.98);}


/* v7.4 mobile/tablet shell */
@media (max-width: 1024px){
  html, body{
    margin:0 !important;
    padding:0 !important;
    width:100% !important;
    max-width:100% !important;
    overflow-x:hidden !important;
  }

  .app-shell{
    display:block !important;
    min-height:100vh !important;
  }

  .sidebar{
    position:fixed !important;
    inset:0 !important;
    width:100% !important;
    min-width:100% !important;
    max-width:100% !important;
    height:100vh !important;
    background:transparent !important;
    box-shadow:none !important;
    overflow:visible !important;
    z-index:3000 !important;
    padding:0 !important;
    pointer-events:none !important;
  }

  .sidebar-top{
    position:fixed !important;
    top:0 !important;
    left:0 !important;
    right:0 !important;
    background:#ffffff !important;
    color:#0f172a !important;
    padding:10px 12px env(safe-area-inset-right) 12px !important;
    box-shadow:0 8px 20px rgba(15,23,42,.08) !important;
    border-bottom:1px solid #e5e7eb !important;
    z-index:3002 !important;
    pointer-events:auto !important;
  }

  .sidebar-toolbar{
    margin:0 !important;
    display:flex !important;
    align-items:center !important;
    justify-content:space-between !important;
    gap:10px !important;
  }

  .sidebar-brand-wrap{
    min-width:0 !important;
    flex:1 1 auto !important;
  }

  .sidebar-brand-text h4,
  .sidebar-brand-text small{
    color:#0f172a !important;
  }

  .sidebar-logo{
    width:44px !important;
    height:44px !important;
    border-radius:14px !important;
  }

  .sidebar-company-form{
    display:none !important;
  }

  .sidebar-toggle{
    display:none !important;
  }

  .sidebar-scroll{
    position:fixed !important;
    left:0 !important;
    right:0 !important;
    bottom:0 !important;
    background:#ffffff !important;
    border-top:1px solid #e5e7eb !important;
    box-shadow:0 -8px 20px rgba(15,23,42,.08) !important;
    overflow-x:auto !important;
    overflow-y:hidden !important;
    pointer-events:auto !important;
    padding:8px 10px calc(10px + env(safe-area-inset-bottom)) 10px !important;
    z-index:3002 !important;
  }

  .premium-scroll::-webkit-scrollbar{
    height:4px;
  }

  .sidebar-nav{
    flex-direction:row !important;
    flex-wrap:nowrap !important;
    align-items:stretch !important;
    gap:10px !important;
    min-width:max-content !important;
  }

  .sidebar-section{
    display:flex !important;
    flex-direction:row !important;
    gap:10px !important;
    align-items:stretch !important;
  }

  .sidebar-section-title{
    display:none !important;
  }

  .sidebar .nav-link{
    min-width:84px !important;
    max-width:96px !important;
    display:flex !important;
    flex-direction:column !important;
    align-items:center !important;
    justify-content:center !important;
    gap:6px !important;
    padding:10px 8px !important;
    border-radius:18px !important;
    background:#f5f7fb !important;
    color:#111827 !important;
    transform:none !important;
    box-shadow:none !important;
  }

  .sidebar .nav-link.active{
    background:color-mix(in srgb, var(--empresa-cor) 18%, #ffffff) !important;
    color:var(--empresa-cor-dark) !important;
    box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--empresa-cor) 25%, #dbe3ef) !important;
  }

  .sidebar .nav-link:hover{
    background:#eef3fb !important;
  }

  .sidebar-item-icon{
    font-size:22px !important;
    line-height:1 !important;
  }

  .sidebar-item-text{
    display:block !important;
    width:100% !important;
    font-size:11px !important;
    line-height:1.1 !important;
    text-align:center !important;
    white-space:nowrap !important;
    overflow:hidden !important;
    text-overflow:ellipsis !important;
  }

  .content,
  .content-wrapper,
  .main-content,
  .page-content,
  .app-content,
  main{
    width:100% !important;
    max-width:100% !important;
    margin:0 !important;
    padding-left:0 !important;
    padding-right:0 !important;
  }

  .content{
    padding-top:86px !important;
    padding-bottom:102px !important;
  }

  .container,
  .container-fluid{
    padding-left:12px !important;
    padding-right:12px !important;
  }

  /* disable desktop collapsed/hidden sidebar modes on mobile */
  body.ui-sidebar-collapsed .sidebar,
  body.ui-sidebar-hidden .sidebar,
  body.ui-sidebar-collapsed .menu-lateral,
  body.ui-sidebar-hidden .menu-lateral,
  body.ui-sidebar-collapsed aside,
  body.ui-sidebar-hidden aside{
    width:100% !important;
    min-width:100% !important;
    max-width:100% !important;
    transform:none !important;
  }

  /* mobile module windows */
  .module-page{
    min-height:auto !important;
    padding:8px 0 16px !important;
  }

  .module-window{
    border-radius:18px !important;
    margin:0 !important;
  }

  .module-window-header{
    padding:12px 14px !important;
  }

  .module-window-body{
    padding:14px !important;
  }

  .module-title{
    font-size:28px !important;
    margin-bottom:6px !important;
  }

  .module-subtitle{
    font-size:13px !important;
    margin-bottom:14px !important;
  }

  .module-stats,
  .module-grid,
  .module-row-2,
  .module-row-3{
    grid-template-columns:1fr !important;
  }

  .module-card,
  .module-subcard,
  .module-stat{
    border-radius:18px !important;
  }

  .module-window.module-window-max{
    top:66px !important;
    left:0 !important;
    width:100vw !important;
    height:calc(100vh - 66px - 86px) !important;
    border-radius:0 !important;
  }

  .module-window.module-window-max .module-window-body{
    max-height:calc(100vh - 66px - 86px - 58px) !important;
    overflow:auto !important;
  }
}

/* v7.4.1 mobile/tablet color + nav sizing fixes */
@media (max-width: 1024px){
  .sidebar-top{
    background:var(--empresa-cor) !important;
    color:#fff !important;
    border-bottom:none !important;
  }
  .sidebar-brand-text h4,
  .sidebar-brand-text small,
  .sidebar-top .text-dark,
  .sidebar-top .text-muted,
  .sidebar-top .text-secondary{
    color:#fff !important;
  }
  .sidebar-scroll{
    background:var(--empresa-cor) !important;
    border-top:none !important;
    box-shadow:0 -8px 20px rgba(15,23,42,.12) !important;
  }
  .sidebar .nav-link{
    min-width:88px !important;
    max-width:88px !important;
    height:92px !important;
    min-height:92px !important;
    padding:10px 8px !important;
    border-radius:18px !important;
    background:rgba(255,255,255,.14) !important;
    color:#ffffff !important;
  }
  .sidebar .nav-link.active{
    background:#ffffff !important;
    color:var(--empresa-cor-dark) !important;
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.24) !important;
  }
  .sidebar .nav-link:hover{
    background:rgba(255,255,255,.2) !important;
    color:#ffffff !important;
  }
  .sidebar-item-icon{
    font-size:22px !important;
    min-height:24px !important;
  }
  .sidebar-item-text{
    font-size:11px !important;
    line-height:1.15 !important;
    height:26px !important;
    display:-webkit-box !important;
    -webkit-line-clamp:2 !important;
    -webkit-box-orient:vertical !important;
    overflow:hidden !important;
    text-overflow:ellipsis !important;
    white-space:normal !important;
  }
  .sidebar-scroll .sidebar-nav{
    align-items:stretch !important;
  }
  .sidebar-section{
    align-items:stretch !important;
  }
}


/* v7.4.5 user area in bottom menu */
.sidebar-user-avatar{
  width:38px;
  height:38px;
  border-radius:50%;
  object-fit:cover;
  border:2px solid rgba(255,255,255,.35);
  background:#fff;
  flex:0 0 38px;
}
.sidebar-user-avatar-placeholder{
  display:flex;
  align-items:center;
  justify-content:center;
  color:#111827;
  font-size:16px;
}
.sidebar-user-summary{
  padding:0 .1rem;
}

@media (max-width: 1024px){
  .sidebar-user-section{
    display:flex !important;
    flex-direction:row !important;
    align-items:stretch !important;
    gap:10px !important;
    padding-top:0 !important;
    margin-top:0 !important;
    border-top:none !important;
  }

  .sidebar-user-summary{
    min-width:124px !important;
    max-width:124px !important;
    height:92px !important;
    min-height:92px !important;
    border-radius:18px !important;
    background:rgba(255,255,255,.14) !important;
    color:#fff !important;
    padding:10px 8px !important;
    display:flex !important;
    flex-direction:column !important;
    align-items:center !important;
    justify-content:center !important;
    text-align:center !important;
    gap:6px !important;
  }

  .sidebar-user-avatar{
    width:34px !important;
    height:34px !important;
    flex:0 0 34px !important;
  }

  .sidebar-user-text{
    display:block !important;
    width:100% !important;
  }

  .sidebar-user-text .fw-semibold,
  .sidebar-user-text .opacity-75{
    color:#fff !important;
    font-size:11px !important;
    line-height:1.15 !important;
    white-space:nowrap !important;
    overflow:hidden !important;
    text-overflow:ellipsis !important;
  }

  .sidebar-user-text .opacity-75{
    opacity:.82 !important;
  }

  .sidebar-user-section > .nav-link{
    min-width:88px !important;
    max-width:88px !important;
    height:92px !important;
    min-height:92px !important;
    padding:10px 8px !important;
    border-radius:18px !important;
    background:rgba(255,255,255,.14) !important;
    color:#ffffff !important;
    display:flex !important;
    flex-direction:column !important;
    align-items:center !important;
    justify-content:center !important;
    gap:6px !important;
  }

  .sidebar-user-section > .nav-link.text-warning{
    color:#fff3cd !important;
  }
}
